diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..ba5225d --- /dev/null +++ b/.dockerignore @@ -0,0 +1,22 @@ +.github +.gitignore +.vscode +.devbox +.devcontainer +node_modules +public +resources +tmp +*.md +!content/**/*.md +TESTING.md +Taskfile.yml +devbox.json +devbox.lock +.hugo_build.lock +.htmltest.yml +.htmlvalidate.json +.markdownlint.json + +# Ensure package-lock.json is included for npm ci +!package-lock.json diff --git a/.env.versions b/.env.versions new file mode 100644 index 0000000..25ceae4 --- /dev/null +++ b/.env.versions @@ -0,0 +1,9 @@ +# Tool versions for development and CI/CD +# These versions are used in: +# - devbox.json (pinned versions) +# - Dockerfile (build arguments) +# - .github/workflows/ci.yaml (CI/CD pipeline) + +NODE_VERSION=24.10.0 +GO_VERSION=1.25.1 +HUGO_VERSION=0.151.0 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..ae56f2a --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,79 @@ +name: ci + +on: + push: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + + - name: Load versions from .env.versions + id: versions + run: | + # Source the versions file + set -a + source .env.versions + set +a + + echo "node_version=${NODE_VERSION}" >> "$GITHUB_OUTPUT" + echo "go_version=${GO_VERSION}" >> "$GITHUB_OUTPUT" + echo "hugo_version=${HUGO_VERSION}" >> "$GITHUB_OUTPUT" + + echo "Node: ${NODE_VERSION}" + echo "Go: ${GO_VERSION}" + echo "Hugo: ${HUGO_VERSION}" + + - name: Repository meta + id: repository + run: | + registry=${{ github.server_url }} + registry=${registry##http*://} + echo "registry=${registry}" >> "$GITHUB_OUTPUT" + echo "registry=${registry}" + repository="$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')" + echo "repository=${repository}" >> "$GITHUB_OUTPUT" + echo "repository=${repository}" + + - name: Docker meta + uses: docker/metadata-action@v5 + id: docker + with: + images: ${{ steps.repository.outputs.registry }}/${{ steps.repository.outputs.repository }} + tags: | + type=sha,prefix= + type=ref,event=tag + - + name: Login to registry + uses: docker/login-action@v3 + with: + registry: ${{ steps.repository.outputs.registry }} + username: "${{ secrets.PACKAGES_USER }}" + password: "${{ secrets.PACKAGES_TOKEN }}" + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + buildkitd-flags: '--allow-insecure-entitlement network.host' + driver-opts: network=host + + - name: Build and push + uses: docker/build-push-action@v6 + with: + context: . + push: true + allow: network.host + network: host + tags: ${{ steps.docker.outputs.tags }} + labels: ${{ steps.docker.outputs.labels }} + build-args: | + NODE_VERSION=${{ steps.versions.outputs.node_version }} + GO_VERSION=${{ steps.versions.outputs.go_version }} + HUGO_VERSION=${{ steps.versions.outputs.hugo_version }} diff --git a/.github/workflows/delete-edge.yaml b/.github/workflows/delete-edge.yaml new file mode 100644 index 0000000..d7f6c5d --- /dev/null +++ b/.github/workflows/delete-edge.yaml @@ -0,0 +1,32 @@ +name: delete-edge + +on: + workflow_run: + workflows: [build] + types: + - completed + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Replace Image Version + run: | + sha="${{ github.sha }}" + shortSha="${sha:0:7}" + echo "Setting image version to: edp.buildth.ing/devfw-cicd/website-and-documentation:${shortSha}" + sed -i "s@###IMAGETAG###@edp.buildth.ing/devfw-cicd/website-and-documentation:${shortSha}@g" ./k8s-deployment.yaml + + - name: Delete action + uses: https://edp.buildth.ing/DevFW-CICD/edge-connect-delete-action@main + id: delete + with: + configFile: ./edgeconnectdeployment.yaml + baseUrl: https://hub.apps.edge.platform.mg3.mdb.osc.live + username: ${{ secrets.EDGEXR_PLATFORM_USERNAME }} + password: ${{ secrets.EDGEXR_PLATFORM_PASSWORD }} diff --git a/.github/workflows/deploy-edge.yaml b/.github/workflows/deploy-edge.yaml new file mode 100644 index 0000000..bafe431 --- /dev/null +++ b/.github/workflows/deploy-edge.yaml @@ -0,0 +1,32 @@ +name: deploy-edge + +on: + workflow_run: + workflows: [build] + types: + - completed + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Replace Image Version + run: | + sha="${{ github.sha }}" + shortSha="${sha:0:7}" + echo "Setting image version to: edp.buildth.ing/devfw-cicd/website-and-documentation:${shortSha}" + sed -i "s@###IMAGETAG###@edp.buildth.ing/devfw-cicd/website-and-documentation:${shortSha}@g" ./k8s-deployment.yaml + + - name: Deploy action + uses: https://edp.buildth.ing/DevFW-CICD/edge-connect-deploy-action@main + id: deploy + with: + configFile: ./edgeconnectdeployment.yaml + baseUrl: https://hub.apps.edge.platform.mg3.mdb.osc.live + username: ${{ secrets.EDGEXR_PLATFORM_USERNAME }} + password: ${{ secrets.EDGEXR_PLATFORM_PASSWORD }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..8168687 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,149 @@ +name: release + +on: + push: + tags: + - 'v*.*.*' # Triggert auf Semantic Versioning Tags (v1.0.0, v2.1.3, etc.) + +permissions: + contents: write + packages: write + +jobs: + release: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + + - name: Load versions from .env.versions + id: versions + run: | + set -a + source .env.versions + set +a + + echo "node_version=${NODE_VERSION}" >> "$GITHUB_OUTPUT" + echo "go_version=${GO_VERSION}" >> "$GITHUB_OUTPUT" + echo "hugo_version=${HUGO_VERSION}" >> "$GITHUB_OUTPUT" + + echo "Node: ${NODE_VERSION}" + echo "Go: ${GO_VERSION}" + echo "Hugo: ${HUGO_VERSION}" + + - name: Extract version from tag + id: version + run: | + VERSION=${GITHUB_REF#refs/tags/v} + echo "version=${VERSION}" >> "$GITHUB_OUTPUT" + echo "Version: ${VERSION}" + + - name: Repository meta + id: repository + run: | + registry=${{ github.server_url }} + registry=${registry##http*://} + echo "registry=${registry}" >> "$GITHUB_OUTPUT" + echo "registry=${registry}" + repository="$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')" + echo "repository=${repository}" >> "$GITHUB_OUTPUT" + echo "repository=${repository}" + + - name: Docker meta + uses: docker/metadata-action@v5 + id: docker + with: + images: ${{ steps.repository.outputs.registry }}/${{ steps.repository.outputs.repository }} + tags: | + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=raw,value=latest + + - name: Login to registry + uses: docker/login-action@v3 + with: + registry: ${{ steps.repository.outputs.registry }} + username: "${{ secrets.PACKAGES_USER }}" + password: "${{ secrets.PACKAGES_TOKEN }}" + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + buildkitd-flags: '--allow-insecure-entitlement network.host' + driver-opts: network=host + + - name: Build and push release images + uses: docker/build-push-action@v6 + with: + context: . + push: true + allow: network.host + network: host + platforms: linux/amd64,linux/arm64 + tags: ${{ steps.docker.outputs.tags }} + labels: ${{ steps.docker.outputs.labels }} + build-args: | + NODE_VERSION=${{ steps.versions.outputs.node_version }} + GO_VERSION=${{ steps.versions.outputs.go_version }} + HUGO_VERSION=${{ steps.versions.outputs.hugo_version }} + + - name: Generate changelog + id: changelog + run: | + # Finde vorheriges Tag + PREVIOUS_TAG=$(git describe --abbrev=0 --tags ${GITHUB_REF}^ 2>/dev/null || echo "") + + if [ -z "$PREVIOUS_TAG" ]; then + echo "Erster Release - Changelog von Anfang an" + CHANGELOG=$(git log --pretty=format:"- %s (%h)" --no-merges) + else + echo "Changelog seit ${PREVIOUS_TAG}" + CHANGELOG=$(git log ${PREVIOUS_TAG}..${GITHUB_REF} --pretty=format:"- %s (%h)" --no-merges) + fi + + # Schreibe in Output-Datei (multiline) + { + echo 'changelog<> "$GITHUB_OUTPUT" + + - name: Create Forgejo/Gitea Release + uses: actions/forgejo-release@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + direction: upload + release-dir: . + title: "Release ${{ steps.version.outputs.version }}" + tag: ${{ github.ref_name }} + token: ${{ secrets.GITHUB_TOKEN }} + release-notes: | + # Release ${{ steps.version.outputs.version }} + + ## Docker Images + + Multi-platform images (linux/amd64, linux/arm64) sind verfügbar: + + ```bash + docker pull ${{ steps.repository.outputs.registry }}/${{ steps.repository.outputs.repository }}:${{ steps.version.outputs.version }} + docker pull ${{ steps.repository.outputs.registry }}/${{ steps.repository.outputs.repository }}:latest + ``` + + ## Build Versions + + - Node.js: ${{ steps.versions.outputs.node_version }} + - Go: ${{ steps.versions.outputs.go_version }} + - Hugo: ${{ steps.versions.outputs.hugo_version }} + + ## Changes + + ${{ steps.changelog.outputs.changelog }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..26ff785 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,51 @@ +name: Hugo Site Tests + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + + - name: Setup Hugo + uses: peaceiris/actions-hugo@v3 + with: + hugo-version: 'latest' + extended: true + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: '24' + cache: 'npm' + + - name: Install dependencies + run: | + npm ci + go install github.com/wjdp/htmltest@latest + + - name: Run tests + run: | + npm run test:build + npm run test:markdown + npm run test:html + + - name: Run link checker + run: htmltest + continue-on-error: true + + - name: Upload htmltest results + uses: actions/upload-artifact@v4 + if: always() + with: + name: htmltest-report + path: tmp/.htmltest/ diff --git a/.gitignore b/.gitignore index 3b13a74..d6893b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,31 @@ +# Hugo .hugo_build.lock -public +public/ +resources/_gen/ -# for npm devcontainer cli -package-lock.json -package.json +# Node.js / NPM +node_modules/ +# Test outputs +tmp/ +.htmltest/ + +# devbox +.devbox/ + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# OS +.DS_Store +Thumbs.db + +# Logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/.htmltest.yml b/.htmltest.yml new file mode 100644 index 0000000..d70687f --- /dev/null +++ b/.htmltest.yml @@ -0,0 +1,10 @@ +DirectoryPath: "public" +CheckExternal: true +CheckInternalHash: true +IgnoreURLs: + - "^https://example\\.docsy\\.dev" + - "^https://example\\.com" + - "^http://localhost" +IgnoreDirectoryMissingTrailingSlash: true +IgnoreAltMissing: true +CheckDoctype: true diff --git a/.htmlvalidate.json b/.htmlvalidate.json new file mode 100644 index 0000000..8019e35 --- /dev/null +++ b/.htmlvalidate.json @@ -0,0 +1,12 @@ +{ + "extends": ["html-validate:recommended"], + "rules": { + "no-inline-style": "off", + "require-sri": "off", + "no-trailing-whitespace": "off", + "void-style": "off" + }, + "elements": [ + "html5" + ] +} diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 0000000..8c37aec --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,8 @@ +{ + "default": true, + "MD013": false, + "MD033": false, + "MD041": false, + "MD024": { "siblings_only": true }, + "MD025": { "front_matter_title": "" } +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 0436b04..6212e98 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,22 @@ { - "peacock.remoteColor": "#61dafb" + "peacock.remoteColor": "#61dafb", + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#93e6fc", + "activityBar.background": "#93e6fc", + "activityBar.foreground": "#15202b", + "activityBar.inactiveForeground": "#15202b99", + "activityBarBadge.background": "#fa45d4", + "activityBarBadge.foreground": "#15202b", + "commandCenter.border": "#15202b99", + "sash.hoverBorder": "#93e6fc", + "statusBar.background": "#61dafb", + "statusBar.foreground": "#15202b", + "statusBarItem.hoverBackground": "#2fcefa", + "statusBarItem.remoteBackground": "#61dafb", + "statusBarItem.remoteForeground": "#15202b", + "titleBar.activeBackground": "#61dafb", + "titleBar.activeForeground": "#15202b", + "titleBar.inactiveBackground": "#61dafb99", + "titleBar.inactiveForeground": "#15202b99" + } } \ No newline at end of file diff --git a/DOCKER.md b/DOCKER.md new file mode 100644 index 0000000..2ff9b90 --- /dev/null +++ b/DOCKER.md @@ -0,0 +1,98 @@ +# Docker Build + +This project uses a multi-stage Docker build that matches the local devbox development environment. + +## Version Management + +All tool versions are defined in `.env.versions` as the single source of truth: + +```bash +NODE_VERSION=24.10.0 +GO_VERSION=1.25.1 +HUGO_VERSION=0.151.0 +``` + +These versions are used in: + +- `devbox.json` - Local development environment +- `Dockerfile` - Docker build arguments (with defaults) +- `.github/workflows/ci.yaml` - CI/CD pipeline + +**Important:** When updating versions, modify `.env.versions` and sync with `devbox.json`. + +## Local Build + +### Using Task (recommended) + +The easiest way to build the OCI image: + +```bash +task build:oci-image +``` + +This automatically: + +- Loads versions from `.env.versions` +- Builds the image with correct build arguments +- Tags with `latest` and git commit hash + +To build and test: + +```bash +task test:oci-image +``` + +### Automatic version loading + +Use the helper script to load versions from `.env.versions`: + +```bash +source scripts/get-versions.sh +``` + +This will show you the Docker build command with the correct versions. + +### Manual build + +```bash +docker build --network=host \ + --build-arg NODE_VERSION=24.10.0 \ + --build-arg GO_VERSION=1.25.1 \ + --build-arg HUGO_VERSION=0.151.0 \ + -t ipceicis-developerframework:latest . +``` + +### Test the image + +```bash +docker run -d -p 8080:80 --name hugo-test ipceicis-developerframework:latest +curl http://localhost:8080 +docker stop hugo-test && docker rm hugo-test +``` + +## CI/CD Pipeline + +The GitHub Actions workflow (`.github/workflows/ci.yaml`) automatically: + +1. Extracts versions from devbox environment +2. Builds multi-arch images (amd64 + arm64) +3. Pushes to the container registry with appropriate tags + +### Required Secrets + +Configure these secrets in your GitHub repository: + +- `PACKAGES_USER`: Container registry username +- `PACKAGES_TOKEN`: Container registry token/password + +## Image Structure + +- **Build Stage**: Uses Node.js base image, installs Go and Hugo +- **Runtime Stage**: Uses nginx:alpine to serve static content (~50MB) + +The build process: + +1. Installs npm dependencies +2. Downloads Hugo modules +3. Builds static site with `hugo --gc --minify` +4. Copies built site to minimal nginx container diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..dd480d0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,69 @@ +# Build arguments for version pinning (matching devbox.json) +ARG NODE_VERSION=24.10.0 +ARG GO_VERSION=1.25.1 +ARG HUGO_VERSION=0.151.0 + +# Build stage - use same versions as local devbox environment +FROM node:${NODE_VERSION}-bookworm AS builder + +# Get target architecture for multi-platform builds +ARG TARGETARCH + +# Install Git (needed for Hugo's enableGitInfo) +RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/* + +# Install Go (map TARGETARCH: amd64->amd64, arm64->arm64) +ARG GO_VERSION +RUN wget -q https://go.dev/dl/go${GO_VERSION}.linux-${TARGETARCH}.tar.gz && \ + tar -C /usr/local -xzf go${GO_VERSION}.linux-${TARGETARCH}.tar.gz && \ + rm go${GO_VERSION}.linux-${TARGETARCH}.tar.gz + +ENV PATH="/usr/local/go/bin:${PATH}" +ENV GOPATH="/go" +ENV PATH="${GOPATH}/bin:${PATH}" + +# Install Hugo extended (map TARGETARCH: amd64->amd64, arm64->arm64) +ARG HUGO_VERSION +RUN wget -q https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-${TARGETARCH}.tar.gz && \ + tar -xzf hugo_extended_${HUGO_VERSION}_linux-${TARGETARCH}.tar.gz && \ + mv hugo /usr/local/bin/ && \ + rm hugo_extended_${HUGO_VERSION}_linux-${TARGETARCH}.tar.gz && \ + hugo version + +WORKDIR /src + +# Copy package files and install npm dependencies +COPY package*.json ./ +RUN npm ci + +# Copy all source files +COPY . . + +# Build Hugo site (Git info wird aus dem aktuellen Kontext genommen, nicht aus .git) +# Hugo sucht nach .git, findet es nicht, und überspringt Git-Info automatisch +RUN hugo --gc --minify + +# Runtime stage - nginx to serve static content +FROM nginx:1.27-alpine + +# Copy built site from builder +COPY --from=builder /src/public /usr/share/nginx/html + +# Copy custom nginx config +RUN echo 'server {' > /etc/nginx/conf.d/default.conf && \ + echo ' listen 80;' >> /etc/nginx/conf.d/default.conf && \ + echo ' server_name _;' >> /etc/nginx/conf.d/default.conf && \ + echo ' root /usr/share/nginx/html;' >> /etc/nginx/conf.d/default.conf && \ + echo ' index index.html;' >> /etc/nginx/conf.d/default.conf && \ + echo '' >> /etc/nginx/conf.d/default.conf && \ + echo ' location / {' >> /etc/nginx/conf.d/default.conf && \ + echo ' try_files $uri $uri/ /index.html;' >> /etc/nginx/conf.d/default.conf && \ + echo ' }' >> /etc/nginx/conf.d/default.conf && \ + echo '' >> /etc/nginx/conf.d/default.conf && \ + echo ' gzip on;' >> /etc/nginx/conf.d/default.conf && \ + echo ' gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;' >> /etc/nginx/conf.d/default.conf && \ + echo '}' >> /etc/nginx/conf.d/default.conf + +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/LIKEC4-QUICKSTART.md b/LIKEC4-QUICKSTART.md new file mode 100644 index 0000000..38cc355 --- /dev/null +++ b/LIKEC4-QUICKSTART.md @@ -0,0 +1,112 @@ +# LikeC4 Integration - Quick Start + +Dieses Repository enthält jetzt die LikeC4-Architekturdokumentation aus edp-doc mit vollständiger Git-Historie. + +## Was wurde gemacht? + +1. ✅ **LikeC4-Modelle migriert** - `resources/likec4/` enthält alle C4-Modelle mit Git-Historie +2. ✅ **Hugo-Integration erstellt** - CSS, JS und Loader-Scripte für Hugo/Docsy +3. ✅ **Beispielseiten erstellt** - Dokumentation unter `content/en/docs/architecture/` +4. ✅ **Konfiguration** - `hugo.toml` und Layout-Hooks konfiguriert + +## Nächste Schritte + +### 1. Webcomponent generieren + +```bash +cd resources/likec4 + +# Dependencies installieren (nur einmalig) +npm install + +# Webcomponent generieren +npx likec4 codegen webcomponent \ + --webcomponent-prefix likec4 \ + --outfile ../../static/js/likec4-webcomponent.js +``` + +Dies erzeugt `static/js/likec4-webcomponent.js` (~2-3 MB). + +### 2. Hugo Server starten + +```bash +# Im Repository-Root +hugo server -D + +# Öffne http://localhost:1313/docs/architecture/highlevelarch/ +``` + +### 3. Änderungen committen + +```bash +git add resources/likec4/ +git add static/ +git add layouts/ +git add content/en/docs/architecture/ +git add hugo.toml +git commit -m "feat: integrate LikeC4 architecture documentation from edp-doc" +``` + +## Verfügbare Seiten + +- `/docs/architecture/` - Architektur-Übersicht +- `/docs/architecture/highlevelarch/` - High-Level Architektur mit interaktivem Diagramm +- `/docs/architecture/setup/` - Setup und Verwendungs-Anleitung + +## Workflow für Architektur-Änderungen + +1. **Modelle bearbeiten**: `.c4` Dateien in `resources/likec4/models/` oder `views/` +2. **Vorschau**: `cd resources/likec4 && npx likec4 start` (öffnet http://localhost:5173) +3. **Generieren**: Webcomponent neu generieren (siehe oben) +4. **Testen**: Hugo Server starten und Seiten prüfen +5. **Committen**: Sowohl `.c4` Dateien als auch `static/js/likec4-webcomponent.js` + +## Technische Details + +### Integration-Komponenten + +- `resources/likec4/` - LikeC4 Quellcode (migriert mit Git-Historie) +- `static/js/likec4-loader.js` - Dynamischer Module Loader +- `static/css/likec4-styles.css` - Styling inkl. Dark Mode +- `layouts/partials/hooks/head-end.html` - Hugo Hook für JS/CSS Einbindung +- `hugo.toml` - Konfiguration (`params.likec4.enable = true`) + +### Verwendung in Markdown + +```html +
+
+ Dein Diagramm-Titel +
+ +
+ Loading... +
+
+``` + +### Verfügbare View-IDs finden + +```bash +cd resources/likec4 +grep -r "view\s\+\w" views/ models/ --include="*.c4" +``` + +## Häufige View-IDs + +- `otc-faas` - OTC FaaS Deployment +- `edp` - EDP Übersicht +- `landscape` - Developer Landscape +- `edpbuilderworkflow` - Builder Workflow +- `keycloak`, `forgejo`, `argoCD`, etc. - Komponenten-Views + +## Migration von edp-doc + +Dieses Repository ist jetzt die primäre Quelle für LikeC4-Architektur. Das edp-doc Repository kann diese Modelle bei Bedarf als Git Submodule referenzieren. + +## Support + +Bei Problemen siehe: +- `resources/likec4/INTEGRATION.md` - Detaillierte Integration-Dokumentation +- `content/en/docs/architecture/setup.md` - Setup-Anleitung +- https://likec4.dev/ - LikeC4 Dokumentation diff --git a/README-developer.md b/README-developer.md new file mode 100644 index 0000000..17caefe --- /dev/null +++ b/README-developer.md @@ -0,0 +1,311 @@ +# Developer Guide - IPCEI-CIS Developer Framework + +## 🚀 Quick Start + +### Prerequisites + +Install [Devbox](https://www.jetify.com/devbox/): +```bash +curl -fsSL https://get.jetify.com/devbox | bash +``` + +### Setup + +1. Clone the repository +2. Start devbox shell: +```bash +devbox shell +``` + +Devbox automatically installs all required tools: +- Hugo (v0.151.0+extended) +- Go (v1.25.1) +- Node.js (v24.10.0) +- Dart Sass +- htmltest +- go-task + +## 📚 Technology Stack + +### Hugo (v0.151.0+extended) + +Hugo is a fast static site generator. This project uses Hugo in extended mode with: +- **Docsy Theme** (v0.12.0) - Documentation theme with responsive design +- **Bootstrap 5.3.8** - UI framework +- **PostCSS** - CSS processing + +### Docsy Theme + +Docsy is a Hugo theme optimized for technical documentation: +- Multi-language support +- Search functionality +- Navigation menu system +- Code syntax highlighting +- Responsive design + +Key directories: +- `content/en/` - English content (Markdown files) +- `layouts/` - Custom layout overrides +- `assets/scss/` - Custom styles +- `static/` - Static assets (images, etc.) + +### Task (Taskfile) + +Task is a task runner / build tool that replaces Makefiles. It uses `Taskfile.yml` for defining tasks. + +## 🛠️ Development Workflow + +### Using Task (Recommended) + +View all available tasks: +```bash +task +# or +task --list +``` + +Common tasks: + +#### Development +```bash +task serve # Start Hugo dev server (http://localhost:1313) +task build # Build production site +task build:dev # Build development site +task clean # Clean build artifacts +``` + +#### Testing +```bash +task test # Run all tests +task test:quick # Run quick tests (without link checking) +task test:build # Test if Hugo builds successfully +task test:markdown # Lint Markdown files +task test:html # Validate HTML output +task test:links # Check all links (internal & external) +``` + +#### Dependencies +```bash +task deps:install # Install all dependencies +task deps:update # Update all dependencies +``` + +#### CI/CD +```bash +task ci # Run full CI pipeline locally +``` + +### Using NPM Scripts (Alternative) + +If you prefer NPM: +```bash +npm test # All tests +npm run test:quick # Quick tests +npm run test:build # Build test +npm run test:markdown # Markdown linting +npm run test:html # HTML validation +npm run test:links # Link checking +``` + +### Using Hugo Directly + +```bash +# Development server +hugo server + +# Production build +hugo --gc --minify + +# Check version +hugo version +``` + +## 📁 Project Structure + +``` +. +├── content/ # Content files (Markdown) +│ └── en/ # English content +│ ├── docs/ # Documentation +│ └── blog/ # Blog posts +├── layouts/ # Custom HTML templates +├── static/ # Static files +├── assets/ # Assets (SCSS, images) +├── public/ # Generated site (not in Git) +├── resources/ # Hugo cache (not in Git) +├── hugo.toml # Hugo configuration +├── go.mod # Hugo modules (Docsy theme) +├── Taskfile.yml # Task definitions +├── package.json # NPM dependencies & scripts +└── devbox.json # Devbox configuration +``` + +## 📝 Content Creation + +### Creating New Pages + +```bash +# Using Hugo +hugo new docs/concepts/my-page.md +hugo new blog/my-post.md + +# Or create manually in content/en/ +``` + +### Front Matter + +Every content file needs front matter: + +```yaml +--- +title: "My Page Title" +description: "Page description" +date: 2025-10-23 +weight: 10 # Order in navigation +--- + +Your content here... +``` + +### Using Docsy Shortcodes + +Docsy provides helpful shortcodes: + +#### Tabbed Panes +```markdown +{{}} + {{}} + Content for tab 1 + {{}} + {{}} + Content for tab 2 + {{}} +{{}} +``` + +#### Code Blocks +```markdown +{{}} +key: value +{{}} +``` + +#### Alerts +```markdown +{{}} +Important information +{{}} +``` + +## 🧪 Testing + +See [TESTING.md](TESTING.md) for detailed testing documentation. + +Quick reference: +- `task test` - Run all tests before committing +- `task test:quick` - Fast checks during development +- Tests run automatically on GitHub Actions for PRs + +## 🔧 Configuration + +### Hugo Configuration (`hugo.toml`) + +Main settings: +- `baseURL` - Site URL +- `title` - Site title +- `defaultContentLanguage` - Default language +- Module imports (Docsy theme) + +### Docsy Configuration + +Docsy-specific settings in `hugo.toml`: +```toml +[params] +github_repo = "your-repo" +github_branch = "main" +``` + +### Devbox Configuration (`devbox.json`) + +Defines all development tools and their versions. + +Update tools: +```bash +devbox update # Update all packages +task deps:update # Update all dependencies (devbox + npm + hugo modules) +``` + +## 🎨 Styling + +Custom styles in `assets/scss/_variables_project.scss`: +```scss +// Override Bootstrap/Docsy variables +$primary: #your-color; +``` + +Hugo will process SCSS automatically with PostCSS and Autoprefixer. + +## 🌐 Multi-Language Support + +Add new language: +1. Create `content//` directory +2. Add language config in `hugo.toml`: +```toml +[languages.] +languageName = "Language Name" +weight = 2 +``` + +## 🐛 Troubleshooting + +### "Module not found" errors +```bash +hugo mod get -u +hugo mod tidy +``` + +### PostCSS errors +```bash +npm install +``` + +### Build errors +```bash +task clean +task build +``` + +### Devbox issues +```bash +devbox update +devbox shell --refresh +``` + +## 📚 Resources + +- [Hugo Documentation](https://gohugo.io/documentation/) +- [Docsy Documentation](https://www.docsy.dev/docs/) +- [Taskfile Documentation](https://taskfile.dev/) +- [Devbox Documentation](https://www.jetify.com/devbox/docs/) + +## 🤝 Contributing + +1. Create a feature branch +2. Make your changes +3. Run tests: `task test` +4. Commit with semantic messages: + - `feat(scope): add new feature` + - `fix(scope): fix bug` + - `docs(scope): update documentation` + - `test(scope): add tests` + - `chore(scope): maintenance` +5. Push and create pull request + +## 📦 Deployment + +Build for production: +```bash +task build +``` + +Output will be in `public/` directory, ready for deployment. diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..f435beb --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,207 @@ +# Release Process + +This document describes the release process for the IPCEI-CIS Developer Framework. + +## Overview + +The project uses **Semantic Versioning** (SemVer) for releases. Each release is triggered by a Git tag and automatically creates: + +- Multi-platform Docker images (linux/amd64, linux/arm64) +- Forgejo release with release notes +- Automatically generated changelog + +## Versioning Schema + +We follow [Semantic Versioning 2.0.0](https://semver.org/): + +- `MAJOR.MINOR.PATCH` (e.g., `v1.2.3`) +- **MAJOR**: Breaking changes (incompatible API changes) +- **MINOR**: New features (backwards compatible) +- **PATCH**: Bug fixes (backwards compatible) + +## Creating a Release + +### 1. Check Prerequisites + +Ensure that: + +- All tests are passing (`task test`) +- CI pipeline runs successfully +- All desired changes are in the `main` branch +- You have the latest version: `git pull origin main` + +### 2. Determine Version + +Determine the new version number based on the changes: + +```bash +# Show current tag +git describe --tags --abbrev=0 + +# Show commits since last release +git log $(git describe --tags --abbrev=0)..HEAD --oneline +``` + +### 3. Create Tag + +Create an annotated tag with the new version: + +```bash +# For a new patch release (e.g., v1.2.3 → v1.2.4) +git tag -a v1.2.4 -m "Release v1.2.4" + +# For a minor release (e.g., v1.2.3 → v1.3.0) +git tag -a v1.3.0 -m "Release v1.3.0" + +# For a major release (e.g., v1.2.3 → v2.0.0) +git tag -a v2.0.0 -m "Release v2.0.0" +``` + +### 4. Push Tag + +Push the tag to the repository - this triggers the release pipeline: + +```bash +git push origin v1.2.4 +``` + +### 5. Monitor Release Pipeline + +The release pipeline (`release.yaml`) starts automatically: + +1. Open the Actions tab in Forgejo +2. Monitor the `release` workflow +3. On success: Release is visible on the Releases page + +## What Happens Automatically? + +The release pipeline (`release.yaml`) performs the following steps: + +1. **Build Docker Images** + - Multi-platform build (AMD64 + ARM64) + - Images are tagged with: + - `vX.Y.Z` (exact version, e.g., `v1.2.3`) + - `vX.Y` (minor version, e.g., `v1.2`) + - `vX` (major version, e.g., `v1`) + - `latest` (latest release) + +2. **Push Images** + - To the container registry (Forgejo Packages) + +3. **Generate Changelog** + - Automatically from Git commits since last release + - Format: `- Commit Message (hash)` + +4. **Create Forgejo Release** + - With generated release notes + - Contains build versions (Node, Go, Hugo) + - Docker pull commands + - Changelog + +## Using Docker Images + +After a successful release, the images are available: + +```bash +# Specific version +docker pull /:v1.2.3 + +# Latest +docker pull /:latest + +# Major/Minor version +docker pull /:v1 +docker pull /:v1.2 +``` + +## Best Practices + +### Commit Messages + +Use meaningful commit messages, as they will appear in the changelog: + +```bash +# Good +git commit -m "fix: correct multi-platform Docker build for ARM64" +git commit -m "feat: add automatic release pipeline" +git commit -m "docs: update RELEASE.md" + +# Bad +git commit -m "fix stuff" +git commit -m "wip" +``` + +**Conventional Commits** help with categorization: + +- `feat:` - New features +- `fix:` - Bug fixes +- `docs:` - Documentation +- `chore:` - Maintenance +- `refactor:` - Code restructuring +- `test:` - Tests + +### Release Frequency + +- **Patch releases**: As needed (bug fixes) +- **Minor releases**: Regular (new features) +- **Major releases**: Rare (breaking changes) + +### Hotfixes + +For urgent bug fixes: + +1. Create branch from last release tag +2. Fix the bug +3. Create new patch release + +```bash +git checkout v1.2.3 +git checkout -b hotfix/critical-bug +# Implement fix +git commit -m "fix: critical bugfix" +git tag -a v1.2.4 -m "Release v1.2.4 - Hotfix" +git push origin v1.2.4 +``` + +## Troubleshooting + +### Release Pipeline Fails + +1. **Check Secrets**: `PACKAGES_USER`, `PACKAGES_TOKEN` must be set +2. **Check Logs**: Open the failed workflow in the Actions tab +3. **Local Test**: + + ```bash + task build:oci-image + task test:oci-image + ``` + +### Delete/Correct Tag + +**Locally:** + +```bash +git tag -d v1.2.3 +``` + +**Remote:** + +```bash +git push --delete origin v1.2.3 +``` + +⚠️ **Warning**: Releases should not be deleted after they have been published! + +### Edit Release Notes Afterwards + +Release notes can be manually edited in Forgejo: + +1. Go to Releases +2. Click on the release +3. Click "Edit" + +## Further Information + +- [Semantic Versioning](https://semver.org/) +- [Conventional Commits](https://www.conventionalcommits.org/) +- [Keep a Changelog](https://keepachangelog.com/) diff --git a/TESTING.md b/TESTING.md new file mode 100644 index 0000000..1488139 --- /dev/null +++ b/TESTING.md @@ -0,0 +1,62 @@ +# Hugo Site Testing + +Dieses Projekt verwendet mehrere automatisierte Tests zur Qualitätssicherung. + +## Verfügbare Tests + +### 1. Build-Test +```bash +npm run test:build +``` +Prüft ob die Hugo-Seite überhaupt baut und zeigt Warnungen/Fehler an. + +### 2. Markdown-Linting +```bash +npm run test:markdown +``` +Validiert Markdown-Dateien auf Stilprobleme und Best Practices. + +### 3. HTML-Validierung +```bash +npm run test:html +``` +Prüft die generierte HTML auf HTML5-Konformität. + +### 4. Link-Checker +```bash +npm run test:links +``` +Testet alle internen und externen Links auf Gültigkeit. + +### Alle Tests ausführen +```bash +npm test +``` + +### Schnelle Tests (ohne Link-Check) +```bash +npm run test:quick +``` + +## Konfigurationsdateien + +- `.htmltest.yml` - Link-Checker-Konfiguration +- `.htmlvalidate.json` - HTML-Validierungs-Regeln +- `.markdownlint.json` - Markdown-Linting-Regeln + +## CI/CD Integration + +GitHub Actions führt diese Tests automatisch bei jedem Push/PR aus: +- `.github/workflows/test.yml` + +## Lokale Entwicklung + +Vor dem Commit empfohlen: +```bash +npm run test:quick # Schnelle Tests +``` + +Vor dem Push: +```bash +npm test # Alle Tests inkl. Link-Check +``` diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..5592f19 --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,122 @@ +version: '3' + +vars: + HUGO_CMD: hugo + NPM_CMD: npm + +tasks: + default: + desc: Show available tasks + cmds: + - task --list + + # Build tasks + build: + desc: Build Hugo site + cmds: + - "{{.HUGO_CMD}} --gc --minify" + + build:dev: + desc: Build Hugo site for development + cmds: + - "{{.HUGO_CMD}}" + + serve: + desc: Start Hugo dev server + cmds: + - "{{.HUGO_CMD}} server" + + clean: + desc: Clean build artifacts + cmds: + - rm -rf public resources/_gen .hugo_build.lock + + # Test tasks + test: + desc: Run all tests + deps: + - test:build + - test:markdown + - test:html + - test:links + + test:quick: + desc: Run quick tests (without link check) + deps: + - test:build + - test:markdown + + test:build: + desc: Test Hugo build + cmds: + - "{{.HUGO_CMD}} --gc --minify --logLevel info" + + test:markdown: + desc: Lint markdown files + cmds: + - "{{.NPM_CMD}} run test:markdown" + + test:html: + desc: Validate HTML + cmds: + - "{{.NPM_CMD}} run test:html" + + test:links: + desc: Check links + cmds: + - htmltest + + # Development tasks + deps:install: + desc: Install all dependencies + cmds: + - "{{.NPM_CMD}} install" + - "{{.HUGO_CMD}} mod get -u" + - "{{.HUGO_CMD}} mod tidy" + + deps:update: + desc: Update dependencies + cmds: + - devbox update + - "{{.NPM_CMD}} update" + - "{{.HUGO_CMD}} mod get -u" + + # CI/CD + ci: + desc: Run CI pipeline locally + deps: + - test + + build:oci-image: + desc: Build OCI/Docker image with versions from .env.versions + cmds: + - | + set -a + source .env.versions + set +a + echo "Building OCI image with versions:" + echo " NODE_VERSION=${NODE_VERSION}" + echo " GO_VERSION=${GO_VERSION}" + echo " HUGO_VERSION=${HUGO_VERSION}" + docker build --network=host \ + --build-arg NODE_VERSION=${NODE_VERSION} \ + --build-arg GO_VERSION=${GO_VERSION} \ + --build-arg HUGO_VERSION=${HUGO_VERSION} \ + -t ipceicis-developerframework:latest \ + -t ipceicis-developerframework:$(git rev-parse --short HEAD) \ + . + + test:oci-image: + desc: Test the built OCI image + deps: + - build:oci-image + cmds: + - | + echo "Starting container on port 8080..." + docker run -d -p 8080:80 --name hugo-test ipceicis-developerframework:latest + sleep 2 + echo "Testing endpoint..." + curl -f http://localhost:8080 > /dev/null && echo "✓ Container is running and responding" || echo "✗ Container test failed" + echo "Cleaning up..." + docker stop hugo-test + docker rm hugo-test diff --git a/VERSIONS.md b/VERSIONS.md new file mode 100644 index 0000000..f1f8401 --- /dev/null +++ b/VERSIONS.md @@ -0,0 +1,69 @@ +# Version Management + +## Single Source of Truth: `.env.versions` + +All tool versions are centrally managed in `.env.versions`: + +```bash +NODE_VERSION=24.10.0 +GO_VERSION=1.25.1 +HUGO_VERSION=0.151.0 +``` + +## Where are versions used? + +1. **devbox.json** - Local development environment (manual sync required) +2. **Dockerfile** - Build arguments with defaults +3. **.github/workflows/ci.yaml** - CI/CD pipeline (automatic) +4. **scripts/get-versions.sh** - Helper script for local builds + +## Updating Versions + +### Step 1: Update `.env.versions` + +Edit the file with new versions: + +```bash +NODE_VERSION=24.12.0 +GO_VERSION=1.25.2 +HUGO_VERSION=0.152.0 +``` + +### Step 2: Update `devbox.json` + +Manually sync the versions in `devbox.json`: + +```json +{ + "packages": [ + "hugo@0.152.0", + "go@1.25.2", + "nodejs@24.12.0", + ... + ] +} +``` + +### Step 3: Rebuild devbox environment + +```bash +devbox shell --refresh +``` + +### Step 4: Test Docker build + +```bash +source scripts/get-versions.sh +# Follow the printed docker build command +``` + +## Why not automatic devbox sync? + +- devbox.json uses a different version format (e.g., `@latest` vs specific versions) +- devbox package names may differ from Docker image names +- Keeps devbox.json simple and readable +- Manual sync ensures intentional version updates + +## CI/CD + +The GitHub Actions workflow automatically loads versions from `.env.versions` - no manual intervention needed. diff --git a/assets/fonts/TeleNeoOffice-Bold.a7bb592b.ttf b/assets/fonts/TeleNeoOffice-Bold.a7bb592b.ttf new file mode 100644 index 0000000..88d13e1 Binary files /dev/null and b/assets/fonts/TeleNeoOffice-Bold.a7bb592b.ttf differ diff --git a/assets/fonts/TeleNeoOffice-ExtraBold.fbe9fe42.ttf b/assets/fonts/TeleNeoOffice-ExtraBold.fbe9fe42.ttf new file mode 100644 index 0000000..158ffc8 Binary files /dev/null and b/assets/fonts/TeleNeoOffice-ExtraBold.fbe9fe42.ttf differ diff --git a/assets/fonts/TeleNeoOffice-Medium.79fb426d.ttf b/assets/fonts/TeleNeoOffice-Medium.79fb426d.ttf new file mode 100644 index 0000000..6ceef93 Binary files /dev/null and b/assets/fonts/TeleNeoOffice-Medium.79fb426d.ttf differ diff --git a/assets/fonts/TeleNeoOffice-Regular.b0a2cff1.ttf b/assets/fonts/TeleNeoOffice-Regular.b0a2cff1.ttf new file mode 100644 index 0000000..672a9b8 Binary files /dev/null and b/assets/fonts/TeleNeoOffice-Regular.b0a2cff1.ttf differ diff --git a/assets/fonts/TeleNeoOffice-Thin.53627df9.ttf b/assets/fonts/TeleNeoOffice-Thin.53627df9.ttf new file mode 100644 index 0000000..edeb0d9 Binary files /dev/null and b/assets/fonts/TeleNeoOffice-Thin.53627df9.ttf differ diff --git a/assets/scss/_variables_project.scss b/assets/scss/_variables_project.scss index 2569027..65df7b9 100644 --- a/assets/scss/_variables_project.scss +++ b/assets/scss/_variables_project.scss @@ -1,6 +1,460 @@ /* + * Telekom-inspired Theme Variables + * Based on https://edp.buildth.ing Telekom Design System + */ -Add styles or override variables from the theme here. +// Bootstrap/Docsy Variable Overrides (must be before imports) +$primary: #E20074 !default; +$secondary: #B6B6B6 !default; +$success: #00b367 !default; +$info: #0070ad !default; +$warning: #ffcc00 !default; +$danger: #d52b1e !default; +$dark: #000000 !default; +$light: #f9fafb !default; -*/ +// Link colors +$link-color: #E20074 !default; +$link-hover-color: #C2005E !default; + +// Body +$body-bg: #ffffff !default; +$body-color: #000000 !default; + +// Navbar +$navbar-light-color: #000000 !default; +$navbar-light-hover-color: #E20074 !default; +$navbar-light-active-color: #E20074 !default; + +// Fonts +$font-family-sans-serif: 'TeleNeo', -apple-system, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif !default; +$font-family-base: $font-family-sans-serif !default; + +// Telekom TeleNeo Fonts +@font-face { + font-family: 'TeleNeo'; + src: url('../fonts/TeleNeoOffice-Thin.53627df9.ttf') format('truetype'); + font-weight: 300; + font-style: normal; +} + +@font-face { + font-family: 'TeleNeo'; + src: url('../fonts/TeleNeoOffice-Regular.b0a2cff1.ttf') format('truetype'); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'TeleNeo'; + src: url('../fonts/TeleNeoOffice-Medium.79fb426d.ttf') format('truetype'); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: 'TeleNeo'; + src: url('../fonts/TeleNeoOffice-Bold.a7bb592b.ttf') format('truetype'); + font-weight: 600; + font-style: normal; +} + +@font-face { + font-family: 'TeleNeo'; + src: url('../fonts/TeleNeoOffice-ExtraBold.fbe9fe42.ttf') format('truetype'); + font-weight: 700; + font-style: normal; +} + +// Primary Colors - Telekom Magenta +:root { + // Telekom Primary Color (Magenta) + --color-primary: #E20074; + --color-primary-contrast: #ffffff; + --color-primary-dark-1: #C2005E; + --color-primary-dark-2: #A5004D; + --color-primary-dark-3: #87003D; + --color-primary-light-1: #E7338A; + --color-primary-light-2: #EC66A1; + --color-primary-light-3: #F299B8; + --color-primary-light-4: #F7CCCF; + --color-primary-light-5: #FCEFF6; + --color-primary-light-6: #FFF5FA; + + // Secondary Colors + --color-secondary: #B6B6B6; + --color-secondary-dark: #6a7178; + --color-secondary-light: #f9fafb; + + // Semantic Colors + --color-success: #00b367; + --color-warning: #ffcc00; + --color-error: #d52b1e; + --color-info: #0070ad; + + // Text Colors + --color-text: #000000; + --color-text-light: #666666; + --color-text-dark: #000000; + + // Background Colors + --color-body: #ffffff; + --color-card: #F1F1F1; + --color-hover: #F1F1F1; + --color-active: #F1F1F1; + + // Navigation + --color-nav-bg: #ffffff; + --color-nav-text: #000000; + --nav-border-color: #B6B6B6; + + // UI Elements + --color-input-background: #ffffff; + --color-input-border: #cccccc; + --color-input-text: #000000; + --color-box-body: #f2f2f2; + --color-box-header: #e6e6e6; + + // Shadows & Overlays + --color-shadow: rgba(0, 0, 0, 0.15); + --color-overlay-backdrop: rgba(0, 0, 0, 0.5); + + // Font Settings + --font-family-base: 'TeleNeo', -apple-system, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif; + --nav-text-font-weight: 600; +} + +// Apply TeleNeo font globally +body { + font-family: var(--font-family-base); +} + +// Dark Mode Support +@media (prefers-color-scheme: dark) { + :root { + // Primary Colors remain same + --color-primary: #E20074; + --color-primary-contrast: #000000; + + // Dark Mode Adjustments + --color-primary-dark-1: #E7338A; + --color-primary-dark-2: #EC66A1; + --color-primary-light-1: #C2005E; + --color-primary-light-2: #A5004D; + + // Secondary Colors for Dark Mode + --color-secondary: #1c1c1e; + --color-secondary-dark: #4D4D4D; + --color-secondary-light: #0D0D0D; + + // Text Colors + --color-text: #FFFFFF; + --color-text-light: #CCCCCC; + --color-text-dark: #FFFFFF; + + // Background Colors + --color-body: #000000; + --color-card: #1c1c1e; + --color-hover: #1c1c1e; + --color-active: #0D0D0D; + + // Navigation + --color-nav-bg: #000000; + --color-nav-text: #FFFFFF; + + // UI Elements + --color-input-background: #1c1c1e; + --color-input-border: #4D4D4D; + --color-input-text: #FFFFFF; + --color-box-body: #000000; + --color-box-header: #1A1A1A; + + // Semantic Colors for Dark Mode + --color-success: #00A94F; + --color-warning: #FFCC00; + --color-error: #D52B1E; + --color-info: #0070AD; + + // Shadows + --color-shadow: rgba(0, 0, 0, 0.35); + } +} + +// Telekom-inspired Component Styling +.td-navbar { + background-color: var(--color-nav-bg) !important; + border-bottom: 1px solid var(--nav-border-color); + + .navbar-brand, + .nav-link { + color: var(--color-nav-text) !important; + font-weight: var(--nav-text-font-weight); + } + + .nav-link:hover, + .nav-link.active { + color: var(--color-primary) !important; + background: transparent !important; + } +} + +// Primary Buttons - Telekom Magenta +.btn-primary { + background-color: var(--color-primary) !important; + border-color: var(--color-primary) !important; + color: var(--color-primary-contrast) !important; + + &:hover { + background-color: var(--color-primary-dark-1) !important; + border-color: var(--color-primary-dark-1) !important; + } + + &:active, + &:focus { + background-color: var(--color-primary-dark-2) !important; + border-color: var(--color-primary-dark-2) !important; + } +} + +// Links +a { + color: var(--color-primary); + + &:hover { + color: var(--color-primary-dark-1); + } +} + +// Cards with Telekom Style +.card { + background-color: var(--color-card); + border: 1px solid var(--nav-border-color); + + &:hover { + background-color: var(--color-hover); + } +} + +// Active/Selected States - REMOVED harsh black backgrounds +// Now using soft Telekom colors instead + +// Sidebar Navigation +.td-sidebar-nav { + .td-sidebar-link { + &:hover { + background-color: var(--color-primary-light-5) !important; + color: var(--color-primary) !important; + } + + &.active { + background-color: var(--color-primary-light-6); + color: var(--color-primary); + font-weight: 500; + border-left: 3px solid var(--color-primary); + } + } + + // All list items in sidebar + li a { + &:hover { + background-color: var(--color-primary-light-5) !important; + color: var(--color-primary) !important; + } + } +} + +// Main navigation tabs +.td-sidebar { + .td-sidebar-nav__section { + .ul-1 > li > a { + &.active, + &.td-sidebar-link--active { + background-color: var(--color-primary-light-6) !important; + color: var(--color-primary) !important; + font-weight: 500; + border-left: 3px solid var(--color-primary); + } + + &:hover { + background-color: var(--color-primary-light-5) !important; + color: var(--color-primary) !important; + } + } + + // All nested levels + li a:hover { + background-color: var(--color-primary-light-5) !important; + color: var(--color-primary) !important; + } + } +} + +// Top navigation breadcrumb area +.td-sidebar__inner { + .td-sidebar-nav__section-title { + &.active { + background-color: var(--color-primary-light-5) !important; + color: var(--color-primary) !important; + } + } +} + +// Breadcrumb navigation in header +.breadcrumb { + .active { + color: var(--color-primary) !important; + } + + a:hover { + color: var(--color-primary-dark-1) !important; + } +} + +// Remove harsh black backgrounds globally +.active, +.selected { + background-color: var(--color-primary-light-6) !important; + color: var(--color-primary) !important; +} + +// Softer hover states +*:hover { + transition: all 0.2s ease-in-out; +} + +// Override any dark/black hover backgrounds in navigation +nav, .td-sidebar, .td-sidebar-nav { + a:hover, + li:hover > a, + .nav-link:hover { + background-color: var(--color-primary-light-5) !important; + color: var(--color-primary) !important; + } +} + +// Code Blocks +pre, +code { + background-color: var(--color-box-body); + border: 1px solid var(--color-input-border); +} + +// Inline code (backticks in text) +code { + background-color: var(--color-primary-light-6); + color: var(--color-primary-dark-2); + padding: 2px 6px; + border-radius: 3px; + border: 1px solid var(--color-primary-light-3); + font-size: 0.9em; +} + +// Code blocks (fenced code) +pre { + background-color: var(--color-box-body); + border: 1px solid var(--color-input-border); + padding: 1rem; + border-radius: 4px; + + code { + background-color: transparent; + border: none; + padding: 0; + color: inherit; + } +} + +// Tables +table { + thead { + background-color: var(--color-box-header); + } + + tbody tr:hover { + background-color: var(--color-hover); + } +} + +// Alerts/Notifications +.alert-success { + background-color: var(--color-success); + border-color: var(--color-success); +} + +.alert-warning { + background-color: var(--color-warning); + border-color: var(--color-warning); + color: #000000; +} + +.alert-danger { + background-color: var(--color-error); + border-color: var(--color-error); +} + +.alert-info { + background-color: var(--color-info); + border-color: var(--color-info); +} + +// Docsy Homepage Components +.td-cover-block { + background-color: var(--color-primary) !important; + + h1, h2, h3, h4, h5, h6, p { + color: var(--color-primary-contrast) !important; + } +} + +.td-box { + background-color: var(--color-card); + border: 1px solid var(--nav-border-color); + + &:hover { + background-color: var(--color-hover); + border-color: var(--color-primary); + } + + &--primary { + background-color: var(--color-primary); + border-color: var(--color-primary); + color: var(--color-primary-contrast); + } + + &--secondary { + background-color: var(--color-secondary); + border-color: var(--color-secondary); + } +} + +// Hero/Cover sections +.td-cover { + background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark-2) 100%); + + .display-1, .display-2, .display-3, .display-4 { + color: var(--color-primary-contrast) !important; + } +} + +// Section backgrounds +.td-section { + &--primary { + background-color: var(--color-primary-light-6); + } + + &--secondary { + background-color: var(--color-secondary-light); + } +} + +// Feature boxes +.td-feature { + border: 1px solid var(--nav-border-color); + background-color: var(--color-card); + + &:hover { + border-color: var(--color-primary); + box-shadow: 0 4px 12px var(--color-shadow); + } +} diff --git a/content/en/blog/20250401_review.md b/content/en/blog/20250401_review.md new file mode 100644 index 0000000..a5a339d --- /dev/null +++ b/content/en/blog/20250401_review.md @@ -0,0 +1,84 @@ +# Review + +1) 09h35 Marco +business plan +issue: value of software, depreciation +FTE: around 100 overall, 3 full teams of developers +tax discussion + +10h04 Discussions + +2) 10h10 Julius + +3) 10h27 Sebastiano - DevDay bis 10h40 + +schriften bei votes größer - fragen sollten lesbar sein! + +devops is dead .... claim + + +4) Stephan bis 10h55 + +5) christopher 10h58 + +6) robert 11:11 +* app +* devops-pipelines +* edp in osc deployed + +7) michal has nothing to show + +8) evgenii wants to finish -- 11:30 + +9) patrick 11:32 + + +==== + +projekt management meeting + +workshops, externe teams + +customer episodes + +wem was wo prinzipien +| +Rollen, Personas + +weiter die perspektive des nutzers bekommen, inneres verlangen eines developers, mein anspruch an das EDP +(bekommen wir das hin, möchte ic damit arbeiten) + +level 2 erklimmen + +workshops halten + +senioren bekommen + + +level1: source code structure, artefakte builden, revision control, branching model, e.g. pull requesting, tests der software, local debugging +level2: automatisierung des artefakte-builds, versionsmgmt, milestones, tickets, issues, compliances an security +level3: deployment auf stages, feedback pipeline verhalten +level4: feedback app-verhalten (logs, metrics, alerts) + development loop +level5: 3rd level support in production + +level1: coding +source code structure, artefakte builden, revision control, branching model, e.g. pull requesting, tests der software, local debugging + +level2: reaching the outdside world with output +automatisierung des artefakte-builds, versionsmgmt, milestones, tickets, issues, compliances an security + +level3: run the app anywhere +deployment auf stages, feedback pipeline verhalten + +level4: monitoring the app +feedback app-verhalten (logs, metrics, alerts) + development loop + +level5: support +3rd level support in production (or any outer stage) + + +sprint 4 +leveraging säule +eigene app säule +chore säule + diff --git a/content/en/docs/architecture/_index.md b/content/en/docs/architecture/_index.md new file mode 100644 index 0000000..9efb5db --- /dev/null +++ b/content/en/docs/architecture/_index.md @@ -0,0 +1,9 @@ +--- +title: "Architecture" +linkTitle: "Architecture" +weight: 3 +description: > + System architecture documentation and interactive diagrams +--- + +This section contains architecture documentation for the IPCEI-CIS Developer Framework, including interactive C4 architecture diagrams. diff --git a/content/en/docs/architecture/highlevelarch.md b/content/en/docs/architecture/highlevelarch.md new file mode 100644 index 0000000..bc35440 --- /dev/null +++ b/content/en/docs/architecture/highlevelarch.md @@ -0,0 +1,125 @@ +--- +title: "High Level Architecture" +linkTitle: "High Level Architecture" +weight: 1 +description: > + Interactive high-level architecture overview of the Enterprise Development Platform +--- + +This document describes the high-level architecture of our Enterprise Development Platform (EDP) system. + +## Interactive Architecture Diagram + +
+
+ Enterprise Development Platform - OTC FaaS Deployment Architecture +
+ +
+ Loading architecture diagram... +
+
+ + + +{{< alert title="Interactive Diagram" >}} +The diagram above is interactive when viewed in a compatible browser. +You can click on components to explore the architecture details. + +**Note:** The interactive diagram requires the LikeC4 webcomponent to be generated. +See the [setup instructions]({{< ref "/docs/architecture/setup" >}}) for details. +{{< /alert >}} + +## Architecture Overview + +The Enterprise Development Platform consists of several key components working together to provide a comprehensive development and deployment environment. + +### Key Components + +1. **OTC Foundry** - Central management and orchestration layer +2. **Per-Tenant EDP** - Isolated development environments for each tenant +3. **FaaS Environment** - Function-as-a-Service deployment targets on Open Telekom Cloud +4. **Cloud Services** - Managed services including databases, storage, and monitoring + +### Deployment Environments + +- **Development Environment** (`*.t09.de`) - For platform team development and testing +- **Production Environment** (`*.buildth.ing`) - For production workloads and tenant services + +## Component Details + +The interactive diagram above shows the relationships between different components and how they interact within the system architecture. You can explore the diagram by clicking on different elements to see more details. + +### Infrastructure Components + +- **Kubernetes Clusters** - Container orchestration using OTC CCE (Cloud Container Engine) +- **ArgoCD** - GitOps continuous deployment and application lifecycle management +- **Forgejo** - Git repository management and CI/CD pipelines +- **Observability Stack** - Monitoring (Prometheus, Grafana), logging (Loki), and alerting + +### Security and Management + +- **Keycloak** - Identity and access management (IAM) +- **OpenBao** - Secrets management (Hashicorp Vault fork) +- **External Secrets Operator** - Kubernetes secrets integration +- **Crossplane** - Infrastructure as Code and cloud resource provisioning + +### Developer Experience + +- **Backstage** - Internal developer portal and service catalog +- **Forgejo Actions** - CI/CD pipeline execution +- **Development Workflows** - GitOps-based inner and outer loop workflows + +## Setup and Maintenance + +To update or modify the architecture diagrams: + +1. Edit the `.c4` files in `resources/likec4/` +2. Regenerate the webcomponent: + + ```bash + cd resources/likec4 + npx likec4 codegen webcomponent \ + --webcomponent-prefix likec4 \ + --outfile ../../static/js/likec4-webcomponent.js + ``` + +3. Commit both the model changes and the regenerated JavaScript file + +For more information, see the [LikeC4 Integration Guide]({{< ref "/docs/architecture/setup" >}}). diff --git a/content/en/docs/architecture/setup.md b/content/en/docs/architecture/setup.md new file mode 100644 index 0000000..cc5a69d --- /dev/null +++ b/content/en/docs/architecture/setup.md @@ -0,0 +1,291 @@ +--- +title: "LikeC4 Setup Guide" +linkTitle: "Setup" +weight: 10 +description: > + How to set up and use LikeC4 interactive architecture diagrams +--- + +This guide explains how to set up and use LikeC4 interactive architecture diagrams in this documentation. + +## Overview + +LikeC4 enables you to create interactive C4 architecture diagrams as code. The diagrams are defined in `.c4` files and compiled into a web component that can be embedded in any HTML page. + +## Prerequisites + +- Node.js (v18 or later) +- npm or yarn + +## Initial Setup + +### 1. Install Dependencies + +Navigate to the LikeC4 directory and install dependencies: + +```bash +cd resources/likec4 +npm install +``` + +### 2. Generate the Web Component + +Create the web component that Hugo will load: + +```bash +npx likec4 codegen webcomponent \ + --webcomponent-prefix likec4 \ + --outfile ../../static/js/likec4-webcomponent.js +``` + +This command: +- Reads all `.c4` files from `models/` and `views/` +- Generates a single JavaScript file with all architecture views +- Outputs to `static/js/likec4-webcomponent.js` + +### 3. Verify Integration + +The integration should already be configured in: + +- `hugo.toml` - Contains `params.likec4.enable = true` +- `layouts/partials/hooks/head-end.html` - Loads CSS and loader script +- `static/css/likec4-styles.css` - Diagram styling +- `static/js/likec4-loader.js` - Dynamic module loader + +## Directory Structure + +``` +resources/likec4/ +├── models/ # C4 model definitions +│ ├── components/ # Component models +│ ├── containers/ # Container models +│ ├── context/ # System context +│ └── code/ # Code-level workflows +├── views/ # View definitions +│ ├── deployment/ # Deployment views +│ ├── edp/ # EDP views +│ ├── high-level-concept/ # Conceptual views +│ └── dynamic/ # Process flows +├── package.json # Dependencies +└── INTEGRATION.md # Integration docs +``` + +## Using in Documentation + +### Basic Usage + +Add this to any Markdown file: + +```html +
+
+ Your Diagram Title +
+ +
+ Loading architecture diagram... +
+
+``` + +### Available View IDs + +To find available view IDs, search the `.c4` files: + +```bash +cd resources/likec4 +grep -r "view\s\+\w" views/ models/ --include="*.c4" +``` + +Common views: +- `otc-faas` - OTC FaaS deployment +- `edp` - EDP overview +- `landscape` - Developer landscape +- `edpbuilderworkflow` - Builder workflow +- `keycloak` - Keycloak component + +### With Hugo Alert + +Combine with Docsy alerts for better UX: + +```markdown +
+
+ System Architecture +
+ +
+ Loading... +
+
+ +{{}} +Click on components in the diagram to explore the architecture. +{{}} +``` + +## Workflow for Changes + +### 1. Modify Architecture Models + +Edit the `.c4` files in `resources/likec4/`: + +```bash +# Edit a model +vi resources/likec4/models/containers/argocd.c4 + +# Or edit a view +vi resources/likec4/views/deployment/otc/otc-faas.c4 +``` + +### 2. Preview Changes Locally + +Use the LikeC4 CLI to preview: + +```bash +cd resources/likec4 + +# Start preview server +npx likec4 start + +# Opens browser at http://localhost:5173 +``` + +### 3. Regenerate Web Component + +After making changes: + +```bash +cd resources/likec4 +npx likec4 codegen webcomponent \ + --webcomponent-prefix likec4 \ + --outfile ../../static/js/likec4-webcomponent.js +``` + +### 4. Test in Hugo + +Start the Hugo development server: + +```bash +# From repository root +hugo server -D + +# Open http://localhost:1313 +``` + +### 5. Commit Changes + +Commit both the model files and the regenerated web component: + +```bash +git add resources/likec4/ +git add static/js/likec4-webcomponent.js +git commit -m "feat: update architecture diagrams" +``` + +## Advanced Configuration + +### Custom Styling + +Modify `static/css/likec4-styles.css` to customize appearance: + +```css +.likec4-container { + height: 800px; /* Adjust height */ + border-radius: 8px; /* Rounder corners */ +} +``` + +### Multiple Diagrams Per Page + +You can include multiple diagrams on a single page: + +```html + +
+
Deployment View
+ +
Loading...
+
+ + +
+
Component View
+ +
Loading...
+
+``` + +### Disable for Specific Pages + +Add to page front matter: + +```yaml +--- +title: "My Page" +params: + disable_likec4: true +--- +``` + +Then update `layouts/partials/hooks/head-end.html`: + +```html +{{ if and .Site.Params.likec4.enable (not .Params.disable_likec4) }} + +{{ end }} +``` + +## Troubleshooting + +### Diagram Not Loading + +1. **Check browser console** (F12 → Console) +2. **Verify webcomponent exists:** + ```bash + ls -lh static/js/likec4-webcomponent.js + ``` +3. **Regenerate if missing:** + ```bash + cd resources/likec4 + npm install + npx likec4 codegen webcomponent \ + --webcomponent-prefix likec4 \ + --outfile ../../static/js/likec4-webcomponent.js + ``` + +### View Not Found + +- Check view ID matches exactly (case-sensitive) +- Search for the view in `.c4` files: + ```bash + grep -r "view otc-faas" resources/likec4/ + ``` + +### Styling Issues + +- Clear browser cache (Ctrl+Shift+R) +- Check `static/css/likec4-styles.css` is loaded in browser DevTools → Network + +### Build Errors + +If LikeC4 codegen fails: + +```bash +cd resources/likec4 +rm -rf node_modules package-lock.json +npm install +``` + +## Resources + +- [LikeC4 Documentation](https://likec4.dev/) +- [C4 Model](https://c4model.com/) +- [Web Components](https://developer.mozilla.org/en-US/docs/Web/Web_Components) +- [Hugo Documentation](https://gohugo.io/documentation/) + +## Migration Notes + +This LikeC4 integration was migrated from the edp-doc repository. This repository (`ipceicis-developerframework`) is now the primary source for architecture models. + +The edp-doc repository can reference these models via git submodule if needed. diff --git a/content/en/docs/decisions/0001-pipeline-tools.md b/content/en/docs/decisions/0001-pipeline-tools.md index 311ab33..04dd838 100644 --- a/content/en/docs/decisions/0001-pipeline-tools.md +++ b/content/en/docs/decisions/0001-pipeline-tools.md @@ -10,25 +10,25 @@ ArgoCD is considered set in stone as the tool to manage the deployment of applic In general, there are 2 decisions to make: -- What tools should we use to execute the pipeline? -- What tools should we use to compose the pipeline? +* What tools should we use to execute the pipeline? +* What tools should we use to compose the pipeline? The following use-cases should be considered for this decision: -- **User who wants to manage their own runners (???)** -- User who only wants to use our golden path -- User who wants to use our golden path and add custom actions -- User who wants to use their own templates and import some of our actions -- User who wants to import an existing GitHub repository with a pipeline +* **User who wants to manage their own runners (???)** +* User who only wants to use our golden path +* User who wants to use our golden path and add custom actions +* User who wants to use their own templates and import some of our actions +* User who wants to import an existing GitHub repository with a pipeline ## Considered Options -- Argo Workflows + Events -- Argo Workflows + Events + Additional Composition tool -- Forgejo Actions -- Forgejo Actions + Additional Composition tool -- Dagger (as Engine) -- Shuttle (as Engine) +* Argo Workflows + Events +* Argo Workflows + Events + Additional Composition tool +* Forgejo Actions +* Forgejo Actions + Additional Composition tool +* Dagger (as Engine) +* Shuttle (as Engine) ## Decision Outcome @@ -40,87 +40,87 @@ TBD **Pro** -- integration with ArgoCD -- ability to trigger additional workflows based on events. -- level of maturity and community support. +* integration with ArgoCD +* ability to trigger additional workflows based on events. +* level of maturity and community support. **Con** -- Ability to self-host runners? -- way how composition for pipelines works (based on Kubernetes CRDs) - - Templates must be available in the cluster where the pipelines are executed, so any imported templates must be applied into the cluster before the pipeline can be executed and cannot simply reference a repository - - This makes it difficult to import existing templates from other repositories when using self-hosted runners - - This also makes it difficult to use our golden path, or at least we will need to provide a way to import our golden path into the cluster - - This also makes the split of every component has its own repo very difficult -- additional UI to manage the pipeline -- Additional complexity +* Ability to self-host runners? +* way how composition for pipelines works (based on Kubernetes CRDs) + * Templates must be available in the cluster where the pipelines are executed, so any imported templates must be applied into the cluster before the pipeline can be executed and cannot simply reference a repository + * This makes it difficult to import existing templates from other repositories when using self-hosted runners + * This also makes it difficult to use our golden path, or at least we will need to provide a way to import our golden path into the cluster + * This also makes the split of every component has its own repo very difficult +* additional UI to manage the pipeline +* Additional complexity ### Argo Workflows + Events + Additional Composition tool **Pro** -- Composability can be offloaded to another tool +* Composability can be offloaded to another tool **Con** -- All cons of the previous option (except composability) -- Additional complexity by adding another tool +* All cons of the previous option (except composability) +* Additional complexity by adding another tool ### Forgejo Actions **Pro** -- tight integration with GitHub Actions providing a familiar interface for developers and a vast catalog of actions to choose from -- ability to compose pipelines without relying on another tool -- Self-hosting of runners possible -- every component can have its own repository and use different tools (e.g. written in go, bash, python etc.) +* tight integration with GitHub Actions providing a familiar interface for developers and a vast catalog of actions to choose from +* ability to compose pipelines without relying on another tool +* Self-hosting of runners possible +* every component can have its own repository and use different tools (e.g. written in go, bash, python etc.) **Con** -- level of maturity - will require additional investments to provide a production-grade system +* level of maturity - will require additional investments to provide a production-grade system ### Forgejo Actions + Additional Tool **Pro** -- may be possible to use GitHub actions alongside another tool +* may be possible to use GitHub actions alongside another tool **Con** -- additional complexity by adding another tool +* additional complexity by adding another tool ### Shuttle **Pro** -- Possibility to clearly define interfaces for pipeline steps -- Relatively simple +* Possibility to clearly define interfaces for pipeline steps +* Relatively simple **Con** -- basically backed by only one company -- **centralized templates**, so no mechanism for composing pipelines from multiple repositories +* basically backed by only one company +* **centralized templates**, so no mechanism for composing pipelines from multiple repositories ### Dagger **Pro** -- Pipeline as code - - if it runs it should run anywhere and produce the "same" / somewhat stable results - - build environments are defined within containers / the dagger config. Dagger is the only dependency one has to install on a machine -- DX is extremely nice, especially if you have to debug (image) builds, also type safety due to the ability to code your build in a strong language -- additional tooling, like trivy, is added to a build pipeline with low effort due to containers and existing plugin/wrappers -- you can create complex test environments similar to test containers and docker compose +* Pipeline as code + * if it runs it should run anywhere and produce the "same" / somewhat stable results + * build environments are defined within containers / the dagger config. Dagger is the only dependency one has to install on a machine +* DX is extremely nice, especially if you have to debug (image) builds, also type safety due to the ability to code your build in a strong language +* additional tooling, like trivy, is added to a build pipeline with low effort due to containers and existing plugin/wrappers +* you can create complex test environments similar to test containers and docker compose **Con** -- relies heavily containers, which might not be available some environments (due to policy etc), it also has an effect on reproducibility and verifiability -- as a dev you need to properly understand containers -- dagger engine has to run privileged locally and/or in the cloud which might be a blocker or at least a big pain in the ... +* relies heavily containers, which might not be available some environments (due to policy etc), it also has an effect on reproducibility and verifiability +* as a dev you need to properly understand containers +* dagger engine has to run privileged locally and/or in the cloud which might be a blocker or at least a big pain in the ... **Suggestion Patrick** -- dagger is a heavy weight and might not be as productive in a dev workflow as it seems (setup lsp etc) -- it might be too opinionated to force on teams, especially since it is not near mainstream enough, community might be too small -- it feels like dagger gets you 95% of the way, but the remaining 5% are a real struggle -- if we like it, we should check the popularity in the dev community before further considering as it has a direct impact on teams and their preferences +* dagger is a heavy weight and might not be as productive in a dev workflow as it seems (setup lsp etc) +* it might be too opinionated to force on teams, especially since it is not near mainstream enough, community might be too small +* it feels like dagger gets you 95% of the way, but the remaining 5% are a real struggle +* if we like it, we should check the popularity in the dev community before further considering as it has a direct impact on teams and their preferences diff --git a/content/en/docs/project/plan-in-2024/streams/deployment/_index.md b/content/en/docs/project/plan-in-2024/streams/deployment/_index.md deleted file mode 100644 index ed797a0..0000000 --- a/content/en/docs/project/plan-in-2024/streams/deployment/_index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Deployment -weight: 3 ---- - -> **Mantra**: -> 1. Everything as Code. -> 1. Cloud natively deployable everywhere. -> 1. Ramping up and tearing down oftenly is a no-brainer. -> 1. Especially locally (whereby 'locally' means 'under my own control') - -## Entwurf (28.8.24) - -![Deployment 2024](./deployment.drawio.png) \ No newline at end of file diff --git a/content/en/docs/project/plan-in-2024/streams/pocs/_index.md b/content/en/docs/project/plan-in-2024/streams/pocs/_index.md deleted file mode 100644 index fb81dfc..0000000 --- a/content/en/docs/project/plan-in-2024/streams/pocs/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: POCs -weight: 2 ---- - -## Further ideas for POSs - -* see sample apps 'metaphor' in https://docs.kubefirst.io/ \ No newline at end of file diff --git a/content/en/docs/solution/tools/Backstage/Exsisting Plugins/_index.md b/content/en/docs/solution/tools/Backstage/Exsisting Plugins/_index.md deleted file mode 100644 index d449433..0000000 --- a/content/en/docs/solution/tools/Backstage/Exsisting Plugins/_index.md +++ /dev/null @@ -1,49 +0,0 @@ -+++ -title = "Existing Backstage Plugins" -weight = 4 -+++ - -1. **Catalog**: - - Used for managing services and microservices, including registration, visualization, and the ability to track dependencies and relationships between services. It serves as a central directory for all services in an organization. - -2. **Docs**: - - Designed for creating and managing documentation, supporting formats such as Markdown. It helps teams organize and access technical and non-technical documentation in a unified interface. - -3. **API Docs**: - - Automatically generates API documentation based on OpenAPI specifications or other API definitions, ensuring that your API information is always up to date and accessible for developers. - -4. **TechDocs**: - - A tool for creating and publishing technical documentation. It is integrated directly into Backstage, allowing developers to host and maintain documentation alongside their projects. - -5. **Scaffolder**: - - Allows the rapid creation of new projects based on predefined templates, making it easier to deploy services or infrastructure with consistent best practices. - -6. **CI/CD**: - - Provides integration with CI/CD systems such as GitHub Actions and Jenkins, allowing developers to view build status, logs, and pipelines directly in Backstage. - -7. **Metrics**: - - Offers the ability to monitor and visualize performance metrics for applications, helping teams to keep track of key indicators like response times and error rates. - -8. **Snyk**: - - Used for dependency security analysis, scanning your codebase for vulnerabilities and helping to manage any potential security risks in third-party libraries. - -9. **SonarQube**: - - Integrates with SonarQube to analyze code quality, providing insights into code health, including issues like technical debt, bugs, and security vulnerabilities. - -10. **GitHub**: - - Enables integration with GitHub repositories, displaying information such as commits, pull requests, and other repository activity, making collaboration more transparent and efficient. - -11. **CircleCI**: - - Allows seamless integration with CircleCI for managing CI/CD workflows, giving developers insight into build pipelines, test results, and deployment statuses. - -12. **Kubernetes**: - - Provides tools to manage Kubernetes clusters, including visualizing pod status, logs, and cluster health, helping teams maintain and troubleshoot their cloud-native applications. - -13. **Cloud**: - - Includes plugins for integration with cloud providers like AWS and Azure, allowing teams to manage cloud infrastructure, services, and billing directly from Backstage. - -14. **OpenTelemetry**: - - Helps with monitoring distributed applications by integrating OpenTelemetry, offering powerful tools to trace requests, detect performance bottlenecks, and ensure application health. - -15. **Lighthouse**: - - Integrates Google Lighthouse to analyze web application performance, helping teams identify areas for improvement in metrics like load times, accessibility, and SEO. diff --git a/content/en/docs/v1/_index.md b/content/en/docs/v1/_index.md new file mode 100644 index 0000000..f694474 --- /dev/null +++ b/content/en/docs/v1/_index.md @@ -0,0 +1,13 @@ +--- +title: "Documentation (v1 - Legacy)" +linkTitle: "v1 (Legacy)" +weight: 100 +description: > + Legacy documentation - archived version of the original content. +--- + +{{% alert title="Note" color="warning" %}} +This is the legacy documentation (v1). For the latest version, please visit the [current documentation](/docs/). +{{% /alert %}} + +This section contains the original documentation that is being migrated to a new structure. diff --git a/content/en/docs/concepts/1_software-and-workloads/_index.md b/content/en/docs/v1/concepts/1_software-and-workloads/_index.md similarity index 100% rename from content/en/docs/concepts/1_software-and-workloads/_index.md rename to content/en/docs/v1/concepts/1_software-and-workloads/_index.md diff --git a/content/en/docs/concepts/2_engineering-people/_index.md b/content/en/docs/v1/concepts/2_engineering-people/_index.md similarity index 100% rename from content/en/docs/concepts/2_engineering-people/_index.md rename to content/en/docs/v1/concepts/2_engineering-people/_index.md diff --git a/content/en/docs/concepts/3_use-cases/_index.md b/content/en/docs/v1/concepts/3_use-cases/_index.md similarity index 98% rename from content/en/docs/concepts/3_use-cases/_index.md rename to content/en/docs/v1/concepts/3_use-cases/_index.md index 20c1660..6a5b20f 100644 --- a/content/en/docs/concepts/3_use-cases/_index.md +++ b/content/en/docs/v1/concepts/3_use-cases/_index.md @@ -4,7 +4,7 @@ weight: 2 description: The golden paths in the engineers and product development domain --- -## Rationale +## Rationale The challenge of IPCEI-CIS Developer Framework is to provide value for DTAG customers, and more specifically: for Developers of DTAG customers. @@ -52,11 +52,10 @@ The resulting visualization should look similar like this: ![alt text](fibonacci-app_cpu-spike.png) - ## When and how to use the developer framework? ### e.g. an example .... taken from https://cloud.google.com/blog/products/application-development/common-myths-about-platform-engineering?hl=en -![alt text](image.png) \ No newline at end of file +![alt text](image.png) diff --git a/content/en/docs/concepts/3_use-cases/fibonacci-app_cpu-spike.png b/content/en/docs/v1/concepts/3_use-cases/fibonacci-app_cpu-spike.png similarity index 100% rename from content/en/docs/concepts/3_use-cases/fibonacci-app_cpu-spike.png rename to content/en/docs/v1/concepts/3_use-cases/fibonacci-app_cpu-spike.png diff --git a/content/en/docs/concepts/3_use-cases/image.png b/content/en/docs/v1/concepts/3_use-cases/image.png similarity index 100% rename from content/en/docs/concepts/3_use-cases/image.png rename to content/en/docs/v1/concepts/3_use-cases/image.png diff --git a/content/en/docs/concepts/3_use-cases/platforms-def.drawio.png b/content/en/docs/v1/concepts/3_use-cases/platforms-def.drawio.png similarity index 100% rename from content/en/docs/concepts/3_use-cases/platforms-def.drawio.png rename to content/en/docs/v1/concepts/3_use-cases/platforms-def.drawio.png diff --git a/content/en/docs/concepts/4_digital-platforms/_index.md b/content/en/docs/v1/concepts/4_digital-platforms/_index.md similarity index 100% rename from content/en/docs/concepts/4_digital-platforms/_index.md rename to content/en/docs/v1/concepts/4_digital-platforms/_index.md diff --git a/content/en/docs/v1/concepts/4_digital-platforms/platform-components/7b748ff4-image2-1024x580.png b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/7b748ff4-image2-1024x580.png new file mode 100644 index 0000000..79d6754 Binary files /dev/null and b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/7b748ff4-image2-1024x580.png differ diff --git a/content/en/docs/concepts/4_digital-platforms/platform-components/_index.md b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/_index.md similarity index 63% rename from content/en/docs/concepts/4_digital-platforms/platform-components/_index.md rename to content/en/docs/v1/concepts/4_digital-platforms/platform-components/_index.md index c1f2f70..16aea34 100644 --- a/content/en/docs/concepts/4_digital-platforms/platform-components/_index.md +++ b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/_index.md @@ -6,3 +6,10 @@ description: What in terms of components or building blocks is needed in a platf > This page is in work. Right now we have in the index a collection of links describing and listing typical components and building blocks of platforms. Also we have a growing number of subsections regarding special types of components. +See also: + +* https://thenewstack.io/build-an-open-source-kubernetes-gitops-platform-part-1/ +* https://thenewstack.io/build-an-open-source-kubernetes-gitops-platform-part-2/ + +![alt text](7b748ff4-image2-1024x580.png) + diff --git a/content/en/docs/concepts/4_digital-platforms/platform-components/cicd-pipeline/_index.md b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/cicd-pipeline/_index.md similarity index 98% rename from content/en/docs/concepts/4_digital-platforms/platform-components/cicd-pipeline/_index.md rename to content/en/docs/v1/concepts/4_digital-platforms/platform-components/cicd-pipeline/_index.md index a9c0ac5..128118e 100644 --- a/content/en/docs/concepts/4_digital-platforms/platform-components/cicd-pipeline/_index.md +++ b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/cicd-pipeline/_index.md @@ -47,11 +47,11 @@ Components are the composable and self-contained building blocks for the context Components must be as small as possible and follow the same concepts of software development and deployment as any other software product. In particular, they must have the following characteristics: -- designed for a single task -- provide a clear and intuitive output -- easy to compose -- easily customizable or interchangeable -- automatically testable +* designed for a single task +* provide a clear and intuitive output +* easy to compose +* easily customizable or interchangeable +* automatically testable In the EDF components are divided into different categories. Each category contains components that perform similar actions. For example, the `build` category contains components that compile code, while the `deploy` category contains components that automate the management of the artefacts created in a production-like system. diff --git a/content/en/docs/concepts/4_digital-platforms/platform-components/cicd-pipeline/cicd.drawio.png b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/cicd-pipeline/cicd.drawio.png similarity index 100% rename from content/en/docs/concepts/4_digital-platforms/platform-components/cicd-pipeline/cicd.drawio.png rename to content/en/docs/v1/concepts/4_digital-platforms/platform-components/cicd-pipeline/cicd.drawio.png diff --git a/content/en/docs/concepts/4_digital-platforms/platform-components/cicd-pipeline/review-stl.md b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/cicd-pipeline/review-stl.md similarity index 93% rename from content/en/docs/concepts/4_digital-platforms/platform-components/cicd-pipeline/review-stl.md rename to content/en/docs/v1/concepts/4_digital-platforms/platform-components/cicd-pipeline/review-stl.md index ed5e701..429eab2 100644 --- a/content/en/docs/concepts/4_digital-platforms/platform-components/cicd-pipeline/review-stl.md +++ b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/cicd-pipeline/review-stl.md @@ -8,4 +8,4 @@ There is no continuous whatever step inbetween ... Gitops is just 'overwriting' This means whatever quality ensuring steps have to take part before 'overwriting' have to be defined as state changer in the repos, not in the environments. -Conclusio: I think we only have three contexts, or let's say we don't have the contect 'continuous delivery' \ No newline at end of file +Conclusio: I think we only have three contexts, or let's say we don't have the contect 'continuous delivery' diff --git a/content/en/docs/concepts/4_digital-platforms/platform-components/developer-portals/_index.md b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/developer-portals/_index.md similarity index 98% rename from content/en/docs/concepts/4_digital-platforms/platform-components/developer-portals/_index.md rename to content/en/docs/v1/concepts/4_digital-platforms/platform-components/developer-portals/_index.md index 60c5453..53dec62 100644 --- a/content/en/docs/concepts/4_digital-platforms/platform-components/developer-portals/_index.md +++ b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/developer-portals/_index.md @@ -33,4 +33,4 @@ https://www.getport.io/compare/backstage-vs-port * [port-vs-backstage-choosing-your-internal-developer-portal](https://medium.com/@vaibhavgupta0702/port-vs-backstage-choosing-your-internal-developer-portal-71c6a6acd979) * [idp-vs-self-service-portal-a-platform-engineering-showdown](https://thenewstack.io/idp-vs-self-service-portal-a-platform-engineering-showdown) * [portals-vs-platform-orchestrator](https://humanitec.com/portals-vs-platform-orchestrator) -* [internal-developer-portal-vs-internal-developer-platform](https://www.cortex.io/post/internal-developer-portal-vs-internal-developer-platform) \ No newline at end of file +* [internal-developer-portal-vs-internal-developer-platform](https://www.cortex.io/post/internal-developer-portal-vs-internal-developer-platform) diff --git a/content/en/docs/concepts/4_digital-platforms/platform-components/orchestrator/_index.md b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/orchestrator/_index.md similarity index 90% rename from content/en/docs/concepts/4_digital-platforms/platform-components/orchestrator/_index.md rename to content/en/docs/v1/concepts/4_digital-platforms/platform-components/orchestrator/_index.md index ed92bfb..745cbca 100644 --- a/content/en/docs/concepts/4_digital-platforms/platform-components/orchestrator/_index.md +++ b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/orchestrator/_index.md @@ -17,7 +17,7 @@ description: "The new kid on the block since 2023 ist 'Platform Orchestrating': * cnoe.io -#### Resources +#### Resources * [CNOE IDPBuilder](https://cnoe.io/docs/reference-implementation/installations/idpbuilder) -* https://github.com/csantanapr/cnoe-examples/tree/main \ No newline at end of file +* https://github.com/csantanapr/cnoe-examples/tree/main diff --git a/content/en/docs/concepts/4_digital-platforms/platform-components/references/_index.md b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/references/_index.md similarity index 85% rename from content/en/docs/concepts/4_digital-platforms/platform-components/references/_index.md rename to content/en/docs/v1/concepts/4_digital-platforms/platform-components/references/_index.md index 1cd858c..5d1b186 100644 --- a/content/en/docs/concepts/4_digital-platforms/platform-components/references/_index.md +++ b/content/en/docs/v1/concepts/4_digital-platforms/platform-components/references/_index.md @@ -29,8 +29,8 @@ description: An currently uncurated list of references with respect to typical p | Core Component | Short Description | | ---- | --- | -| Application Configuration Management | Manage application configuration in a dynamic, scalable and reliable way. | -| Infrastructure Orchestration | Orchestrate your infrastructure in a dynamic and intelligent way depending on the context. | -| Environment Management | Enable developers to create new and fully provisioned environments whenever needed. | -| Deployment Management | Implement a delivery pipeline for Continuous Delivery or even Continuous Deployment (CD). | -| Role-Based Access Control | Manage who can do what in a scalable way. | \ No newline at end of file +| Application Configuration Management | Manage application configuration in a dynamic, scalable and reliable way. | +| Infrastructure Orchestration | Orchestrate your infrastructure in a dynamic and intelligent way depending on the context. | +| Environment Management | Enable developers to create new and fully provisioned environments whenever needed. | +| Deployment Management | Implement a delivery pipeline for Continuous Delivery or even Continuous Deployment (CD). | +| Role-Based Access Control | Manage who can do what in a scalable way. | diff --git a/content/en/docs/concepts/4_digital-platforms/platform-engineering/Viktor-restaurant.png b/content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/Viktor-restaurant.png similarity index 100% rename from content/en/docs/concepts/4_digital-platforms/platform-engineering/Viktor-restaurant.png rename to content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/Viktor-restaurant.png diff --git a/content/en/docs/concepts/4_digital-platforms/platform-engineering/_index.md b/content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/_index.md similarity index 98% rename from content/en/docs/concepts/4_digital-platforms/platform-engineering/_index.md rename to content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/_index.md index b093bda..88092d7 100644 --- a/content/en/docs/concepts/4_digital-platforms/platform-engineering/_index.md +++ b/content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/_index.md @@ -5,7 +5,7 @@ description: Theory and general blue prints of the platform engineering discipli --- -## Rationale +## Rationale IPCEI-CIS Developer Framework is part of a cloud native technology stack. To design the capabilities and architecture of the Developer Framework we need to define the surounding context and internal building blocks, both aligned with cutting edge cloud native methodologies and research results. @@ -16,6 +16,7 @@ In CNCF the discipline of building stacks to enhance the developer experience is [CNCF first asks](https://tag-app-delivery.cncf.io/whitepapers/platforms/) why we need platform engineering: > The desire to refocus delivery teams on their core focus and reduce duplication of effort across the organisation has motivated enterprises to implement platforms for cloud-native computing. By investing in platforms, enterprises can: +> > * Reduce the cognitive load on product teams and thereby accelerate product development and delivery > * Improve reliability and resiliency of products relying on platform capabilities by dedicating experts to configure and manage them > * Accelerate product development and delivery by reusing and sharing platform tools and knowledge across many teams in an enterprise @@ -40,7 +41,7 @@ https://humanitec.com/blog/wtf-internal-developer-platform-vs-internal-developer ## Internal Developer Platform -> In IPCEI-CIS right now (July 2024) we are primarily interested in understanding how IDPs are built as one option to implement an IDP is to build it ourselves. +> In IPCEI-CIS right now (July 2024) we are primarily interested in understanding how IDPs are built as one option to implement an IDP is to build it ourselves. The outcome of the Platform Engineering discipline is - created by the platform engineering team - a so called 'Internal Developer Platform'. @@ -69,4 +70,4 @@ The amount of available IDPs as product is rapidly growing. ## Platform 'Initiatives' aka Use Cases Cortex is [talking about Use Cases (aka Initiatives):](https://www.youtube.com/watch?v=LrEC-fkBbQo) (or https://www.brighttalk.com/webcast/20257/601901) -![alt text](cortex-use-cases.png) \ No newline at end of file +![alt text](cortex-use-cases.png) diff --git a/content/en/docs/concepts/4_digital-platforms/platform-engineering/cortex-use-cases.png b/content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/cortex-use-cases.png similarity index 100% rename from content/en/docs/concepts/4_digital-platforms/platform-engineering/cortex-use-cases.png rename to content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/cortex-use-cases.png diff --git a/content/en/docs/concepts/4_digital-platforms/platform-engineering/idp.webp b/content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/idp.webp similarity index 100% rename from content/en/docs/concepts/4_digital-platforms/platform-engineering/idp.webp rename to content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/idp.webp diff --git a/content/en/docs/concepts/4_digital-platforms/platform-engineering/reference-architecture/_index.md b/content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/reference-architecture/_index.md similarity index 88% rename from content/en/docs/concepts/4_digital-platforms/platform-engineering/reference-architecture/_index.md rename to content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/reference-architecture/_index.md index f6420d7..d3d6af0 100644 --- a/content/en/docs/concepts/4_digital-platforms/platform-engineering/reference-architecture/_index.md +++ b/content/en/docs/v1/concepts/4_digital-platforms/platform-engineering/reference-architecture/_index.md @@ -7,14 +7,14 @@ weight = 1 date = '2024-07-30' +++ -## [The Structure of a Successful Internal Developer Platform](https://platformengineering.org/blog/create-your-own-platform-engineering-reference-architectures) +## [The Structure of a Successful Internal Developer Platform](https://platformengineering.org/blog/create-your-own-platform-engineering-reference-architectures) In a platform reference architecture there are five main planes that make up an IDP: 1. Developer Control Plane – this is the primary configuration layer and interaction point for the platform users. Components include Workload specifications such as Score and a portal for developers to interact with. 2. Integration and Delivery Plane – this plane is about building and storing the image, creating app and infra configs, and deploying the final state. It usually contains a CI pipeline, an image registry, a Platform Orchestrator, and the CD system. 3. Resource Plane – this is where the actual infrastructure exists including clusters, databases, storage or DNS services. -4, Monitoring and Logging Plane – provides real-time metrics and logs for apps and infrastructure. +4, Monitoring and Logging Plane – provides real-time metrics and logs for apps and infrastructure. 5. Security Plane – manages secrets and identity to protect sensitive information, e.g., storing, managing, and security retrieving API keys and credentials/secrets. ![idp](../idp.webp) @@ -29,12 +29,9 @@ https://github.com/humanitec-architecture https://humanitec.com/reference-architectures - ## Create a reference architecture [Create your own platform reference architecture](https://platformengineering.org/blog/create-your-own-platform-engineering-reference-architectures) [Reference arch slide deck](https://docs.google.com/presentation/d/1yAf_FSjiA0bAFukgu5p1DRMvvGGE1fF4KhvZbb7gn2I/edit?pli=1#slide=id.g1ef66f3349b_3_3) - - diff --git a/content/en/docs/concepts/5_platforms/CNOE/_index.md b/content/en/docs/v1/concepts/5_platforms/CNOE/_index.md similarity index 99% rename from content/en/docs/concepts/5_platforms/CNOE/_index.md rename to content/en/docs/v1/concepts/5_platforms/CNOE/_index.md index 4ef49c6..e701220 100644 --- a/content/en/docs/concepts/5_platforms/CNOE/_index.md +++ b/content/en/docs/v1/concepts/5_platforms/CNOE/_index.md @@ -5,12 +5,12 @@ weight: 4 * https://cnoe.io/docs/intro - + > The goal for the CNOE framework is to bring together a cohort of enterprises operating at the same scale so that they can navigate their operational technology decisions together, de-risk their tooling bets, coordinate contribution, and offer guidance to large enterprises on which CNCF technologies to use together to achieve the best cloud efficiencies. ### Aussprache -* Englisch Kuh.noo, +* Englisch Kuh.noo, * also 'Kanu' im Deutschen @@ -26,6 +26,7 @@ See https://cnoe.io/docs/reference-implementation/integrations/reference-impl: # in a local terminal with docker and kind idpbuilder create --use-path-routing --log-level debug --package-dir https://github.com/cnoe-io/stacks//ref-implementation ``` + ### Output ```bash @@ -150,7 +151,7 @@ Data: USER_PASSWORD : RwCHPvPVMu+fQM4L6W/q-Wq79MMP+3CN-Jeo ``` -### login to backstage +### login to backstage login geht mit den Creds, siehe oben: diff --git a/content/en/docs/concepts/5_platforms/CNOE/cnoe.png b/content/en/docs/v1/concepts/5_platforms/CNOE/cnoe.png similarity index 100% rename from content/en/docs/concepts/5_platforms/CNOE/cnoe.png rename to content/en/docs/v1/concepts/5_platforms/CNOE/cnoe.png diff --git a/content/en/docs/concepts/5_platforms/CNOE/local-argocd.png b/content/en/docs/v1/concepts/5_platforms/CNOE/local-argocd.png similarity index 100% rename from content/en/docs/concepts/5_platforms/CNOE/local-argocd.png rename to content/en/docs/v1/concepts/5_platforms/CNOE/local-argocd.png diff --git a/content/en/docs/concepts/5_platforms/CNOE/local-backstage.png b/content/en/docs/v1/concepts/5_platforms/CNOE/local-backstage.png similarity index 100% rename from content/en/docs/concepts/5_platforms/CNOE/local-backstage.png rename to content/en/docs/v1/concepts/5_platforms/CNOE/local-backstage.png diff --git a/content/en/docs/concepts/5_platforms/Humanitec/_index.md b/content/en/docs/v1/concepts/5_platforms/Humanitec/_index.md similarity index 90% rename from content/en/docs/concepts/5_platforms/Humanitec/_index.md rename to content/en/docs/v1/concepts/5_platforms/Humanitec/_index.md index 07be1b6..e0ccb2f 100644 --- a/content/en/docs/concepts/5_platforms/Humanitec/_index.md +++ b/content/en/docs/v1/concepts/5_platforms/Humanitec/_index.md @@ -4,4 +4,4 @@ weight: 4 --- -tbd \ No newline at end of file +tbd diff --git a/content/en/docs/concepts/5_platforms/_index.md b/content/en/docs/v1/concepts/5_platforms/_index.md similarity index 100% rename from content/en/docs/concepts/5_platforms/_index.md rename to content/en/docs/v1/concepts/5_platforms/_index.md diff --git a/content/en/docs/concepts/_index.md b/content/en/docs/v1/concepts/_index.md similarity index 100% rename from content/en/docs/concepts/_index.md rename to content/en/docs/v1/concepts/_index.md diff --git a/content/en/docs/v1/project/MVP-12-OTC.md b/content/en/docs/v1/project/MVP-12-OTC.md new file mode 100644 index 0000000..252ed04 --- /dev/null +++ b/content/en/docs/v1/project/MVP-12-OTC.md @@ -0,0 +1,269 @@ + + +# Ideen + +* Kanban +* product review sessions + +# ChatGPT + +## Fehlendes Backlog + +> welche agilen vorgehensmodelle bzw. best practices gibt es in der software-entwicklung, wenn das product backlog noch nicht da ist. es gibt zwar eine produktvision und auch schon einen PoC, aber das Produkt ist sowohl technisch als auch nutzenseitig immer nocht nicht planbar in user stories. daher ist SCRUM nicht machbar. das team ist ca. 8 personen groß, und wir überlgen, einen meilenstein in den nächsten 8 wochen einfach durch tägliches 'PDCA' zu erstellen: ein morgendliches planning, dann in subgruppen ein erforschen, dann im Plenum wieder C (Check) zusammenführen/integrieren, und ein abschliessendes 'A' als Ergebnissicherung, Versionierierung, Dokumentation. Was hälst du von diesem Vorgehen, bzw. welches Risiken und Verbesserungsvorschläge hast du? Oder gibt es ein Standard-Vorgehen hierfür? + +Dein beschriebenes Szenario – Vision und PoC vorhanden, aber kein ausformuliertes Product Backlog – ist typisch für eine frühe **Explorations- oder Inceptionsphase** in der Produktentwicklung. In dieser Phase ist klassisches **Scrum** tatsächlich oft zu starr, weil es eine gewisse Klarheit über Features und Stories voraussetzt. Das von euch überlegte Vorgehen klingt nach einer sehr pragmatischen und iterativen Methode, die im Kern gut zu den **Lean-Startup-Prinzipien** oder **Design Thinking + Agile Engineering** passt. + +## Bewertung eures PDCA-basierten Vorgehens + +**Positiv:** +* **Täglicher PDCA-Zyklus** (Plan-Do-Check-Act) sorgt für schnelle Feedbackschleifen. +* **Morgendliches Planning** und **Check-Meeting im Plenum** fördern Transparenz und Selbstorganisation. +* **Subgruppen-Erkundung** erlaubt parallele Experimente. +* **Abschließendes "A"** zur Ergebnissicherung ist essenziell, sonst bleibt es bei "busy work". + +**Risiken:** + +1. **Fehlende Langfriststruktur:** Ohne grobe übergreifende Richtung (z. B. Meilensteinplan, Zielbild) kann es leicht in ziellosem Explorieren enden. +2. **Uneinheitlicher Erkenntnisgewinn:** Subgruppen könnten redundant oder inkompatibel arbeiten, wenn kein gemeinsames Verständnis besteht. +3. **Dokumentation als „Nachsorge“:** Wenn die Doku erst am Ende passiert, droht Wissensverlust – lieber „Living Docs“ in Echtzeit pflegen. +4. **Stakeholder-Abkopplung:** Ohne explizite Reviews oder Demo-Rituale kann Feedback von außen fehlen. + +## Verbesserungsvorschläge + +1. **Exploration Backlog oder Hypothesenboard:** Auch ohne klassisches Product Backlog könnt ihr mit einem **Experiment-/Hypothesenboard** (à la Lean Startup) arbeiten. Zum Beispiel: + * Hypothese: „Feature X wird den Use Case Y verbessern.“ + * Experiment: „Prototyp bauen und testen mit Nutzergruppe Z.“ + * Ergebnis & Learnings dokumentieren. + +2. **Wöchentliche Zielsetzungen:** Jeden Montag ein Weekly Planning mit klaren Zielen für die Woche (Outcome-fokussiert, nicht Task-fokussiert). + +3. **Integration mit Dual Track Agile:** Das Vorgehen ähnelt dem **Dual-Track-Modell**: ein **Discovery-Track** (Erkunden, Validieren, Prototypisieren) läuft parallel zum späteren **Delivery-Track** (Releases, Sprints). Ihr seid noch voll im Discovery-Track. + +4. **Design Studio oder Spike-Zeitfenster:** Strukturiert Zeit für z. B. 2-Tages-Design-Studios oder 1-Tages-Spikes – das erhöht die Qualität der Exploration. + +5. **Review/Share-Session freitags:** Eine fixe wöchentliche Review-/Demo-Session (auch intern) erhöht die Disziplin und hilft beim „Check“-Teil im PDCA. + +## Gängige Standard-Methoden in dieser Phase + +* **Design Thinking** (für Nutzerzentrierte Exploration) +* **Lean UX / Lean Startup** (Hypothesengetrieben) +* **Dual Track Agile** +* **Google Design Sprint (5 Tage)** – extrem hilfreich, wenn es um das Testen von Nutzerideen geht +* **Shape Up (Basecamp)** – für nicht-sprintbasiertes Arbeiten mit "Bet" auf 6-Wochen-Projekte + +--- + +**Fazit:** +Euer PDCA-Zyklus ist ein solider, pragmatischer Einstieg in eine unsichere, vorstrukturierte Produktphase. Mit ein paar Ergänzungen (Exploration Backlog, feste Review-Elemente, Hypothesenstruktur) könnt ihr daraus ein effektives Discovery-Vorgehen machen, das den Übergang zu einem klassischen agilen Framework (z. B. Scrum) vorbereitet. + +Möchtest du eine konkrete Vorlage für ein Exploration Backlog oder Hypothesenboard für euer Team? + +## Architektur vorhanden + +> ok, du findest vor allem Tages-Zyklen zu kurz. Ich möchte noch ergänzen, dass wir eine Architektur haben. Das klingt vielleicht paradox, aber es ist tatsächlich so, dass wir das Software-syewtm bereits designed haben, und die Komponenten auch bereits kennen, aber jetzt vor allem die Wege des automatischen Deployments in eine Cloud und die Konfigurations- und Verwaltungsstrukturen unsrerer Software herausfinden müssen. Das ist da, was sich gerade nicht weiter planen lässt. Kannst du mit diesen Ergänzungen dein Feedbach nochmal schärfen? + +Danke für die Ergänzung – das ändert die Ausgangslage entscheidend und erlaubt eine deutlich präzisere Einordnung. + +### Neue Ausgangslage + +* Ihr **habt eine Architektur**: Die Komponenten und Schnittstellen sind klar. +* Es gibt **bereits einen PoC** und eine Produktvision. +* Das **Backlog fehlt**, weil ihr gerade die **"nicht-funktionalen" Themen wie Deployment, Cloud-Umgebung, Konfiguration und Betrieb** klärt. +* Das System ist **technisch grob fertig designt**, aber die **Operations- und Deployment-Prozesse** sind unklar und werden explorativ entwickelt. + +### Schärferes Feedback + +#### 1. **Tages-PDCA-Zyklen wirken in diesem Kontext zu granular** + +Bei Infrastruktur-, Deployment- oder Konfigurationsfragen entstehen oft tiefe „Spikes“ (z. B. CI/CD-Pipeline aufsetzen, Helm-Chart modellieren, Secrets Handling evaluieren). Diese brauchen oft mehr als einen Tag bis zum „Check“, weil Abhängigkeiten (z. B. Rechte, Cloud-Zugänge, Testumgebungen) entstehen. Ein **2- bis 3-Tages-Rhythmus** mit klaren Zwischenzielen wäre realistischer, ergänzt um: + +* **Daily Standup als Taktgeber**, aber nicht zwangsläufig als vollständiger PDCA-Zyklus. +* **Weekly Planning mit Zielvorgaben und Review-Ritualen**, um Fortschritt messbar zu machen. + +#### 2. **Was ihr macht, ist kein Produkt-Delivery, sondern "System Enablement"** + +Ihr steckt im Übergang von Architektur zu einem **Infrastructure as Code + Plattform Enablement Track**. Das bedeutet: +* Die „User Stories“ sind keine klassischen Features, sondern z. B.: + * „Als Team möchte ich unsere Software mit einem Befehl deployen können.“ + * „Als Betreiber will ich wissen, wie ich Services konfiguriere.“ + +Das spricht für ein **Infrastructure Kanban Board**, keine Sprints. + +#### 3. **Mögliche Vorgehensmodelle / Best Practices** + +| Modell / Methode | Warum es jetzt passt | +|------------------------------------------|------------------------------------------------------------------| +| **Kanban für technische Tasks** | Flexible Work-in-Progress-Kontrolle, ideal für Exploration. | +| **Spikes** (aus XP) | Timeboxed Exploration zu offenen Fragen (z. B. Helm, Secrets). | +| **Enabler Epics (SAFe)** | Deployment- und Ops-Fragen formal als "Enabler" fassen. | +| **Team Topologies – Platform Team Light**| Ihr agiert gerade wie ein internes Plattform-Team. | +| **Weekly DevOps Review** | Alle 5–7 Tage Stand der Automatisierung/Doku/Strukturen. | +| **ADRs & Living Docs** | Architectural Decision Records für Deployment-/Ops-Entscheidungen.| + +#### 4. **Konkrete Empfehlungen zur Strukturierung** + +* **Ziele für die 8 Wochen formulieren** als **"Capabilities"**, z. B.: + * „Greenfield-Clouddeployment in AWS/GCP über GitHub Actions.“ + * „Parameterisierbares Helm-Chart mit Doku.“ + * „Konfigurierbarkeit über ENV vs. Secrets evaluieren.“ +* Dazu **1–2 Woche cadence**, jede Woche ein Review/Checkpoint. +* **Boards mit Task-Kategorien**: + * 🧪 Spike + * 🛠️ Tooling/Automation + * 📦 Infrastruktur/Dienst + * 📓 Dokumentation +* **Ergebnisse sofort versionieren und dokumentieren**, z. B.: + * GitOps Repo-Struktur + * ADRs + * Beispiel-Deployments + +--- + +### Fazit + +Ihr seid im **"technisch operativen Enablement"** eures Systems, nicht im Produkt-Delivery. Das rechtfertigt: +* ein **kanban-artiges, flexibles Modell mit timeboxed Reviews**, +* tägliche Abstimmungen, aber nicht zwingend tägliche Zyklen, +* Fokus auf **Enabler-Ziele statt funktionale Stories**. + +SCRUM ist hier fehl am Platz, aber euer Ansatz ist sehr nahe an einer **modernen DevOps-orientierten Arbeitsweise**, die z. B. von **Platform Engineering Teams** eingesetzt wird. + +Möchtest du ein Beispiel für ein solches Kanban-Board mit passenden Task-Typen und Zielstruktur? + +## Kanban + +> ja, gerne! + +Hier ist ein konkretes Beispiel für ein **Kanban-Board**, das speziell auf eure Situation als „Platform/Enablement“-Team mit einem vorhandenen Architekturbild, aber offenem Deployment- und Betriebsdesign zugeschnitten ist. + +--- + +## 🎯 **Zielstruktur (übergeordnet für 8 Wochen)** + +Diese formuliert ihr am besten als **Capabilities** – Fähigkeiten, die das System nachher haben soll: + +| Capability ID | Zielbeschreibung | +|---------------|---------------------------------------------------------------------------------------------| +| C1 | Anwendung kann automatisiert in Cloudumgebung X deployed werden (inkl. Secrets Mgmt) | +| C2 | Konfiguration des Systems ist externisiert und dokumentiert (ENV, YAML, o. ä.) | +| C3 | Monitoring- und Logging-Infrastruktur ist einsatzbereit und dokumentiert | +| C4 | Dev- und Test-Umgebungen sind klar getrennt und automatisch provisionierbar | +| C5 | Alle Plattformentscheidungen (z. B. Helm vs. Kustomize) sind versioniert und begründet | + +Diese Capabilities bilden **Spalten** oder **Swimlanes** im Board (wenn euer Tool das unterstützt, z. B. GitHub Projects, Jira oder Trello mit Labels). + +--- + +## 🗂️ **Kanban-Board-Spalten (klassisch)** + +| Spalte | Zweck | +|------------------|-----------------------------------------------------------| +| 🔍 Backlog | Ideen, Hypothesen, Tasks – priorisiert nach Capabilities | +| 🧪 In Exploration | Aktive Spikes, Proofs, technische Evaluierungen | +| 🛠️ In Progress | Umsetzung mit konkretem Ziel | +| ✅ Review / Check | Funktionsprüfung, internes Review | +| 📦 Done | Abgeschlossen, dokumentiert, ggf. in Repo | + +--- + +## 🏷️ **Task-Typen (Labels oder Emojis zur Kennzeichnung)** + +| Symbol / Label | Typ | Beispiel | +|------------------|-----------------------------|--------------------------------------------------------------------------| +| 🧪 Spike | Technische Untersuchung | „Untersuche ArgoCD vs. Flux für GitOps Deployment“ | +| 📦 Infra | Infrastruktur | „Provisioniere dev/test/stage in GCP mit Terraform“ | +| 🔐 Secrets | Sicherheitsrelevante Aufgabe| „Design für Secret-Handling mit Sealed Secrets“ | +| 📓 Docs | Dokumentation | „README für Developer Setup schreiben“ | +| 🧰 Tooling | CI/CD, Pipelines, Linter | „GitHub Action für Build & Deploy schreiben“ | +| 🔁 Entscheidung | Architekturentscheidung | „ADR: Helm vs. Kustomize für Service Deployment“ | + +--- + +## 🧩 Beispielhafte Tasks für Capability „C1 – Deployment automatisieren“ + +| Task | Typ | Status | +|----------------------------------------------|----------|----------------| +| Write GitHub Action for Docker image push | 🧰 Tooling | 🛠️ In Progress | +| Evaluate ArgoCD vs. Flux | 🧪 Spike | ✅ Review | +| Create Helm Chart for Service A | 📦 Infra | 🔍 Backlog | +| Create ADR: Deployment-Toolentscheidung | 🔁 Entscheidung | 🔍 Backlog | +| Add deployment doc in Wiki | 📓 Docs | 🔍 Backlog | + +--- + +## 📅 Cadence-Empfehlung + +* **Daily Standup (15 min)**: Was läuft, was blockiert? Pull statt Push! +* **Weekly Planning (Montag)**: Priorisieren und Backlog-Grooming (welche Capabilities sind diese Woche dran?) +* **Weekly Review (Freitag)**: Erkenntnisse, Entscheidungen und Dokumentation präsentieren +* Optional: **Retrospektive alle 2 Wochen**, falls das Team Energie hat + +--- + +Wenn du magst, kann ich dir ein Beispiel-Board als Markdown-Vorlage oder als CSV-Datei zum Import in Trello, GitHub Projects, Jira etc. machen. Wäre das hilfreich? + +## Living Docs + +> kannst du noch etwas mehr zu 'LivingDocs' sagen? + +Ja, gerne! **"Living Docs"** (bzw. **Living Documentation**) ist ein Konzept aus der agilen Softwareentwicklung und DevOps, das sich auf **aktuelle, direkt aus dem System oder aus dem Arbeitsprozess generierte Dokumentation** bezieht. Ziel ist es, dass die Dokumentation *nicht veraltet*, sondern so eng mit Code und Systemzustand gekoppelt ist, dass sie sich (teilweise) selbst aktualisiert oder sich mit dem Entwicklungsprozess mitbewegt. + +--- + +## 🔍 **Was macht "Living Documentation" aus?** + +| Merkmal | Beschreibung | +|----------------------------------|------------------------------------------------------------------------------| +| 🔄 Automatisch erzeugt oder aktualisiert | Generiert aus Code, Tests, Pipelines, ADRs oder Deployments | +| 📌 Versionskontrolliert | Im Git abgelegt, gemeinsam mit dem Code gepflegt | +| 🧑‍💻 Entwicklernah | Entwickelt sich mit dem Code weiter – keine Trennung zwischen "Docs" und Dev | +| 📈 Änderbar & nachvollziehbar | Jede Änderung an Code/Doku hat einen Commit & Kontext | +| 📚 Mehrwert für alle Beteiligten| Richtet sich an Devs, Ops, PMs oder andere Teams – nicht nur "für später" | + +--- + +## 🧰 Typische Formen von Living Docs + +| Typ | Beschreibung & Tools | +|----------------------|----------------------------------------------------------------------------------------| +| **Architecture Decision Records (ADRs)** | Markdown-Dateien im Repo (z. B. `docs/adr/001-helm-vs-kustomize.md`) | +| **Code-Doku aus Source** | Mit Tools wie JSDoc, TypeDoc, Sphinx, Doxygen, etc. | +| **API-Doku** | Automatisch aus Code oder OpenAPI (Swagger) generiert | +| **Test-Doku (z. B. BDD)** | z. B. Gherkin-Style: `Given/When/Then`-Spezifikationen als Dokumentation | +| **Monitoring & Deployment-Status** | z. B. Dashboards mit Infrastructure-Doku (Grafana, Backstage, Argo UI) | +| **DevDocs im Repo** | z. B. `README.md`, `CONTRIBUTING.md`, `how-to/`, `docs/`, `adr/` | +| **Playbooks / Runbooks** | Schritt-für-Schritt-Anleitungen für Betrieb oder Störungen | + +--- + +## ✅ **Best Practices** + +1. **Nutze Markdown + Git:** Einfach, versionierbar, lesbar → ADRs, Runbooks, HowTos. +2. **Dokumentiere Entscheidungen bewusst:** Lieber knappe, saubere ADRs als keine Doku. +3. **Verknüpfe Doku mit Code / CI/CD:** Beispiel: Build-Tool erzeugt automatisch API-Doku oder ADR-Lint-Checks. +4. **Verlinke Logs, Dashboards, Monitoring:** z. B. in einem `system-overview.md`. +5. **Behandle Doku wie Code:** Reviewpflichtig, Pull Request basiert, CI-checkbar. + +--- + +## 🛠️ Tools & Frameworks + +| Zweck | Tools (Beispiele) | +|------------------------|-------------------------------------------------------------------------| +| ADRs | [`adr-tools`](https://github.com/npryce/adr-tools), einfaches Markdown | +| Markdown-Doku | MkDocs, Docusaurus, GitBook | +| API-Doku | Swagger/OpenAPI, Redocly | +| Infrastruktur-Doku | Backstage (Spotify), Terraform-docs | +| Doku-Automatisierung | GitHub Actions, pre-commit Hooks, CI-Checks | + +--- + +## 🧠 Denkweise: Doku = Gespräch in Zeit + +> "Dokumentation ist kein Nachtrag, sondern ein asynchrones Gespräch mit deinem zukünftigen Ich – oder dem nächsten Teammitglied." + +Gerade in eurem Kontext (technisches Enablement, Deployment, Betrieb) ist das **entscheidungsorientierte, leichtgewichtige Festhalten von Kontext** Gold wert. ADRs und `docs/runbooks/`-Verzeichnisse sind ein idealer Startpunkt. + +--- + +Möchtest du eine Vorlage für ein ADR oder ein Beispielverzeichnis für eine sinnvolle Living-Docs-Struktur im Repo? diff --git a/content/en/docs/project/_index.md b/content/en/docs/v1/project/_index.md similarity index 100% rename from content/en/docs/project/_index.md rename to content/en/docs/v1/project/_index.md diff --git a/content/en/docs/project/bootstrapping/_index.md b/content/en/docs/v1/project/bootstrapping/_index.md similarity index 100% rename from content/en/docs/project/bootstrapping/_index.md rename to content/en/docs/v1/project/bootstrapping/_index.md diff --git a/content/en/docs/project/bootstrapping/backup/_index.md b/content/en/docs/v1/project/bootstrapping/backup/_index.md similarity index 99% rename from content/en/docs/project/bootstrapping/backup/_index.md rename to content/en/docs/v1/project/bootstrapping/backup/_index.md index c9dd005..b4b31f1 100644 --- a/content/en/docs/project/bootstrapping/backup/_index.md +++ b/content/en/docs/v1/project/bootstrapping/backup/_index.md @@ -39,6 +39,7 @@ velero install \ 3. Delete `credentials.ini`, it is not needed anymore (a secret has been created in the cluster). 4. Create a schedule to back up the relevant resources in the cluster: + ``` velero schedule create devfw-bootstrap --schedule="23 */2 * * *" "--include-namespaces=forgejo" ``` @@ -48,6 +49,7 @@ velero schedule create devfw-bootstrap --schedule="23 */2 * * *" "--include-name You can now use Velero to create backups, restore them, or perform other operations. Please refer to the [Velero Documentation](https://velero.io/docs/main/backup-reference/). To list all currently available backups: + ``` velero backup get ``` diff --git a/content/en/docs/project/conceptual-onboarding/1_intro/_index.md b/content/en/docs/v1/project/conceptual-onboarding/1_intro/_index.md similarity index 97% rename from content/en/docs/project/conceptual-onboarding/1_intro/_index.md rename to content/en/docs/v1/project/conceptual-onboarding/1_intro/_index.md index 9fa9723..37aa4d0 100644 --- a/content/en/docs/project/conceptual-onboarding/1_intro/_index.md +++ b/content/en/docs/v1/project/conceptual-onboarding/1_intro/_index.md @@ -5,10 +5,12 @@ description: The 5-step storyflow of this Onboarding chapter --- {{% pageinfo color="info" %}} + ## Summary -This onboarding section is for you when are new to IPCEI-CIS subproject 'Edge Developer Framework (EDF)' and you want to know about -* its context to 'Platform Engineering' +This onboarding section is for you when are new to IPCEI-CIS subproject 'Edge Developer Framework (EDF)' and you want to know about + +* its context to 'Platform Engineering' * and why we think it's the stuff we need to care about in the EDF {{% /pageinfo %}} @@ -41,9 +43,7 @@ Please do not think this story and the underlying assumptions are carved in ston ## Your role as 'Framework Engineer' in the Domain Architecture -Pls be aware of the the following domain and task structure of our mission: +Pls be aware of the the following domain and task structure of our mission: ![](./conclusio/images/modern.png) - - diff --git a/content/en/docs/project/conceptual-onboarding/2_edge-developer-framework/_index.md b/content/en/docs/v1/project/conceptual-onboarding/2_edge-developer-framework/_index.md similarity index 90% rename from content/en/docs/project/conceptual-onboarding/2_edge-developer-framework/_index.md rename to content/en/docs/v1/project/conceptual-onboarding/2_edge-developer-framework/_index.md index 8da5935..452461a 100644 --- a/content/en/docs/project/conceptual-onboarding/2_edge-developer-framework/_index.md +++ b/content/en/docs/v1/project/conceptual-onboarding/2_edge-developer-framework/_index.md @@ -5,10 +5,11 @@ description: Driving requirements for a platform --- {{% pageinfo color="info" %}} + ## Summary -The 'Edge Developer Framework' is both the project and the product we are working for. Out of the leading 'Portfolio Document' -we derive requirements which are ought to be fulfilled by Platform Engineering. +The 'Edge Developer Framework' is both the project and the product we are working for. Out of the leading 'Portfolio Document' +we derive requirements which are ought to be fulfilled by Platform Engineering. **This is our claim!** @@ -26,6 +27,7 @@ e. Development of DTAG/TSI Edge Developer Framework * Goal: All developed innovations must be accessible to developer communities in a **highly user-friendly and easy way** ### Development of DTAG/TSI Edge Developer Framework (p.14) + | capability | major novelties ||| | -- | -- | -- | -- | | e.1. Edge Developer full service framework (SDK + day1 +day2 support for edge installations) | Adaptive CI/CD pipelines for heterogeneous edge environments | Decentralized and self healing deployment and management | edge-driven monitoring and analytics | @@ -34,22 +36,23 @@ e. Development of DTAG/TSI Edge Developer Framework ### DTAG objectives & contributions (p.27) -DTAG will also focus on developing an easy-to-use **Edge Developer framework for software +DTAG will also focus on developing an easy-to-use **Edge Developer framework for software developers** to **manage the whole lifecycle of edge applications**, i.e. for **day-0-, day-1- and up to day-2- -operations**. With this DTAG will strongly enable the ecosystem building for the entire IPCEI-CIS edge to -cloud continuum and ensure openness and accessibility for anyone or any company to make use and -further build on the edge to cloud continuum. Providing the use of the tool framework via an open-source approach will further reduce entry barriers and enhance the openness and accessibility for anyone or +operations**. With this DTAG will strongly enable the ecosystem building for the entire IPCEI-CIS edge to +cloud continuum and ensure openness and accessibility for anyone or any company to make use and +further build on the edge to cloud continuum. Providing the use of the tool framework via an open-source approach will further reduce entry barriers and enhance the openness and accessibility for anyone or any organization (see innovations e.). ### WP Deliverables (p.170) e.1 Edge developer full-service framework -This tool set and related best practices and guidelines will **adapt, enhance and further innovate DevOps principles** and -their related, necessary supporting technologies according to the specific requirements and constraints associated with edge or edge cloud development, in order to keep the healthy and balanced innovation path on both sides, +This tool set and related best practices and guidelines will **adapt, enhance and further innovate DevOps principles** and +their related, necessary supporting technologies according to the specific requirements and constraints associated with edge or edge cloud development, in order to keep the healthy and balanced innovation path on both sides, the (software) development side and the operations side in the field of DevOps. {{% pageinfo color="info" %}} + ### What comes next? [Next](../platforming/) we'll see how these requirements seem to be fulfilled by platforms! diff --git a/content/en/docs/project/conceptual-onboarding/3_platforming/_index.md b/content/en/docs/v1/project/conceptual-onboarding/3_platforming/_index.md similarity index 96% rename from content/en/docs/project/conceptual-onboarding/3_platforming/_index.md rename to content/en/docs/v1/project/conceptual-onboarding/3_platforming/_index.md index 6a41b34..48f790f 100644 --- a/content/en/docs/project/conceptual-onboarding/3_platforming/_index.md +++ b/content/en/docs/v1/project/conceptual-onboarding/3_platforming/_index.md @@ -7,17 +7,18 @@ description: DevOps is dead - long live next level DevOps in platforms {{% pageinfo color="info" %}} + ## Summary -Since 2010 we have DevOps. This brings increasing delivery speed and efficiency at scale. -But next we got high 'cognitive loads' for developers and production congestion due to engineering lifecycle complexity. +Since 2010 we have DevOps. This brings increasing delivery speed and efficiency at scale. +But next we got high 'cognitive loads' for developers and production congestion due to engineering lifecycle complexity. So we need on top of DevOps an instrumentation to ensure and enforce speed, quality, security in modern, cloud native software development. This instrumentation is called 'golden paths' in intenal develoepr platforms (IDP). {{% /pageinfo %}} ## History of Platform Engineering -Let's start with a look into the history of platform engineering. A good starting point is [Humanitec](https://humanitec.com/), as they nowadays are one of the biggest players (['the market leader in IDPs.'](https://internaldeveloperplatform.org/#how-we-curate-this-site)) in platform engineering. +Let's start with a look into the history of platform engineering. A good starting point is [Humanitec](https://humanitec.com/), as they nowadays are one of the biggest players (['the market leader in IDPs.'](https://internaldeveloperplatform.org/#how-we-curate-this-site)) in platform engineering. They create lots of [beautiful articles and insights](https://humanitec.com/blog), their own [platform products](https://humanitec.com/products/) and [basic concepts for the platform architecture](https://humanitec.com/platform-engineering) (we'll meet this later on!). @@ -51,7 +52,7 @@ There is a CNCF working group which provides the definition of [Capabilities of ### Platform Engineering Team -Or, in another illustration for the platform as a developer service interface, which also defines the **'Platform Engineering Team'** inbetween: +Or, in another illustration for the platform as a developer service interface, which also defines the **'Platform Engineering Team'** inbetween: https://medium.com/@bijit211987/what-is-platform-engineering-and-how-it-reduce-cognitive-load-on-developers-ac7805603925 @@ -70,7 +71,7 @@ First of all some important wording to motivate the important term 'internal dev [Capabilities of platforms](https://tag-app-delivery.cncf.io/whitepapers/platforms/#capabilities-of-platforms) -### Ecosystems in InternalDeveloperPlatform +### Ecosystems in InternalDeveloperPlatform Build or buy - this is also in pltaform engineering a tweaked discussion, which one of the oldest player answers like this with some oppinioated internal capability structuring: @@ -78,6 +79,7 @@ Build or buy - this is also in pltaform engineering a tweaked discussion, which {{% pageinfo color="info" %}} + ### What comes next? [Next](../orchestrators/) we'll see how these concepts got structured! @@ -87,7 +89,7 @@ Build or buy - this is also in pltaform engineering a tweaked discussion, which ### Digital Platform defintion from [What we **call** a Platform](https://martinfowler.com/articles/talk-about-platforms.html) -> Words are hard, it seems. ‘Platform’ is just about the most ambiguous term we could use for an approach that is super-important for increasing delivery speed and efficiency at scale. Hence the title of this article, here is what I’ve been talking about most recently. +> Words are hard, it seems. ‘Platform’ is just about the most ambiguous term we could use for an approach that is super-important for increasing delivery speed and efficiency at scale. Hence the title of this article, here is what I’ve been talking about most recently. \ Definitions for software and hardware platforms abound, generally describing an operating environment upon which applications can execute and which provides reusable capabilities such as file systems and security. \ diff --git a/content/en/docs/project/conceptual-onboarding/3_platforming/humanitec-history.png b/content/en/docs/v1/project/conceptual-onboarding/3_platforming/humanitec-history.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/3_platforming/humanitec-history.png rename to content/en/docs/v1/project/conceptual-onboarding/3_platforming/humanitec-history.png diff --git a/content/en/docs/project/conceptual-onboarding/3_platforming/platform-self-services.webp b/content/en/docs/v1/project/conceptual-onboarding/3_platforming/platform-self-services.webp similarity index 100% rename from content/en/docs/project/conceptual-onboarding/3_platforming/platform-self-services.webp rename to content/en/docs/v1/project/conceptual-onboarding/3_platforming/platform-self-services.webp diff --git a/content/en/docs/project/conceptual-onboarding/3_platforming/platforms-def.drawio.png b/content/en/docs/v1/project/conceptual-onboarding/3_platforming/platforms-def.drawio.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/3_platforming/platforms-def.drawio.png rename to content/en/docs/v1/project/conceptual-onboarding/3_platforming/platforms-def.drawio.png diff --git a/content/en/docs/project/conceptual-onboarding/3_platforming/teams.png b/content/en/docs/v1/project/conceptual-onboarding/3_platforming/teams.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/3_platforming/teams.png rename to content/en/docs/v1/project/conceptual-onboarding/3_platforming/teams.png diff --git a/content/en/docs/project/conceptual-onboarding/4_orchestrators/_index.md b/content/en/docs/v1/project/conceptual-onboarding/4_orchestrators/_index.md similarity index 98% rename from content/en/docs/project/conceptual-onboarding/4_orchestrators/_index.md rename to content/en/docs/v1/project/conceptual-onboarding/4_orchestrators/_index.md index 11f4446..29b4486 100644 --- a/content/en/docs/project/conceptual-onboarding/4_orchestrators/_index.md +++ b/content/en/docs/v1/project/conceptual-onboarding/4_orchestrators/_index.md @@ -5,9 +5,11 @@ description: Next level platforming is orchestrating platforms --- {{% pageinfo color="info" %}} + ## Summary -When defining and setting up platforms next two intrinsic problems arise: +When defining and setting up platforms next two intrinsic problems arise: + 1. it is not declarative and automated 2. it is not or least not easily changable @@ -33,10 +35,11 @@ https://humanitec.com/reference-architectures https://humanitec.com/blog/aws-azure-and-gcp-open-source-reference-architectures-to-start-your-mvp -> Hint: There is a [slides tool provided by McKinsey](https://platformengineering.org/blog/create-your-own-platform-engineering-reference-architectures) to set up your own platform deign based on the reference architecture +> Hint: There is a [slides tool provided by McKinsey](https://platformengineering.org/blog/create-your-own-platform-engineering-reference-architectures) to set up your own platform deign based on the reference architecture {{% pageinfo color="info" %}} + ### What comes next? [Next](../cnoe/) we'll see how we are going to do platform orchestration with CNOE! @@ -50,4 +53,3 @@ You remember the [capability mappings from the time before orchestration](../pla https://humanitec.com/whitepapers/state-of-platform-engineering-report-volume-2 Whitepaper_ State of Platform Engineering Report.pdf - diff --git a/content/en/docs/project/conceptual-onboarding/4_orchestrators/platform-architectures.webp b/content/en/docs/v1/project/conceptual-onboarding/4_orchestrators/platform-architectures.webp similarity index 100% rename from content/en/docs/project/conceptual-onboarding/4_orchestrators/platform-architectures.webp rename to content/en/docs/v1/project/conceptual-onboarding/4_orchestrators/platform-architectures.webp diff --git a/content/en/docs/project/conceptual-onboarding/4_orchestrators/platform-tooling-humanitec-platform-report-2024.PNG b/content/en/docs/v1/project/conceptual-onboarding/4_orchestrators/platform-tooling-humanitec-platform-report-2024.PNG similarity index 100% rename from content/en/docs/project/conceptual-onboarding/4_orchestrators/platform-tooling-humanitec-platform-report-2024.PNG rename to content/en/docs/v1/project/conceptual-onboarding/4_orchestrators/platform-tooling-humanitec-platform-report-2024.PNG diff --git a/content/en/docs/project/conceptual-onboarding/4_orchestrators/vendor-neutral-idp-final.gif b/content/en/docs/v1/project/conceptual-onboarding/4_orchestrators/vendor-neutral-idp-final.gif similarity index 100% rename from content/en/docs/project/conceptual-onboarding/4_orchestrators/vendor-neutral-idp-final.gif rename to content/en/docs/v1/project/conceptual-onboarding/4_orchestrators/vendor-neutral-idp-final.gif diff --git a/content/en/docs/project/conceptual-onboarding/5_cnoe/_index.md b/content/en/docs/v1/project/conceptual-onboarding/5_cnoe/_index.md similarity index 99% rename from content/en/docs/project/conceptual-onboarding/5_cnoe/_index.md rename to content/en/docs/v1/project/conceptual-onboarding/5_cnoe/_index.md index 3788735..19b2e67 100644 --- a/content/en/docs/project/conceptual-onboarding/5_cnoe/_index.md +++ b/content/en/docs/v1/project/conceptual-onboarding/5_cnoe/_index.md @@ -5,6 +5,7 @@ description: Our top candidate for a platform orchestrator --- {{% pageinfo color="info" %}} + ## Summary In late 2023 platform orchestration raised - the discipline of declarativley dinfing, building, orchestarting and reconciling building blocks of (digital) platforms. @@ -17,6 +18,7 @@ Thus we were looking for open source means for platform orchestrating and found ## Requirements for an Orchestrator When we want to set up a [complete platform](../platforming/platforms-def.drawio.png) we expect to have + * a **schema** which defines the platform, its ressources and internal behaviour * a **dynamic configuration or templating mechanism** to provide a concrete specification of a platform * a **deployment mechanism** to deploy and reconcile the platform @@ -55,6 +57,7 @@ There are already some example stacks: {{% pageinfo color="info" %}} + ### What comes next? [Next](../cnoe-showtime/) we'll see how a CNOE stacked Internal Developer Platform is deployed on you local laptop! diff --git a/content/en/docs/project/conceptual-onboarding/5_cnoe/cnoe-architecture.png b/content/en/docs/v1/project/conceptual-onboarding/5_cnoe/cnoe-architecture.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/5_cnoe/cnoe-architecture.png rename to content/en/docs/v1/project/conceptual-onboarding/5_cnoe/cnoe-architecture.png diff --git a/content/en/docs/project/conceptual-onboarding/5_cnoe/cnoe-capabilities.png b/content/en/docs/v1/project/conceptual-onboarding/5_cnoe/cnoe-capabilities.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/5_cnoe/cnoe-capabilities.png rename to content/en/docs/v1/project/conceptual-onboarding/5_cnoe/cnoe-capabilities.png diff --git a/content/en/docs/project/conceptual-onboarding/5_cnoe/cnoe-stacks.png b/content/en/docs/v1/project/conceptual-onboarding/5_cnoe/cnoe-stacks.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/5_cnoe/cnoe-stacks.png rename to content/en/docs/v1/project/conceptual-onboarding/5_cnoe/cnoe-stacks.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/_index.md b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/_index.md similarity index 99% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/_index.md rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/_index.md index ab7be8e..a741445 100644 --- a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/_index.md +++ b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/_index.md @@ -5,9 +5,10 @@ description: CNOE hands on --- {{% pageinfo color="info" %}} + ## Summary -CNOE is a 'Platform Engineering Framework' (Danger: Our wording!) - it is open source and locally runnable. +CNOE is a 'Platform Engineering Framework' (Danger: Our wording!) - it is open source and locally runnable. It consists of the orchestrator 'idpbuilder' and both of some predefined building blocks and also some predefined platform configurations. @@ -87,7 +88,7 @@ It's an important feature of idpbuilder that it will set up on an existing clust That's why we here first create the kind cluster `localdev`itself: -```bash +```bash cat << EOF | kind create cluster --name localdev --config=- # Kind kubernetes release images https://github.com/kubernetes-sigs/kind/releases kind: Cluster @@ -137,7 +138,7 @@ kube-system kube-scheduler-localdev-control-plane 1/1 Ru local-path-storage local-path-provisioner-6f8956fb48-6fvt2 1/1 Running 0 15s ``` -### First run: Start with core applications, 'core package' +### First run: Start with core applications, 'core package' Now we run idpbuilder the first time: @@ -149,7 +150,7 @@ ib create --use-path-routing #### Output -##### idpbuilder log +##### idpbuilder log ```bash stl@ubuntu-vpn:~/git/mms/idpbuilder$ ib create --use-path-routing @@ -243,7 +244,7 @@ Data: username : giteaAdmin ``` -In ArgoCD you will see the deployed three applications of the core package: +In ArgoCD you will see the deployed three applications of the core package: ![alt text](image-1.png) @@ -302,7 +303,7 @@ drwxr-xr-x 4 stl stl 4096 Jul 29 10:57 .. Now we run idpbuilder the second time with `-p basic/package1` -##### idpbuilder log +##### idpbuilder log ```bash stl@ubuntu-vpn:~/git/mms/cnoe-stacks$ ib create --use-path-routing -p basic/package1 @@ -572,9 +573,10 @@ Next wait a bit until Gitops does its magic and our 'wanted' state in the repo g ![alt text](image-15.png) {{% pageinfo color="info" %}} + ### What comes next? The showtime of CNOE high level behaviour and usage scenarios is now finished. We setup an initial IDP and used a backstage golden path to init and deploy a simple application. -[Last not least](../conclusio/) we want to sum up the whole way from Devops to 'Frameworking' (is this the correct wording???) +[Last not least](../conclusio/) we want to sum up the whole way from Devops to 'Frameworking' (is this the correct wording???) {{% /pageinfo %}} diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-1.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-1.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-1.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-1.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-10.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-10.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-10.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-10.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-11.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-11.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-11.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-11.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-12.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-12.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-12.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-12.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-13.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-13.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-13.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-13.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-14.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-14.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-14.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-14.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-15.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-15.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-15.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-15.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-16.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-16.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-16.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-16.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-2.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-2.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-2.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-2.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-3.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-3.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-3.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-3.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-4.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-4.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-4.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-4.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-5.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-5.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-5.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-5.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-6.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-6.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-6.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-6.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-7.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-7.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-7.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-7.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-8.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-8.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-8.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-8.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-9.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-9.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-9.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image-9.png diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image.png b/content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image.png rename to content/en/docs/v1/project/conceptual-onboarding/6_cnoe-showtime/image.png diff --git a/content/en/docs/project/conceptual-onboarding/7_conclusio/README.md b/content/en/docs/v1/project/conceptual-onboarding/7_conclusio/README.md similarity index 84% rename from content/en/docs/project/conceptual-onboarding/7_conclusio/README.md rename to content/en/docs/v1/project/conceptual-onboarding/7_conclusio/README.md index 769478d..a1027c9 100644 --- a/content/en/docs/project/conceptual-onboarding/7_conclusio/README.md +++ b/content/en/docs/v1/project/conceptual-onboarding/7_conclusio/README.md @@ -9,10 +9,10 @@ docker commit likec4 likec4 docker run -it --rm --user node -v $PWD:/app -p 5173:5173 likec4 bash // as root -npx playwright install-deps +npx playwright install-deps npx playwright install npm install likec4 // render -node@e20899c8046f:/app/content/en/docs/project/onboarding$ ./node_modules/.bin/likec4 export png -o ./images . \ No newline at end of file +node@e20899c8046f:/app/content/en/docs/project/onboarding$ ./node_modules/.bin/likec4 export png -o ./images . diff --git a/content/en/docs/project/conceptual-onboarding/7_conclusio/_index.md b/content/en/docs/v1/project/conceptual-onboarding/7_conclusio/_index.md similarity index 78% rename from content/en/docs/project/conceptual-onboarding/7_conclusio/_index.md rename to content/en/docs/v1/project/conceptual-onboarding/7_conclusio/_index.md index da262e3..f76269f 100644 --- a/content/en/docs/project/conceptual-onboarding/7_conclusio/_index.md +++ b/content/en/docs/v1/project/conceptual-onboarding/7_conclusio/_index.md @@ -5,6 +5,7 @@ description: 'Summary and final thoughts: Always challenge theses concepts, accu --- {{% pageinfo color="info" %}} + ## Summary In the project 'Edge Developer Framework' we start with DevOps, set platforms on top to automate golden paths, and finally set 'frameworks' (aka Orchestrators') on top to have declarative,automated and reconcilable platforms. @@ -14,7 +15,7 @@ In the project 'Edge Developer Framework' we start with DevOps, set platforms on ## From Devops over Platform to Framework Engineering -We come along from a quite well known, but already complex discipline called 'Platform Engineering', which is the next level devops. +We come along from a quite well known, but already complex discipline called 'Platform Engineering', which is the next level devops. On top of these two domains we now have 'Framework Engineering', i.e. buildung dynamic, orchestrated and reconciling platforms: | Classic Platform engineering | New: Framework Orchestration on top of Platforms | Your job: Framework Engineer | @@ -23,11 +24,12 @@ On top of these two domains we now have 'Framework Engineering', i.e. buildung d ## The whole picture of engineering -So always keep in mind that as as 'Framework Engineer' you - * include the skills of a platform and a devops engineer, - * you do Framework, Platform and Devops Engineering at the same time - * and your results have impact on Frameworks, Platforms and Devops tools, layers, processes. +So always keep in mind that as as 'Framework Engineer' you + +* include the skills of a platform and a devops engineer, +* you do Framework, Platform and Devops Engineering at the same time +* and your results have impact on Frameworks, Platforms and Devops tools, layers, processes. The following diamond is illustrating this: on top is you, on the bottom is our baseline 'DevOps' - \ No newline at end of file + diff --git a/content/en/docs/project/conceptual-onboarding/7_conclusio/domain-architecture.c4 b/content/en/docs/v1/project/conceptual-onboarding/7_conclusio/domain-architecture.c4 similarity index 100% rename from content/en/docs/project/conceptual-onboarding/7_conclusio/domain-architecture.c4 rename to content/en/docs/v1/project/conceptual-onboarding/7_conclusio/domain-architecture.c4 diff --git a/content/en/docs/project/conceptual-onboarding/7_conclusio/images/layers-and-framework-engineer.png b/content/en/docs/v1/project/conceptual-onboarding/7_conclusio/images/layers-and-framework-engineer.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/7_conclusio/images/layers-and-framework-engineer.png rename to content/en/docs/v1/project/conceptual-onboarding/7_conclusio/images/layers-and-framework-engineer.png diff --git a/content/en/docs/project/conceptual-onboarding/7_conclusio/images/layers-and-platform-engineer.png b/content/en/docs/v1/project/conceptual-onboarding/7_conclusio/images/layers-and-platform-engineer.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/7_conclusio/images/layers-and-platform-engineer.png rename to content/en/docs/v1/project/conceptual-onboarding/7_conclusio/images/layers-and-platform-engineer.png diff --git a/content/en/docs/project/conceptual-onboarding/7_conclusio/images/layers.png b/content/en/docs/v1/project/conceptual-onboarding/7_conclusio/images/layers.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/7_conclusio/images/layers.png rename to content/en/docs/v1/project/conceptual-onboarding/7_conclusio/images/layers.png diff --git a/content/en/docs/project/conceptual-onboarding/7_conclusio/images/modern.png b/content/en/docs/v1/project/conceptual-onboarding/7_conclusio/images/modern.png similarity index 100% rename from content/en/docs/project/conceptual-onboarding/7_conclusio/images/modern.png rename to content/en/docs/v1/project/conceptual-onboarding/7_conclusio/images/modern.png diff --git a/content/en/docs/project/conceptual-onboarding/_index.md b/content/en/docs/v1/project/conceptual-onboarding/_index.md similarity index 100% rename from content/en/docs/project/conceptual-onboarding/_index.md rename to content/en/docs/v1/project/conceptual-onboarding/_index.md diff --git a/content/en/docs/project/conceptual-onboarding/storyline.md b/content/en/docs/v1/project/conceptual-onboarding/storyline.md similarity index 98% rename from content/en/docs/project/conceptual-onboarding/storyline.md rename to content/en/docs/v1/project/conceptual-onboarding/storyline.md index 11d2997..b49b373 100644 --- a/content/en/docs/project/conceptual-onboarding/storyline.md +++ b/content/en/docs/v1/project/conceptual-onboarding/storyline.md @@ -1,5 +1,5 @@ -## Storyline +## Storyline 1. We have the 'Developer Framework' 2. We think the solution for DF is 'Platforming' (Digital Platforms) @@ -25,4 +25,3 @@ ## Architecture - diff --git a/content/en/docs/project/intro-stakeholder-workshop/DevOps-Lifecycle-1.jpg b/content/en/docs/v1/project/intro-stakeholder-workshop/DevOps-Lifecycle-1.jpg similarity index 100% rename from content/en/docs/project/intro-stakeholder-workshop/DevOps-Lifecycle-1.jpg rename to content/en/docs/v1/project/intro-stakeholder-workshop/DevOps-Lifecycle-1.jpg diff --git a/content/en/docs/project/intro-stakeholder-workshop/DevOps-Lifecycle.jpg b/content/en/docs/v1/project/intro-stakeholder-workshop/DevOps-Lifecycle.jpg similarity index 100% rename from content/en/docs/project/intro-stakeholder-workshop/DevOps-Lifecycle.jpg rename to content/en/docs/v1/project/intro-stakeholder-workshop/DevOps-Lifecycle.jpg diff --git a/content/en/docs/project/intro-stakeholder-workshop/_index.md b/content/en/docs/v1/project/intro-stakeholder-workshop/_index.md similarity index 99% rename from content/en/docs/project/intro-stakeholder-workshop/_index.md rename to content/en/docs/v1/project/intro-stakeholder-workshop/_index.md index 63b29e9..a3cf645 100644 --- a/content/en/docs/project/intro-stakeholder-workshop/_index.md +++ b/content/en/docs/v1/project/intro-stakeholder-workshop/_index.md @@ -36,7 +36,7 @@ linktitle: Stakeholder Workshops ![alt text](DevOps-Lifecycle.jpg) * from 'left' to 'right' - plan to monitor -* 'leftshift' +* 'leftshift' * --> turns out to be a right shift for developers with cognitive overload * 'DevOps isd dead' -> we need Platforms @@ -64,7 +64,7 @@ Here is a small list of companies alrteady using IDPs: * Autodesk * Adobe * Cisco -* ... +* ... ## 3 Platform building by 'Orchestrating' @@ -91,5 +91,3 @@ Sticking together the platforming orchestration concept, the reference architect This will now be presented! Enjoy! - - diff --git a/content/en/docs/project/intro-stakeholder-workshop/devops.png b/content/en/docs/v1/project/intro-stakeholder-workshop/devops.png similarity index 100% rename from content/en/docs/project/intro-stakeholder-workshop/devops.png rename to content/en/docs/v1/project/intro-stakeholder-workshop/devops.png diff --git a/content/en/docs/project/intro-stakeholder-workshop/image.png b/content/en/docs/v1/project/intro-stakeholder-workshop/image.png similarity index 100% rename from content/en/docs/project/intro-stakeholder-workshop/image.png rename to content/en/docs/v1/project/intro-stakeholder-workshop/image.png diff --git a/content/en/docs/project/plan-in-2024/_index.md b/content/en/docs/v1/project/plan-in-2024/_index.md similarity index 97% rename from content/en/docs/project/plan-in-2024/_index.md rename to content/en/docs/v1/project/plan-in-2024/_index.md index 42c9e7f..7dd8b50 100644 --- a/content/en/docs/project/plan-in-2024/_index.md +++ b/content/en/docs/v1/project/plan-in-2024/_index.md @@ -5,7 +5,7 @@ description: The planned project workload in 2024 --- -## First Blue Print in 2024 +## First Blue Print in 2024 Our first architectural blue print for the IPCEI-CIS Developer Framework derives from Humanitecs Reference Architecture, see links in [Blog](../../blog/240823-archsession.md) @@ -39,6 +39,7 @@ https://confluence.telekom-mms.com/display/IPCEICIS/Architecture 7) Wildcard Domain ?? --> Eher ja Next Steps: (Vorschlag: in den nächsten 2 Wochen) + 1. Florian spezifiziert an Tobias 2. Tobias stellt bereit, kubeconfig kommt an uns 3. wir deployen diff --git a/content/en/docs/project/plan-in-2024/image-2024-8-14_10-50-27.png b/content/en/docs/v1/project/plan-in-2024/image-2024-8-14_10-50-27.png similarity index 100% rename from content/en/docs/project/plan-in-2024/image-2024-8-14_10-50-27.png rename to content/en/docs/v1/project/plan-in-2024/image-2024-8-14_10-50-27.png diff --git a/content/en/docs/project/plan-in-2024/planes.png b/content/en/docs/v1/project/plan-in-2024/planes.png similarity index 100% rename from content/en/docs/project/plan-in-2024/planes.png rename to content/en/docs/v1/project/plan-in-2024/planes.png diff --git a/content/en/docs/project/plan-in-2024/poc/_assets/image-1.png b/content/en/docs/v1/project/plan-in-2024/poc/_assets/image-1.png similarity index 100% rename from content/en/docs/project/plan-in-2024/poc/_assets/image-1.png rename to content/en/docs/v1/project/plan-in-2024/poc/_assets/image-1.png diff --git a/content/en/docs/project/plan-in-2024/poc/_assets/image.png b/content/en/docs/v1/project/plan-in-2024/poc/_assets/image.png similarity index 100% rename from content/en/docs/project/plan-in-2024/poc/_assets/image.png rename to content/en/docs/v1/project/plan-in-2024/poc/_assets/image.png diff --git a/content/en/docs/project/plan-in-2024/poc/_index.md b/content/en/docs/v1/project/plan-in-2024/poc/_index.md similarity index 90% rename from content/en/docs/project/plan-in-2024/poc/_index.md rename to content/en/docs/v1/project/plan-in-2024/poc/_index.md index b49e260..ef03359 100644 --- a/content/en/docs/project/plan-in-2024/poc/_index.md +++ b/content/en/docs/v1/project/plan-in-2024/poc/_index.md @@ -12,4 +12,4 @@ Presented and approved on tuesday, 26.11.2024 within the team: The use cases/application lifecycle and deployment flow is drawn here: https://confluence.telekom-mms.com/display/IPCEICIS/Proof+of+Concept+2024 -![alt text](./_assets/image-1.png) \ No newline at end of file +![alt text](./_assets/image-1.png) diff --git a/content/en/docs/project/plan-in-2024/streams/_index.md b/content/en/docs/v1/project/plan-in-2024/streams/_index.md similarity index 96% rename from content/en/docs/project/plan-in-2024/streams/_index.md rename to content/en/docs/v1/project/plan-in-2024/streams/_index.md index d060a96..2f65326 100644 --- a/content/en/docs/project/plan-in-2024/streams/_index.md +++ b/content/en/docs/v1/project/plan-in-2024/streams/_index.md @@ -3,9 +3,10 @@ title: Workstreams weight: 2 --- -This page is WiP (23.8.2024). +This page is WiP (23.8.2024). > Continued discussion on 29th Aug 24 +> > * idea: Top down mit SAFe, Value Streams > * paralell dazu bottom up (die zB aus den technisch/operativen Tätigkeietn entstehen) > * Scrum Master? @@ -14,7 +15,7 @@ This page is WiP (23.8.2024). Stefan and Stephan try to solve the mission 'wir wollen losmachen'. -**Solution Idea**: +**Solution Idea**: 1. First we define a **rough overall structure (see 'streams')** and propose some initial **activities** (like user stories) within them. 1. Next we work in **iterative steps** and produce iteratively progress and knowledge and outcomes in these activities. diff --git a/content/en/docs/v1/project/plan-in-2024/streams/deployment/_index.md b/content/en/docs/v1/project/plan-in-2024/streams/deployment/_index.md new file mode 100644 index 0000000..cae759b --- /dev/null +++ b/content/en/docs/v1/project/plan-in-2024/streams/deployment/_index.md @@ -0,0 +1,15 @@ +--- +title: Deployment +weight: 3 +--- + +> **Mantra**: +> +> 1. Everything as Code. +> 1. Cloud natively deployable everywhere. +> 1. Ramping up and tearing down oftenly is a no-brainer. +> 1. Especially locally (whereby 'locally' means 'under my own control') + +## Entwurf (28.8.24) + +![Deployment 2024](./deployment.drawio.png) diff --git a/content/en/docs/project/plan-in-2024/streams/deployment/deployment.drawio.png b/content/en/docs/v1/project/plan-in-2024/streams/deployment/deployment.drawio.png similarity index 100% rename from content/en/docs/project/plan-in-2024/streams/deployment/deployment.drawio.png rename to content/en/docs/v1/project/plan-in-2024/streams/deployment/deployment.drawio.png diff --git a/content/en/docs/project/plan-in-2024/streams/deployment/forgejo/_index.md b/content/en/docs/v1/project/plan-in-2024/streams/deployment/forgejo/_index.md similarity index 84% rename from content/en/docs/project/plan-in-2024/streams/deployment/forgejo/_index.md rename to content/en/docs/v1/project/plan-in-2024/streams/deployment/forgejo/_index.md index 7e10216..de68795 100644 --- a/content/en/docs/project/plan-in-2024/streams/deployment/forgejo/_index.md +++ b/content/en/docs/v1/project/plan-in-2024/streams/deployment/forgejo/_index.md @@ -4,7 +4,7 @@ linkTitle: Forgejo weight: 1 --- -> **WiP** Ich (Stephan) schreibe mal schnell einige Stichworte, was ich so von Stefan gehört habe: +> **WiP** Ich (Stephan) schreibe mal schnell einige Stichworte, was ich so von Stefan gehört habe: ## Summary @@ -33,4 +33,4 @@ tbd * STBE deployed mit Helm in bereitgestelltes OTC-Kubernetes * erstmal interne User Datenbank nutzen -* dann ggf. OIDC mit vorhandenem Keycloak in der OTC anbinden \ No newline at end of file +* dann ggf. OIDC mit vorhandenem Keycloak in der OTC anbinden diff --git a/content/en/docs/project/plan-in-2024/streams/fundamentals/_index.md b/content/en/docs/v1/project/plan-in-2024/streams/fundamentals/_index.md similarity index 95% rename from content/en/docs/project/plan-in-2024/streams/fundamentals/_index.md rename to content/en/docs/v1/project/plan-in-2024/streams/fundamentals/_index.md index fd8d2df..13d90d3 100644 --- a/content/en/docs/project/plan-in-2024/streams/fundamentals/_index.md +++ b/content/en/docs/v1/project/plan-in-2024/streams/fundamentals/_index.md @@ -15,4 +15,4 @@ weight: 1 ### nice article about platform orchestration automation (introducing BACK stack) -* https://dev.to/thenjdevopsguy/creating-your-platform-engineering-environment-4hpa \ No newline at end of file +* https://dev.to/thenjdevopsguy/creating-your-platform-engineering-environment-4hpa diff --git a/content/en/docs/project/plan-in-2024/streams/fundamentals/cicd-definition/_index.md b/content/en/docs/v1/project/plan-in-2024/streams/fundamentals/cicd-definition/_index.md similarity index 94% rename from content/en/docs/project/plan-in-2024/streams/fundamentals/cicd-definition/_index.md rename to content/en/docs/v1/project/plan-in-2024/streams/fundamentals/cicd-definition/_index.md index 2565522..54259ed 100644 --- a/content/en/docs/project/plan-in-2024/streams/fundamentals/cicd-definition/_index.md +++ b/content/en/docs/v1/project/plan-in-2024/streams/fundamentals/cicd-definition/_index.md @@ -12,9 +12,10 @@ Der Produktionsprozess für Applikationen soll im Kontext von Gitops und Plattfo In Gitops basierten Plattformen (Anm.: wie es zB. CNOE und Humanitec mit ArgoCD sind) trifft das klassische Verständnis von Pipelining mit finalem Pushing des fertigen Builds auf die Target-Plattform nicht mehr zu. -D.h. in diesem fall is Argo CD = Continuous Delivery = Pulling des desired state auf die Target plattform. Eine pipeline hat hier keien Rechte mehr, single source of truth ist das 'Control-Git'. +D.h. in diesem fall is Argo CD = Continuous Delivery = Pulling des desired state auf die Target plattform. Eine pipeline hat hier keien Rechte mehr, single source of truth ist das 'Control-Git'. D.h. es stellen sich zwei Fragen: + 1. Wie sieht der adaptierte Workflow aus, der die 'Single Source of Truth' im 'Control-Git' definiert? Was ist das gewünschte korrekte Wording? Was bedeuen CI und CD in diesem (neuen) Kontext ? Auf welchen Environmants laufen Steps (zB Funktionstest), die eben nicht mehr auf einer gitops-kontrollierten Stage laufen? 2. Wie sieht der Workflow aus für 'Events', die nach dem CI/CD in die single source of truth einfliessen? ZB. abnahmen auf einer Abnahme Stage, oder Integrationsprobleme auf einer test Stage @@ -22,9 +23,9 @@ D.h. es stellen sich zwei Fragen: * Es sollen existierende, typische Pipelines hergenommen werden und auf die oben skizzierten Fragestellungen hin untersucht und angepasst werden. * In lokalen Demo-Systemen (mit oder ohne CNOE aufgesetzt) sollen die Pipeline entwürfe dummyhaft dargestellt werden und luffähig sein. -* Für den POC sollen Workflow-Systeme wie Dagger, Argo Workflow, Flux, Forgejo Actions zum Einsatz kommen. +* Für den POC sollen Workflow-Systeme wie Dagger, Argo Workflow, Flux, Forgejo Actions zum Einsatz kommen. ## Further ideas for POSs -* see sample flows in https://docs.kubefirst.io/ \ No newline at end of file +* see sample flows in https://docs.kubefirst.io/ diff --git a/content/en/docs/project/plan-in-2024/streams/fundamentals/image.png b/content/en/docs/v1/project/plan-in-2024/streams/fundamentals/image.png similarity index 100% rename from content/en/docs/project/plan-in-2024/streams/fundamentals/image.png rename to content/en/docs/v1/project/plan-in-2024/streams/fundamentals/image.png diff --git a/content/en/docs/project/plan-in-2024/streams/fundamentals/platform-definition/_index.md b/content/en/docs/v1/project/plan-in-2024/streams/fundamentals/platform-definition/_index.md similarity index 93% rename from content/en/docs/project/plan-in-2024/streams/fundamentals/platform-definition/_index.md rename to content/en/docs/v1/project/plan-in-2024/streams/fundamentals/platform-definition/_index.md index c4d21c9..33d842d 100644 --- a/content/en/docs/project/plan-in-2024/streams/fundamentals/platform-definition/_index.md +++ b/content/en/docs/v1/project/plan-in-2024/streams/fundamentals/platform-definition/_index.md @@ -4,14 +4,14 @@ linkTitle: Platform Definition weight: 1 --- -## Summary +## Summary -Das theoretische Fundament unserer Plattform-Architektur soll begründet und weitere wesentliche Erfahrungen anderer Player durch Recherche erhoben werden, so dass unser aktuelles Zielbild abgesichert ist. +Das theoretische Fundament unserer Plattform-Architektur soll begründet und weitere wesentliche Erfahrungen anderer Player durch Recherche erhoben werden, so dass unser aktuelles Zielbild abgesichert ist. ## Rationale -Wir starten gerade auf der Bais des Referenzmodells zu Platform-Engineering von Gartner und Huamitec. -Es gibt viele weitere Grundlagen und Entwicklungen zu Platform Engineering. +Wir starten gerade auf der Bais des Referenzmodells zu Platform-Engineering von Gartner und Huamitec. +Es gibt viele weitere Grundlagen und Entwicklungen zu Platform Engineering. ## Task @@ -25,6 +25,3 @@ Es gibt viele weitere Grundlagen und Entwicklungen zu Platform Engineering. * Argumentation für unseren Weg zusammentragen. * Best Practices und wichtige Tipps und Erfahrungen zusammentragen. - - - diff --git a/content/en/docs/v1/project/plan-in-2024/streams/pocs/_index.md b/content/en/docs/v1/project/plan-in-2024/streams/pocs/_index.md new file mode 100644 index 0000000..c83523b --- /dev/null +++ b/content/en/docs/v1/project/plan-in-2024/streams/pocs/_index.md @@ -0,0 +1,8 @@ +--- +title: POCs +weight: 2 +--- + +## Further ideas for POSs + +* see sample apps 'metaphor' in https://docs.kubefirst.io/ diff --git a/content/en/docs/project/plan-in-2024/streams/pocs/cnoe/_index.md b/content/en/docs/v1/project/plan-in-2024/streams/pocs/cnoe/_index.md similarity index 97% rename from content/en/docs/project/plan-in-2024/streams/pocs/cnoe/_index.md rename to content/en/docs/v1/project/plan-in-2024/streams/pocs/cnoe/_index.md index 1a48228..9d0f324 100644 --- a/content/en/docs/project/plan-in-2024/streams/pocs/cnoe/_index.md +++ b/content/en/docs/v1/project/plan-in-2024/streams/pocs/cnoe/_index.md @@ -11,7 +11,7 @@ Als designiertes Basis-Tool des Developer Frameworks sollen die Verwendung und d ## Rationale -CNOE ist das designierte Werkzeug zur Beschreibung und Ausspielung des Developer Frameworks. +CNOE ist das designierte Werkzeug zur Beschreibung und Ausspielung des Developer Frameworks. Dieses Werkzeug gilt es zu erlernen, zu beschreiben und weiterzuentwickeln. Insbesondere der Metacharkter des 'Software zur Bereitstellung von Bereitstellungssoftware für Software', d.h. der unterschiedlichen Ebenen für unterschiedliche Use Cases und Akteure soll klar verständlich und dokumentiert werden. Siehe hierzu auch das Webinar von Huamnitec und die Diskussion zu unterschiedlichen Bereitstellungsmethoden eines RedisCaches. @@ -29,4 +29,3 @@ Insbesondere der Metacharkter des 'Software zur Bereitstellung von Bereitstellun * k3d anstatt kind * kind: ggf. issue mit kindnet, ersetzen durch Cilium - diff --git a/content/en/docs/project/plan-in-2024/streams/pocs/kratix/_index.md b/content/en/docs/v1/project/plan-in-2024/streams/pocs/kratix/_index.md similarity index 100% rename from content/en/docs/project/plan-in-2024/streams/pocs/kratix/_index.md rename to content/en/docs/v1/project/plan-in-2024/streams/pocs/kratix/_index.md diff --git a/content/en/docs/project/plan-in-2024/streams/pocs/sia-asset/_index.md b/content/en/docs/v1/project/plan-in-2024/streams/pocs/sia-asset/_index.md similarity index 99% rename from content/en/docs/project/plan-in-2024/streams/pocs/sia-asset/_index.md rename to content/en/docs/v1/project/plan-in-2024/streams/pocs/sia-asset/_index.md index 147f8a8..60967a9 100644 --- a/content/en/docs/project/plan-in-2024/streams/pocs/sia-asset/_index.md +++ b/content/en/docs/v1/project/plan-in-2024/streams/pocs/sia-asset/_index.md @@ -47,4 +47,4 @@ graph TB LocalBox.EDF -. "provision" .-> LocalBox.Local LocalBox.EDF -. "provision" .-> CloudGroup.Prod LocalBox.EDF -. "provision" .-> CloudGroup.Test -``` \ No newline at end of file +``` diff --git a/content/en/docs/project/team-process/_assets/P1.png b/content/en/docs/v1/project/team-process/_assets/P1.png similarity index 100% rename from content/en/docs/project/team-process/_assets/P1.png rename to content/en/docs/v1/project/team-process/_assets/P1.png diff --git a/content/en/docs/project/team-process/_assets/P2.png b/content/en/docs/v1/project/team-process/_assets/P2.png similarity index 100% rename from content/en/docs/project/team-process/_assets/P2.png rename to content/en/docs/v1/project/team-process/_assets/P2.png diff --git a/content/en/docs/project/team-process/_assets/P3.png b/content/en/docs/v1/project/team-process/_assets/P3.png similarity index 100% rename from content/en/docs/project/team-process/_assets/P3.png rename to content/en/docs/v1/project/team-process/_assets/P3.png diff --git a/content/en/docs/project/team-process/_assets/P4.png b/content/en/docs/v1/project/team-process/_assets/P4.png similarity index 100% rename from content/en/docs/project/team-process/_assets/P4.png rename to content/en/docs/v1/project/team-process/_assets/P4.png diff --git a/content/en/docs/project/team-process/_assets/P5.png b/content/en/docs/v1/project/team-process/_assets/P5.png similarity index 100% rename from content/en/docs/project/team-process/_assets/P5.png rename to content/en/docs/v1/project/team-process/_assets/P5.png diff --git a/content/en/docs/project/team-process/_assets/P6.png b/content/en/docs/v1/project/team-process/_assets/P6.png similarity index 100% rename from content/en/docs/project/team-process/_assets/P6.png rename to content/en/docs/v1/project/team-process/_assets/P6.png diff --git a/content/en/docs/project/team-process/_assets/P7.png b/content/en/docs/v1/project/team-process/_assets/P7.png similarity index 100% rename from content/en/docs/project/team-process/_assets/P7.png rename to content/en/docs/v1/project/team-process/_assets/P7.png diff --git a/content/en/docs/project/team-process/_assets/P8.png b/content/en/docs/v1/project/team-process/_assets/P8.png similarity index 100% rename from content/en/docs/project/team-process/_assets/P8.png rename to content/en/docs/v1/project/team-process/_assets/P8.png diff --git a/content/en/docs/project/team-process/_assets/image.png b/content/en/docs/v1/project/team-process/_assets/image.png similarity index 100% rename from content/en/docs/project/team-process/_assets/image.png rename to content/en/docs/v1/project/team-process/_assets/image.png diff --git a/content/en/docs/project/team-process/_index.md b/content/en/docs/v1/project/team-process/_index.md similarity index 97% rename from content/en/docs/project/team-process/_index.md rename to content/en/docs/v1/project/team-process/_index.md index 1252cc0..93c2b62 100644 --- a/content/en/docs/project/team-process/_index.md +++ b/content/en/docs/v1/project/team-process/_index.md @@ -16,13 +16,13 @@ We currently face the following [challenges in our process](https://confluence.t 1. missing team alignment on PoC-Output over all components 1. Action: team is committed to **clearly defined PoC capabilities** 1. Action: every each team-member is aware of **individual and common work** to be done (backlog) to achieve PoC -1. missing concept for repository (process, structure, +1. missing concept for repository (process, structure, 1. Action: the **PoC has a robust repository concept** up & running 1. Action: repo concept is applicable for other repositorys as well (esp. documentation repo) ### General working context -A **project goal** drives us as a **team** to create valuable **product output**. +A **project goal** drives us as a **team** to create valuable **product output**. The **backlog** contains the product specification which instructs us by working in **tasks** with the help and usage of **ressources** (like git, 3rd party code and knowledge and so on). @@ -104,7 +104,7 @@ Most important in the POC structure are: #### Definition of Done 1. Jira: there is a final comment summarizimg the outcome (in a bit more verbose from than just the 'resolution' of the ticket) and the main outputs. This may typically be a link to the commit and/or pull request of the final repo state -2. Git/Repo: there is a README.md in the root of the repo. It summarizes in a typical Gihub-manner how to use the repo, so that it does what it is intended to do and reveals all the bells and whistles of the repo to the consumer. If the README doesn't lead to the usable and recognizable added value the work is not done! +2. Git/Repo: there is a README.md in the root of the repo. It summarizes in a typical Gihub-manner how to use the repo, so that it does what it is intended to do and reveals all the bells and whistles of the repo to the consumer. If the README doesn't lead to the usable and recognizable added value the work is not done! #### Review @@ -133,7 +133,7 @@ The following topics are optional and do not need an agreement at the moment: ## Status of POC Capabilities -The following table lists an analysis of the status of the ['Funcionality validation' of the POC](https://confluence.telekom-mms.com/display/IPCEICIS/Proof+of+Concept+2024). +The following table lists an analysis of the status of the ['Funcionality validation' of the POC](https://confluence.telekom-mms.com/display/IPCEICIS/Proof+of+Concept+2024). Assumption: These functionalities should be the aforementioned capabilities. -![alt text](./_assets/P8.png) \ No newline at end of file +![alt text](./_assets/P8.png) diff --git a/content/en/docs/solution/_index.md b/content/en/docs/v1/solution/_index.md similarity index 100% rename from content/en/docs/solution/_index.md rename to content/en/docs/v1/solution/_index.md diff --git a/content/en/docs/solution/design/_index.md b/content/en/docs/v1/solution/design/_index.md similarity index 100% rename from content/en/docs/solution/design/_index.md rename to content/en/docs/v1/solution/design/_index.md diff --git a/content/en/docs/v1/solution/design/architectural-documentation.md b/content/en/docs/v1/solution/design/architectural-documentation.md new file mode 100644 index 0000000..0988144 --- /dev/null +++ b/content/en/docs/v1/solution/design/architectural-documentation.md @@ -0,0 +1,39 @@ +# why we have architectural documentation + +TN: Robert, Patrick, Stefan, Stephan +25.2.25, 13-14h + +## referring Tickets / Links + +* https://jira.telekom-mms.com/browse/IPCEICIS-2424 +* https://jira.telekom-mms.com/browse/IPCEICIS-478 +* Confluence: https://confluence.telekom-mms.com/display/IPCEICIS/Architecture + +## charts + +we need charts, because: + +* external stakeholders (especially architects) want to understand our product and component structure(*) +* our team needs visualization in technical discussions(**) +* we need to have discussions during creating the documentation + +(*): marker: "jetzt hab' ich das erste mal so halbwegs verstanden was ihr da überhaupt macht" +(**) marker: ???? + + +## typed of charts + +* schichtenmodell (frontend, middleware, backend) +* bebauungsplan mit abhängigkeiten, domänen +* kontext von außen +* komponentendiagramm, + +## decisions + +* openbao is backend-system, wird über apis erreicht + +## further topics / new requirements + +* runbook (compare to openbao discussions) +* persistenz der EDP konfiguartion (zb postgres) +* OIDC vs. SSI diff --git a/content/en/docs/v1/solution/design/architectural-work-structure.md b/content/en/docs/v1/solution/design/architectural-work-structure.md new file mode 100644 index 0000000..676ec2e --- /dev/null +++ b/content/en/docs/v1/solution/design/architectural-work-structure.md @@ -0,0 +1,85 @@ + + +# arbeitsteilung arcihtekur, nach innen und nach aussen + +Sebastiano, Stefan, Robert, Patrick, Stephan +25.2.25, 14-15h + +## links + +* https://confluence.telekom-mms.com/display/IPCEICIS/Team+Members + +# montags-call + +* Sebasriano im montags-call, inklusive florian, mindestens interim, solange wir keinen architektur-aussenminister haben + +# workshops + +* nach abstimmung mit hasan zu platform workshops +* weitere beteiligung in weiteren workshop-serien to be defined + +# programm-alignment + +* sponsoren finden +* erledigt sich durch die workshop-serien + +# interne architekten + +* robert und patrick steigen ein +* themen-teilung + +# produkt struktur + +edp standalone +ipcei edp + +# architektur themen + +## stl + +produktstruktur +application model (cnoe, oam, score, xrd, ...) +api +backstage (usage scenarios) +pipelining +'everything as code', deklaratives deployment, crossplane (bzw. orchestrator) + +ggf: +identity mgmt + +nicht: +security +monitoring +kubernetes internals + +## robert + +pipelining +kubernetes-inetrnals +api +crossplane +platforming - erzeugen von ressourcen in 'clouds' (e.g. gcp, und hetzner :-) ) + +## patrick + +security +identity-mgmt (SSI) +EaC +und alles andere macht mir auch total spass! + +# einschätzungen + +* ipceicis-pltaform ist wichtigstes teilprojekt (hasan + patrick) +* offener punkt: workload-steuerung, application model (kompatibility mit EDP) +* thema security, siehe ssi vs. oidc +* wir brauchen eigene workshops zum definieren der zusammenarbiets-modi + +# committements + +* patrick und robert nehmen teil an architektur + +# offen + +* sebastian schwaar onboarding? (>=50%) --- robert fragt + * alternative: consulting/support anfallsweise + * hält eine kubernetes einführungs-schulung --> termine sind zu vereinbaren (liegt bei sophie) diff --git a/content/en/docs/v1/solution/design/crossplane-vs-terraform.md b/content/en/docs/v1/solution/design/crossplane-vs-terraform.md new file mode 100644 index 0000000..6d27389 --- /dev/null +++ b/content/en/docs/v1/solution/design/crossplane-vs-terraform.md @@ -0,0 +1,23 @@ +# crossplane dawn? + +* Monday, March 31, 2025 + +## Issue + +Robert worked on the kindserver reconciling. + +He got aware that crossplane is able to delete clusters when drift is detected. This mustnt happen for sure in productive clusters. + +Even worse, if crossplane did delete the cluster and then set it up again correctly, argocd would be out of sync and had no idea by default how to relate the old and new cluster. + +## Decisions + +1. quick solution: crosspllane doesn't delete clusters. + * If it detects drift with a kind cluster, it shall create an alert (like email) but not act in any way +2. analyze how crossplane orchestration logic calls 'business logic' to decide what to do. + * In this logic we could decide whether to delete resources like clusters and if so then how. Secondly an 'orchestration' or let's workflow how to correctly set the old state with respect to argocd could be implemented there. +3. keep terraform in mind + * we probably will need it in adapters anyway + * if the crossplane design does not fir, or the benefit is too small, or we definetly ahve more ressources in developing terraform, the we could completley switch +4. focus on EDP domain and application logic + * for the momen (in MVP1) we need to focus on EDP higher level functionality diff --git a/content/en/docs/solution/design/decision-iam-and-edf-self-containment.md b/content/en/docs/v1/solution/design/decision-iam-and-edf-self-containment.md similarity index 90% rename from content/en/docs/solution/design/decision-iam-and-edf-self-containment.md rename to content/en/docs/v1/solution/design/decision-iam-and-edf-self-containment.md index 2ec75aa..8e31282 100644 --- a/content/en/docs/solution/design/decision-iam-and-edf-self-containment.md +++ b/content/en/docs/v1/solution/design/decision-iam-and-edf-self-containment.md @@ -26,6 +26,6 @@ Each embdding into customer infrastructure works with adapters which implement t eDF has an own IAM. This may either hold the principals and permissions itself when there is no other IAM or proxy and map them when integrated into external enterprise IAMs. -## Reference +## Reference -Arch call from 4.12.24, Florian, Stefan, Stephan-Pierre \ No newline at end of file +Arch call from 4.12.24, Florian, Stefan, Stephan-Pierre diff --git a/content/en/docs/v1/solution/design/platform-component.md b/content/en/docs/v1/solution/design/platform-component.md new file mode 100644 index 0000000..76046c4 --- /dev/null +++ b/content/en/docs/v1/solution/design/platform-component.md @@ -0,0 +1,42 @@ + + +# platform-team austausch + +## stefan + +* initiale fragen: +* vor 2 wochen workshop tapeten-termin +* wer nimmt an den workshops teil? +* was bietet platform an? +* EDP: könnte 5mio/a kosten + * -> produkt pitch mit marko + * -> edp ist unabhängig von ipceicis cloud continuum* + * generalisierte quality of services ( <-> platform schnittstelle) + + +## Hasan + +* martin macht: agent based iac generation +* platform-workshops mitgestalten +* mms-fokus +* connectivity enabled cloud offering, e2e von infrastruktur bis endgerät +* sdk für latenzarme systeme, beraten und integrieren + * monitoring in EDP? +* beispiel 'unity' +* vorstellung im arch call +* wie können unterschieldiche applikationsebenen auf unterschiedliche infrastruktur(compute ebenen) verteit werden +* zero touch application deployment model +* ich werde gerade 'abgebremst' +* workshop beteiligung, TPM application model + +## martin + + * edgeXR erlaubt keine persistenz + * openai, llm als abstarktion nicht vorhanden + * momentan nur compute vorhanden + * roaming von applikationen --> EDP muss das unterstützen + * anwendungsfall: sprachmodell übersetzt design-artifakte in architektur, dann wird provisionierung ermöglicht + +? Applikations-modelle +? zusammenhang mit golden paths + * zB für reines compute faas diff --git a/content/en/docs/solution/design/proposal-local-deployment.md b/content/en/docs/v1/solution/design/proposal-local-deployment.md similarity index 98% rename from content/en/docs/solution/design/proposal-local-deployment.md rename to content/en/docs/v1/solution/design/proposal-local-deployment.md index 3ef08c1..71cad6c 100644 --- a/content/en/docs/solution/design/proposal-local-deployment.md +++ b/content/en/docs/v1/solution/design/proposal-local-deployment.md @@ -20,4 +20,4 @@ The implementation of EDF must be kubernetes provider agnostic. Thus each provid ## Local deployment -This implies that EDF must always be deployable into a local cluster, whereby by 'local' we mean a cluster which is under the full control of the platform engineer, e.g. a kind cluster on their laptop. \ No newline at end of file +This implies that EDF must always be deployable into a local cluster, whereby by 'local' we mean a cluster which is under the full control of the platform engineer, e.g. a kind cluster on their laptop. diff --git a/content/en/docs/solution/design/proposal-stack-hydration.md b/content/en/docs/v1/solution/design/proposal-stack-hydration.md similarity index 90% rename from content/en/docs/solution/design/proposal-stack-hydration.md rename to content/en/docs/v1/solution/design/proposal-stack-hydration.md index adce110..4037da2 100644 --- a/content/en/docs/solution/design/proposal-stack-hydration.md +++ b/content/en/docs/v1/solution/design/proposal-stack-hydration.md @@ -11,7 +11,7 @@ description: The implementation of EDF stacks must be kubernetes provider agnost ## Background -When booting and reconciling the 'final' stack exectuting orchestrator (here: ArgoCD) needs to get rendered (or hydrated) presentations of the manifests. +When booting and reconciling the 'final' stack exectuting orchestrator (here: ArgoCD) needs to get rendered (or hydrated) presentations of the manifests. It is not possible or unwanted that the orchestrator itself resolves dependencies or configuration values. @@ -23,6 +23,6 @@ The hydration takes place for all target clouds/kubernetes providers. There is n This implies that in a development process there needs to be a build step hydrating the ArgoCD manifests for the targeted cloud. -## Reference +## Reference -Discussion from Robert and Stephan-Pierre in the context of stack development - there should be an easy way to have locally changed stacks propagated into the local running platform. \ No newline at end of file +Discussion from Robert and Stephan-Pierre in the context of stack development - there should be an easy way to have locally changed stacks propagated into the local running platform. diff --git a/content/en/docs/solution/scenarios/_index.md b/content/en/docs/v1/solution/scenarios/_index.md similarity index 100% rename from content/en/docs/solution/scenarios/_index.md rename to content/en/docs/v1/solution/scenarios/_index.md diff --git a/content/en/docs/solution/scenarios/gitops/_index.md b/content/en/docs/v1/solution/scenarios/gitops/_index.md similarity index 90% rename from content/en/docs/solution/scenarios/gitops/_index.md rename to content/en/docs/v1/solution/scenarios/gitops/_index.md index b0191fb..81490f5 100644 --- a/content/en/docs/solution/scenarios/gitops/_index.md +++ b/content/en/docs/v1/solution/scenarios/gitops/_index.md @@ -13,4 +13,4 @@ What kind of Gitops do we have with idpbuilder/CNOE ? https://github.com/gitops-bridge-dev/gitops-bridge -![alt text](image.png) \ No newline at end of file +![alt text](image.png) diff --git a/content/en/docs/solution/scenarios/gitops/image.png b/content/en/docs/v1/solution/scenarios/gitops/image.png similarity index 100% rename from content/en/docs/solution/scenarios/gitops/image.png rename to content/en/docs/v1/solution/scenarios/gitops/image.png diff --git a/content/en/docs/solution/scenarios/orchestration/_index.md b/content/en/docs/v1/solution/scenarios/orchestration/_index.md similarity index 96% rename from content/en/docs/solution/scenarios/orchestration/_index.md rename to content/en/docs/v1/solution/scenarios/orchestration/_index.md index 2ef6417..d45f7d5 100644 --- a/content/en/docs/solution/scenarios/orchestration/_index.md +++ b/content/en/docs/v1/solution/scenarios/orchestration/_index.md @@ -18,7 +18,7 @@ The next chart shows a system landscape of CNOE orchestration. [2024-04-PlatformEngineering-DevOpsDayRaleigh.pdf](https://github.com/cnoe-io/presentations/blob/main/2024-04-PlatformEngineering-DevOpsDayRaleigh.pdf) -Questions: What are the degrees of freedom in this chart? What variations with respect to environments and environmnent types exist? +Questions: What are the degrees of freedom in this chart? What variations with respect to environments and environmnent types exist? ![alt text](image.png) @@ -28,7 +28,7 @@ The next chart shows a context chart of CNOE orchestration. [reference-implementation-aws](https://github.com/cnoe-io/reference-implementation-aws) -Questions: What are the degrees of freedom in this chart? What variations with respect to environments and environmnent types exist? +Questions: What are the degrees of freedom in this chart? What variations with respect to environments and environmnent types exist? -![alt text](image-1.png) \ No newline at end of file +![alt text](image-1.png) diff --git a/content/en/docs/solution/scenarios/orchestration/image-1.png b/content/en/docs/v1/solution/scenarios/orchestration/image-1.png similarity index 100% rename from content/en/docs/solution/scenarios/orchestration/image-1.png rename to content/en/docs/v1/solution/scenarios/orchestration/image-1.png diff --git a/content/en/docs/solution/scenarios/orchestration/image.png b/content/en/docs/v1/solution/scenarios/orchestration/image.png similarity index 100% rename from content/en/docs/solution/scenarios/orchestration/image.png rename to content/en/docs/v1/solution/scenarios/orchestration/image.png diff --git a/content/en/docs/solution/tools/Backstage/Backstage setup tutorial/_index.md b/content/en/docs/v1/solution/tools/Backstage/Backstage setup tutorial/_index.md similarity index 84% rename from content/en/docs/solution/tools/Backstage/Backstage setup tutorial/_index.md rename to content/en/docs/v1/solution/tools/Backstage/Backstage setup tutorial/_index.md index d8cdba2..9f8f288 100644 --- a/content/en/docs/solution/tools/Backstage/Backstage setup tutorial/_index.md +++ b/content/en/docs/v1/solution/tools/Backstage/Backstage setup tutorial/_index.md @@ -33,9 +33,11 @@ To install the Backstage Standalone app, you can use npx. npx is a tool that com ```bash npx @backstage/create-app@latest ``` + This command will create a new directory with a Backstage app inside. The wizard will ask you for the name of the app. This name will be created as sub directory in your current working directory. Below is a simplified layout of the files and folders generated when creating an app. + ```bash app ├── app-config.yaml @@ -46,15 +48,17 @@ app └── backend ``` -- **app-config.yaml**: Main configuration file for the app. See Configuration for more information. -- **catalog-info.yaml**: Catalog Entities descriptors. See Descriptor Format of Catalog Entities to get started. -- **package.json**: Root package.json for the project. Note: Be sure that you don't add any npm dependencies here as they probably should be installed in the intended workspace rather than in the root. -- **packages/**: Lerna leaf packages or "workspaces". Everything here is going to be a separate package, managed by lerna. -- **packages/app/**: A fully functioning Backstage frontend app that acts as a good starting point for you to get to know Backstage. -- **packages/backend/**: We include a backend that helps power features such as Authentication, Software Catalog, Software Templates, and TechDocs, amongst other things. +* **app-config.yaml**: Main configuration file for the app. See Configuration for more information. +* **catalog-info.yaml**: Catalog Entities descriptors. See Descriptor Format of Catalog Entities to get started. +* **package.json**: Root package.json for the project. Note: Be sure that you don't add any npm dependencies here as they probably should be installed in the intended workspace rather than in the root. +* **packages/**: Lerna leaf packages or "workspaces". Everything here is going to be a separate package, managed by lerna. +* **packages/app/**: A fully functioning Backstage frontend app that acts as a good starting point for you to get to know Backstage. +* **packages/backend/**: We include a backend that helps power features such as Authentication, Software Catalog, Software Templates, and TechDocs, amongst other things. ## Run the Backstage Application + You can run it in Backstage root directory by executing this command: + ```bash yarn dev ``` diff --git a/content/en/docs/v1/solution/tools/Backstage/Exsisting Plugins/_index.md b/content/en/docs/v1/solution/tools/Backstage/Exsisting Plugins/_index.md new file mode 100644 index 0000000..866f60f --- /dev/null +++ b/content/en/docs/v1/solution/tools/Backstage/Exsisting Plugins/_index.md @@ -0,0 +1,55 @@ ++++ +title = "Existing Backstage Plugins" +weight = 4 ++++ + +1. **Catalog**: + * Used for managing services and microservices, including registration, visualization, and the ability to track dependencies and relationships between services. It serves as a central directory for all services in an organization. + +2. **Docs**: + * Designed for creating and managing documentation, supporting formats such as Markdown. It helps teams organize and access technical and non-technical documentation in a unified interface. + +3. **API Docs**: + * Automatically generates API documentation based on OpenAPI specifications or other API definitions, ensuring that your API information is always up to date and accessible for developers. + +4. **TechDocs**: + * A tool for creating and publishing technical documentation. It is integrated directly into Backstage, allowing developers to host and maintain documentation alongside their projects. + +5. **Scaffolder**: + * Allows the rapid creation of new projects based on predefined templates, making it easier to deploy services or infrastructure with consistent best practices. + +6. **CI/CD**: + * Provides integration with CI/CD systems such as GitHub Actions and Jenkins, allowing developers to view build status, logs, and pipelines directly in Backstage. + +7. **Metrics**: + * Offers the ability to monitor and visualize performance metrics for applications, helping teams to keep track of key indicators like response times and error rates. + +8. **Snyk**: + * Used for dependency security analysis, scanning your codebase for vulnerabilities and helping to manage any potential security risks in third-party libraries. + +9. **SonarQube**: + * Integrates with SonarQube to analyze code quality, providing insights into code health, including issues like technical debt, bugs, and security vulnerabilities. + +10. **GitHub**: + +* Enables integration with GitHub repositories, displaying information such as commits, pull requests, and other repository activity, making collaboration more transparent and efficient. + +11. **CircleCI**: + +* Allows seamless integration with CircleCI for managing CI/CD workflows, giving developers insight into build pipelines, test results, and deployment statuses. + +12. **Kubernetes**: + +* Provides tools to manage Kubernetes clusters, including visualizing pod status, logs, and cluster health, helping teams maintain and troubleshoot their cloud-native applications. + +13. **Cloud**: + +* Includes plugins for integration with cloud providers like AWS and Azure, allowing teams to manage cloud infrastructure, services, and billing directly from Backstage. + +14. **OpenTelemetry**: + +* Helps with monitoring distributed applications by integrating OpenTelemetry, offering powerful tools to trace requests, detect performance bottlenecks, and ensure application health. + +15. **Lighthouse**: + +* Integrates Google Lighthouse to analyze web application performance, helping teams identify areas for improvement in metrics like load times, accessibility, and SEO. diff --git a/content/en/docs/solution/tools/Backstage/General Information/_index.md b/content/en/docs/v1/solution/tools/Backstage/General Information/_index.md similarity index 98% rename from content/en/docs/solution/tools/Backstage/General Information/_index.md rename to content/en/docs/v1/solution/tools/Backstage/General Information/_index.md index 54dabd1..09d2514 100644 --- a/content/en/docs/solution/tools/Backstage/General Information/_index.md +++ b/content/en/docs/v1/solution/tools/Backstage/General Information/_index.md @@ -21,4 +21,4 @@ Backstage supports the concept of "Golden Paths," enabling teams to follow recom Modularity and Extensibility: The platform allows for the creation of plugins, enabling users to customize and extend Backstage's functionality to fit their organization's needs. -Backstage provides developers with centralized and convenient access to essential tools and resources, making it an effective solution for supporting Platform Engineering and developing an internal platform portal. \ No newline at end of file +Backstage provides developers with centralized and convenient access to essential tools and resources, making it an effective solution for supporting Platform Engineering and developing an internal platform portal. diff --git a/content/en/docs/solution/tools/Backstage/Plugin Creation Tutorial/_index.md b/content/en/docs/v1/solution/tools/Backstage/Plugin Creation Tutorial/_index.md similarity index 99% rename from content/en/docs/solution/tools/Backstage/Plugin Creation Tutorial/_index.md rename to content/en/docs/v1/solution/tools/Backstage/Plugin Creation Tutorial/_index.md index a975456..e83bc96 100644 --- a/content/en/docs/solution/tools/Backstage/Plugin Creation Tutorial/_index.md +++ b/content/en/docs/v1/solution/tools/Backstage/Plugin Creation Tutorial/_index.md @@ -3,6 +3,7 @@ title = "Plugin Creation Tutorial" weight = 4 +++ Backstage plugins and functionality extensions should be writen in TypeScript/Node.js because backstage is written in those languages + ### General Algorithm for Adding a Plugin in Backstage 1. **Create the Plugin** @@ -33,6 +34,7 @@ Backstage plugins and functionality extensions should be writen in TypeScript/No Run the Backstage development server using `yarn dev` and navigate to your plugin’s route via the sidebar or directly through its URL. Ensure that the plugin’s functionality works as expected. ### Example + All steps will be demonstrated using a simple example plugin, which will request JSON files from the API of jsonplaceholder.typicode.com and display them on a page. 1. Creating test-plugin: @@ -121,8 +123,9 @@ All steps will be demonstrated using a simple example plugin, which will request }; ``` - + 3. Setup routs in plugins/{plugin_id}/src/routs.ts + ```javascript import { createRouteRef } from '@backstage/core-plugin-api'; @@ -133,11 +136,13 @@ All steps will be demonstrated using a simple example plugin, which will request 4. Register the plugin in `packages/app/src/App.tsx` in routes Import of the plugin: + ```javascript import { TestPluginPage } from '@internal/backstage-plugin-test-plugin'; ``` Adding route: + ```javascript const routes = ( @@ -148,6 +153,7 @@ All steps will be demonstrated using a simple example plugin, which will request ``` 5. Add Item to sidebar menu of the backstage in `packages/app/src/components/Root/Root.tsx`. This should be added in to Root object as another SidebarItem + ```javascript export const Root = ({ children }: PropsWithChildren<{}>) => ( @@ -159,11 +165,12 @@ All steps will be demonstrated using a simple example plugin, which will request ); ``` - + 6. Plugin is ready. Run the application + ```bash yarn dev ``` ![example](example_1.png) -![example](example_2.png) \ No newline at end of file +![example](example_2.png) diff --git a/content/en/docs/solution/tools/Backstage/Plugin Creation Tutorial/example_1.png b/content/en/docs/v1/solution/tools/Backstage/Plugin Creation Tutorial/example_1.png similarity index 100% rename from content/en/docs/solution/tools/Backstage/Plugin Creation Tutorial/example_1.png rename to content/en/docs/v1/solution/tools/Backstage/Plugin Creation Tutorial/example_1.png diff --git a/content/en/docs/solution/tools/Backstage/Plugin Creation Tutorial/example_2.png b/content/en/docs/v1/solution/tools/Backstage/Plugin Creation Tutorial/example_2.png similarity index 100% rename from content/en/docs/solution/tools/Backstage/Plugin Creation Tutorial/example_2.png rename to content/en/docs/v1/solution/tools/Backstage/Plugin Creation Tutorial/example_2.png diff --git a/content/en/docs/solution/tools/Backstage/_index.md b/content/en/docs/v1/solution/tools/Backstage/_index.md similarity index 100% rename from content/en/docs/solution/tools/Backstage/_index.md rename to content/en/docs/v1/solution/tools/Backstage/_index.md diff --git a/content/en/docs/solution/tools/CNOE/CNOE-competitors/_index.md b/content/en/docs/v1/solution/tools/CNOE/CNOE-competitors/_index.md similarity index 78% rename from content/en/docs/solution/tools/CNOE/CNOE-competitors/_index.md rename to content/en/docs/v1/solution/tools/CNOE/CNOE-competitors/_index.md index 22a54ea..dfed2d0 100644 --- a/content/en/docs/solution/tools/CNOE/CNOE-competitors/_index.md +++ b/content/en/docs/v1/solution/tools/CNOE/CNOE-competitors/_index.md @@ -9,60 +9,62 @@ description: We compare CNOW - which we see as an orchestrator - with other plat Kratix is a Kubernetes-native framework that helps platform engineering teams automate the provisioning and management of infrastructure and services through custom-defined abstractions called Promises. It allows teams to extend Kubernetes functionality and provide resources in a self-service manner to developers, streamlining the delivery and management of workloads across environments. ### Concepts + Key concepts of Kratix: -- Workload: +* Workload: This is an abstraction representing any application or service that needs to be deployed within the infrastructure. It defines the requirements and dependent resources necessary to execute this task. -- Promise: +* Promise: A "Promise" is a ready-to-use infrastructure or service package. Promises allow developers to request specific resources (such as databases, storage, or computing power) through the standard Kubernetes interface. It’s similar to an operator in Kubernetes but more universal and flexible. Kratix simplifies the development and delivery of applications by automating the provisioning and management of infrastructure and resources through simple Kubernetes APIs. -### Pros of Kratix: -- Resource provisioning automation. Kratix simplifies infrastructure creation for developers through the abstraction of "Promises." This means developers can simply request the necessary resources (like databases, message queues) without dealing with the intricacies of infrastructure management. +### Pros of Kratix +* Resource provisioning automation. Kratix simplifies infrastructure creation for developers through the abstraction of "Promises." This means developers can simply request the necessary resources (like databases, message queues) without dealing with the intricacies of infrastructure management. -- Flexibility and adaptability. Platform teams can customize and adapt Kratix to specific needs by creating custom Promises for various services, allowing the infrastructure to meet the specific requirements of the organization. +* Flexibility and adaptability. Platform teams can customize and adapt Kratix to specific needs by creating custom Promises for various services, allowing the infrastructure to meet the specific requirements of the organization. -- Unified resource request interface. Developers can use a single API (Kubernetes) to request resources, simplifying interaction with infrastructure and reducing complexity when working with different tools and systems. +* Unified resource request interface. Developers can use a single API (Kubernetes) to request resources, simplifying interaction with infrastructure and reducing complexity when working with different tools and systems. -### Cons of Kratix: -- Although Kratix offers great flexibility, it can also lead to more complex setup and platform management processes. Creating custom Promises and configuring their behavior requires time and effort. +### Cons of Kratix +* Although Kratix offers great flexibility, it can also lead to more complex setup and platform management processes. Creating custom Promises and configuring their behavior requires time and effort. -- Kubernetes dependency. Kratix relies on Kubernetes, which makes it less applicable in environments that don’t use Kubernetes or containerization technologies. It might also lead to integration challenges if an organization uses other solutions. +* Kubernetes dependency. Kratix relies on Kubernetes, which makes it less applicable in environments that don’t use Kubernetes or containerization technologies. It might also lead to integration challenges if an organization uses other solutions. -- Limited ecosystem. Kratix doesn’t have as mature an ecosystem as some other infrastructure management solutions (e.g., Terraform, Pulumi). This may limit the availability of ready-made solutions and tools, increasing the amount of manual work when implementing Kratix. +* Limited ecosystem. Kratix doesn’t have as mature an ecosystem as some other infrastructure management solutions (e.g., Terraform, Pulumi). This may limit the availability of ready-made solutions and tools, increasing the amount of manual work when implementing Kratix. ## Humanitec -Humanitec is an Internal Developer Platform (IDP) that helps platform engineering teams automate the provisioning -and management of infrastructure and services through dynamic configuration and environment management. +Humanitec is an Internal Developer Platform (IDP) that helps platform engineering teams automate the provisioning +and management of infrastructure and services through dynamic configuration and environment management. It allows teams to extend their infrastructure capabilities and provide resources in a self-service manner to developers, streamlining the deployment and management of workloads across various environments. ### Concepts + Key concepts of Humanitec: -- Application Definition: +* Application Definition: This is an abstraction where developers define their application, including its services, environments, a dependencies. It abstracts away infrastructure details, allowing developers to focus on building and deploying their applications. -- Dynamic Configuration Management: +* Dynamic Configuration Management: Humanitec automatically manages the configuration of applications and services across multiple environments (e.g., development, staging, production). It ensures consistency and alignment of configurations as applications move through different stages of deployment. -Humanitec simplifies the development and delivery process by providing self-service deployment options while maintaining +Humanitec simplifies the development and delivery process by providing self-service deployment options while maintaining centralized governance and control for platform teams. -### Pros of Humanitec: -- Resource provisioning automation. Humanitec automates infrastructure and environment provisioning, allowing developers to focus on building and deploying applications without worrying about manual configuration. +### Pros of Humanitec +* Resource provisioning automation. Humanitec automates infrastructure and environment provisioning, allowing developers to focus on building and deploying applications without worrying about manual configuration. -- Dynamic environment management. Humanitec manages application configurations across different environments, ensuring consistency and reducing manual configuration errors. +* Dynamic environment management. Humanitec manages application configurations across different environments, ensuring consistency and reducing manual configuration errors. -- Golden Paths. best-practice workflows and processes that guide developers through infrastructure provisioning and application deployment. This ensures consistency and reduces cognitive load by providing a set of recommended practices. +* Golden Paths. best-practice workflows and processes that guide developers through infrastructure provisioning and application deployment. This ensures consistency and reduces cognitive load by providing a set of recommended practices. -- Unified resource management interface. Developers can use Humanitec’s interface to request resources and deploy applications, reducing complexity and improving the development workflow. +* Unified resource management interface. Developers can use Humanitec’s interface to request resources and deploy applications, reducing complexity and improving the development workflow. -### Cons of Humanitec: -- Humanitec is commercially licensed software +### Cons of Humanitec +* Humanitec is commercially licensed software -- Integration challenges. Humanitec’s dependency on specific cloud-native environments can create challenges for organizations with diverse infrastructures or those using legacy systems. +* Integration challenges. Humanitec’s dependency on specific cloud-native environments can create challenges for organizations with diverse infrastructures or those using legacy systems. -- Cost. Depending on usage, Humanitec might introduce additional costs related to the implementation of an Internal Developer Platform, especially for smaller teams. +* Cost. Depending on usage, Humanitec might introduce additional costs related to the implementation of an Internal Developer Platform, especially for smaller teams. -- Harder to customise +* Harder to customise diff --git a/content/en/docs/solution/tools/CNOE/_index.md b/content/en/docs/v1/solution/tools/CNOE/_index.md similarity index 100% rename from content/en/docs/solution/tools/CNOE/_index.md rename to content/en/docs/v1/solution/tools/CNOE/_index.md diff --git a/content/en/docs/solution/tools/CNOE/argocd/_index.md b/content/en/docs/v1/solution/tools/CNOE/argocd/_index.md similarity index 100% rename from content/en/docs/solution/tools/CNOE/argocd/_index.md rename to content/en/docs/v1/solution/tools/CNOE/argocd/_index.md diff --git a/content/en/docs/solution/tools/CNOE/argocd/argocd-core-components.webp b/content/en/docs/v1/solution/tools/CNOE/argocd/argocd-core-components.webp similarity index 100% rename from content/en/docs/solution/tools/CNOE/argocd/argocd-core-components.webp rename to content/en/docs/v1/solution/tools/CNOE/argocd/argocd-core-components.webp diff --git a/content/en/docs/solution/tools/CNOE/argocd/argocd_architecture.webp b/content/en/docs/v1/solution/tools/CNOE/argocd/argocd_architecture.webp similarity index 100% rename from content/en/docs/solution/tools/CNOE/argocd/argocd_architecture.webp rename to content/en/docs/v1/solution/tools/CNOE/argocd/argocd_architecture.webp diff --git a/content/en/docs/solution/tools/CNOE/idpbuilder/_index.md b/content/en/docs/v1/solution/tools/CNOE/idpbuilder/_index.md similarity index 100% rename from content/en/docs/solution/tools/CNOE/idpbuilder/_index.md rename to content/en/docs/v1/solution/tools/CNOE/idpbuilder/_index.md diff --git a/content/en/docs/solution/tools/CNOE/idpbuilder/hostname-routing-proxy.png b/content/en/docs/v1/solution/tools/CNOE/idpbuilder/hostname-routing-proxy.png similarity index 100% rename from content/en/docs/solution/tools/CNOE/idpbuilder/hostname-routing-proxy.png rename to content/en/docs/v1/solution/tools/CNOE/idpbuilder/hostname-routing-proxy.png diff --git a/content/en/docs/solution/tools/CNOE/idpbuilder/hostname-routing.png b/content/en/docs/v1/solution/tools/CNOE/idpbuilder/hostname-routing.png similarity index 100% rename from content/en/docs/solution/tools/CNOE/idpbuilder/hostname-routing.png rename to content/en/docs/v1/solution/tools/CNOE/idpbuilder/hostname-routing.png diff --git a/content/en/docs/solution/tools/CNOE/idpbuilder/http-routing.md b/content/en/docs/v1/solution/tools/CNOE/idpbuilder/http-routing.md similarity index 100% rename from content/en/docs/solution/tools/CNOE/idpbuilder/http-routing.md rename to content/en/docs/v1/solution/tools/CNOE/idpbuilder/http-routing.md diff --git a/content/en/docs/solution/tools/CNOE/idpbuilder/installation/_index.md b/content/en/docs/v1/solution/tools/CNOE/idpbuilder/installation/_index.md similarity index 93% rename from content/en/docs/solution/tools/CNOE/idpbuilder/installation/_index.md rename to content/en/docs/v1/solution/tools/CNOE/idpbuilder/installation/_index.md index d919ab5..fbb475d 100644 --- a/content/en/docs/solution/tools/CNOE/idpbuilder/installation/_index.md +++ b/content/en/docs/v1/solution/tools/CNOE/idpbuilder/installation/_index.md @@ -11,10 +11,10 @@ Windows and Mac users already utilize a virtual machine for the Docker Linux env ### Prerequisites -- Docker Engine -- Go -- kubectl -- kind +* Docker Engine +* Go +* kubectl +* kind ### Build process @@ -76,28 +76,28 @@ idpbuilder delete cluster CNOE provides two implementations of an IDP: -- Amazon AWS implementation -- KIND implementation +* Amazon AWS implementation +* KIND implementation Both are not useable to run on bare metal or an OSC instance. The Amazon implementation is complex and makes use of Terraform which is currently not supported by either base metal or OSC. Therefore the KIND implementation is used and customized to support the idpbuilder installation. The idpbuilder is also doing some network magic which needs to be replicated. Several prerequisites have to be provided to support the idpbuilder on bare metal or the OSC: -- Kubernetes dependencies -- Network dependencies -- Changes to the idpbuilder - +* Kubernetes dependencies +* Network dependencies +* Changes to the idpbuilder + ### Prerequisites Talos Linux is choosen for a bare metal Kubernetes instance. -- talosctl -- Go -- Docker Engine -- kubectl -- kustomize -- helm -- nginx +* talosctl +* Go +* Docker Engine +* kubectl +* kustomize +* helm +* nginx As soon as the idpbuilder works correctly on bare metal, the next step is to apply it to an OSC instance. @@ -338,14 +338,14 @@ talosctl cluster destroy Required: -- Add *.cnoe.localtest.me to the Talos cluster DNS, pointing to the host device IP address, which runs nginx. +* Add *.cnoe.localtest.me to the Talos cluster DNS, pointing to the host device IP address, which runs nginx. -- Create a SSL certificate with `cnoe.localtest.me` as common name. Edit the nginx config to load this certificate. Configure idpbuilder to distribute this certificate instead of the one idpbuilder distributes by idefault. +* Create a SSL certificate with `cnoe.localtest.me` as common name. Edit the nginx config to load this certificate. Configure idpbuilder to distribute this certificate instead of the one idpbuilder distributes by idefault. Optimizations: -- Implement an idpbuilder uninstall. This is specially important when working on the OSC instance. +* Implement an idpbuilder uninstall. This is specially important when working on the OSC instance. -- Remove or configure gitea.cnoe.localtest.me, it seems not to work even in the idpbuilder local installation with KIND. +* Remove or configure gitea.cnoe.localtest.me, it seems not to work even in the idpbuilder local installation with KIND. -- Improvements to the idpbuilder to support Kubernetes instances other then KIND. This can either be done by parametrization or by utilizing Terraform / OpenTOFU or Crossplane. \ No newline at end of file +* Improvements to the idpbuilder to support Kubernetes instances other then KIND. This can either be done by parametrization or by utilizing Terraform / OpenTOFU or Crossplane. diff --git a/content/en/docs/solution/tools/CNOE/idpbuilder/path-routing.png b/content/en/docs/v1/solution/tools/CNOE/idpbuilder/path-routing.png similarity index 100% rename from content/en/docs/solution/tools/CNOE/idpbuilder/path-routing.png rename to content/en/docs/v1/solution/tools/CNOE/idpbuilder/path-routing.png diff --git a/content/en/docs/solution/tools/CNOE/included-backstage-templates/_index.md b/content/en/docs/v1/solution/tools/CNOE/included-backstage-templates/_index.md similarity index 100% rename from content/en/docs/solution/tools/CNOE/included-backstage-templates/_index.md rename to content/en/docs/v1/solution/tools/CNOE/included-backstage-templates/_index.md diff --git a/content/en/docs/solution/tools/CNOE/included-backstage-templates/basic-argo-workflow/_index.md b/content/en/docs/v1/solution/tools/CNOE/included-backstage-templates/basic-argo-workflow/_index.md similarity index 86% rename from content/en/docs/solution/tools/CNOE/included-backstage-templates/basic-argo-workflow/_index.md rename to content/en/docs/v1/solution/tools/CNOE/included-backstage-templates/basic-argo-workflow/_index.md index 068c65e..110bb03 100644 --- a/content/en/docs/solution/tools/CNOE/included-backstage-templates/basic-argo-workflow/_index.md +++ b/content/en/docs/v1/solution/tools/CNOE/included-backstage-templates/basic-argo-workflow/_index.md @@ -11,9 +11,9 @@ This Backstage template YAML automates the creation of an Argo Workflow for Kube This template is designed for teams that need a streamlined approach to deploy and manage data processing or machine learning jobs using Spark within an Argo Workflow environment. It simplifies the deployment process and integrates the application with a CI/CD pipeline. The template performs the following: -- **Workflow and Spark Job Setup**: Defines a basic Argo Workflow and configures a Spark job using the provided application file path, ideal for data processing tasks. -- **Repository Setup**: Publishes the workflow configuration to a Gitea repository, enabling version control and easy updates to the job configuration. -- **ArgoCD Integration**: Creates an ArgoCD application to manage the Spark job deployment, ensuring continuous delivery and synchronization with Kubernetes. -- **Backstage Registration**: Registers the application in Backstage, making it easily discoverable and manageable through the Backstage catalog. +* **Workflow and Spark Job Setup**: Defines a basic Argo Workflow and configures a Spark job using the provided application file path, ideal for data processing tasks. +* **Repository Setup**: Publishes the workflow configuration to a Gitea repository, enabling version control and easy updates to the job configuration. +* **ArgoCD Integration**: Creates an ArgoCD application to manage the Spark job deployment, ensuring continuous delivery and synchronization with Kubernetes. +* **Backstage Registration**: Registers the application in Backstage, making it easily discoverable and manageable through the Backstage catalog. This template boosts productivity by automating steps required for setting up Argo Workflows and Spark jobs, integrating version control, and enabling centralized management and visibility, making it ideal for projects requiring efficient deployment and scalable data processing solutions. diff --git a/content/en/docs/solution/tools/CNOE/included-backstage-templates/basic-kubernetes-deployment/_idex.md b/content/en/docs/v1/solution/tools/CNOE/included-backstage-templates/basic-kubernetes-deployment/_idex.md similarity index 84% rename from content/en/docs/solution/tools/CNOE/included-backstage-templates/basic-kubernetes-deployment/_idex.md rename to content/en/docs/v1/solution/tools/CNOE/included-backstage-templates/basic-kubernetes-deployment/_idex.md index 98acba3..80e668c 100644 --- a/content/en/docs/solution/tools/CNOE/included-backstage-templates/basic-kubernetes-deployment/_idex.md +++ b/content/en/docs/v1/solution/tools/CNOE/included-backstage-templates/basic-kubernetes-deployment/_idex.md @@ -11,9 +11,9 @@ This Backstage template YAML automates the creation of a basic Kubernetes Deploy The template is designed for teams needing a streamlined approach to deploy applications in Kubernetes while automatically configuring their CI/CD pipelines. It performs the following: -- **Deployment Creation**: A Kubernetes Deployment YAML is generated based on the provided application name, specifying a basic setup with an Nginx container. -- **Repository Setup**: Publishes the deployment code in a Gitea repository, allowing for version control and future updates. -- **ArgoCD Integration**: Automatically creates an ArgoCD application for the deployment, facilitating continuous delivery and synchronization with Kubernetes. -- **Backstage Registration**: Registers the application in Backstage to make it discoverable and manageable via the Backstage catalog. +* **Deployment Creation**: A Kubernetes Deployment YAML is generated based on the provided application name, specifying a basic setup with an Nginx container. +* **Repository Setup**: Publishes the deployment code in a Gitea repository, allowing for version control and future updates. +* **ArgoCD Integration**: Automatically creates an ArgoCD application for the deployment, facilitating continuous delivery and synchronization with Kubernetes. +* **Backstage Registration**: Registers the application in Backstage to make it discoverable and manageable via the Backstage catalog. This template enhances productivity by automating several steps required for deployment, version control, and registration, making it ideal for projects where fast, consistent deployment and centralized management are required. diff --git a/content/en/docs/solution/tools/CNOE/verification.md b/content/en/docs/v1/solution/tools/CNOE/verification.md similarity index 93% rename from content/en/docs/solution/tools/CNOE/verification.md rename to content/en/docs/v1/solution/tools/CNOE/verification.md index af36de9..4f60e77 100644 --- a/content/en/docs/solution/tools/CNOE/verification.md +++ b/content/en/docs/v1/solution/tools/CNOE/verification.md @@ -14,17 +14,17 @@ most part they adhere to the general definition: Examples: -- Form validation before processing the data -- Compiler checking syntax -- Rust's borrow checker +* Form validation before processing the data +* Compiler checking syntax +* Rust's borrow checker > Verification describes testing if your 'thing' complies with your spec Examples: -- Unit tests -- Testing availability (ping, curl health check) -- Checking a ZKP of some computation +* Unit tests +* Testing availability (ping, curl health check) +* Checking a ZKP of some computation --- diff --git a/content/en/docs/solution/tools/Crossplane/_index.md b/content/en/docs/v1/solution/tools/Crossplane/_index.md similarity index 100% rename from content/en/docs/solution/tools/Crossplane/_index.md rename to content/en/docs/v1/solution/tools/Crossplane/_index.md diff --git a/content/en/docs/solution/tools/Crossplane/provider-kind/_index.md b/content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md similarity index 97% rename from content/en/docs/solution/tools/Crossplane/provider-kind/_index.md rename to content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md index c90fc5c..7370f44 100644 --- a/content/en/docs/solution/tools/Crossplane/provider-kind/_index.md +++ b/content/en/docs/v1/solution/tools/Crossplane/provider-kind/_index.md @@ -14,10 +14,10 @@ The provider config takes the credentials to log into the cloud provider and pro The implementations of the cloud resources reflect each type of cloud resource, typical resources are: -- S3 Bucket -- Nodepool -- VPC -- GkeCluster +* S3 Bucket +* Nodepool +* VPC +* GkeCluster ## Architecture of provider-kind @@ -57,16 +57,16 @@ object is a secret. The need for the following inputs arise when developing a provider-kind: -- kindserver password as a kubernetes secret -- endpoint, the IP address of the kindserver as a detail of `ProviderConfig` -- kindConfig, the kind configuration file as a detail of `KindCluster` +* kindserver password as a kubernetes secret +* endpoint, the IP address of the kindserver as a detail of `ProviderConfig` +* kindConfig, the kind configuration file as a detail of `KindCluster` The following outputs arise: -- kubernetesVersion, kubernetes version of a created kind cluster as a detail of `KindCluster` -- internalIP, IP address of a created kind cluster as a detail of `KindCluster` -- readiness as a detail of `KindCluster` -- kube config of a created kind cluster as a kubernetes secret reference of `KindCluster` +* kubernetesVersion, kubernetes version of a created kind cluster as a detail of `KindCluster` +* internalIP, IP address of a created kind cluster as a detail of `KindCluster` +* readiness as a detail of `KindCluster` +* kube config of a created kind cluster as a kubernetes secret reference of `KindCluster` ### Inputs @@ -210,7 +210,7 @@ Internally, the Connect function get's triggered in the kindcluster controller ` first, to setup the provider and configure it with the kindserver password and IP address of the kindserver. After that the provider-kind has been configured with the kindserver secret and it's `ProviderConfig`, the provider is ready to -be activated by applying a `KindCluster` manifest to kubernetes. +be activated by applying a `KindCluster` manifest to kubernetes. When the user applies a new `KindCluster` manifest, a observe loop is started. The provider regulary triggers the `Observe` function of the controller. As there has yet been created nothing yet, the controller will return @@ -296,7 +296,7 @@ The official way for creating crossplane providers is to use the provider-templa a new provider. First, clone the provider-template. The commit ID when this howto has been written is 2e0b022c22eb50a8f32de2e09e832f17161d7596. -Rename the new folder after cloning. +Rename the new folder after cloning. ``` git clone https://github.com/crossplane/provider-template.git @@ -320,7 +320,7 @@ sed -i "s/mytype/${type,,}/g" internal/controller/${provider_name,,}.go ``` Patch the Makefile: - + ``` dev: $(KIND) $(KUBECTL) @$(INFO) Creating kind cluster @@ -346,8 +346,8 @@ make dev Now it's time to add the required fields (internalIP, endpoint, etc.) to the spec fields in go api sources found in: -- apis/container/v1alpha1/kindcluster_types.go -- apis/v1alpha1/providerconfig_types.go +* apis/container/v1alpha1/kindcluster_types.go +* apis/v1alpha1/providerconfig_types.go The file `apis/kind.go` may also be modified. The word `sample` can be replaces with `container` in our case. @@ -427,9 +427,9 @@ the ability to deploy helm and kubernetes objects in the newly created cluster. A composition is realized as a custom resource definition (CRD) considting of three parts: -- A definition -- A composition -- One or more deplyoments of the composition +* A definition +* A composition +* One or more deplyoments of the composition ### definition.yaml @@ -757,8 +757,8 @@ Open the composition in VS Code: examples/composition_deprecated/composition.yam Currently missing is the third and final part, the imperative steps which need to be processed: -- creation of TLS certificates and giteaAdmin password -- creation of a Forgejo repository for the stacks -- uploading the stacks in the Forgejo repository +* creation of TLS certificates and giteaAdmin password +* creation of a Forgejo repository for the stacks +* uploading the stacks in the Forgejo repository -Connecting the definition field (ArgoCD repo URL) and composition interconnects (function-patch-and-transform) are also missing. \ No newline at end of file +Connecting the definition field (ArgoCD repo URL) and composition interconnects (function-patch-and-transform) are also missing. diff --git a/content/en/docs/solution/tools/Crossplane/provider-kind/composition.drawio b/content/en/docs/v1/solution/tools/Crossplane/provider-kind/composition.drawio similarity index 100% rename from content/en/docs/solution/tools/Crossplane/provider-kind/composition.drawio rename to content/en/docs/v1/solution/tools/Crossplane/provider-kind/composition.drawio diff --git a/content/en/docs/solution/tools/Crossplane/provider-kind/composition.png b/content/en/docs/v1/solution/tools/Crossplane/provider-kind/composition.png similarity index 100% rename from content/en/docs/solution/tools/Crossplane/provider-kind/composition.png rename to content/en/docs/v1/solution/tools/Crossplane/provider-kind/composition.png diff --git a/content/en/docs/solution/tools/Crossplane/provider-kind/kindserver_interface.drawio b/content/en/docs/v1/solution/tools/Crossplane/provider-kind/kindserver_interface.drawio similarity index 100% rename from content/en/docs/solution/tools/Crossplane/provider-kind/kindserver_interface.drawio rename to content/en/docs/v1/solution/tools/Crossplane/provider-kind/kindserver_interface.drawio diff --git a/content/en/docs/solution/tools/Crossplane/provider-kind/kindserver_interface.png b/content/en/docs/v1/solution/tools/Crossplane/provider-kind/kindserver_interface.png similarity index 100% rename from content/en/docs/solution/tools/Crossplane/provider-kind/kindserver_interface.png rename to content/en/docs/v1/solution/tools/Crossplane/provider-kind/kindserver_interface.png diff --git a/content/en/docs/solution/tools/Crossplane/provider-kind/kindserver_provider-kind.drawio b/content/en/docs/v1/solution/tools/Crossplane/provider-kind/kindserver_provider-kind.drawio similarity index 100% rename from content/en/docs/solution/tools/Crossplane/provider-kind/kindserver_provider-kind.drawio rename to content/en/docs/v1/solution/tools/Crossplane/provider-kind/kindserver_provider-kind.drawio diff --git a/content/en/docs/solution/tools/Crossplane/provider-kind/kindserver_provider-kind.png b/content/en/docs/v1/solution/tools/Crossplane/provider-kind/kindserver_provider-kind.png similarity index 100% rename from content/en/docs/solution/tools/Crossplane/provider-kind/kindserver_provider-kind.png rename to content/en/docs/v1/solution/tools/Crossplane/provider-kind/kindserver_provider-kind.png diff --git a/content/en/docs/solution/tools/Crossplane/provider-kind/provider-kind_providerconfig.drawio b/content/en/docs/v1/solution/tools/Crossplane/provider-kind/provider-kind_providerconfig.drawio similarity index 100% rename from content/en/docs/solution/tools/Crossplane/provider-kind/provider-kind_providerconfig.drawio rename to content/en/docs/v1/solution/tools/Crossplane/provider-kind/provider-kind_providerconfig.drawio diff --git a/content/en/docs/solution/tools/Crossplane/provider-kind/provider-kind_providerconfig.png b/content/en/docs/v1/solution/tools/Crossplane/provider-kind/provider-kind_providerconfig.png similarity index 100% rename from content/en/docs/solution/tools/Crossplane/provider-kind/provider-kind_providerconfig.png rename to content/en/docs/v1/solution/tools/Crossplane/provider-kind/provider-kind_providerconfig.png diff --git a/content/en/docs/solution/tools/Kube-prometheus-stack/_index.md b/content/en/docs/v1/solution/tools/Kube-prometheus-stack/_index.md similarity index 99% rename from content/en/docs/solution/tools/Kube-prometheus-stack/_index.md rename to content/en/docs/v1/solution/tools/Kube-prometheus-stack/_index.md index 2bbf352..9b5512a 100644 --- a/content/en/docs/solution/tools/Kube-prometheus-stack/_index.md +++ b/content/en/docs/v1/solution/tools/Kube-prometheus-stack/_index.md @@ -19,10 +19,12 @@ grafana.sidecar.dashboards contains necessary configurations so additional user grafana.grafana.ini.server contains configuration details that are necessary, so the ingress points to the correct url. ### Start + Once Grafana is running it is accessible under https://cnoe.localtest.me/grafana. Many preconfigured dashboards can be used by klicking the menu option Dashboards. ### Adding your own dashboards + The application edfbuilder/kind/stacks/core/kube-prometheus.yaml is used to import new Loki dashboards. Examples for imported dashboards can be found in the folder edfbuilder/kind/stacks/core/kube-prometheus/dashboards. It is possible to add your own dashboards: Dashboards must be in JSON format. To add your own dashboard create a new ConfigMap in YAML format using onw of the examples as a blueprint. The new dashboard in JSON format has to be added as the value for data.k8s-dashboard-[...].json like in the examples. (It is important to use a unique name for data.k8s-dashboard-[...].json for each dashboard.) diff --git a/content/en/docs/solution/tools/Loki/_index.md b/content/en/docs/v1/solution/tools/Loki/_index.md similarity index 95% rename from content/en/docs/solution/tools/Loki/_index.md rename to content/en/docs/v1/solution/tools/Loki/_index.md index 91945b3..4c51070 100644 --- a/content/en/docs/solution/tools/Loki/_index.md +++ b/content/en/docs/v1/solution/tools/Loki/_index.md @@ -5,6 +5,6 @@ description: Grafana Loki is a scalable open-source log aggregation system ## Loki Overview -The application Grafana Loki is started in edfbuilder/kind/stacks/core/loki.yaml. +The application Grafana Loki is started in edfbuilder/kind/stacks/core/loki.yaml. Loki is started in microservices mode and contains the components ingester, distributor, querier, and query-frontend. The Helm values file edfbuilder/kind/stacks/core/loki/values.yaml contains configuration values. diff --git a/content/en/docs/solution/tools/Promtail/_index.md b/content/en/docs/v1/solution/tools/Promtail/_index.md similarity index 91% rename from content/en/docs/solution/tools/Promtail/_index.md rename to content/en/docs/v1/solution/tools/Promtail/_index.md index a5a1a81..b675162 100644 --- a/content/en/docs/solution/tools/Promtail/_index.md +++ b/content/en/docs/v1/solution/tools/Promtail/_index.md @@ -5,5 +5,5 @@ description: Grafana Promtail is an agent that ships logs to a Grafan Loki insta ## Promtail Overview -The application Grafana Promtail is started in edfbuilder/kind/stacks/core/promtail.yaml. +The application Grafana Promtail is started in edfbuilder/kind/stacks/core/promtail.yaml. The Helm values file edfbuilder/kind/stacks/core/promtail/values.yaml contains configuration values. diff --git a/content/en/docs/solution/tools/_index.md b/content/en/docs/v1/solution/tools/_index.md similarity index 100% rename from content/en/docs/solution/tools/_index.md rename to content/en/docs/v1/solution/tools/_index.md diff --git a/content/en/docs/solution/tools/kyverno integration/_index.md b/content/en/docs/v1/solution/tools/kyverno integration/_index.md similarity index 97% rename from content/en/docs/solution/tools/kyverno integration/_index.md rename to content/en/docs/v1/solution/tools/kyverno integration/_index.md index 12ca83e..d9aab2e 100644 --- a/content/en/docs/solution/tools/kyverno integration/_index.md +++ b/content/en/docs/v1/solution/tools/kyverno integration/_index.md @@ -17,14 +17,17 @@ Kyverno is a policy engine for Kubernetes designed to enforce, validate, and mut Kyverno simplifies governance and compliance in Kubernetes environments by automating policy management and ensuring best practices are followed. ## Prerequisites + Same as for idpbuilder installation -- Docker Engine -- Go -- kubectl -- kind +* Docker Engine +* Go +* kubectl +* kind ## Installation + ### Build process + For building idpbuilder the source code needs to be downloaded and compiled: ``` diff --git a/content/en/docs/solution/tools/kyverno integration/kyverno.png b/content/en/docs/v1/solution/tools/kyverno integration/kyverno.png similarity index 100% rename from content/en/docs/solution/tools/kyverno integration/kyverno.png rename to content/en/docs/v1/solution/tools/kyverno integration/kyverno.png diff --git a/devbox.json b/devbox.json index a5adc5a..4c3241a 100644 --- a/devbox.json +++ b/devbox.json @@ -1,9 +1,12 @@ { "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.10.5/.schema/devbox.schema.json", "packages": [ - "hugo@0.125.4", - "dart-sass@1.75.0", - "go@latest" + "hugo@0.151.0", + "dart-sass@latest", + "go@1.25.1", + "nodejs@24.10.0", + "htmltest@latest", + "go-task@latest" ], "shell": { "init_hook": [], diff --git a/devbox.lock b/devbox.lock index c009b13..678ea90 100644 --- a/devbox.lock +++ b/devbox.lock @@ -1,163 +1,344 @@ { "lockfile_version": "1", "packages": { - "dart-sass@1.75.0": { - "last_modified": "2024-05-03T15:42:32Z", - "resolved": "github:NixOS/nixpkgs/5fd8536a9a5932d4ae8de52b7dc08d92041237fc#dart-sass", + "dart-sass@latest": { + "last_modified": "2025-10-11T06:31:15Z", + "resolved": "github:NixOS/nixpkgs/362791944032cb532aabbeed7887a441496d5e6e#dart-sass", "source": "devbox-search", - "version": "1.75.0", + "version": "1.93.2", "systems": { "aarch64-darwin": { "outputs": [ { "name": "out", - "path": "/nix/store/6ynzjs0v55h88ri86li1d9nyr822n7kk-dart-sass-1.75.0", + "path": "/nix/store/2wjcjimv86a010lvbsqiyjdl2jmbz49z-dart-sass-1.93.2", "default": true }, { "name": "pubcache", - "path": "/nix/store/f4wbni4cqdhq8y9phl6aazyh54mnacz7-dart-sass-1.75.0-pubcache" + "path": "/nix/store/r8d714i4fgjgsv1hj875afbp0n9cq4gi-dart-sass-1.93.2-pubcache" } ], - "store_path": "/nix/store/6ynzjs0v55h88ri86li1d9nyr822n7kk-dart-sass-1.75.0" + "store_path": "/nix/store/2wjcjimv86a010lvbsqiyjdl2jmbz49z-dart-sass-1.93.2" }, "aarch64-linux": { "outputs": [ { "name": "out", - "path": "/nix/store/g88isq3r0zpxvx1rzc86dl9ny15jr980-dart-sass-1.75.0", + "path": "/nix/store/r8a0s7gf8chy7p5jjhdj4ip5a3jjyjb0-dart-sass-1.93.2", "default": true }, { "name": "pubcache", - "path": "/nix/store/l6vdyb4i5hb9qmvms9v9g7vsnynfq0lb-dart-sass-1.75.0-pubcache" + "path": "/nix/store/b68qdyy9zwzanlvcqf9ppj1yna7svkna-dart-sass-1.93.2-pubcache" } ], - "store_path": "/nix/store/g88isq3r0zpxvx1rzc86dl9ny15jr980-dart-sass-1.75.0" + "store_path": "/nix/store/r8a0s7gf8chy7p5jjhdj4ip5a3jjyjb0-dart-sass-1.93.2" }, "x86_64-darwin": { "outputs": [ { "name": "out", - "path": "/nix/store/h79n1apvmgpvw4w855zxf9qx887k9v3d-dart-sass-1.75.0", + "path": "/nix/store/i09v3a327zg2kcby5kapqpyrx1ijh8vi-dart-sass-1.93.2", "default": true }, { "name": "pubcache", - "path": "/nix/store/bxmfb2129kn4xnrz5i4p4ngkplavrxv4-dart-sass-1.75.0-pubcache" + "path": "/nix/store/ranyl11vksmg46nf9biw4nwk8h0hpqv9-dart-sass-1.93.2-pubcache" } ], - "store_path": "/nix/store/h79n1apvmgpvw4w855zxf9qx887k9v3d-dart-sass-1.75.0" + "store_path": "/nix/store/i09v3a327zg2kcby5kapqpyrx1ijh8vi-dart-sass-1.93.2" }, "x86_64-linux": { "outputs": [ { "name": "out", - "path": "/nix/store/yvr71pda4bm9a2dilgyd77297xx32iad-dart-sass-1.75.0", + "path": "/nix/store/hqfw052brhr3ln21sw347jgdva8z33qh-dart-sass-1.93.2", "default": true }, { "name": "pubcache", - "path": "/nix/store/h8n6s7f91kn596g2hbn3ccbs4s80bm46-dart-sass-1.75.0-pubcache" + "path": "/nix/store/5vfpdb333pcbxw7adky8nbqjn2r4dc5h-dart-sass-1.93.2-pubcache" } ], - "store_path": "/nix/store/yvr71pda4bm9a2dilgyd77297xx32iad-dart-sass-1.75.0" + "store_path": "/nix/store/hqfw052brhr3ln21sw347jgdva8z33qh-dart-sass-1.93.2" } } }, - "go@latest": { - "last_modified": "2024-10-13T23:44:06Z", - "resolved": "github:NixOS/nixpkgs/d4f247e89f6e10120f911e2e2d2254a050d0f732#go", + "github:NixOS/nixpkgs/nixpkgs-unstable": { + "last_modified": "2025-10-20T13:06:07Z", + "resolved": "github:NixOS/nixpkgs/cb82756ecc37fa623f8cf3e88854f9bf7f64af93?lastModified=1760965567&narHash=sha256-0JDOal5P7xzzAibvD0yTE3ptyvoVOAL0rcELmDdtSKg%3D" + }, + "go-task@latest": { + "last_modified": "2025-10-07T08:41:47Z", + "resolved": "github:NixOS/nixpkgs/bce5fe2bb998488d8e7e7856315f90496723793c#go-task", "source": "devbox-search", - "version": "1.23.2", + "version": "3.45.4", "systems": { "aarch64-darwin": { "outputs": [ { "name": "out", - "path": "/nix/store/35jikx2wg5r0qj47sic0p99bqnmwi6cn-go-1.23.2", + "path": "/nix/store/jpyzi7ph07mxn64vr684rn4sn81rmdbv-go-task-3.45.4", "default": true } ], - "store_path": "/nix/store/35jikx2wg5r0qj47sic0p99bqnmwi6cn-go-1.23.2" + "store_path": "/nix/store/jpyzi7ph07mxn64vr684rn4sn81rmdbv-go-task-3.45.4" }, "aarch64-linux": { "outputs": [ { "name": "out", - "path": "/nix/store/6bx6d90kpy537yab22wja70ibpp4gkww-go-1.23.2", + "path": "/nix/store/bhkmm0w7wmgncwvn8gmbsn254n0r9app-go-task-3.45.4", "default": true } ], - "store_path": "/nix/store/6bx6d90kpy537yab22wja70ibpp4gkww-go-1.23.2" + "store_path": "/nix/store/bhkmm0w7wmgncwvn8gmbsn254n0r9app-go-task-3.45.4" }, "x86_64-darwin": { "outputs": [ { "name": "out", - "path": "/nix/store/yi89mimkmw48qhzrll1aaibxbvllpsjv-go-1.23.2", + "path": "/nix/store/pv4fd2995ys0dd4rvsqcn6cd2q2qi98s-go-task-3.45.4", "default": true } ], - "store_path": "/nix/store/yi89mimkmw48qhzrll1aaibxbvllpsjv-go-1.23.2" + "store_path": "/nix/store/pv4fd2995ys0dd4rvsqcn6cd2q2qi98s-go-task-3.45.4" }, "x86_64-linux": { "outputs": [ { "name": "out", - "path": "/nix/store/klw1ipjsqx1np7pkk833x7sad7f3ivv9-go-1.23.2", + "path": "/nix/store/535z3a3p7hwdg4g3w4f4ssq44vnqsxqh-go-task-3.45.4", "default": true } ], - "store_path": "/nix/store/klw1ipjsqx1np7pkk833x7sad7f3ivv9-go-1.23.2" + "store_path": "/nix/store/535z3a3p7hwdg4g3w4f4ssq44vnqsxqh-go-task-3.45.4" } } }, - "hugo@0.125.4": { - "last_modified": "2024-04-27T02:17:36Z", - "resolved": "github:NixOS/nixpkgs/698fd43e541a6b8685ed408aaf7a63561018f9f8#hugo", + "go@1.25.1": { + "last_modified": "2025-10-07T08:41:47Z", + "resolved": "github:NixOS/nixpkgs/bce5fe2bb998488d8e7e7856315f90496723793c#go", "source": "devbox-search", - "version": "0.125.4", + "version": "1.25.1", "systems": { "aarch64-darwin": { "outputs": [ { "name": "out", - "path": "/nix/store/2ssds5l4s15xfgljv2ygjhqpn949lxj4-hugo-0.125.4", + "path": "/nix/store/mkdfnr1nkfj2kznxyag9pypbxp3wqqdv-go-1.25.1", "default": true } ], - "store_path": "/nix/store/2ssds5l4s15xfgljv2ygjhqpn949lxj4-hugo-0.125.4" + "store_path": "/nix/store/mkdfnr1nkfj2kznxyag9pypbxp3wqqdv-go-1.25.1" }, "aarch64-linux": { "outputs": [ { "name": "out", - "path": "/nix/store/nln80v8vsw5h3hv7kihglb12fy077flb-hugo-0.125.4", + "path": "/nix/store/0jzj8p7k9wkr4l17sgrlg3z5di27sggf-go-1.25.1", "default": true } ], - "store_path": "/nix/store/nln80v8vsw5h3hv7kihglb12fy077flb-hugo-0.125.4" + "store_path": "/nix/store/0jzj8p7k9wkr4l17sgrlg3z5di27sggf-go-1.25.1" }, "x86_64-darwin": { "outputs": [ { "name": "out", - "path": "/nix/store/n6az4gns36nrq9sbiqf2kf7kgn1kjyfm-hugo-0.125.4", + "path": "/nix/store/q2xylk8h3kbfajhw2lpdmyzyyqgqx8fl-go-1.25.1", "default": true } ], - "store_path": "/nix/store/n6az4gns36nrq9sbiqf2kf7kgn1kjyfm-hugo-0.125.4" + "store_path": "/nix/store/q2xylk8h3kbfajhw2lpdmyzyyqgqx8fl-go-1.25.1" }, "x86_64-linux": { "outputs": [ { "name": "out", - "path": "/nix/store/k53ijl83p62i6lqia2jjky8l136x42i7-hugo-0.125.4", + "path": "/nix/store/f01qkydd3c2jqwi4w6hkddkf3blp16kw-go-1.25.1", "default": true } ], - "store_path": "/nix/store/k53ijl83p62i6lqia2jjky8l136x42i7-hugo-0.125.4" + "store_path": "/nix/store/f01qkydd3c2jqwi4w6hkddkf3blp16kw-go-1.25.1" + } + } + }, + "htmltest@latest": { + "last_modified": "2025-10-07T08:41:47Z", + "resolved": "github:NixOS/nixpkgs/bce5fe2bb998488d8e7e7856315f90496723793c#htmltest", + "source": "devbox-search", + "version": "0.17.0", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/46gsr9pd5ssf705yl68mdb1wsls20q2p-htmltest-0.17.0", + "default": true + } + ], + "store_path": "/nix/store/46gsr9pd5ssf705yl68mdb1wsls20q2p-htmltest-0.17.0" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/chw7bw31lh3knq26p5ij6i7rq33wlhws-htmltest-0.17.0", + "default": true + } + ], + "store_path": "/nix/store/chw7bw31lh3knq26p5ij6i7rq33wlhws-htmltest-0.17.0" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/lclvbaw9h8jr3wq8y7jxyd5p67ljqnd0-htmltest-0.17.0", + "default": true + } + ], + "store_path": "/nix/store/lclvbaw9h8jr3wq8y7jxyd5p67ljqnd0-htmltest-0.17.0" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/0pywisrmyx271ryk3jd35hair132sc7k-htmltest-0.17.0", + "default": true + } + ], + "store_path": "/nix/store/0pywisrmyx271ryk3jd35hair132sc7k-htmltest-0.17.0" + } + } + }, + "hugo@0.151.0": { + "last_modified": "2025-10-09T02:37:25Z", + "resolved": "github:NixOS/nixpkgs/2dad7af78a183b6c486702c18af8a9544f298377#hugo", + "source": "devbox-search", + "version": "0.151.0", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/dcrip0cqzp49qrxj2y6866zivlh4ll7n-hugo-0.151.0", + "default": true + } + ], + "store_path": "/nix/store/dcrip0cqzp49qrxj2y6866zivlh4ll7n-hugo-0.151.0" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/7wkfywf6q4im4lqfb0px0gj1z470qbji-hugo-0.151.0", + "default": true + } + ], + "store_path": "/nix/store/7wkfywf6q4im4lqfb0px0gj1z470qbji-hugo-0.151.0" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/lgn4bf0axzgm44783j8rp24gjh87j1an-hugo-0.151.0", + "default": true + } + ], + "store_path": "/nix/store/lgn4bf0axzgm44783j8rp24gjh87j1an-hugo-0.151.0" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/jh0xghg9k3l7f8igldaqymj84fncyzcc-hugo-0.151.0", + "default": true + } + ], + "store_path": "/nix/store/jh0xghg9k3l7f8igldaqymj84fncyzcc-hugo-0.151.0" + } + } + }, + "nodejs@24.10.0": { + "last_modified": "2025-10-13T09:56:54Z", + "plugin_version": "0.0.2", + "resolved": "github:NixOS/nixpkgs/c12c63cd6c5eb34c7b4c3076c6a99e00fcab86ec#nodejs_24", + "source": "devbox-search", + "version": "24.10.0", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/355hbbr8bfhyij7vkqczbjmgqa9dbrsh-nodejs-24.10.0", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/pfnl3nqxa7agrd4rw52z52pspss7nvbi-nodejs-24.10.0-dev" + }, + { + "name": "libv8", + "path": "/nix/store/ch0ss8jqxs4dda64786ap78s3vrfi3kz-nodejs-24.10.0-libv8" + } + ], + "store_path": "/nix/store/355hbbr8bfhyij7vkqczbjmgqa9dbrsh-nodejs-24.10.0" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/ybfap4y7drm5nbx358cj238ba87gp8bk-nodejs-24.10.0", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/zdwjsr9hcb8ydkgwvljnm1rcbfg3336k-nodejs-24.10.0-dev" + }, + { + "name": "libv8", + "path": "/nix/store/lmcnw7gwb71bfy15qb87b1cphsxvj5jp-nodejs-24.10.0-libv8" + } + ], + "store_path": "/nix/store/ybfap4y7drm5nbx358cj238ba87gp8bk-nodejs-24.10.0" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/bgh57m6c4k348hd4wyb367xwkljq42ky-nodejs-24.10.0", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/747r79izxv4jm0h1zn2qdyc7hbz06ckz-nodejs-24.10.0-dev" + }, + { + "name": "libv8", + "path": "/nix/store/2zb0z0qhzb29jlksjpc2vz0sk9icln1p-nodejs-24.10.0-libv8" + } + ], + "store_path": "/nix/store/bgh57m6c4k348hd4wyb367xwkljq42ky-nodejs-24.10.0" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/p2sk3402d788hqn5diy5gba8cskjffzz-nodejs-24.10.0", + "default": true + }, + { + "name": "dev", + "path": "/nix/store/fn613shrdw5k5d5is7h8rs3dmi9xrh37-nodejs-24.10.0-dev" + }, + { + "name": "libv8", + "path": "/nix/store/y9km82y1yqw1r7ld0xcifpj9zfzfy0q3-nodejs-24.10.0-libv8" + } + ], + "store_path": "/nix/store/p2sk3402d788hqn5diy5gba8cskjffzz-nodejs-24.10.0" } } } diff --git a/edgeconnectdeployment.yaml b/edgeconnectdeployment.yaml new file mode 100644 index 0000000..d2af901 --- /dev/null +++ b/edgeconnectdeployment.yaml @@ -0,0 +1,23 @@ +kind: edgeconnect-deployment +metadata: + name: "edpdoc" + appVersion: "1.0.0" + organization: "edp2" +spec: + k8sApp: + manifestFile: "./k8s-deployment.yaml" + infraTemplate: + - region: "EU" + cloudletOrg: "TelekomOP" + cloudletName: "Munich" + flavorName: "EU.small" + network: + outboundConnections: + - protocol: "tcp" + portRangeMin: 80 + portRangeMax: 80 + remoteCIDR: "0.0.0.0/0" + - protocol: "tcp" + portRangeMin: 443 + portRangeMax: 443 + remoteCIDR: "0.0.0.0/0" diff --git a/go.mod b/go.mod index 625dea4..f4c0b45 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,8 @@ module github.com/me/ipceicis go 1.22.5 -require github.com/google/docsy v0.10.0 // indirect +require ( + github.com/FortAwesome/Font-Awesome v0.0.0-20241216213156-af620534bfc3 // indirect + github.com/google/docsy v0.12.0 // indirect + github.com/twbs/bootstrap v5.3.8+incompatible // indirect +) diff --git a/go.sum b/go.sum index 78bc934..6a51e65 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,7 @@ -github.com/FortAwesome/Font-Awesome v0.0.0-20240402185447-c0f460dca7f7/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= -github.com/google/docsy v0.10.0 h1:6tMDacPwAyRWNCfvsn/9qGOZDQ8b0aRzjRZvnZPY5dg= -github.com/google/docsy v0.10.0/go.mod h1:c0nIAqmRTOuJ01F85U/wJPQtc3Zj9N58Kea9bOT2AJc= -github.com/twbs/bootstrap v5.3.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= +github.com/FortAwesome/Font-Awesome v0.0.0-20241216213156-af620534bfc3 h1:/iluJkJiyTAdnqrw3Yi9rH2HNHhrrtCmj8VJe7I6o3w= +github.com/FortAwesome/Font-Awesome v0.0.0-20241216213156-af620534bfc3/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= +github.com/google/docsy v0.12.0 h1:CddZKL39YyJzawr8GTVaakvcUTCJRAAYdz7W0qfZ2P4= +github.com/google/docsy v0.12.0/go.mod h1:1bioDqA493neyFesaTvQ9reV0V2vYy+xUAnlnz7+miM= +github.com/twbs/bootstrap v5.3.6+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= +github.com/twbs/bootstrap v5.3.8+incompatible h1:eK1fsXP7R/FWFt+sSNmmvUH9usPocf240nWVw7Dh02o= +github.com/twbs/bootstrap v5.3.8+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= diff --git a/hugo.toml b/hugo.toml index 29044f7..234c0c0 100644 --- a/hugo.toml +++ b/hugo.toml @@ -152,7 +152,7 @@ enable = false # workspace = "docsy.work" [module.hugoVersion] extended = true - min = "0.110.0" + min = "0.151.0" [[module.imports]] path = "github.com/google/docsy" disable = false @@ -174,4 +174,10 @@ svg_image_url = "https://www.plantuml.com/plantuml/svg/" # By default the plantuml implementation uses tags to display UML diagrams. # When svg is set to true, diagrams are displayed using tags, maintaining functionality like links e.g. # default = false -svg = true \ No newline at end of file +svg = true + +# LikeC4 interactive architecture diagrams configuration +[params.likec4] +enable = true +# The webcomponent file will be generated from resources/likec4 and placed in static/js/ +webcomponent_file = "likec4-webcomponent.js" \ No newline at end of file diff --git a/k8s-deployment.yaml b/k8s-deployment.yaml new file mode 100644 index 0000000..02166d0 --- /dev/null +++ b/k8s-deployment.yaml @@ -0,0 +1,39 @@ +apiVersion: v1 +kind: Service +metadata: + name: edpdoc + labels: + run: edpdoc +spec: + type: LoadBalancer + ports: + - name: tcp80 + protocol: TCP + port: 80 + targetPort: 80 + selector: + run: edpdoc +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: edpdoc +spec: + replicas: 1 + selector: + matchLabels: + run: edpdoc + template: + metadata: + labels: + run: edpdoc + mexDeployGen: kubernetes-basic + spec: + volumes: + containers: + - name: edpdoc + image: ###IMAGETAG### + imagePullPolicy: Always + ports: + - containerPort: 80 + protocol: TCP diff --git a/layouts/_default/_markup/render-heading.html b/layouts/_default/_markup/render-heading.html deleted file mode 100644 index 7f8e974..0000000 --- a/layouts/_default/_markup/render-heading.html +++ /dev/null @@ -1 +0,0 @@ -{{ template "_default/_markup/td-render-heading.html" . }} diff --git a/layouts/docs/single.html b/layouts/docs/single.html new file mode 100644 index 0000000..7386260 --- /dev/null +++ b/layouts/docs/single.html @@ -0,0 +1,17 @@ +{{ define "main" }} +{{ partial "legacy-banner.html" . }} +
+

{{ .Title }}

+ {{ with .Params.description }}
{{ . | markdownify }}
{{ end }} + {{ .Content }} + {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable) (.Site.GoogleAnalytics)) }} + {{ partial "feedback.html" .Site.Params.ui.feedback }} +
+ {{ end }} + {{ if (.Site.Config.Services.Disqus.Shortname) }} +
+ {{ partial "disqus-comment.html" . }} + {{ end }} +
{{ partial "page-meta-lastmod.html" . }}
+
+{{ end }} diff --git a/layouts/partials/hooks/head-end.html b/layouts/partials/hooks/head-end.html new file mode 100644 index 0000000..3439ee1 --- /dev/null +++ b/layouts/partials/hooks/head-end.html @@ -0,0 +1,5 @@ +{{ if .Site.Params.likec4.enable }} + + + +{{ end }} diff --git a/layouts/partials/legacy-banner.html b/layouts/partials/legacy-banner.html new file mode 100644 index 0000000..045e3e0 --- /dev/null +++ b/layouts/partials/legacy-banner.html @@ -0,0 +1,13 @@ +{{ if or (hasPrefix .RelPermalink "/docs/v1/") (hasPrefix .File.Path "docs/v1/") }} + +{{ end }} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e731818 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2510 @@ +{ + "name": "ipceicis-developerframework", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ipceicis-developerframework", + "version": "1.0.0", + "devDependencies": { + "autoprefixer": "^10.4.21", + "html-validate": "^10.1.2", + "markdownlint-cli": "^0.45.0", + "postcss": "^8.5.6", + "postcss-cli": "^11.0.1" + } + }, + "node_modules/@html-validate/stylish": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@html-validate/stylish/-/stylish-4.3.0.tgz", + "integrity": "sha512-eUfvKpRJg5TvzSfTf2EovrQoTKjkRnPUOUnXVJ2cQ4GbC/bQw98oxN+DdSf+HxOBK00YOhsP52xWdJPV1o4n5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^4.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@sidvind/better-ajv-errors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sidvind/better-ajv-errors/-/better-ajv-errors-4.0.0.tgz", + "integrity": "sha512-rLZQkN6IfNwG6iqZZwqFMcs7DvQX3ZrLVhsHmSO1LUA4EZAz+VZLpTBCIOFsC5Qu3xuwzVfRMZ+1rtk/mCRRZw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "kleur": "^4.1.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "ajv": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/katex": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", + "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.19.tgz", + "integrity": "sha512-zoKGUdu6vb2jd3YOq0nnhEDQVbPcHhco3UImJrv5dSkvxTc2pl2WjOPsjZXDwPDSl5eghIMuY3R6J9NDKF3KcQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/binary-extensions": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/braces": { + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", + "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.8.19", + "caniuse-lite": "^1.0.30001751", + "electron-to-chromium": "^1.5.238", + "node-releases": "^2.0.26", + "update-browserslist-db": "^1.1.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001751", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", + "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "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", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/dependency-graph": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", + "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.239", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.239.tgz", + "integrity": "sha512-1y5w0Zsq39MSPmEjHjbizvhYoTaulVtivpxkp5q5kaPmQtsK6/2nvAzGRxNMS9DoYySp9PkW0MAQDwU1m764mg==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fill-range": { + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "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, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", + "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.0.3", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "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" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/html-validate": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/html-validate/-/html-validate-10.1.2.tgz", + "integrity": "sha512-INxU26gr7zl1lNQeCjzRBHEV2cMEjPHsKVtRMHzdCwITeuiZX/wDi5Dep4srHqrzdnvCyjf6Pfds4zl1shkm4Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/html-validate" + } + ], + "license": "MIT", + "dependencies": { + "@html-validate/stylish": "^4.1.0", + "@sidvind/better-ajv-errors": "4.0.0", + "ajv": "^8.0.0", + "glob": "^11.0.0", + "kleur": "^4.1.0", + "minimist": "^1.2.0", + "prompts": "^2.0.0", + "semver": "^7.0.0" + }, + "bin": { + "html-validate": "bin/html-validate.mjs" + }, + "engines": { + "node": "^20.19.0 || >= 22.12.0" + }, + "peerDependencies": { + "jest": "^28.1.3 || ^29.0.3 || ^30.0.0", + "jest-diff": "^28.1.3 || ^29.0.3 || ^30.0.0", + "jest-snapshot": "^28.1.3 || ^29.0.3 || ^30.0.0", + "vitest": "^1.0.0 || ^2.0.0 || ^3.0.0" + }, + "peerDependenciesMeta": { + "jest": { + "optional": true + }, + "jest-diff": { + "optional": true + }, + "jest-snapshot": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-binary-path": { + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extglob": { + "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" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-number": { + "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" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/katex": { + "version": "0.16.25", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.25.tgz", + "integrity": "sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==", + "dev": true, + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdownlint": { + "version": "0.38.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.38.0.tgz", + "integrity": "sha512-xaSxkaU7wY/0852zGApM8LdlIfGCW8ETZ0Rr62IQtAnUMlMuifsg09vWJcNYeL4f0anvr8Vo4ZQar8jGpV0btQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "4.0.2", + "micromark-core-commonmark": "2.0.3", + "micromark-extension-directive": "4.0.0", + "micromark-extension-gfm-autolink-literal": "2.1.0", + "micromark-extension-gfm-footnote": "2.1.0", + "micromark-extension-gfm-table": "2.1.1", + "micromark-extension-math": "3.1.0", + "micromark-util-types": "2.0.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + } + }, + "node_modules/markdownlint-cli": { + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.45.0.tgz", + "integrity": "sha512-GiWr7GfJLVfcopL3t3pLumXCYs8sgWppjIA1F/Cc3zIMgD3tmkpyZ1xkm1Tej8mw53B93JsDjgA3KOftuYcfOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "~13.1.0", + "glob": "~11.0.2", + "ignore": "~7.0.4", + "js-yaml": "~4.1.0", + "jsonc-parser": "~3.3.1", + "jsonpointer": "~5.0.1", + "markdown-it": "~14.1.0", + "markdownlint": "~0.38.0", + "minimatch": "~10.0.1", + "run-con": "~1.3.2", + "smol-toml": "~1.3.4" + }, + "bin": { + "markdownlint": "markdownlint.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", + "integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-math": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", + "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/katex": "^0.16.0", + "devlop": "^1.0.0", + "katex": "^0.16.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", + "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz", + "integrity": "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "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" + } + }, + "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/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "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" + } + }, + "node_modules/postcss": { + "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", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.1.tgz", + "integrity": "sha512-0UnkNPSayHKRe/tc2YGW6XnSqqOA9eqpiRMgRlV1S6HdGi16vwJBx7lviARzbV1HpQHqLLRH3o8vTcB0cLc+5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^1.0.0", + "fs-extra": "^11.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^5.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^5.0.0", + "tinyglobby": "^0.2.12", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz", + "integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1", + "yaml": "^2.4.2" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } + } + }, + "node_modules/postcss-reporter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.1.0.tgz", + "integrity": "sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-value-parser": { + "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/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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" + } + }, + "node_modules/readdirp": { + "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" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/run-con": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", + "integrity": "sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~4.1.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" + } + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smol-toml": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.4.tgz", + "integrity": "sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tinyglobby": { + "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", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "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" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "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" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "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" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..4ad689c --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "ipceicis-developerframework", + "version": "1.0.0", + "scripts": { + "build": "hugo --gc --minify", + "test:build": "hugo --gc --minify --logLevel info", + "test:links": "htmltest", + "test:html": "html-validate 'public/**/*.html'", + "test:markdown": "markdownlint 'content/**/*.md'", + "test": "npm run test:build && npm run test:markdown && npm run test:html && npm run test:links", + "test:quick": "npm run test:build && npm run test:markdown" + }, + "devDependencies": { + "autoprefixer": "^10.4.21", + "html-validate": "^10.1.2", + "markdownlint-cli": "^0.45.0", + "postcss": "^8.5.6", + "postcss-cli": "^11.0.1" + } +} diff --git a/resources/_gen/assets/scss/main.scss_3f90599f3717b4a4920df16fdcadce3d.content b/resources/_gen/assets/scss/main.scss_3f90599f3717b4a4920df16fdcadce3d.content deleted file mode 100644 index e79aaa3..0000000 --- a/resources/_gen/assets/scss/main.scss_3f90599f3717b4a4920df16fdcadce3d.content +++ /dev/null @@ -1,19722 +0,0 @@ -/* - -Add styles or override variables from the theme here. - -*/ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i&display=swap"); -:root, -[data-bs-theme="light"] { - --td-pre-bg: var(--bs-tertiary-bg); } - -/*! - * Bootstrap v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -:root, -[data-bs-theme="light"] { - --bs-blue: #0d6efd; - --bs-indigo: #6610f2; - --bs-purple: #6f42c1; - --bs-pink: #d63384; - --bs-red: #dc3545; - --bs-orange: #fd7e14; - --bs-yellow: #ffc107; - --bs-green: #198754; - --bs-teal: #20c997; - --bs-cyan: #0dcaf0; - --bs-black: #000; - --bs-white: #fff; - --bs-gray: #6c757d; - --bs-gray-dark: #343a40; - --bs-gray-100: #f8f9fa; - --bs-gray-200: #e9ecef; - --bs-gray-300: #dee2e6; - --bs-gray-400: #ced4da; - --bs-gray-500: #adb5bd; - --bs-gray-600: #6c757d; - --bs-gray-700: #495057; - --bs-gray-800: #343a40; - --bs-gray-900: #212529; - --bs-primary: #30638e; - --bs-secondary: #ffa630; - --bs-success: #3772ff; - --bs-info: #c0e0de; - --bs-warning: #ed6a5a; - --bs-danger: #ed6a5a; - --bs-light: #d3f3ee; - --bs-dark: #403f4c; - --bs-primary-rgb: 48, 99, 142; - --bs-secondary-rgb: 255, 166, 48; - --bs-success-rgb: 55, 114, 255; - --bs-info-rgb: 192, 224, 222; - --bs-warning-rgb: 237, 106, 90; - --bs-danger-rgb: 237, 106, 90; - --bs-light-rgb: 211, 243, 238; - --bs-dark-rgb: 64, 63, 76; - --bs-primary-text-emphasis: #132839; - --bs-secondary-text-emphasis: #664213; - --bs-success-text-emphasis: #162e66; - --bs-info-text-emphasis: #4d5a59; - --bs-warning-text-emphasis: #5f2a24; - --bs-danger-text-emphasis: #5f2a24; - --bs-light-text-emphasis: #495057; - --bs-dark-text-emphasis: #495057; - --bs-primary-bg-subtle: #d6e0e8; - --bs-secondary-bg-subtle: #ffedd6; - --bs-success-bg-subtle: #d7e3ff; - --bs-info-bg-subtle: #f2f9f8; - --bs-warning-bg-subtle: #fbe1de; - --bs-danger-bg-subtle: #fbe1de; - --bs-light-bg-subtle: #fcfcfd; - --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: #acc1d2; - --bs-secondary-border-subtle: #ffdbac; - --bs-success-border-subtle: #afc7ff; - --bs-info-border-subtle: #e6f3f2; - --bs-warning-border-subtle: #f8c3bd; - --bs-danger-border-subtle: #f8c3bd; - --bs-light-border-subtle: #e9ecef; - --bs-dark-border-subtle: #adb5bd; - --bs-white-rgb: 255, 255, 255; - --bs-black-rgb: 0, 0, 0; - --bs-font-sans-serif: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); - --bs-body-font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - --bs-body-font-size: 1rem; - --bs-body-font-weight: 400; - --bs-body-line-height: 1.5; - --bs-body-color: #212529; - --bs-body-color-rgb: 33, 37, 41; - --bs-body-bg: #fff; - --bs-body-bg-rgb: 255, 255, 255; - --bs-emphasis-color: #000; - --bs-emphasis-color-rgb: 0, 0, 0; - --bs-secondary-color: rgba(33, 37, 41, 0.75); - --bs-secondary-color-rgb: 33, 37, 41; - --bs-secondary-bg: #e9ecef; - --bs-secondary-bg-rgb: 233, 236, 239; - --bs-tertiary-color: rgba(33, 37, 41, 0.5); - --bs-tertiary-color-rgb: 33, 37, 41; - --bs-tertiary-bg: #f8f9fa; - --bs-tertiary-bg-rgb: 248, 249, 250; - --bs-heading-color: inherit; - --bs-link-color: #0d6efd; - --bs-link-color-rgb: 13, 110, 253; - --bs-link-decoration: underline; - --bs-link-hover-color: #094db1; - --bs-link-hover-color-rgb: 9, 77, 177; - --bs-code-color: #99641d; - --bs-highlight-color: #212529; - --bs-highlight-bg: #fff3cd; - --bs-border-width: 1px; - --bs-border-style: solid; - --bs-border-color: #dee2e6; - --bs-border-color-translucent: rgba(0, 0, 0, 0.175); - --bs-border-radius: 0.375rem; - --bs-border-radius-sm: 0.25rem; - --bs-border-radius-lg: 0.5rem; - --bs-border-radius-xl: 1rem; - --bs-border-radius-xxl: 2rem; - --bs-border-radius-2xl: var(--bs-border-radius-xxl); - --bs-border-radius-pill: 50rem; - --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); - --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); - --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); - --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); - --bs-focus-ring-width: 0.25rem; - --bs-focus-ring-opacity: 0.25; - --bs-focus-ring-color: rgba(48, 99, 142, 0.25); - --bs-form-valid-color: #3772ff; - --bs-form-valid-border-color: #3772ff; - --bs-form-invalid-color: #ed6a5a; - --bs-form-invalid-border-color: #ed6a5a; } - -[data-bs-theme="dark"] { - color-scheme: dark; - --bs-body-color: #dee2e6; - --bs-body-color-rgb: 222, 226, 230; - --bs-body-bg: #212529; - --bs-body-bg-rgb: 33, 37, 41; - --bs-emphasis-color: #fff; - --bs-emphasis-color-rgb: 255, 255, 255; - --bs-secondary-color: rgba(222, 226, 230, 0.75); - --bs-secondary-color-rgb: 222, 226, 230; - --bs-secondary-bg: #343a40; - --bs-secondary-bg-rgb: 52, 58, 64; - --bs-tertiary-color: rgba(222, 226, 230, 0.5); - --bs-tertiary-color-rgb: 222, 226, 230; - --bs-tertiary-bg: #2b3035; - --bs-tertiary-bg-rgb: 43, 48, 53; - --bs-primary-text-emphasis: #83a1bb; - --bs-secondary-text-emphasis: #ffca83; - --bs-success-text-emphasis: #87aaff; - --bs-info-text-emphasis: #d9eceb; - --bs-warning-text-emphasis: #f4a69c; - --bs-danger-text-emphasis: #f4a69c; - --bs-light-text-emphasis: #f8f9fa; - --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: #0a141c; - --bs-secondary-bg-subtle: #33210a; - --bs-success-bg-subtle: #0b1733; - --bs-info-bg-subtle: #262d2c; - --bs-warning-bg-subtle: #2f1512; - --bs-danger-bg-subtle: #2f1512; - --bs-light-bg-subtle: #343a40; - --bs-dark-bg-subtle: #1a1d20; - --bs-primary-border-subtle: #1d3b55; - --bs-secondary-border-subtle: #99641d; - --bs-success-border-subtle: #214499; - --bs-info-border-subtle: #738685; - --bs-warning-border-subtle: #8e4036; - --bs-danger-border-subtle: #8e4036; - --bs-light-border-subtle: #495057; - --bs-dark-border-subtle: #343a40; - --bs-heading-color: inherit; - --bs-link-color: #83a1bb; - --bs-link-hover-color: #a8bdcf; - --bs-link-color-rgb: 131, 161, 187; - --bs-link-hover-color-rgb: 168, 189, 207; - --bs-code-color: #c2a277; - --bs-highlight-color: #dee2e6; - --bs-highlight-bg: #664d03; - --bs-border-color: #495057; - --bs-border-color-translucent: rgba(255, 255, 255, 0.15); - --bs-form-valid-color: #75b798; - --bs-form-valid-border-color: #75b798; - --bs-form-invalid-color: #ea868f; - --bs-form-invalid-border-color: #ea868f; } - -*, -*::before, -*::after { - box-sizing: border-box; } - -@media (prefers-reduced-motion: no-preference) { - :root { - scroll-behavior: smooth; } } - -body { - margin: 0; - font-family: var(--bs-body-font-family); - font-size: var(--bs-body-font-size); - font-weight: var(--bs-body-font-weight); - line-height: var(--bs-body-line-height); - color: var(--bs-body-color); - text-align: var(--bs-body-text-align); - background-color: var(--bs-body-bg); - -webkit-text-size-adjust: 100%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } - -hr { - margin: 1rem 0; - color: inherit; - border: 0; - border-top: var(--bs-border-width) solid; - opacity: 0.25; } - -h6, .h6, h5, .h5, h4, .h4, h3, .h3, .td-footer__links-item, h2, .h2, h1, .h1 { - margin-top: 0; - margin-bottom: 0.5rem; - font-weight: 500; - line-height: 1.2; - color: var(--bs-heading-color); } - -h1, .h1 { - font-size: calc(1.375rem + 1.5vw); } - @media (min-width: 1200px) { - h1, .h1 { - font-size: 2.5rem; } } -h2, .h2 { - font-size: calc(1.325rem + 0.9vw); } - @media (min-width: 1200px) { - h2, .h2 { - font-size: 2rem; } } -h3, .h3, .td-footer__links-item { - font-size: calc(1.275rem + 0.3vw); } - @media (min-width: 1200px) { - h3, .h3, .td-footer__links-item { - font-size: 1.5rem; } } -h4, .h4 { - font-size: calc(1.26rem + 0.12vw); } - @media (min-width: 1200px) { - h4, .h4 { - font-size: 1.35rem; } } -h5, .h5 { - font-size: 1.15rem; } - -h6, .h6 { - font-size: 1rem; } - -p { - margin-top: 0; - margin-bottom: 1rem; } - -abbr[title] { - text-decoration: underline dotted; - cursor: help; - text-decoration-skip-ink: none; } - -address { - margin-bottom: 1rem; - font-style: normal; - line-height: inherit; } - -ol, -ul { - padding-left: 2rem; } - -ol, -ul, -dl { - margin-top: 0; - margin-bottom: 1rem; } - -ol ol, -ul ul, -ol ul, -ul ol { - margin-bottom: 0; } - -dt { - font-weight: 700; } - -dd { - margin-bottom: .5rem; - margin-left: 0; } - -blockquote { - margin: 0 0 1rem; } - -b, -strong { - font-weight: bolder; } - -small, .small, .td-footer__center, .td-cover-block > .byline { - font-size: 0.875em; } - -mark, .mark { - padding: 0.1875em; - color: var(--bs-highlight-color); - background-color: var(--bs-highlight-bg); } - -sub, -sup { - position: relative; - font-size: 0.75em; - line-height: 0; - vertical-align: baseline; } - -sub { - bottom: -.25em; } - -sup { - top: -.5em; } - -a { - color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); - text-decoration: underline; } - a:hover { - --bs-link-color-rgb: var(--bs-link-hover-color-rgb); } - -a:not([href]):not([class]), a:not([href]):not([class]):hover { - color: inherit; - text-decoration: none; } - -pre, -code, -kbd, -samp { - font-family: var(--bs-font-monospace); - font-size: 1em; } - -pre { - display: block; - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; - font-size: 0.875em; } - pre code { - font-size: inherit; - color: inherit; - word-break: normal; } - -code { - font-size: 0.875em; - color: var(--bs-code-color); - word-wrap: break-word; } - a > code { - color: inherit; } - -kbd { - padding: 0.1875rem 0.375rem; - font-size: 0.875em; - color: var(--bs-body-bg); - background-color: var(--bs-body-color); - border-radius: 0.25rem; } - kbd kbd { - padding: 0; - font-size: 1em; } - -figure { - margin: 0 0 1rem; } - -img, -svg { - vertical-align: middle; } - -table { - caption-side: bottom; - border-collapse: collapse; } - -caption { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - color: var(--bs-secondary-color); - text-align: left; } - -th { - text-align: inherit; - text-align: -webkit-match-parent; } - -thead, -tbody, -tfoot, -tr, -td, -th { - border-color: inherit; - border-style: solid; - border-width: 0; } - -label { - display: inline-block; } - -button { - border-radius: 0; } - -button:focus:not(:focus-visible) { - outline: 0; } - -input, -button, -select, -optgroup, -textarea { - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; } - -button, -select { - text-transform: none; } - -[role="button"] { - cursor: pointer; } - -select { - word-wrap: normal; } - select:disabled { - opacity: 1; } - -[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator { - display: none !important; } - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; } - button:not(:disabled), - [type="button"]:not(:disabled), - [type="reset"]:not(:disabled), - [type="submit"]:not(:disabled) { - cursor: pointer; } - -::-moz-focus-inner { - padding: 0; - border-style: none; } - -textarea { - resize: vertical; } - -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; } - -legend { - float: left; - width: 100%; - padding: 0; - margin-bottom: 0.5rem; - font-size: calc(1.275rem + 0.3vw); - line-height: inherit; } - @media (min-width: 1200px) { - legend { - font-size: 1.5rem; } } - legend + * { - clear: left; } - -::-webkit-datetime-edit-fields-wrapper, -::-webkit-datetime-edit-text, -::-webkit-datetime-edit-minute, -::-webkit-datetime-edit-hour-field, -::-webkit-datetime-edit-day-field, -::-webkit-datetime-edit-month-field, -::-webkit-datetime-edit-year-field { - padding: 0; } - -::-webkit-inner-spin-button { - height: auto; } - -[type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; } - -/* rtl:raw: -[type="tel"], -[type="url"], -[type="email"], -[type="number"] { - direction: ltr; -} -*/ -::-webkit-search-decoration { - -webkit-appearance: none; } - -::-webkit-color-swatch-wrapper { - padding: 0; } - -::file-selector-button { - font: inherit; - -webkit-appearance: button; } - -output { - display: inline-block; } - -iframe { - border: 0; } - -summary { - display: list-item; - cursor: pointer; } - -progress { - vertical-align: baseline; } - -[hidden] { - display: none !important; } - -.lead { - font-size: 1.25rem; - font-weight: 300; } - -.display-1 { - font-size: calc(1.625rem + 4.5vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-1 { - font-size: 5rem; } } -.display-2 { - font-size: calc(1.575rem + 3.9vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-2 { - font-size: 4.5rem; } } -.display-3 { - font-size: calc(1.525rem + 3.3vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-3 { - font-size: 4rem; } } -.display-4 { - font-size: calc(1.475rem + 2.7vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-4 { - font-size: 3.5rem; } } -.display-5 { - font-size: calc(1.425rem + 2.1vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-5 { - font-size: 3rem; } } -.display-6 { - font-size: calc(1.375rem + 1.5vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-6 { - font-size: 2.5rem; } } -.list-unstyled, .td-blog-posts-list { - padding-left: 0; - list-style: none; } - -.list-inline, .td-footer__links-list { - padding-left: 0; - list-style: none; } - -.list-inline-item, .td-footer__links-item { - display: inline-block; } - .list-inline-item:not(:last-child), .td-footer__links-item:not(:last-child) { - margin-right: 1rem; } - -.initialism { - font-size: 0.875em; - text-transform: uppercase; } - -.blockquote { - margin-bottom: 1rem; - font-size: 1.25rem; } - .blockquote > :last-child { - margin-bottom: 0; } - -.blockquote-footer { - margin-top: -1rem; - margin-bottom: 1rem; - font-size: 0.875em; - color: #6c757d; } - .blockquote-footer::before { - content: "\2014\00A0"; } - -.img-fluid, .td-content img { - max-width: 100%; - height: auto; } - -.img-thumbnail { - padding: 0.25rem; - background-color: var(--bs-body-bg); - border: var(--bs-border-width) solid var(--bs-border-color); - border-radius: var(--bs-border-radius); - box-shadow: var(--bs-box-shadow-sm); - max-width: 100%; - height: auto; } - -.figure { - display: inline-block; } - -.figure-img { - margin-bottom: 0.5rem; - line-height: 1; } - -.figure-caption { - font-size: 0.875em; - color: var(--bs-secondary-color); } - -.container, -.container-fluid, -.container-xxl, -.container-xl, -.container-lg, -.container-md, -.container-sm { - --bs-gutter-x: 1.5rem; - --bs-gutter-y: 0; - width: 100%; - padding-right: calc(var(--bs-gutter-x) * .5); - padding-left: calc(var(--bs-gutter-x) * .5); - margin-right: auto; - margin-left: auto; } - -@media (min-width: 576px) { - .container-sm, .container { - max-width: 540px; } } - -@media (min-width: 768px) { - .container-md, .container-sm, .container { - max-width: 720px; } } - -@media (min-width: 992px) { - .container-lg, .container-md, .container-sm, .container { - max-width: 960px; } } - -@media (min-width: 1200px) { - .container-xl, .container-lg, .container-md, .container-sm, .container { - max-width: 1140px; } } - -@media (min-width: 1400px) { - .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { - max-width: 1320px; } } - -:root { - --bs-breakpoint-xs: 0; - --bs-breakpoint-sm: 576px; - --bs-breakpoint-md: 768px; - --bs-breakpoint-lg: 992px; - --bs-breakpoint-xl: 1200px; - --bs-breakpoint-xxl: 1400px; } - -.row { - --bs-gutter-x: 1.5rem; - --bs-gutter-y: 0; - display: flex; - flex-wrap: wrap; - margin-top: calc(-1 * var(--bs-gutter-y)); - margin-right: calc(-.5 * var(--bs-gutter-x)); - margin-left: calc(-.5 * var(--bs-gutter-x)); } - .row > * { - flex-shrink: 0; - width: 100%; - max-width: 100%; - padding-right: calc(var(--bs-gutter-x) * .5); - padding-left: calc(var(--bs-gutter-x) * .5); - margin-top: var(--bs-gutter-y); } - -.col { - flex: 1 0 0%; } - -.row-cols-auto > * { - flex: 0 0 auto; - width: auto; } - -.row-cols-1 > * { - flex: 0 0 auto; - width: 100%; } - -.row-cols-2 > * { - flex: 0 0 auto; - width: 50%; } - -.row-cols-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - -.row-cols-4 > * { - flex: 0 0 auto; - width: 25%; } - -.row-cols-5 > * { - flex: 0 0 auto; - width: 20%; } - -.row-cols-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - -.col-auto { - flex: 0 0 auto; - width: auto; } - -.col-1 { - flex: 0 0 auto; - width: 8.33333333%; } - -.col-2 { - flex: 0 0 auto; - width: 16.66666667%; } - -.col-3 { - flex: 0 0 auto; - width: 25%; } - -.col-4 { - flex: 0 0 auto; - width: 33.33333333%; } - -.col-5 { - flex: 0 0 auto; - width: 41.66666667%; } - -.col-6 { - flex: 0 0 auto; - width: 50%; } - -.col-7 { - flex: 0 0 auto; - width: 58.33333333%; } - -.col-8 { - flex: 0 0 auto; - width: 66.66666667%; } - -.col-9 { - flex: 0 0 auto; - width: 75%; } - -.col-10 { - flex: 0 0 auto; - width: 83.33333333%; } - -.col-11 { - flex: 0 0 auto; - width: 91.66666667%; } - -.col-12 { - flex: 0 0 auto; - width: 100%; } - -.offset-1 { - margin-left: 8.33333333%; } - -.offset-2 { - margin-left: 16.66666667%; } - -.offset-3 { - margin-left: 25%; } - -.offset-4 { - margin-left: 33.33333333%; } - -.offset-5 { - margin-left: 41.66666667%; } - -.offset-6 { - margin-left: 50%; } - -.offset-7 { - margin-left: 58.33333333%; } - -.offset-8 { - margin-left: 66.66666667%; } - -.offset-9 { - margin-left: 75%; } - -.offset-10 { - margin-left: 83.33333333%; } - -.offset-11 { - margin-left: 91.66666667%; } - -.g-0, -.gx-0 { - --bs-gutter-x: 0; } - -.g-0, -.gy-0 { - --bs-gutter-y: 0; } - -.g-1, -.gx-1 { - --bs-gutter-x: 0.25rem; } - -.g-1, -.gy-1 { - --bs-gutter-y: 0.25rem; } - -.g-2, -.gx-2 { - --bs-gutter-x: 0.5rem; } - -.g-2, -.gy-2 { - --bs-gutter-y: 0.5rem; } - -.g-3, -.gx-3 { - --bs-gutter-x: 1rem; } - -.g-3, -.gy-3 { - --bs-gutter-y: 1rem; } - -.g-4, -.gx-4 { - --bs-gutter-x: 1.5rem; } - -.g-4, -.gy-4 { - --bs-gutter-y: 1.5rem; } - -.g-5, -.gx-5 { - --bs-gutter-x: 3rem; } - -.g-5, -.gy-5 { - --bs-gutter-y: 3rem; } - -@media (min-width: 576px) { - .col-sm { - flex: 1 0 0%; } - .row-cols-sm-auto > * { - flex: 0 0 auto; - width: auto; } - .row-cols-sm-1 > * { - flex: 0 0 auto; - width: 100%; } - .row-cols-sm-2 > * { - flex: 0 0 auto; - width: 50%; } - .row-cols-sm-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - .row-cols-sm-4 > * { - flex: 0 0 auto; - width: 25%; } - .row-cols-sm-5 > * { - flex: 0 0 auto; - width: 20%; } - .row-cols-sm-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - .col-sm-auto { - flex: 0 0 auto; - width: auto; } - .col-sm-1 { - flex: 0 0 auto; - width: 8.33333333%; } - .col-sm-2 { - flex: 0 0 auto; - width: 16.66666667%; } - .col-sm-3 { - flex: 0 0 auto; - width: 25%; } - .col-sm-4 { - flex: 0 0 auto; - width: 33.33333333%; } - .col-sm-5 { - flex: 0 0 auto; - width: 41.66666667%; } - .col-sm-6 { - flex: 0 0 auto; - width: 50%; } - .col-sm-7 { - flex: 0 0 auto; - width: 58.33333333%; } - .col-sm-8 { - flex: 0 0 auto; - width: 66.66666667%; } - .col-sm-9 { - flex: 0 0 auto; - width: 75%; } - .col-sm-10 { - flex: 0 0 auto; - width: 83.33333333%; } - .col-sm-11 { - flex: 0 0 auto; - width: 91.66666667%; } - .col-sm-12 { - flex: 0 0 auto; - width: 100%; } - .offset-sm-0 { - margin-left: 0; } - .offset-sm-1 { - margin-left: 8.33333333%; } - .offset-sm-2 { - margin-left: 16.66666667%; } - .offset-sm-3 { - margin-left: 25%; } - .offset-sm-4 { - margin-left: 33.33333333%; } - .offset-sm-5 { - margin-left: 41.66666667%; } - .offset-sm-6 { - margin-left: 50%; } - .offset-sm-7 { - margin-left: 58.33333333%; } - .offset-sm-8 { - margin-left: 66.66666667%; } - .offset-sm-9 { - margin-left: 75%; } - .offset-sm-10 { - margin-left: 83.33333333%; } - .offset-sm-11 { - margin-left: 91.66666667%; } - .g-sm-0, - .gx-sm-0 { - --bs-gutter-x: 0; } - .g-sm-0, - .gy-sm-0 { - --bs-gutter-y: 0; } - .g-sm-1, - .gx-sm-1 { - --bs-gutter-x: 0.25rem; } - .g-sm-1, - .gy-sm-1 { - --bs-gutter-y: 0.25rem; } - .g-sm-2, - .gx-sm-2 { - --bs-gutter-x: 0.5rem; } - .g-sm-2, - .gy-sm-2 { - --bs-gutter-y: 0.5rem; } - .g-sm-3, - .gx-sm-3 { - --bs-gutter-x: 1rem; } - .g-sm-3, - .gy-sm-3 { - --bs-gutter-y: 1rem; } - .g-sm-4, - .gx-sm-4 { - --bs-gutter-x: 1.5rem; } - .g-sm-4, - .gy-sm-4 { - --bs-gutter-y: 1.5rem; } - .g-sm-5, - .gx-sm-5 { - --bs-gutter-x: 3rem; } - .g-sm-5, - .gy-sm-5 { - --bs-gutter-y: 3rem; } } - -@media (min-width: 768px) { - .col-md { - flex: 1 0 0%; } - .row-cols-md-auto > * { - flex: 0 0 auto; - width: auto; } - .row-cols-md-1 > * { - flex: 0 0 auto; - width: 100%; } - .row-cols-md-2 > * { - flex: 0 0 auto; - width: 50%; } - .row-cols-md-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - .row-cols-md-4 > * { - flex: 0 0 auto; - width: 25%; } - .row-cols-md-5 > * { - flex: 0 0 auto; - width: 20%; } - .row-cols-md-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - .col-md-auto { - flex: 0 0 auto; - width: auto; } - .col-md-1 { - flex: 0 0 auto; - width: 8.33333333%; } - .col-md-2 { - flex: 0 0 auto; - width: 16.66666667%; } - .col-md-3 { - flex: 0 0 auto; - width: 25%; } - .col-md-4 { - flex: 0 0 auto; - width: 33.33333333%; } - .col-md-5 { - flex: 0 0 auto; - width: 41.66666667%; } - .col-md-6 { - flex: 0 0 auto; - width: 50%; } - .col-md-7 { - flex: 0 0 auto; - width: 58.33333333%; } - .col-md-8 { - flex: 0 0 auto; - width: 66.66666667%; } - .col-md-9 { - flex: 0 0 auto; - width: 75%; } - .col-md-10 { - flex: 0 0 auto; - width: 83.33333333%; } - .col-md-11 { - flex: 0 0 auto; - width: 91.66666667%; } - .col-md-12 { - flex: 0 0 auto; - width: 100%; } - .offset-md-0 { - margin-left: 0; } - .offset-md-1 { - margin-left: 8.33333333%; } - .offset-md-2 { - margin-left: 16.66666667%; } - .offset-md-3 { - margin-left: 25%; } - .offset-md-4 { - margin-left: 33.33333333%; } - .offset-md-5 { - margin-left: 41.66666667%; } - .offset-md-6 { - margin-left: 50%; } - .offset-md-7 { - margin-left: 58.33333333%; } - .offset-md-8 { - margin-left: 66.66666667%; } - .offset-md-9 { - margin-left: 75%; } - .offset-md-10 { - margin-left: 83.33333333%; } - .offset-md-11 { - margin-left: 91.66666667%; } - .g-md-0, - .gx-md-0 { - --bs-gutter-x: 0; } - .g-md-0, - .gy-md-0 { - --bs-gutter-y: 0; } - .g-md-1, - .gx-md-1 { - --bs-gutter-x: 0.25rem; } - .g-md-1, - .gy-md-1 { - --bs-gutter-y: 0.25rem; } - .g-md-2, - .gx-md-2 { - --bs-gutter-x: 0.5rem; } - .g-md-2, - .gy-md-2 { - --bs-gutter-y: 0.5rem; } - .g-md-3, - .gx-md-3 { - --bs-gutter-x: 1rem; } - .g-md-3, - .gy-md-3 { - --bs-gutter-y: 1rem; } - .g-md-4, - .gx-md-4 { - --bs-gutter-x: 1.5rem; } - .g-md-4, - .gy-md-4 { - --bs-gutter-y: 1.5rem; } - .g-md-5, - .gx-md-5 { - --bs-gutter-x: 3rem; } - .g-md-5, - .gy-md-5 { - --bs-gutter-y: 3rem; } } - -@media (min-width: 992px) { - .col-lg { - flex: 1 0 0%; } - .row-cols-lg-auto > * { - flex: 0 0 auto; - width: auto; } - .row-cols-lg-1 > * { - flex: 0 0 auto; - width: 100%; } - .row-cols-lg-2 > * { - flex: 0 0 auto; - width: 50%; } - .row-cols-lg-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - .row-cols-lg-4 > * { - flex: 0 0 auto; - width: 25%; } - .row-cols-lg-5 > * { - flex: 0 0 auto; - width: 20%; } - .row-cols-lg-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - .col-lg-auto { - flex: 0 0 auto; - width: auto; } - .col-lg-1 { - flex: 0 0 auto; - width: 8.33333333%; } - .col-lg-2 { - flex: 0 0 auto; - width: 16.66666667%; } - .col-lg-3 { - flex: 0 0 auto; - width: 25%; } - .col-lg-4 { - flex: 0 0 auto; - width: 33.33333333%; } - .col-lg-5 { - flex: 0 0 auto; - width: 41.66666667%; } - .col-lg-6 { - flex: 0 0 auto; - width: 50%; } - .col-lg-7 { - flex: 0 0 auto; - width: 58.33333333%; } - .col-lg-8 { - flex: 0 0 auto; - width: 66.66666667%; } - .col-lg-9 { - flex: 0 0 auto; - width: 75%; } - .col-lg-10 { - flex: 0 0 auto; - width: 83.33333333%; } - .col-lg-11 { - flex: 0 0 auto; - width: 91.66666667%; } - .col-lg-12 { - flex: 0 0 auto; - width: 100%; } - .offset-lg-0 { - margin-left: 0; } - .offset-lg-1 { - margin-left: 8.33333333%; } - .offset-lg-2 { - margin-left: 16.66666667%; } - .offset-lg-3 { - margin-left: 25%; } - .offset-lg-4 { - margin-left: 33.33333333%; } - .offset-lg-5 { - margin-left: 41.66666667%; } - .offset-lg-6 { - margin-left: 50%; } - .offset-lg-7 { - margin-left: 58.33333333%; } - .offset-lg-8 { - margin-left: 66.66666667%; } - .offset-lg-9 { - margin-left: 75%; } - .offset-lg-10 { - margin-left: 83.33333333%; } - .offset-lg-11 { - margin-left: 91.66666667%; } - .g-lg-0, - .gx-lg-0 { - --bs-gutter-x: 0; } - .g-lg-0, - .gy-lg-0 { - --bs-gutter-y: 0; } - .g-lg-1, - .gx-lg-1 { - --bs-gutter-x: 0.25rem; } - .g-lg-1, - .gy-lg-1 { - --bs-gutter-y: 0.25rem; } - .g-lg-2, - .gx-lg-2 { - --bs-gutter-x: 0.5rem; } - .g-lg-2, - .gy-lg-2 { - --bs-gutter-y: 0.5rem; } - .g-lg-3, - .gx-lg-3 { - --bs-gutter-x: 1rem; } - .g-lg-3, - .gy-lg-3 { - --bs-gutter-y: 1rem; } - .g-lg-4, - .gx-lg-4 { - --bs-gutter-x: 1.5rem; } - .g-lg-4, - .gy-lg-4 { - --bs-gutter-y: 1.5rem; } - .g-lg-5, - .gx-lg-5 { - --bs-gutter-x: 3rem; } - .g-lg-5, - .gy-lg-5 { - --bs-gutter-y: 3rem; } } - -@media (min-width: 1200px) { - .col-xl { - flex: 1 0 0%; } - .row-cols-xl-auto > * { - flex: 0 0 auto; - width: auto; } - .row-cols-xl-1 > * { - flex: 0 0 auto; - width: 100%; } - .row-cols-xl-2 > * { - flex: 0 0 auto; - width: 50%; } - .row-cols-xl-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - .row-cols-xl-4 > * { - flex: 0 0 auto; - width: 25%; } - .row-cols-xl-5 > * { - flex: 0 0 auto; - width: 20%; } - .row-cols-xl-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - .col-xl-auto { - flex: 0 0 auto; - width: auto; } - .col-xl-1 { - flex: 0 0 auto; - width: 8.33333333%; } - .col-xl-2 { - flex: 0 0 auto; - width: 16.66666667%; } - .col-xl-3 { - flex: 0 0 auto; - width: 25%; } - .col-xl-4 { - flex: 0 0 auto; - width: 33.33333333%; } - .col-xl-5 { - flex: 0 0 auto; - width: 41.66666667%; } - .col-xl-6 { - flex: 0 0 auto; - width: 50%; } - .col-xl-7 { - flex: 0 0 auto; - width: 58.33333333%; } - .col-xl-8 { - flex: 0 0 auto; - width: 66.66666667%; } - .col-xl-9 { - flex: 0 0 auto; - width: 75%; } - .col-xl-10 { - flex: 0 0 auto; - width: 83.33333333%; } - .col-xl-11 { - flex: 0 0 auto; - width: 91.66666667%; } - .col-xl-12 { - flex: 0 0 auto; - width: 100%; } - .offset-xl-0 { - margin-left: 0; } - .offset-xl-1 { - margin-left: 8.33333333%; } - .offset-xl-2 { - margin-left: 16.66666667%; } - .offset-xl-3 { - margin-left: 25%; } - .offset-xl-4 { - margin-left: 33.33333333%; } - .offset-xl-5 { - margin-left: 41.66666667%; } - .offset-xl-6 { - margin-left: 50%; } - .offset-xl-7 { - margin-left: 58.33333333%; } - .offset-xl-8 { - margin-left: 66.66666667%; } - .offset-xl-9 { - margin-left: 75%; } - .offset-xl-10 { - margin-left: 83.33333333%; } - .offset-xl-11 { - margin-left: 91.66666667%; } - .g-xl-0, - .gx-xl-0 { - --bs-gutter-x: 0; } - .g-xl-0, - .gy-xl-0 { - --bs-gutter-y: 0; } - .g-xl-1, - .gx-xl-1 { - --bs-gutter-x: 0.25rem; } - .g-xl-1, - .gy-xl-1 { - --bs-gutter-y: 0.25rem; } - .g-xl-2, - .gx-xl-2 { - --bs-gutter-x: 0.5rem; } - .g-xl-2, - .gy-xl-2 { - --bs-gutter-y: 0.5rem; } - .g-xl-3, - .gx-xl-3 { - --bs-gutter-x: 1rem; } - .g-xl-3, - .gy-xl-3 { - --bs-gutter-y: 1rem; } - .g-xl-4, - .gx-xl-4 { - --bs-gutter-x: 1.5rem; } - .g-xl-4, - .gy-xl-4 { - --bs-gutter-y: 1.5rem; } - .g-xl-5, - .gx-xl-5 { - --bs-gutter-x: 3rem; } - .g-xl-5, - .gy-xl-5 { - --bs-gutter-y: 3rem; } } - -@media (min-width: 1400px) { - .col-xxl { - flex: 1 0 0%; } - .row-cols-xxl-auto > * { - flex: 0 0 auto; - width: auto; } - .row-cols-xxl-1 > * { - flex: 0 0 auto; - width: 100%; } - .row-cols-xxl-2 > * { - flex: 0 0 auto; - width: 50%; } - .row-cols-xxl-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - .row-cols-xxl-4 > * { - flex: 0 0 auto; - width: 25%; } - .row-cols-xxl-5 > * { - flex: 0 0 auto; - width: 20%; } - .row-cols-xxl-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - .col-xxl-auto { - flex: 0 0 auto; - width: auto; } - .col-xxl-1 { - flex: 0 0 auto; - width: 8.33333333%; } - .col-xxl-2 { - flex: 0 0 auto; - width: 16.66666667%; } - .col-xxl-3 { - flex: 0 0 auto; - width: 25%; } - .col-xxl-4 { - flex: 0 0 auto; - width: 33.33333333%; } - .col-xxl-5 { - flex: 0 0 auto; - width: 41.66666667%; } - .col-xxl-6 { - flex: 0 0 auto; - width: 50%; } - .col-xxl-7 { - flex: 0 0 auto; - width: 58.33333333%; } - .col-xxl-8 { - flex: 0 0 auto; - width: 66.66666667%; } - .col-xxl-9 { - flex: 0 0 auto; - width: 75%; } - .col-xxl-10 { - flex: 0 0 auto; - width: 83.33333333%; } - .col-xxl-11 { - flex: 0 0 auto; - width: 91.66666667%; } - .col-xxl-12 { - flex: 0 0 auto; - width: 100%; } - .offset-xxl-0 { - margin-left: 0; } - .offset-xxl-1 { - margin-left: 8.33333333%; } - .offset-xxl-2 { - margin-left: 16.66666667%; } - .offset-xxl-3 { - margin-left: 25%; } - .offset-xxl-4 { - margin-left: 33.33333333%; } - .offset-xxl-5 { - margin-left: 41.66666667%; } - .offset-xxl-6 { - margin-left: 50%; } - .offset-xxl-7 { - margin-left: 58.33333333%; } - .offset-xxl-8 { - margin-left: 66.66666667%; } - .offset-xxl-9 { - margin-left: 75%; } - .offset-xxl-10 { - margin-left: 83.33333333%; } - .offset-xxl-11 { - margin-left: 91.66666667%; } - .g-xxl-0, - .gx-xxl-0 { - --bs-gutter-x: 0; } - .g-xxl-0, - .gy-xxl-0 { - --bs-gutter-y: 0; } - .g-xxl-1, - .gx-xxl-1 { - --bs-gutter-x: 0.25rem; } - .g-xxl-1, - .gy-xxl-1 { - --bs-gutter-y: 0.25rem; } - .g-xxl-2, - .gx-xxl-2 { - --bs-gutter-x: 0.5rem; } - .g-xxl-2, - .gy-xxl-2 { - --bs-gutter-y: 0.5rem; } - .g-xxl-3, - .gx-xxl-3 { - --bs-gutter-x: 1rem; } - .g-xxl-3, - .gy-xxl-3 { - --bs-gutter-y: 1rem; } - .g-xxl-4, - .gx-xxl-4 { - --bs-gutter-x: 1.5rem; } - .g-xxl-4, - .gy-xxl-4 { - --bs-gutter-y: 1.5rem; } - .g-xxl-5, - .gx-xxl-5 { - --bs-gutter-x: 3rem; } - .g-xxl-5, - .gy-xxl-5 { - --bs-gutter-y: 3rem; } } - -.table, .td-table:not(.td-initial), .td-content table:not(.td-initial), .td-box table:not(.td-initial) { - --bs-table-color-type: initial; - --bs-table-bg-type: initial; - --bs-table-color-state: initial; - --bs-table-bg-state: initial; - --bs-table-color: var(--bs-emphasis-color); - --bs-table-bg: var(--bs-body-bg); - --bs-table-border-color: var(--bs-border-color); - --bs-table-accent-bg: transparent; - --bs-table-striped-color: var(--bs-emphasis-color); - --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05); - --bs-table-active-color: var(--bs-emphasis-color); - --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1); - --bs-table-hover-color: var(--bs-emphasis-color); - --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075); - width: 100%; - margin-bottom: 1rem; - vertical-align: top; - border-color: var(--bs-table-border-color); } - .table > :not(caption) > * > *, .td-table:not(.td-initial) > :not(caption) > * > *, .td-content table:not(.td-initial) > :not(caption) > * > *, .td-box table:not(.td-initial) > :not(caption) > * > * { - padding: 0.5rem 0.5rem; - color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color))); - background-color: var(--bs-table-bg); - border-bottom-width: var(--bs-border-width); - box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))); } - .table > tbody, .td-table:not(.td-initial) > tbody, .td-content table:not(.td-initial) > tbody, .td-box table:not(.td-initial) > tbody { - vertical-align: inherit; } - .table > thead, .td-table:not(.td-initial) > thead, .td-content table:not(.td-initial) > thead, .td-box table:not(.td-initial) > thead { - vertical-align: bottom; } - -.table-group-divider { - border-top: calc(var(--bs-border-width) * 2) solid currentcolor; } - -.caption-top { - caption-side: top; } - -.table-sm > :not(caption) > * > * { - padding: 0.25rem 0.25rem; } - -.table-bordered > :not(caption) > * { - border-width: var(--bs-border-width) 0; } - .table-bordered > :not(caption) > * > * { - border-width: 0 var(--bs-border-width); } - -.table-borderless > :not(caption) > * > * { - border-bottom-width: 0; } - -.table-borderless > :not(:first-child) { - border-top-width: 0; } - -.table-striped > tbody > tr:nth-of-type(odd) > *, .td-table:not(.td-initial) > tbody > tr:nth-of-type(odd) > *, .td-content table:not(.td-initial) > tbody > tr:nth-of-type(odd) > *, .td-box table:not(.td-initial) > tbody > tr:nth-of-type(odd) > * { - --bs-table-color-type: var(--bs-table-striped-color); - --bs-table-bg-type: var(--bs-table-striped-bg); } - -.table-striped-columns > :not(caption) > tr > :nth-child(even) { - --bs-table-color-type: var(--bs-table-striped-color); - --bs-table-bg-type: var(--bs-table-striped-bg); } - -.table-active { - --bs-table-color-state: var(--bs-table-active-color); - --bs-table-bg-state: var(--bs-table-active-bg); } - -.table-hover > tbody > tr:hover > * { - --bs-table-color-state: var(--bs-table-hover-color); - --bs-table-bg-state: var(--bs-table-hover-bg); } - -.table-primary { - --bs-table-color: #000; - --bs-table-bg: #d6e0e8; - --bs-table-border-color: #abb3ba; - --bs-table-striped-bg: #cbd5dc; - --bs-table-striped-color: #000; - --bs-table-active-bg: #c1cad1; - --bs-table-active-color: #000; - --bs-table-hover-bg: #c6cfd7; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-secondary { - --bs-table-color: #000; - --bs-table-bg: #ffedd6; - --bs-table-border-color: #ccbeab; - --bs-table-striped-bg: #f2e1cb; - --bs-table-striped-color: #000; - --bs-table-active-bg: #e6d5c1; - --bs-table-active-color: #000; - --bs-table-hover-bg: #ecdbc6; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-success { - --bs-table-color: #000; - --bs-table-bg: #d7e3ff; - --bs-table-border-color: #acb6cc; - --bs-table-striped-bg: #ccd8f2; - --bs-table-striped-color: #000; - --bs-table-active-bg: #c2cce6; - --bs-table-active-color: #000; - --bs-table-hover-bg: #c7d2ec; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-info { - --bs-table-color: #000; - --bs-table-bg: #f2f9f8; - --bs-table-border-color: #c2c7c6; - --bs-table-striped-bg: #e6edec; - --bs-table-striped-color: #000; - --bs-table-active-bg: #dae0df; - --bs-table-active-color: #000; - --bs-table-hover-bg: #e0e6e5; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-warning { - --bs-table-color: #000; - --bs-table-bg: #fbe1de; - --bs-table-border-color: #c9b4b2; - --bs-table-striped-bg: #eed6d3; - --bs-table-striped-color: #000; - --bs-table-active-bg: #e2cbc8; - --bs-table-active-color: #000; - --bs-table-hover-bg: #e8d0cd; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-danger { - --bs-table-color: #000; - --bs-table-bg: #fbe1de; - --bs-table-border-color: #c9b4b2; - --bs-table-striped-bg: #eed6d3; - --bs-table-striped-color: #000; - --bs-table-active-bg: #e2cbc8; - --bs-table-active-color: #000; - --bs-table-hover-bg: #e8d0cd; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-light { - --bs-table-color: #000; - --bs-table-bg: #d3f3ee; - --bs-table-border-color: #a9c2be; - --bs-table-striped-bg: #c8e7e2; - --bs-table-striped-color: #000; - --bs-table-active-bg: #bedbd6; - --bs-table-active-color: #000; - --bs-table-hover-bg: #c3e1dc; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-dark { - --bs-table-color: #fff; - --bs-table-bg: #403f4c; - --bs-table-border-color: #666570; - --bs-table-striped-bg: #4a4955; - --bs-table-striped-color: #fff; - --bs-table-active-bg: #53525e; - --bs-table-active-color: #fff; - --bs-table-hover-bg: #4e4d59; - --bs-table-hover-color: #fff; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-responsive, .td-table:not(.td-initial), .td-content table:not(.td-initial), .td-box table:not(.td-initial) { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } - -@media (max-width: 575.98px) { - .table-responsive-sm { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } } - -@media (max-width: 767.98px) { - .table-responsive-md { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } } - -@media (max-width: 991.98px) { - .table-responsive-lg { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } } - -@media (max-width: 1199.98px) { - .table-responsive-xl { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } } - -@media (max-width: 1399.98px) { - .table-responsive-xxl { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } } - -.form-label { - margin-bottom: 0.5rem; } - -.col-form-label { - padding-top: calc(0.375rem + var(--bs-border-width)); - padding-bottom: calc(0.375rem + var(--bs-border-width)); - margin-bottom: 0; - font-size: inherit; - line-height: 1.5; } - -.col-form-label-lg { - padding-top: calc(0.5rem + var(--bs-border-width)); - padding-bottom: calc(0.5rem + var(--bs-border-width)); - font-size: 1.25rem; } - -.col-form-label-sm { - padding-top: calc(0.25rem + var(--bs-border-width)); - padding-bottom: calc(0.25rem + var(--bs-border-width)); - font-size: 0.875rem; } - -.form-text { - margin-top: 0.25rem; - font-size: 0.875em; - color: var(--bs-secondary-color); } - -.form-control { - display: block; - width: 100%; - padding: 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: var(--bs-body-color); - appearance: none; - background-color: var(--bs-body-bg); - background-clip: padding-box; - border: var(--bs-border-width) solid var(--bs-border-color); - border-radius: var(--bs-border-radius); - box-shadow: var(--bs-box-shadow-inset); - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-control { - transition: none; } } - .form-control[type="file"] { - overflow: hidden; } - .form-control[type="file"]:not(:disabled):not([readonly]) { - cursor: pointer; } - .form-control:focus { - color: var(--bs-body-color); - background-color: var(--bs-body-bg); - border-color: #98b1c7; - outline: 0; - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .form-control::-webkit-date-and-time-value { - min-width: 85px; - height: 1.5em; - margin: 0; } - .form-control::-webkit-datetime-edit { - display: block; - padding: 0; } - .form-control::placeholder { - color: var(--bs-secondary-color); - opacity: 1; } - .form-control:disabled { - background-color: var(--bs-secondary-bg); - opacity: 1; } - .form-control::file-selector-button { - padding: 0.375rem 0.75rem; - margin: -0.375rem -0.75rem; - margin-inline-end: 0.75rem; - color: var(--bs-body-color); - background-color: var(--bs-tertiary-bg); - background-image: var(--bs-gradient); - pointer-events: none; - border-color: inherit; - border-style: solid; - border-width: 0; - border-inline-end-width: var(--bs-border-width); - border-radius: 0; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-control::file-selector-button { - transition: none; } } - .form-control:hover:not(:disabled):not([readonly])::file-selector-button { - background-color: var(--bs-secondary-bg); } - -.form-control-plaintext { - display: block; - width: 100%; - padding: 0.375rem 0; - margin-bottom: 0; - line-height: 1.5; - color: var(--bs-body-color); - background-color: transparent; - border: solid transparent; - border-width: var(--bs-border-width) 0; } - .form-control-plaintext:focus { - outline: 0; } - .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { - padding-right: 0; - padding-left: 0; } - -.form-control-sm { - min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - border-radius: var(--bs-border-radius-sm); } - .form-control-sm::file-selector-button { - padding: 0.25rem 0.5rem; - margin: -0.25rem -0.5rem; - margin-inline-end: 0.5rem; } - -.form-control-lg { - min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); - padding: 0.5rem 1rem; - font-size: 1.25rem; - border-radius: var(--bs-border-radius-lg); } - .form-control-lg::file-selector-button { - padding: 0.5rem 1rem; - margin: -0.5rem -1rem; - margin-inline-end: 1rem; } - -textarea.form-control { - min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); } - -textarea.form-control-sm { - min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); } - -textarea.form-control-lg { - min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); } - -.form-control-color { - width: 3rem; - height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); - padding: 0.375rem; } - .form-control-color:not(:disabled):not([readonly]) { - cursor: pointer; } - .form-control-color::-moz-color-swatch { - border: 0 !important; - border-radius: var(--bs-border-radius); } - .form-control-color::-webkit-color-swatch { - border: 0 !important; - border-radius: var(--bs-border-radius); } - .form-control-color.form-control-sm { - height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); } - .form-control-color.form-control-lg { - height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); } - -.form-select { - --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); - display: block; - width: 100%; - padding: 0.375rem 2.25rem 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: var(--bs-body-color); - appearance: none; - background-color: var(--bs-body-bg); - background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none); - background-repeat: no-repeat; - background-position: right 0.75rem center; - background-size: 16px 12px; - border: var(--bs-border-width) solid var(--bs-border-color); - border-radius: var(--bs-border-radius); - box-shadow: var(--bs-box-shadow-inset); - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-select { - transition: none; } } - .form-select:focus { - border-color: #98b1c7; - outline: 0; - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .form-select[multiple], .form-select[size]:not([size="1"]) { - padding-right: 0.75rem; - background-image: none; } - .form-select:disabled { - background-color: var(--bs-secondary-bg); } - .form-select:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 var(--bs-body-color); } - -.form-select-sm { - padding-top: 0.25rem; - padding-bottom: 0.25rem; - padding-left: 0.5rem; - font-size: 0.875rem; - border-radius: var(--bs-border-radius-sm); } - -.form-select-lg { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - padding-left: 1rem; - font-size: 1.25rem; - border-radius: var(--bs-border-radius-lg); } - -[data-bs-theme="dark"] .form-select { - --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); } - -.form-check { - display: block; - min-height: 1.5rem; - padding-left: 1.5em; - margin-bottom: 0.125rem; } - .form-check .form-check-input { - float: left; - margin-left: -1.5em; } - -.form-check-reverse { - padding-right: 1.5em; - padding-left: 0; - text-align: right; } - .form-check-reverse .form-check-input { - float: right; - margin-right: -1.5em; - margin-left: 0; } - -.form-check-input { - --bs-form-check-bg: var(--bs-body-bg); - flex-shrink: 0; - width: 1em; - height: 1em; - margin-top: 0.25em; - vertical-align: top; - appearance: none; - background-color: var(--bs-form-check-bg); - background-image: var(--bs-form-check-bg-image); - background-repeat: no-repeat; - background-position: center; - background-size: contain; - border: var(--bs-border-width) solid var(--bs-border-color); - print-color-adjust: exact; } - .form-check-input[type="checkbox"] { - border-radius: 0.25em; } - .form-check-input[type="radio"] { - border-radius: 50%; } - .form-check-input:active { - filter: brightness(90%); } - .form-check-input:focus { - border-color: #98b1c7; - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .form-check-input:checked { - background-color: #30638e; - border-color: #30638e; } - .form-check-input:checked[type="checkbox"] { - --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"), var(--bs-gradient); } - .form-check-input:checked[type="radio"] { - --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"), var(--bs-gradient); } - .form-check-input[type="checkbox"]:indeterminate { - background-color: #30638e; - border-color: #30638e; - --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"), var(--bs-gradient); } - .form-check-input:disabled { - pointer-events: none; - filter: none; - opacity: 0.5; } - .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { - cursor: default; - opacity: 0.5; } - -.form-switch { - padding-left: 2.5em; } - .form-switch .form-check-input { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); - width: 2em; - margin-left: -2.5em; - background-image: var(--bs-form-switch-bg); - background-position: left center; - border-radius: 2em; - transition: background-position 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-switch .form-check-input { - transition: none; } } - .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2398b1c7'/%3e%3c/svg%3e"); } - .form-switch .form-check-input:checked { - background-position: right center; - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"), var(--bs-gradient); } - .form-switch.form-check-reverse { - padding-right: 2.5em; - padding-left: 0; } - .form-switch.form-check-reverse .form-check-input { - margin-right: -2.5em; - margin-left: 0; } - -.form-check-inline { - display: inline-block; - margin-right: 1rem; } - -.btn-check { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; } - .btn-check[disabled] + .btn, div.drawio .btn-check[disabled] + button, .td-blog .btn-check[disabled] + .td-rss-button, .btn-check:disabled + .btn, div.drawio .btn-check:disabled + button, .td-blog .btn-check:disabled + .td-rss-button { - pointer-events: none; - filter: none; - opacity: 0.65; } - -[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked):not(:focus) { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e"); } - -.form-range { - width: 100%; - height: 1.5rem; - padding: 0; - appearance: none; - background-color: transparent; } - .form-range:focus { - outline: 0; } - .form-range:focus::-webkit-slider-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .form-range:focus::-moz-range-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .form-range::-moz-focus-outer { - border: 0; } - .form-range::-webkit-slider-thumb { - width: 1rem; - height: 1rem; - margin-top: -0.25rem; - appearance: none; - background-color: #30638e; - background-image: var(--bs-gradient); - border: 0; - border-radius: 1rem; - box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-range::-webkit-slider-thumb { - transition: none; } } - .form-range::-webkit-slider-thumb:active { - background-color: #c1d0dd; - background-image: var(--bs-gradient); } - .form-range::-webkit-slider-runnable-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: var(--bs-secondary-bg); - border-color: transparent; - border-radius: 1rem; - box-shadow: var(--bs-box-shadow-inset); } - .form-range::-moz-range-thumb { - width: 1rem; - height: 1rem; - appearance: none; - background-color: #30638e; - background-image: var(--bs-gradient); - border: 0; - border-radius: 1rem; - box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-range::-moz-range-thumb { - transition: none; } } - .form-range::-moz-range-thumb:active { - background-color: #c1d0dd; - background-image: var(--bs-gradient); } - .form-range::-moz-range-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: var(--bs-secondary-bg); - border-color: transparent; - border-radius: 1rem; - box-shadow: var(--bs-box-shadow-inset); } - .form-range:disabled { - pointer-events: none; } - .form-range:disabled::-webkit-slider-thumb { - background-color: var(--bs-secondary-color); } - .form-range:disabled::-moz-range-thumb { - background-color: var(--bs-secondary-color); } - -.form-floating { - position: relative; } - .form-floating > .form-control, - .form-floating > .form-control-plaintext, - .form-floating > .form-select { - height: calc(3.5rem + calc(var(--bs-border-width) * 2)); - min-height: calc(3.5rem + calc(var(--bs-border-width) * 2)); - line-height: 1.25; } - .form-floating > label { - position: absolute; - top: 0; - left: 0; - z-index: 2; - height: 100%; - padding: 1rem 0.75rem; - overflow: hidden; - text-align: start; - text-overflow: ellipsis; - white-space: nowrap; - pointer-events: none; - border: var(--bs-border-width) solid transparent; - transform-origin: 0 0; - transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-floating > label { - transition: none; } } - .form-floating > .form-control, - .form-floating > .form-control-plaintext { - padding: 1rem 0.75rem; } - .form-floating > .form-control::placeholder, - .form-floating > .form-control-plaintext::placeholder { - color: transparent; } - .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), - .form-floating > .form-control-plaintext:focus, - .form-floating > .form-control-plaintext:not(:placeholder-shown) { - padding-top: 1.625rem; - padding-bottom: 0.625rem; } - .form-floating > .form-control:-webkit-autofill, - .form-floating > .form-control-plaintext:-webkit-autofill { - padding-top: 1.625rem; - padding-bottom: 0.625rem; } - .form-floating > .form-select { - padding-top: 1.625rem; - padding-bottom: 0.625rem; } - .form-floating > .form-control:focus ~ label, - .form-floating > .form-control:not(:placeholder-shown) ~ label, - .form-floating > .form-control-plaintext ~ label, - .form-floating > .form-select ~ label { - color: rgba(var(--bs-body-color-rgb), 0.65); - transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } - .form-floating > .form-control:focus ~ label::after, - .form-floating > .form-control:not(:placeholder-shown) ~ label::after, - .form-floating > .form-control-plaintext ~ label::after, - .form-floating > .form-select ~ label::after { - position: absolute; - inset: 1rem 0.375rem; - z-index: -1; - height: 1.5em; - content: ""; - background-color: var(--bs-body-bg); - border-radius: var(--bs-border-radius); } - .form-floating > .form-control:-webkit-autofill ~ label { - color: rgba(var(--bs-body-color-rgb), 0.65); - transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } - .form-floating > .form-control-plaintext ~ label { - border-width: var(--bs-border-width) 0; } - .form-floating > :disabled ~ label, - .form-floating > .form-control:disabled ~ label { - color: #6c757d; } - .form-floating > :disabled ~ label::after, - .form-floating > .form-control:disabled ~ label::after { - background-color: var(--bs-secondary-bg); } - -.input-group { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: stretch; - width: 100%; } - .input-group > .form-control, - .input-group > .form-select, - .input-group > .form-floating { - position: relative; - flex: 1 1 auto; - width: 1%; - min-width: 0; } - .input-group > .form-control:focus, - .input-group > .form-select:focus, - .input-group > .form-floating:focus-within { - z-index: 5; } - .input-group .btn, .input-group div.drawio button, div.drawio .input-group button, .input-group .td-blog .td-rss-button, .td-blog .input-group .td-rss-button { - position: relative; - z-index: 2; } - .input-group .btn:focus, .input-group div.drawio button:focus, div.drawio .input-group button:focus, .input-group .td-blog .td-rss-button:focus, .td-blog .input-group .td-rss-button:focus { - z-index: 5; } - -.input-group-text { - display: flex; - align-items: center; - padding: 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: var(--bs-body-color); - text-align: center; - white-space: nowrap; - background-color: var(--bs-tertiary-bg); - border: var(--bs-border-width) solid var(--bs-border-color); - border-radius: var(--bs-border-radius); } - -.input-group-lg > .form-control, -.input-group-lg > .form-select, -.input-group-lg > .input-group-text, -.input-group-lg > .btn, -div.drawio .input-group-lg > button, -.td-blog .input-group-lg > .td-rss-button { - padding: 0.5rem 1rem; - font-size: 1.25rem; - border-radius: var(--bs-border-radius-lg); } - -.input-group-sm > .form-control, -.input-group-sm > .form-select, -.input-group-sm > .input-group-text, -.input-group-sm > .btn, -div.drawio .input-group-sm > button, -.td-blog .input-group-sm > .td-rss-button { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - border-radius: var(--bs-border-radius-sm); } - -.input-group-lg > .form-select, -.input-group-sm > .form-select { - padding-right: 3rem; } - -.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), -.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3), -.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, -.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - -.input-group.has-validation > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), -.input-group.has-validation > .dropdown-toggle:nth-last-child(n + 4), -.input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-control, -.input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-select { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - -.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { - margin-left: calc(var(--bs-border-width) * -1); - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - -.input-group > .form-floating:not(:first-child) > .form-control, -.input-group > .form-floating:not(:first-child) > .form-select { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - -.valid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 0.875em; - color: var(--bs-form-valid-color); } - -.valid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - color: #fff; - background-color: var(--bs-success); - border-radius: var(--bs-border-radius); } - -.was-validated :valid ~ .valid-feedback, -.was-validated :valid ~ .valid-tooltip, -.is-valid ~ .valid-feedback, -.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .form-control:valid, .form-control.is-valid { - border-color: var(--bs-form-valid-border-color); - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233772ff' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: right calc(0.375em + 0.1875rem) center; - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-control:valid:focus, .form-control.is-valid:focus { - border-color: var(--bs-form-valid-border-color); - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } - -.was-validated textarea.form-control:valid, textarea.form-control.is-valid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } - -.was-validated .form-select:valid, .form-select.is-valid { - border-color: var(--bs-form-valid-border-color); } - .was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { - --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233772ff' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); - padding-right: 4.125rem; - background-position: right 0.75rem center, center right 2.25rem; - background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-select:valid:focus, .form-select.is-valid:focus { - border-color: var(--bs-form-valid-border-color); - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } - -.was-validated .form-control-color:valid, .form-control-color.is-valid { - width: calc(3rem + calc(1.5em + 0.75rem)); } - -.was-validated .form-check-input:valid, .form-check-input.is-valid { - border-color: var(--bs-form-valid-border-color); } - .was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { - background-color: var(--bs-form-valid-color); } - .was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { - box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } - .was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { - color: var(--bs-form-valid-color); } - -.form-check-inline .form-check-input ~ .valid-feedback { - margin-left: .5em; } - -.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, .was-validated .input-group > .form-select:not(:focus):valid, -.input-group > .form-select:not(:focus).is-valid, .was-validated .input-group > .form-floating:not(:focus-within):valid, -.input-group > .form-floating:not(:focus-within).is-valid { - z-index: 3; } - -.invalid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 0.875em; - color: var(--bs-form-invalid-color); } - -.invalid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - color: #fff; - background-color: var(--bs-danger); - border-radius: var(--bs-border-radius); } - -.was-validated :invalid ~ .invalid-feedback, -.was-validated :invalid ~ .invalid-tooltip, -.is-invalid ~ .invalid-feedback, -.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .form-control:invalid, .form-control.is-invalid { - border-color: var(--bs-form-invalid-border-color); - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ed6a5a'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ed6a5a' stroke='none'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: right calc(0.375em + 0.1875rem) center; - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { - border-color: var(--bs-form-invalid-border-color); - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } - -.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } - -.was-validated .form-select:invalid, .form-select.is-invalid { - border-color: var(--bs-form-invalid-border-color); } - .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { - --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ed6a5a'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ed6a5a' stroke='none'/%3e%3c/svg%3e"); - padding-right: 4.125rem; - background-position: right 0.75rem center, center right 2.25rem; - background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { - border-color: var(--bs-form-invalid-border-color); - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } - -.was-validated .form-control-color:invalid, .form-control-color.is-invalid { - width: calc(3rem + calc(1.5em + 0.75rem)); } - -.was-validated .form-check-input:invalid, .form-check-input.is-invalid { - border-color: var(--bs-form-invalid-border-color); } - .was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { - background-color: var(--bs-form-invalid-color); } - .was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { - box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } - .was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { - color: var(--bs-form-invalid-color); } - -.form-check-inline .form-check-input ~ .invalid-feedback { - margin-left: .5em; } - -.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, .was-validated .input-group > .form-select:not(:focus):invalid, -.input-group > .form-select:not(:focus).is-invalid, .was-validated .input-group > .form-floating:not(:focus-within):invalid, -.input-group > .form-floating:not(:focus-within).is-invalid { - z-index: 4; } - -.btn, div.drawio button, .td-blog .td-rss-button { - --bs-btn-padding-x: 0.75rem; - --bs-btn-padding-y: 0.375rem; - --bs-btn-font-family: ; - --bs-btn-font-size: 1rem; - --bs-btn-font-weight: 400; - --bs-btn-line-height: 1.5; - --bs-btn-color: var(--bs-body-color); - --bs-btn-bg: transparent; - --bs-btn-border-width: var(--bs-border-width); - --bs-btn-border-color: transparent; - --bs-btn-border-radius: var(--bs-border-radius); - --bs-btn-hover-border-color: transparent; - --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); - --bs-btn-disabled-opacity: 0.65; - --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); - display: inline-block; - padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); - font-family: var(--bs-btn-font-family); - font-size: var(--bs-btn-font-size); - font-weight: var(--bs-btn-font-weight); - line-height: var(--bs-btn-line-height); - color: var(--bs-btn-color); - text-align: center; - text-decoration: none; - vertical-align: middle; - cursor: pointer; - user-select: none; - border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); - border-radius: var(--bs-btn-border-radius); - background-color: var(--bs-btn-bg); - background-image: var(--bs-gradient); - box-shadow: var(--bs-btn-box-shadow); - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .btn, div.drawio button, .td-blog .td-rss-button { - transition: none; } } - .btn:hover, div.drawio button:hover, .td-blog .td-rss-button:hover { - color: var(--bs-btn-hover-color); - background-color: var(--bs-btn-hover-bg); - border-color: var(--bs-btn-hover-border-color); } - .btn-check + .btn:hover, div.drawio .btn-check + button:hover, .td-blog .btn-check + .td-rss-button:hover { - color: var(--bs-btn-color); - background-color: var(--bs-btn-bg); - border-color: var(--bs-btn-border-color); } - .btn:focus-visible, div.drawio button:focus-visible, .td-blog .td-rss-button:focus-visible { - color: var(--bs-btn-hover-color); - background-color: var(--bs-btn-hover-bg); - background-image: var(--bs-gradient); - border-color: var(--bs-btn-hover-border-color); - outline: 0; - box-shadow: var(--bs-btn-box-shadow), var(--bs-btn-focus-box-shadow); } - .btn-check:focus-visible + .btn, div.drawio .btn-check:focus-visible + button, .td-blog .btn-check:focus-visible + .td-rss-button { - border-color: var(--bs-btn-hover-border-color); - outline: 0; - box-shadow: var(--bs-btn-box-shadow), var(--bs-btn-focus-box-shadow); } - .btn-check:checked + .btn, div.drawio .btn-check:checked + button, .td-blog .btn-check:checked + .td-rss-button, :not(.btn-check) + .btn:active, div.drawio :not(.btn-check) + button:active, .td-blog :not(.btn-check) + .td-rss-button:active, .btn:first-child:active, div.drawio button:first-child:active, .td-blog .td-rss-button:first-child:active, .btn.active, div.drawio button.active, .td-blog .active.td-rss-button, .btn.show, div.drawio button.show, .td-blog .show.td-rss-button { - color: var(--bs-btn-active-color); - background-color: var(--bs-btn-active-bg); - background-image: none; - border-color: var(--bs-btn-active-border-color); - box-shadow: var(--bs-btn-active-shadow); } - .btn-check:checked + .btn:focus-visible, div.drawio .btn-check:checked + button:focus-visible, .td-blog .btn-check:checked + .td-rss-button:focus-visible, :not(.btn-check) + .btn:active:focus-visible, div.drawio :not(.btn-check) + button:active:focus-visible, .td-blog :not(.btn-check) + .td-rss-button:active:focus-visible, .btn:first-child:active:focus-visible, div.drawio button:first-child:active:focus-visible, .td-blog .td-rss-button:first-child:active:focus-visible, .btn.active:focus-visible, div.drawio button.active:focus-visible, .td-blog .active.td-rss-button:focus-visible, .btn.show:focus-visible, div.drawio button.show:focus-visible, .td-blog .show.td-rss-button:focus-visible { - box-shadow: var(--bs-btn-active-shadow), var(--bs-btn-focus-box-shadow); } - .btn-check:checked:focus-visible + .btn, div.drawio .btn-check:checked:focus-visible + button, .td-blog .btn-check:checked:focus-visible + .td-rss-button { - box-shadow: var(--bs-btn-active-shadow), var(--bs-btn-focus-box-shadow); } - .btn:disabled, div.drawio button:disabled, .td-blog .td-rss-button:disabled, .btn.disabled, div.drawio button.disabled, .td-blog .disabled.td-rss-button, fieldset:disabled .btn, fieldset:disabled div.drawio button, div.drawio fieldset:disabled button, fieldset:disabled .td-blog .td-rss-button, .td-blog fieldset:disabled .td-rss-button { - color: var(--bs-btn-disabled-color); - pointer-events: none; - background-color: var(--bs-btn-disabled-bg); - background-image: none; - border-color: var(--bs-btn-disabled-border-color); - opacity: var(--bs-btn-disabled-opacity); - box-shadow: none; } - -.btn-primary { - --bs-btn-color: #fff; - --bs-btn-bg: #30638e; - --bs-btn-border-color: #30638e; - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #295479; - --bs-btn-hover-border-color: #264f72; - --bs-btn-focus-shadow-rgb: 79, 122, 159; - --bs-btn-active-color: #fff; - --bs-btn-active-bg: #264f72; - --bs-btn-active-border-color: #244a6b; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #fff; - --bs-btn-disabled-bg: #30638e; - --bs-btn-disabled-border-color: #30638e; } - -.btn-secondary { - --bs-btn-color: #000; - --bs-btn-bg: #ffa630; - --bs-btn-border-color: #ffa630; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #ffb34f; - --bs-btn-hover-border-color: #ffaf45; - --bs-btn-focus-shadow-rgb: 217, 141, 41; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #ffb859; - --bs-btn-active-border-color: #ffaf45; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #ffa630; - --bs-btn-disabled-border-color: #ffa630; } - -.btn-success { - --bs-btn-color: #000; - --bs-btn-bg: #3772ff; - --bs-btn-border-color: #3772ff; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #5587ff; - --bs-btn-hover-border-color: #4b80ff; - --bs-btn-focus-shadow-rgb: 47, 97, 217; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #5f8eff; - --bs-btn-active-border-color: #4b80ff; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #3772ff; - --bs-btn-disabled-border-color: #3772ff; } - -.btn-info, .td-blog .td-rss-button { - --bs-btn-color: #000; - --bs-btn-bg: #c0e0de; - --bs-btn-border-color: #c0e0de; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #c9e5e3; - --bs-btn-hover-border-color: #c6e3e1; - --bs-btn-focus-shadow-rgb: 163, 190, 189; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #cde6e5; - --bs-btn-active-border-color: #c6e3e1; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #c0e0de; - --bs-btn-disabled-border-color: #c0e0de; } - -.btn-warning { - --bs-btn-color: #000; - --bs-btn-bg: #ed6a5a; - --bs-btn-border-color: #ed6a5a; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #f08073; - --bs-btn-hover-border-color: #ef796b; - --bs-btn-focus-shadow-rgb: 201, 90, 77; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #f1887b; - --bs-btn-active-border-color: #ef796b; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #ed6a5a; - --bs-btn-disabled-border-color: #ed6a5a; } - -.btn-danger { - --bs-btn-color: #000; - --bs-btn-bg: #ed6a5a; - --bs-btn-border-color: #ed6a5a; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #f08073; - --bs-btn-hover-border-color: #ef796b; - --bs-btn-focus-shadow-rgb: 201, 90, 77; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #f1887b; - --bs-btn-active-border-color: #ef796b; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #ed6a5a; - --bs-btn-disabled-border-color: #ed6a5a; } - -.btn-light { - --bs-btn-color: #000; - --bs-btn-bg: #d3f3ee; - --bs-btn-border-color: #d3f3ee; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #b3cfca; - --bs-btn-hover-border-color: #a9c2be; - --bs-btn-focus-shadow-rgb: 179, 207, 202; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #a9c2be; - --bs-btn-active-border-color: #9eb6b3; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #d3f3ee; - --bs-btn-disabled-border-color: #d3f3ee; } - -.btn-dark { - --bs-btn-color: #fff; - --bs-btn-bg: #403f4c; - --bs-btn-border-color: #403f4c; - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #5d5c67; - --bs-btn-hover-border-color: #53525e; - --bs-btn-focus-shadow-rgb: 93, 92, 103; - --bs-btn-active-color: #fff; - --bs-btn-active-bg: #666570; - --bs-btn-active-border-color: #53525e; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #fff; - --bs-btn-disabled-bg: #403f4c; - --bs-btn-disabled-border-color: #403f4c; } - -.btn-outline-primary, div.drawio button { - --bs-btn-color: #30638e; - --bs-btn-border-color: #30638e; - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #30638e; - --bs-btn-hover-border-color: #30638e; - --bs-btn-focus-shadow-rgb: 48, 99, 142; - --bs-btn-active-color: #fff; - --bs-btn-active-bg: #30638e; - --bs-btn-active-border-color: #30638e; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #30638e; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #30638e; - --bs-gradient: none; } - -.btn-outline-secondary { - --bs-btn-color: #ffa630; - --bs-btn-border-color: #ffa630; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #ffa630; - --bs-btn-hover-border-color: #ffa630; - --bs-btn-focus-shadow-rgb: 255, 166, 48; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #ffa630; - --bs-btn-active-border-color: #ffa630; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #ffa630; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #ffa630; - --bs-gradient: none; } - -.btn-outline-success { - --bs-btn-color: #3772ff; - --bs-btn-border-color: #3772ff; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #3772ff; - --bs-btn-hover-border-color: #3772ff; - --bs-btn-focus-shadow-rgb: 55, 114, 255; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #3772ff; - --bs-btn-active-border-color: #3772ff; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #3772ff; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #3772ff; - --bs-gradient: none; } - -.btn-outline-info { - --bs-btn-color: #c0e0de; - --bs-btn-border-color: #c0e0de; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #c0e0de; - --bs-btn-hover-border-color: #c0e0de; - --bs-btn-focus-shadow-rgb: 192, 224, 222; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #c0e0de; - --bs-btn-active-border-color: #c0e0de; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #c0e0de; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #c0e0de; - --bs-gradient: none; } - -.btn-outline-warning { - --bs-btn-color: #ed6a5a; - --bs-btn-border-color: #ed6a5a; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #ed6a5a; - --bs-btn-hover-border-color: #ed6a5a; - --bs-btn-focus-shadow-rgb: 237, 106, 90; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #ed6a5a; - --bs-btn-active-border-color: #ed6a5a; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #ed6a5a; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #ed6a5a; - --bs-gradient: none; } - -.btn-outline-danger { - --bs-btn-color: #ed6a5a; - --bs-btn-border-color: #ed6a5a; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #ed6a5a; - --bs-btn-hover-border-color: #ed6a5a; - --bs-btn-focus-shadow-rgb: 237, 106, 90; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #ed6a5a; - --bs-btn-active-border-color: #ed6a5a; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #ed6a5a; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #ed6a5a; - --bs-gradient: none; } - -.btn-outline-light { - --bs-btn-color: #d3f3ee; - --bs-btn-border-color: #d3f3ee; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #d3f3ee; - --bs-btn-hover-border-color: #d3f3ee; - --bs-btn-focus-shadow-rgb: 211, 243, 238; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #d3f3ee; - --bs-btn-active-border-color: #d3f3ee; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #d3f3ee; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #d3f3ee; - --bs-gradient: none; } - -.btn-outline-dark { - --bs-btn-color: #403f4c; - --bs-btn-border-color: #403f4c; - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #403f4c; - --bs-btn-hover-border-color: #403f4c; - --bs-btn-focus-shadow-rgb: 64, 63, 76; - --bs-btn-active-color: #fff; - --bs-btn-active-bg: #403f4c; - --bs-btn-active-border-color: #403f4c; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #403f4c; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #403f4c; - --bs-gradient: none; } - -.btn-link { - --bs-btn-font-weight: 400; - --bs-btn-color: var(--bs-link-color); - --bs-btn-bg: transparent; - --bs-btn-border-color: transparent; - --bs-btn-hover-color: var(--bs-link-hover-color); - --bs-btn-hover-border-color: transparent; - --bs-btn-active-color: var(--bs-link-hover-color); - --bs-btn-active-border-color: transparent; - --bs-btn-disabled-color: #6c757d; - --bs-btn-disabled-border-color: transparent; - --bs-btn-box-shadow: 0 0 0 #000; - --bs-btn-focus-shadow-rgb: 49, 132, 253; - text-decoration: underline; - background-image: none; } - .btn-link:focus-visible { - color: var(--bs-btn-color); } - .btn-link:hover { - color: var(--bs-btn-hover-color); } - -.btn-lg, .td-blog .td-rss-button, .btn-group-lg > .btn, div.drawio .btn-group-lg > button { - --bs-btn-padding-y: 0.5rem; - --bs-btn-padding-x: 1rem; - --bs-btn-font-size: 1.25rem; - --bs-btn-border-radius: var(--bs-border-radius-lg); } - -.btn-sm, .btn-group-sm > .btn, div.drawio .btn-group-sm > button, .td-blog .btn-group-sm > .td-rss-button { - --bs-btn-padding-y: 0.25rem; - --bs-btn-padding-x: 0.5rem; - --bs-btn-font-size: 0.875rem; - --bs-btn-border-radius: var(--bs-border-radius-sm); } - -.fade { - transition: opacity 0.15s linear; } - @media (prefers-reduced-motion: reduce) { - .fade { - transition: none; } } - .fade:not(.show) { - opacity: 0; } - -.collapse:not(.show) { - display: none; } - -.collapsing { - height: 0; - overflow: hidden; - transition: height 0.35s ease; } - @media (prefers-reduced-motion: reduce) { - .collapsing { - transition: none; } } - .collapsing.collapse-horizontal { - width: 0; - height: auto; - transition: width 0.35s ease; } - @media (prefers-reduced-motion: reduce) { - .collapsing.collapse-horizontal { - transition: none; } } -.dropup, -.dropend, -.dropdown, -.dropstart, -.dropup-center, -.dropdown-center { - position: relative; } - -.dropdown-toggle { - white-space: nowrap; } - .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid; - border-right: 0.3em solid transparent; - border-bottom: 0; - border-left: 0.3em solid transparent; } - .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropdown-menu { - --bs-dropdown-zindex: 1000; - --bs-dropdown-min-width: 10rem; - --bs-dropdown-padding-x: 0; - --bs-dropdown-padding-y: 0.5rem; - --bs-dropdown-spacer: 0.125rem; - --bs-dropdown-font-size: 1rem; - --bs-dropdown-color: var(--bs-body-color); - --bs-dropdown-bg: var(--bs-body-bg); - --bs-dropdown-border-color: var(--bs-border-color-translucent); - --bs-dropdown-border-radius: var(--bs-border-radius); - --bs-dropdown-border-width: var(--bs-border-width); - --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width)); - --bs-dropdown-divider-bg: var(--bs-border-color-translucent); - --bs-dropdown-divider-margin-y: 0.5rem; - --bs-dropdown-box-shadow: var(--bs-box-shadow); - --bs-dropdown-link-color: var(--bs-body-color); - --bs-dropdown-link-hover-color: var(--bs-body-color); - --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); - --bs-dropdown-link-active-color: #fff; - --bs-dropdown-link-active-bg: #30638e; - --bs-dropdown-link-disabled-color: var(--bs-tertiary-color); - --bs-dropdown-item-padding-x: 1rem; - --bs-dropdown-item-padding-y: 0.25rem; - --bs-dropdown-header-color: #6c757d; - --bs-dropdown-header-padding-x: 1rem; - --bs-dropdown-header-padding-y: 0.5rem; - position: absolute; - z-index: var(--bs-dropdown-zindex); - display: none; - min-width: var(--bs-dropdown-min-width); - padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); - margin: 0; - font-size: var(--bs-dropdown-font-size); - color: var(--bs-dropdown-color); - text-align: left; - list-style: none; - background-color: var(--bs-dropdown-bg); - background-clip: padding-box; - border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); - border-radius: var(--bs-dropdown-border-radius); - box-shadow: var(--bs-dropdown-box-shadow); } - .dropdown-menu[data-bs-popper] { - top: 100%; - left: 0; - margin-top: var(--bs-dropdown-spacer); } - -.dropdown-menu-start { - --bs-position: start; } - .dropdown-menu-start[data-bs-popper] { - right: auto; - left: 0; } - -.dropdown-menu-end { - --bs-position: end; } - .dropdown-menu-end[data-bs-popper] { - right: 0; - left: auto; } - -@media (min-width: 576px) { - .dropdown-menu-sm-start { - --bs-position: start; } - .dropdown-menu-sm-start[data-bs-popper] { - right: auto; - left: 0; } - .dropdown-menu-sm-end { - --bs-position: end; } - .dropdown-menu-sm-end[data-bs-popper] { - right: 0; - left: auto; } } - -@media (min-width: 768px) { - .dropdown-menu-md-start { - --bs-position: start; } - .dropdown-menu-md-start[data-bs-popper] { - right: auto; - left: 0; } - .dropdown-menu-md-end { - --bs-position: end; } - .dropdown-menu-md-end[data-bs-popper] { - right: 0; - left: auto; } } - -@media (min-width: 992px) { - .dropdown-menu-lg-start { - --bs-position: start; } - .dropdown-menu-lg-start[data-bs-popper] { - right: auto; - left: 0; } - .dropdown-menu-lg-end { - --bs-position: end; } - .dropdown-menu-lg-end[data-bs-popper] { - right: 0; - left: auto; } } - -@media (min-width: 1200px) { - .dropdown-menu-xl-start { - --bs-position: start; } - .dropdown-menu-xl-start[data-bs-popper] { - right: auto; - left: 0; } - .dropdown-menu-xl-end { - --bs-position: end; } - .dropdown-menu-xl-end[data-bs-popper] { - right: 0; - left: auto; } } - -@media (min-width: 1400px) { - .dropdown-menu-xxl-start { - --bs-position: start; } - .dropdown-menu-xxl-start[data-bs-popper] { - right: auto; - left: 0; } - .dropdown-menu-xxl-end { - --bs-position: end; } - .dropdown-menu-xxl-end[data-bs-popper] { - right: 0; - left: auto; } } - -.dropup .dropdown-menu[data-bs-popper] { - top: auto; - bottom: 100%; - margin-top: 0; - margin-bottom: var(--bs-dropdown-spacer); } - -.dropup .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0; - border-right: 0.3em solid transparent; - border-bottom: 0.3em solid; - border-left: 0.3em solid transparent; } - -.dropup .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropend .dropdown-menu[data-bs-popper] { - top: 0; - right: auto; - left: 100%; - margin-top: 0; - margin-left: var(--bs-dropdown-spacer); } - -.dropend .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0; - border-bottom: 0.3em solid transparent; - border-left: 0.3em solid; } - -.dropend .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropend .dropdown-toggle::after { - vertical-align: 0; } - -.dropstart .dropdown-menu[data-bs-popper] { - top: 0; - right: 100%; - left: auto; - margin-top: 0; - margin-right: var(--bs-dropdown-spacer); } - -.dropstart .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; } - -.dropstart .dropdown-toggle::after { - display: none; } - -.dropstart .dropdown-toggle::before { - display: inline-block; - margin-right: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0.3em solid; - border-bottom: 0.3em solid transparent; } - -.dropstart .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropstart .dropdown-toggle::before { - vertical-align: 0; } - -.dropdown-divider { - height: 0; - margin: var(--bs-dropdown-divider-margin-y) 0; - overflow: hidden; - border-top: 1px solid var(--bs-dropdown-divider-bg); - opacity: 1; } - -.dropdown-item { - display: block; - width: 100%; - padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); - clear: both; - font-weight: 400; - color: var(--bs-dropdown-link-color); - text-align: inherit; - text-decoration: none; - white-space: nowrap; - background-color: transparent; - border: 0; - border-radius: var(--bs-dropdown-item-border-radius, 0); } - .dropdown-item:hover, .dropdown-item:focus { - color: var(--bs-dropdown-link-hover-color); - background-color: var(--bs-dropdown-link-hover-bg); - background-image: var(--bs-gradient); } - .dropdown-item.active, .dropdown-item:active { - color: var(--bs-dropdown-link-active-color); - text-decoration: none; - background-color: var(--bs-dropdown-link-active-bg); - background-image: var(--bs-gradient); } - .dropdown-item.disabled, .dropdown-item:disabled { - color: var(--bs-dropdown-link-disabled-color); - pointer-events: none; - background-color: transparent; - background-image: none; } - -.dropdown-menu.show { - display: block; } - -.dropdown-header { - display: block; - padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); - margin-bottom: 0; - font-size: 0.875rem; - color: var(--bs-dropdown-header-color); - white-space: nowrap; } - -.dropdown-item-text { - display: block; - padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); - color: var(--bs-dropdown-link-color); } - -.dropdown-menu-dark { - --bs-dropdown-color: #dee2e6; - --bs-dropdown-bg: #343a40; - --bs-dropdown-border-color: var(--bs-border-color-translucent); - --bs-dropdown-box-shadow: ; - --bs-dropdown-link-color: #dee2e6; - --bs-dropdown-link-hover-color: #fff; - --bs-dropdown-divider-bg: var(--bs-border-color-translucent); - --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); - --bs-dropdown-link-active-color: #fff; - --bs-dropdown-link-active-bg: #30638e; - --bs-dropdown-link-disabled-color: #adb5bd; - --bs-dropdown-header-color: #adb5bd; } - -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-flex; - vertical-align: middle; } - .btn-group > .btn, div.drawio .btn-group > button, .td-blog .btn-group > .td-rss-button, - .btn-group-vertical > .btn, - div.drawio .btn-group-vertical > button, - .td-blog .btn-group-vertical > .td-rss-button { - position: relative; - flex: 1 1 auto; } - .btn-group > .btn-check:checked + .btn, div.drawio .btn-group > .btn-check:checked + button, .td-blog .btn-group > .btn-check:checked + .td-rss-button, - .btn-group > .btn-check:focus + .btn, - div.drawio .btn-group > .btn-check:focus + button, - .td-blog .btn-group > .btn-check:focus + .td-rss-button, - .btn-group > .btn:hover, - div.drawio .btn-group > button:hover, - .td-blog .btn-group > .td-rss-button:hover, - .btn-group > .btn:focus, - div.drawio .btn-group > button:focus, - .td-blog .btn-group > .td-rss-button:focus, - .btn-group > .btn:active, - div.drawio .btn-group > button:active, - .td-blog .btn-group > .td-rss-button:active, - .btn-group > .btn.active, - div.drawio .btn-group > button.active, - .td-blog .btn-group > .active.td-rss-button, - .btn-group-vertical > .btn-check:checked + .btn, - div.drawio .btn-group-vertical > .btn-check:checked + button, - .td-blog .btn-group-vertical > .btn-check:checked + .td-rss-button, - .btn-group-vertical > .btn-check:focus + .btn, - div.drawio .btn-group-vertical > .btn-check:focus + button, - .td-blog .btn-group-vertical > .btn-check:focus + .td-rss-button, - .btn-group-vertical > .btn:hover, - div.drawio .btn-group-vertical > button:hover, - .td-blog .btn-group-vertical > .td-rss-button:hover, - .btn-group-vertical > .btn:focus, - div.drawio .btn-group-vertical > button:focus, - .td-blog .btn-group-vertical > .td-rss-button:focus, - .btn-group-vertical > .btn:active, - div.drawio .btn-group-vertical > button:active, - .td-blog .btn-group-vertical > .td-rss-button:active, - .btn-group-vertical > .btn.active, - div.drawio .btn-group-vertical > button.active, - .td-blog .btn-group-vertical > .active.td-rss-button { - z-index: 1; } - -.btn-toolbar { - display: flex; - flex-wrap: wrap; - justify-content: flex-start; } - .btn-toolbar .input-group { - width: auto; } - -.btn-group { - border-radius: var(--bs-border-radius); } - .btn-group > :not(.btn-check:first-child) + .btn, div.drawio .btn-group > :not(.btn-check:first-child) + button, .td-blog .btn-group > :not(.btn-check:first-child) + .td-rss-button, - .btn-group > .btn-group:not(:first-child) { - margin-left: calc(var(--bs-border-width) * -1); } - .btn-group > .btn:not(:last-child):not(.dropdown-toggle), div.drawio .btn-group > button:not(:last-child):not(.dropdown-toggle), .td-blog .btn-group > .td-rss-button:not(:last-child):not(.dropdown-toggle), - .btn-group > .btn.dropdown-toggle-split:first-child, - div.drawio .btn-group > button.dropdown-toggle-split:first-child, - .td-blog .btn-group > .dropdown-toggle-split.td-rss-button:first-child, - .btn-group > .btn-group:not(:last-child) > .btn, - div.drawio .btn-group > .btn-group:not(:last-child) > button, - .td-blog .btn-group > .btn-group:not(:last-child) > .td-rss-button { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .btn-group > .btn:nth-child(n + 3), div.drawio .btn-group > button:nth-child(n + 3), .td-blog .btn-group > .td-rss-button:nth-child(n + 3), - .btn-group > :not(.btn-check) + .btn, - div.drawio .btn-group > :not(.btn-check) + button, - .td-blog .btn-group > :not(.btn-check) + .td-rss-button, - .btn-group > .btn-group:not(:first-child) > .btn, - div.drawio .btn-group > .btn-group:not(:first-child) > button, - .td-blog .btn-group > .btn-group:not(:first-child) > .td-rss-button { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - -.dropdown-toggle-split { - padding-right: 0.5625rem; - padding-left: 0.5625rem; } - .dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { - margin-left: 0; } - .dropstart .dropdown-toggle-split::before { - margin-right: 0; } - -.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split, div.drawio .btn-group-sm > button + .dropdown-toggle-split, .td-blog .btn-group-sm > .td-rss-button + .dropdown-toggle-split { - padding-right: 0.375rem; - padding-left: 0.375rem; } - -.btn-lg + .dropdown-toggle-split, .td-blog .td-rss-button + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split, div.drawio .btn-group-lg > button + .dropdown-toggle-split, .td-blog .btn-group-lg > .td-rss-button + .dropdown-toggle-split { - padding-right: 0.75rem; - padding-left: 0.75rem; } - -.btn-group.show .dropdown-toggle { - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } - .btn-group.show .dropdown-toggle.btn-link { - box-shadow: none; } - -.btn-group-vertical { - flex-direction: column; - align-items: flex-start; - justify-content: center; } - .btn-group-vertical > .btn, div.drawio .btn-group-vertical > button, .td-blog .btn-group-vertical > .td-rss-button, - .btn-group-vertical > .btn-group { - width: 100%; } - .btn-group-vertical > .btn:not(:first-child), div.drawio .btn-group-vertical > button:not(:first-child), .td-blog .btn-group-vertical > .td-rss-button:not(:first-child), - .btn-group-vertical > .btn-group:not(:first-child) { - margin-top: calc(var(--bs-border-width) * -1); } - .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), div.drawio .btn-group-vertical > button:not(:last-child):not(.dropdown-toggle), .td-blog .btn-group-vertical > .td-rss-button:not(:last-child):not(.dropdown-toggle), - .btn-group-vertical > .btn-group:not(:last-child) > .btn, - div.drawio .btn-group-vertical > .btn-group:not(:last-child) > button, - .td-blog .btn-group-vertical > .btn-group:not(:last-child) > .td-rss-button { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - .btn-group-vertical > .btn ~ .btn, div.drawio .btn-group-vertical > button ~ .btn, div.drawio .btn-group-vertical > .btn ~ button, div.drawio .btn-group-vertical > button ~ button, .td-blog .btn-group-vertical > .td-rss-button ~ .btn, .td-blog div.drawio .btn-group-vertical > .td-rss-button ~ button, div.drawio .td-blog .btn-group-vertical > .td-rss-button ~ button, .td-blog .btn-group-vertical > .btn ~ .td-rss-button, .td-blog div.drawio .btn-group-vertical > button ~ .td-rss-button, div.drawio .td-blog .btn-group-vertical > button ~ .td-rss-button, .td-blog .btn-group-vertical > .td-rss-button ~ .td-rss-button, - .btn-group-vertical > .btn-group:not(:first-child) > .btn, - div.drawio .btn-group-vertical > .btn-group:not(:first-child) > button, - .td-blog .btn-group-vertical > .btn-group:not(:first-child) > .td-rss-button { - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.nav { - --bs-nav-link-padding-x: 1rem; - --bs-nav-link-padding-y: 0.5rem; - --bs-nav-link-font-weight: ; - --bs-nav-link-color: var(--bs-link-color); - --bs-nav-link-hover-color: var(--bs-link-hover-color); - --bs-nav-link-disabled-color: var(--bs-secondary-color); - display: flex; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none; } - -.nav-link { - display: block; - padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); - font-size: var(--bs-nav-link-font-size); - font-weight: var(--bs-nav-link-font-weight); - color: var(--bs-nav-link-color); - text-decoration: none; - background: none; - border: 0; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .nav-link { - transition: none; } } - .nav-link:hover, .nav-link:focus { - color: var(--bs-nav-link-hover-color); } - .nav-link:focus-visible { - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .nav-link.disabled, .nav-link:disabled { - color: var(--bs-nav-link-disabled-color); - pointer-events: none; - cursor: default; } - -.nav-tabs { - --bs-nav-tabs-border-width: var(--bs-border-width); - --bs-nav-tabs-border-color: var(--bs-border-color); - --bs-nav-tabs-border-radius: var(--bs-border-radius); - --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color); - --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); - --bs-nav-tabs-link-active-bg: var(--bs-body-bg); - --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); - border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); } - .nav-tabs .nav-link { - margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); - border: var(--bs-nav-tabs-border-width) solid transparent; - border-top-left-radius: var(--bs-nav-tabs-border-radius); - border-top-right-radius: var(--bs-nav-tabs-border-radius); } - .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { - isolation: isolate; - border-color: var(--bs-nav-tabs-link-hover-border-color); } - .nav-tabs .nav-link.active, - .nav-tabs .nav-item.show .nav-link { - color: var(--bs-nav-tabs-link-active-color); - background-color: var(--bs-nav-tabs-link-active-bg); - border-color: var(--bs-nav-tabs-link-active-border-color); } - .nav-tabs .dropdown-menu { - margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.nav-pills { - --bs-nav-pills-border-radius: var(--bs-border-radius); - --bs-nav-pills-link-active-color: #fff; - --bs-nav-pills-link-active-bg: #30638e; } - .nav-pills .nav-link { - border-radius: var(--bs-nav-pills-border-radius); } - .nav-pills .nav-link.active, - .nav-pills .show > .nav-link { - color: var(--bs-nav-pills-link-active-color); - background-color: var(--bs-nav-pills-link-active-bg); - background-image: var(--bs-gradient); } - -.nav-underline { - --bs-nav-underline-gap: 1rem; - --bs-nav-underline-border-width: 0.125rem; - --bs-nav-underline-link-active-color: var(--bs-emphasis-color); - gap: var(--bs-nav-underline-gap); } - .nav-underline .nav-link { - padding-right: 0; - padding-left: 0; - border-bottom: var(--bs-nav-underline-border-width) solid transparent; } - .nav-underline .nav-link:hover, .nav-underline .nav-link:focus { - border-bottom-color: currentcolor; } - .nav-underline .nav-link.active, - .nav-underline .show > .nav-link { - font-weight: 700; - color: var(--bs-nav-underline-link-active-color); - border-bottom-color: currentcolor; } - -.nav-fill > .nav-link, -.nav-fill .nav-item { - flex: 1 1 auto; - text-align: center; } - -.nav-justified > .nav-link, -.nav-justified .nav-item { - flex-basis: 0; - flex-grow: 1; - text-align: center; } - -.nav-fill .nav-item .nav-link, -.nav-justified .nav-item .nav-link { - width: 100%; } - -.tab-content > .tab-pane { - display: none; } - -.tab-content > .active { - display: block; } - -.navbar, .td-navbar { - --bs-navbar-padding-x: 0; - --bs-navbar-padding-y: 0.5rem; - --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65); - --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8); - --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3); - --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1); - --bs-navbar-brand-padding-y: 0.3125rem; - --bs-navbar-brand-margin-end: 1rem; - --bs-navbar-brand-font-size: 1.25rem; - --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1); - --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1); - --bs-navbar-nav-link-padding-x: 0.5rem; - --bs-navbar-toggler-padding-y: 0.25rem; - --bs-navbar-toggler-padding-x: 0.75rem; - --bs-navbar-toggler-font-size: 1.25rem; - --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); - --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15); - --bs-navbar-toggler-border-radius: var(--bs-border-radius); - --bs-navbar-toggler-focus-width: 0.25rem; - --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; - position: relative; - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); - background-image: var(--bs-gradient); } - .navbar > .container, .td-navbar > .container, - .navbar > .container-fluid, - .td-navbar > .container-fluid, - .navbar > .container-sm, - .td-navbar > .container-sm, - .navbar > .container-md, - .td-navbar > .container-md, - .navbar > .container-lg, - .td-navbar > .container-lg, - .navbar > .container-xl, - .td-navbar > .container-xl, - .navbar > .container-xxl, - .td-navbar > .container-xxl { - display: flex; - flex-wrap: inherit; - align-items: center; - justify-content: space-between; } - -.navbar-brand { - padding-top: var(--bs-navbar-brand-padding-y); - padding-bottom: var(--bs-navbar-brand-padding-y); - margin-right: var(--bs-navbar-brand-margin-end); - font-size: var(--bs-navbar-brand-font-size); - color: var(--bs-navbar-brand-color); - text-decoration: none; - white-space: nowrap; } - .navbar-brand:hover, .navbar-brand:focus { - color: var(--bs-navbar-brand-hover-color); } - -.navbar-nav { - --bs-nav-link-padding-x: 0; - --bs-nav-link-padding-y: 0.5rem; - --bs-nav-link-font-weight: ; - --bs-nav-link-color: var(--bs-navbar-color); - --bs-nav-link-hover-color: var(--bs-navbar-hover-color); - --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - list-style: none; } - .navbar-nav .nav-link.active, .navbar-nav .nav-link.show { - color: var(--bs-navbar-active-color); } - .navbar-nav .dropdown-menu { - position: static; } - -.navbar-text { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - color: var(--bs-navbar-color); } - .navbar-text a, - .navbar-text a:hover, - .navbar-text a:focus { - color: var(--bs-navbar-active-color); } - -.navbar-collapse { - flex-basis: 100%; - flex-grow: 1; - align-items: center; } - -.navbar-toggler { - padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); - font-size: var(--bs-navbar-toggler-font-size); - line-height: 1; - color: var(--bs-navbar-color); - background-color: transparent; - border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); - border-radius: var(--bs-navbar-toggler-border-radius); - transition: var(--bs-navbar-toggler-transition); } - @media (prefers-reduced-motion: reduce) { - .navbar-toggler { - transition: none; } } - .navbar-toggler:hover { - text-decoration: none; } - .navbar-toggler:focus { - text-decoration: none; - outline: 0; - box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); } - -.navbar-toggler-icon { - display: inline-block; - width: 1.5em; - height: 1.5em; - vertical-align: middle; - background-image: var(--bs-navbar-toggler-icon-bg); - background-repeat: no-repeat; - background-position: center; - background-size: 100%; } - -.navbar-nav-scroll { - max-height: var(--bs-scroll-height, 75vh); - overflow-y: auto; } - -@media (min-width: 576px) { - .navbar-expand-sm { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand-sm .navbar-nav { - flex-direction: row; } - .navbar-expand-sm .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-sm .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand-sm .navbar-nav-scroll { - overflow: visible; } - .navbar-expand-sm .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-sm .navbar-toggler { - display: none; } - .navbar-expand-sm .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand-sm .offcanvas .offcanvas-header { - display: none; } - .navbar-expand-sm .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } } - -@media (min-width: 768px) { - .navbar-expand-md { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand-md .navbar-nav { - flex-direction: row; } - .navbar-expand-md .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-md .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand-md .navbar-nav-scroll { - overflow: visible; } - .navbar-expand-md .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-md .navbar-toggler { - display: none; } - .navbar-expand-md .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand-md .offcanvas .offcanvas-header { - display: none; } - .navbar-expand-md .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } } - -@media (min-width: 992px) { - .navbar-expand-lg { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand-lg .navbar-nav { - flex-direction: row; } - .navbar-expand-lg .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-lg .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand-lg .navbar-nav-scroll { - overflow: visible; } - .navbar-expand-lg .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-lg .navbar-toggler { - display: none; } - .navbar-expand-lg .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand-lg .offcanvas .offcanvas-header { - display: none; } - .navbar-expand-lg .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } } - -@media (min-width: 1200px) { - .navbar-expand-xl { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand-xl .navbar-nav { - flex-direction: row; } - .navbar-expand-xl .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-xl .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand-xl .navbar-nav-scroll { - overflow: visible; } - .navbar-expand-xl .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-xl .navbar-toggler { - display: none; } - .navbar-expand-xl .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand-xl .offcanvas .offcanvas-header { - display: none; } - .navbar-expand-xl .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } } - -@media (min-width: 1400px) { - .navbar-expand-xxl { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand-xxl .navbar-nav { - flex-direction: row; } - .navbar-expand-xxl .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-xxl .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand-xxl .navbar-nav-scroll { - overflow: visible; } - .navbar-expand-xxl .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-xxl .navbar-toggler { - display: none; } - .navbar-expand-xxl .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand-xxl .offcanvas .offcanvas-header { - display: none; } - .navbar-expand-xxl .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } } - -.navbar-expand, .td-navbar { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand .navbar-nav, .td-navbar .navbar-nav { - flex-direction: row; } - .navbar-expand .navbar-nav .dropdown-menu, .td-navbar .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand .navbar-nav .nav-link, .td-navbar .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand .navbar-nav-scroll, .td-navbar .navbar-nav-scroll { - overflow: visible; } - .navbar-expand .navbar-collapse, .td-navbar .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand .navbar-toggler, .td-navbar .navbar-toggler { - display: none; } - .navbar-expand .offcanvas, .td-navbar .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand .offcanvas .offcanvas-header, .td-navbar .offcanvas .offcanvas-header { - display: none; } - .navbar-expand .offcanvas .offcanvas-body, .td-navbar .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } - -.navbar-dark, -.navbar[data-bs-theme="dark"], -[data-bs-theme="dark"].td-navbar { - --bs-navbar-color: rgba(255, 255, 255, 0.55); - --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); - --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); - --bs-navbar-active-color: #fff; - --bs-navbar-brand-color: #fff; - --bs-navbar-brand-hover-color: #fff; - --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); - --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } - -[data-bs-theme="dark"] .navbar-toggler-icon { - --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } - -.card { - --bs-card-spacer-y: 1rem; - --bs-card-spacer-x: 1rem; - --bs-card-title-spacer-y: 0.5rem; - --bs-card-title-color: ; - --bs-card-subtitle-color: ; - --bs-card-border-width: var(--bs-border-width); - --bs-card-border-color: var(--bs-border-color-translucent); - --bs-card-border-radius: var(--bs-border-radius); - --bs-card-box-shadow: ; - --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); - --bs-card-cap-padding-y: 0.5rem; - --bs-card-cap-padding-x: 1rem; - --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03); - --bs-card-cap-color: ; - --bs-card-height: ; - --bs-card-color: ; - --bs-card-bg: var(--bs-body-bg); - --bs-card-img-overlay-padding: 1rem; - --bs-card-group-margin: 0.75rem; - position: relative; - display: flex; - flex-direction: column; - min-width: 0; - height: var(--bs-card-height); - color: var(--bs-body-color); - word-wrap: break-word; - background-color: var(--bs-card-bg); - background-clip: border-box; - border: var(--bs-card-border-width) solid var(--bs-card-border-color); - border-radius: var(--bs-card-border-radius); - box-shadow: var(--bs-card-box-shadow); } - .card > hr { - margin-right: 0; - margin-left: 0; } - .card > .list-group { - border-top: inherit; - border-bottom: inherit; } - .card > .list-group:first-child { - border-top-width: 0; - border-top-left-radius: var(--bs-card-inner-border-radius); - border-top-right-radius: var(--bs-card-inner-border-radius); } - .card > .list-group:last-child { - border-bottom-width: 0; - border-bottom-right-radius: var(--bs-card-inner-border-radius); - border-bottom-left-radius: var(--bs-card-inner-border-radius); } - .card > .card-header + .list-group, - .card > .list-group + .card-footer { - border-top: 0; } - -.card-body { - flex: 1 1 auto; - padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); - color: var(--bs-card-color); } - -.card-title { - margin-bottom: var(--bs-card-title-spacer-y); - color: var(--bs-card-title-color); } - -.card-subtitle { - margin-top: calc(-.5 * var(--bs-card-title-spacer-y)); - margin-bottom: 0; - color: var(--bs-card-subtitle-color); } - -.card-text:last-child { - margin-bottom: 0; } - -.card-link + .card-link { - margin-left: var(--bs-card-spacer-x); } - -.card-header { - padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); - margin-bottom: 0; - color: var(--bs-card-cap-color); - background-color: var(--bs-card-cap-bg); - border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); } - .card-header:first-child { - border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; } - -.card-footer { - padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); - color: var(--bs-card-cap-color); - background-color: var(--bs-card-cap-bg); - border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); } - .card-footer:last-child { - border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); } - -.card-header-tabs { - margin-right: calc(-.5 * var(--bs-card-cap-padding-x)); - margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); - margin-left: calc(-.5 * var(--bs-card-cap-padding-x)); - border-bottom: 0; } - .card-header-tabs .nav-link.active { - background-color: var(--bs-card-bg); - border-bottom-color: var(--bs-card-bg); } - -.card-header-pills { - margin-right: calc(-.5 * var(--bs-card-cap-padding-x)); - margin-left: calc(-.5 * var(--bs-card-cap-padding-x)); } - -.card-img-overlay { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: var(--bs-card-img-overlay-padding); - border-radius: var(--bs-card-inner-border-radius); } - -.card-img, -.card-img-top, -.card-img-bottom { - width: 100%; } - -.card-img, -.card-img-top { - border-top-left-radius: var(--bs-card-inner-border-radius); - border-top-right-radius: var(--bs-card-inner-border-radius); } - -.card-img, -.card-img-bottom { - border-bottom-right-radius: var(--bs-card-inner-border-radius); - border-bottom-left-radius: var(--bs-card-inner-border-radius); } - -.card-group > .card { - margin-bottom: var(--bs-card-group-margin); } - -@media (min-width: 576px) { - .card-group { - display: flex; - flex-flow: row wrap; } - .card-group > .card { - flex: 1 0 0%; - margin-bottom: 0; } - .card-group > .card + .card { - margin-left: 0; - border-left: 0; } - .card-group > .card:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .card-group > .card:not(:last-child) .card-img-top, - .card-group > .card:not(:last-child) .card-header { - border-top-right-radius: 0; } - .card-group > .card:not(:last-child) .card-img-bottom, - .card-group > .card:not(:last-child) .card-footer { - border-bottom-right-radius: 0; } - .card-group > .card:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .card-group > .card:not(:first-child) .card-img-top, - .card-group > .card:not(:first-child) .card-header { - border-top-left-radius: 0; } - .card-group > .card:not(:first-child) .card-img-bottom, - .card-group > .card:not(:first-child) .card-footer { - border-bottom-left-radius: 0; } } - -.accordion { - --bs-accordion-color: var(--bs-body-color); - --bs-accordion-bg: var(--bs-body-bg); - --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; - --bs-accordion-border-color: var(--bs-border-color); - --bs-accordion-border-width: var(--bs-border-width); - --bs-accordion-border-radius: var(--bs-border-radius); - --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); - --bs-accordion-btn-padding-x: 1.25rem; - --bs-accordion-btn-padding-y: 1rem; - --bs-accordion-btn-color: var(--bs-body-color); - --bs-accordion-btn-bg: var(--bs-accordion-bg); - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); - --bs-accordion-btn-icon-width: 1.25rem; - --bs-accordion-btn-icon-transform: rotate(-180deg); - --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23132839' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); - --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(48, 99, 142, 0.25); - --bs-accordion-body-padding-x: 1.25rem; - --bs-accordion-body-padding-y: 1rem; - --bs-accordion-active-color: var(--bs-primary-text-emphasis); - --bs-accordion-active-bg: var(--bs-primary-bg-subtle); } - -.accordion-button { - position: relative; - display: flex; - align-items: center; - width: 100%; - padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); - font-size: 1rem; - color: var(--bs-accordion-btn-color); - text-align: left; - background-color: var(--bs-accordion-btn-bg); - border: 0; - border-radius: 0; - overflow-anchor: none; - transition: var(--bs-accordion-transition); } - @media (prefers-reduced-motion: reduce) { - .accordion-button { - transition: none; } } - .accordion-button:not(.collapsed) { - color: var(--bs-accordion-active-color); - background-color: var(--bs-accordion-active-bg); - box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); } - .accordion-button:not(.collapsed)::after { - background-image: var(--bs-accordion-btn-active-icon); - transform: var(--bs-accordion-btn-icon-transform); } - .accordion-button::after { - flex-shrink: 0; - width: var(--bs-accordion-btn-icon-width); - height: var(--bs-accordion-btn-icon-width); - margin-left: auto; - content: ""; - background-image: var(--bs-accordion-btn-icon); - background-repeat: no-repeat; - background-size: var(--bs-accordion-btn-icon-width); - transition: var(--bs-accordion-btn-icon-transition); } - @media (prefers-reduced-motion: reduce) { - .accordion-button::after { - transition: none; } } - .accordion-button:hover { - z-index: 2; } - .accordion-button:focus { - z-index: 3; - outline: 0; - box-shadow: var(--bs-accordion-btn-focus-box-shadow); } - -.accordion-header { - margin-bottom: 0; } - -.accordion-item { - color: var(--bs-accordion-color); - background-color: var(--bs-accordion-bg); - border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); } - .accordion-item:first-of-type { - border-top-left-radius: var(--bs-accordion-border-radius); - border-top-right-radius: var(--bs-accordion-border-radius); } - .accordion-item:first-of-type > .accordion-header .accordion-button { - border-top-left-radius: var(--bs-accordion-inner-border-radius); - border-top-right-radius: var(--bs-accordion-inner-border-radius); } - .accordion-item:not(:first-of-type) { - border-top: 0; } - .accordion-item:last-of-type { - border-bottom-right-radius: var(--bs-accordion-border-radius); - border-bottom-left-radius: var(--bs-accordion-border-radius); } - .accordion-item:last-of-type > .accordion-header .accordion-button.collapsed { - border-bottom-right-radius: var(--bs-accordion-inner-border-radius); - border-bottom-left-radius: var(--bs-accordion-inner-border-radius); } - .accordion-item:last-of-type > .accordion-collapse { - border-bottom-right-radius: var(--bs-accordion-border-radius); - border-bottom-left-radius: var(--bs-accordion-border-radius); } - -.accordion-body { - padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); } - -.accordion-flush > .accordion-item { - border-right: 0; - border-left: 0; - border-radius: 0; } - .accordion-flush > .accordion-item:first-child { - border-top: 0; } - .accordion-flush > .accordion-item:last-child { - border-bottom: 0; } - .accordion-flush > .accordion-item > .accordion-header .accordion-button, .accordion-flush > .accordion-item > .accordion-header .accordion-button.collapsed { - border-radius: 0; } - .accordion-flush > .accordion-item > .accordion-collapse { - border-radius: 0; } - -[data-bs-theme="dark"] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2383a1bb'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2383a1bb'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } - -.breadcrumb { - --bs-breadcrumb-padding-x: 0; - --bs-breadcrumb-padding-y: 0; - --bs-breadcrumb-margin-bottom: 1rem; - --bs-breadcrumb-bg: ; - --bs-breadcrumb-border-radius: ; - --bs-breadcrumb-divider-color: var(--bs-secondary-color); - --bs-breadcrumb-item-padding-x: 0.5rem; - --bs-breadcrumb-item-active-color: var(--bs-secondary-color); - display: flex; - flex-wrap: wrap; - padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); - margin-bottom: var(--bs-breadcrumb-margin-bottom); - font-size: var(--bs-breadcrumb-font-size); - list-style: none; - background-color: var(--bs-breadcrumb-bg); - border-radius: var(--bs-breadcrumb-border-radius); } - -.breadcrumb-item + .breadcrumb-item { - padding-left: var(--bs-breadcrumb-item-padding-x); } - .breadcrumb-item + .breadcrumb-item::before { - float: left; - padding-right: var(--bs-breadcrumb-item-padding-x); - color: var(--bs-breadcrumb-divider-color); - content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; } - -.breadcrumb-item.active { - color: var(--bs-breadcrumb-item-active-color); } - -.pagination { - --bs-pagination-padding-x: 0.75rem; - --bs-pagination-padding-y: 0.375rem; - --bs-pagination-font-size: 1rem; - --bs-pagination-color: #6c757d; - --bs-pagination-bg: var(--bs-body-bg); - --bs-pagination-border-width: var(--bs-border-width); - --bs-pagination-border-color: var(--bs-border-color); - --bs-pagination-border-radius: var(--bs-border-radius); - --bs-pagination-hover-color: var(--bs-link-hover-color); - --bs-pagination-hover-bg: var(--bs-tertiary-bg); - --bs-pagination-hover-border-color: var(--bs-border-color); - --bs-pagination-focus-color: var(--bs-link-hover-color); - --bs-pagination-focus-bg: var(--bs-secondary-bg); - --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(48, 99, 142, 0.25); - --bs-pagination-active-color: #fff; - --bs-pagination-active-bg: #30638e; - --bs-pagination-active-border-color: #30638e; - --bs-pagination-disabled-color: #dee2e6; - --bs-pagination-disabled-bg: var(--bs-secondary-bg); - --bs-pagination-disabled-border-color: var(--bs-border-color); - display: flex; - padding-left: 0; - list-style: none; } - -.page-link { - position: relative; - display: block; - padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); - font-size: var(--bs-pagination-font-size); - color: var(--bs-pagination-color); - text-decoration: none; - background-color: var(--bs-pagination-bg); - border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .page-link { - transition: none; } } - .page-link:hover { - z-index: 2; - color: var(--bs-pagination-hover-color); - background-color: var(--bs-pagination-hover-bg); - border-color: var(--bs-pagination-hover-border-color); } - .page-link:focus { - z-index: 3; - color: var(--bs-pagination-focus-color); - background-color: var(--bs-pagination-focus-bg); - outline: 0; - box-shadow: var(--bs-pagination-focus-box-shadow); } - .page-link.active, .active > .page-link { - z-index: 3; - color: var(--bs-pagination-active-color); - background-color: var(--bs-pagination-active-bg); - background-image: var(--bs-gradient); - border-color: var(--bs-pagination-active-border-color); } - .page-link.disabled, .disabled > .page-link { - color: var(--bs-pagination-disabled-color); - pointer-events: none; - background-color: var(--bs-pagination-disabled-bg); - border-color: var(--bs-pagination-disabled-border-color); } - -.page-item:not(:first-child) .page-link { - margin-left: calc(var(--bs-border-width) * -1); } - -.page-item:first-child .page-link { - border-top-left-radius: var(--bs-pagination-border-radius); - border-bottom-left-radius: var(--bs-pagination-border-radius); } - -.page-item:last-child .page-link { - border-top-right-radius: var(--bs-pagination-border-radius); - border-bottom-right-radius: var(--bs-pagination-border-radius); } - -.pagination-lg { - --bs-pagination-padding-x: 1.5rem; - --bs-pagination-padding-y: 0.75rem; - --bs-pagination-font-size: 1.25rem; - --bs-pagination-border-radius: var(--bs-border-radius-lg); } - -.pagination-sm { - --bs-pagination-padding-x: 0.5rem; - --bs-pagination-padding-y: 0.25rem; - --bs-pagination-font-size: 0.875rem; - --bs-pagination-border-radius: var(--bs-border-radius-sm); } - -.badge { - --bs-badge-padding-x: 0.65em; - --bs-badge-padding-y: 0.35em; - --bs-badge-font-size: 0.75em; - --bs-badge-font-weight: 700; - --bs-badge-color: #fff; - --bs-badge-border-radius: var(--bs-border-radius); - display: inline-block; - padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); - font-size: var(--bs-badge-font-size); - font-weight: var(--bs-badge-font-weight); - line-height: 1; - color: var(--bs-badge-color); - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: var(--bs-badge-border-radius); - background-image: var(--bs-gradient); } - .badge:empty { - display: none; } - -.btn .badge, div.drawio button .badge, .td-blog .td-rss-button .badge { - position: relative; - top: -1px; } - -.alert { - --bs-alert-bg: transparent; - --bs-alert-padding-x: 1rem; - --bs-alert-padding-y: 1rem; - --bs-alert-margin-bottom: 1rem; - --bs-alert-color: inherit; - --bs-alert-border-color: transparent; - --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color); - --bs-alert-border-radius: var(--bs-border-radius); - --bs-alert-link-color: inherit; - position: relative; - padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); - margin-bottom: var(--bs-alert-margin-bottom); - color: var(--bs-alert-color); - background-color: var(--bs-alert-bg); - border: var(--bs-alert-border); - border-radius: var(--bs-alert-border-radius); } - -.alert-heading { - color: inherit; } - -.alert-link { - font-weight: 700; - color: var(--bs-alert-link-color); } - -.alert-dismissible { - padding-right: 3rem; } - .alert-dismissible .btn-close { - position: absolute; - top: 0; - right: 0; - z-index: 2; - padding: 1.25rem 1rem; } - -.alert-primary, .pageinfo-primary { - --bs-alert-color: var(--bs-primary-text-emphasis); - --bs-alert-bg: var(--bs-primary-bg-subtle); - --bs-alert-border-color: var(--bs-primary-border-subtle); - --bs-alert-link-color: var(--bs-primary-text-emphasis); } - -.alert-secondary, .pageinfo-secondary { - --bs-alert-color: var(--bs-secondary-text-emphasis); - --bs-alert-bg: var(--bs-secondary-bg-subtle); - --bs-alert-border-color: var(--bs-secondary-border-subtle); - --bs-alert-link-color: var(--bs-secondary-text-emphasis); } - -.alert-success, .pageinfo-success { - --bs-alert-color: var(--bs-success-text-emphasis); - --bs-alert-bg: var(--bs-success-bg-subtle); - --bs-alert-border-color: var(--bs-success-border-subtle); - --bs-alert-link-color: var(--bs-success-text-emphasis); } - -.alert-info, .pageinfo-info { - --bs-alert-color: var(--bs-info-text-emphasis); - --bs-alert-bg: var(--bs-info-bg-subtle); - --bs-alert-border-color: var(--bs-info-border-subtle); - --bs-alert-link-color: var(--bs-info-text-emphasis); } - -.alert-warning, .pageinfo-warning { - --bs-alert-color: var(--bs-warning-text-emphasis); - --bs-alert-bg: var(--bs-warning-bg-subtle); - --bs-alert-border-color: var(--bs-warning-border-subtle); - --bs-alert-link-color: var(--bs-warning-text-emphasis); } - -.alert-danger, .pageinfo-danger { - --bs-alert-color: var(--bs-danger-text-emphasis); - --bs-alert-bg: var(--bs-danger-bg-subtle); - --bs-alert-border-color: var(--bs-danger-border-subtle); - --bs-alert-link-color: var(--bs-danger-text-emphasis); } - -.alert-light, .pageinfo-light { - --bs-alert-color: var(--bs-light-text-emphasis); - --bs-alert-bg: var(--bs-light-bg-subtle); - --bs-alert-border-color: var(--bs-light-border-subtle); - --bs-alert-link-color: var(--bs-light-text-emphasis); } - -.alert-dark, .pageinfo-dark { - --bs-alert-color: var(--bs-dark-text-emphasis); - --bs-alert-bg: var(--bs-dark-bg-subtle); - --bs-alert-border-color: var(--bs-dark-border-subtle); - --bs-alert-link-color: var(--bs-dark-text-emphasis); } - -@keyframes progress-bar-stripes { - 0% { - background-position-x: 1rem; } } - -.progress, -.progress-stacked { - --bs-progress-height: 1rem; - --bs-progress-font-size: 0.75rem; - --bs-progress-bg: var(--bs-secondary-bg); - --bs-progress-border-radius: var(--bs-border-radius); - --bs-progress-box-shadow: var(--bs-box-shadow-inset); - --bs-progress-bar-color: #fff; - --bs-progress-bar-bg: #30638e; - --bs-progress-bar-transition: width 0.6s ease; - display: flex; - height: var(--bs-progress-height); - overflow: hidden; - font-size: var(--bs-progress-font-size); - background-color: var(--bs-progress-bg); - border-radius: var(--bs-progress-border-radius); - box-shadow: var(--bs-progress-box-shadow); } - -.progress-bar { - display: flex; - flex-direction: column; - justify-content: center; - overflow: hidden; - color: var(--bs-progress-bar-color); - text-align: center; - white-space: nowrap; - background-color: var(--bs-progress-bar-bg); - transition: var(--bs-progress-bar-transition); } - @media (prefers-reduced-motion: reduce) { - .progress-bar { - transition: none; } } -.progress-bar-striped { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: var(--bs-progress-height) var(--bs-progress-height); } - -.progress-stacked > .progress { - overflow: visible; } - -.progress-stacked > .progress > .progress-bar { - width: 100%; } - -.progress-bar-animated { - animation: 1s linear infinite progress-bar-stripes; } - @media (prefers-reduced-motion: reduce) { - .progress-bar-animated { - animation: none; } } -.list-group { - --bs-list-group-color: var(--bs-body-color); - --bs-list-group-bg: var(--bs-body-bg); - --bs-list-group-border-color: var(--bs-border-color); - --bs-list-group-border-width: var(--bs-border-width); - --bs-list-group-border-radius: var(--bs-border-radius); - --bs-list-group-item-padding-x: 1rem; - --bs-list-group-item-padding-y: 0.5rem; - --bs-list-group-action-color: var(--bs-secondary-color); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-tertiary-bg); - --bs-list-group-action-active-color: var(--bs-body-color); - --bs-list-group-action-active-bg: var(--bs-secondary-bg); - --bs-list-group-disabled-color: var(--bs-secondary-color); - --bs-list-group-disabled-bg: var(--bs-body-bg); - --bs-list-group-active-color: #fff; - --bs-list-group-active-bg: #30638e; - --bs-list-group-active-border-color: #30638e; - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - border-radius: var(--bs-list-group-border-radius); } - -.list-group-numbered { - list-style-type: none; - counter-reset: section; } - .list-group-numbered > .list-group-item::before { - content: counters(section, ".") ". "; - counter-increment: section; } - -.list-group-item-action { - width: 100%; - color: var(--bs-list-group-action-color); - text-align: inherit; } - .list-group-item-action:hover, .list-group-item-action:focus { - z-index: 1; - color: var(--bs-list-group-action-hover-color); - text-decoration: none; - background-color: var(--bs-list-group-action-hover-bg); } - .list-group-item-action:active { - color: var(--bs-list-group-action-active-color); - background-color: var(--bs-list-group-action-active-bg); } - -.list-group-item { - position: relative; - display: block; - padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); - color: var(--bs-list-group-color); - text-decoration: none; - background-color: var(--bs-list-group-bg); - border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); } - .list-group-item:first-child { - border-top-left-radius: inherit; - border-top-right-radius: inherit; } - .list-group-item:last-child { - border-bottom-right-radius: inherit; - border-bottom-left-radius: inherit; } - .list-group-item.disabled, .list-group-item:disabled { - color: var(--bs-list-group-disabled-color); - pointer-events: none; - background-color: var(--bs-list-group-disabled-bg); } - .list-group-item.active { - z-index: 2; - color: var(--bs-list-group-active-color); - background-color: var(--bs-list-group-active-bg); - border-color: var(--bs-list-group-active-border-color); } - .list-group-item + .list-group-item { - border-top-width: 0; } - .list-group-item + .list-group-item.active { - margin-top: calc(-1 * var(--bs-list-group-border-width)); - border-top-width: var(--bs-list-group-border-width); } - -.list-group-horizontal { - flex-direction: row; } - .list-group-horizontal > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } - -@media (min-width: 576px) { - .list-group-horizontal-sm { - flex-direction: row; } - .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal-sm > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal-sm > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal-sm > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } } - -@media (min-width: 768px) { - .list-group-horizontal-md { - flex-direction: row; } - .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal-md > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal-md > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal-md > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } } - -@media (min-width: 992px) { - .list-group-horizontal-lg { - flex-direction: row; } - .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal-lg > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal-lg > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal-lg > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } } - -@media (min-width: 1200px) { - .list-group-horizontal-xl { - flex-direction: row; } - .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal-xl > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal-xl > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal-xl > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } } - -@media (min-width: 1400px) { - .list-group-horizontal-xxl { - flex-direction: row; } - .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal-xxl > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal-xxl > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } } - -.list-group-flush { - border-radius: 0; } - .list-group-flush > .list-group-item { - border-width: 0 0 var(--bs-list-group-border-width); } - .list-group-flush > .list-group-item:last-child { - border-bottom-width: 0; } - -.list-group-item-primary { - --bs-list-group-color: var(--bs-primary-text-emphasis); - --bs-list-group-bg: var(--bs-primary-bg-subtle); - --bs-list-group-border-color: var(--bs-primary-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-primary-border-subtle); - --bs-list-group-active-color: var(--bs-primary-bg-subtle); - --bs-list-group-active-bg: var(--bs-primary-text-emphasis); - --bs-list-group-active-border-color: var(--bs-primary-text-emphasis); } - -.list-group-item-secondary { - --bs-list-group-color: var(--bs-secondary-text-emphasis); - --bs-list-group-bg: var(--bs-secondary-bg-subtle); - --bs-list-group-border-color: var(--bs-secondary-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle); - --bs-list-group-active-color: var(--bs-secondary-bg-subtle); - --bs-list-group-active-bg: var(--bs-secondary-text-emphasis); - --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis); } - -.list-group-item-success { - --bs-list-group-color: var(--bs-success-text-emphasis); - --bs-list-group-bg: var(--bs-success-bg-subtle); - --bs-list-group-border-color: var(--bs-success-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-success-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-success-border-subtle); - --bs-list-group-active-color: var(--bs-success-bg-subtle); - --bs-list-group-active-bg: var(--bs-success-text-emphasis); - --bs-list-group-active-border-color: var(--bs-success-text-emphasis); } - -.list-group-item-info { - --bs-list-group-color: var(--bs-info-text-emphasis); - --bs-list-group-bg: var(--bs-info-bg-subtle); - --bs-list-group-border-color: var(--bs-info-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-info-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-info-border-subtle); - --bs-list-group-active-color: var(--bs-info-bg-subtle); - --bs-list-group-active-bg: var(--bs-info-text-emphasis); - --bs-list-group-active-border-color: var(--bs-info-text-emphasis); } - -.list-group-item-warning { - --bs-list-group-color: var(--bs-warning-text-emphasis); - --bs-list-group-bg: var(--bs-warning-bg-subtle); - --bs-list-group-border-color: var(--bs-warning-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-warning-border-subtle); - --bs-list-group-active-color: var(--bs-warning-bg-subtle); - --bs-list-group-active-bg: var(--bs-warning-text-emphasis); - --bs-list-group-active-border-color: var(--bs-warning-text-emphasis); } - -.list-group-item-danger { - --bs-list-group-color: var(--bs-danger-text-emphasis); - --bs-list-group-bg: var(--bs-danger-bg-subtle); - --bs-list-group-border-color: var(--bs-danger-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-danger-border-subtle); - --bs-list-group-active-color: var(--bs-danger-bg-subtle); - --bs-list-group-active-bg: var(--bs-danger-text-emphasis); - --bs-list-group-active-border-color: var(--bs-danger-text-emphasis); } - -.list-group-item-light { - --bs-list-group-color: var(--bs-light-text-emphasis); - --bs-list-group-bg: var(--bs-light-bg-subtle); - --bs-list-group-border-color: var(--bs-light-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-light-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-light-border-subtle); - --bs-list-group-active-color: var(--bs-light-bg-subtle); - --bs-list-group-active-bg: var(--bs-light-text-emphasis); - --bs-list-group-active-border-color: var(--bs-light-text-emphasis); } - -.list-group-item-dark { - --bs-list-group-color: var(--bs-dark-text-emphasis); - --bs-list-group-bg: var(--bs-dark-bg-subtle); - --bs-list-group-border-color: var(--bs-dark-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-dark-border-subtle); - --bs-list-group-active-color: var(--bs-dark-bg-subtle); - --bs-list-group-active-bg: var(--bs-dark-text-emphasis); - --bs-list-group-active-border-color: var(--bs-dark-text-emphasis); } - -.btn-close { - --bs-btn-close-color: #000; - --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e"); - --bs-btn-close-opacity: 0.5; - --bs-btn-close-hover-opacity: 0.75; - --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(48, 99, 142, 0.25); - --bs-btn-close-focus-opacity: 1; - --bs-btn-close-disabled-opacity: 0.25; - --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%); - box-sizing: content-box; - width: 1em; - height: 1em; - padding: 0.25em 0.25em; - color: var(--bs-btn-close-color); - background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat; - border: 0; - border-radius: 0.375rem; - opacity: var(--bs-btn-close-opacity); } - .btn-close:hover { - color: var(--bs-btn-close-color); - text-decoration: none; - opacity: var(--bs-btn-close-hover-opacity); } - .btn-close:focus { - outline: 0; - box-shadow: var(--bs-btn-close-focus-shadow); - opacity: var(--bs-btn-close-focus-opacity); } - .btn-close:disabled, .btn-close.disabled { - pointer-events: none; - user-select: none; - opacity: var(--bs-btn-close-disabled-opacity); } - -.btn-close-white { - filter: var(--bs-btn-close-white-filter); } - -[data-bs-theme="dark"] .btn-close { - filter: var(--bs-btn-close-white-filter); } - -.toast { - --bs-toast-zindex: 1090; - --bs-toast-padding-x: 0.75rem; - --bs-toast-padding-y: 0.5rem; - --bs-toast-spacing: 1.5rem; - --bs-toast-max-width: 350px; - --bs-toast-font-size: 0.875rem; - --bs-toast-color: ; - --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85); - --bs-toast-border-width: var(--bs-border-width); - --bs-toast-border-color: var(--bs-border-color-translucent); - --bs-toast-border-radius: var(--bs-border-radius); - --bs-toast-box-shadow: var(--bs-box-shadow); - --bs-toast-header-color: var(--bs-secondary-color); - --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85); - --bs-toast-header-border-color: var(--bs-border-color-translucent); - width: var(--bs-toast-max-width); - max-width: 100%; - font-size: var(--bs-toast-font-size); - color: var(--bs-toast-color); - pointer-events: auto; - background-color: var(--bs-toast-bg); - background-clip: padding-box; - border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); - box-shadow: var(--bs-toast-box-shadow); - border-radius: var(--bs-toast-border-radius); } - .toast.showing { - opacity: 0; } - .toast:not(.show) { - display: none; } - -.toast-container { - --bs-toast-zindex: 1090; - position: absolute; - z-index: var(--bs-toast-zindex); - width: max-content; - max-width: 100%; - pointer-events: none; } - .toast-container > :not(:last-child) { - margin-bottom: var(--bs-toast-spacing); } - -.toast-header { - display: flex; - align-items: center; - padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); - color: var(--bs-toast-header-color); - background-color: var(--bs-toast-header-bg); - background-clip: padding-box; - border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); - border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); - border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); } - .toast-header .btn-close { - margin-right: calc(-.5 * var(--bs-toast-padding-x)); - margin-left: var(--bs-toast-padding-x); } - -.toast-body { - padding: var(--bs-toast-padding-x); - word-wrap: break-word; } - -.modal { - --bs-modal-zindex: 1055; - --bs-modal-width: 500px; - --bs-modal-padding: 1rem; - --bs-modal-margin: 0.5rem; - --bs-modal-color: ; - --bs-modal-bg: var(--bs-body-bg); - --bs-modal-border-color: var(--bs-border-color-translucent); - --bs-modal-border-width: var(--bs-border-width); - --bs-modal-border-radius: var(--bs-border-radius-lg); - --bs-modal-box-shadow: var(--bs-box-shadow-sm); - --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width))); - --bs-modal-header-padding-x: 1rem; - --bs-modal-header-padding-y: 1rem; - --bs-modal-header-padding: 1rem 1rem; - --bs-modal-header-border-color: var(--bs-border-color); - --bs-modal-header-border-width: var(--bs-border-width); - --bs-modal-title-line-height: 1.5; - --bs-modal-footer-gap: 0.5rem; - --bs-modal-footer-bg: ; - --bs-modal-footer-border-color: var(--bs-border-color); - --bs-modal-footer-border-width: var(--bs-border-width); - position: fixed; - top: 0; - left: 0; - z-index: var(--bs-modal-zindex); - display: none; - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - outline: 0; } - -.modal-dialog { - position: relative; - width: auto; - margin: var(--bs-modal-margin); - pointer-events: none; } - .modal.fade .modal-dialog { - transition: transform 0.3s ease-out; - transform: translate(0, -50px); } - @media (prefers-reduced-motion: reduce) { - .modal.fade .modal-dialog { - transition: none; } } - .modal.show .modal-dialog { - transform: none; } - .modal.modal-static .modal-dialog { - transform: scale(1.02); } - -.modal-dialog-scrollable { - height: calc(100% - var(--bs-modal-margin) * 2); } - .modal-dialog-scrollable .modal-content { - max-height: 100%; - overflow: hidden; } - .modal-dialog-scrollable .modal-body { - overflow-y: auto; } - -.modal-dialog-centered { - display: flex; - align-items: center; - min-height: calc(100% - var(--bs-modal-margin) * 2); } - -.modal-content { - position: relative; - display: flex; - flex-direction: column; - width: 100%; - color: var(--bs-modal-color); - pointer-events: auto; - background-color: var(--bs-modal-bg); - background-clip: padding-box; - border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); - border-radius: var(--bs-modal-border-radius); - box-shadow: var(--bs-modal-box-shadow); - outline: 0; } - -.modal-backdrop { - --bs-backdrop-zindex: 1050; - --bs-backdrop-bg: #000; - --bs-backdrop-opacity: 0.5; - position: fixed; - top: 0; - left: 0; - z-index: var(--bs-backdrop-zindex); - width: 100vw; - height: 100vh; - background-color: var(--bs-backdrop-bg); } - .modal-backdrop.fade { - opacity: 0; } - .modal-backdrop.show { - opacity: var(--bs-backdrop-opacity); } - -.modal-header { - display: flex; - flex-shrink: 0; - align-items: center; - padding: var(--bs-modal-header-padding); - border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); - border-top-left-radius: var(--bs-modal-inner-border-radius); - border-top-right-radius: var(--bs-modal-inner-border-radius); } - .modal-header .btn-close { - padding: calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5); - margin: calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto; } - -.modal-title { - margin-bottom: 0; - line-height: var(--bs-modal-title-line-height); } - -.modal-body { - position: relative; - flex: 1 1 auto; - padding: var(--bs-modal-padding); } - -.modal-footer { - display: flex; - flex-shrink: 0; - flex-wrap: wrap; - align-items: center; - justify-content: flex-end; - padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5); - background-color: var(--bs-modal-footer-bg); - border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); - border-bottom-right-radius: var(--bs-modal-inner-border-radius); - border-bottom-left-radius: var(--bs-modal-inner-border-radius); } - .modal-footer > * { - margin: calc(var(--bs-modal-footer-gap) * .5); } - -@media (min-width: 576px) { - .modal { - --bs-modal-margin: 1.75rem; - --bs-modal-box-shadow: var(--bs-box-shadow); } - .modal-dialog { - max-width: var(--bs-modal-width); - margin-right: auto; - margin-left: auto; } - .modal-sm { - --bs-modal-width: 300px; } } - -@media (min-width: 992px) { - .modal-lg, - .modal-xl { - --bs-modal-width: 800px; } } - -@media (min-width: 1200px) { - .modal-xl { - --bs-modal-width: 1140px; } } - -.modal-fullscreen { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen .modal-header, - .modal-fullscreen .modal-footer { - border-radius: 0; } - .modal-fullscreen .modal-body { - overflow-y: auto; } - -@media (max-width: 575.98px) { - .modal-fullscreen-sm-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen-sm-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen-sm-down .modal-header, - .modal-fullscreen-sm-down .modal-footer { - border-radius: 0; } - .modal-fullscreen-sm-down .modal-body { - overflow-y: auto; } } - -@media (max-width: 767.98px) { - .modal-fullscreen-md-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen-md-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen-md-down .modal-header, - .modal-fullscreen-md-down .modal-footer { - border-radius: 0; } - .modal-fullscreen-md-down .modal-body { - overflow-y: auto; } } - -@media (max-width: 991.98px) { - .modal-fullscreen-lg-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen-lg-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen-lg-down .modal-header, - .modal-fullscreen-lg-down .modal-footer { - border-radius: 0; } - .modal-fullscreen-lg-down .modal-body { - overflow-y: auto; } } - -@media (max-width: 1199.98px) { - .modal-fullscreen-xl-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen-xl-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen-xl-down .modal-header, - .modal-fullscreen-xl-down .modal-footer { - border-radius: 0; } - .modal-fullscreen-xl-down .modal-body { - overflow-y: auto; } } - -@media (max-width: 1399.98px) { - .modal-fullscreen-xxl-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen-xxl-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen-xxl-down .modal-header, - .modal-fullscreen-xxl-down .modal-footer { - border-radius: 0; } - .modal-fullscreen-xxl-down .modal-body { - overflow-y: auto; } } - -.tooltip { - --bs-tooltip-zindex: 1080; - --bs-tooltip-max-width: 200px; - --bs-tooltip-padding-x: 0.5rem; - --bs-tooltip-padding-y: 0.25rem; - --bs-tooltip-margin: ; - --bs-tooltip-font-size: 0.875rem; - --bs-tooltip-color: var(--bs-body-bg); - --bs-tooltip-bg: var(--bs-emphasis-color); - --bs-tooltip-border-radius: var(--bs-border-radius); - --bs-tooltip-opacity: 0.9; - --bs-tooltip-arrow-width: 0.8rem; - --bs-tooltip-arrow-height: 0.4rem; - z-index: var(--bs-tooltip-zindex); - display: block; - margin: var(--bs-tooltip-margin); - font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - white-space: normal; - word-spacing: normal; - line-break: auto; - font-size: var(--bs-tooltip-font-size); - word-wrap: break-word; - opacity: 0; } - .tooltip.show { - opacity: var(--bs-tooltip-opacity); } - .tooltip .tooltip-arrow { - display: block; - width: var(--bs-tooltip-arrow-width); - height: var(--bs-tooltip-arrow-height); } - .tooltip .tooltip-arrow::before { - position: absolute; - content: ""; - border-color: transparent; - border-style: solid; } - -.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow { - bottom: calc(-1 * var(--bs-tooltip-arrow-height)); } - .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before { - top: -1px; - border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0; - border-top-color: var(--bs-tooltip-bg); } - -/* rtl:begin:ignore */ -.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow { - left: calc(-1 * var(--bs-tooltip-arrow-height)); - width: var(--bs-tooltip-arrow-height); - height: var(--bs-tooltip-arrow-width); } - .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before { - right: -1px; - border-width: calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0; - border-right-color: var(--bs-tooltip-bg); } - -/* rtl:end:ignore */ -.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow { - top: calc(-1 * var(--bs-tooltip-arrow-height)); } - .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before { - bottom: -1px; - border-width: 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height); - border-bottom-color: var(--bs-tooltip-bg); } - -/* rtl:begin:ignore */ -.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow { - right: calc(-1 * var(--bs-tooltip-arrow-height)); - width: var(--bs-tooltip-arrow-height); - height: var(--bs-tooltip-arrow-width); } - .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before { - left: -1px; - border-width: calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height); - border-left-color: var(--bs-tooltip-bg); } - -/* rtl:end:ignore */ -.tooltip-inner { - max-width: var(--bs-tooltip-max-width); - padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); - color: var(--bs-tooltip-color); - text-align: center; - background-color: var(--bs-tooltip-bg); - border-radius: var(--bs-tooltip-border-radius); } - -.popover { - --bs-popover-zindex: 1070; - --bs-popover-max-width: 276px; - --bs-popover-font-size: 0.875rem; - --bs-popover-bg: var(--bs-body-bg); - --bs-popover-border-width: var(--bs-border-width); - --bs-popover-border-color: var(--bs-border-color-translucent); - --bs-popover-border-radius: var(--bs-border-radius-lg); - --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width)); - --bs-popover-box-shadow: var(--bs-box-shadow); - --bs-popover-header-padding-x: 1rem; - --bs-popover-header-padding-y: 0.5rem; - --bs-popover-header-font-size: 1rem; - --bs-popover-header-color: inherit; - --bs-popover-header-bg: var(--bs-secondary-bg); - --bs-popover-body-padding-x: 1rem; - --bs-popover-body-padding-y: 1rem; - --bs-popover-body-color: var(--bs-body-color); - --bs-popover-arrow-width: 1rem; - --bs-popover-arrow-height: 0.5rem; - --bs-popover-arrow-border: var(--bs-popover-border-color); - z-index: var(--bs-popover-zindex); - display: block; - max-width: var(--bs-popover-max-width); - font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - white-space: normal; - word-spacing: normal; - line-break: auto; - font-size: var(--bs-popover-font-size); - word-wrap: break-word; - background-color: var(--bs-popover-bg); - background-clip: padding-box; - border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); - border-radius: var(--bs-popover-border-radius); - box-shadow: var(--bs-popover-box-shadow); } - .popover .popover-arrow { - display: block; - width: var(--bs-popover-arrow-width); - height: var(--bs-popover-arrow-height); } - .popover .popover-arrow::before, .popover .popover-arrow::after { - position: absolute; - display: block; - content: ""; - border-color: transparent; - border-style: solid; - border-width: 0; } - -.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow { - bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); } - .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after { - border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0; } - .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before { - bottom: 0; - border-top-color: var(--bs-popover-arrow-border); } - .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after { - bottom: var(--bs-popover-border-width); - border-top-color: var(--bs-popover-bg); } - -/* rtl:begin:ignore */ -.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow { - left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); - width: var(--bs-popover-arrow-height); - height: var(--bs-popover-arrow-width); } - .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after { - border-width: calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0; } - .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before { - left: 0; - border-right-color: var(--bs-popover-arrow-border); } - .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after { - left: var(--bs-popover-border-width); - border-right-color: var(--bs-popover-bg); } - -/* rtl:end:ignore */ -.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow { - top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); } - .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after { - border-width: 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height); } - .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before { - top: 0; - border-bottom-color: var(--bs-popover-arrow-border); } - .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after { - top: var(--bs-popover-border-width); - border-bottom-color: var(--bs-popover-bg); } - -.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before { - position: absolute; - top: 0; - left: 50%; - display: block; - width: var(--bs-popover-arrow-width); - margin-left: calc(-.5 * var(--bs-popover-arrow-width)); - content: ""; - border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); } - -/* rtl:begin:ignore */ -.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow { - right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); - width: var(--bs-popover-arrow-height); - height: var(--bs-popover-arrow-width); } - .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after { - border-width: calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height); } - .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before { - right: 0; - border-left-color: var(--bs-popover-arrow-border); } - .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after { - right: var(--bs-popover-border-width); - border-left-color: var(--bs-popover-bg); } - -/* rtl:end:ignore */ -.popover-header { - padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); - margin-bottom: 0; - font-size: var(--bs-popover-header-font-size); - color: var(--bs-popover-header-color); - background-color: var(--bs-popover-header-bg); - border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); - border-top-left-radius: var(--bs-popover-inner-border-radius); - border-top-right-radius: var(--bs-popover-inner-border-radius); } - .popover-header:empty { - display: none; } - -.popover-body { - padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); - color: var(--bs-popover-body-color); } - -.carousel { - position: relative; } - -.carousel.pointer-event { - touch-action: pan-y; } - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; } - .carousel-inner::after { - display: block; - clear: both; - content: ""; } - -.carousel-item { - position: relative; - display: none; - float: left; - width: 100%; - margin-right: -100%; - backface-visibility: hidden; - transition: transform 0.6s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .carousel-item { - transition: none; } } -.carousel-item.active, -.carousel-item-next, -.carousel-item-prev { - display: block; } - -.carousel-item-next:not(.carousel-item-start), -.active.carousel-item-end { - transform: translateX(100%); } - -.carousel-item-prev:not(.carousel-item-end), -.active.carousel-item-start { - transform: translateX(-100%); } - -.carousel-fade .carousel-item { - opacity: 0; - transition-property: opacity; - transform: none; } - -.carousel-fade .carousel-item.active, -.carousel-fade .carousel-item-next.carousel-item-start, -.carousel-fade .carousel-item-prev.carousel-item-end { - z-index: 1; - opacity: 1; } - -.carousel-fade .active.carousel-item-start, -.carousel-fade .active.carousel-item-end { - z-index: 0; - opacity: 0; - transition: opacity 0s 0.6s; } - @media (prefers-reduced-motion: reduce) { - .carousel-fade .active.carousel-item-start, - .carousel-fade .active.carousel-item-end { - transition: none; } } -.carousel-control-prev, -.carousel-control-next { - position: absolute; - top: 0; - bottom: 0; - z-index: 1; - display: flex; - align-items: center; - justify-content: center; - width: 15%; - padding: 0; - color: #fff; - text-align: center; - background: none; - border: 0; - opacity: 0.5; - transition: opacity 0.15s ease; } - @media (prefers-reduced-motion: reduce) { - .carousel-control-prev, - .carousel-control-next { - transition: none; } } - .carousel-control-prev:hover, .carousel-control-prev:focus, - .carousel-control-next:hover, - .carousel-control-next:focus { - color: #fff; - text-decoration: none; - outline: 0; - opacity: 0.9; } - -.carousel-control-prev { - left: 0; - background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001)); } - -.carousel-control-next { - right: 0; - background-image: linear-gradient(270deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001)); } - -.carousel-control-prev-icon, -.carousel-control-next-icon { - display: inline-block; - width: 2rem; - height: 2rem; - background-repeat: no-repeat; - background-position: 50%; - background-size: 100% 100%; } - -.carousel-control-prev-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")*/; } - -.carousel-control-next-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")*/; } - -.carousel-indicators { - position: absolute; - right: 0; - bottom: 0; - left: 0; - z-index: 2; - display: flex; - justify-content: center; - padding: 0; - margin-right: 15%; - margin-bottom: 1rem; - margin-left: 15%; } - .carousel-indicators [data-bs-target] { - box-sizing: content-box; - flex: 0 1 auto; - width: 30px; - height: 3px; - padding: 0; - margin-right: 3px; - margin-left: 3px; - text-indent: -999px; - cursor: pointer; - background-color: #fff; - background-clip: padding-box; - border: 0; - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - opacity: 0.5; - transition: opacity 0.6s ease; } - @media (prefers-reduced-motion: reduce) { - .carousel-indicators [data-bs-target] { - transition: none; } } - .carousel-indicators .active { - opacity: 1; } - -.carousel-caption { - position: absolute; - right: 15%; - bottom: 1.25rem; - left: 15%; - padding-top: 1.25rem; - padding-bottom: 1.25rem; - color: #fff; - text-align: center; } - -.carousel-dark .carousel-control-prev-icon, -.carousel-dark .carousel-control-next-icon { - filter: invert(1) grayscale(100); } - -.carousel-dark .carousel-indicators [data-bs-target] { - background-color: #000; } - -.carousel-dark .carousel-caption { - color: #000; } - -[data-bs-theme="dark"] .carousel .carousel-control-prev-icon, -[data-bs-theme="dark"] .carousel .carousel-control-next-icon, [data-bs-theme="dark"].carousel .carousel-control-prev-icon, -[data-bs-theme="dark"].carousel .carousel-control-next-icon { - filter: invert(1) grayscale(100); } - -[data-bs-theme="dark"] .carousel .carousel-indicators [data-bs-target], [data-bs-theme="dark"].carousel .carousel-indicators [data-bs-target] { - background-color: #000; } - -[data-bs-theme="dark"] .carousel .carousel-caption, [data-bs-theme="dark"].carousel .carousel-caption { - color: #000; } - -.spinner-grow, -.spinner-border { - display: inline-block; - width: var(--bs-spinner-width); - height: var(--bs-spinner-height); - vertical-align: var(--bs-spinner-vertical-align); - border-radius: 50%; - animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); } - -@keyframes spinner-border { - to { - transform: rotate(360deg) /* rtl:ignore */; } } - -.spinner-border { - --bs-spinner-width: 2rem; - --bs-spinner-height: 2rem; - --bs-spinner-vertical-align: -0.125em; - --bs-spinner-border-width: 0.25em; - --bs-spinner-animation-speed: 0.75s; - --bs-spinner-animation-name: spinner-border; - border: var(--bs-spinner-border-width) solid currentcolor; - border-right-color: transparent; } - -.spinner-border-sm { - --bs-spinner-width: 1rem; - --bs-spinner-height: 1rem; - --bs-spinner-border-width: 0.2em; } - -@keyframes spinner-grow { - 0% { - transform: scale(0); } - 50% { - opacity: 1; - transform: none; } } - -.spinner-grow { - --bs-spinner-width: 2rem; - --bs-spinner-height: 2rem; - --bs-spinner-vertical-align: -0.125em; - --bs-spinner-animation-speed: 0.75s; - --bs-spinner-animation-name: spinner-grow; - background-color: currentcolor; - opacity: 0; } - -.spinner-grow-sm { - --bs-spinner-width: 1rem; - --bs-spinner-height: 1rem; } - -@media (prefers-reduced-motion: reduce) { - .spinner-border, - .spinner-grow { - --bs-spinner-animation-speed: 1.5s; } } - -.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { - --bs-offcanvas-zindex: 1045; - --bs-offcanvas-width: 400px; - --bs-offcanvas-height: 30vh; - --bs-offcanvas-padding-x: 1rem; - --bs-offcanvas-padding-y: 1rem; - --bs-offcanvas-color: var(--bs-body-color); - --bs-offcanvas-bg: var(--bs-body-bg); - --bs-offcanvas-border-width: var(--bs-border-width); - --bs-offcanvas-border-color: var(--bs-border-color-translucent); - --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm); - --bs-offcanvas-transition: transform 0.3s ease-in-out; - --bs-offcanvas-title-line-height: 1.5; } - -@media (max-width: 575.98px) { - .offcanvas-sm { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } } - @media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { - .offcanvas-sm { - transition: none; } } -@media (max-width: 575.98px) { - .offcanvas-sm.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas-sm.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas-sm.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas-sm.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { - transform: none; } - .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { - visibility: visible; } } - -@media (min-width: 576px) { - .offcanvas-sm { - --bs-offcanvas-height: auto; - --bs-offcanvas-border-width: 0; - background-color: transparent !important; } - .offcanvas-sm .offcanvas-header { - display: none; } - .offcanvas-sm .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; - background-color: transparent !important; } } - -@media (max-width: 767.98px) { - .offcanvas-md { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } } - @media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { - .offcanvas-md { - transition: none; } } -@media (max-width: 767.98px) { - .offcanvas-md.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas-md.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas-md.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas-md.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { - transform: none; } - .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { - visibility: visible; } } - -@media (min-width: 768px) { - .offcanvas-md { - --bs-offcanvas-height: auto; - --bs-offcanvas-border-width: 0; - background-color: transparent !important; } - .offcanvas-md .offcanvas-header { - display: none; } - .offcanvas-md .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; - background-color: transparent !important; } } - -@media (max-width: 991.98px) { - .offcanvas-lg { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } } - @media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { - .offcanvas-lg { - transition: none; } } -@media (max-width: 991.98px) { - .offcanvas-lg.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas-lg.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas-lg.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas-lg.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { - transform: none; } - .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { - visibility: visible; } } - -@media (min-width: 992px) { - .offcanvas-lg { - --bs-offcanvas-height: auto; - --bs-offcanvas-border-width: 0; - background-color: transparent !important; } - .offcanvas-lg .offcanvas-header { - display: none; } - .offcanvas-lg .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; - background-color: transparent !important; } } - -@media (max-width: 1199.98px) { - .offcanvas-xl { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } } - @media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { - .offcanvas-xl { - transition: none; } } -@media (max-width: 1199.98px) { - .offcanvas-xl.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas-xl.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas-xl.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas-xl.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { - transform: none; } - .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { - visibility: visible; } } - -@media (min-width: 1200px) { - .offcanvas-xl { - --bs-offcanvas-height: auto; - --bs-offcanvas-border-width: 0; - background-color: transparent !important; } - .offcanvas-xl .offcanvas-header { - display: none; } - .offcanvas-xl .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; - background-color: transparent !important; } } - -@media (max-width: 1399.98px) { - .offcanvas-xxl { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } } - @media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { - .offcanvas-xxl { - transition: none; } } -@media (max-width: 1399.98px) { - .offcanvas-xxl.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas-xxl.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas-xxl.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas-xxl.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { - transform: none; } - .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { - visibility: visible; } } - -@media (min-width: 1400px) { - .offcanvas-xxl { - --bs-offcanvas-height: auto; - --bs-offcanvas-border-width: 0; - background-color: transparent !important; } - .offcanvas-xxl .offcanvas-header { - display: none; } - .offcanvas-xxl .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; - background-color: transparent !important; } } - -.offcanvas { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } - @media (prefers-reduced-motion: reduce) { - .offcanvas { - transition: none; } } - .offcanvas.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas.showing, .offcanvas.show:not(.hiding) { - transform: none; } - .offcanvas.showing, .offcanvas.hiding, .offcanvas.show { - visibility: visible; } - -.offcanvas-backdrop { - position: fixed; - top: 0; - left: 0; - z-index: 1040; - width: 100vw; - height: 100vh; - background-color: #000; } - .offcanvas-backdrop.fade { - opacity: 0; } - .offcanvas-backdrop.show { - opacity: 0.5; } - -.offcanvas-header { - display: flex; - align-items: center; - padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); } - .offcanvas-header .btn-close { - padding: calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5); - margin: calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto; } - -.offcanvas-title { - margin-bottom: 0; - line-height: var(--bs-offcanvas-title-line-height); } - -.offcanvas-body { - flex-grow: 1; - padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); - overflow-y: auto; } - -.placeholder { - display: inline-block; - min-height: 1em; - vertical-align: middle; - cursor: wait; - background-color: currentcolor; - opacity: 0.5; } - .placeholder.btn::before, div.drawio button.placeholder::before, .td-blog .placeholder.td-rss-button::before { - display: inline-block; - content: ""; } - -.placeholder-xs { - min-height: .6em; } - -.placeholder-sm { - min-height: .8em; } - -.placeholder-lg { - min-height: 1.2em; } - -.placeholder-glow .placeholder { - animation: placeholder-glow 2s ease-in-out infinite; } - -@keyframes placeholder-glow { - 50% { - opacity: 0.2; } } - -.placeholder-wave { - mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); - mask-size: 200% 100%; - animation: placeholder-wave 2s linear infinite; } - -@keyframes placeholder-wave { - 100% { - mask-position: -200% 0%; } } - -.clearfix::after { - display: block; - clear: both; - content: ""; } - -.text-bg-primary { - color: #fff !important; - background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-secondary { - color: #000 !important; - background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-success { - color: #000 !important; - background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-info { - color: #000 !important; - background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-warning { - color: #000 !important; - background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-danger { - color: #000 !important; - background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-light { - color: #000 !important; - background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-dark { - color: #fff !important; - background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important; } - -.link-primary { - color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-primary:hover, .link-primary:focus { - color: RGBA(34, 69, 99, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(34, 69, 99, var(--bs-link-underline-opacity, 1)) !important; } - -.link-secondary { - color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-secondary:hover, .link-secondary:focus { - color: RGBA(255, 193, 110, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(255, 193, 110, var(--bs-link-underline-opacity, 1)) !important; } - -.link-success { - color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-success:hover, .link-success:focus { - color: RGBA(115, 156, 255, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(115, 156, 255, var(--bs-link-underline-opacity, 1)) !important; } - -.link-info { - color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-info:hover, .link-info:focus { - color: RGBA(211, 233, 232, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(211, 233, 232, var(--bs-link-underline-opacity, 1)) !important; } - -.link-warning { - color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-warning:hover, .link-warning:focus { - color: RGBA(242, 151, 140, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(242, 151, 140, var(--bs-link-underline-opacity, 1)) !important; } - -.link-danger { - color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-danger:hover, .link-danger:focus { - color: RGBA(242, 151, 140, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(242, 151, 140, var(--bs-link-underline-opacity, 1)) !important; } - -.link-light { - color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-light:hover, .link-light:focus { - color: RGBA(224, 247, 243, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(224, 247, 243, var(--bs-link-underline-opacity, 1)) !important; } - -.link-dark { - color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-dark:hover, .link-dark:focus { - color: RGBA(45, 44, 53, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(45, 44, 53, var(--bs-link-underline-opacity, 1)) !important; } - -.link-body-emphasis { - color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-body-emphasis:hover, .link-body-emphasis:focus { - color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important; - text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; } - -.focus-ring:focus { - outline: 0; - box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color); } - -.icon-link { - display: inline-flex; - gap: 0.375rem; - align-items: center; - text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); - text-underline-offset: 0.25em; - backface-visibility: hidden; } - .icon-link > .bi { - flex-shrink: 0; - width: 1em; - height: 1em; - fill: currentcolor; - transition: 0.2s ease-in-out transform; } - @media (prefers-reduced-motion: reduce) { - .icon-link > .bi { - transition: none; } } -.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi { - transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0)); } - -.ratio { - position: relative; - width: 100%; } - .ratio::before { - display: block; - padding-top: var(--bs-aspect-ratio); - content: ""; } - .ratio > * { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; } - -.ratio-1x1 { - --bs-aspect-ratio: 100%; } - -.ratio-4x3 { - --bs-aspect-ratio: calc(3 / 4 * 100%); } - -.ratio-16x9 { - --bs-aspect-ratio: calc(9 / 16 * 100%); } - -.ratio-21x9 { - --bs-aspect-ratio: calc(9 / 21 * 100%); } - -.fixed-top { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: 1030; } - -.fixed-bottom { - position: fixed; - right: 0; - bottom: 0; - left: 0; - z-index: 1030; } - -.sticky-top { - position: sticky; - top: 0; - z-index: 1020; } - -.sticky-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } - -@media (min-width: 576px) { - .sticky-sm-top { - position: sticky; - top: 0; - z-index: 1020; } - .sticky-sm-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } } - -@media (min-width: 768px) { - .sticky-md-top { - position: sticky; - top: 0; - z-index: 1020; } - .sticky-md-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } } - -@media (min-width: 992px) { - .sticky-lg-top { - position: sticky; - top: 0; - z-index: 1020; } - .sticky-lg-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } } - -@media (min-width: 1200px) { - .sticky-xl-top { - position: sticky; - top: 0; - z-index: 1020; } - .sticky-xl-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } } - -@media (min-width: 1400px) { - .sticky-xxl-top { - position: sticky; - top: 0; - z-index: 1020; } - .sticky-xxl-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } } - -.hstack { - display: flex; - flex-direction: row; - align-items: center; - align-self: stretch; } - -.vstack { - display: flex; - flex: 1 1 auto; - flex-direction: column; - align-self: stretch; } - -.visually-hidden, -.visually-hidden-focusable:not(:focus):not(:focus-within) { - width: 1px !important; - height: 1px !important; - padding: 0 !important; - margin: -1px !important; - overflow: hidden !important; - clip: rect(0, 0, 0, 0) !important; - white-space: nowrap !important; - border: 0 !important; } - .visually-hidden:not(caption), - .visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) { - position: absolute !important; } - -.stretched-link::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1; - content: ""; } - -.text-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - -.vr { - display: inline-block; - align-self: stretch; - width: var(--bs-border-width); - min-height: 1em; - background-color: currentcolor; - opacity: 0.25; } - -.align-baseline { - vertical-align: baseline !important; } - -.align-top { - vertical-align: top !important; } - -.align-middle { - vertical-align: middle !important; } - -.align-bottom { - vertical-align: bottom !important; } - -.align-text-bottom { - vertical-align: text-bottom !important; } - -.align-text-top { - vertical-align: text-top !important; } - -.float-start { - float: left !important; } - -.float-end { - float: right !important; } - -.float-none { - float: none !important; } - -.object-fit-contain { - object-fit: contain !important; } - -.object-fit-cover { - object-fit: cover !important; } - -.object-fit-fill { - object-fit: fill !important; } - -.object-fit-scale { - object-fit: scale-down !important; } - -.object-fit-none { - object-fit: none !important; } - -.opacity-0 { - opacity: 0 !important; } - -.opacity-25 { - opacity: 0.25 !important; } - -.opacity-50 { - opacity: 0.5 !important; } - -.opacity-75 { - opacity: 0.75 !important; } - -.opacity-100 { - opacity: 1 !important; } - -.overflow-auto { - overflow: auto !important; } - -.overflow-hidden { - overflow: hidden !important; } - -.overflow-visible { - overflow: visible !important; } - -.overflow-scroll { - overflow: scroll !important; } - -.overflow-x-auto { - overflow-x: auto !important; } - -.overflow-x-hidden { - overflow-x: hidden !important; } - -.overflow-x-visible { - overflow-x: visible !important; } - -.overflow-x-scroll { - overflow-x: scroll !important; } - -.overflow-y-auto { - overflow-y: auto !important; } - -.overflow-y-hidden { - overflow-y: hidden !important; } - -.overflow-y-visible { - overflow-y: visible !important; } - -.overflow-y-scroll { - overflow-y: scroll !important; } - -.d-inline { - display: inline !important; } - -.d-inline-block { - display: inline-block !important; } - -.d-block { - display: block !important; } - -.d-grid { - display: grid !important; } - -.d-inline-grid { - display: inline-grid !important; } - -.d-table { - display: table !important; } - -.d-table-row { - display: table-row !important; } - -.d-table-cell { - display: table-cell !important; } - -.d-flex { - display: flex !important; } - -.d-inline-flex { - display: inline-flex !important; } - -.d-none { - display: none !important; } - -.shadow { - box-shadow: var(--bs-box-shadow) !important; } - -.shadow-sm { - box-shadow: var(--bs-box-shadow-sm) !important; } - -.shadow-lg { - box-shadow: var(--bs-box-shadow-lg) !important; } - -.shadow-none { - box-shadow: none !important; } - -.focus-ring-primary { - --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-secondary { - --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-success { - --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-info { - --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-warning { - --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-danger { - --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-light { - --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-dark { - --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity)); } - -.position-static { - position: static !important; } - -.position-relative { - position: relative !important; } - -.position-absolute { - position: absolute !important; } - -.position-fixed { - position: fixed !important; } - -.position-sticky { - position: sticky !important; } - -.top-0 { - top: 0 !important; } - -.top-50 { - top: 50% !important; } - -.top-100 { - top: 100% !important; } - -.bottom-0 { - bottom: 0 !important; } - -.bottom-50 { - bottom: 50% !important; } - -.bottom-100 { - bottom: 100% !important; } - -.start-0 { - left: 0 !important; } - -.start-50 { - left: 50% !important; } - -.start-100 { - left: 100% !important; } - -.end-0 { - right: 0 !important; } - -.end-50 { - right: 50% !important; } - -.end-100 { - right: 100% !important; } - -.translate-middle { - transform: translate(-50%, -50%) !important; } - -.translate-middle-x { - transform: translateX(-50%) !important; } - -.translate-middle-y { - transform: translateY(-50%) !important; } - -.border { - border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } - -.border-0 { - border: 0 !important; } - -.border-top, .td-page-meta__lastmod { - border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } - -.border-top-0 { - border-top: 0 !important; } - -.border-end { - border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } - -.border-end-0 { - border-right: 0 !important; } - -.border-bottom { - border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } - -.border-bottom-0 { - border-bottom: 0 !important; } - -.border-start { - border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } - -.border-start-0 { - border-left: 0 !important; } - -.border-primary { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important; } - -.border-secondary { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important; } - -.border-success { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important; } - -.border-info { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important; } - -.border-warning { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important; } - -.border-danger { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important; } - -.border-light { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important; } - -.border-dark { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important; } - -.border-black { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important; } - -.border-white { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important; } - -.border-primary-subtle { - border-color: var(--bs-primary-border-subtle) !important; } - -.border-secondary-subtle { - border-color: var(--bs-secondary-border-subtle) !important; } - -.border-success-subtle { - border-color: var(--bs-success-border-subtle) !important; } - -.border-info-subtle { - border-color: var(--bs-info-border-subtle) !important; } - -.border-warning-subtle { - border-color: var(--bs-warning-border-subtle) !important; } - -.border-danger-subtle { - border-color: var(--bs-danger-border-subtle) !important; } - -.border-light-subtle { - border-color: var(--bs-light-border-subtle) !important; } - -.border-dark-subtle { - border-color: var(--bs-dark-border-subtle) !important; } - -.border-1 { - border-width: 1px !important; } - -.border-2 { - border-width: 2px !important; } - -.border-3 { - border-width: 3px !important; } - -.border-4 { - border-width: 4px !important; } - -.border-5 { - border-width: 5px !important; } - -.border-opacity-10 { - --bs-border-opacity: 0.1; } - -.border-opacity-25 { - --bs-border-opacity: 0.25; } - -.border-opacity-50 { - --bs-border-opacity: 0.5; } - -.border-opacity-75 { - --bs-border-opacity: 0.75; } - -.border-opacity-100 { - --bs-border-opacity: 1; } - -.w-25 { - width: 25% !important; } - -.w-50 { - width: 50% !important; } - -.w-75 { - width: 75% !important; } - -.w-100 { - width: 100% !important; } - -.w-auto { - width: auto !important; } - -.mw-100 { - max-width: 100% !important; } - -.vw-100 { - width: 100vw !important; } - -.min-vw-100 { - min-width: 100vw !important; } - -.h-25 { - height: 25% !important; } - -.h-50 { - height: 50% !important; } - -.h-75 { - height: 75% !important; } - -.h-100 { - height: 100% !important; } - -.h-auto { - height: auto !important; } - -.mh-100 { - max-height: 100% !important; } - -.vh-100 { - height: 100vh !important; } - -.min-vh-100 { - min-height: 100vh !important; } - -.flex-fill { - flex: 1 1 auto !important; } - -.flex-row { - flex-direction: row !important; } - -.flex-column { - flex-direction: column !important; } - -.flex-row-reverse { - flex-direction: row-reverse !important; } - -.flex-column-reverse { - flex-direction: column-reverse !important; } - -.flex-grow-0 { - flex-grow: 0 !important; } - -.flex-grow-1 { - flex-grow: 1 !important; } - -.flex-shrink-0 { - flex-shrink: 0 !important; } - -.flex-shrink-1 { - flex-shrink: 1 !important; } - -.flex-wrap { - flex-wrap: wrap !important; } - -.flex-nowrap { - flex-wrap: nowrap !important; } - -.flex-wrap-reverse { - flex-wrap: wrap-reverse !important; } - -.justify-content-start { - justify-content: flex-start !important; } - -.justify-content-end { - justify-content: flex-end !important; } - -.justify-content-center { - justify-content: center !important; } - -.justify-content-between { - justify-content: space-between !important; } - -.justify-content-around { - justify-content: space-around !important; } - -.justify-content-evenly { - justify-content: space-evenly !important; } - -.align-items-start { - align-items: flex-start !important; } - -.align-items-end { - align-items: flex-end !important; } - -.align-items-center { - align-items: center !important; } - -.align-items-baseline { - align-items: baseline !important; } - -.align-items-stretch { - align-items: stretch !important; } - -.align-content-start { - align-content: flex-start !important; } - -.align-content-end { - align-content: flex-end !important; } - -.align-content-center { - align-content: center !important; } - -.align-content-between { - align-content: space-between !important; } - -.align-content-around { - align-content: space-around !important; } - -.align-content-stretch { - align-content: stretch !important; } - -.align-self-auto { - align-self: auto !important; } - -.align-self-start { - align-self: flex-start !important; } - -.align-self-end { - align-self: flex-end !important; } - -.align-self-center { - align-self: center !important; } - -.align-self-baseline { - align-self: baseline !important; } - -.align-self-stretch { - align-self: stretch !important; } - -.order-first { - order: -1 !important; } - -.order-0 { - order: 0 !important; } - -.order-1 { - order: 1 !important; } - -.order-2 { - order: 2 !important; } - -.order-3 { - order: 3 !important; } - -.order-4 { - order: 4 !important; } - -.order-5 { - order: 5 !important; } - -.order-last { - order: 6 !important; } - -.m-0 { - margin: 0 !important; } - -.m-1 { - margin: 0.25rem !important; } - -.m-2 { - margin: 0.5rem !important; } - -.m-3 { - margin: 1rem !important; } - -.m-4 { - margin: 1.5rem !important; } - -.m-5 { - margin: 3rem !important; } - -.m-auto { - margin: auto !important; } - -.mx-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - -.mx-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - -.mx-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - -.mx-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - -.mx-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - -.mx-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - -.mx-auto { - margin-right: auto !important; - margin-left: auto !important; } - -.my-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - -.my-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - -.my-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - -.my-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - -.my-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - -.my-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - -.my-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - -.mt-0 { - margin-top: 0 !important; } - -.mt-1 { - margin-top: 0.25rem !important; } - -.mt-2 { - margin-top: 0.5rem !important; } - -.mt-3 { - margin-top: 1rem !important; } - -.mt-4 { - margin-top: 1.5rem !important; } - -.mt-5 { - margin-top: 3rem !important; } - -.mt-auto { - margin-top: auto !important; } - -.me-0 { - margin-right: 0 !important; } - -.me-1 { - margin-right: 0.25rem !important; } - -.me-2 { - margin-right: 0.5rem !important; } - -.me-3 { - margin-right: 1rem !important; } - -.me-4 { - margin-right: 1.5rem !important; } - -.me-5 { - margin-right: 3rem !important; } - -.me-auto { - margin-right: auto !important; } - -.mb-0 { - margin-bottom: 0 !important; } - -.mb-1 { - margin-bottom: 0.25rem !important; } - -.mb-2 { - margin-bottom: 0.5rem !important; } - -.mb-3 { - margin-bottom: 1rem !important; } - -.mb-4 { - margin-bottom: 1.5rem !important; } - -.mb-5 { - margin-bottom: 3rem !important; } - -.mb-auto { - margin-bottom: auto !important; } - -.ms-0 { - margin-left: 0 !important; } - -.ms-1 { - margin-left: 0.25rem !important; } - -.ms-2 { - margin-left: 0.5rem !important; } - -.ms-3 { - margin-left: 1rem !important; } - -.ms-4 { - margin-left: 1.5rem !important; } - -.ms-5 { - margin-left: 3rem !important; } - -.ms-auto { - margin-left: auto !important; } - -.p-0 { - padding: 0 !important; } - -.p-1 { - padding: 0.25rem !important; } - -.p-2 { - padding: 0.5rem !important; } - -.p-3 { - padding: 1rem !important; } - -.p-4 { - padding: 1.5rem !important; } - -.p-5 { - padding: 3rem !important; } - -.px-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - -.px-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - -.px-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - -.px-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - -.px-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - -.px-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - -.py-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - -.py-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - -.py-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - -.py-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - -.py-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - -.py-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - -.pt-0 { - padding-top: 0 !important; } - -.pt-1 { - padding-top: 0.25rem !important; } - -.pt-2 { - padding-top: 0.5rem !important; } - -.pt-3 { - padding-top: 1rem !important; } - -.pt-4 { - padding-top: 1.5rem !important; } - -.pt-5 { - padding-top: 3rem !important; } - -.pe-0 { - padding-right: 0 !important; } - -.pe-1 { - padding-right: 0.25rem !important; } - -.pe-2 { - padding-right: 0.5rem !important; } - -.pe-3 { - padding-right: 1rem !important; } - -.pe-4 { - padding-right: 1.5rem !important; } - -.pe-5 { - padding-right: 3rem !important; } - -.pb-0 { - padding-bottom: 0 !important; } - -.pb-1 { - padding-bottom: 0.25rem !important; } - -.pb-2 { - padding-bottom: 0.5rem !important; } - -.pb-3 { - padding-bottom: 1rem !important; } - -.pb-4 { - padding-bottom: 1.5rem !important; } - -.pb-5 { - padding-bottom: 3rem !important; } - -.ps-0 { - padding-left: 0 !important; } - -.ps-1 { - padding-left: 0.25rem !important; } - -.ps-2 { - padding-left: 0.5rem !important; } - -.ps-3 { - padding-left: 1rem !important; } - -.ps-4 { - padding-left: 1.5rem !important; } - -.ps-5 { - padding-left: 3rem !important; } - -.gap-0 { - gap: 0 !important; } - -.gap-1 { - gap: 0.25rem !important; } - -.gap-2 { - gap: 0.5rem !important; } - -.gap-3 { - gap: 1rem !important; } - -.gap-4 { - gap: 1.5rem !important; } - -.gap-5 { - gap: 3rem !important; } - -.row-gap-0 { - row-gap: 0 !important; } - -.row-gap-1 { - row-gap: 0.25rem !important; } - -.row-gap-2 { - row-gap: 0.5rem !important; } - -.row-gap-3 { - row-gap: 1rem !important; } - -.row-gap-4 { - row-gap: 1.5rem !important; } - -.row-gap-5 { - row-gap: 3rem !important; } - -.column-gap-0 { - column-gap: 0 !important; } - -.column-gap-1 { - column-gap: 0.25rem !important; } - -.column-gap-2 { - column-gap: 0.5rem !important; } - -.column-gap-3 { - column-gap: 1rem !important; } - -.column-gap-4 { - column-gap: 1.5rem !important; } - -.column-gap-5 { - column-gap: 3rem !important; } - -.font-monospace { - font-family: var(--bs-font-monospace) !important; } - -.fs-1 { - font-size: calc(1.375rem + 1.5vw) !important; } - -.fs-2 { - font-size: calc(1.325rem + 0.9vw) !important; } - -.fs-3 { - font-size: calc(1.275rem + 0.3vw) !important; } - -.fs-4 { - font-size: calc(1.26rem + 0.12vw) !important; } - -.fs-5 { - font-size: 1.15rem !important; } - -.fs-6 { - font-size: 1rem !important; } - -.fst-italic { - font-style: italic !important; } - -.fst-normal { - font-style: normal !important; } - -.fw-lighter { - font-weight: lighter !important; } - -.fw-light { - font-weight: 300 !important; } - -.fw-normal { - font-weight: 400 !important; } - -.fw-medium { - font-weight: 500 !important; } - -.fw-semibold { - font-weight: 600 !important; } - -.fw-bold { - font-weight: 700 !important; } - -.fw-bolder { - font-weight: bolder !important; } - -.lh-1 { - line-height: 1 !important; } - -.lh-sm { - line-height: 1.25 !important; } - -.lh-base { - line-height: 1.5 !important; } - -.lh-lg { - line-height: 2 !important; } - -.text-start { - text-align: left !important; } - -.text-end { - text-align: right !important; } - -.text-center { - text-align: center !important; } - -.text-decoration-none { - text-decoration: none !important; } - -.text-decoration-underline { - text-decoration: underline !important; } - -.text-decoration-line-through { - text-decoration: line-through !important; } - -.text-lowercase { - text-transform: lowercase !important; } - -.text-uppercase { - text-transform: uppercase !important; } - -.text-capitalize { - text-transform: capitalize !important; } - -.text-wrap { - white-space: normal !important; } - -.text-nowrap { - white-space: nowrap !important; } - -/* rtl:begin:remove */ -.text-break { - word-wrap: break-word !important; - word-break: break-word !important; } - -/* rtl:end:remove */ -.text-primary { - --bs-text-opacity: 1; - color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; } - -.text-secondary { - --bs-text-opacity: 1; - color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; } - -.text-success { - --bs-text-opacity: 1; - color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; } - -.text-info { - --bs-text-opacity: 1; - color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; } - -.text-warning { - --bs-text-opacity: 1; - color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; } - -.text-danger { - --bs-text-opacity: 1; - color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; } - -.text-light { - --bs-text-opacity: 1; - color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; } - -.text-dark { - --bs-text-opacity: 1; - color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; } - -.text-black { - --bs-text-opacity: 1; - color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; } - -.text-white { - --bs-text-opacity: 1; - color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; } - -.text-body { - --bs-text-opacity: 1; - color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important; } - -.text-muted { - --bs-text-opacity: 1; - color: var(--bs-secondary-color) !important; } - -.text-black-50 { - --bs-text-opacity: 1; - color: rgba(0, 0, 0, 0.5) !important; } - -.text-white-50 { - --bs-text-opacity: 1; - color: rgba(255, 255, 255, 0.5) !important; } - -.text-body-secondary, .td-page-meta__lastmod { - --bs-text-opacity: 1; - color: var(--bs-secondary-color) !important; } - -.text-body-tertiary { - --bs-text-opacity: 1; - color: var(--bs-tertiary-color) !important; } - -.text-body-emphasis { - --bs-text-opacity: 1; - color: var(--bs-emphasis-color) !important; } - -.text-reset { - --bs-text-opacity: 1; - color: inherit !important; } - -.text-opacity-25 { - --bs-text-opacity: 0.25; } - -.text-opacity-50 { - --bs-text-opacity: 0.5; } - -.text-opacity-75 { - --bs-text-opacity: 0.75; } - -.text-opacity-100 { - --bs-text-opacity: 1; } - -.text-primary-emphasis { - color: var(--bs-primary-text-emphasis) !important; } - -.text-secondary-emphasis { - color: var(--bs-secondary-text-emphasis) !important; } - -.text-success-emphasis { - color: var(--bs-success-text-emphasis) !important; } - -.text-info-emphasis { - color: var(--bs-info-text-emphasis) !important; } - -.text-warning-emphasis { - color: var(--bs-warning-text-emphasis) !important; } - -.text-danger-emphasis { - color: var(--bs-danger-text-emphasis) !important; } - -.text-light-emphasis { - color: var(--bs-light-text-emphasis) !important; } - -.text-dark-emphasis { - color: var(--bs-dark-text-emphasis) !important; } - -.link-opacity-10 { - --bs-link-opacity: 0.1; } - -.link-opacity-10-hover:hover { - --bs-link-opacity: 0.1; } - -.link-opacity-25 { - --bs-link-opacity: 0.25; } - -.link-opacity-25-hover:hover { - --bs-link-opacity: 0.25; } - -.link-opacity-50 { - --bs-link-opacity: 0.5; } - -.link-opacity-50-hover:hover { - --bs-link-opacity: 0.5; } - -.link-opacity-75 { - --bs-link-opacity: 0.75; } - -.link-opacity-75-hover:hover { - --bs-link-opacity: 0.75; } - -.link-opacity-100 { - --bs-link-opacity: 1; } - -.link-opacity-100-hover:hover { - --bs-link-opacity: 1; } - -.link-offset-1 { - text-underline-offset: 0.125em !important; } - -.link-offset-1-hover:hover { - text-underline-offset: 0.125em !important; } - -.link-offset-2 { - text-underline-offset: 0.25em !important; } - -.link-offset-2-hover:hover { - text-underline-offset: 0.25em !important; } - -.link-offset-3 { - text-underline-offset: 0.375em !important; } - -.link-offset-3-hover:hover { - text-underline-offset: 0.375em !important; } - -.link-underline-primary { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-secondary { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-success { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-info { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-warning { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-danger { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-light { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-dark { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; } - -.link-underline-opacity-0 { - --bs-link-underline-opacity: 0; } - -.link-underline-opacity-0-hover:hover { - --bs-link-underline-opacity: 0; } - -.link-underline-opacity-10 { - --bs-link-underline-opacity: 0.1; } - -.link-underline-opacity-10-hover:hover { - --bs-link-underline-opacity: 0.1; } - -.link-underline-opacity-25 { - --bs-link-underline-opacity: 0.25; } - -.link-underline-opacity-25-hover:hover { - --bs-link-underline-opacity: 0.25; } - -.link-underline-opacity-50 { - --bs-link-underline-opacity: 0.5; } - -.link-underline-opacity-50-hover:hover { - --bs-link-underline-opacity: 0.5; } - -.link-underline-opacity-75 { - --bs-link-underline-opacity: 0.75; } - -.link-underline-opacity-75-hover:hover { - --bs-link-underline-opacity: 0.75; } - -.link-underline-opacity-100 { - --bs-link-underline-opacity: 1; } - -.link-underline-opacity-100-hover:hover { - --bs-link-underline-opacity: 1; } - -.bg-primary { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important; } - -.bg-secondary { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important; } - -.bg-success { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important; } - -.bg-info { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important; } - -.bg-warning { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; } - -.bg-danger { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important; } - -.bg-light { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; } - -.bg-dark { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important; } - -.bg-black { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important; } - -.bg-white { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important; } - -.bg-body { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important; } - -.bg-transparent { - --bs-bg-opacity: 1; - background-color: transparent !important; } - -.bg-body-secondary { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important; } - -.bg-body-tertiary { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important; } - -.bg-opacity-10 { - --bs-bg-opacity: 0.1; } - -.bg-opacity-25 { - --bs-bg-opacity: 0.25; } - -.bg-opacity-50 { - --bs-bg-opacity: 0.5; } - -.bg-opacity-75 { - --bs-bg-opacity: 0.75; } - -.bg-opacity-100 { - --bs-bg-opacity: 1; } - -.bg-primary-subtle { - background-color: var(--bs-primary-bg-subtle) !important; } - -.bg-secondary-subtle { - background-color: var(--bs-secondary-bg-subtle) !important; } - -.bg-success-subtle { - background-color: var(--bs-success-bg-subtle) !important; } - -.bg-info-subtle { - background-color: var(--bs-info-bg-subtle) !important; } - -.bg-warning-subtle { - background-color: var(--bs-warning-bg-subtle) !important; } - -.bg-danger-subtle { - background-color: var(--bs-danger-bg-subtle) !important; } - -.bg-light-subtle { - background-color: var(--bs-light-bg-subtle) !important; } - -.bg-dark-subtle { - background-color: var(--bs-dark-bg-subtle) !important; } - -.bg-gradient { - background-image: var(--bs-gradient) !important; } - -.user-select-all { - user-select: all !important; } - -.user-select-auto { - user-select: auto !important; } - -.user-select-none { - user-select: none !important; } - -.pe-none { - pointer-events: none !important; } - -.pe-auto { - pointer-events: auto !important; } - -.rounded { - border-radius: var(--bs-border-radius) !important; } - -.rounded-0 { - border-radius: 0 !important; } - -.rounded-1 { - border-radius: var(--bs-border-radius-sm) !important; } - -.rounded-2 { - border-radius: var(--bs-border-radius) !important; } - -.rounded-3 { - border-radius: var(--bs-border-radius-lg) !important; } - -.rounded-4 { - border-radius: var(--bs-border-radius-xl) !important; } - -.rounded-5 { - border-radius: var(--bs-border-radius-xxl) !important; } - -.rounded-circle { - border-radius: 50% !important; } - -.rounded-pill { - border-radius: var(--bs-border-radius-pill) !important; } - -.rounded-top { - border-top-left-radius: var(--bs-border-radius) !important; - border-top-right-radius: var(--bs-border-radius) !important; } - -.rounded-top-0 { - border-top-left-radius: 0 !important; - border-top-right-radius: 0 !important; } - -.rounded-top-1 { - border-top-left-radius: var(--bs-border-radius-sm) !important; - border-top-right-radius: var(--bs-border-radius-sm) !important; } - -.rounded-top-2 { - border-top-left-radius: var(--bs-border-radius) !important; - border-top-right-radius: var(--bs-border-radius) !important; } - -.rounded-top-3 { - border-top-left-radius: var(--bs-border-radius-lg) !important; - border-top-right-radius: var(--bs-border-radius-lg) !important; } - -.rounded-top-4 { - border-top-left-radius: var(--bs-border-radius-xl) !important; - border-top-right-radius: var(--bs-border-radius-xl) !important; } - -.rounded-top-5 { - border-top-left-radius: var(--bs-border-radius-xxl) !important; - border-top-right-radius: var(--bs-border-radius-xxl) !important; } - -.rounded-top-circle { - border-top-left-radius: 50% !important; - border-top-right-radius: 50% !important; } - -.rounded-top-pill { - border-top-left-radius: var(--bs-border-radius-pill) !important; - border-top-right-radius: var(--bs-border-radius-pill) !important; } - -.rounded-end { - border-top-right-radius: var(--bs-border-radius) !important; - border-bottom-right-radius: var(--bs-border-radius) !important; } - -.rounded-end-0 { - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; } - -.rounded-end-1 { - border-top-right-radius: var(--bs-border-radius-sm) !important; - border-bottom-right-radius: var(--bs-border-radius-sm) !important; } - -.rounded-end-2 { - border-top-right-radius: var(--bs-border-radius) !important; - border-bottom-right-radius: var(--bs-border-radius) !important; } - -.rounded-end-3 { - border-top-right-radius: var(--bs-border-radius-lg) !important; - border-bottom-right-radius: var(--bs-border-radius-lg) !important; } - -.rounded-end-4 { - border-top-right-radius: var(--bs-border-radius-xl) !important; - border-bottom-right-radius: var(--bs-border-radius-xl) !important; } - -.rounded-end-5 { - border-top-right-radius: var(--bs-border-radius-xxl) !important; - border-bottom-right-radius: var(--bs-border-radius-xxl) !important; } - -.rounded-end-circle { - border-top-right-radius: 50% !important; - border-bottom-right-radius: 50% !important; } - -.rounded-end-pill { - border-top-right-radius: var(--bs-border-radius-pill) !important; - border-bottom-right-radius: var(--bs-border-radius-pill) !important; } - -.rounded-bottom { - border-bottom-right-radius: var(--bs-border-radius) !important; - border-bottom-left-radius: var(--bs-border-radius) !important; } - -.rounded-bottom-0 { - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 0 !important; } - -.rounded-bottom-1 { - border-bottom-right-radius: var(--bs-border-radius-sm) !important; - border-bottom-left-radius: var(--bs-border-radius-sm) !important; } - -.rounded-bottom-2 { - border-bottom-right-radius: var(--bs-border-radius) !important; - border-bottom-left-radius: var(--bs-border-radius) !important; } - -.rounded-bottom-3 { - border-bottom-right-radius: var(--bs-border-radius-lg) !important; - border-bottom-left-radius: var(--bs-border-radius-lg) !important; } - -.rounded-bottom-4 { - border-bottom-right-radius: var(--bs-border-radius-xl) !important; - border-bottom-left-radius: var(--bs-border-radius-xl) !important; } - -.rounded-bottom-5 { - border-bottom-right-radius: var(--bs-border-radius-xxl) !important; - border-bottom-left-radius: var(--bs-border-radius-xxl) !important; } - -.rounded-bottom-circle { - border-bottom-right-radius: 50% !important; - border-bottom-left-radius: 50% !important; } - -.rounded-bottom-pill { - border-bottom-right-radius: var(--bs-border-radius-pill) !important; - border-bottom-left-radius: var(--bs-border-radius-pill) !important; } - -.rounded-start { - border-bottom-left-radius: var(--bs-border-radius) !important; - border-top-left-radius: var(--bs-border-radius) !important; } - -.rounded-start-0 { - border-bottom-left-radius: 0 !important; - border-top-left-radius: 0 !important; } - -.rounded-start-1 { - border-bottom-left-radius: var(--bs-border-radius-sm) !important; - border-top-left-radius: var(--bs-border-radius-sm) !important; } - -.rounded-start-2 { - border-bottom-left-radius: var(--bs-border-radius) !important; - border-top-left-radius: var(--bs-border-radius) !important; } - -.rounded-start-3 { - border-bottom-left-radius: var(--bs-border-radius-lg) !important; - border-top-left-radius: var(--bs-border-radius-lg) !important; } - -.rounded-start-4 { - border-bottom-left-radius: var(--bs-border-radius-xl) !important; - border-top-left-radius: var(--bs-border-radius-xl) !important; } - -.rounded-start-5 { - border-bottom-left-radius: var(--bs-border-radius-xxl) !important; - border-top-left-radius: var(--bs-border-radius-xxl) !important; } - -.rounded-start-circle { - border-bottom-left-radius: 50% !important; - border-top-left-radius: 50% !important; } - -.rounded-start-pill { - border-bottom-left-radius: var(--bs-border-radius-pill) !important; - border-top-left-radius: var(--bs-border-radius-pill) !important; } - -.visible { - visibility: visible !important; } - -.invisible { - visibility: hidden !important; } - -.z-n1 { - z-index: -1 !important; } - -.z-0 { - z-index: 0 !important; } - -.z-1 { - z-index: 1 !important; } - -.z-2 { - z-index: 2 !important; } - -.z-3 { - z-index: 3 !important; } - -@media (min-width: 576px) { - .float-sm-start { - float: left !important; } - .float-sm-end { - float: right !important; } - .float-sm-none { - float: none !important; } - .object-fit-sm-contain { - object-fit: contain !important; } - .object-fit-sm-cover { - object-fit: cover !important; } - .object-fit-sm-fill { - object-fit: fill !important; } - .object-fit-sm-scale { - object-fit: scale-down !important; } - .object-fit-sm-none { - object-fit: none !important; } - .d-sm-inline { - display: inline !important; } - .d-sm-inline-block { - display: inline-block !important; } - .d-sm-block { - display: block !important; } - .d-sm-grid { - display: grid !important; } - .d-sm-inline-grid { - display: inline-grid !important; } - .d-sm-table { - display: table !important; } - .d-sm-table-row { - display: table-row !important; } - .d-sm-table-cell { - display: table-cell !important; } - .d-sm-flex { - display: flex !important; } - .d-sm-inline-flex { - display: inline-flex !important; } - .d-sm-none { - display: none !important; } - .flex-sm-fill { - flex: 1 1 auto !important; } - .flex-sm-row { - flex-direction: row !important; } - .flex-sm-column { - flex-direction: column !important; } - .flex-sm-row-reverse { - flex-direction: row-reverse !important; } - .flex-sm-column-reverse { - flex-direction: column-reverse !important; } - .flex-sm-grow-0 { - flex-grow: 0 !important; } - .flex-sm-grow-1 { - flex-grow: 1 !important; } - .flex-sm-shrink-0 { - flex-shrink: 0 !important; } - .flex-sm-shrink-1 { - flex-shrink: 1 !important; } - .flex-sm-wrap { - flex-wrap: wrap !important; } - .flex-sm-nowrap { - flex-wrap: nowrap !important; } - .flex-sm-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .justify-content-sm-start { - justify-content: flex-start !important; } - .justify-content-sm-end { - justify-content: flex-end !important; } - .justify-content-sm-center { - justify-content: center !important; } - .justify-content-sm-between { - justify-content: space-between !important; } - .justify-content-sm-around { - justify-content: space-around !important; } - .justify-content-sm-evenly { - justify-content: space-evenly !important; } - .align-items-sm-start { - align-items: flex-start !important; } - .align-items-sm-end { - align-items: flex-end !important; } - .align-items-sm-center { - align-items: center !important; } - .align-items-sm-baseline { - align-items: baseline !important; } - .align-items-sm-stretch { - align-items: stretch !important; } - .align-content-sm-start { - align-content: flex-start !important; } - .align-content-sm-end { - align-content: flex-end !important; } - .align-content-sm-center { - align-content: center !important; } - .align-content-sm-between { - align-content: space-between !important; } - .align-content-sm-around { - align-content: space-around !important; } - .align-content-sm-stretch { - align-content: stretch !important; } - .align-self-sm-auto { - align-self: auto !important; } - .align-self-sm-start { - align-self: flex-start !important; } - .align-self-sm-end { - align-self: flex-end !important; } - .align-self-sm-center { - align-self: center !important; } - .align-self-sm-baseline { - align-self: baseline !important; } - .align-self-sm-stretch { - align-self: stretch !important; } - .order-sm-first { - order: -1 !important; } - .order-sm-0 { - order: 0 !important; } - .order-sm-1 { - order: 1 !important; } - .order-sm-2 { - order: 2 !important; } - .order-sm-3 { - order: 3 !important; } - .order-sm-4 { - order: 4 !important; } - .order-sm-5 { - order: 5 !important; } - .order-sm-last { - order: 6 !important; } - .m-sm-0 { - margin: 0 !important; } - .m-sm-1 { - margin: 0.25rem !important; } - .m-sm-2 { - margin: 0.5rem !important; } - .m-sm-3 { - margin: 1rem !important; } - .m-sm-4 { - margin: 1.5rem !important; } - .m-sm-5 { - margin: 3rem !important; } - .m-sm-auto { - margin: auto !important; } - .mx-sm-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - .mx-sm-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - .mx-sm-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - .mx-sm-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - .mx-sm-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - .mx-sm-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - .mx-sm-auto { - margin-right: auto !important; - margin-left: auto !important; } - .my-sm-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - .my-sm-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - .my-sm-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - .my-sm-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - .my-sm-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - .my-sm-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - .my-sm-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - .mt-sm-0 { - margin-top: 0 !important; } - .mt-sm-1 { - margin-top: 0.25rem !important; } - .mt-sm-2 { - margin-top: 0.5rem !important; } - .mt-sm-3 { - margin-top: 1rem !important; } - .mt-sm-4 { - margin-top: 1.5rem !important; } - .mt-sm-5 { - margin-top: 3rem !important; } - .mt-sm-auto { - margin-top: auto !important; } - .me-sm-0 { - margin-right: 0 !important; } - .me-sm-1 { - margin-right: 0.25rem !important; } - .me-sm-2 { - margin-right: 0.5rem !important; } - .me-sm-3 { - margin-right: 1rem !important; } - .me-sm-4 { - margin-right: 1.5rem !important; } - .me-sm-5 { - margin-right: 3rem !important; } - .me-sm-auto { - margin-right: auto !important; } - .mb-sm-0 { - margin-bottom: 0 !important; } - .mb-sm-1 { - margin-bottom: 0.25rem !important; } - .mb-sm-2 { - margin-bottom: 0.5rem !important; } - .mb-sm-3 { - margin-bottom: 1rem !important; } - .mb-sm-4 { - margin-bottom: 1.5rem !important; } - .mb-sm-5 { - margin-bottom: 3rem !important; } - .mb-sm-auto { - margin-bottom: auto !important; } - .ms-sm-0 { - margin-left: 0 !important; } - .ms-sm-1 { - margin-left: 0.25rem !important; } - .ms-sm-2 { - margin-left: 0.5rem !important; } - .ms-sm-3 { - margin-left: 1rem !important; } - .ms-sm-4 { - margin-left: 1.5rem !important; } - .ms-sm-5 { - margin-left: 3rem !important; } - .ms-sm-auto { - margin-left: auto !important; } - .p-sm-0 { - padding: 0 !important; } - .p-sm-1 { - padding: 0.25rem !important; } - .p-sm-2 { - padding: 0.5rem !important; } - .p-sm-3 { - padding: 1rem !important; } - .p-sm-4 { - padding: 1.5rem !important; } - .p-sm-5 { - padding: 3rem !important; } - .px-sm-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - .px-sm-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - .px-sm-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - .px-sm-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - .px-sm-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - .px-sm-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - .py-sm-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - .py-sm-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - .py-sm-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - .py-sm-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - .py-sm-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - .py-sm-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - .pt-sm-0 { - padding-top: 0 !important; } - .pt-sm-1 { - padding-top: 0.25rem !important; } - .pt-sm-2 { - padding-top: 0.5rem !important; } - .pt-sm-3 { - padding-top: 1rem !important; } - .pt-sm-4 { - padding-top: 1.5rem !important; } - .pt-sm-5 { - padding-top: 3rem !important; } - .pe-sm-0 { - padding-right: 0 !important; } - .pe-sm-1 { - padding-right: 0.25rem !important; } - .pe-sm-2 { - padding-right: 0.5rem !important; } - .pe-sm-3 { - padding-right: 1rem !important; } - .pe-sm-4 { - padding-right: 1.5rem !important; } - .pe-sm-5 { - padding-right: 3rem !important; } - .pb-sm-0 { - padding-bottom: 0 !important; } - .pb-sm-1 { - padding-bottom: 0.25rem !important; } - .pb-sm-2 { - padding-bottom: 0.5rem !important; } - .pb-sm-3 { - padding-bottom: 1rem !important; } - .pb-sm-4 { - padding-bottom: 1.5rem !important; } - .pb-sm-5 { - padding-bottom: 3rem !important; } - .ps-sm-0 { - padding-left: 0 !important; } - .ps-sm-1 { - padding-left: 0.25rem !important; } - .ps-sm-2 { - padding-left: 0.5rem !important; } - .ps-sm-3 { - padding-left: 1rem !important; } - .ps-sm-4 { - padding-left: 1.5rem !important; } - .ps-sm-5 { - padding-left: 3rem !important; } - .gap-sm-0 { - gap: 0 !important; } - .gap-sm-1 { - gap: 0.25rem !important; } - .gap-sm-2 { - gap: 0.5rem !important; } - .gap-sm-3 { - gap: 1rem !important; } - .gap-sm-4 { - gap: 1.5rem !important; } - .gap-sm-5 { - gap: 3rem !important; } - .row-gap-sm-0 { - row-gap: 0 !important; } - .row-gap-sm-1 { - row-gap: 0.25rem !important; } - .row-gap-sm-2 { - row-gap: 0.5rem !important; } - .row-gap-sm-3 { - row-gap: 1rem !important; } - .row-gap-sm-4 { - row-gap: 1.5rem !important; } - .row-gap-sm-5 { - row-gap: 3rem !important; } - .column-gap-sm-0 { - column-gap: 0 !important; } - .column-gap-sm-1 { - column-gap: 0.25rem !important; } - .column-gap-sm-2 { - column-gap: 0.5rem !important; } - .column-gap-sm-3 { - column-gap: 1rem !important; } - .column-gap-sm-4 { - column-gap: 1.5rem !important; } - .column-gap-sm-5 { - column-gap: 3rem !important; } - .text-sm-start { - text-align: left !important; } - .text-sm-end { - text-align: right !important; } - .text-sm-center { - text-align: center !important; } } - -@media (min-width: 768px) { - .float-md-start { - float: left !important; } - .float-md-end { - float: right !important; } - .float-md-none { - float: none !important; } - .object-fit-md-contain { - object-fit: contain !important; } - .object-fit-md-cover { - object-fit: cover !important; } - .object-fit-md-fill { - object-fit: fill !important; } - .object-fit-md-scale { - object-fit: scale-down !important; } - .object-fit-md-none { - object-fit: none !important; } - .d-md-inline { - display: inline !important; } - .d-md-inline-block { - display: inline-block !important; } - .d-md-block { - display: block !important; } - .d-md-grid { - display: grid !important; } - .d-md-inline-grid { - display: inline-grid !important; } - .d-md-table { - display: table !important; } - .d-md-table-row { - display: table-row !important; } - .d-md-table-cell { - display: table-cell !important; } - .d-md-flex { - display: flex !important; } - .d-md-inline-flex { - display: inline-flex !important; } - .d-md-none { - display: none !important; } - .flex-md-fill { - flex: 1 1 auto !important; } - .flex-md-row { - flex-direction: row !important; } - .flex-md-column { - flex-direction: column !important; } - .flex-md-row-reverse { - flex-direction: row-reverse !important; } - .flex-md-column-reverse { - flex-direction: column-reverse !important; } - .flex-md-grow-0 { - flex-grow: 0 !important; } - .flex-md-grow-1 { - flex-grow: 1 !important; } - .flex-md-shrink-0 { - flex-shrink: 0 !important; } - .flex-md-shrink-1 { - flex-shrink: 1 !important; } - .flex-md-wrap { - flex-wrap: wrap !important; } - .flex-md-nowrap { - flex-wrap: nowrap !important; } - .flex-md-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .justify-content-md-start { - justify-content: flex-start !important; } - .justify-content-md-end { - justify-content: flex-end !important; } - .justify-content-md-center { - justify-content: center !important; } - .justify-content-md-between { - justify-content: space-between !important; } - .justify-content-md-around { - justify-content: space-around !important; } - .justify-content-md-evenly { - justify-content: space-evenly !important; } - .align-items-md-start { - align-items: flex-start !important; } - .align-items-md-end { - align-items: flex-end !important; } - .align-items-md-center { - align-items: center !important; } - .align-items-md-baseline { - align-items: baseline !important; } - .align-items-md-stretch { - align-items: stretch !important; } - .align-content-md-start { - align-content: flex-start !important; } - .align-content-md-end { - align-content: flex-end !important; } - .align-content-md-center { - align-content: center !important; } - .align-content-md-between { - align-content: space-between !important; } - .align-content-md-around { - align-content: space-around !important; } - .align-content-md-stretch { - align-content: stretch !important; } - .align-self-md-auto { - align-self: auto !important; } - .align-self-md-start { - align-self: flex-start !important; } - .align-self-md-end { - align-self: flex-end !important; } - .align-self-md-center { - align-self: center !important; } - .align-self-md-baseline { - align-self: baseline !important; } - .align-self-md-stretch { - align-self: stretch !important; } - .order-md-first { - order: -1 !important; } - .order-md-0 { - order: 0 !important; } - .order-md-1 { - order: 1 !important; } - .order-md-2 { - order: 2 !important; } - .order-md-3 { - order: 3 !important; } - .order-md-4 { - order: 4 !important; } - .order-md-5 { - order: 5 !important; } - .order-md-last { - order: 6 !important; } - .m-md-0 { - margin: 0 !important; } - .m-md-1 { - margin: 0.25rem !important; } - .m-md-2 { - margin: 0.5rem !important; } - .m-md-3 { - margin: 1rem !important; } - .m-md-4 { - margin: 1.5rem !important; } - .m-md-5 { - margin: 3rem !important; } - .m-md-auto { - margin: auto !important; } - .mx-md-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - .mx-md-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - .mx-md-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - .mx-md-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - .mx-md-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - .mx-md-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - .mx-md-auto { - margin-right: auto !important; - margin-left: auto !important; } - .my-md-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - .my-md-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - .my-md-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - .my-md-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - .my-md-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - .my-md-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - .my-md-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - .mt-md-0 { - margin-top: 0 !important; } - .mt-md-1 { - margin-top: 0.25rem !important; } - .mt-md-2 { - margin-top: 0.5rem !important; } - .mt-md-3 { - margin-top: 1rem !important; } - .mt-md-4 { - margin-top: 1.5rem !important; } - .mt-md-5 { - margin-top: 3rem !important; } - .mt-md-auto { - margin-top: auto !important; } - .me-md-0 { - margin-right: 0 !important; } - .me-md-1 { - margin-right: 0.25rem !important; } - .me-md-2 { - margin-right: 0.5rem !important; } - .me-md-3 { - margin-right: 1rem !important; } - .me-md-4 { - margin-right: 1.5rem !important; } - .me-md-5 { - margin-right: 3rem !important; } - .me-md-auto { - margin-right: auto !important; } - .mb-md-0 { - margin-bottom: 0 !important; } - .mb-md-1 { - margin-bottom: 0.25rem !important; } - .mb-md-2 { - margin-bottom: 0.5rem !important; } - .mb-md-3 { - margin-bottom: 1rem !important; } - .mb-md-4 { - margin-bottom: 1.5rem !important; } - .mb-md-5 { - margin-bottom: 3rem !important; } - .mb-md-auto { - margin-bottom: auto !important; } - .ms-md-0 { - margin-left: 0 !important; } - .ms-md-1 { - margin-left: 0.25rem !important; } - .ms-md-2 { - margin-left: 0.5rem !important; } - .ms-md-3 { - margin-left: 1rem !important; } - .ms-md-4 { - margin-left: 1.5rem !important; } - .ms-md-5 { - margin-left: 3rem !important; } - .ms-md-auto { - margin-left: auto !important; } - .p-md-0 { - padding: 0 !important; } - .p-md-1 { - padding: 0.25rem !important; } - .p-md-2 { - padding: 0.5rem !important; } - .p-md-3 { - padding: 1rem !important; } - .p-md-4 { - padding: 1.5rem !important; } - .p-md-5 { - padding: 3rem !important; } - .px-md-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - .px-md-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - .px-md-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - .px-md-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - .px-md-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - .px-md-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - .py-md-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - .py-md-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - .py-md-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - .py-md-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - .py-md-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - .py-md-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - .pt-md-0 { - padding-top: 0 !important; } - .pt-md-1 { - padding-top: 0.25rem !important; } - .pt-md-2 { - padding-top: 0.5rem !important; } - .pt-md-3 { - padding-top: 1rem !important; } - .pt-md-4 { - padding-top: 1.5rem !important; } - .pt-md-5 { - padding-top: 3rem !important; } - .pe-md-0 { - padding-right: 0 !important; } - .pe-md-1 { - padding-right: 0.25rem !important; } - .pe-md-2 { - padding-right: 0.5rem !important; } - .pe-md-3 { - padding-right: 1rem !important; } - .pe-md-4 { - padding-right: 1.5rem !important; } - .pe-md-5 { - padding-right: 3rem !important; } - .pb-md-0 { - padding-bottom: 0 !important; } - .pb-md-1 { - padding-bottom: 0.25rem !important; } - .pb-md-2 { - padding-bottom: 0.5rem !important; } - .pb-md-3 { - padding-bottom: 1rem !important; } - .pb-md-4 { - padding-bottom: 1.5rem !important; } - .pb-md-5 { - padding-bottom: 3rem !important; } - .ps-md-0 { - padding-left: 0 !important; } - .ps-md-1 { - padding-left: 0.25rem !important; } - .ps-md-2 { - padding-left: 0.5rem !important; } - .ps-md-3 { - padding-left: 1rem !important; } - .ps-md-4 { - padding-left: 1.5rem !important; } - .ps-md-5 { - padding-left: 3rem !important; } - .gap-md-0 { - gap: 0 !important; } - .gap-md-1 { - gap: 0.25rem !important; } - .gap-md-2 { - gap: 0.5rem !important; } - .gap-md-3 { - gap: 1rem !important; } - .gap-md-4 { - gap: 1.5rem !important; } - .gap-md-5 { - gap: 3rem !important; } - .row-gap-md-0 { - row-gap: 0 !important; } - .row-gap-md-1 { - row-gap: 0.25rem !important; } - .row-gap-md-2 { - row-gap: 0.5rem !important; } - .row-gap-md-3 { - row-gap: 1rem !important; } - .row-gap-md-4 { - row-gap: 1.5rem !important; } - .row-gap-md-5 { - row-gap: 3rem !important; } - .column-gap-md-0 { - column-gap: 0 !important; } - .column-gap-md-1 { - column-gap: 0.25rem !important; } - .column-gap-md-2 { - column-gap: 0.5rem !important; } - .column-gap-md-3 { - column-gap: 1rem !important; } - .column-gap-md-4 { - column-gap: 1.5rem !important; } - .column-gap-md-5 { - column-gap: 3rem !important; } - .text-md-start { - text-align: left !important; } - .text-md-end { - text-align: right !important; } - .text-md-center { - text-align: center !important; } } - -@media (min-width: 992px) { - .float-lg-start { - float: left !important; } - .float-lg-end { - float: right !important; } - .float-lg-none { - float: none !important; } - .object-fit-lg-contain { - object-fit: contain !important; } - .object-fit-lg-cover { - object-fit: cover !important; } - .object-fit-lg-fill { - object-fit: fill !important; } - .object-fit-lg-scale { - object-fit: scale-down !important; } - .object-fit-lg-none { - object-fit: none !important; } - .d-lg-inline { - display: inline !important; } - .d-lg-inline-block { - display: inline-block !important; } - .d-lg-block, .td-blog .td-rss-button { - display: block !important; } - .d-lg-grid { - display: grid !important; } - .d-lg-inline-grid { - display: inline-grid !important; } - .d-lg-table { - display: table !important; } - .d-lg-table-row { - display: table-row !important; } - .d-lg-table-cell { - display: table-cell !important; } - .d-lg-flex { - display: flex !important; } - .d-lg-inline-flex { - display: inline-flex !important; } - .d-lg-none { - display: none !important; } - .flex-lg-fill { - flex: 1 1 auto !important; } - .flex-lg-row { - flex-direction: row !important; } - .flex-lg-column { - flex-direction: column !important; } - .flex-lg-row-reverse { - flex-direction: row-reverse !important; } - .flex-lg-column-reverse { - flex-direction: column-reverse !important; } - .flex-lg-grow-0 { - flex-grow: 0 !important; } - .flex-lg-grow-1 { - flex-grow: 1 !important; } - .flex-lg-shrink-0 { - flex-shrink: 0 !important; } - .flex-lg-shrink-1 { - flex-shrink: 1 !important; } - .flex-lg-wrap { - flex-wrap: wrap !important; } - .flex-lg-nowrap { - flex-wrap: nowrap !important; } - .flex-lg-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .justify-content-lg-start { - justify-content: flex-start !important; } - .justify-content-lg-end { - justify-content: flex-end !important; } - .justify-content-lg-center { - justify-content: center !important; } - .justify-content-lg-between { - justify-content: space-between !important; } - .justify-content-lg-around { - justify-content: space-around !important; } - .justify-content-lg-evenly { - justify-content: space-evenly !important; } - .align-items-lg-start { - align-items: flex-start !important; } - .align-items-lg-end { - align-items: flex-end !important; } - .align-items-lg-center { - align-items: center !important; } - .align-items-lg-baseline { - align-items: baseline !important; } - .align-items-lg-stretch { - align-items: stretch !important; } - .align-content-lg-start { - align-content: flex-start !important; } - .align-content-lg-end { - align-content: flex-end !important; } - .align-content-lg-center { - align-content: center !important; } - .align-content-lg-between { - align-content: space-between !important; } - .align-content-lg-around { - align-content: space-around !important; } - .align-content-lg-stretch { - align-content: stretch !important; } - .align-self-lg-auto { - align-self: auto !important; } - .align-self-lg-start { - align-self: flex-start !important; } - .align-self-lg-end { - align-self: flex-end !important; } - .align-self-lg-center { - align-self: center !important; } - .align-self-lg-baseline { - align-self: baseline !important; } - .align-self-lg-stretch { - align-self: stretch !important; } - .order-lg-first { - order: -1 !important; } - .order-lg-0 { - order: 0 !important; } - .order-lg-1 { - order: 1 !important; } - .order-lg-2 { - order: 2 !important; } - .order-lg-3 { - order: 3 !important; } - .order-lg-4 { - order: 4 !important; } - .order-lg-5 { - order: 5 !important; } - .order-lg-last { - order: 6 !important; } - .m-lg-0 { - margin: 0 !important; } - .m-lg-1 { - margin: 0.25rem !important; } - .m-lg-2 { - margin: 0.5rem !important; } - .m-lg-3 { - margin: 1rem !important; } - .m-lg-4 { - margin: 1.5rem !important; } - .m-lg-5 { - margin: 3rem !important; } - .m-lg-auto { - margin: auto !important; } - .mx-lg-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - .mx-lg-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - .mx-lg-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - .mx-lg-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - .mx-lg-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - .mx-lg-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - .mx-lg-auto { - margin-right: auto !important; - margin-left: auto !important; } - .my-lg-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - .my-lg-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - .my-lg-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - .my-lg-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - .my-lg-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - .my-lg-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - .my-lg-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - .mt-lg-0 { - margin-top: 0 !important; } - .mt-lg-1 { - margin-top: 0.25rem !important; } - .mt-lg-2 { - margin-top: 0.5rem !important; } - .mt-lg-3 { - margin-top: 1rem !important; } - .mt-lg-4 { - margin-top: 1.5rem !important; } - .mt-lg-5 { - margin-top: 3rem !important; } - .mt-lg-auto { - margin-top: auto !important; } - .me-lg-0 { - margin-right: 0 !important; } - .me-lg-1 { - margin-right: 0.25rem !important; } - .me-lg-2 { - margin-right: 0.5rem !important; } - .me-lg-3 { - margin-right: 1rem !important; } - .me-lg-4 { - margin-right: 1.5rem !important; } - .me-lg-5 { - margin-right: 3rem !important; } - .me-lg-auto { - margin-right: auto !important; } - .mb-lg-0 { - margin-bottom: 0 !important; } - .mb-lg-1 { - margin-bottom: 0.25rem !important; } - .mb-lg-2 { - margin-bottom: 0.5rem !important; } - .mb-lg-3 { - margin-bottom: 1rem !important; } - .mb-lg-4 { - margin-bottom: 1.5rem !important; } - .mb-lg-5 { - margin-bottom: 3rem !important; } - .mb-lg-auto { - margin-bottom: auto !important; } - .ms-lg-0 { - margin-left: 0 !important; } - .ms-lg-1 { - margin-left: 0.25rem !important; } - .ms-lg-2 { - margin-left: 0.5rem !important; } - .ms-lg-3 { - margin-left: 1rem !important; } - .ms-lg-4 { - margin-left: 1.5rem !important; } - .ms-lg-5 { - margin-left: 3rem !important; } - .ms-lg-auto { - margin-left: auto !important; } - .p-lg-0 { - padding: 0 !important; } - .p-lg-1 { - padding: 0.25rem !important; } - .p-lg-2 { - padding: 0.5rem !important; } - .p-lg-3 { - padding: 1rem !important; } - .p-lg-4 { - padding: 1.5rem !important; } - .p-lg-5 { - padding: 3rem !important; } - .px-lg-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - .px-lg-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - .px-lg-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - .px-lg-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - .px-lg-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - .px-lg-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - .py-lg-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - .py-lg-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - .py-lg-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - .py-lg-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - .py-lg-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - .py-lg-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - .pt-lg-0 { - padding-top: 0 !important; } - .pt-lg-1 { - padding-top: 0.25rem !important; } - .pt-lg-2 { - padding-top: 0.5rem !important; } - .pt-lg-3 { - padding-top: 1rem !important; } - .pt-lg-4 { - padding-top: 1.5rem !important; } - .pt-lg-5 { - padding-top: 3rem !important; } - .pe-lg-0 { - padding-right: 0 !important; } - .pe-lg-1 { - padding-right: 0.25rem !important; } - .pe-lg-2 { - padding-right: 0.5rem !important; } - .pe-lg-3 { - padding-right: 1rem !important; } - .pe-lg-4 { - padding-right: 1.5rem !important; } - .pe-lg-5 { - padding-right: 3rem !important; } - .pb-lg-0 { - padding-bottom: 0 !important; } - .pb-lg-1 { - padding-bottom: 0.25rem !important; } - .pb-lg-2 { - padding-bottom: 0.5rem !important; } - .pb-lg-3 { - padding-bottom: 1rem !important; } - .pb-lg-4 { - padding-bottom: 1.5rem !important; } - .pb-lg-5 { - padding-bottom: 3rem !important; } - .ps-lg-0 { - padding-left: 0 !important; } - .ps-lg-1 { - padding-left: 0.25rem !important; } - .ps-lg-2 { - padding-left: 0.5rem !important; } - .ps-lg-3 { - padding-left: 1rem !important; } - .ps-lg-4 { - padding-left: 1.5rem !important; } - .ps-lg-5 { - padding-left: 3rem !important; } - .gap-lg-0 { - gap: 0 !important; } - .gap-lg-1 { - gap: 0.25rem !important; } - .gap-lg-2 { - gap: 0.5rem !important; } - .gap-lg-3 { - gap: 1rem !important; } - .gap-lg-4 { - gap: 1.5rem !important; } - .gap-lg-5 { - gap: 3rem !important; } - .row-gap-lg-0 { - row-gap: 0 !important; } - .row-gap-lg-1 { - row-gap: 0.25rem !important; } - .row-gap-lg-2 { - row-gap: 0.5rem !important; } - .row-gap-lg-3 { - row-gap: 1rem !important; } - .row-gap-lg-4 { - row-gap: 1.5rem !important; } - .row-gap-lg-5 { - row-gap: 3rem !important; } - .column-gap-lg-0 { - column-gap: 0 !important; } - .column-gap-lg-1 { - column-gap: 0.25rem !important; } - .column-gap-lg-2 { - column-gap: 0.5rem !important; } - .column-gap-lg-3 { - column-gap: 1rem !important; } - .column-gap-lg-4 { - column-gap: 1.5rem !important; } - .column-gap-lg-5 { - column-gap: 3rem !important; } - .text-lg-start { - text-align: left !important; } - .text-lg-end { - text-align: right !important; } - .text-lg-center { - text-align: center !important; } } - -@media (min-width: 1200px) { - .float-xl-start { - float: left !important; } - .float-xl-end { - float: right !important; } - .float-xl-none { - float: none !important; } - .object-fit-xl-contain { - object-fit: contain !important; } - .object-fit-xl-cover { - object-fit: cover !important; } - .object-fit-xl-fill { - object-fit: fill !important; } - .object-fit-xl-scale { - object-fit: scale-down !important; } - .object-fit-xl-none { - object-fit: none !important; } - .d-xl-inline { - display: inline !important; } - .d-xl-inline-block { - display: inline-block !important; } - .d-xl-block { - display: block !important; } - .d-xl-grid { - display: grid !important; } - .d-xl-inline-grid { - display: inline-grid !important; } - .d-xl-table { - display: table !important; } - .d-xl-table-row { - display: table-row !important; } - .d-xl-table-cell { - display: table-cell !important; } - .d-xl-flex { - display: flex !important; } - .d-xl-inline-flex { - display: inline-flex !important; } - .d-xl-none { - display: none !important; } - .flex-xl-fill { - flex: 1 1 auto !important; } - .flex-xl-row { - flex-direction: row !important; } - .flex-xl-column { - flex-direction: column !important; } - .flex-xl-row-reverse { - flex-direction: row-reverse !important; } - .flex-xl-column-reverse { - flex-direction: column-reverse !important; } - .flex-xl-grow-0 { - flex-grow: 0 !important; } - .flex-xl-grow-1 { - flex-grow: 1 !important; } - .flex-xl-shrink-0 { - flex-shrink: 0 !important; } - .flex-xl-shrink-1 { - flex-shrink: 1 !important; } - .flex-xl-wrap { - flex-wrap: wrap !important; } - .flex-xl-nowrap { - flex-wrap: nowrap !important; } - .flex-xl-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .justify-content-xl-start { - justify-content: flex-start !important; } - .justify-content-xl-end { - justify-content: flex-end !important; } - .justify-content-xl-center { - justify-content: center !important; } - .justify-content-xl-between { - justify-content: space-between !important; } - .justify-content-xl-around { - justify-content: space-around !important; } - .justify-content-xl-evenly { - justify-content: space-evenly !important; } - .align-items-xl-start { - align-items: flex-start !important; } - .align-items-xl-end { - align-items: flex-end !important; } - .align-items-xl-center { - align-items: center !important; } - .align-items-xl-baseline { - align-items: baseline !important; } - .align-items-xl-stretch { - align-items: stretch !important; } - .align-content-xl-start { - align-content: flex-start !important; } - .align-content-xl-end { - align-content: flex-end !important; } - .align-content-xl-center { - align-content: center !important; } - .align-content-xl-between { - align-content: space-between !important; } - .align-content-xl-around { - align-content: space-around !important; } - .align-content-xl-stretch { - align-content: stretch !important; } - .align-self-xl-auto { - align-self: auto !important; } - .align-self-xl-start { - align-self: flex-start !important; } - .align-self-xl-end { - align-self: flex-end !important; } - .align-self-xl-center { - align-self: center !important; } - .align-self-xl-baseline { - align-self: baseline !important; } - .align-self-xl-stretch { - align-self: stretch !important; } - .order-xl-first { - order: -1 !important; } - .order-xl-0 { - order: 0 !important; } - .order-xl-1 { - order: 1 !important; } - .order-xl-2 { - order: 2 !important; } - .order-xl-3 { - order: 3 !important; } - .order-xl-4 { - order: 4 !important; } - .order-xl-5 { - order: 5 !important; } - .order-xl-last { - order: 6 !important; } - .m-xl-0 { - margin: 0 !important; } - .m-xl-1 { - margin: 0.25rem !important; } - .m-xl-2 { - margin: 0.5rem !important; } - .m-xl-3 { - margin: 1rem !important; } - .m-xl-4 { - margin: 1.5rem !important; } - .m-xl-5 { - margin: 3rem !important; } - .m-xl-auto { - margin: auto !important; } - .mx-xl-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - .mx-xl-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - .mx-xl-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - .mx-xl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - .mx-xl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - .mx-xl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - .mx-xl-auto { - margin-right: auto !important; - margin-left: auto !important; } - .my-xl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - .my-xl-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - .my-xl-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - .my-xl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - .my-xl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - .my-xl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - .my-xl-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - .mt-xl-0 { - margin-top: 0 !important; } - .mt-xl-1 { - margin-top: 0.25rem !important; } - .mt-xl-2 { - margin-top: 0.5rem !important; } - .mt-xl-3 { - margin-top: 1rem !important; } - .mt-xl-4 { - margin-top: 1.5rem !important; } - .mt-xl-5 { - margin-top: 3rem !important; } - .mt-xl-auto { - margin-top: auto !important; } - .me-xl-0 { - margin-right: 0 !important; } - .me-xl-1 { - margin-right: 0.25rem !important; } - .me-xl-2 { - margin-right: 0.5rem !important; } - .me-xl-3 { - margin-right: 1rem !important; } - .me-xl-4 { - margin-right: 1.5rem !important; } - .me-xl-5 { - margin-right: 3rem !important; } - .me-xl-auto { - margin-right: auto !important; } - .mb-xl-0 { - margin-bottom: 0 !important; } - .mb-xl-1 { - margin-bottom: 0.25rem !important; } - .mb-xl-2 { - margin-bottom: 0.5rem !important; } - .mb-xl-3 { - margin-bottom: 1rem !important; } - .mb-xl-4 { - margin-bottom: 1.5rem !important; } - .mb-xl-5 { - margin-bottom: 3rem !important; } - .mb-xl-auto { - margin-bottom: auto !important; } - .ms-xl-0 { - margin-left: 0 !important; } - .ms-xl-1 { - margin-left: 0.25rem !important; } - .ms-xl-2 { - margin-left: 0.5rem !important; } - .ms-xl-3 { - margin-left: 1rem !important; } - .ms-xl-4 { - margin-left: 1.5rem !important; } - .ms-xl-5 { - margin-left: 3rem !important; } - .ms-xl-auto { - margin-left: auto !important; } - .p-xl-0 { - padding: 0 !important; } - .p-xl-1 { - padding: 0.25rem !important; } - .p-xl-2 { - padding: 0.5rem !important; } - .p-xl-3 { - padding: 1rem !important; } - .p-xl-4 { - padding: 1.5rem !important; } - .p-xl-5 { - padding: 3rem !important; } - .px-xl-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - .px-xl-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - .px-xl-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - .px-xl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - .px-xl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - .px-xl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - .py-xl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - .py-xl-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - .py-xl-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - .py-xl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - .py-xl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - .py-xl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - .pt-xl-0 { - padding-top: 0 !important; } - .pt-xl-1 { - padding-top: 0.25rem !important; } - .pt-xl-2 { - padding-top: 0.5rem !important; } - .pt-xl-3 { - padding-top: 1rem !important; } - .pt-xl-4 { - padding-top: 1.5rem !important; } - .pt-xl-5 { - padding-top: 3rem !important; } - .pe-xl-0 { - padding-right: 0 !important; } - .pe-xl-1 { - padding-right: 0.25rem !important; } - .pe-xl-2 { - padding-right: 0.5rem !important; } - .pe-xl-3 { - padding-right: 1rem !important; } - .pe-xl-4 { - padding-right: 1.5rem !important; } - .pe-xl-5 { - padding-right: 3rem !important; } - .pb-xl-0 { - padding-bottom: 0 !important; } - .pb-xl-1 { - padding-bottom: 0.25rem !important; } - .pb-xl-2 { - padding-bottom: 0.5rem !important; } - .pb-xl-3 { - padding-bottom: 1rem !important; } - .pb-xl-4 { - padding-bottom: 1.5rem !important; } - .pb-xl-5 { - padding-bottom: 3rem !important; } - .ps-xl-0 { - padding-left: 0 !important; } - .ps-xl-1 { - padding-left: 0.25rem !important; } - .ps-xl-2 { - padding-left: 0.5rem !important; } - .ps-xl-3 { - padding-left: 1rem !important; } - .ps-xl-4 { - padding-left: 1.5rem !important; } - .ps-xl-5 { - padding-left: 3rem !important; } - .gap-xl-0 { - gap: 0 !important; } - .gap-xl-1 { - gap: 0.25rem !important; } - .gap-xl-2 { - gap: 0.5rem !important; } - .gap-xl-3 { - gap: 1rem !important; } - .gap-xl-4 { - gap: 1.5rem !important; } - .gap-xl-5 { - gap: 3rem !important; } - .row-gap-xl-0 { - row-gap: 0 !important; } - .row-gap-xl-1 { - row-gap: 0.25rem !important; } - .row-gap-xl-2 { - row-gap: 0.5rem !important; } - .row-gap-xl-3 { - row-gap: 1rem !important; } - .row-gap-xl-4 { - row-gap: 1.5rem !important; } - .row-gap-xl-5 { - row-gap: 3rem !important; } - .column-gap-xl-0 { - column-gap: 0 !important; } - .column-gap-xl-1 { - column-gap: 0.25rem !important; } - .column-gap-xl-2 { - column-gap: 0.5rem !important; } - .column-gap-xl-3 { - column-gap: 1rem !important; } - .column-gap-xl-4 { - column-gap: 1.5rem !important; } - .column-gap-xl-5 { - column-gap: 3rem !important; } - .text-xl-start { - text-align: left !important; } - .text-xl-end { - text-align: right !important; } - .text-xl-center { - text-align: center !important; } } - -@media (min-width: 1400px) { - .float-xxl-start { - float: left !important; } - .float-xxl-end { - float: right !important; } - .float-xxl-none { - float: none !important; } - .object-fit-xxl-contain { - object-fit: contain !important; } - .object-fit-xxl-cover { - object-fit: cover !important; } - .object-fit-xxl-fill { - object-fit: fill !important; } - .object-fit-xxl-scale { - object-fit: scale-down !important; } - .object-fit-xxl-none { - object-fit: none !important; } - .d-xxl-inline { - display: inline !important; } - .d-xxl-inline-block { - display: inline-block !important; } - .d-xxl-block { - display: block !important; } - .d-xxl-grid { - display: grid !important; } - .d-xxl-inline-grid { - display: inline-grid !important; } - .d-xxl-table { - display: table !important; } - .d-xxl-table-row { - display: table-row !important; } - .d-xxl-table-cell { - display: table-cell !important; } - .d-xxl-flex { - display: flex !important; } - .d-xxl-inline-flex { - display: inline-flex !important; } - .d-xxl-none { - display: none !important; } - .flex-xxl-fill { - flex: 1 1 auto !important; } - .flex-xxl-row { - flex-direction: row !important; } - .flex-xxl-column { - flex-direction: column !important; } - .flex-xxl-row-reverse { - flex-direction: row-reverse !important; } - .flex-xxl-column-reverse { - flex-direction: column-reverse !important; } - .flex-xxl-grow-0 { - flex-grow: 0 !important; } - .flex-xxl-grow-1 { - flex-grow: 1 !important; } - .flex-xxl-shrink-0 { - flex-shrink: 0 !important; } - .flex-xxl-shrink-1 { - flex-shrink: 1 !important; } - .flex-xxl-wrap { - flex-wrap: wrap !important; } - .flex-xxl-nowrap { - flex-wrap: nowrap !important; } - .flex-xxl-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .justify-content-xxl-start { - justify-content: flex-start !important; } - .justify-content-xxl-end { - justify-content: flex-end !important; } - .justify-content-xxl-center { - justify-content: center !important; } - .justify-content-xxl-between { - justify-content: space-between !important; } - .justify-content-xxl-around { - justify-content: space-around !important; } - .justify-content-xxl-evenly { - justify-content: space-evenly !important; } - .align-items-xxl-start { - align-items: flex-start !important; } - .align-items-xxl-end { - align-items: flex-end !important; } - .align-items-xxl-center { - align-items: center !important; } - .align-items-xxl-baseline { - align-items: baseline !important; } - .align-items-xxl-stretch { - align-items: stretch !important; } - .align-content-xxl-start { - align-content: flex-start !important; } - .align-content-xxl-end { - align-content: flex-end !important; } - .align-content-xxl-center { - align-content: center !important; } - .align-content-xxl-between { - align-content: space-between !important; } - .align-content-xxl-around { - align-content: space-around !important; } - .align-content-xxl-stretch { - align-content: stretch !important; } - .align-self-xxl-auto { - align-self: auto !important; } - .align-self-xxl-start { - align-self: flex-start !important; } - .align-self-xxl-end { - align-self: flex-end !important; } - .align-self-xxl-center { - align-self: center !important; } - .align-self-xxl-baseline { - align-self: baseline !important; } - .align-self-xxl-stretch { - align-self: stretch !important; } - .order-xxl-first { - order: -1 !important; } - .order-xxl-0 { - order: 0 !important; } - .order-xxl-1 { - order: 1 !important; } - .order-xxl-2 { - order: 2 !important; } - .order-xxl-3 { - order: 3 !important; } - .order-xxl-4 { - order: 4 !important; } - .order-xxl-5 { - order: 5 !important; } - .order-xxl-last { - order: 6 !important; } - .m-xxl-0 { - margin: 0 !important; } - .m-xxl-1 { - margin: 0.25rem !important; } - .m-xxl-2 { - margin: 0.5rem !important; } - .m-xxl-3 { - margin: 1rem !important; } - .m-xxl-4 { - margin: 1.5rem !important; } - .m-xxl-5 { - margin: 3rem !important; } - .m-xxl-auto { - margin: auto !important; } - .mx-xxl-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - .mx-xxl-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - .mx-xxl-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - .mx-xxl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - .mx-xxl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - .mx-xxl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - .mx-xxl-auto { - margin-right: auto !important; - margin-left: auto !important; } - .my-xxl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - .my-xxl-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - .my-xxl-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - .my-xxl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - .my-xxl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - .my-xxl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - .my-xxl-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - .mt-xxl-0 { - margin-top: 0 !important; } - .mt-xxl-1 { - margin-top: 0.25rem !important; } - .mt-xxl-2 { - margin-top: 0.5rem !important; } - .mt-xxl-3 { - margin-top: 1rem !important; } - .mt-xxl-4 { - margin-top: 1.5rem !important; } - .mt-xxl-5 { - margin-top: 3rem !important; } - .mt-xxl-auto { - margin-top: auto !important; } - .me-xxl-0 { - margin-right: 0 !important; } - .me-xxl-1 { - margin-right: 0.25rem !important; } - .me-xxl-2 { - margin-right: 0.5rem !important; } - .me-xxl-3 { - margin-right: 1rem !important; } - .me-xxl-4 { - margin-right: 1.5rem !important; } - .me-xxl-5 { - margin-right: 3rem !important; } - .me-xxl-auto { - margin-right: auto !important; } - .mb-xxl-0 { - margin-bottom: 0 !important; } - .mb-xxl-1 { - margin-bottom: 0.25rem !important; } - .mb-xxl-2 { - margin-bottom: 0.5rem !important; } - .mb-xxl-3 { - margin-bottom: 1rem !important; } - .mb-xxl-4 { - margin-bottom: 1.5rem !important; } - .mb-xxl-5 { - margin-bottom: 3rem !important; } - .mb-xxl-auto { - margin-bottom: auto !important; } - .ms-xxl-0 { - margin-left: 0 !important; } - .ms-xxl-1 { - margin-left: 0.25rem !important; } - .ms-xxl-2 { - margin-left: 0.5rem !important; } - .ms-xxl-3 { - margin-left: 1rem !important; } - .ms-xxl-4 { - margin-left: 1.5rem !important; } - .ms-xxl-5 { - margin-left: 3rem !important; } - .ms-xxl-auto { - margin-left: auto !important; } - .p-xxl-0 { - padding: 0 !important; } - .p-xxl-1 { - padding: 0.25rem !important; } - .p-xxl-2 { - padding: 0.5rem !important; } - .p-xxl-3 { - padding: 1rem !important; } - .p-xxl-4 { - padding: 1.5rem !important; } - .p-xxl-5 { - padding: 3rem !important; } - .px-xxl-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - .px-xxl-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - .px-xxl-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - .px-xxl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - .px-xxl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - .px-xxl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - .py-xxl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - .py-xxl-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - .py-xxl-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - .py-xxl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - .py-xxl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - .py-xxl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - .pt-xxl-0 { - padding-top: 0 !important; } - .pt-xxl-1 { - padding-top: 0.25rem !important; } - .pt-xxl-2 { - padding-top: 0.5rem !important; } - .pt-xxl-3 { - padding-top: 1rem !important; } - .pt-xxl-4 { - padding-top: 1.5rem !important; } - .pt-xxl-5 { - padding-top: 3rem !important; } - .pe-xxl-0 { - padding-right: 0 !important; } - .pe-xxl-1 { - padding-right: 0.25rem !important; } - .pe-xxl-2 { - padding-right: 0.5rem !important; } - .pe-xxl-3 { - padding-right: 1rem !important; } - .pe-xxl-4 { - padding-right: 1.5rem !important; } - .pe-xxl-5 { - padding-right: 3rem !important; } - .pb-xxl-0 { - padding-bottom: 0 !important; } - .pb-xxl-1 { - padding-bottom: 0.25rem !important; } - .pb-xxl-2 { - padding-bottom: 0.5rem !important; } - .pb-xxl-3 { - padding-bottom: 1rem !important; } - .pb-xxl-4 { - padding-bottom: 1.5rem !important; } - .pb-xxl-5 { - padding-bottom: 3rem !important; } - .ps-xxl-0 { - padding-left: 0 !important; } - .ps-xxl-1 { - padding-left: 0.25rem !important; } - .ps-xxl-2 { - padding-left: 0.5rem !important; } - .ps-xxl-3 { - padding-left: 1rem !important; } - .ps-xxl-4 { - padding-left: 1.5rem !important; } - .ps-xxl-5 { - padding-left: 3rem !important; } - .gap-xxl-0 { - gap: 0 !important; } - .gap-xxl-1 { - gap: 0.25rem !important; } - .gap-xxl-2 { - gap: 0.5rem !important; } - .gap-xxl-3 { - gap: 1rem !important; } - .gap-xxl-4 { - gap: 1.5rem !important; } - .gap-xxl-5 { - gap: 3rem !important; } - .row-gap-xxl-0 { - row-gap: 0 !important; } - .row-gap-xxl-1 { - row-gap: 0.25rem !important; } - .row-gap-xxl-2 { - row-gap: 0.5rem !important; } - .row-gap-xxl-3 { - row-gap: 1rem !important; } - .row-gap-xxl-4 { - row-gap: 1.5rem !important; } - .row-gap-xxl-5 { - row-gap: 3rem !important; } - .column-gap-xxl-0 { - column-gap: 0 !important; } - .column-gap-xxl-1 { - column-gap: 0.25rem !important; } - .column-gap-xxl-2 { - column-gap: 0.5rem !important; } - .column-gap-xxl-3 { - column-gap: 1rem !important; } - .column-gap-xxl-4 { - column-gap: 1.5rem !important; } - .column-gap-xxl-5 { - column-gap: 3rem !important; } - .text-xxl-start { - text-align: left !important; } - .text-xxl-end { - text-align: right !important; } - .text-xxl-center { - text-align: center !important; } } - -@media (min-width: 1200px) { - .fs-1 { - font-size: 2.5rem !important; } - .fs-2 { - font-size: 2rem !important; } - .fs-3 { - font-size: 1.5rem !important; } - .fs-4 { - font-size: 1.35rem !important; } } - -@media print { - .d-print-inline { - display: inline !important; } - .d-print-inline-block { - display: inline-block !important; } - .d-print-block { - display: block !important; } - .d-print-grid { - display: grid !important; } - .d-print-inline-grid { - display: inline-grid !important; } - .d-print-table { - display: table !important; } - .d-print-table-row { - display: table-row !important; } - .d-print-table-cell { - display: table-cell !important; } - .d-print-flex { - display: flex !important; } - .d-print-inline-flex { - display: inline-flex !important; } - .d-print-none { - display: none !important; } } - -/*! - * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -.fa, .td-search__icon:before { - font-family: var(--fa-style-family, "Font Awesome 6 Free"); - font-weight: var(--fa-style, 900); } - -.fa, .td-search__icon:before, -.fa-classic, -.fa-sharp, -.fas, -.td-offline-search-results__close-button:after, -.fa-solid, -.far, -.fa-regular, -.fab, -.fa-brands { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: var(--fa-display, inline-block); - font-style: normal; - font-variant: normal; - line-height: 1; - text-rendering: auto; } - -.fas, .td-offline-search-results__close-button:after, -.fa-classic, -.fa-solid, -.far, -.fa-regular { - font-family: 'Font Awesome 6 Free'; } - -.fab, -.fa-brands { - font-family: 'Font Awesome 6 Brands'; } - -.fa-1x { - font-size: 1em; } - -.fa-2x { - font-size: 2em; } - -.fa-3x { - font-size: 3em; } - -.fa-4x { - font-size: 4em; } - -.fa-5x { - font-size: 5em; } - -.fa-6x { - font-size: 6em; } - -.fa-7x { - font-size: 7em; } - -.fa-8x { - font-size: 8em; } - -.fa-9x { - font-size: 9em; } - -.fa-10x { - font-size: 10em; } - -.fa-2xs { - font-size: 0.625em; - line-height: 0.1em; - vertical-align: 0.225em; } - -.fa-xs { - font-size: 0.75em; - line-height: 0.08333333em; - vertical-align: 0.125em; } - -.fa-sm { - font-size: 0.875em; - line-height: 0.07142857em; - vertical-align: 0.05357143em; } - -.fa-lg { - font-size: 1.25em; - line-height: 0.05em; - vertical-align: -0.075em; } - -.fa-xl { - font-size: 1.5em; - line-height: 0.04166667em; - vertical-align: -0.125em; } - -.fa-2xl { - font-size: 2em; - line-height: 0.03125em; - vertical-align: -0.1875em; } - -.fa-fw { - text-align: center; - width: 1.25em; } - -.fa-ul { - list-style-type: none; - margin-left: var(--fa-li-margin, 2.5em); - padding-left: 0; } - .fa-ul > li { - position: relative; } - -.fa-li { - left: calc(var(--fa-li-width, 2em) * -1); - position: absolute; - text-align: center; - width: var(--fa-li-width, 2em); - line-height: inherit; } - -.fa-border { - border-color: var(--fa-border-color, #eee); - border-radius: var(--fa-border-radius, 0.1em); - border-style: var(--fa-border-style, solid); - border-width: var(--fa-border-width, 0.08em); - padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } - -.fa-pull-left { - float: left; - margin-right: var(--fa-pull-margin, 0.3em); } - -.fa-pull-right { - float: right; - margin-left: var(--fa-pull-margin, 0.3em); } - -.fa-beat { - animation-name: fa-beat; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); } - -.fa-bounce { - animation-name: fa-bounce; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } - -.fa-fade { - animation-name: fa-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } - -.fa-beat-fade { - animation-name: fa-beat-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } - -.fa-flip { - animation-name: fa-flip; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); } - -.fa-shake { - animation-name: fa-shake; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); } - -.fa-spin { - animation-name: fa-spin; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 2s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); } - -.fa-spin-reverse { - --fa-animation-direction: reverse; } - -.fa-pulse, -.fa-spin-pulse { - animation-name: fa-spin; - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, steps(8)); } - -@media (prefers-reduced-motion: reduce) { - .fa-beat, - .fa-bounce, - .fa-fade, - .fa-beat-fade, - .fa-flip, - .fa-pulse, - .fa-shake, - .fa-spin, - .fa-spin-pulse { - animation-delay: -1ms; - animation-duration: 1ms; - animation-iteration-count: 1; - transition-delay: 0s; - transition-duration: 0s; } } - -@keyframes fa-beat { - 0%, 90% { - transform: scale(1); } - 45% { - transform: scale(var(--fa-beat-scale, 1.25)); } } - -@keyframes fa-bounce { - 0% { - transform: scale(1, 1) translateY(0); } - 10% { - transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } - 30% { - transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } - 50% { - transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } - 57% { - transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } - 64% { - transform: scale(1, 1) translateY(0); } - 100% { - transform: scale(1, 1) translateY(0); } } - -@keyframes fa-fade { - 50% { - opacity: var(--fa-fade-opacity, 0.4); } } - -@keyframes fa-beat-fade { - 0%, 100% { - opacity: var(--fa-beat-fade-opacity, 0.4); - transform: scale(1); } - 50% { - opacity: 1; - transform: scale(var(--fa-beat-fade-scale, 1.125)); } } - -@keyframes fa-flip { - 50% { - transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } - -@keyframes fa-shake { - 0% { - transform: rotate(-15deg); } - 4% { - transform: rotate(15deg); } - 8%, 24% { - transform: rotate(-18deg); } - 12%, 28% { - transform: rotate(18deg); } - 16% { - transform: rotate(-22deg); } - 20% { - transform: rotate(22deg); } - 32% { - transform: rotate(-12deg); } - 36% { - transform: rotate(12deg); } - 40%, 100% { - transform: rotate(0deg); } } - -@keyframes fa-spin { - 0% { - transform: rotate(0deg); } - 100% { - transform: rotate(360deg); } } - -.fa-rotate-90 { - transform: rotate(90deg); } - -.fa-rotate-180 { - transform: rotate(180deg); } - -.fa-rotate-270 { - transform: rotate(270deg); } - -.fa-flip-horizontal { - transform: scale(-1, 1); } - -.fa-flip-vertical { - transform: scale(1, -1); } - -.fa-flip-both, -.fa-flip-horizontal.fa-flip-vertical { - transform: scale(-1, -1); } - -.fa-rotate-by { - transform: rotate(var(--fa-rotate-angle, 0)); } - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; } - -.fa-stack-1x, -.fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; - z-index: var(--fa-stack-z-index, auto); } - -.fa-stack-1x { - line-height: inherit; } - -.fa-stack-2x { - font-size: 2em; } - -.fa-inverse { - color: var(--fa-inverse, #fff); } - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen -readers do not read off random characters that represent icons */ -.fa-0::before { - content: "\30"; } - -.fa-1::before { - content: "\31"; } - -.fa-2::before { - content: "\32"; } - -.fa-3::before { - content: "\33"; } - -.fa-4::before { - content: "\34"; } - -.fa-5::before { - content: "\35"; } - -.fa-6::before { - content: "\36"; } - -.fa-7::before { - content: "\37"; } - -.fa-8::before { - content: "\38"; } - -.fa-9::before { - content: "\39"; } - -.fa-fill-drip::before { - content: "\f576"; } - -.fa-arrows-to-circle::before { - content: "\e4bd"; } - -.fa-circle-chevron-right::before { - content: "\f138"; } - -.fa-chevron-circle-right::before { - content: "\f138"; } - -.fa-at::before { - content: "\40"; } - -.fa-trash-can::before { - content: "\f2ed"; } - -.fa-trash-alt::before { - content: "\f2ed"; } - -.fa-text-height::before { - content: "\f034"; } - -.fa-user-xmark::before { - content: "\f235"; } - -.fa-user-times::before { - content: "\f235"; } - -.fa-stethoscope::before { - content: "\f0f1"; } - -.fa-message::before { - content: "\f27a"; } - -.fa-comment-alt::before { - content: "\f27a"; } - -.fa-info::before { - content: "\f129"; } - -.fa-down-left-and-up-right-to-center::before { - content: "\f422"; } - -.fa-compress-alt::before { - content: "\f422"; } - -.fa-explosion::before { - content: "\e4e9"; } - -.fa-file-lines::before { - content: "\f15c"; } - -.fa-file-alt::before { - content: "\f15c"; } - -.fa-file-text::before { - content: "\f15c"; } - -.fa-wave-square::before { - content: "\f83e"; } - -.fa-ring::before { - content: "\f70b"; } - -.fa-building-un::before { - content: "\e4d9"; } - -.fa-dice-three::before { - content: "\f527"; } - -.fa-calendar-days::before { - content: "\f073"; } - -.fa-calendar-alt::before { - content: "\f073"; } - -.fa-anchor-circle-check::before { - content: "\e4aa"; } - -.fa-building-circle-arrow-right::before { - content: "\e4d1"; } - -.fa-volleyball::before { - content: "\f45f"; } - -.fa-volleyball-ball::before { - content: "\f45f"; } - -.fa-arrows-up-to-line::before { - content: "\e4c2"; } - -.fa-sort-down::before { - content: "\f0dd"; } - -.fa-sort-desc::before { - content: "\f0dd"; } - -.fa-circle-minus::before { - content: "\f056"; } - -.fa-minus-circle::before { - content: "\f056"; } - -.fa-door-open::before { - content: "\f52b"; } - -.fa-right-from-bracket::before { - content: "\f2f5"; } - -.fa-sign-out-alt::before { - content: "\f2f5"; } - -.fa-atom::before { - content: "\f5d2"; } - -.fa-soap::before { - content: "\e06e"; } - -.fa-icons::before { - content: "\f86d"; } - -.fa-heart-music-camera-bolt::before { - content: "\f86d"; } - -.fa-microphone-lines-slash::before { - content: "\f539"; } - -.fa-microphone-alt-slash::before { - content: "\f539"; } - -.fa-bridge-circle-check::before { - content: "\e4c9"; } - -.fa-pump-medical::before { - content: "\e06a"; } - -.fa-fingerprint::before { - content: "\f577"; } - -.fa-hand-point-right::before { - content: "\f0a4"; } - -.fa-magnifying-glass-location::before { - content: "\f689"; } - -.fa-search-location::before { - content: "\f689"; } - -.fa-forward-step::before { - content: "\f051"; } - -.fa-step-forward::before { - content: "\f051"; } - -.fa-face-smile-beam::before { - content: "\f5b8"; } - -.fa-smile-beam::before { - content: "\f5b8"; } - -.fa-flag-checkered::before { - content: "\f11e"; } - -.fa-football::before { - content: "\f44e"; } - -.fa-football-ball::before { - content: "\f44e"; } - -.fa-school-circle-exclamation::before { - content: "\e56c"; } - -.fa-crop::before { - content: "\f125"; } - -.fa-angles-down::before { - content: "\f103"; } - -.fa-angle-double-down::before { - content: "\f103"; } - -.fa-users-rectangle::before { - content: "\e594"; } - -.fa-people-roof::before { - content: "\e537"; } - -.fa-people-line::before { - content: "\e534"; } - -.fa-beer-mug-empty::before { - content: "\f0fc"; } - -.fa-beer::before { - content: "\f0fc"; } - -.fa-diagram-predecessor::before { - content: "\e477"; } - -.fa-arrow-up-long::before { - content: "\f176"; } - -.fa-long-arrow-up::before { - content: "\f176"; } - -.fa-fire-flame-simple::before { - content: "\f46a"; } - -.fa-burn::before { - content: "\f46a"; } - -.fa-person::before { - content: "\f183"; } - -.fa-male::before { - content: "\f183"; } - -.fa-laptop::before { - content: "\f109"; } - -.fa-file-csv::before { - content: "\f6dd"; } - -.fa-menorah::before { - content: "\f676"; } - -.fa-truck-plane::before { - content: "\e58f"; } - -.fa-record-vinyl::before { - content: "\f8d9"; } - -.fa-face-grin-stars::before { - content: "\f587"; } - -.fa-grin-stars::before { - content: "\f587"; } - -.fa-bong::before { - content: "\f55c"; } - -.fa-spaghetti-monster-flying::before { - content: "\f67b"; } - -.fa-pastafarianism::before { - content: "\f67b"; } - -.fa-arrow-down-up-across-line::before { - content: "\e4af"; } - -.fa-spoon::before { - content: "\f2e5"; } - -.fa-utensil-spoon::before { - content: "\f2e5"; } - -.fa-jar-wheat::before { - content: "\e517"; } - -.fa-envelopes-bulk::before { - content: "\f674"; } - -.fa-mail-bulk::before { - content: "\f674"; } - -.fa-file-circle-exclamation::before { - content: "\e4eb"; } - -.fa-circle-h::before { - content: "\f47e"; } - -.fa-hospital-symbol::before { - content: "\f47e"; } - -.fa-pager::before { - content: "\f815"; } - -.fa-address-book::before { - content: "\f2b9"; } - -.fa-contact-book::before { - content: "\f2b9"; } - -.fa-strikethrough::before { - content: "\f0cc"; } - -.fa-k::before { - content: "\4b"; } - -.fa-landmark-flag::before { - content: "\e51c"; } - -.fa-pencil::before { - content: "\f303"; } - -.fa-pencil-alt::before { - content: "\f303"; } - -.fa-backward::before { - content: "\f04a"; } - -.fa-caret-right::before { - content: "\f0da"; } - -.fa-comments::before { - content: "\f086"; } - -.fa-paste::before { - content: "\f0ea"; } - -.fa-file-clipboard::before { - content: "\f0ea"; } - -.fa-code-pull-request::before { - content: "\e13c"; } - -.fa-clipboard-list::before { - content: "\f46d"; } - -.fa-truck-ramp-box::before { - content: "\f4de"; } - -.fa-truck-loading::before { - content: "\f4de"; } - -.fa-user-check::before { - content: "\f4fc"; } - -.fa-vial-virus::before { - content: "\e597"; } - -.fa-sheet-plastic::before { - content: "\e571"; } - -.fa-blog::before { - content: "\f781"; } - -.fa-user-ninja::before { - content: "\f504"; } - -.fa-person-arrow-up-from-line::before { - content: "\e539"; } - -.fa-scroll-torah::before { - content: "\f6a0"; } - -.fa-torah::before { - content: "\f6a0"; } - -.fa-broom-ball::before { - content: "\f458"; } - -.fa-quidditch::before { - content: "\f458"; } - -.fa-quidditch-broom-ball::before { - content: "\f458"; } - -.fa-toggle-off::before { - content: "\f204"; } - -.fa-box-archive::before { - content: "\f187"; } - -.fa-archive::before { - content: "\f187"; } - -.fa-person-drowning::before { - content: "\e545"; } - -.fa-arrow-down-9-1::before { - content: "\f886"; } - -.fa-sort-numeric-desc::before { - content: "\f886"; } - -.fa-sort-numeric-down-alt::before { - content: "\f886"; } - -.fa-face-grin-tongue-squint::before { - content: "\f58a"; } - -.fa-grin-tongue-squint::before { - content: "\f58a"; } - -.fa-spray-can::before { - content: "\f5bd"; } - -.fa-truck-monster::before { - content: "\f63b"; } - -.fa-w::before { - content: "\57"; } - -.fa-earth-africa::before { - content: "\f57c"; } - -.fa-globe-africa::before { - content: "\f57c"; } - -.fa-rainbow::before { - content: "\f75b"; } - -.fa-circle-notch::before { - content: "\f1ce"; } - -.fa-tablet-screen-button::before { - content: "\f3fa"; } - -.fa-tablet-alt::before { - content: "\f3fa"; } - -.fa-paw::before { - content: "\f1b0"; } - -.fa-cloud::before { - content: "\f0c2"; } - -.fa-trowel-bricks::before { - content: "\e58a"; } - -.fa-face-flushed::before { - content: "\f579"; } - -.fa-flushed::before { - content: "\f579"; } - -.fa-hospital-user::before { - content: "\f80d"; } - -.fa-tent-arrow-left-right::before { - content: "\e57f"; } - -.fa-gavel::before { - content: "\f0e3"; } - -.fa-legal::before { - content: "\f0e3"; } - -.fa-binoculars::before { - content: "\f1e5"; } - -.fa-microphone-slash::before { - content: "\f131"; } - -.fa-box-tissue::before { - content: "\e05b"; } - -.fa-motorcycle::before { - content: "\f21c"; } - -.fa-bell-concierge::before { - content: "\f562"; } - -.fa-concierge-bell::before { - content: "\f562"; } - -.fa-pen-ruler::before { - content: "\f5ae"; } - -.fa-pencil-ruler::before { - content: "\f5ae"; } - -.fa-people-arrows::before { - content: "\e068"; } - -.fa-people-arrows-left-right::before { - content: "\e068"; } - -.fa-mars-and-venus-burst::before { - content: "\e523"; } - -.fa-square-caret-right::before { - content: "\f152"; } - -.fa-caret-square-right::before { - content: "\f152"; } - -.fa-scissors::before { - content: "\f0c4"; } - -.fa-cut::before { - content: "\f0c4"; } - -.fa-sun-plant-wilt::before { - content: "\e57a"; } - -.fa-toilets-portable::before { - content: "\e584"; } - -.fa-hockey-puck::before { - content: "\f453"; } - -.fa-table::before { - content: "\f0ce"; } - -.fa-magnifying-glass-arrow-right::before { - content: "\e521"; } - -.fa-tachograph-digital::before { - content: "\f566"; } - -.fa-digital-tachograph::before { - content: "\f566"; } - -.fa-users-slash::before { - content: "\e073"; } - -.fa-clover::before { - content: "\e139"; } - -.fa-reply::before { - content: "\f3e5"; } - -.fa-mail-reply::before { - content: "\f3e5"; } - -.fa-star-and-crescent::before { - content: "\f699"; } - -.fa-house-fire::before { - content: "\e50c"; } - -.fa-square-minus::before { - content: "\f146"; } - -.fa-minus-square::before { - content: "\f146"; } - -.fa-helicopter::before { - content: "\f533"; } - -.fa-compass::before { - content: "\f14e"; } - -.fa-square-caret-down::before { - content: "\f150"; } - -.fa-caret-square-down::before { - content: "\f150"; } - -.fa-file-circle-question::before { - content: "\e4ef"; } - -.fa-laptop-code::before { - content: "\f5fc"; } - -.fa-swatchbook::before { - content: "\f5c3"; } - -.fa-prescription-bottle::before { - content: "\f485"; } - -.fa-bars::before { - content: "\f0c9"; } - -.fa-navicon::before { - content: "\f0c9"; } - -.fa-people-group::before { - content: "\e533"; } - -.fa-hourglass-end::before { - content: "\f253"; } - -.fa-hourglass-3::before { - content: "\f253"; } - -.fa-heart-crack::before { - content: "\f7a9"; } - -.fa-heart-broken::before { - content: "\f7a9"; } - -.fa-square-up-right::before { - content: "\f360"; } - -.fa-external-link-square-alt::before { - content: "\f360"; } - -.fa-face-kiss-beam::before { - content: "\f597"; } - -.fa-kiss-beam::before { - content: "\f597"; } - -.fa-film::before { - content: "\f008"; } - -.fa-ruler-horizontal::before { - content: "\f547"; } - -.fa-people-robbery::before { - content: "\e536"; } - -.fa-lightbulb::before { - content: "\f0eb"; } - -.fa-caret-left::before { - content: "\f0d9"; } - -.fa-circle-exclamation::before { - content: "\f06a"; } - -.fa-exclamation-circle::before { - content: "\f06a"; } - -.fa-school-circle-xmark::before { - content: "\e56d"; } - -.fa-arrow-right-from-bracket::before { - content: "\f08b"; } - -.fa-sign-out::before { - content: "\f08b"; } - -.fa-circle-chevron-down::before { - content: "\f13a"; } - -.fa-chevron-circle-down::before { - content: "\f13a"; } - -.fa-unlock-keyhole::before { - content: "\f13e"; } - -.fa-unlock-alt::before { - content: "\f13e"; } - -.fa-cloud-showers-heavy::before { - content: "\f740"; } - -.fa-headphones-simple::before { - content: "\f58f"; } - -.fa-headphones-alt::before { - content: "\f58f"; } - -.fa-sitemap::before { - content: "\f0e8"; } - -.fa-circle-dollar-to-slot::before { - content: "\f4b9"; } - -.fa-donate::before { - content: "\f4b9"; } - -.fa-memory::before { - content: "\f538"; } - -.fa-road-spikes::before { - content: "\e568"; } - -.fa-fire-burner::before { - content: "\e4f1"; } - -.fa-flag::before { - content: "\f024"; } - -.fa-hanukiah::before { - content: "\f6e6"; } - -.fa-feather::before { - content: "\f52d"; } - -.fa-volume-low::before { - content: "\f027"; } - -.fa-volume-down::before { - content: "\f027"; } - -.fa-comment-slash::before { - content: "\f4b3"; } - -.fa-cloud-sun-rain::before { - content: "\f743"; } - -.fa-compress::before { - content: "\f066"; } - -.fa-wheat-awn::before { - content: "\e2cd"; } - -.fa-wheat-alt::before { - content: "\e2cd"; } - -.fa-ankh::before { - content: "\f644"; } - -.fa-hands-holding-child::before { - content: "\e4fa"; } - -.fa-asterisk::before { - content: "\2a"; } - -.fa-square-check::before { - content: "\f14a"; } - -.fa-check-square::before { - content: "\f14a"; } - -.fa-peseta-sign::before { - content: "\e221"; } - -.fa-heading::before { - content: "\f1dc"; } - -.fa-header::before { - content: "\f1dc"; } - -.fa-ghost::before { - content: "\f6e2"; } - -.fa-list::before { - content: "\f03a"; } - -.fa-list-squares::before { - content: "\f03a"; } - -.fa-square-phone-flip::before { - content: "\f87b"; } - -.fa-phone-square-alt::before { - content: "\f87b"; } - -.fa-cart-plus::before { - content: "\f217"; } - -.fa-gamepad::before { - content: "\f11b"; } - -.fa-circle-dot::before { - content: "\f192"; } - -.fa-dot-circle::before { - content: "\f192"; } - -.fa-face-dizzy::before { - content: "\f567"; } - -.fa-dizzy::before { - content: "\f567"; } - -.fa-egg::before { - content: "\f7fb"; } - -.fa-house-medical-circle-xmark::before { - content: "\e513"; } - -.fa-campground::before { - content: "\f6bb"; } - -.fa-folder-plus::before { - content: "\f65e"; } - -.fa-futbol::before { - content: "\f1e3"; } - -.fa-futbol-ball::before { - content: "\f1e3"; } - -.fa-soccer-ball::before { - content: "\f1e3"; } - -.fa-paintbrush::before { - content: "\f1fc"; } - -.fa-paint-brush::before { - content: "\f1fc"; } - -.fa-lock::before { - content: "\f023"; } - -.fa-gas-pump::before { - content: "\f52f"; } - -.fa-hot-tub-person::before { - content: "\f593"; } - -.fa-hot-tub::before { - content: "\f593"; } - -.fa-map-location::before { - content: "\f59f"; } - -.fa-map-marked::before { - content: "\f59f"; } - -.fa-house-flood-water::before { - content: "\e50e"; } - -.fa-tree::before { - content: "\f1bb"; } - -.fa-bridge-lock::before { - content: "\e4cc"; } - -.fa-sack-dollar::before { - content: "\f81d"; } - -.fa-pen-to-square::before { - content: "\f044"; } - -.fa-edit::before { - content: "\f044"; } - -.fa-car-side::before { - content: "\f5e4"; } - -.fa-share-nodes::before { - content: "\f1e0"; } - -.fa-share-alt::before { - content: "\f1e0"; } - -.fa-heart-circle-minus::before { - content: "\e4ff"; } - -.fa-hourglass-half::before { - content: "\f252"; } - -.fa-hourglass-2::before { - content: "\f252"; } - -.fa-microscope::before { - content: "\f610"; } - -.fa-sink::before { - content: "\e06d"; } - -.fa-bag-shopping::before { - content: "\f290"; } - -.fa-shopping-bag::before { - content: "\f290"; } - -.fa-arrow-down-z-a::before { - content: "\f881"; } - -.fa-sort-alpha-desc::before { - content: "\f881"; } - -.fa-sort-alpha-down-alt::before { - content: "\f881"; } - -.fa-mitten::before { - content: "\f7b5"; } - -.fa-person-rays::before { - content: "\e54d"; } - -.fa-users::before { - content: "\f0c0"; } - -.fa-eye-slash::before { - content: "\f070"; } - -.fa-flask-vial::before { - content: "\e4f3"; } - -.fa-hand::before { - content: "\f256"; } - -.fa-hand-paper::before { - content: "\f256"; } - -.fa-om::before { - content: "\f679"; } - -.fa-worm::before { - content: "\e599"; } - -.fa-house-circle-xmark::before { - content: "\e50b"; } - -.fa-plug::before { - content: "\f1e6"; } - -.fa-chevron-up::before { - content: "\f077"; } - -.fa-hand-spock::before { - content: "\f259"; } - -.fa-stopwatch::before { - content: "\f2f2"; } - -.fa-face-kiss::before { - content: "\f596"; } - -.fa-kiss::before { - content: "\f596"; } - -.fa-bridge-circle-xmark::before { - content: "\e4cb"; } - -.fa-face-grin-tongue::before { - content: "\f589"; } - -.fa-grin-tongue::before { - content: "\f589"; } - -.fa-chess-bishop::before { - content: "\f43a"; } - -.fa-face-grin-wink::before { - content: "\f58c"; } - -.fa-grin-wink::before { - content: "\f58c"; } - -.fa-ear-deaf::before { - content: "\f2a4"; } - -.fa-deaf::before { - content: "\f2a4"; } - -.fa-deafness::before { - content: "\f2a4"; } - -.fa-hard-of-hearing::before { - content: "\f2a4"; } - -.fa-road-circle-check::before { - content: "\e564"; } - -.fa-dice-five::before { - content: "\f523"; } - -.fa-square-rss::before { - content: "\f143"; } - -.fa-rss-square::before { - content: "\f143"; } - -.fa-land-mine-on::before { - content: "\e51b"; } - -.fa-i-cursor::before { - content: "\f246"; } - -.fa-stamp::before { - content: "\f5bf"; } - -.fa-stairs::before { - content: "\e289"; } - -.fa-i::before { - content: "\49"; } - -.fa-hryvnia-sign::before { - content: "\f6f2"; } - -.fa-hryvnia::before { - content: "\f6f2"; } - -.fa-pills::before { - content: "\f484"; } - -.fa-face-grin-wide::before { - content: "\f581"; } - -.fa-grin-alt::before { - content: "\f581"; } - -.fa-tooth::before { - content: "\f5c9"; } - -.fa-v::before { - content: "\56"; } - -.fa-bangladeshi-taka-sign::before { - content: "\e2e6"; } - -.fa-bicycle::before { - content: "\f206"; } - -.fa-staff-snake::before { - content: "\e579"; } - -.fa-rod-asclepius::before { - content: "\e579"; } - -.fa-rod-snake::before { - content: "\e579"; } - -.fa-staff-aesculapius::before { - content: "\e579"; } - -.fa-head-side-cough-slash::before { - content: "\e062"; } - -.fa-truck-medical::before { - content: "\f0f9"; } - -.fa-ambulance::before { - content: "\f0f9"; } - -.fa-wheat-awn-circle-exclamation::before { - content: "\e598"; } - -.fa-snowman::before { - content: "\f7d0"; } - -.fa-mortar-pestle::before { - content: "\f5a7"; } - -.fa-road-barrier::before { - content: "\e562"; } - -.fa-school::before { - content: "\f549"; } - -.fa-igloo::before { - content: "\f7ae"; } - -.fa-joint::before { - content: "\f595"; } - -.fa-angle-right::before { - content: "\f105"; } - -.fa-horse::before { - content: "\f6f0"; } - -.fa-q::before { - content: "\51"; } - -.fa-g::before { - content: "\47"; } - -.fa-notes-medical::before { - content: "\f481"; } - -.fa-temperature-half::before { - content: "\f2c9"; } - -.fa-temperature-2::before { - content: "\f2c9"; } - -.fa-thermometer-2::before { - content: "\f2c9"; } - -.fa-thermometer-half::before { - content: "\f2c9"; } - -.fa-dong-sign::before { - content: "\e169"; } - -.fa-capsules::before { - content: "\f46b"; } - -.fa-poo-storm::before { - content: "\f75a"; } - -.fa-poo-bolt::before { - content: "\f75a"; } - -.fa-face-frown-open::before { - content: "\f57a"; } - -.fa-frown-open::before { - content: "\f57a"; } - -.fa-hand-point-up::before { - content: "\f0a6"; } - -.fa-money-bill::before { - content: "\f0d6"; } - -.fa-bookmark::before { - content: "\f02e"; } - -.fa-align-justify::before { - content: "\f039"; } - -.fa-umbrella-beach::before { - content: "\f5ca"; } - -.fa-helmet-un::before { - content: "\e503"; } - -.fa-bullseye::before { - content: "\f140"; } - -.fa-bacon::before { - content: "\f7e5"; } - -.fa-hand-point-down::before { - content: "\f0a7"; } - -.fa-arrow-up-from-bracket::before { - content: "\e09a"; } - -.fa-folder::before { - content: "\f07b"; } - -.fa-folder-blank::before { - content: "\f07b"; } - -.fa-file-waveform::before { - content: "\f478"; } - -.fa-file-medical-alt::before { - content: "\f478"; } - -.fa-radiation::before { - content: "\f7b9"; } - -.fa-chart-simple::before { - content: "\e473"; } - -.fa-mars-stroke::before { - content: "\f229"; } - -.fa-vial::before { - content: "\f492"; } - -.fa-gauge::before { - content: "\f624"; } - -.fa-dashboard::before { - content: "\f624"; } - -.fa-gauge-med::before { - content: "\f624"; } - -.fa-tachometer-alt-average::before { - content: "\f624"; } - -.fa-wand-magic-sparkles::before { - content: "\e2ca"; } - -.fa-magic-wand-sparkles::before { - content: "\e2ca"; } - -.fa-e::before { - content: "\45"; } - -.fa-pen-clip::before { - content: "\f305"; } - -.fa-pen-alt::before { - content: "\f305"; } - -.fa-bridge-circle-exclamation::before { - content: "\e4ca"; } - -.fa-user::before { - content: "\f007"; } - -.fa-school-circle-check::before { - content: "\e56b"; } - -.fa-dumpster::before { - content: "\f793"; } - -.fa-van-shuttle::before { - content: "\f5b6"; } - -.fa-shuttle-van::before { - content: "\f5b6"; } - -.fa-building-user::before { - content: "\e4da"; } - -.fa-square-caret-left::before { - content: "\f191"; } - -.fa-caret-square-left::before { - content: "\f191"; } - -.fa-highlighter::before { - content: "\f591"; } - -.fa-key::before { - content: "\f084"; } - -.fa-bullhorn::before { - content: "\f0a1"; } - -.fa-globe::before { - content: "\f0ac"; } - -.fa-synagogue::before { - content: "\f69b"; } - -.fa-person-half-dress::before { - content: "\e548"; } - -.fa-road-bridge::before { - content: "\e563"; } - -.fa-location-arrow::before { - content: "\f124"; } - -.fa-c::before { - content: "\43"; } - -.fa-tablet-button::before { - content: "\f10a"; } - -.fa-building-lock::before { - content: "\e4d6"; } - -.fa-pizza-slice::before { - content: "\f818"; } - -.fa-money-bill-wave::before { - content: "\f53a"; } - -.fa-chart-area::before { - content: "\f1fe"; } - -.fa-area-chart::before { - content: "\f1fe"; } - -.fa-house-flag::before { - content: "\e50d"; } - -.fa-person-circle-minus::before { - content: "\e540"; } - -.fa-ban::before { - content: "\f05e"; } - -.fa-cancel::before { - content: "\f05e"; } - -.fa-camera-rotate::before { - content: "\e0d8"; } - -.fa-spray-can-sparkles::before { - content: "\f5d0"; } - -.fa-air-freshener::before { - content: "\f5d0"; } - -.fa-star::before { - content: "\f005"; } - -.fa-repeat::before { - content: "\f363"; } - -.fa-cross::before { - content: "\f654"; } - -.fa-box::before { - content: "\f466"; } - -.fa-venus-mars::before { - content: "\f228"; } - -.fa-arrow-pointer::before { - content: "\f245"; } - -.fa-mouse-pointer::before { - content: "\f245"; } - -.fa-maximize::before { - content: "\f31e"; } - -.fa-expand-arrows-alt::before { - content: "\f31e"; } - -.fa-charging-station::before { - content: "\f5e7"; } - -.fa-shapes::before { - content: "\f61f"; } - -.fa-triangle-circle-square::before { - content: "\f61f"; } - -.fa-shuffle::before { - content: "\f074"; } - -.fa-random::before { - content: "\f074"; } - -.fa-person-running::before { - content: "\f70c"; } - -.fa-running::before { - content: "\f70c"; } - -.fa-mobile-retro::before { - content: "\e527"; } - -.fa-grip-lines-vertical::before { - content: "\f7a5"; } - -.fa-spider::before { - content: "\f717"; } - -.fa-hands-bound::before { - content: "\e4f9"; } - -.fa-file-invoice-dollar::before { - content: "\f571"; } - -.fa-plane-circle-exclamation::before { - content: "\e556"; } - -.fa-x-ray::before { - content: "\f497"; } - -.fa-spell-check::before { - content: "\f891"; } - -.fa-slash::before { - content: "\f715"; } - -.fa-computer-mouse::before { - content: "\f8cc"; } - -.fa-mouse::before { - content: "\f8cc"; } - -.fa-arrow-right-to-bracket::before { - content: "\f090"; } - -.fa-sign-in::before { - content: "\f090"; } - -.fa-shop-slash::before { - content: "\e070"; } - -.fa-store-alt-slash::before { - content: "\e070"; } - -.fa-server::before { - content: "\f233"; } - -.fa-virus-covid-slash::before { - content: "\e4a9"; } - -.fa-shop-lock::before { - content: "\e4a5"; } - -.fa-hourglass-start::before { - content: "\f251"; } - -.fa-hourglass-1::before { - content: "\f251"; } - -.fa-blender-phone::before { - content: "\f6b6"; } - -.fa-building-wheat::before { - content: "\e4db"; } - -.fa-person-breastfeeding::before { - content: "\e53a"; } - -.fa-right-to-bracket::before { - content: "\f2f6"; } - -.fa-sign-in-alt::before { - content: "\f2f6"; } - -.fa-venus::before { - content: "\f221"; } - -.fa-passport::before { - content: "\f5ab"; } - -.fa-heart-pulse::before { - content: "\f21e"; } - -.fa-heartbeat::before { - content: "\f21e"; } - -.fa-people-carry-box::before { - content: "\f4ce"; } - -.fa-people-carry::before { - content: "\f4ce"; } - -.fa-temperature-high::before { - content: "\f769"; } - -.fa-microchip::before { - content: "\f2db"; } - -.fa-crown::before { - content: "\f521"; } - -.fa-weight-hanging::before { - content: "\f5cd"; } - -.fa-xmarks-lines::before { - content: "\e59a"; } - -.fa-file-prescription::before { - content: "\f572"; } - -.fa-weight-scale::before { - content: "\f496"; } - -.fa-weight::before { - content: "\f496"; } - -.fa-user-group::before { - content: "\f500"; } - -.fa-user-friends::before { - content: "\f500"; } - -.fa-arrow-up-a-z::before { - content: "\f15e"; } - -.fa-sort-alpha-up::before { - content: "\f15e"; } - -.fa-chess-knight::before { - content: "\f441"; } - -.fa-face-laugh-squint::before { - content: "\f59b"; } - -.fa-laugh-squint::before { - content: "\f59b"; } - -.fa-wheelchair::before { - content: "\f193"; } - -.fa-circle-arrow-up::before { - content: "\f0aa"; } - -.fa-arrow-circle-up::before { - content: "\f0aa"; } - -.fa-toggle-on::before { - content: "\f205"; } - -.fa-person-walking::before { - content: "\f554"; } - -.fa-walking::before { - content: "\f554"; } - -.fa-l::before { - content: "\4c"; } - -.fa-fire::before { - content: "\f06d"; } - -.fa-bed-pulse::before { - content: "\f487"; } - -.fa-procedures::before { - content: "\f487"; } - -.fa-shuttle-space::before { - content: "\f197"; } - -.fa-space-shuttle::before { - content: "\f197"; } - -.fa-face-laugh::before { - content: "\f599"; } - -.fa-laugh::before { - content: "\f599"; } - -.fa-folder-open::before { - content: "\f07c"; } - -.fa-heart-circle-plus::before { - content: "\e500"; } - -.fa-code-fork::before { - content: "\e13b"; } - -.fa-city::before { - content: "\f64f"; } - -.fa-microphone-lines::before { - content: "\f3c9"; } - -.fa-microphone-alt::before { - content: "\f3c9"; } - -.fa-pepper-hot::before { - content: "\f816"; } - -.fa-unlock::before { - content: "\f09c"; } - -.fa-colon-sign::before { - content: "\e140"; } - -.fa-headset::before { - content: "\f590"; } - -.fa-store-slash::before { - content: "\e071"; } - -.fa-road-circle-xmark::before { - content: "\e566"; } - -.fa-user-minus::before { - content: "\f503"; } - -.fa-mars-stroke-up::before { - content: "\f22a"; } - -.fa-mars-stroke-v::before { - content: "\f22a"; } - -.fa-champagne-glasses::before { - content: "\f79f"; } - -.fa-glass-cheers::before { - content: "\f79f"; } - -.fa-clipboard::before { - content: "\f328"; } - -.fa-house-circle-exclamation::before { - content: "\e50a"; } - -.fa-file-arrow-up::before { - content: "\f574"; } - -.fa-file-upload::before { - content: "\f574"; } - -.fa-wifi::before { - content: "\f1eb"; } - -.fa-wifi-3::before { - content: "\f1eb"; } - -.fa-wifi-strong::before { - content: "\f1eb"; } - -.fa-bath::before { - content: "\f2cd"; } - -.fa-bathtub::before { - content: "\f2cd"; } - -.fa-underline::before { - content: "\f0cd"; } - -.fa-user-pen::before { - content: "\f4ff"; } - -.fa-user-edit::before { - content: "\f4ff"; } - -.fa-signature::before { - content: "\f5b7"; } - -.fa-stroopwafel::before { - content: "\f551"; } - -.fa-bold::before { - content: "\f032"; } - -.fa-anchor-lock::before { - content: "\e4ad"; } - -.fa-building-ngo::before { - content: "\e4d7"; } - -.fa-manat-sign::before { - content: "\e1d5"; } - -.fa-not-equal::before { - content: "\f53e"; } - -.fa-border-top-left::before { - content: "\f853"; } - -.fa-border-style::before { - content: "\f853"; } - -.fa-map-location-dot::before { - content: "\f5a0"; } - -.fa-map-marked-alt::before { - content: "\f5a0"; } - -.fa-jedi::before { - content: "\f669"; } - -.fa-square-poll-vertical::before { - content: "\f681"; } - -.fa-poll::before { - content: "\f681"; } - -.fa-mug-hot::before { - content: "\f7b6"; } - -.fa-car-battery::before { - content: "\f5df"; } - -.fa-battery-car::before { - content: "\f5df"; } - -.fa-gift::before { - content: "\f06b"; } - -.fa-dice-two::before { - content: "\f528"; } - -.fa-chess-queen::before { - content: "\f445"; } - -.fa-glasses::before { - content: "\f530"; } - -.fa-chess-board::before { - content: "\f43c"; } - -.fa-building-circle-check::before { - content: "\e4d2"; } - -.fa-person-chalkboard::before { - content: "\e53d"; } - -.fa-mars-stroke-right::before { - content: "\f22b"; } - -.fa-mars-stroke-h::before { - content: "\f22b"; } - -.fa-hand-back-fist::before { - content: "\f255"; } - -.fa-hand-rock::before { - content: "\f255"; } - -.fa-square-caret-up::before { - content: "\f151"; } - -.fa-caret-square-up::before { - content: "\f151"; } - -.fa-cloud-showers-water::before { - content: "\e4e4"; } - -.fa-chart-bar::before { - content: "\f080"; } - -.fa-bar-chart::before { - content: "\f080"; } - -.fa-hands-bubbles::before { - content: "\e05e"; } - -.fa-hands-wash::before { - content: "\e05e"; } - -.fa-less-than-equal::before { - content: "\f537"; } - -.fa-train::before { - content: "\f238"; } - -.fa-eye-low-vision::before { - content: "\f2a8"; } - -.fa-low-vision::before { - content: "\f2a8"; } - -.fa-crow::before { - content: "\f520"; } - -.fa-sailboat::before { - content: "\e445"; } - -.fa-window-restore::before { - content: "\f2d2"; } - -.fa-square-plus::before { - content: "\f0fe"; } - -.fa-plus-square::before { - content: "\f0fe"; } - -.fa-torii-gate::before { - content: "\f6a1"; } - -.fa-frog::before { - content: "\f52e"; } - -.fa-bucket::before { - content: "\e4cf"; } - -.fa-image::before { - content: "\f03e"; } - -.fa-microphone::before { - content: "\f130"; } - -.fa-cow::before { - content: "\f6c8"; } - -.fa-caret-up::before { - content: "\f0d8"; } - -.fa-screwdriver::before { - content: "\f54a"; } - -.fa-folder-closed::before { - content: "\e185"; } - -.fa-house-tsunami::before { - content: "\e515"; } - -.fa-square-nfi::before { - content: "\e576"; } - -.fa-arrow-up-from-ground-water::before { - content: "\e4b5"; } - -.fa-martini-glass::before { - content: "\f57b"; } - -.fa-glass-martini-alt::before { - content: "\f57b"; } - -.fa-rotate-left::before { - content: "\f2ea"; } - -.fa-rotate-back::before { - content: "\f2ea"; } - -.fa-rotate-backward::before { - content: "\f2ea"; } - -.fa-undo-alt::before { - content: "\f2ea"; } - -.fa-table-columns::before { - content: "\f0db"; } - -.fa-columns::before { - content: "\f0db"; } - -.fa-lemon::before { - content: "\f094"; } - -.fa-head-side-mask::before { - content: "\e063"; } - -.fa-handshake::before { - content: "\f2b5"; } - -.fa-gem::before { - content: "\f3a5"; } - -.fa-dolly::before { - content: "\f472"; } - -.fa-dolly-box::before { - content: "\f472"; } - -.fa-smoking::before { - content: "\f48d"; } - -.fa-minimize::before { - content: "\f78c"; } - -.fa-compress-arrows-alt::before { - content: "\f78c"; } - -.fa-monument::before { - content: "\f5a6"; } - -.fa-snowplow::before { - content: "\f7d2"; } - -.fa-angles-right::before { - content: "\f101"; } - -.fa-angle-double-right::before { - content: "\f101"; } - -.fa-cannabis::before { - content: "\f55f"; } - -.fa-circle-play::before { - content: "\f144"; } - -.fa-play-circle::before { - content: "\f144"; } - -.fa-tablets::before { - content: "\f490"; } - -.fa-ethernet::before { - content: "\f796"; } - -.fa-euro-sign::before { - content: "\f153"; } - -.fa-eur::before { - content: "\f153"; } - -.fa-euro::before { - content: "\f153"; } - -.fa-chair::before { - content: "\f6c0"; } - -.fa-circle-check::before { - content: "\f058"; } - -.fa-check-circle::before { - content: "\f058"; } - -.fa-circle-stop::before { - content: "\f28d"; } - -.fa-stop-circle::before { - content: "\f28d"; } - -.fa-compass-drafting::before { - content: "\f568"; } - -.fa-drafting-compass::before { - content: "\f568"; } - -.fa-plate-wheat::before { - content: "\e55a"; } - -.fa-icicles::before { - content: "\f7ad"; } - -.fa-person-shelter::before { - content: "\e54f"; } - -.fa-neuter::before { - content: "\f22c"; } - -.fa-id-badge::before { - content: "\f2c1"; } - -.fa-marker::before { - content: "\f5a1"; } - -.fa-face-laugh-beam::before { - content: "\f59a"; } - -.fa-laugh-beam::before { - content: "\f59a"; } - -.fa-helicopter-symbol::before { - content: "\e502"; } - -.fa-universal-access::before { - content: "\f29a"; } - -.fa-circle-chevron-up::before { - content: "\f139"; } - -.fa-chevron-circle-up::before { - content: "\f139"; } - -.fa-lari-sign::before { - content: "\e1c8"; } - -.fa-volcano::before { - content: "\f770"; } - -.fa-person-walking-dashed-line-arrow-right::before { - content: "\e553"; } - -.fa-sterling-sign::before { - content: "\f154"; } - -.fa-gbp::before { - content: "\f154"; } - -.fa-pound-sign::before { - content: "\f154"; } - -.fa-viruses::before { - content: "\e076"; } - -.fa-square-person-confined::before { - content: "\e577"; } - -.fa-user-tie::before { - content: "\f508"; } - -.fa-arrow-down-long::before { - content: "\f175"; } - -.fa-long-arrow-down::before { - content: "\f175"; } - -.fa-tent-arrow-down-to-line::before { - content: "\e57e"; } - -.fa-certificate::before { - content: "\f0a3"; } - -.fa-reply-all::before { - content: "\f122"; } - -.fa-mail-reply-all::before { - content: "\f122"; } - -.fa-suitcase::before { - content: "\f0f2"; } - -.fa-person-skating::before { - content: "\f7c5"; } - -.fa-skating::before { - content: "\f7c5"; } - -.fa-filter-circle-dollar::before { - content: "\f662"; } - -.fa-funnel-dollar::before { - content: "\f662"; } - -.fa-camera-retro::before { - content: "\f083"; } - -.fa-circle-arrow-down::before { - content: "\f0ab"; } - -.fa-arrow-circle-down::before { - content: "\f0ab"; } - -.fa-file-import::before { - content: "\f56f"; } - -.fa-arrow-right-to-file::before { - content: "\f56f"; } - -.fa-square-arrow-up-right::before { - content: "\f14c"; } - -.fa-external-link-square::before { - content: "\f14c"; } - -.fa-box-open::before { - content: "\f49e"; } - -.fa-scroll::before { - content: "\f70e"; } - -.fa-spa::before { - content: "\f5bb"; } - -.fa-location-pin-lock::before { - content: "\e51f"; } - -.fa-pause::before { - content: "\f04c"; } - -.fa-hill-avalanche::before { - content: "\e507"; } - -.fa-temperature-empty::before { - content: "\f2cb"; } - -.fa-temperature-0::before { - content: "\f2cb"; } - -.fa-thermometer-0::before { - content: "\f2cb"; } - -.fa-thermometer-empty::before { - content: "\f2cb"; } - -.fa-bomb::before { - content: "\f1e2"; } - -.fa-registered::before { - content: "\f25d"; } - -.fa-address-card::before { - content: "\f2bb"; } - -.fa-contact-card::before { - content: "\f2bb"; } - -.fa-vcard::before { - content: "\f2bb"; } - -.fa-scale-unbalanced-flip::before { - content: "\f516"; } - -.fa-balance-scale-right::before { - content: "\f516"; } - -.fa-subscript::before { - content: "\f12c"; } - -.fa-diamond-turn-right::before { - content: "\f5eb"; } - -.fa-directions::before { - content: "\f5eb"; } - -.fa-burst::before { - content: "\e4dc"; } - -.fa-house-laptop::before { - content: "\e066"; } - -.fa-laptop-house::before { - content: "\e066"; } - -.fa-face-tired::before { - content: "\f5c8"; } - -.fa-tired::before { - content: "\f5c8"; } - -.fa-money-bills::before { - content: "\e1f3"; } - -.fa-smog::before { - content: "\f75f"; } - -.fa-crutch::before { - content: "\f7f7"; } - -.fa-cloud-arrow-up::before { - content: "\f0ee"; } - -.fa-cloud-upload::before { - content: "\f0ee"; } - -.fa-cloud-upload-alt::before { - content: "\f0ee"; } - -.fa-palette::before { - content: "\f53f"; } - -.fa-arrows-turn-right::before { - content: "\e4c0"; } - -.fa-vest::before { - content: "\e085"; } - -.fa-ferry::before { - content: "\e4ea"; } - -.fa-arrows-down-to-people::before { - content: "\e4b9"; } - -.fa-seedling::before { - content: "\f4d8"; } - -.fa-sprout::before { - content: "\f4d8"; } - -.fa-left-right::before { - content: "\f337"; } - -.fa-arrows-alt-h::before { - content: "\f337"; } - -.fa-boxes-packing::before { - content: "\e4c7"; } - -.fa-circle-arrow-left::before { - content: "\f0a8"; } - -.fa-arrow-circle-left::before { - content: "\f0a8"; } - -.fa-group-arrows-rotate::before { - content: "\e4f6"; } - -.fa-bowl-food::before { - content: "\e4c6"; } - -.fa-candy-cane::before { - content: "\f786"; } - -.fa-arrow-down-wide-short::before { - content: "\f160"; } - -.fa-sort-amount-asc::before { - content: "\f160"; } - -.fa-sort-amount-down::before { - content: "\f160"; } - -.fa-cloud-bolt::before { - content: "\f76c"; } - -.fa-thunderstorm::before { - content: "\f76c"; } - -.fa-text-slash::before { - content: "\f87d"; } - -.fa-remove-format::before { - content: "\f87d"; } - -.fa-face-smile-wink::before { - content: "\f4da"; } - -.fa-smile-wink::before { - content: "\f4da"; } - -.fa-file-word::before { - content: "\f1c2"; } - -.fa-file-powerpoint::before { - content: "\f1c4"; } - -.fa-arrows-left-right::before { - content: "\f07e"; } - -.fa-arrows-h::before { - content: "\f07e"; } - -.fa-house-lock::before { - content: "\e510"; } - -.fa-cloud-arrow-down::before { - content: "\f0ed"; } - -.fa-cloud-download::before { - content: "\f0ed"; } - -.fa-cloud-download-alt::before { - content: "\f0ed"; } - -.fa-children::before { - content: "\e4e1"; } - -.fa-chalkboard::before { - content: "\f51b"; } - -.fa-blackboard::before { - content: "\f51b"; } - -.fa-user-large-slash::before { - content: "\f4fa"; } - -.fa-user-alt-slash::before { - content: "\f4fa"; } - -.fa-envelope-open::before { - content: "\f2b6"; } - -.fa-handshake-simple-slash::before { - content: "\e05f"; } - -.fa-handshake-alt-slash::before { - content: "\e05f"; } - -.fa-mattress-pillow::before { - content: "\e525"; } - -.fa-guarani-sign::before { - content: "\e19a"; } - -.fa-arrows-rotate::before { - content: "\f021"; } - -.fa-refresh::before { - content: "\f021"; } - -.fa-sync::before { - content: "\f021"; } - -.fa-fire-extinguisher::before { - content: "\f134"; } - -.fa-cruzeiro-sign::before { - content: "\e152"; } - -.fa-greater-than-equal::before { - content: "\f532"; } - -.fa-shield-halved::before { - content: "\f3ed"; } - -.fa-shield-alt::before { - content: "\f3ed"; } - -.fa-book-atlas::before { - content: "\f558"; } - -.fa-atlas::before { - content: "\f558"; } - -.fa-virus::before { - content: "\e074"; } - -.fa-envelope-circle-check::before { - content: "\e4e8"; } - -.fa-layer-group::before { - content: "\f5fd"; } - -.fa-arrows-to-dot::before { - content: "\e4be"; } - -.fa-archway::before { - content: "\f557"; } - -.fa-heart-circle-check::before { - content: "\e4fd"; } - -.fa-house-chimney-crack::before { - content: "\f6f1"; } - -.fa-house-damage::before { - content: "\f6f1"; } - -.fa-file-zipper::before { - content: "\f1c6"; } - -.fa-file-archive::before { - content: "\f1c6"; } - -.fa-square::before { - content: "\f0c8"; } - -.fa-martini-glass-empty::before { - content: "\f000"; } - -.fa-glass-martini::before { - content: "\f000"; } - -.fa-couch::before { - content: "\f4b8"; } - -.fa-cedi-sign::before { - content: "\e0df"; } - -.fa-italic::before { - content: "\f033"; } - -.fa-table-cells-column-lock::before { - content: "\e678"; } - -.fa-church::before { - content: "\f51d"; } - -.fa-comments-dollar::before { - content: "\f653"; } - -.fa-democrat::before { - content: "\f747"; } - -.fa-z::before { - content: "\5a"; } - -.fa-person-skiing::before { - content: "\f7c9"; } - -.fa-skiing::before { - content: "\f7c9"; } - -.fa-road-lock::before { - content: "\e567"; } - -.fa-a::before { - content: "\41"; } - -.fa-temperature-arrow-down::before { - content: "\e03f"; } - -.fa-temperature-down::before { - content: "\e03f"; } - -.fa-feather-pointed::before { - content: "\f56b"; } - -.fa-feather-alt::before { - content: "\f56b"; } - -.fa-p::before { - content: "\50"; } - -.fa-snowflake::before { - content: "\f2dc"; } - -.fa-newspaper::before { - content: "\f1ea"; } - -.fa-rectangle-ad::before { - content: "\f641"; } - -.fa-ad::before { - content: "\f641"; } - -.fa-circle-arrow-right::before { - content: "\f0a9"; } - -.fa-arrow-circle-right::before { - content: "\f0a9"; } - -.fa-filter-circle-xmark::before { - content: "\e17b"; } - -.fa-locust::before { - content: "\e520"; } - -.fa-sort::before { - content: "\f0dc"; } - -.fa-unsorted::before { - content: "\f0dc"; } - -.fa-list-ol::before { - content: "\f0cb"; } - -.fa-list-1-2::before { - content: "\f0cb"; } - -.fa-list-numeric::before { - content: "\f0cb"; } - -.fa-person-dress-burst::before { - content: "\e544"; } - -.fa-money-check-dollar::before { - content: "\f53d"; } - -.fa-money-check-alt::before { - content: "\f53d"; } - -.fa-vector-square::before { - content: "\f5cb"; } - -.fa-bread-slice::before { - content: "\f7ec"; } - -.fa-language::before { - content: "\f1ab"; } - -.fa-face-kiss-wink-heart::before { - content: "\f598"; } - -.fa-kiss-wink-heart::before { - content: "\f598"; } - -.fa-filter::before { - content: "\f0b0"; } - -.fa-question::before { - content: "\3f"; } - -.fa-file-signature::before { - content: "\f573"; } - -.fa-up-down-left-right::before { - content: "\f0b2"; } - -.fa-arrows-alt::before { - content: "\f0b2"; } - -.fa-house-chimney-user::before { - content: "\e065"; } - -.fa-hand-holding-heart::before { - content: "\f4be"; } - -.fa-puzzle-piece::before { - content: "\f12e"; } - -.fa-money-check::before { - content: "\f53c"; } - -.fa-star-half-stroke::before { - content: "\f5c0"; } - -.fa-star-half-alt::before { - content: "\f5c0"; } - -.fa-code::before { - content: "\f121"; } - -.fa-whiskey-glass::before { - content: "\f7a0"; } - -.fa-glass-whiskey::before { - content: "\f7a0"; } - -.fa-building-circle-exclamation::before { - content: "\e4d3"; } - -.fa-magnifying-glass-chart::before { - content: "\e522"; } - -.fa-arrow-up-right-from-square::before { - content: "\f08e"; } - -.fa-external-link::before { - content: "\f08e"; } - -.fa-cubes-stacked::before { - content: "\e4e6"; } - -.fa-won-sign::before { - content: "\f159"; } - -.fa-krw::before { - content: "\f159"; } - -.fa-won::before { - content: "\f159"; } - -.fa-virus-covid::before { - content: "\e4a8"; } - -.fa-austral-sign::before { - content: "\e0a9"; } - -.fa-f::before { - content: "\46"; } - -.fa-leaf::before { - content: "\f06c"; } - -.fa-road::before { - content: "\f018"; } - -.fa-taxi::before { - content: "\f1ba"; } - -.fa-cab::before { - content: "\f1ba"; } - -.fa-person-circle-plus::before { - content: "\e541"; } - -.fa-chart-pie::before { - content: "\f200"; } - -.fa-pie-chart::before { - content: "\f200"; } - -.fa-bolt-lightning::before { - content: "\e0b7"; } - -.fa-sack-xmark::before { - content: "\e56a"; } - -.fa-file-excel::before { - content: "\f1c3"; } - -.fa-file-contract::before { - content: "\f56c"; } - -.fa-fish-fins::before { - content: "\e4f2"; } - -.fa-building-flag::before { - content: "\e4d5"; } - -.fa-face-grin-beam::before { - content: "\f582"; } - -.fa-grin-beam::before { - content: "\f582"; } - -.fa-object-ungroup::before { - content: "\f248"; } - -.fa-poop::before { - content: "\f619"; } - -.fa-location-pin::before { - content: "\f041"; } - -.fa-map-marker::before { - content: "\f041"; } - -.fa-kaaba::before { - content: "\f66b"; } - -.fa-toilet-paper::before { - content: "\f71e"; } - -.fa-helmet-safety::before { - content: "\f807"; } - -.fa-hard-hat::before { - content: "\f807"; } - -.fa-hat-hard::before { - content: "\f807"; } - -.fa-eject::before { - content: "\f052"; } - -.fa-circle-right::before { - content: "\f35a"; } - -.fa-arrow-alt-circle-right::before { - content: "\f35a"; } - -.fa-plane-circle-check::before { - content: "\e555"; } - -.fa-face-rolling-eyes::before { - content: "\f5a5"; } - -.fa-meh-rolling-eyes::before { - content: "\f5a5"; } - -.fa-object-group::before { - content: "\f247"; } - -.fa-chart-line::before { - content: "\f201"; } - -.fa-line-chart::before { - content: "\f201"; } - -.fa-mask-ventilator::before { - content: "\e524"; } - -.fa-arrow-right::before { - content: "\f061"; } - -.fa-signs-post::before { - content: "\f277"; } - -.fa-map-signs::before { - content: "\f277"; } - -.fa-cash-register::before { - content: "\f788"; } - -.fa-person-circle-question::before { - content: "\e542"; } - -.fa-h::before { - content: "\48"; } - -.fa-tarp::before { - content: "\e57b"; } - -.fa-screwdriver-wrench::before { - content: "\f7d9"; } - -.fa-tools::before { - content: "\f7d9"; } - -.fa-arrows-to-eye::before { - content: "\e4bf"; } - -.fa-plug-circle-bolt::before { - content: "\e55b"; } - -.fa-heart::before { - content: "\f004"; } - -.fa-mars-and-venus::before { - content: "\f224"; } - -.fa-house-user::before { - content: "\e1b0"; } - -.fa-home-user::before { - content: "\e1b0"; } - -.fa-dumpster-fire::before { - content: "\f794"; } - -.fa-house-crack::before { - content: "\e3b1"; } - -.fa-martini-glass-citrus::before { - content: "\f561"; } - -.fa-cocktail::before { - content: "\f561"; } - -.fa-face-surprise::before { - content: "\f5c2"; } - -.fa-surprise::before { - content: "\f5c2"; } - -.fa-bottle-water::before { - content: "\e4c5"; } - -.fa-circle-pause::before { - content: "\f28b"; } - -.fa-pause-circle::before { - content: "\f28b"; } - -.fa-toilet-paper-slash::before { - content: "\e072"; } - -.fa-apple-whole::before { - content: "\f5d1"; } - -.fa-apple-alt::before { - content: "\f5d1"; } - -.fa-kitchen-set::before { - content: "\e51a"; } - -.fa-r::before { - content: "\52"; } - -.fa-temperature-quarter::before { - content: "\f2ca"; } - -.fa-temperature-1::before { - content: "\f2ca"; } - -.fa-thermometer-1::before { - content: "\f2ca"; } - -.fa-thermometer-quarter::before { - content: "\f2ca"; } - -.fa-cube::before { - content: "\f1b2"; } - -.fa-bitcoin-sign::before { - content: "\e0b4"; } - -.fa-shield-dog::before { - content: "\e573"; } - -.fa-solar-panel::before { - content: "\f5ba"; } - -.fa-lock-open::before { - content: "\f3c1"; } - -.fa-elevator::before { - content: "\e16d"; } - -.fa-money-bill-transfer::before { - content: "\e528"; } - -.fa-money-bill-trend-up::before { - content: "\e529"; } - -.fa-house-flood-water-circle-arrow-right::before { - content: "\e50f"; } - -.fa-square-poll-horizontal::before { - content: "\f682"; } - -.fa-poll-h::before { - content: "\f682"; } - -.fa-circle::before { - content: "\f111"; } - -.fa-backward-fast::before { - content: "\f049"; } - -.fa-fast-backward::before { - content: "\f049"; } - -.fa-recycle::before { - content: "\f1b8"; } - -.fa-user-astronaut::before { - content: "\f4fb"; } - -.fa-plane-slash::before { - content: "\e069"; } - -.fa-trademark::before { - content: "\f25c"; } - -.fa-basketball::before { - content: "\f434"; } - -.fa-basketball-ball::before { - content: "\f434"; } - -.fa-satellite-dish::before { - content: "\f7c0"; } - -.fa-circle-up::before { - content: "\f35b"; } - -.fa-arrow-alt-circle-up::before { - content: "\f35b"; } - -.fa-mobile-screen-button::before { - content: "\f3cd"; } - -.fa-mobile-alt::before { - content: "\f3cd"; } - -.fa-volume-high::before { - content: "\f028"; } - -.fa-volume-up::before { - content: "\f028"; } - -.fa-users-rays::before { - content: "\e593"; } - -.fa-wallet::before { - content: "\f555"; } - -.fa-clipboard-check::before { - content: "\f46c"; } - -.fa-file-audio::before { - content: "\f1c7"; } - -.fa-burger::before { - content: "\f805"; } - -.fa-hamburger::before { - content: "\f805"; } - -.fa-wrench::before { - content: "\f0ad"; } - -.fa-bugs::before { - content: "\e4d0"; } - -.fa-rupee-sign::before { - content: "\f156"; } - -.fa-rupee::before { - content: "\f156"; } - -.fa-file-image::before { - content: "\f1c5"; } - -.fa-circle-question::before { - content: "\f059"; } - -.fa-question-circle::before { - content: "\f059"; } - -.fa-plane-departure::before { - content: "\f5b0"; } - -.fa-handshake-slash::before { - content: "\e060"; } - -.fa-book-bookmark::before { - content: "\e0bb"; } - -.fa-code-branch::before { - content: "\f126"; } - -.fa-hat-cowboy::before { - content: "\f8c0"; } - -.fa-bridge::before { - content: "\e4c8"; } - -.fa-phone-flip::before { - content: "\f879"; } - -.fa-phone-alt::before { - content: "\f879"; } - -.fa-truck-front::before { - content: "\e2b7"; } - -.fa-cat::before { - content: "\f6be"; } - -.fa-anchor-circle-exclamation::before { - content: "\e4ab"; } - -.fa-truck-field::before { - content: "\e58d"; } - -.fa-route::before { - content: "\f4d7"; } - -.fa-clipboard-question::before { - content: "\e4e3"; } - -.fa-panorama::before { - content: "\e209"; } - -.fa-comment-medical::before { - content: "\f7f5"; } - -.fa-teeth-open::before { - content: "\f62f"; } - -.fa-file-circle-minus::before { - content: "\e4ed"; } - -.fa-tags::before { - content: "\f02c"; } - -.fa-wine-glass::before { - content: "\f4e3"; } - -.fa-forward-fast::before { - content: "\f050"; } - -.fa-fast-forward::before { - content: "\f050"; } - -.fa-face-meh-blank::before { - content: "\f5a4"; } - -.fa-meh-blank::before { - content: "\f5a4"; } - -.fa-square-parking::before { - content: "\f540"; } - -.fa-parking::before { - content: "\f540"; } - -.fa-house-signal::before { - content: "\e012"; } - -.fa-bars-progress::before { - content: "\f828"; } - -.fa-tasks-alt::before { - content: "\f828"; } - -.fa-faucet-drip::before { - content: "\e006"; } - -.fa-cart-flatbed::before { - content: "\f474"; } - -.fa-dolly-flatbed::before { - content: "\f474"; } - -.fa-ban-smoking::before { - content: "\f54d"; } - -.fa-smoking-ban::before { - content: "\f54d"; } - -.fa-terminal::before { - content: "\f120"; } - -.fa-mobile-button::before { - content: "\f10b"; } - -.fa-house-medical-flag::before { - content: "\e514"; } - -.fa-basket-shopping::before { - content: "\f291"; } - -.fa-shopping-basket::before { - content: "\f291"; } - -.fa-tape::before { - content: "\f4db"; } - -.fa-bus-simple::before { - content: "\f55e"; } - -.fa-bus-alt::before { - content: "\f55e"; } - -.fa-eye::before { - content: "\f06e"; } - -.fa-face-sad-cry::before { - content: "\f5b3"; } - -.fa-sad-cry::before { - content: "\f5b3"; } - -.fa-audio-description::before { - content: "\f29e"; } - -.fa-person-military-to-person::before { - content: "\e54c"; } - -.fa-file-shield::before { - content: "\e4f0"; } - -.fa-user-slash::before { - content: "\f506"; } - -.fa-pen::before { - content: "\f304"; } - -.fa-tower-observation::before { - content: "\e586"; } - -.fa-file-code::before { - content: "\f1c9"; } - -.fa-signal::before { - content: "\f012"; } - -.fa-signal-5::before { - content: "\f012"; } - -.fa-signal-perfect::before { - content: "\f012"; } - -.fa-bus::before { - content: "\f207"; } - -.fa-heart-circle-xmark::before { - content: "\e501"; } - -.fa-house-chimney::before { - content: "\e3af"; } - -.fa-home-lg::before { - content: "\e3af"; } - -.fa-window-maximize::before { - content: "\f2d0"; } - -.fa-face-frown::before { - content: "\f119"; } - -.fa-frown::before { - content: "\f119"; } - -.fa-prescription::before { - content: "\f5b1"; } - -.fa-shop::before { - content: "\f54f"; } - -.fa-store-alt::before { - content: "\f54f"; } - -.fa-floppy-disk::before { - content: "\f0c7"; } - -.fa-save::before { - content: "\f0c7"; } - -.fa-vihara::before { - content: "\f6a7"; } - -.fa-scale-unbalanced::before { - content: "\f515"; } - -.fa-balance-scale-left::before { - content: "\f515"; } - -.fa-sort-up::before { - content: "\f0de"; } - -.fa-sort-asc::before { - content: "\f0de"; } - -.fa-comment-dots::before { - content: "\f4ad"; } - -.fa-commenting::before { - content: "\f4ad"; } - -.fa-plant-wilt::before { - content: "\e5aa"; } - -.fa-diamond::before { - content: "\f219"; } - -.fa-face-grin-squint::before { - content: "\f585"; } - -.fa-grin-squint::before { - content: "\f585"; } - -.fa-hand-holding-dollar::before { - content: "\f4c0"; } - -.fa-hand-holding-usd::before { - content: "\f4c0"; } - -.fa-bacterium::before { - content: "\e05a"; } - -.fa-hand-pointer::before { - content: "\f25a"; } - -.fa-drum-steelpan::before { - content: "\f56a"; } - -.fa-hand-scissors::before { - content: "\f257"; } - -.fa-hands-praying::before { - content: "\f684"; } - -.fa-praying-hands::before { - content: "\f684"; } - -.fa-arrow-rotate-right::before { - content: "\f01e"; } - -.fa-arrow-right-rotate::before { - content: "\f01e"; } - -.fa-arrow-rotate-forward::before { - content: "\f01e"; } - -.fa-redo::before { - content: "\f01e"; } - -.fa-biohazard::before { - content: "\f780"; } - -.fa-location-crosshairs::before { - content: "\f601"; } - -.fa-location::before { - content: "\f601"; } - -.fa-mars-double::before { - content: "\f227"; } - -.fa-child-dress::before { - content: "\e59c"; } - -.fa-users-between-lines::before { - content: "\e591"; } - -.fa-lungs-virus::before { - content: "\e067"; } - -.fa-face-grin-tears::before { - content: "\f588"; } - -.fa-grin-tears::before { - content: "\f588"; } - -.fa-phone::before { - content: "\f095"; } - -.fa-calendar-xmark::before { - content: "\f273"; } - -.fa-calendar-times::before { - content: "\f273"; } - -.fa-child-reaching::before { - content: "\e59d"; } - -.fa-head-side-virus::before { - content: "\e064"; } - -.fa-user-gear::before { - content: "\f4fe"; } - -.fa-user-cog::before { - content: "\f4fe"; } - -.fa-arrow-up-1-9::before { - content: "\f163"; } - -.fa-sort-numeric-up::before { - content: "\f163"; } - -.fa-door-closed::before { - content: "\f52a"; } - -.fa-shield-virus::before { - content: "\e06c"; } - -.fa-dice-six::before { - content: "\f526"; } - -.fa-mosquito-net::before { - content: "\e52c"; } - -.fa-bridge-water::before { - content: "\e4ce"; } - -.fa-person-booth::before { - content: "\f756"; } - -.fa-text-width::before { - content: "\f035"; } - -.fa-hat-wizard::before { - content: "\f6e8"; } - -.fa-pen-fancy::before { - content: "\f5ac"; } - -.fa-person-digging::before { - content: "\f85e"; } - -.fa-digging::before { - content: "\f85e"; } - -.fa-trash::before { - content: "\f1f8"; } - -.fa-gauge-simple::before { - content: "\f629"; } - -.fa-gauge-simple-med::before { - content: "\f629"; } - -.fa-tachometer-average::before { - content: "\f629"; } - -.fa-book-medical::before { - content: "\f7e6"; } - -.fa-poo::before { - content: "\f2fe"; } - -.fa-quote-right::before { - content: "\f10e"; } - -.fa-quote-right-alt::before { - content: "\f10e"; } - -.fa-shirt::before { - content: "\f553"; } - -.fa-t-shirt::before { - content: "\f553"; } - -.fa-tshirt::before { - content: "\f553"; } - -.fa-cubes::before { - content: "\f1b3"; } - -.fa-divide::before { - content: "\f529"; } - -.fa-tenge-sign::before { - content: "\f7d7"; } - -.fa-tenge::before { - content: "\f7d7"; } - -.fa-headphones::before { - content: "\f025"; } - -.fa-hands-holding::before { - content: "\f4c2"; } - -.fa-hands-clapping::before { - content: "\e1a8"; } - -.fa-republican::before { - content: "\f75e"; } - -.fa-arrow-left::before { - content: "\f060"; } - -.fa-person-circle-xmark::before { - content: "\e543"; } - -.fa-ruler::before { - content: "\f545"; } - -.fa-align-left::before { - content: "\f036"; } - -.fa-dice-d6::before { - content: "\f6d1"; } - -.fa-restroom::before { - content: "\f7bd"; } - -.fa-j::before { - content: "\4a"; } - -.fa-users-viewfinder::before { - content: "\e595"; } - -.fa-file-video::before { - content: "\f1c8"; } - -.fa-up-right-from-square::before { - content: "\f35d"; } - -.fa-external-link-alt::before { - content: "\f35d"; } - -.fa-table-cells::before { - content: "\f00a"; } - -.fa-th::before { - content: "\f00a"; } - -.fa-file-pdf::before { - content: "\f1c1"; } - -.fa-book-bible::before { - content: "\f647"; } - -.fa-bible::before { - content: "\f647"; } - -.fa-o::before { - content: "\4f"; } - -.fa-suitcase-medical::before { - content: "\f0fa"; } - -.fa-medkit::before { - content: "\f0fa"; } - -.fa-user-secret::before { - content: "\f21b"; } - -.fa-otter::before { - content: "\f700"; } - -.fa-person-dress::before { - content: "\f182"; } - -.fa-female::before { - content: "\f182"; } - -.fa-comment-dollar::before { - content: "\f651"; } - -.fa-business-time::before { - content: "\f64a"; } - -.fa-briefcase-clock::before { - content: "\f64a"; } - -.fa-table-cells-large::before { - content: "\f009"; } - -.fa-th-large::before { - content: "\f009"; } - -.fa-book-tanakh::before { - content: "\f827"; } - -.fa-tanakh::before { - content: "\f827"; } - -.fa-phone-volume::before { - content: "\f2a0"; } - -.fa-volume-control-phone::before { - content: "\f2a0"; } - -.fa-hat-cowboy-side::before { - content: "\f8c1"; } - -.fa-clipboard-user::before { - content: "\f7f3"; } - -.fa-child::before { - content: "\f1ae"; } - -.fa-lira-sign::before { - content: "\f195"; } - -.fa-satellite::before { - content: "\f7bf"; } - -.fa-plane-lock::before { - content: "\e558"; } - -.fa-tag::before { - content: "\f02b"; } - -.fa-comment::before { - content: "\f075"; } - -.fa-cake-candles::before { - content: "\f1fd"; } - -.fa-birthday-cake::before { - content: "\f1fd"; } - -.fa-cake::before { - content: "\f1fd"; } - -.fa-envelope::before { - content: "\f0e0"; } - -.fa-angles-up::before { - content: "\f102"; } - -.fa-angle-double-up::before { - content: "\f102"; } - -.fa-paperclip::before { - content: "\f0c6"; } - -.fa-arrow-right-to-city::before { - content: "\e4b3"; } - -.fa-ribbon::before { - content: "\f4d6"; } - -.fa-lungs::before { - content: "\f604"; } - -.fa-arrow-up-9-1::before { - content: "\f887"; } - -.fa-sort-numeric-up-alt::before { - content: "\f887"; } - -.fa-litecoin-sign::before { - content: "\e1d3"; } - -.fa-border-none::before { - content: "\f850"; } - -.fa-circle-nodes::before { - content: "\e4e2"; } - -.fa-parachute-box::before { - content: "\f4cd"; } - -.fa-indent::before { - content: "\f03c"; } - -.fa-truck-field-un::before { - content: "\e58e"; } - -.fa-hourglass::before { - content: "\f254"; } - -.fa-hourglass-empty::before { - content: "\f254"; } - -.fa-mountain::before { - content: "\f6fc"; } - -.fa-user-doctor::before { - content: "\f0f0"; } - -.fa-user-md::before { - content: "\f0f0"; } - -.fa-circle-info::before { - content: "\f05a"; } - -.fa-info-circle::before { - content: "\f05a"; } - -.fa-cloud-meatball::before { - content: "\f73b"; } - -.fa-camera::before { - content: "\f030"; } - -.fa-camera-alt::before { - content: "\f030"; } - -.fa-square-virus::before { - content: "\e578"; } - -.fa-meteor::before { - content: "\f753"; } - -.fa-car-on::before { - content: "\e4dd"; } - -.fa-sleigh::before { - content: "\f7cc"; } - -.fa-arrow-down-1-9::before { - content: "\f162"; } - -.fa-sort-numeric-asc::before { - content: "\f162"; } - -.fa-sort-numeric-down::before { - content: "\f162"; } - -.fa-hand-holding-droplet::before { - content: "\f4c1"; } - -.fa-hand-holding-water::before { - content: "\f4c1"; } - -.fa-water::before { - content: "\f773"; } - -.fa-calendar-check::before { - content: "\f274"; } - -.fa-braille::before { - content: "\f2a1"; } - -.fa-prescription-bottle-medical::before { - content: "\f486"; } - -.fa-prescription-bottle-alt::before { - content: "\f486"; } - -.fa-landmark::before { - content: "\f66f"; } - -.fa-truck::before { - content: "\f0d1"; } - -.fa-crosshairs::before { - content: "\f05b"; } - -.fa-person-cane::before { - content: "\e53c"; } - -.fa-tent::before { - content: "\e57d"; } - -.fa-vest-patches::before { - content: "\e086"; } - -.fa-check-double::before { - content: "\f560"; } - -.fa-arrow-down-a-z::before { - content: "\f15d"; } - -.fa-sort-alpha-asc::before { - content: "\f15d"; } - -.fa-sort-alpha-down::before { - content: "\f15d"; } - -.fa-money-bill-wheat::before { - content: "\e52a"; } - -.fa-cookie::before { - content: "\f563"; } - -.fa-arrow-rotate-left::before { - content: "\f0e2"; } - -.fa-arrow-left-rotate::before { - content: "\f0e2"; } - -.fa-arrow-rotate-back::before { - content: "\f0e2"; } - -.fa-arrow-rotate-backward::before { - content: "\f0e2"; } - -.fa-undo::before { - content: "\f0e2"; } - -.fa-hard-drive::before { - content: "\f0a0"; } - -.fa-hdd::before { - content: "\f0a0"; } - -.fa-face-grin-squint-tears::before { - content: "\f586"; } - -.fa-grin-squint-tears::before { - content: "\f586"; } - -.fa-dumbbell::before { - content: "\f44b"; } - -.fa-rectangle-list::before { - content: "\f022"; } - -.fa-list-alt::before { - content: "\f022"; } - -.fa-tarp-droplet::before { - content: "\e57c"; } - -.fa-house-medical-circle-check::before { - content: "\e511"; } - -.fa-person-skiing-nordic::before { - content: "\f7ca"; } - -.fa-skiing-nordic::before { - content: "\f7ca"; } - -.fa-calendar-plus::before { - content: "\f271"; } - -.fa-plane-arrival::before { - content: "\f5af"; } - -.fa-circle-left::before { - content: "\f359"; } - -.fa-arrow-alt-circle-left::before { - content: "\f359"; } - -.fa-train-subway::before { - content: "\f239"; } - -.fa-subway::before { - content: "\f239"; } - -.fa-chart-gantt::before { - content: "\e0e4"; } - -.fa-indian-rupee-sign::before { - content: "\e1bc"; } - -.fa-indian-rupee::before { - content: "\e1bc"; } - -.fa-inr::before { - content: "\e1bc"; } - -.fa-crop-simple::before { - content: "\f565"; } - -.fa-crop-alt::before { - content: "\f565"; } - -.fa-money-bill-1::before { - content: "\f3d1"; } - -.fa-money-bill-alt::before { - content: "\f3d1"; } - -.fa-left-long::before { - content: "\f30a"; } - -.fa-long-arrow-alt-left::before { - content: "\f30a"; } - -.fa-dna::before { - content: "\f471"; } - -.fa-virus-slash::before { - content: "\e075"; } - -.fa-minus::before { - content: "\f068"; } - -.fa-subtract::before { - content: "\f068"; } - -.fa-chess::before { - content: "\f439"; } - -.fa-arrow-left-long::before { - content: "\f177"; } - -.fa-long-arrow-left::before { - content: "\f177"; } - -.fa-plug-circle-check::before { - content: "\e55c"; } - -.fa-street-view::before { - content: "\f21d"; } - -.fa-franc-sign::before { - content: "\e18f"; } - -.fa-volume-off::before { - content: "\f026"; } - -.fa-hands-asl-interpreting::before { - content: "\f2a3"; } - -.fa-american-sign-language-interpreting::before { - content: "\f2a3"; } - -.fa-asl-interpreting::before { - content: "\f2a3"; } - -.fa-hands-american-sign-language-interpreting::before { - content: "\f2a3"; } - -.fa-gear::before { - content: "\f013"; } - -.fa-cog::before { - content: "\f013"; } - -.fa-droplet-slash::before { - content: "\f5c7"; } - -.fa-tint-slash::before { - content: "\f5c7"; } - -.fa-mosque::before { - content: "\f678"; } - -.fa-mosquito::before { - content: "\e52b"; } - -.fa-star-of-david::before { - content: "\f69a"; } - -.fa-person-military-rifle::before { - content: "\e54b"; } - -.fa-cart-shopping::before { - content: "\f07a"; } - -.fa-shopping-cart::before { - content: "\f07a"; } - -.fa-vials::before { - content: "\f493"; } - -.fa-plug-circle-plus::before { - content: "\e55f"; } - -.fa-place-of-worship::before { - content: "\f67f"; } - -.fa-grip-vertical::before { - content: "\f58e"; } - -.fa-arrow-turn-up::before { - content: "\f148"; } - -.fa-level-up::before { - content: "\f148"; } - -.fa-u::before { - content: "\55"; } - -.fa-square-root-variable::before { - content: "\f698"; } - -.fa-square-root-alt::before { - content: "\f698"; } - -.fa-clock::before { - content: "\f017"; } - -.fa-clock-four::before { - content: "\f017"; } - -.fa-backward-step::before { - content: "\f048"; } - -.fa-step-backward::before { - content: "\f048"; } - -.fa-pallet::before { - content: "\f482"; } - -.fa-faucet::before { - content: "\e005"; } - -.fa-baseball-bat-ball::before { - content: "\f432"; } - -.fa-s::before { - content: "\53"; } - -.fa-timeline::before { - content: "\e29c"; } - -.fa-keyboard::before { - content: "\f11c"; } - -.fa-caret-down::before { - content: "\f0d7"; } - -.fa-house-chimney-medical::before { - content: "\f7f2"; } - -.fa-clinic-medical::before { - content: "\f7f2"; } - -.fa-temperature-three-quarters::before { - content: "\f2c8"; } - -.fa-temperature-3::before { - content: "\f2c8"; } - -.fa-thermometer-3::before { - content: "\f2c8"; } - -.fa-thermometer-three-quarters::before { - content: "\f2c8"; } - -.fa-mobile-screen::before { - content: "\f3cf"; } - -.fa-mobile-android-alt::before { - content: "\f3cf"; } - -.fa-plane-up::before { - content: "\e22d"; } - -.fa-piggy-bank::before { - content: "\f4d3"; } - -.fa-battery-half::before { - content: "\f242"; } - -.fa-battery-3::before { - content: "\f242"; } - -.fa-mountain-city::before { - content: "\e52e"; } - -.fa-coins::before { - content: "\f51e"; } - -.fa-khanda::before { - content: "\f66d"; } - -.fa-sliders::before { - content: "\f1de"; } - -.fa-sliders-h::before { - content: "\f1de"; } - -.fa-folder-tree::before { - content: "\f802"; } - -.fa-network-wired::before { - content: "\f6ff"; } - -.fa-map-pin::before { - content: "\f276"; } - -.fa-hamsa::before { - content: "\f665"; } - -.fa-cent-sign::before { - content: "\e3f5"; } - -.fa-flask::before { - content: "\f0c3"; } - -.fa-person-pregnant::before { - content: "\e31e"; } - -.fa-wand-sparkles::before { - content: "\f72b"; } - -.fa-ellipsis-vertical::before { - content: "\f142"; } - -.fa-ellipsis-v::before { - content: "\f142"; } - -.fa-ticket::before { - content: "\f145"; } - -.fa-power-off::before { - content: "\f011"; } - -.fa-right-long::before { - content: "\f30b"; } - -.fa-long-arrow-alt-right::before { - content: "\f30b"; } - -.fa-flag-usa::before { - content: "\f74d"; } - -.fa-laptop-file::before { - content: "\e51d"; } - -.fa-tty::before { - content: "\f1e4"; } - -.fa-teletype::before { - content: "\f1e4"; } - -.fa-diagram-next::before { - content: "\e476"; } - -.fa-person-rifle::before { - content: "\e54e"; } - -.fa-house-medical-circle-exclamation::before { - content: "\e512"; } - -.fa-closed-captioning::before { - content: "\f20a"; } - -.fa-person-hiking::before { - content: "\f6ec"; } - -.fa-hiking::before { - content: "\f6ec"; } - -.fa-venus-double::before { - content: "\f226"; } - -.fa-images::before { - content: "\f302"; } - -.fa-calculator::before { - content: "\f1ec"; } - -.fa-people-pulling::before { - content: "\e535"; } - -.fa-n::before { - content: "\4e"; } - -.fa-cable-car::before { - content: "\f7da"; } - -.fa-tram::before { - content: "\f7da"; } - -.fa-cloud-rain::before { - content: "\f73d"; } - -.fa-building-circle-xmark::before { - content: "\e4d4"; } - -.fa-ship::before { - content: "\f21a"; } - -.fa-arrows-down-to-line::before { - content: "\e4b8"; } - -.fa-download::before { - content: "\f019"; } - -.fa-face-grin::before { - content: "\f580"; } - -.fa-grin::before { - content: "\f580"; } - -.fa-delete-left::before { - content: "\f55a"; } - -.fa-backspace::before { - content: "\f55a"; } - -.fa-eye-dropper::before { - content: "\f1fb"; } - -.fa-eye-dropper-empty::before { - content: "\f1fb"; } - -.fa-eyedropper::before { - content: "\f1fb"; } - -.fa-file-circle-check::before { - content: "\e5a0"; } - -.fa-forward::before { - content: "\f04e"; } - -.fa-mobile::before { - content: "\f3ce"; } - -.fa-mobile-android::before { - content: "\f3ce"; } - -.fa-mobile-phone::before { - content: "\f3ce"; } - -.fa-face-meh::before { - content: "\f11a"; } - -.fa-meh::before { - content: "\f11a"; } - -.fa-align-center::before { - content: "\f037"; } - -.fa-book-skull::before { - content: "\f6b7"; } - -.fa-book-dead::before { - content: "\f6b7"; } - -.fa-id-card::before { - content: "\f2c2"; } - -.fa-drivers-license::before { - content: "\f2c2"; } - -.fa-outdent::before { - content: "\f03b"; } - -.fa-dedent::before { - content: "\f03b"; } - -.fa-heart-circle-exclamation::before { - content: "\e4fe"; } - -.fa-house::before { - content: "\f015"; } - -.fa-home::before { - content: "\f015"; } - -.fa-home-alt::before { - content: "\f015"; } - -.fa-home-lg-alt::before { - content: "\f015"; } - -.fa-calendar-week::before { - content: "\f784"; } - -.fa-laptop-medical::before { - content: "\f812"; } - -.fa-b::before { - content: "\42"; } - -.fa-file-medical::before { - content: "\f477"; } - -.fa-dice-one::before { - content: "\f525"; } - -.fa-kiwi-bird::before { - content: "\f535"; } - -.fa-arrow-right-arrow-left::before { - content: "\f0ec"; } - -.fa-exchange::before { - content: "\f0ec"; } - -.fa-rotate-right::before { - content: "\f2f9"; } - -.fa-redo-alt::before { - content: "\f2f9"; } - -.fa-rotate-forward::before { - content: "\f2f9"; } - -.fa-utensils::before { - content: "\f2e7"; } - -.fa-cutlery::before { - content: "\f2e7"; } - -.fa-arrow-up-wide-short::before { - content: "\f161"; } - -.fa-sort-amount-up::before { - content: "\f161"; } - -.fa-mill-sign::before { - content: "\e1ed"; } - -.fa-bowl-rice::before { - content: "\e2eb"; } - -.fa-skull::before { - content: "\f54c"; } - -.fa-tower-broadcast::before { - content: "\f519"; } - -.fa-broadcast-tower::before { - content: "\f519"; } - -.fa-truck-pickup::before { - content: "\f63c"; } - -.fa-up-long::before { - content: "\f30c"; } - -.fa-long-arrow-alt-up::before { - content: "\f30c"; } - -.fa-stop::before { - content: "\f04d"; } - -.fa-code-merge::before { - content: "\f387"; } - -.fa-upload::before { - content: "\f093"; } - -.fa-hurricane::before { - content: "\f751"; } - -.fa-mound::before { - content: "\e52d"; } - -.fa-toilet-portable::before { - content: "\e583"; } - -.fa-compact-disc::before { - content: "\f51f"; } - -.fa-file-arrow-down::before { - content: "\f56d"; } - -.fa-file-download::before { - content: "\f56d"; } - -.fa-caravan::before { - content: "\f8ff"; } - -.fa-shield-cat::before { - content: "\e572"; } - -.fa-bolt::before { - content: "\f0e7"; } - -.fa-zap::before { - content: "\f0e7"; } - -.fa-glass-water::before { - content: "\e4f4"; } - -.fa-oil-well::before { - content: "\e532"; } - -.fa-vault::before { - content: "\e2c5"; } - -.fa-mars::before { - content: "\f222"; } - -.fa-toilet::before { - content: "\f7d8"; } - -.fa-plane-circle-xmark::before { - content: "\e557"; } - -.fa-yen-sign::before { - content: "\f157"; } - -.fa-cny::before { - content: "\f157"; } - -.fa-jpy::before { - content: "\f157"; } - -.fa-rmb::before { - content: "\f157"; } - -.fa-yen::before { - content: "\f157"; } - -.fa-ruble-sign::before { - content: "\f158"; } - -.fa-rouble::before { - content: "\f158"; } - -.fa-rub::before { - content: "\f158"; } - -.fa-ruble::before { - content: "\f158"; } - -.fa-sun::before { - content: "\f185"; } - -.fa-guitar::before { - content: "\f7a6"; } - -.fa-face-laugh-wink::before { - content: "\f59c"; } - -.fa-laugh-wink::before { - content: "\f59c"; } - -.fa-horse-head::before { - content: "\f7ab"; } - -.fa-bore-hole::before { - content: "\e4c3"; } - -.fa-industry::before { - content: "\f275"; } - -.fa-circle-down::before { - content: "\f358"; } - -.fa-arrow-alt-circle-down::before { - content: "\f358"; } - -.fa-arrows-turn-to-dots::before { - content: "\e4c1"; } - -.fa-florin-sign::before { - content: "\e184"; } - -.fa-arrow-down-short-wide::before { - content: "\f884"; } - -.fa-sort-amount-desc::before { - content: "\f884"; } - -.fa-sort-amount-down-alt::before { - content: "\f884"; } - -.fa-less-than::before { - content: "\3c"; } - -.fa-angle-down::before { - content: "\f107"; } - -.fa-car-tunnel::before { - content: "\e4de"; } - -.fa-head-side-cough::before { - content: "\e061"; } - -.fa-grip-lines::before { - content: "\f7a4"; } - -.fa-thumbs-down::before { - content: "\f165"; } - -.fa-user-lock::before { - content: "\f502"; } - -.fa-arrow-right-long::before { - content: "\f178"; } - -.fa-long-arrow-right::before { - content: "\f178"; } - -.fa-anchor-circle-xmark::before { - content: "\e4ac"; } - -.fa-ellipsis::before { - content: "\f141"; } - -.fa-ellipsis-h::before { - content: "\f141"; } - -.fa-chess-pawn::before { - content: "\f443"; } - -.fa-kit-medical::before { - content: "\f479"; } - -.fa-first-aid::before { - content: "\f479"; } - -.fa-person-through-window::before { - content: "\e5a9"; } - -.fa-toolbox::before { - content: "\f552"; } - -.fa-hands-holding-circle::before { - content: "\e4fb"; } - -.fa-bug::before { - content: "\f188"; } - -.fa-credit-card::before { - content: "\f09d"; } - -.fa-credit-card-alt::before { - content: "\f09d"; } - -.fa-car::before { - content: "\f1b9"; } - -.fa-automobile::before { - content: "\f1b9"; } - -.fa-hand-holding-hand::before { - content: "\e4f7"; } - -.fa-book-open-reader::before { - content: "\f5da"; } - -.fa-book-reader::before { - content: "\f5da"; } - -.fa-mountain-sun::before { - content: "\e52f"; } - -.fa-arrows-left-right-to-line::before { - content: "\e4ba"; } - -.fa-dice-d20::before { - content: "\f6cf"; } - -.fa-truck-droplet::before { - content: "\e58c"; } - -.fa-file-circle-xmark::before { - content: "\e5a1"; } - -.fa-temperature-arrow-up::before { - content: "\e040"; } - -.fa-temperature-up::before { - content: "\e040"; } - -.fa-medal::before { - content: "\f5a2"; } - -.fa-bed::before { - content: "\f236"; } - -.fa-square-h::before { - content: "\f0fd"; } - -.fa-h-square::before { - content: "\f0fd"; } - -.fa-podcast::before { - content: "\f2ce"; } - -.fa-temperature-full::before { - content: "\f2c7"; } - -.fa-temperature-4::before { - content: "\f2c7"; } - -.fa-thermometer-4::before { - content: "\f2c7"; } - -.fa-thermometer-full::before { - content: "\f2c7"; } - -.fa-bell::before { - content: "\f0f3"; } - -.fa-superscript::before { - content: "\f12b"; } - -.fa-plug-circle-xmark::before { - content: "\e560"; } - -.fa-star-of-life::before { - content: "\f621"; } - -.fa-phone-slash::before { - content: "\f3dd"; } - -.fa-paint-roller::before { - content: "\f5aa"; } - -.fa-handshake-angle::before { - content: "\f4c4"; } - -.fa-hands-helping::before { - content: "\f4c4"; } - -.fa-location-dot::before { - content: "\f3c5"; } - -.fa-map-marker-alt::before { - content: "\f3c5"; } - -.fa-file::before { - content: "\f15b"; } - -.fa-greater-than::before { - content: "\3e"; } - -.fa-person-swimming::before { - content: "\f5c4"; } - -.fa-swimmer::before { - content: "\f5c4"; } - -.fa-arrow-down::before { - content: "\f063"; } - -.fa-droplet::before { - content: "\f043"; } - -.fa-tint::before { - content: "\f043"; } - -.fa-eraser::before { - content: "\f12d"; } - -.fa-earth-americas::before { - content: "\f57d"; } - -.fa-earth::before { - content: "\f57d"; } - -.fa-earth-america::before { - content: "\f57d"; } - -.fa-globe-americas::before { - content: "\f57d"; } - -.fa-person-burst::before { - content: "\e53b"; } - -.fa-dove::before { - content: "\f4ba"; } - -.fa-battery-empty::before { - content: "\f244"; } - -.fa-battery-0::before { - content: "\f244"; } - -.fa-socks::before { - content: "\f696"; } - -.fa-inbox::before { - content: "\f01c"; } - -.fa-section::before { - content: "\e447"; } - -.fa-gauge-high::before { - content: "\f625"; } - -.fa-tachometer-alt::before { - content: "\f625"; } - -.fa-tachometer-alt-fast::before { - content: "\f625"; } - -.fa-envelope-open-text::before { - content: "\f658"; } - -.fa-hospital::before { - content: "\f0f8"; } - -.fa-hospital-alt::before { - content: "\f0f8"; } - -.fa-hospital-wide::before { - content: "\f0f8"; } - -.fa-wine-bottle::before { - content: "\f72f"; } - -.fa-chess-rook::before { - content: "\f447"; } - -.fa-bars-staggered::before { - content: "\f550"; } - -.fa-reorder::before { - content: "\f550"; } - -.fa-stream::before { - content: "\f550"; } - -.fa-dharmachakra::before { - content: "\f655"; } - -.fa-hotdog::before { - content: "\f80f"; } - -.fa-person-walking-with-cane::before { - content: "\f29d"; } - -.fa-blind::before { - content: "\f29d"; } - -.fa-drum::before { - content: "\f569"; } - -.fa-ice-cream::before { - content: "\f810"; } - -.fa-heart-circle-bolt::before { - content: "\e4fc"; } - -.fa-fax::before { - content: "\f1ac"; } - -.fa-paragraph::before { - content: "\f1dd"; } - -.fa-check-to-slot::before { - content: "\f772"; } - -.fa-vote-yea::before { - content: "\f772"; } - -.fa-star-half::before { - content: "\f089"; } - -.fa-boxes-stacked::before { - content: "\f468"; } - -.fa-boxes::before { - content: "\f468"; } - -.fa-boxes-alt::before { - content: "\f468"; } - -.fa-link::before { - content: "\f0c1"; } - -.fa-chain::before { - content: "\f0c1"; } - -.fa-ear-listen::before { - content: "\f2a2"; } - -.fa-assistive-listening-systems::before { - content: "\f2a2"; } - -.fa-tree-city::before { - content: "\e587"; } - -.fa-play::before { - content: "\f04b"; } - -.fa-font::before { - content: "\f031"; } - -.fa-table-cells-row-lock::before { - content: "\e67a"; } - -.fa-rupiah-sign::before { - content: "\e23d"; } - -.fa-magnifying-glass::before { - content: "\f002"; } - -.fa-search::before { - content: "\f002"; } - -.fa-table-tennis-paddle-ball::before { - content: "\f45d"; } - -.fa-ping-pong-paddle-ball::before { - content: "\f45d"; } - -.fa-table-tennis::before { - content: "\f45d"; } - -.fa-person-dots-from-line::before { - content: "\f470"; } - -.fa-diagnoses::before { - content: "\f470"; } - -.fa-trash-can-arrow-up::before { - content: "\f82a"; } - -.fa-trash-restore-alt::before { - content: "\f82a"; } - -.fa-naira-sign::before { - content: "\e1f6"; } - -.fa-cart-arrow-down::before { - content: "\f218"; } - -.fa-walkie-talkie::before { - content: "\f8ef"; } - -.fa-file-pen::before { - content: "\f31c"; } - -.fa-file-edit::before { - content: "\f31c"; } - -.fa-receipt::before { - content: "\f543"; } - -.fa-square-pen::before { - content: "\f14b"; } - -.fa-pen-square::before { - content: "\f14b"; } - -.fa-pencil-square::before { - content: "\f14b"; } - -.fa-suitcase-rolling::before { - content: "\f5c1"; } - -.fa-person-circle-exclamation::before { - content: "\e53f"; } - -.fa-chevron-down::before { - content: "\f078"; } - -.fa-battery-full::before { - content: "\f240"; } - -.fa-battery::before { - content: "\f240"; } - -.fa-battery-5::before { - content: "\f240"; } - -.fa-skull-crossbones::before { - content: "\f714"; } - -.fa-code-compare::before { - content: "\e13a"; } - -.fa-list-ul::before { - content: "\f0ca"; } - -.fa-list-dots::before { - content: "\f0ca"; } - -.fa-school-lock::before { - content: "\e56f"; } - -.fa-tower-cell::before { - content: "\e585"; } - -.fa-down-long::before { - content: "\f309"; } - -.fa-long-arrow-alt-down::before { - content: "\f309"; } - -.fa-ranking-star::before { - content: "\e561"; } - -.fa-chess-king::before { - content: "\f43f"; } - -.fa-person-harassing::before { - content: "\e549"; } - -.fa-brazilian-real-sign::before { - content: "\e46c"; } - -.fa-landmark-dome::before { - content: "\f752"; } - -.fa-landmark-alt::before { - content: "\f752"; } - -.fa-arrow-up::before { - content: "\f062"; } - -.fa-tv::before { - content: "\f26c"; } - -.fa-television::before { - content: "\f26c"; } - -.fa-tv-alt::before { - content: "\f26c"; } - -.fa-shrimp::before { - content: "\e448"; } - -.fa-list-check::before { - content: "\f0ae"; } - -.fa-tasks::before { - content: "\f0ae"; } - -.fa-jug-detergent::before { - content: "\e519"; } - -.fa-circle-user::before { - content: "\f2bd"; } - -.fa-user-circle::before { - content: "\f2bd"; } - -.fa-user-shield::before { - content: "\f505"; } - -.fa-wind::before { - content: "\f72e"; } - -.fa-car-burst::before { - content: "\f5e1"; } - -.fa-car-crash::before { - content: "\f5e1"; } - -.fa-y::before { - content: "\59"; } - -.fa-person-snowboarding::before { - content: "\f7ce"; } - -.fa-snowboarding::before { - content: "\f7ce"; } - -.fa-truck-fast::before { - content: "\f48b"; } - -.fa-shipping-fast::before { - content: "\f48b"; } - -.fa-fish::before { - content: "\f578"; } - -.fa-user-graduate::before { - content: "\f501"; } - -.fa-circle-half-stroke::before { - content: "\f042"; } - -.fa-adjust::before { - content: "\f042"; } - -.fa-clapperboard::before { - content: "\e131"; } - -.fa-circle-radiation::before { - content: "\f7ba"; } - -.fa-radiation-alt::before { - content: "\f7ba"; } - -.fa-baseball::before { - content: "\f433"; } - -.fa-baseball-ball::before { - content: "\f433"; } - -.fa-jet-fighter-up::before { - content: "\e518"; } - -.fa-diagram-project::before { - content: "\f542"; } - -.fa-project-diagram::before { - content: "\f542"; } - -.fa-copy::before { - content: "\f0c5"; } - -.fa-volume-xmark::before { - content: "\f6a9"; } - -.fa-volume-mute::before { - content: "\f6a9"; } - -.fa-volume-times::before { - content: "\f6a9"; } - -.fa-hand-sparkles::before { - content: "\e05d"; } - -.fa-grip::before { - content: "\f58d"; } - -.fa-grip-horizontal::before { - content: "\f58d"; } - -.fa-share-from-square::before { - content: "\f14d"; } - -.fa-share-square::before { - content: "\f14d"; } - -.fa-child-combatant::before { - content: "\e4e0"; } - -.fa-child-rifle::before { - content: "\e4e0"; } - -.fa-gun::before { - content: "\e19b"; } - -.fa-square-phone::before { - content: "\f098"; } - -.fa-phone-square::before { - content: "\f098"; } - -.fa-plus::before { - content: "\2b"; } - -.fa-add::before { - content: "\2b"; } - -.fa-expand::before { - content: "\f065"; } - -.fa-computer::before { - content: "\e4e5"; } - -.fa-xmark::before { - content: "\f00d"; } - -.fa-close::before { - content: "\f00d"; } - -.fa-multiply::before { - content: "\f00d"; } - -.fa-remove::before { - content: "\f00d"; } - -.fa-times::before { - content: "\f00d"; } - -.fa-arrows-up-down-left-right::before { - content: "\f047"; } - -.fa-arrows::before { - content: "\f047"; } - -.fa-chalkboard-user::before { - content: "\f51c"; } - -.fa-chalkboard-teacher::before { - content: "\f51c"; } - -.fa-peso-sign::before { - content: "\e222"; } - -.fa-building-shield::before { - content: "\e4d8"; } - -.fa-baby::before { - content: "\f77c"; } - -.fa-users-line::before { - content: "\e592"; } - -.fa-quote-left::before { - content: "\f10d"; } - -.fa-quote-left-alt::before { - content: "\f10d"; } - -.fa-tractor::before { - content: "\f722"; } - -.fa-trash-arrow-up::before { - content: "\f829"; } - -.fa-trash-restore::before { - content: "\f829"; } - -.fa-arrow-down-up-lock::before { - content: "\e4b0"; } - -.fa-lines-leaning::before { - content: "\e51e"; } - -.fa-ruler-combined::before { - content: "\f546"; } - -.fa-copyright::before { - content: "\f1f9"; } - -.fa-equals::before { - content: "\3d"; } - -.fa-blender::before { - content: "\f517"; } - -.fa-teeth::before { - content: "\f62e"; } - -.fa-shekel-sign::before { - content: "\f20b"; } - -.fa-ils::before { - content: "\f20b"; } - -.fa-shekel::before { - content: "\f20b"; } - -.fa-sheqel::before { - content: "\f20b"; } - -.fa-sheqel-sign::before { - content: "\f20b"; } - -.fa-map::before { - content: "\f279"; } - -.fa-rocket::before { - content: "\f135"; } - -.fa-photo-film::before { - content: "\f87c"; } - -.fa-photo-video::before { - content: "\f87c"; } - -.fa-folder-minus::before { - content: "\f65d"; } - -.fa-store::before { - content: "\f54e"; } - -.fa-arrow-trend-up::before { - content: "\e098"; } - -.fa-plug-circle-minus::before { - content: "\e55e"; } - -.fa-sign-hanging::before { - content: "\f4d9"; } - -.fa-sign::before { - content: "\f4d9"; } - -.fa-bezier-curve::before { - content: "\f55b"; } - -.fa-bell-slash::before { - content: "\f1f6"; } - -.fa-tablet::before { - content: "\f3fb"; } - -.fa-tablet-android::before { - content: "\f3fb"; } - -.fa-school-flag::before { - content: "\e56e"; } - -.fa-fill::before { - content: "\f575"; } - -.fa-angle-up::before { - content: "\f106"; } - -.fa-drumstick-bite::before { - content: "\f6d7"; } - -.fa-holly-berry::before { - content: "\f7aa"; } - -.fa-chevron-left::before { - content: "\f053"; } - -.fa-bacteria::before { - content: "\e059"; } - -.fa-hand-lizard::before { - content: "\f258"; } - -.fa-notdef::before { - content: "\e1fe"; } - -.fa-disease::before { - content: "\f7fa"; } - -.fa-briefcase-medical::before { - content: "\f469"; } - -.fa-genderless::before { - content: "\f22d"; } - -.fa-chevron-right::before { - content: "\f054"; } - -.fa-retweet::before { - content: "\f079"; } - -.fa-car-rear::before { - content: "\f5de"; } - -.fa-car-alt::before { - content: "\f5de"; } - -.fa-pump-soap::before { - content: "\e06b"; } - -.fa-video-slash::before { - content: "\f4e2"; } - -.fa-battery-quarter::before { - content: "\f243"; } - -.fa-battery-2::before { - content: "\f243"; } - -.fa-radio::before { - content: "\f8d7"; } - -.fa-baby-carriage::before { - content: "\f77d"; } - -.fa-carriage-baby::before { - content: "\f77d"; } - -.fa-traffic-light::before { - content: "\f637"; } - -.fa-thermometer::before { - content: "\f491"; } - -.fa-vr-cardboard::before { - content: "\f729"; } - -.fa-hand-middle-finger::before { - content: "\f806"; } - -.fa-percent::before { - content: "\25"; } - -.fa-percentage::before { - content: "\25"; } - -.fa-truck-moving::before { - content: "\f4df"; } - -.fa-glass-water-droplet::before { - content: "\e4f5"; } - -.fa-display::before { - content: "\e163"; } - -.fa-face-smile::before { - content: "\f118"; } - -.fa-smile::before { - content: "\f118"; } - -.fa-thumbtack::before { - content: "\f08d"; } - -.fa-thumb-tack::before { - content: "\f08d"; } - -.fa-trophy::before { - content: "\f091"; } - -.fa-person-praying::before { - content: "\f683"; } - -.fa-pray::before { - content: "\f683"; } - -.fa-hammer::before { - content: "\f6e3"; } - -.fa-hand-peace::before { - content: "\f25b"; } - -.fa-rotate::before { - content: "\f2f1"; } - -.fa-sync-alt::before { - content: "\f2f1"; } - -.fa-spinner::before { - content: "\f110"; } - -.fa-robot::before { - content: "\f544"; } - -.fa-peace::before { - content: "\f67c"; } - -.fa-gears::before { - content: "\f085"; } - -.fa-cogs::before { - content: "\f085"; } - -.fa-warehouse::before { - content: "\f494"; } - -.fa-arrow-up-right-dots::before { - content: "\e4b7"; } - -.fa-splotch::before { - content: "\f5bc"; } - -.fa-face-grin-hearts::before { - content: "\f584"; } - -.fa-grin-hearts::before { - content: "\f584"; } - -.fa-dice-four::before { - content: "\f524"; } - -.fa-sim-card::before { - content: "\f7c4"; } - -.fa-transgender::before { - content: "\f225"; } - -.fa-transgender-alt::before { - content: "\f225"; } - -.fa-mercury::before { - content: "\f223"; } - -.fa-arrow-turn-down::before { - content: "\f149"; } - -.fa-level-down::before { - content: "\f149"; } - -.fa-person-falling-burst::before { - content: "\e547"; } - -.fa-award::before { - content: "\f559"; } - -.fa-ticket-simple::before { - content: "\f3ff"; } - -.fa-ticket-alt::before { - content: "\f3ff"; } - -.fa-building::before { - content: "\f1ad"; } - -.fa-angles-left::before { - content: "\f100"; } - -.fa-angle-double-left::before { - content: "\f100"; } - -.fa-qrcode::before { - content: "\f029"; } - -.fa-clock-rotate-left::before { - content: "\f1da"; } - -.fa-history::before { - content: "\f1da"; } - -.fa-face-grin-beam-sweat::before { - content: "\f583"; } - -.fa-grin-beam-sweat::before { - content: "\f583"; } - -.fa-file-export::before { - content: "\f56e"; } - -.fa-arrow-right-from-file::before { - content: "\f56e"; } - -.fa-shield::before { - content: "\f132"; } - -.fa-shield-blank::before { - content: "\f132"; } - -.fa-arrow-up-short-wide::before { - content: "\f885"; } - -.fa-sort-amount-up-alt::before { - content: "\f885"; } - -.fa-house-medical::before { - content: "\e3b2"; } - -.fa-golf-ball-tee::before { - content: "\f450"; } - -.fa-golf-ball::before { - content: "\f450"; } - -.fa-circle-chevron-left::before { - content: "\f137"; } - -.fa-chevron-circle-left::before { - content: "\f137"; } - -.fa-house-chimney-window::before { - content: "\e00d"; } - -.fa-pen-nib::before { - content: "\f5ad"; } - -.fa-tent-arrow-turn-left::before { - content: "\e580"; } - -.fa-tents::before { - content: "\e582"; } - -.fa-wand-magic::before { - content: "\f0d0"; } - -.fa-magic::before { - content: "\f0d0"; } - -.fa-dog::before { - content: "\f6d3"; } - -.fa-carrot::before { - content: "\f787"; } - -.fa-moon::before { - content: "\f186"; } - -.fa-wine-glass-empty::before { - content: "\f5ce"; } - -.fa-wine-glass-alt::before { - content: "\f5ce"; } - -.fa-cheese::before { - content: "\f7ef"; } - -.fa-yin-yang::before { - content: "\f6ad"; } - -.fa-music::before { - content: "\f001"; } - -.fa-code-commit::before { - content: "\f386"; } - -.fa-temperature-low::before { - content: "\f76b"; } - -.fa-person-biking::before { - content: "\f84a"; } - -.fa-biking::before { - content: "\f84a"; } - -.fa-broom::before { - content: "\f51a"; } - -.fa-shield-heart::before { - content: "\e574"; } - -.fa-gopuram::before { - content: "\f664"; } - -.fa-earth-oceania::before { - content: "\e47b"; } - -.fa-globe-oceania::before { - content: "\e47b"; } - -.fa-square-xmark::before { - content: "\f2d3"; } - -.fa-times-square::before { - content: "\f2d3"; } - -.fa-xmark-square::before { - content: "\f2d3"; } - -.fa-hashtag::before { - content: "\23"; } - -.fa-up-right-and-down-left-from-center::before { - content: "\f424"; } - -.fa-expand-alt::before { - content: "\f424"; } - -.fa-oil-can::before { - content: "\f613"; } - -.fa-t::before { - content: "\54"; } - -.fa-hippo::before { - content: "\f6ed"; } - -.fa-chart-column::before { - content: "\e0e3"; } - -.fa-infinity::before { - content: "\f534"; } - -.fa-vial-circle-check::before { - content: "\e596"; } - -.fa-person-arrow-down-to-line::before { - content: "\e538"; } - -.fa-voicemail::before { - content: "\f897"; } - -.fa-fan::before { - content: "\f863"; } - -.fa-person-walking-luggage::before { - content: "\e554"; } - -.fa-up-down::before { - content: "\f338"; } - -.fa-arrows-alt-v::before { - content: "\f338"; } - -.fa-cloud-moon-rain::before { - content: "\f73c"; } - -.fa-calendar::before { - content: "\f133"; } - -.fa-trailer::before { - content: "\e041"; } - -.fa-bahai::before { - content: "\f666"; } - -.fa-haykal::before { - content: "\f666"; } - -.fa-sd-card::before { - content: "\f7c2"; } - -.fa-dragon::before { - content: "\f6d5"; } - -.fa-shoe-prints::before { - content: "\f54b"; } - -.fa-circle-plus::before { - content: "\f055"; } - -.fa-plus-circle::before { - content: "\f055"; } - -.fa-face-grin-tongue-wink::before { - content: "\f58b"; } - -.fa-grin-tongue-wink::before { - content: "\f58b"; } - -.fa-hand-holding::before { - content: "\f4bd"; } - -.fa-plug-circle-exclamation::before { - content: "\e55d"; } - -.fa-link-slash::before { - content: "\f127"; } - -.fa-chain-broken::before { - content: "\f127"; } - -.fa-chain-slash::before { - content: "\f127"; } - -.fa-unlink::before { - content: "\f127"; } - -.fa-clone::before { - content: "\f24d"; } - -.fa-person-walking-arrow-loop-left::before { - content: "\e551"; } - -.fa-arrow-up-z-a::before { - content: "\f882"; } - -.fa-sort-alpha-up-alt::before { - content: "\f882"; } - -.fa-fire-flame-curved::before { - content: "\f7e4"; } - -.fa-fire-alt::before { - content: "\f7e4"; } - -.fa-tornado::before { - content: "\f76f"; } - -.fa-file-circle-plus::before { - content: "\e494"; } - -.fa-book-quran::before { - content: "\f687"; } - -.fa-quran::before { - content: "\f687"; } - -.fa-anchor::before { - content: "\f13d"; } - -.fa-border-all::before { - content: "\f84c"; } - -.fa-face-angry::before { - content: "\f556"; } - -.fa-angry::before { - content: "\f556"; } - -.fa-cookie-bite::before { - content: "\f564"; } - -.fa-arrow-trend-down::before { - content: "\e097"; } - -.fa-rss::before { - content: "\f09e"; } - -.fa-feed::before { - content: "\f09e"; } - -.fa-draw-polygon::before { - content: "\f5ee"; } - -.fa-scale-balanced::before { - content: "\f24e"; } - -.fa-balance-scale::before { - content: "\f24e"; } - -.fa-gauge-simple-high::before { - content: "\f62a"; } - -.fa-tachometer::before { - content: "\f62a"; } - -.fa-tachometer-fast::before { - content: "\f62a"; } - -.fa-shower::before { - content: "\f2cc"; } - -.fa-desktop::before { - content: "\f390"; } - -.fa-desktop-alt::before { - content: "\f390"; } - -.fa-m::before { - content: "\4d"; } - -.fa-table-list::before { - content: "\f00b"; } - -.fa-th-list::before { - content: "\f00b"; } - -.fa-comment-sms::before { - content: "\f7cd"; } - -.fa-sms::before { - content: "\f7cd"; } - -.fa-book::before { - content: "\f02d"; } - -.fa-user-plus::before { - content: "\f234"; } - -.fa-check::before { - content: "\f00c"; } - -.fa-battery-three-quarters::before { - content: "\f241"; } - -.fa-battery-4::before { - content: "\f241"; } - -.fa-house-circle-check::before { - content: "\e509"; } - -.fa-angle-left::before { - content: "\f104"; } - -.fa-diagram-successor::before { - content: "\e47a"; } - -.fa-truck-arrow-right::before { - content: "\e58b"; } - -.fa-arrows-split-up-and-left::before { - content: "\e4bc"; } - -.fa-hand-fist::before { - content: "\f6de"; } - -.fa-fist-raised::before { - content: "\f6de"; } - -.fa-cloud-moon::before { - content: "\f6c3"; } - -.fa-briefcase::before { - content: "\f0b1"; } - -.fa-person-falling::before { - content: "\e546"; } - -.fa-image-portrait::before { - content: "\f3e0"; } - -.fa-portrait::before { - content: "\f3e0"; } - -.fa-user-tag::before { - content: "\f507"; } - -.fa-rug::before { - content: "\e569"; } - -.fa-earth-europe::before { - content: "\f7a2"; } - -.fa-globe-europe::before { - content: "\f7a2"; } - -.fa-cart-flatbed-suitcase::before { - content: "\f59d"; } - -.fa-luggage-cart::before { - content: "\f59d"; } - -.fa-rectangle-xmark::before { - content: "\f410"; } - -.fa-rectangle-times::before { - content: "\f410"; } - -.fa-times-rectangle::before { - content: "\f410"; } - -.fa-window-close::before { - content: "\f410"; } - -.fa-baht-sign::before { - content: "\e0ac"; } - -.fa-book-open::before { - content: "\f518"; } - -.fa-book-journal-whills::before { - content: "\f66a"; } - -.fa-journal-whills::before { - content: "\f66a"; } - -.fa-handcuffs::before { - content: "\e4f8"; } - -.fa-triangle-exclamation::before { - content: "\f071"; } - -.fa-exclamation-triangle::before { - content: "\f071"; } - -.fa-warning::before { - content: "\f071"; } - -.fa-database::before { - content: "\f1c0"; } - -.fa-share::before { - content: "\f064"; } - -.fa-mail-forward::before { - content: "\f064"; } - -.fa-bottle-droplet::before { - content: "\e4c4"; } - -.fa-mask-face::before { - content: "\e1d7"; } - -.fa-hill-rockslide::before { - content: "\e508"; } - -.fa-right-left::before { - content: "\f362"; } - -.fa-exchange-alt::before { - content: "\f362"; } - -.fa-paper-plane::before { - content: "\f1d8"; } - -.fa-road-circle-exclamation::before { - content: "\e565"; } - -.fa-dungeon::before { - content: "\f6d9"; } - -.fa-align-right::before { - content: "\f038"; } - -.fa-money-bill-1-wave::before { - content: "\f53b"; } - -.fa-money-bill-wave-alt::before { - content: "\f53b"; } - -.fa-life-ring::before { - content: "\f1cd"; } - -.fa-hands::before { - content: "\f2a7"; } - -.fa-sign-language::before { - content: "\f2a7"; } - -.fa-signing::before { - content: "\f2a7"; } - -.fa-calendar-day::before { - content: "\f783"; } - -.fa-water-ladder::before { - content: "\f5c5"; } - -.fa-ladder-water::before { - content: "\f5c5"; } - -.fa-swimming-pool::before { - content: "\f5c5"; } - -.fa-arrows-up-down::before { - content: "\f07d"; } - -.fa-arrows-v::before { - content: "\f07d"; } - -.fa-face-grimace::before { - content: "\f57f"; } - -.fa-grimace::before { - content: "\f57f"; } - -.fa-wheelchair-move::before { - content: "\e2ce"; } - -.fa-wheelchair-alt::before { - content: "\e2ce"; } - -.fa-turn-down::before { - content: "\f3be"; } - -.fa-level-down-alt::before { - content: "\f3be"; } - -.fa-person-walking-arrow-right::before { - content: "\e552"; } - -.fa-square-envelope::before { - content: "\f199"; } - -.fa-envelope-square::before { - content: "\f199"; } - -.fa-dice::before { - content: "\f522"; } - -.fa-bowling-ball::before { - content: "\f436"; } - -.fa-brain::before { - content: "\f5dc"; } - -.fa-bandage::before { - content: "\f462"; } - -.fa-band-aid::before { - content: "\f462"; } - -.fa-calendar-minus::before { - content: "\f272"; } - -.fa-circle-xmark::before { - content: "\f057"; } - -.fa-times-circle::before { - content: "\f057"; } - -.fa-xmark-circle::before { - content: "\f057"; } - -.fa-gifts::before { - content: "\f79c"; } - -.fa-hotel::before { - content: "\f594"; } - -.fa-earth-asia::before { - content: "\f57e"; } - -.fa-globe-asia::before { - content: "\f57e"; } - -.fa-id-card-clip::before { - content: "\f47f"; } - -.fa-id-card-alt::before { - content: "\f47f"; } - -.fa-magnifying-glass-plus::before { - content: "\f00e"; } - -.fa-search-plus::before { - content: "\f00e"; } - -.fa-thumbs-up::before { - content: "\f164"; } - -.fa-user-clock::before { - content: "\f4fd"; } - -.fa-hand-dots::before { - content: "\f461"; } - -.fa-allergies::before { - content: "\f461"; } - -.fa-file-invoice::before { - content: "\f570"; } - -.fa-window-minimize::before { - content: "\f2d1"; } - -.fa-mug-saucer::before { - content: "\f0f4"; } - -.fa-coffee::before { - content: "\f0f4"; } - -.fa-brush::before { - content: "\f55d"; } - -.fa-mask::before { - content: "\f6fa"; } - -.fa-magnifying-glass-minus::before { - content: "\f010"; } - -.fa-search-minus::before { - content: "\f010"; } - -.fa-ruler-vertical::before { - content: "\f548"; } - -.fa-user-large::before { - content: "\f406"; } - -.fa-user-alt::before { - content: "\f406"; } - -.fa-train-tram::before { - content: "\e5b4"; } - -.fa-user-nurse::before { - content: "\f82f"; } - -.fa-syringe::before { - content: "\f48e"; } - -.fa-cloud-sun::before { - content: "\f6c4"; } - -.fa-stopwatch-20::before { - content: "\e06f"; } - -.fa-square-full::before { - content: "\f45c"; } - -.fa-magnet::before { - content: "\f076"; } - -.fa-jar::before { - content: "\e516"; } - -.fa-note-sticky::before { - content: "\f249"; } - -.fa-sticky-note::before { - content: "\f249"; } - -.fa-bug-slash::before { - content: "\e490"; } - -.fa-arrow-up-from-water-pump::before { - content: "\e4b6"; } - -.fa-bone::before { - content: "\f5d7"; } - -.fa-user-injured::before { - content: "\f728"; } - -.fa-face-sad-tear::before { - content: "\f5b4"; } - -.fa-sad-tear::before { - content: "\f5b4"; } - -.fa-plane::before { - content: "\f072"; } - -.fa-tent-arrows-down::before { - content: "\e581"; } - -.fa-exclamation::before { - content: "\21"; } - -.fa-arrows-spin::before { - content: "\e4bb"; } - -.fa-print::before { - content: "\f02f"; } - -.fa-turkish-lira-sign::before { - content: "\e2bb"; } - -.fa-try::before { - content: "\e2bb"; } - -.fa-turkish-lira::before { - content: "\e2bb"; } - -.fa-dollar-sign::before { - content: "\24"; } - -.fa-dollar::before { - content: "\24"; } - -.fa-usd::before { - content: "\24"; } - -.fa-x::before { - content: "\58"; } - -.fa-magnifying-glass-dollar::before { - content: "\f688"; } - -.fa-search-dollar::before { - content: "\f688"; } - -.fa-users-gear::before { - content: "\f509"; } - -.fa-users-cog::before { - content: "\f509"; } - -.fa-person-military-pointing::before { - content: "\e54a"; } - -.fa-building-columns::before { - content: "\f19c"; } - -.fa-bank::before { - content: "\f19c"; } - -.fa-institution::before { - content: "\f19c"; } - -.fa-museum::before { - content: "\f19c"; } - -.fa-university::before { - content: "\f19c"; } - -.fa-umbrella::before { - content: "\f0e9"; } - -.fa-trowel::before { - content: "\e589"; } - -.fa-d::before { - content: "\44"; } - -.fa-stapler::before { - content: "\e5af"; } - -.fa-masks-theater::before { - content: "\f630"; } - -.fa-theater-masks::before { - content: "\f630"; } - -.fa-kip-sign::before { - content: "\e1c4"; } - -.fa-hand-point-left::before { - content: "\f0a5"; } - -.fa-handshake-simple::before { - content: "\f4c6"; } - -.fa-handshake-alt::before { - content: "\f4c6"; } - -.fa-jet-fighter::before { - content: "\f0fb"; } - -.fa-fighter-jet::before { - content: "\f0fb"; } - -.fa-square-share-nodes::before { - content: "\f1e1"; } - -.fa-share-alt-square::before { - content: "\f1e1"; } - -.fa-barcode::before { - content: "\f02a"; } - -.fa-plus-minus::before { - content: "\e43c"; } - -.fa-video::before { - content: "\f03d"; } - -.fa-video-camera::before { - content: "\f03d"; } - -.fa-graduation-cap::before { - content: "\f19d"; } - -.fa-mortar-board::before { - content: "\f19d"; } - -.fa-hand-holding-medical::before { - content: "\e05c"; } - -.fa-person-circle-check::before { - content: "\e53e"; } - -.fa-turn-up::before { - content: "\f3bf"; } - -.fa-level-up-alt::before { - content: "\f3bf"; } - -.sr-only, -.fa-sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; } - -.sr-only-focusable:not(:focus), -.fa-sr-only-focusable:not(:focus) { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; } - -/*! - * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:root, :host { - --fa-style-family-classic: 'Font Awesome 6 Free'; - --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } - -@font-face { - font-family: 'Font Awesome 6 Free'; - font-style: normal; - font-weight: 900; - font-display: block; - src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } - -.fas, .td-offline-search-results__close-button:after, -.fa-solid { - font-weight: 900; } - -/*! - * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:root, :host { - --fa-style-family-brands: 'Font Awesome 6 Brands'; - --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } - -@font-face { - font-family: 'Font Awesome 6 Brands'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } - -.fab, -.fa-brands { - font-weight: 400; } - -.fa-monero:before { - content: "\f3d0"; } - -.fa-hooli:before { - content: "\f427"; } - -.fa-yelp:before { - content: "\f1e9"; } - -.fa-cc-visa:before { - content: "\f1f0"; } - -.fa-lastfm:before { - content: "\f202"; } - -.fa-shopware:before { - content: "\f5b5"; } - -.fa-creative-commons-nc:before { - content: "\f4e8"; } - -.fa-aws:before { - content: "\f375"; } - -.fa-redhat:before { - content: "\f7bc"; } - -.fa-yoast:before { - content: "\f2b1"; } - -.fa-cloudflare:before { - content: "\e07d"; } - -.fa-ups:before { - content: "\f7e0"; } - -.fa-pixiv:before { - content: "\e640"; } - -.fa-wpexplorer:before { - content: "\f2de"; } - -.fa-dyalog:before { - content: "\f399"; } - -.fa-bity:before { - content: "\f37a"; } - -.fa-stackpath:before { - content: "\f842"; } - -.fa-buysellads:before { - content: "\f20d"; } - -.fa-first-order:before { - content: "\f2b0"; } - -.fa-modx:before { - content: "\f285"; } - -.fa-guilded:before { - content: "\e07e"; } - -.fa-vnv:before { - content: "\f40b"; } - -.fa-square-js:before { - content: "\f3b9"; } - -.fa-js-square:before { - content: "\f3b9"; } - -.fa-microsoft:before { - content: "\f3ca"; } - -.fa-qq:before { - content: "\f1d6"; } - -.fa-orcid:before { - content: "\f8d2"; } - -.fa-java:before { - content: "\f4e4"; } - -.fa-invision:before { - content: "\f7b0"; } - -.fa-creative-commons-pd-alt:before { - content: "\f4ed"; } - -.fa-centercode:before { - content: "\f380"; } - -.fa-glide-g:before { - content: "\f2a6"; } - -.fa-drupal:before { - content: "\f1a9"; } - -.fa-jxl:before { - content: "\e67b"; } - -.fa-hire-a-helper:before { - content: "\f3b0"; } - -.fa-creative-commons-by:before { - content: "\f4e7"; } - -.fa-unity:before { - content: "\e049"; } - -.fa-whmcs:before { - content: "\f40d"; } - -.fa-rocketchat:before { - content: "\f3e8"; } - -.fa-vk:before { - content: "\f189"; } - -.fa-untappd:before { - content: "\f405"; } - -.fa-mailchimp:before { - content: "\f59e"; } - -.fa-css3-alt:before { - content: "\f38b"; } - -.fa-square-reddit:before { - content: "\f1a2"; } - -.fa-reddit-square:before { - content: "\f1a2"; } - -.fa-vimeo-v:before { - content: "\f27d"; } - -.fa-contao:before { - content: "\f26d"; } - -.fa-square-font-awesome:before { - content: "\e5ad"; } - -.fa-deskpro:before { - content: "\f38f"; } - -.fa-brave:before { - content: "\e63c"; } - -.fa-sistrix:before { - content: "\f3ee"; } - -.fa-square-instagram:before { - content: "\e055"; } - -.fa-instagram-square:before { - content: "\e055"; } - -.fa-battle-net:before { - content: "\f835"; } - -.fa-the-red-yeti:before { - content: "\f69d"; } - -.fa-square-hacker-news:before { - content: "\f3af"; } - -.fa-hacker-news-square:before { - content: "\f3af"; } - -.fa-edge:before { - content: "\f282"; } - -.fa-threads:before { - content: "\e618"; } - -.fa-napster:before { - content: "\f3d2"; } - -.fa-square-snapchat:before { - content: "\f2ad"; } - -.fa-snapchat-square:before { - content: "\f2ad"; } - -.fa-google-plus-g:before { - content: "\f0d5"; } - -.fa-artstation:before { - content: "\f77a"; } - -.fa-markdown:before { - content: "\f60f"; } - -.fa-sourcetree:before { - content: "\f7d3"; } - -.fa-google-plus:before { - content: "\f2b3"; } - -.fa-diaspora:before { - content: "\f791"; } - -.fa-foursquare:before { - content: "\f180"; } - -.fa-stack-overflow:before { - content: "\f16c"; } - -.fa-github-alt:before { - content: "\f113"; } - -.fa-phoenix-squadron:before { - content: "\f511"; } - -.fa-pagelines:before { - content: "\f18c"; } - -.fa-algolia:before { - content: "\f36c"; } - -.fa-red-river:before { - content: "\f3e3"; } - -.fa-creative-commons-sa:before { - content: "\f4ef"; } - -.fa-safari:before { - content: "\f267"; } - -.fa-google:before { - content: "\f1a0"; } - -.fa-square-font-awesome-stroke:before { - content: "\f35c"; } - -.fa-font-awesome-alt:before { - content: "\f35c"; } - -.fa-atlassian:before { - content: "\f77b"; } - -.fa-linkedin-in:before { - content: "\f0e1"; } - -.fa-digital-ocean:before { - content: "\f391"; } - -.fa-nimblr:before { - content: "\f5a8"; } - -.fa-chromecast:before { - content: "\f838"; } - -.fa-evernote:before { - content: "\f839"; } - -.fa-hacker-news:before { - content: "\f1d4"; } - -.fa-creative-commons-sampling:before { - content: "\f4f0"; } - -.fa-adversal:before { - content: "\f36a"; } - -.fa-creative-commons:before { - content: "\f25e"; } - -.fa-watchman-monitoring:before { - content: "\e087"; } - -.fa-fonticons:before { - content: "\f280"; } - -.fa-weixin:before { - content: "\f1d7"; } - -.fa-shirtsinbulk:before { - content: "\f214"; } - -.fa-codepen:before { - content: "\f1cb"; } - -.fa-git-alt:before { - content: "\f841"; } - -.fa-lyft:before { - content: "\f3c3"; } - -.fa-rev:before { - content: "\f5b2"; } - -.fa-windows:before { - content: "\f17a"; } - -.fa-wizards-of-the-coast:before { - content: "\f730"; } - -.fa-square-viadeo:before { - content: "\f2aa"; } - -.fa-viadeo-square:before { - content: "\f2aa"; } - -.fa-meetup:before { - content: "\f2e0"; } - -.fa-centos:before { - content: "\f789"; } - -.fa-adn:before { - content: "\f170"; } - -.fa-cloudsmith:before { - content: "\f384"; } - -.fa-opensuse:before { - content: "\e62b"; } - -.fa-pied-piper-alt:before { - content: "\f1a8"; } - -.fa-square-dribbble:before { - content: "\f397"; } - -.fa-dribbble-square:before { - content: "\f397"; } - -.fa-codiepie:before { - content: "\f284"; } - -.fa-node:before { - content: "\f419"; } - -.fa-mix:before { - content: "\f3cb"; } - -.fa-steam:before { - content: "\f1b6"; } - -.fa-cc-apple-pay:before { - content: "\f416"; } - -.fa-scribd:before { - content: "\f28a"; } - -.fa-debian:before { - content: "\e60b"; } - -.fa-openid:before { - content: "\f19b"; } - -.fa-instalod:before { - content: "\e081"; } - -.fa-expeditedssl:before { - content: "\f23e"; } - -.fa-sellcast:before { - content: "\f2da"; } - -.fa-square-twitter:before { - content: "\f081"; } - -.fa-twitter-square:before { - content: "\f081"; } - -.fa-r-project:before { - content: "\f4f7"; } - -.fa-delicious:before { - content: "\f1a5"; } - -.fa-freebsd:before { - content: "\f3a4"; } - -.fa-vuejs:before { - content: "\f41f"; } - -.fa-accusoft:before { - content: "\f369"; } - -.fa-ioxhost:before { - content: "\f208"; } - -.fa-fonticons-fi:before { - content: "\f3a2"; } - -.fa-app-store:before { - content: "\f36f"; } - -.fa-cc-mastercard:before { - content: "\f1f1"; } - -.fa-itunes-note:before { - content: "\f3b5"; } - -.fa-golang:before { - content: "\e40f"; } - -.fa-kickstarter:before { - content: "\f3bb"; } - -.fa-square-kickstarter:before { - content: "\f3bb"; } - -.fa-grav:before { - content: "\f2d6"; } - -.fa-weibo:before { - content: "\f18a"; } - -.fa-uncharted:before { - content: "\e084"; } - -.fa-firstdraft:before { - content: "\f3a1"; } - -.fa-square-youtube:before { - content: "\f431"; } - -.fa-youtube-square:before { - content: "\f431"; } - -.fa-wikipedia-w:before { - content: "\f266"; } - -.fa-wpressr:before { - content: "\f3e4"; } - -.fa-rendact:before { - content: "\f3e4"; } - -.fa-angellist:before { - content: "\f209"; } - -.fa-galactic-republic:before { - content: "\f50c"; } - -.fa-nfc-directional:before { - content: "\e530"; } - -.fa-skype:before { - content: "\f17e"; } - -.fa-joget:before { - content: "\f3b7"; } - -.fa-fedora:before { - content: "\f798"; } - -.fa-stripe-s:before { - content: "\f42a"; } - -.fa-meta:before { - content: "\e49b"; } - -.fa-laravel:before { - content: "\f3bd"; } - -.fa-hotjar:before { - content: "\f3b1"; } - -.fa-bluetooth-b:before { - content: "\f294"; } - -.fa-square-letterboxd:before { - content: "\e62e"; } - -.fa-sticker-mule:before { - content: "\f3f7"; } - -.fa-creative-commons-zero:before { - content: "\f4f3"; } - -.fa-hips:before { - content: "\f452"; } - -.fa-behance:before { - content: "\f1b4"; } - -.fa-reddit:before { - content: "\f1a1"; } - -.fa-discord:before { - content: "\f392"; } - -.fa-chrome:before { - content: "\f268"; } - -.fa-app-store-ios:before { - content: "\f370"; } - -.fa-cc-discover:before { - content: "\f1f2"; } - -.fa-wpbeginner:before { - content: "\f297"; } - -.fa-confluence:before { - content: "\f78d"; } - -.fa-shoelace:before { - content: "\e60c"; } - -.fa-mdb:before { - content: "\f8ca"; } - -.fa-dochub:before { - content: "\f394"; } - -.fa-accessible-icon:before { - content: "\f368"; } - -.fa-ebay:before { - content: "\f4f4"; } - -.fa-amazon:before { - content: "\f270"; } - -.fa-unsplash:before { - content: "\e07c"; } - -.fa-yarn:before { - content: "\f7e3"; } - -.fa-square-steam:before { - content: "\f1b7"; } - -.fa-steam-square:before { - content: "\f1b7"; } - -.fa-500px:before { - content: "\f26e"; } - -.fa-square-vimeo:before { - content: "\f194"; } - -.fa-vimeo-square:before { - content: "\f194"; } - -.fa-asymmetrik:before { - content: "\f372"; } - -.fa-font-awesome:before { - content: "\f2b4"; } - -.fa-font-awesome-flag:before { - content: "\f2b4"; } - -.fa-font-awesome-logo-full:before { - content: "\f2b4"; } - -.fa-gratipay:before { - content: "\f184"; } - -.fa-apple:before { - content: "\f179"; } - -.fa-hive:before { - content: "\e07f"; } - -.fa-gitkraken:before { - content: "\f3a6"; } - -.fa-keybase:before { - content: "\f4f5"; } - -.fa-apple-pay:before { - content: "\f415"; } - -.fa-padlet:before { - content: "\e4a0"; } - -.fa-amazon-pay:before { - content: "\f42c"; } - -.fa-square-github:before { - content: "\f092"; } - -.fa-github-square:before { - content: "\f092"; } - -.fa-stumbleupon:before { - content: "\f1a4"; } - -.fa-fedex:before { - content: "\f797"; } - -.fa-phoenix-framework:before { - content: "\f3dc"; } - -.fa-shopify:before { - content: "\e057"; } - -.fa-neos:before { - content: "\f612"; } - -.fa-square-threads:before { - content: "\e619"; } - -.fa-hackerrank:before { - content: "\f5f7"; } - -.fa-researchgate:before { - content: "\f4f8"; } - -.fa-swift:before { - content: "\f8e1"; } - -.fa-angular:before { - content: "\f420"; } - -.fa-speakap:before { - content: "\f3f3"; } - -.fa-angrycreative:before { - content: "\f36e"; } - -.fa-y-combinator:before { - content: "\f23b"; } - -.fa-empire:before { - content: "\f1d1"; } - -.fa-envira:before { - content: "\f299"; } - -.fa-google-scholar:before { - content: "\e63b"; } - -.fa-square-gitlab:before { - content: "\e5ae"; } - -.fa-gitlab-square:before { - content: "\e5ae"; } - -.fa-studiovinari:before { - content: "\f3f8"; } - -.fa-pied-piper:before { - content: "\f2ae"; } - -.fa-wordpress:before { - content: "\f19a"; } - -.fa-product-hunt:before { - content: "\f288"; } - -.fa-firefox:before { - content: "\f269"; } - -.fa-linode:before { - content: "\f2b8"; } - -.fa-goodreads:before { - content: "\f3a8"; } - -.fa-square-odnoklassniki:before { - content: "\f264"; } - -.fa-odnoklassniki-square:before { - content: "\f264"; } - -.fa-jsfiddle:before { - content: "\f1cc"; } - -.fa-sith:before { - content: "\f512"; } - -.fa-themeisle:before { - content: "\f2b2"; } - -.fa-page4:before { - content: "\f3d7"; } - -.fa-hashnode:before { - content: "\e499"; } - -.fa-react:before { - content: "\f41b"; } - -.fa-cc-paypal:before { - content: "\f1f4"; } - -.fa-squarespace:before { - content: "\f5be"; } - -.fa-cc-stripe:before { - content: "\f1f5"; } - -.fa-creative-commons-share:before { - content: "\f4f2"; } - -.fa-bitcoin:before { - content: "\f379"; } - -.fa-keycdn:before { - content: "\f3ba"; } - -.fa-opera:before { - content: "\f26a"; } - -.fa-itch-io:before { - content: "\f83a"; } - -.fa-umbraco:before { - content: "\f8e8"; } - -.fa-galactic-senate:before { - content: "\f50d"; } - -.fa-ubuntu:before { - content: "\f7df"; } - -.fa-draft2digital:before { - content: "\f396"; } - -.fa-stripe:before { - content: "\f429"; } - -.fa-houzz:before { - content: "\f27c"; } - -.fa-gg:before { - content: "\f260"; } - -.fa-dhl:before { - content: "\f790"; } - -.fa-square-pinterest:before { - content: "\f0d3"; } - -.fa-pinterest-square:before { - content: "\f0d3"; } - -.fa-xing:before { - content: "\f168"; } - -.fa-blackberry:before { - content: "\f37b"; } - -.fa-creative-commons-pd:before { - content: "\f4ec"; } - -.fa-playstation:before { - content: "\f3df"; } - -.fa-quinscape:before { - content: "\f459"; } - -.fa-less:before { - content: "\f41d"; } - -.fa-blogger-b:before { - content: "\f37d"; } - -.fa-opencart:before { - content: "\f23d"; } - -.fa-vine:before { - content: "\f1ca"; } - -.fa-signal-messenger:before { - content: "\e663"; } - -.fa-paypal:before { - content: "\f1ed"; } - -.fa-gitlab:before { - content: "\f296"; } - -.fa-typo3:before { - content: "\f42b"; } - -.fa-reddit-alien:before { - content: "\f281"; } - -.fa-yahoo:before { - content: "\f19e"; } - -.fa-dailymotion:before { - content: "\e052"; } - -.fa-affiliatetheme:before { - content: "\f36b"; } - -.fa-pied-piper-pp:before { - content: "\f1a7"; } - -.fa-bootstrap:before { - content: "\f836"; } - -.fa-odnoklassniki:before { - content: "\f263"; } - -.fa-nfc-symbol:before { - content: "\e531"; } - -.fa-mintbit:before { - content: "\e62f"; } - -.fa-ethereum:before { - content: "\f42e"; } - -.fa-speaker-deck:before { - content: "\f83c"; } - -.fa-creative-commons-nc-eu:before { - content: "\f4e9"; } - -.fa-patreon:before { - content: "\f3d9"; } - -.fa-avianex:before { - content: "\f374"; } - -.fa-ello:before { - content: "\f5f1"; } - -.fa-gofore:before { - content: "\f3a7"; } - -.fa-bimobject:before { - content: "\f378"; } - -.fa-brave-reverse:before { - content: "\e63d"; } - -.fa-facebook-f:before { - content: "\f39e"; } - -.fa-square-google-plus:before { - content: "\f0d4"; } - -.fa-google-plus-square:before { - content: "\f0d4"; } - -.fa-web-awesome:before { - content: "\e682"; } - -.fa-mandalorian:before { - content: "\f50f"; } - -.fa-first-order-alt:before { - content: "\f50a"; } - -.fa-osi:before { - content: "\f41a"; } - -.fa-google-wallet:before { - content: "\f1ee"; } - -.fa-d-and-d-beyond:before { - content: "\f6ca"; } - -.fa-periscope:before { - content: "\f3da"; } - -.fa-fulcrum:before { - content: "\f50b"; } - -.fa-cloudscale:before { - content: "\f383"; } - -.fa-forumbee:before { - content: "\f211"; } - -.fa-mizuni:before { - content: "\f3cc"; } - -.fa-schlix:before { - content: "\f3ea"; } - -.fa-square-xing:before { - content: "\f169"; } - -.fa-xing-square:before { - content: "\f169"; } - -.fa-bandcamp:before { - content: "\f2d5"; } - -.fa-wpforms:before { - content: "\f298"; } - -.fa-cloudversify:before { - content: "\f385"; } - -.fa-usps:before { - content: "\f7e1"; } - -.fa-megaport:before { - content: "\f5a3"; } - -.fa-magento:before { - content: "\f3c4"; } - -.fa-spotify:before { - content: "\f1bc"; } - -.fa-optin-monster:before { - content: "\f23c"; } - -.fa-fly:before { - content: "\f417"; } - -.fa-aviato:before { - content: "\f421"; } - -.fa-itunes:before { - content: "\f3b4"; } - -.fa-cuttlefish:before { - content: "\f38c"; } - -.fa-blogger:before { - content: "\f37c"; } - -.fa-flickr:before { - content: "\f16e"; } - -.fa-viber:before { - content: "\f409"; } - -.fa-soundcloud:before { - content: "\f1be"; } - -.fa-digg:before { - content: "\f1a6"; } - -.fa-tencent-weibo:before { - content: "\f1d5"; } - -.fa-letterboxd:before { - content: "\e62d"; } - -.fa-symfony:before { - content: "\f83d"; } - -.fa-maxcdn:before { - content: "\f136"; } - -.fa-etsy:before { - content: "\f2d7"; } - -.fa-facebook-messenger:before { - content: "\f39f"; } - -.fa-audible:before { - content: "\f373"; } - -.fa-think-peaks:before { - content: "\f731"; } - -.fa-bilibili:before { - content: "\e3d9"; } - -.fa-erlang:before { - content: "\f39d"; } - -.fa-x-twitter:before { - content: "\e61b"; } - -.fa-cotton-bureau:before { - content: "\f89e"; } - -.fa-dashcube:before { - content: "\f210"; } - -.fa-42-group:before { - content: "\e080"; } - -.fa-innosoft:before { - content: "\e080"; } - -.fa-stack-exchange:before { - content: "\f18d"; } - -.fa-elementor:before { - content: "\f430"; } - -.fa-square-pied-piper:before { - content: "\e01e"; } - -.fa-pied-piper-square:before { - content: "\e01e"; } - -.fa-creative-commons-nd:before { - content: "\f4eb"; } - -.fa-palfed:before { - content: "\f3d8"; } - -.fa-superpowers:before { - content: "\f2dd"; } - -.fa-resolving:before { - content: "\f3e7"; } - -.fa-xbox:before { - content: "\f412"; } - -.fa-square-web-awesome-stroke:before { - content: "\e684"; } - -.fa-searchengin:before { - content: "\f3eb"; } - -.fa-tiktok:before { - content: "\e07b"; } - -.fa-square-facebook:before { - content: "\f082"; } - -.fa-facebook-square:before { - content: "\f082"; } - -.fa-renren:before { - content: "\f18b"; } - -.fa-linux:before { - content: "\f17c"; } - -.fa-glide:before { - content: "\f2a5"; } - -.fa-linkedin:before { - content: "\f08c"; } - -.fa-hubspot:before { - content: "\f3b2"; } - -.fa-deploydog:before { - content: "\f38e"; } - -.fa-twitch:before { - content: "\f1e8"; } - -.fa-ravelry:before { - content: "\f2d9"; } - -.fa-mixer:before { - content: "\e056"; } - -.fa-square-lastfm:before { - content: "\f203"; } - -.fa-lastfm-square:before { - content: "\f203"; } - -.fa-vimeo:before { - content: "\f40a"; } - -.fa-mendeley:before { - content: "\f7b3"; } - -.fa-uniregistry:before { - content: "\f404"; } - -.fa-figma:before { - content: "\f799"; } - -.fa-creative-commons-remix:before { - content: "\f4ee"; } - -.fa-cc-amazon-pay:before { - content: "\f42d"; } - -.fa-dropbox:before { - content: "\f16b"; } - -.fa-instagram:before { - content: "\f16d"; } - -.fa-cmplid:before { - content: "\e360"; } - -.fa-upwork:before { - content: "\e641"; } - -.fa-facebook:before { - content: "\f09a"; } - -.fa-gripfire:before { - content: "\f3ac"; } - -.fa-jedi-order:before { - content: "\f50e"; } - -.fa-uikit:before { - content: "\f403"; } - -.fa-fort-awesome-alt:before { - content: "\f3a3"; } - -.fa-phabricator:before { - content: "\f3db"; } - -.fa-ussunnah:before { - content: "\f407"; } - -.fa-earlybirds:before { - content: "\f39a"; } - -.fa-trade-federation:before { - content: "\f513"; } - -.fa-autoprefixer:before { - content: "\f41c"; } - -.fa-whatsapp:before { - content: "\f232"; } - -.fa-square-upwork:before { - content: "\e67c"; } - -.fa-slideshare:before { - content: "\f1e7"; } - -.fa-google-play:before { - content: "\f3ab"; } - -.fa-viadeo:before { - content: "\f2a9"; } - -.fa-line:before { - content: "\f3c0"; } - -.fa-google-drive:before { - content: "\f3aa"; } - -.fa-servicestack:before { - content: "\f3ec"; } - -.fa-simplybuilt:before { - content: "\f215"; } - -.fa-bitbucket:before { - content: "\f171"; } - -.fa-imdb:before { - content: "\f2d8"; } - -.fa-deezer:before { - content: "\e077"; } - -.fa-raspberry-pi:before { - content: "\f7bb"; } - -.fa-jira:before { - content: "\f7b1"; } - -.fa-docker:before { - content: "\f395"; } - -.fa-screenpal:before { - content: "\e570"; } - -.fa-bluetooth:before { - content: "\f293"; } - -.fa-gitter:before { - content: "\f426"; } - -.fa-d-and-d:before { - content: "\f38d"; } - -.fa-microblog:before { - content: "\e01a"; } - -.fa-cc-diners-club:before { - content: "\f24c"; } - -.fa-gg-circle:before { - content: "\f261"; } - -.fa-pied-piper-hat:before { - content: "\f4e5"; } - -.fa-kickstarter-k:before { - content: "\f3bc"; } - -.fa-yandex:before { - content: "\f413"; } - -.fa-readme:before { - content: "\f4d5"; } - -.fa-html5:before { - content: "\f13b"; } - -.fa-sellsy:before { - content: "\f213"; } - -.fa-square-web-awesome:before { - content: "\e683"; } - -.fa-sass:before { - content: "\f41e"; } - -.fa-wirsindhandwerk:before { - content: "\e2d0"; } - -.fa-wsh:before { - content: "\e2d0"; } - -.fa-buromobelexperte:before { - content: "\f37f"; } - -.fa-salesforce:before { - content: "\f83b"; } - -.fa-octopus-deploy:before { - content: "\e082"; } - -.fa-medapps:before { - content: "\f3c6"; } - -.fa-ns8:before { - content: "\f3d5"; } - -.fa-pinterest-p:before { - content: "\f231"; } - -.fa-apper:before { - content: "\f371"; } - -.fa-fort-awesome:before { - content: "\f286"; } - -.fa-waze:before { - content: "\f83f"; } - -.fa-bluesky:before { - content: "\e671"; } - -.fa-cc-jcb:before { - content: "\f24b"; } - -.fa-snapchat:before { - content: "\f2ab"; } - -.fa-snapchat-ghost:before { - content: "\f2ab"; } - -.fa-fantasy-flight-games:before { - content: "\f6dc"; } - -.fa-rust:before { - content: "\e07a"; } - -.fa-wix:before { - content: "\f5cf"; } - -.fa-square-behance:before { - content: "\f1b5"; } - -.fa-behance-square:before { - content: "\f1b5"; } - -.fa-supple:before { - content: "\f3f9"; } - -.fa-webflow:before { - content: "\e65c"; } - -.fa-rebel:before { - content: "\f1d0"; } - -.fa-css3:before { - content: "\f13c"; } - -.fa-staylinked:before { - content: "\f3f5"; } - -.fa-kaggle:before { - content: "\f5fa"; } - -.fa-space-awesome:before { - content: "\e5ac"; } - -.fa-deviantart:before { - content: "\f1bd"; } - -.fa-cpanel:before { - content: "\f388"; } - -.fa-goodreads-g:before { - content: "\f3a9"; } - -.fa-square-git:before { - content: "\f1d2"; } - -.fa-git-square:before { - content: "\f1d2"; } - -.fa-square-tumblr:before { - content: "\f174"; } - -.fa-tumblr-square:before { - content: "\f174"; } - -.fa-trello:before { - content: "\f181"; } - -.fa-creative-commons-nc-jp:before { - content: "\f4ea"; } - -.fa-get-pocket:before { - content: "\f265"; } - -.fa-perbyte:before { - content: "\e083"; } - -.fa-grunt:before { - content: "\f3ad"; } - -.fa-weebly:before { - content: "\f5cc"; } - -.fa-connectdevelop:before { - content: "\f20e"; } - -.fa-leanpub:before { - content: "\f212"; } - -.fa-black-tie:before { - content: "\f27e"; } - -.fa-themeco:before { - content: "\f5c6"; } - -.fa-python:before { - content: "\f3e2"; } - -.fa-android:before { - content: "\f17b"; } - -.fa-bots:before { - content: "\e340"; } - -.fa-free-code-camp:before { - content: "\f2c5"; } - -.fa-hornbill:before { - content: "\f592"; } - -.fa-js:before { - content: "\f3b8"; } - -.fa-ideal:before { - content: "\e013"; } - -.fa-git:before { - content: "\f1d3"; } - -.fa-dev:before { - content: "\f6cc"; } - -.fa-sketch:before { - content: "\f7c6"; } - -.fa-yandex-international:before { - content: "\f414"; } - -.fa-cc-amex:before { - content: "\f1f3"; } - -.fa-uber:before { - content: "\f402"; } - -.fa-github:before { - content: "\f09b"; } - -.fa-php:before { - content: "\f457"; } - -.fa-alipay:before { - content: "\f642"; } - -.fa-youtube:before { - content: "\f167"; } - -.fa-skyatlas:before { - content: "\f216"; } - -.fa-firefox-browser:before { - content: "\e007"; } - -.fa-replyd:before { - content: "\f3e6"; } - -.fa-suse:before { - content: "\f7d6"; } - -.fa-jenkins:before { - content: "\f3b6"; } - -.fa-twitter:before { - content: "\f099"; } - -.fa-rockrms:before { - content: "\f3e9"; } - -.fa-pinterest:before { - content: "\f0d2"; } - -.fa-buffer:before { - content: "\f837"; } - -.fa-npm:before { - content: "\f3d4"; } - -.fa-yammer:before { - content: "\f840"; } - -.fa-btc:before { - content: "\f15a"; } - -.fa-dribbble:before { - content: "\f17d"; } - -.fa-stumbleupon-circle:before { - content: "\f1a3"; } - -.fa-internet-explorer:before { - content: "\f26b"; } - -.fa-stubber:before { - content: "\e5c7"; } - -.fa-telegram:before { - content: "\f2c6"; } - -.fa-telegram-plane:before { - content: "\f2c6"; } - -.fa-old-republic:before { - content: "\f510"; } - -.fa-odysee:before { - content: "\e5c6"; } - -.fa-square-whatsapp:before { - content: "\f40c"; } - -.fa-whatsapp-square:before { - content: "\f40c"; } - -.fa-node-js:before { - content: "\f3d3"; } - -.fa-edge-legacy:before { - content: "\e078"; } - -.fa-slack:before { - content: "\f198"; } - -.fa-slack-hash:before { - content: "\f198"; } - -.fa-medrt:before { - content: "\f3c8"; } - -.fa-usb:before { - content: "\f287"; } - -.fa-tumblr:before { - content: "\f173"; } - -.fa-vaadin:before { - content: "\f408"; } - -.fa-quora:before { - content: "\f2c4"; } - -.fa-square-x-twitter:before { - content: "\e61a"; } - -.fa-reacteurope:before { - content: "\f75d"; } - -.fa-medium:before { - content: "\f23a"; } - -.fa-medium-m:before { - content: "\f23a"; } - -.fa-amilia:before { - content: "\f36d"; } - -.fa-mixcloud:before { - content: "\f289"; } - -.fa-flipboard:before { - content: "\f44d"; } - -.fa-viacoin:before { - content: "\f237"; } - -.fa-critical-role:before { - content: "\f6c9"; } - -.fa-sitrox:before { - content: "\e44a"; } - -.fa-discourse:before { - content: "\f393"; } - -.fa-joomla:before { - content: "\f1aa"; } - -.fa-mastodon:before { - content: "\f4f6"; } - -.fa-airbnb:before { - content: "\f834"; } - -.fa-wolf-pack-battalion:before { - content: "\f514"; } - -.fa-buy-n-large:before { - content: "\f8a6"; } - -.fa-gulp:before { - content: "\f3ae"; } - -.fa-creative-commons-sampling-plus:before { - content: "\f4f1"; } - -.fa-strava:before { - content: "\f428"; } - -.fa-ember:before { - content: "\f423"; } - -.fa-canadian-maple-leaf:before { - content: "\f785"; } - -.fa-teamspeak:before { - content: "\f4f9"; } - -.fa-pushed:before { - content: "\f3e1"; } - -.fa-wordpress-simple:before { - content: "\f411"; } - -.fa-nutritionix:before { - content: "\f3d6"; } - -.fa-wodu:before { - content: "\e088"; } - -.fa-google-pay:before { - content: "\e079"; } - -.fa-intercom:before { - content: "\f7af"; } - -.fa-zhihu:before { - content: "\f63f"; } - -.fa-korvue:before { - content: "\f42f"; } - -.fa-pix:before { - content: "\e43a"; } - -.fa-steam-symbol:before { - content: "\f3f6"; } - -/* -Projects can override this file. For details, see: -https://www.docsy.dev/docs/adding-content/lookandfeel/#project-style-files -*/ -.td-border-top { - border: none; - border-top: 1px solid #eee; } - -.td-border-none { - border: none; } - -.td-block-padding, .td-default main section { - padding-top: 4rem; - padding-bottom: 4rem; } - @media (min-width: 768px) { - .td-block-padding, .td-default main section { - padding-top: 5rem; - padding-bottom: 5rem; } } -.td-overlay { - position: relative; } - .td-overlay::after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; } - .td-overlay--dark::after { - background-color: rgba(64, 63, 76, 0.3); } - .td-overlay--light::after { - background-color: rgba(211, 243, 238, 0.3); } - .td-overlay__inner { - position: relative; - z-index: 1; } - -@media (min-width: 992px) { - .td-max-width-on-larger-screens, .td-card.card, .td-card-group.card-group, .td-content > .tab-content .tab-pane, .td-content .footnotes, - .td-content > .alert, - .td-content > .highlight, - .td-content > .lead, - .td-content > .td-table, - .td-box .td-content > table, - .td-content > table, - .td-content > blockquote, - .td-content > dl dd, - .td-content > h1, - .td-content > .h1, - .td-content > h2, - .td-content > .h2, - .td-content > ol, - .td-content > p, - .td-content > pre, - .td-content > ul { - max-width: 80%; } } - -.-bg-blue { - color: #fff; - background-color: #0d6efd; } - -.-bg-blue p:not(.p-initial) > a { - color: #81b3fe; } - .-bg-blue p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-blue { - color: #0d6efd; } - -.-bg-indigo { - color: #fff; - background-color: #6610f2; } - -.-bg-indigo p:not(.p-initial) > a { - color: #85b6fe; } - .-bg-indigo p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-indigo { - color: #6610f2; } - -.-bg-purple { - color: #fff; - background-color: #6f42c1; } - -.-bg-purple p:not(.p-initial) > a { - color: #84b5fe; } - .-bg-purple p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-purple { - color: #6f42c1; } - -.-bg-pink { - color: #fff; - background-color: #d63384; } - -.-bg-pink p:not(.p-initial) > a { - color: #81b4fe; } - .-bg-pink p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-pink { - color: #d63384; } - -.-bg-red { - color: #fff; - background-color: #dc3545; } - -.-bg-red p:not(.p-initial) > a { - color: #7db1fe; } - .-bg-red p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-red { - color: #dc3545; } - -.-bg-orange { - color: #000; - background-color: #fd7e14; } - -.-bg-orange p:not(.p-initial) > a { - color: #073b87; } - .-bg-orange p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-orange { - color: #fd7e14; } - -.-bg-yellow { - color: #000; - background-color: #ffc107; } - -.-bg-yellow p:not(.p-initial) > a { - color: #073982; } - .-bg-yellow p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-yellow { - color: #ffc107; } - -.-bg-green { - color: #fff; - background-color: #198754; } - -.-bg-green p:not(.p-initial) > a { - color: #b3d2fe; } - .-bg-green p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-green { - color: #198754; } - -.-bg-teal { - color: #000; - background-color: #20c997; } - -.-bg-teal p:not(.p-initial) > a { - color: #063274; } - .-bg-teal p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-teal { - color: #20c997; } - -.-bg-cyan { - color: #000; - background-color: #0dcaf0; } - -.-bg-cyan p:not(.p-initial) > a { - color: #06377e; } - .-bg-cyan p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-cyan { - color: #0dcaf0; } - -.-bg-black { - color: #fff; - background-color: #000; } - -.-bg-black p:not(.p-initial) > a { - color: white; } - .-bg-black p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-black { - color: #000; } - -.-bg-white { - color: #000; - background-color: #fff; } - -.-bg-white p:not(.p-initial) > a { - color: #0d6efd; } - .-bg-white p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-white { - color: #fff; } - -.-bg-gray { - color: #fff; - background-color: #6c757d; } - -.-bg-gray p:not(.p-initial) > a { - color: #90bdfe; } - .-bg-gray p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-gray { - color: #6c757d; } - -.-bg-gray-dark { - color: #fff; - background-color: #343a40; } - -.-bg-gray-dark p:not(.p-initial) > a { - color: #c8deff; } - .-bg-gray-dark p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-gray-dark { - color: #343a40; } - -.-bg-primary { - color: #fff; - background-color: #30638e; } - -.-bg-primary p:not(.p-initial) > a { - color: #a5c9fe; } - .-bg-primary p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-primary { - color: #30638e; } - -.-bg-secondary { - color: #000; - background-color: #ffa630; } - -.-bg-secondary p:not(.p-initial) > a { - color: #084196; } - .-bg-secondary p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-secondary { - color: #ffa630; } - -.-bg-success { - color: #000; - background-color: #3772ff; } - -.-bg-success p:not(.p-initial) > a { - color: #08439a; } - .-bg-success p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-success { - color: #3772ff; } - -.-bg-info { - color: #000; - background-color: #c0e0de; } - -.-bg-info p:not(.p-initial) > a { - color: #0b5ace; } - .-bg-info p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-info { - color: #c0e0de; } - -.-bg-warning { - color: #000; - background-color: #ed6a5a; } - -.-bg-warning p:not(.p-initial) > a { - color: #0847a2; } - .-bg-warning p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-warning { - color: #ed6a5a; } - -.-bg-danger { - color: #000; - background-color: #ed6a5a; } - -.-bg-danger p:not(.p-initial) > a { - color: #0847a2; } - .-bg-danger p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-danger { - color: #ed6a5a; } - -.-bg-light { - color: #000; - background-color: #d3f3ee; } - -.-bg-light p:not(.p-initial) > a { - color: #0c62e1; } - .-bg-light p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-light { - color: #d3f3ee; } - -.-bg-dark { - color: #fff; - background-color: #403f4c; } - -.-bg-dark p:not(.p-initial) > a { - color: #bdd7fe; } - .-bg-dark p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-dark { - color: #403f4c; } - -.-bg-100 { - color: #000; - background-color: #f8f9fa; } - -.-bg-100 p:not(.p-initial) > a { - color: #0d6bf7; } - .-bg-100 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-100 { - color: #f8f9fa; } - -.-bg-200 { - color: #000; - background-color: #e9ecef; } - -.-bg-200 p:not(.p-initial) > a { - color: #0c66ea; } - .-bg-200 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-200 { - color: #e9ecef; } - -.-bg-300 { - color: #000; - background-color: #dee2e6; } - -.-bg-300 p:not(.p-initial) > a { - color: #0c61e0; } - .-bg-300 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-300 { - color: #dee2e6; } - -.-bg-400 { - color: #000; - background-color: #ced4da; } - -.-bg-400 p:not(.p-initial) > a { - color: #0b5bd2; } - .-bg-400 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-400 { - color: #ced4da; } - -.-bg-500 { - color: #000; - background-color: #adb5bd; } - -.-bg-500 p:not(.p-initial) > a { - color: #094eb4; } - .-bg-500 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-500 { - color: #adb5bd; } - -.-bg-600 { - color: #fff; - background-color: #6c757d; } - -.-bg-600 p:not(.p-initial) > a { - color: #90bdfe; } - .-bg-600 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-600 { - color: #6c757d; } - -.-bg-700 { - color: #fff; - background-color: #495057; } - -.-bg-700 p:not(.p-initial) > a { - color: #b3d2fe; } - .-bg-700 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-700 { - color: #495057; } - -.-bg-800 { - color: #fff; - background-color: #343a40; } - -.-bg-800 p:not(.p-initial) > a { - color: #c8deff; } - .-bg-800 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-800 { - color: #343a40; } - -.-bg-900 { - color: #fff; - background-color: #212529; } - -.-bg-900 p:not(.p-initial) > a { - color: #dceaff; } - .-bg-900 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-900 { - color: #212529; } - -.-bg-0 { - color: #fff; - background-color: #403f4c; } - -.-bg-0 p:not(.p-initial) > a { - color: #bdd7fe; } - .-bg-0 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-0 { - color: #403f4c; } - -.-bg-1 { - color: #fff; - background-color: #30638e; } - -.-bg-1 p:not(.p-initial) > a { - color: #a5c9fe; } - .-bg-1 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-1 { - color: #30638e; } - -.-bg-2 { - color: #000; - background-color: #ffa630; } - -.-bg-2 p:not(.p-initial) > a { - color: #084196; } - .-bg-2 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-2 { - color: #ffa630; } - -.-bg-3 { - color: #000; - background-color: #c0e0de; } - -.-bg-3 p:not(.p-initial) > a { - color: #0b5ace; } - .-bg-3 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-3 { - color: #c0e0de; } - -.-bg-4 { - color: #000; - background-color: #fff; } - -.-bg-4 p:not(.p-initial) > a { - color: #0d6efd; } - .-bg-4 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-4 { - color: #fff; } - -.-bg-5 { - color: #fff; - background-color: #6c757d; } - -.-bg-5 p:not(.p-initial) > a { - color: #90bdfe; } - .-bg-5 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-5 { - color: #6c757d; } - -.-bg-6 { - color: #000; - background-color: #3772ff; } - -.-bg-6 p:not(.p-initial) > a { - color: #08439a; } - .-bg-6 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-6 { - color: #3772ff; } - -.-bg-7 { - color: #000; - background-color: #ed6a5a; } - -.-bg-7 p:not(.p-initial) > a { - color: #0847a2; } - .-bg-7 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-7 { - color: #ed6a5a; } - -.-bg-8 { - color: #fff; - background-color: #403f4c; } - -.-bg-8 p:not(.p-initial) > a { - color: #bdd7fe; } - .-bg-8 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-8 { - color: #403f4c; } - -.-bg-9 { - color: #000; - background-color: #ed6a5a; } - -.-bg-9 p:not(.p-initial) > a { - color: #0847a2; } - .-bg-9 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-9 { - color: #ed6a5a; } - -.-bg-10 { - color: #fff; - background-color: #30638e; } - -.-bg-10 p:not(.p-initial) > a { - color: #a5c9fe; } - .-bg-10 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-10 { - color: #30638e; } - -.-bg-11 { - color: #000; - background-color: #ffa630; } - -.-bg-11 p:not(.p-initial) > a { - color: #084196; } - .-bg-11 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-11 { - color: #ffa630; } - -.-bg-12 { - color: #000; - background-color: #c0e0de; } - -.-bg-12 p:not(.p-initial) > a { - color: #0b5ace; } - .-bg-12 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-12 { - color: #c0e0de; } - -.td-table:not(.td-initial), .td-content table:not(.td-initial), .td-box table:not(.td-initial) { - display: block; } - -.td-box--height-min { - min-height: 300px; } - -.td-box--height-med { - min-height: 400px; } - -.td-box--height-max { - min-height: 500px; } - -.td-box--height-full { - min-height: 100vh; } - -@media (min-width: 768px) { - .td-box--height-min { - min-height: 450px; } - .td-box--height-med { - min-height: 500px; } - .td-box--height-max { - min-height: 650px; } } - -.td-box .row { - padding-left: 5vw; - padding-right: 5vw; } - -.td-box.linkbox { - padding: 5vh 5vw; } - -.td-box--0 { - color: #fff; - background-color: #403f4c; } - .td-box--0 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #403f4c transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--0 p > a, .td-box--0 span > a { - color: #bdd7fe; } - .td-box--0 p > a:hover, .td-box--0 span > a:hover { - color: #d1e3fe; } - -.td-box--1 { - color: #fff; - background-color: #30638e; } - .td-box--1 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #30638e transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--1 p > a, .td-box--1 span > a { - color: #a5c9fe; } - .td-box--1 p > a:hover, .td-box--1 span > a:hover { - color: #c0d9fe; } - -.td-box--2 { - color: #000; - background-color: #ffa630; } - .td-box--2 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ffa630 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--2 p > a, .td-box--2 span > a { - color: #084196; } - .td-box--2 p > a:hover, .td-box--2 span > a:hover { - color: #062e69; } - -.td-box--3 { - color: #000; - background-color: #c0e0de; } - .td-box--3 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #c0e0de transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--3 p > a, .td-box--3 span > a { - color: #0b5ace; } - .td-box--3 p > a:hover, .td-box--3 span > a:hover { - color: #083f90; } - -.td-box--4 { - color: #000; - background-color: #fff; } - .td-box--4 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #fff transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--4 p > a, .td-box--4 span > a { - color: #0d6efd; } - .td-box--4 p > a:hover, .td-box--4 span > a:hover { - color: #094db1; } - -.td-box--5 { - color: #fff; - background-color: #6c757d; } - .td-box--5 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #6c757d transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--5 p > a, .td-box--5 span > a { - color: #90bdfe; } - .td-box--5 p > a:hover, .td-box--5 span > a:hover { - color: #b1d1fe; } - -.td-box--6 { - color: #000; - background-color: #3772ff; } - .td-box--6 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #3772ff transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--6 p > a, .td-box--6 span > a { - color: #08439a; } - .td-box--6 p > a:hover, .td-box--6 span > a:hover { - color: #062f6c; } - -.td-box--7 { - color: #000; - background-color: #ed6a5a; } - .td-box--7 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ed6a5a transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--7 p > a, .td-box--7 span > a { - color: #0847a2; } - .td-box--7 p > a:hover, .td-box--7 span > a:hover { - color: #063271; } - -.td-box--8 { - color: #fff; - background-color: #403f4c; } - .td-box--8 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #403f4c transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--8 p > a, .td-box--8 span > a { - color: #bdd7fe; } - .td-box--8 p > a:hover, .td-box--8 span > a:hover { - color: #d1e3fe; } - -.td-box--9 { - color: #000; - background-color: #ed6a5a; } - .td-box--9 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ed6a5a transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--9 p > a, .td-box--9 span > a { - color: #0847a2; } - .td-box--9 p > a:hover, .td-box--9 span > a:hover { - color: #063271; } - -.td-box--10 { - color: #fff; - background-color: #30638e; } - .td-box--10 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #30638e transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--10 p > a, .td-box--10 span > a { - color: #a5c9fe; } - .td-box--10 p > a:hover, .td-box--10 span > a:hover { - color: #c0d9fe; } - -.td-box--11 { - color: #000; - background-color: #ffa630; } - .td-box--11 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ffa630 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--11 p > a, .td-box--11 span > a { - color: #084196; } - .td-box--11 p > a:hover, .td-box--11 span > a:hover { - color: #062e69; } - -.td-box--12 { - color: #000; - background-color: #c0e0de; } - .td-box--12 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #c0e0de transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--12 p > a, .td-box--12 span > a { - color: #0b5ace; } - .td-box--12 p > a:hover, .td-box--12 span > a:hover { - color: #083f90; } - -.td-box--blue { - color: #fff; - background-color: #0d6efd; } - .td-box--blue .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #0d6efd transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--blue p > a, .td-box--blue span > a { - color: #81b3fe; } - .td-box--blue p > a:hover, .td-box--blue span > a:hover { - color: #a7cafe; } - -.td-box--indigo { - color: #fff; - background-color: #6610f2; } - .td-box--indigo .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #6610f2 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--indigo p > a, .td-box--indigo span > a { - color: #85b6fe; } - .td-box--indigo p > a:hover, .td-box--indigo span > a:hover { - color: #aaccfe; } - -.td-box--purple { - color: #fff; - background-color: #6f42c1; } - .td-box--purple .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #6f42c1 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--purple p > a, .td-box--purple span > a { - color: #84b5fe; } - .td-box--purple p > a:hover, .td-box--purple span > a:hover { - color: #a9cbfe; } - -.td-box--pink { - color: #fff; - background-color: #d63384; } - .td-box--pink .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #d63384 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--pink p > a, .td-box--pink span > a { - color: #81b4fe; } - .td-box--pink p > a:hover, .td-box--pink span > a:hover { - color: #a7cbfe; } - -.td-box--red { - color: #fff; - background-color: #dc3545; } - .td-box--red .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #dc3545 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--red p > a, .td-box--red span > a { - color: #7db1fe; } - .td-box--red p > a:hover, .td-box--red span > a:hover { - color: #a4c8fe; } - -.td-box--orange { - color: #000; - background-color: #fd7e14; } - .td-box--orange .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #fd7e14 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--orange p > a, .td-box--orange span > a { - color: #073b87; } - .td-box--orange p > a:hover, .td-box--orange span > a:hover { - color: #05295f; } - -.td-box--yellow { - color: #000; - background-color: #ffc107; } - .td-box--yellow .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ffc107 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--yellow p > a, .td-box--yellow span > a { - color: #073982; } - .td-box--yellow p > a:hover, .td-box--yellow span > a:hover { - color: #05285b; } - -.td-box--green { - color: #fff; - background-color: #198754; } - .td-box--green .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #198754 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--green p > a, .td-box--green span > a { - color: #b3d2fe; } - .td-box--green p > a:hover, .td-box--green span > a:hover { - color: #cae0fe; } - -.td-box--teal { - color: #000; - background-color: #20c997; } - .td-box--teal .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #20c997 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--teal p > a, .td-box--teal span > a { - color: #063274; } - .td-box--teal p > a:hover, .td-box--teal span > a:hover { - color: #042351; } - -.td-box--cyan { - color: #000; - background-color: #0dcaf0; } - .td-box--cyan .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #0dcaf0 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--cyan p > a, .td-box--cyan span > a { - color: #06377e; } - .td-box--cyan p > a:hover, .td-box--cyan span > a:hover { - color: #042758; } - -.td-box--black { - color: #fff; - background-color: #000; } - .td-box--black .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #000 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--black p > a, .td-box--black span > a { - color: white; } - .td-box--black p > a:hover, .td-box--black span > a:hover { - color: white; } - -.td-box--white { - color: #000; - background-color: #fff; } - .td-box--white .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #fff transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--white p > a, .td-box--white span > a { - color: #0d6efd; } - .td-box--white p > a:hover, .td-box--white span > a:hover { - color: #094db1; } - -.td-box--gray { - color: #fff; - background-color: #6c757d; } - .td-box--gray .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #6c757d transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--gray p > a, .td-box--gray span > a { - color: #90bdfe; } - .td-box--gray p > a:hover, .td-box--gray span > a:hover { - color: #b1d1fe; } - -.td-box--gray-dark { - color: #fff; - background-color: #343a40; } - .td-box--gray-dark .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #343a40 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--gray-dark p > a, .td-box--gray-dark span > a { - color: #c8deff; } - .td-box--gray-dark p > a:hover, .td-box--gray-dark span > a:hover { - color: #d9e8ff; } - -.td-box--primary { - color: #fff; - background-color: #30638e; } - .td-box--primary .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #30638e transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--primary p > a, .td-box--primary span > a { - color: #a5c9fe; } - .td-box--primary p > a:hover, .td-box--primary span > a:hover { - color: #c0d9fe; } - -.td-box--secondary { - color: #000; - background-color: #ffa630; } - .td-box--secondary .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ffa630 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--secondary p > a, .td-box--secondary span > a { - color: #084196; } - .td-box--secondary p > a:hover, .td-box--secondary span > a:hover { - color: #062e69; } - -.td-box--success { - color: #000; - background-color: #3772ff; } - .td-box--success .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #3772ff transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--success p > a, .td-box--success span > a { - color: #08439a; } - .td-box--success p > a:hover, .td-box--success span > a:hover { - color: #062f6c; } - -.td-box--info { - color: #000; - background-color: #c0e0de; } - .td-box--info .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #c0e0de transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--info p > a, .td-box--info span > a { - color: #0b5ace; } - .td-box--info p > a:hover, .td-box--info span > a:hover { - color: #083f90; } - -.td-box--warning { - color: #000; - background-color: #ed6a5a; } - .td-box--warning .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ed6a5a transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--warning p > a, .td-box--warning span > a { - color: #0847a2; } - .td-box--warning p > a:hover, .td-box--warning span > a:hover { - color: #063271; } - -.td-box--danger { - color: #000; - background-color: #ed6a5a; } - .td-box--danger .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ed6a5a transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--danger p > a, .td-box--danger span > a { - color: #0847a2; } - .td-box--danger p > a:hover, .td-box--danger span > a:hover { - color: #063271; } - -.td-box--light { - color: #000; - background-color: #d3f3ee; } - .td-box--light .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #d3f3ee transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--light p > a, .td-box--light span > a { - color: #0c62e1; } - .td-box--light p > a:hover, .td-box--light span > a:hover { - color: #08459e; } - -.td-box--dark, .td-footer { - color: #fff; - background-color: #403f4c; } - .td-box--dark .td-arrow-down::before, .td-footer .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #403f4c transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--dark p > a, .td-footer p > a, .td-box--dark span > a, .td-footer span > a { - color: #bdd7fe; } - .td-box--dark p > a:hover, .td-footer p > a:hover, .td-box--dark span > a:hover, .td-footer span > a:hover { - color: #d1e3fe; } - -.td-box--100 { - color: #000; - background-color: #f8f9fa; } - .td-box--100 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #f8f9fa transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--100 p > a, .td-box--100 span > a { - color: #0d6bf7; } - .td-box--100 p > a:hover, .td-box--100 span > a:hover { - color: #094bad; } - -.td-box--200 { - color: #000; - background-color: #e9ecef; } - .td-box--200 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #e9ecef transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--200 p > a, .td-box--200 span > a { - color: #0c66ea; } - .td-box--200 p > a:hover, .td-box--200 span > a:hover { - color: #0847a4; } - -.td-box--300 { - color: #000; - background-color: #dee2e6; } - .td-box--300 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #dee2e6 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--300 p > a, .td-box--300 span > a { - color: #0c61e0; } - .td-box--300 p > a:hover, .td-box--300 span > a:hover { - color: #08449d; } - -.td-box--400 { - color: #000; - background-color: #ced4da; } - .td-box--400 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ced4da transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--400 p > a, .td-box--400 span > a { - color: #0b5bd2; } - .td-box--400 p > a:hover, .td-box--400 span > a:hover { - color: #084093; } - -.td-box--500 { - color: #000; - background-color: #adb5bd; } - .td-box--500 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #adb5bd transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--500 p > a, .td-box--500 span > a { - color: #094eb4; } - .td-box--500 p > a:hover, .td-box--500 span > a:hover { - color: #06377e; } - -.td-box--600 { - color: #fff; - background-color: #6c757d; } - .td-box--600 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #6c757d transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--600 p > a, .td-box--600 span > a { - color: #90bdfe; } - .td-box--600 p > a:hover, .td-box--600 span > a:hover { - color: #b1d1fe; } - -.td-box--700 { - color: #fff; - background-color: #495057; } - .td-box--700 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #495057 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--700 p > a, .td-box--700 span > a { - color: #b3d2fe; } - .td-box--700 p > a:hover, .td-box--700 span > a:hover { - color: #cae0fe; } - -.td-box--800 { - color: #fff; - background-color: #343a40; } - .td-box--800 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #343a40 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--800 p > a, .td-box--800 span > a { - color: #c8deff; } - .td-box--800 p > a:hover, .td-box--800 span > a:hover { - color: #d9e8ff; } - -.td-box--900 { - color: #fff; - background-color: #212529; } - .td-box--900 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #212529 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--900 p > a, .td-box--900 span > a { - color: #dceaff; } - .td-box--900 p > a:hover, .td-box--900 span > a:hover { - color: #e7f0ff; } - -[data-bs-theme="dark"] .td-box--white { - color: var(--bs-body-color); - background-color: var(--bs-body-bg); } - [data-bs-theme="dark"] .td-box--white p > a, [data-bs-theme="dark"] .td-box--white span > a { - color: var(--bs-link-color); } - [data-bs-theme="dark"] .td-box--white p > a:focus, [data-bs-theme="dark"] .td-box--white p > a:hover, [data-bs-theme="dark"] .td-box--white span > a:focus, [data-bs-theme="dark"] .td-box--white span > a:hover { - color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); } - [data-bs-theme="dark"] .td-box--white .td-arrow-down::before { - border-color: var(--bs-body-bg) transparent transparent transparent; } - -.td-blog .td-rss-button { - border-radius: 2rem; - float: right; - display: none; } - -.td-blog-posts-list { - margin-top: 1.5rem !important; } - .td-blog-posts-list__item { - display: flex; - align-items: flex-start; - margin-bottom: 1.5rem !important; } - .td-blog-posts-list__item__body { - flex: 1; } - -[data-bs-theme="dark"] { - --td-pre-bg: #1b1f22; } - -.td-content .highlight { - margin: 2rem 0; - padding: 0; - position: relative; } - .td-content .highlight .click-to-copy { - display: block; - text-align: right; } - .td-content .highlight pre { - margin: 0; - padding: 1rem; - border-radius: inherit; } - .td-content .highlight pre button.td-click-to-copy { - position: absolute; - color: var(--bs-tertiary-color); - border-width: 0; - background-color: transparent; - background-image: none; - --bs-btn-box-shadow: 0; - padding: var(--bs-btn-padding-y) calc(var(--bs-btn-padding-x) / 2); - right: 4px; - top: 2px; } - .td-content .highlight pre button.td-click-to-copy:hover { - color: var(--bs-secondary-color); - background-color: var(--bs-dark-bg-subtle); } - .td-content .highlight pre button.td-click-to-copy:active { - color: var(--bs-secondary-color); - background-color: var(--bs-dark-bg-subtle); - transform: translateY(2px); } - -.td-content p code, -.td-content li > code, -.td-content table code { - color: inherit; - padding: 0.2em 0.4em; - margin: 0; - font-size: 85%; - word-break: normal; - background-color: var(--td-pre-bg); - border-radius: 0.375rem; } - .td-content p code br, - .td-content li > code br, - .td-content table code br { - display: none; } - -.td-content pre { - word-wrap: normal; - background-color: var(--td-pre-bg); - border: solid var(--bs-border-color); - border-width: 1px; - padding: 1rem; } - .td-content pre > code { - background-color: inherit !important; - padding: 0; - margin: 0; - font-size: 100%; - word-break: normal; - white-space: pre; - border: 0; } - -.td-content pre.mermaid { - background-color: inherit; - font-size: 0; - padding: 0; } - -@media (min-width: 768px) { - .td-navbar-cover { - background: transparent !important; } - .td-navbar-cover .nav-link { - text-shadow: 1px 1px 2px #403f4c; } } - -.td-navbar-cover.navbar-bg-onscroll .nav-link { - text-shadow: none; } - -.navbar-bg-onscroll { - background: #30638e !important; - opacity: inherit; } - -.td-navbar { - background: #30638e; - min-height: 4rem; - margin: 0; - z-index: 32; } - .td-navbar .navbar-brand { - text-transform: none; } - .td-navbar .navbar-brand__name { - font-weight: 700; } - .td-navbar .navbar-brand svg { - display: inline-block; - margin: 0 10px; - height: 30px; } - .td-navbar .navbar-nav { - padding-top: 0.5rem; - white-space: nowrap; } - .td-navbar .nav-link { - text-transform: none; - font-weight: 700; } - .td-navbar .dropdown { - min-width: 50px; } - @media (min-width: 768px) { - .td-navbar { - position: fixed; - top: 0; - width: 100%; } - .td-navbar .nav-item { - padding-inline-end: 0.5rem; } - .td-navbar .navbar-nav { - padding-top: 0 !important; } } - @media (max-width: 991.98px) { - .td-navbar .td-navbar-nav-scroll { - max-width: 100%; - height: 2.5rem; - overflow: hidden; - font-size: 0.9rem; } - .td-navbar .navbar-brand { - margin-right: 0; } - .td-navbar .navbar-nav { - padding-bottom: 2rem; - overflow-x: auto; } } - .td-navbar .td-light-dark-menu .bi { - width: 1em; - height: 1em; - vertical-align: -.125em; - fill: currentcolor; } - @media (max-width: 991.98px) { - .td-navbar .td-light-dark-menu.dropdown { - position: unset; } } -#main_navbar li i { - padding-right: 0.5em; } - #main_navbar li i:before { - display: inline-block; - text-align: center; - min-width: 1em; } - -#main_navbar .alert { - background-color: inherit; - padding: 0; - color: #ffa630; - border: 0; - font-weight: inherit; } - #main_navbar .alert:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - font-weight: 900; - content: "\f0d9"; - padding-left: 0.5em; - padding-right: 0.5em; } - -nav.foldable-nav#td-section-nav { - position: relative; } - -nav.foldable-nav#td-section-nav label { - margin-bottom: 0; - width: 100%; } - -nav.foldable-nav .td-sidebar-nav__section, -nav.foldable-nav .with-child ul { - list-style: none; - padding: 0; - margin: 0; } - -nav.foldable-nav .ul-1 > li { - padding-left: 1.5em; } - -nav.foldable-nav ul.foldable { - display: none; } - -nav.foldable-nav input:checked ~ ul.foldable { - display: block; } - -nav.foldable-nav input[type="checkbox"] { - display: none; } - -nav.foldable-nav .with-child, -nav.foldable-nav .without-child { - position: relative; - padding-left: 1.5em; } - -nav.foldable-nav .ul-1 .with-child > label:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - font-weight: 900; - content: "\f0da"; - position: absolute; - left: 0.1em; - padding-left: 0.4em; - padding-right: 0.4em; - font-size: 1em; - color: var(--bs-secondary-color); - transition: all 0.5s; } - nav.foldable-nav .ul-1 .with-child > label:before:hover { - transform: rotate(90deg); } - -nav.foldable-nav .ul-1 .with-child > input:checked ~ label:before { - color: var(--bs-secondary-color); - transform: rotate(90deg); - transition: transform 0.5s; } - -nav.foldable-nav .with-child ul { - margin-top: 0.1em; } - -@media (hover: hover) and (pointer: fine) { - nav.foldable-nav .ul-1 .with-child > label:hover:before { - color: var(--bs-link-color); - transition: color 0.3s; } - nav.foldable-nav .ul-1 .with-child > input:checked ~ label:hover:before { - color: var(--bs-link-color); - transition: color 0.3s; } } - -.td-sidebar-nav { - padding-right: 0.5rem; - margin-right: -15px; - margin-left: -15px; } - @media (min-width: 768px) { - @supports (position: sticky) { - .td-sidebar-nav { - max-height: calc(100vh - 8.5rem); - overflow-y: auto; } } } - @media (min-width: 992px) { - .td-sidebar-nav.td-sidebar-nav--search-disabled { - padding-top: 1rem; } - @supports (position: sticky) { - .td-sidebar-nav.td-sidebar-nav--search-disabled { - max-height: calc(calc(100vh - 8.5rem) + 4.5rem); } } } - @media (min-width: 768px) { - .td-sidebar-nav { - display: block !important; } } - .td-sidebar-nav__section { - padding-left: 0; } - .td-sidebar-nav__section li { - list-style: none; } - .td-sidebar-nav__section.ul-0, .td-sidebar-nav__section ul { - padding: 0; - margin: 0; } - @media (min-width: 768px) { - .td-sidebar-nav__section .ul-1 ul { - padding-left: 1.5em; } } - .td-sidebar-nav__section-title { - display: block; - font-weight: 500; } - .td-sidebar-nav__section-title .active { - font-weight: 700; } - .td-sidebar-nav__section-title a { - color: var(--bs-secondary-color); } - .td-sidebar-nav .td-sidebar-link { - display: block; - padding-bottom: 0.375rem; } - .td-sidebar-nav .td-sidebar-link__page { - color: var(--bs-body-color); - font-weight: 300; } - .td-sidebar-nav a:focus, .td-sidebar-nav a:hover { - color: var(--bs-link-color); } - .td-sidebar-nav a.active { - font-weight: 700; } - .td-sidebar-nav .dropdown a { - color: var(--bs-tertiary-color); } - .td-sidebar-nav .dropdown .nav-link { - padding: 0 0 1rem; } - .td-sidebar-nav > .td-sidebar-nav__section { - padding-left: 1.5rem; } - .td-sidebar-nav li i { - padding-right: 0.5em; } - .td-sidebar-nav li i:before { - display: inline-block; - text-align: center; - min-width: 1em; } - .td-sidebar-nav .td-sidebar-link.tree-root { - font-weight: 700; - border-bottom: 1px solid var(--bs-tertiary-color); - margin-bottom: 1rem; } - -.td-sidebar { - padding-bottom: 1rem; } - .td-sidebar a { - text-decoration: none; } - .td-sidebar a:focus, .td-sidebar a:hover { - text-decoration: initial; } - .td-sidebar .btn-link { - text-decoration: none; } - @media (min-width: 768px) { - .td-sidebar { - padding-top: 4rem; - background-color: var(--bs-body-tertiary-bg); - padding-right: 1rem; - border-right: 1px solid var(--bs-border-color); } } - .td-sidebar__toggle { - line-height: 1; - color: var(--bs-body-color); - margin: 1rem; } - .td-sidebar__search { - padding: 1rem 0; } - .td-sidebar__inner { - order: 0; } - @media (min-width: 768px) { - @supports (position: sticky) { - .td-sidebar__inner { - position: sticky; - top: 4rem; - z-index: 10; - height: calc(100vh - 5rem); } } } - @media (min-width: 1200px) { - .td-sidebar__inner { - flex: 0 1 320px; } } - .td-sidebar__inner .td-search-box { - width: 100%; } - .td-sidebar #content-desktop { - display: block; } - .td-sidebar #content-mobile { - display: none; } - @media (max-width: 991.98px) { - .td-sidebar #content-desktop { - display: none; } - .td-sidebar #content-mobile { - display: block; } } -.td-sidebar-toc { - border-left: 1px solid var(--bs-border-color); - order: 2; - padding-top: 0.75rem; - padding-bottom: 1.5rem; - vertical-align: top; } - .td-sidebar-toc a { - text-decoration: none; } - .td-sidebar-toc a:focus, .td-sidebar-toc a:hover { - text-decoration: initial; } - .td-sidebar-toc .btn-link { - text-decoration: none; } - @supports (position: sticky) { - .td-sidebar-toc { - position: sticky; - top: 4rem; - height: calc(100vh - 4rem); - overflow-y: auto; } } - .td-sidebar-toc .td-page-meta a { - display: block; - font-weight: 500; } - -.td-toc a { - display: block; - font-weight: 300; - padding-bottom: 0.25rem; } - -.td-toc li { - list-style: none; - display: block; } - -.td-toc li li { - margin-left: 0.5rem; } - -.td-toc #TableOfContents a { - color: var(--bs-secondary-color); } - .td-toc #TableOfContents a:focus, .td-toc #TableOfContents a:hover { - color: initial; } - -.td-toc ul { - padding-left: 0; } - -@media print { - .td-breadcrumbs { - display: none !important; } } - -.td-breadcrumbs .breadcrumb { - background: inherit; - padding-left: 0; - padding-top: 0; } - -.alert { - font-weight: 500; - color: inherit; - border-radius: 0; } - .alert-primary, .pageinfo-primary { - border-style: solid; - border-color: #30638e; - border-width: 0 0 0 4px; } - .alert-primary .alert-heading, .pageinfo-primary .alert-heading { - color: #30638e; } - .alert-secondary, .pageinfo-secondary { - border-style: solid; - border-color: #ffa630; - border-width: 0 0 0 4px; } - .alert-secondary .alert-heading, .pageinfo-secondary .alert-heading { - color: #ffa630; } - .alert-success, .pageinfo-success { - border-style: solid; - border-color: #3772ff; - border-width: 0 0 0 4px; } - .alert-success .alert-heading, .pageinfo-success .alert-heading { - color: #3772ff; } - .alert-info, .pageinfo-info { - border-style: solid; - border-color: #c0e0de; - border-width: 0 0 0 4px; } - .alert-info .alert-heading, .pageinfo-info .alert-heading { - color: #c0e0de; } - .alert-warning, .pageinfo-warning { - border-style: solid; - border-color: #ed6a5a; - border-width: 0 0 0 4px; } - .alert-warning .alert-heading, .pageinfo-warning .alert-heading { - color: #ed6a5a; } - .alert-danger, .pageinfo-danger { - border-style: solid; - border-color: #ed6a5a; - border-width: 0 0 0 4px; } - .alert-danger .alert-heading, .pageinfo-danger .alert-heading { - color: #ed6a5a; } - .alert-light, .pageinfo-light { - border-style: solid; - border-color: #d3f3ee; - border-width: 0 0 0 4px; } - .alert-light .alert-heading, .pageinfo-light .alert-heading { - color: #d3f3ee; } - .alert-dark, .pageinfo-dark { - border-style: solid; - border-color: #403f4c; - border-width: 0 0 0 4px; } - .alert-dark .alert-heading, .pageinfo-dark .alert-heading { - color: #403f4c; } - -.td-content { - order: 1; } - .td-content p, - .td-content li, - .td-content td { - font-weight: 400; } - .td-content > h1, .td-content > .h1 { - font-weight: 700; - margin-bottom: 1rem; } - .td-content > h2, .td-content > .h2 { - margin-bottom: 1rem; } - .td-content > h2:not(:first-child), .td-content > .h2:not(:first-child) { - margin-top: 3rem; } - .td-content > h2 + h3, .td-content > .h2 + h3, .td-content > h2 + .h3, .td-content > h2 + .td-footer__links-item, .td-content > .h2 + .h3, .td-content > .h2 + .td-footer__links-item { - margin-top: 1rem; } - .td-content > h3, .td-content > .h3, .td-content > .td-footer__links-item, - .td-content > h4, - .td-content > .h4, - .td-content > h5, - .td-content > .h5, - .td-content > h6, - .td-content > .h6 { - margin-bottom: 1rem; - margin-top: 2rem; } - .td-content blockquote { - padding: 0 0 0 1rem; - margin-bottom: 1rem; - color: var(--bs-secondary-color); - border-left: 6px solid var(--bs-primary); } - .td-content ul li, - .td-content ol li { - margin-bottom: 0.25rem; } - .td-content strong { - font-weight: 700; } - .td-content .alert:not(:first-child) { - margin-top: 2rem; - margin-bottom: 2rem; } - .td-content .lead { - margin-bottom: 1.5rem; } - -.td-title { - margin-top: 1rem; - margin-bottom: 0.5rem; } - @media (min-width: 576px) { - .td-title { - font-size: 3rem; } } -.td-heading-self-link { - font-size: 90%; - padding-left: 0.25em; - text-decoration: none; - visibility: hidden; } - .td-heading-self-link:before { - content: '#'; } - @media (hover: none) and (pointer: coarse), (max-width: 576px) { - .td-heading-self-link { - visibility: visible; } } -h1:hover > .td-heading-self-link, .h1:hover > .td-heading-self-link { - visibility: visible; } - -h2:hover > .td-heading-self-link, .h2:hover > .td-heading-self-link { - visibility: visible; } - -h3:hover > .td-heading-self-link, .h3:hover > .td-heading-self-link, .td-footer__links-item:hover > .td-heading-self-link { - visibility: visible; } - -h4:hover > .td-heading-self-link, .h4:hover > .td-heading-self-link { - visibility: visible; } - -h5:hover > .td-heading-self-link, .h5:hover > .td-heading-self-link { - visibility: visible; } - -h6:hover > .td-heading-self-link, .h6:hover > .td-heading-self-link { - visibility: visible; } - -.td-search { - background: transparent; - position: relative; - width: 100%; } - .td-search__icon { - display: flex; - align-items: center; - height: 100%; - position: absolute; - left: 0.75em; - pointer-events: none; } - .td-search__icon:before { - content: "\f002"; } - .td-navbar .td-search__icon { - color: inherit; } - .td-search__input { - width: 100%; - text-indent: 1.25em; } - .td-search__input:not(:focus) { - background: transparent; } - .td-search__input.form-control:focus { - border-color: #f5f7f9; - box-shadow: 0 0 0 2px #83a1bb; - color: var(--bs-body-color); } - .td-navbar .td-search__input { - border: none; - color: inherit; } - .td-navbar .td-search__input::-webkit-input-placeholder { - color: inherit; } - .td-navbar .td-search__input:-moz-placeholder { - color: inherit; } - .td-navbar .td-search__input::-moz-placeholder { - color: inherit; } - .td-navbar .td-search__input:-ms-input-placeholder { - color: inherit; } - .td-search:focus-within .td-search__icon { - display: none; } - .td-search:focus-within .td-search-input { - text-indent: 0px; } - .td-search:not(:focus-within) { - color: var(--bs-secondary-color); } - -.td-sidebar .td-search--algolia { - display: block; - padding: 0 0.5rem; } - .td-sidebar .td-search--algolia > button { - margin: 0; - width: 100%; } - -.td-search--offline:focus-within .td-search__icon { - display: flex; - color: var(--bs-secondary-color); } - -.td-offline-search-results { - max-width: 90%; } - .td-offline-search-results .card { - margin-bottom: 0.5rem; } - .td-offline-search-results .card .card-header { - font-weight: bold; } - .td-offline-search-results__close-button { - float: right; } - .td-offline-search-results__close-button:after { - content: "\f00d"; } - -.td-outer { - display: flex; - flex-direction: column; - min-height: 100vh; } - -@media (min-width: 768px) { - .td-default main > section:first-of-type { - padding-top: 8rem; } } - -.td-main { - flex-grow: 1; } - -.td-404 main, -.td-main main { - padding-top: 1.5rem; - padding-bottom: 2rem; } - @media (min-width: 768px) { - .td-404 main, - .td-main main { - padding-top: 5.5rem; } } -.td-cover-block--height-min { - min-height: 300px; } - -.td-cover-block--height-med { - min-height: 400px; } - -.td-cover-block--height-max { - min-height: 500px; } - -.td-cover-block--height-full { - min-height: 100vh; } - -@media (min-width: 768px) { - .td-cover-block--height-min { - min-height: 450px; } - .td-cover-block--height-med { - min-height: 500px; } - .td-cover-block--height-max { - min-height: 650px; } } - -.td-cover-logo { - margin-right: 0.5em; } - -.td-cover-block { - position: relative; - padding-top: 5rem; - padding-bottom: 5rem; - background-repeat: no-repeat; - background-position: 50% 0; - background-size: cover; } - .td-cover-block > .byline { - position: absolute; - bottom: 2px; - right: 4px; } - -.td-bg-arrow-wrapper { - position: relative; } - -.section-index .entry { - padding: 0.75rem; } - -.section-index h5, .section-index .h5 { - margin-bottom: 0; } - .section-index h5 a, .section-index .h5 a { - font-weight: 700; } - -.section-index p { - margin-top: 0; } - -.pageinfo { - font-weight: 500; - background: var(--bs-alert-bg); - color: inherit; - margin: 2rem auto; - padding: 1.5rem; - padding-bottom: 0.5rem; } - .pageinfo-primary { - border-width: 0; } - .pageinfo-secondary { - border-width: 0; } - .pageinfo-success { - border-width: 0; } - .pageinfo-info { - border-width: 0; } - .pageinfo-warning { - border-width: 0; } - .pageinfo-danger { - border-width: 0; } - .pageinfo-light { - border-width: 0; } - .pageinfo-dark { - border-width: 0; } - -.td-page-meta__lastmod { - margin-top: 3rem !important; - padding-top: 1rem !important; } - -.taxonomy-terms-article { - width: 100%; - clear: both; - font-size: 0.8rem; } - .taxonomy-terms-article .taxonomy-title { - display: inline; - font-size: 1.25em; - height: 1em; - line-height: 1em; - margin-right: 0.5em; - padding: 0; } - -.taxonomy-terms-cloud { - width: 100%; - clear: both; - font-size: 0.8rem; } - .taxonomy-terms-cloud .taxonomy-title { - display: inline-block; - width: 100%; - font-size: 1rem; - font-weight: 700; - color: var(--bs-primary-text-emphasis); - border-bottom: 1px solid var(--bs-tertiary-color); - margin-bottom: 1em; - padding-bottom: 0.375rem; - margin-top: 1em; } - -.taxonomy-terms-page { - max-width: 800px; - margin: auto; } - .taxonomy-terms-page h1, .taxonomy-terms-page .h1 { - margin-bottom: 1em; } - .taxonomy-terms-page .taxonomy-terms-cloud { - font-size: 1em; } - .taxonomy-terms-page .taxonomy-terms-cloud li { - display: block; } - .taxonomy-terms-page .taxo-text-tags li + li::before { - content: none; } - .taxonomy-terms-page .taxo-fruits .taxonomy-count, - .taxonomy-terms-page .taxo-fruits .taxonomy-label { - display: inherit; - font-size: 1rem; - margin: 0; - padding: 0; - padding-right: 0.5em; } - .taxonomy-terms-page .taxo-fruits .taxonomy-count::before { - content: "("; } - .taxonomy-terms-page .taxo-fruits .taxonomy-count::after { - content: ")"; } - -.taxonomy-terms { - list-style: none; - margin: 0; - overflow: hidden; - padding: 0; - display: inline; } - .taxonomy-terms li { - display: inline; - overflow-wrap: break-word; - word-wrap: break-word; - -ms-word-break: break-all; - word-break: break-all; - word-break: break-word; - -ms-hyphens: auto; - -moz-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; } - -.taxonomy-count { - font-size: 0.8em; - line-height: 1.25em; - display: inline-block; - padding-left: 0.6em; - padding-right: 0.6em; - margin-left: 0.6em; - text-align: center; - border-radius: 1em; - background-color: var(--bs-body-bg); } - -.taxonomy-term { - background: var(--bs-secondary-bg); - border-width: 0; - border-radius: 0 3px 3px 0; - color: var(--bs-body-color); - display: inline-block; - font-size: 1em; - line-height: 1.5em; - min-height: 1.5em; - max-width: 100%; - padding: 0 0.5em 0 1em; - position: relative; - margin: 0 0.5em 0.2em 0; - text-decoration: none; - -webkit-transition: color 0.2s; - -webkit-clip-path: polygon(100% 0, 100% 100%, 0.8em 100%, 0 50%, 0.8em 0); - clip-path: polygon(100% 0, 100% 100%, 0.8em 100%, 0 50%, 0.8em 0); } - .taxonomy-term:hover { - background-color: var(--bs-primary-bg-subtle); - color: var(--bs-body-color-dark); } - .taxonomy-term:hover .taxonomy-count { - color: var(--bs-body-color-dark); } - .taxonomy-term:hover::before { - background: #30638e; } - -.taxo-text-tags .taxonomy-term { - background: none; - border-width: 0; - border-radius: 0; - color: #6c757d; - font-size: 1em; - line-height: 1.5em; - min-height: 1.5em; - max-width: 100%; - padding: 0; - position: relative; - margin: 0; - text-decoration: none; - -webkit-clip-path: none; - clip-path: none; } - .taxo-text-tags .taxonomy-term:hover { - background: none; - color: #0d6efd; } - .taxo-text-tags .taxonomy-term:hover .taxonomy-count { - color: #403f4c !important; } - .taxo-text-tags .taxonomy-term:hover::before { - background: none; } - -.taxo-text-tags li + li::before { - content: "|"; - color: #6c757d; - margin-right: 0.2em; } - -.taxo-text-tags .taxonomy-count { - font-size: 1em; - line-height: 1.25em; - display: inline-block; - padding: 0; - margin: 0; - text-align: center; - border-radius: 0; - background: none; - vertical-align: super; - font-size: 0.75em; } - -.taxo-text-tags .taxonomy-term:hover .taxonomy-count { - color: #0d6efd !important; } - -.taxo-fruits .taxonomy-term[data-taxonomy-term]::before { - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - padding-right: 0.5em; - font-size: 2em; - min-width: 1.5em; - display: inline-block; } - -.taxo-fruits .taxonomy-term[data-taxonomy-term="apple"]::before { - content: "\f5d1"; - color: red; } - -.taxo-fruits .taxonomy-term[data-taxonomy-term="carrot"]::before { - content: "\f787"; - color: orange; } - -.taxo-fruits .taxonomy-term[data-taxonomy-term="lemon"]::before { - content: "\f094"; - color: limegreen; } - -.taxo-fruits .taxonomy-term[data-taxonomy-term="pepper"]::before { - content: "\f816"; - color: darkred; } - -.taxo-fruits .taxonomy-term { - background: none; - border-width: 0; - border-radius: 0; - color: #6c757d; - font-size: 1em; - line-height: 2.5em; - max-width: 100%; - padding: 0; - position: relative; - margin: 0; - text-decoration: none; - -webkit-clip-path: none; - clip-path: none; } - .taxo-fruits .taxonomy-term:hover { - background: none; - color: #0d6efd; } - .taxo-fruits .taxonomy-term:hover .taxonomy-count { - color: #403f4c !important; } - .taxo-fruits .taxonomy-term:hover::before { - background: none; - text-shadow: 0 0 3px #212529; } - -.taxo-fruits .taxonomy-count, -.taxo-fruits .taxonomy-label { - display: none; } - -.taxo-fruits.taxonomy-terms-article { - margin-bottom: 1rem; } - .taxo-fruits.taxonomy-terms-article .taxonomy-title { - display: none; } - -.taxonomy-taxonomy-page { - max-width: 800px; - margin: auto; } - .taxonomy-taxonomy-page h1, .taxonomy-taxonomy-page .h1 { - margin-bottom: 1em; } - -.article-meta { - margin-bottom: 1.5rem; } - -.article-teaser.article-type-docs h3 a:before, .article-teaser.article-type-docs .h3 a:before, .article-teaser.article-type-docs .td-footer__links-item a:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - content: "\f02d"; - padding-right: 0.5em; } - -.article-teaser.article-type-blog h3 a:before, .article-teaser.article-type-blog .h3 a:before, .article-teaser.article-type-blog .td-footer__links-item a:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - content: "\f781"; - padding-right: 0.5em; } - -.all-taxonomy-terms { - font-weight: 500; - line-height: 1.2; - font-size: 1.5rem; } - .all-taxonomy-terms:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - content: "\f122"; - padding-right: 0.5em; } - -.article-teaser.card { - padding: 1em; - margin-bottom: 1.5em; } - -.article-teaser .breadcrumb { - margin-bottom: 0em; - font-size: 0.85rem; } - -.article-teaser .article-meta { - margin-bottom: 0em; } - -div.drawio { - display: inline-block; - position: relative; } - div.drawio button { - position: absolute; - bottom: 5px; - right: 5px; - padding: 0.4em 0.5em; - font-size: 0.8em; - display: none; } - div.drawio:hover button { - display: inline; } - -div.drawioframe { - position: fixed; - height: 100%; - width: 100%; - top: 0; - left: 0px; - z-index: 1000; - background: #000b; - border: 0; } - div.drawioframe iframe { - position: absolute; - height: 90%; - width: 90%; - top: 5%; - left: 5%; - z-index: 1010; } - -.tab-content .tab-pane { - margin-top: 0rem; - margin-bottom: 1.5rem; - border-left: var(--bs-border-width) solid var(--bs-border-color); - border-right: var(--bs-border-width) solid var(--bs-border-color); - border-bottom: var(--bs-border-width) solid var(--bs-border-color); } - .tab-content .tab-pane .highlight { - margin: 0; - border: none; - max-width: 100%; } - -.tab-body { - font-weight: 500; - background: var(--td-pre-bg); - color: var(--bs-body-color); - border-radius: 0; - padding: 1.5rem; } - .tab-body > :last-child { - margin-bottom: 0; } - .tab-body > .highlight:only-child { - margin: -1.5rem; - max-width: calc(100% + 3rem); } - .tab-body-primary { - border-style: solid; - border-color: #30638e; } - .tab-body-secondary { - border-style: solid; - border-color: #ffa630; } - .tab-body-success { - border-style: solid; - border-color: #3772ff; } - .tab-body-info { - border-style: solid; - border-color: #c0e0de; } - .tab-body-warning { - border-style: solid; - border-color: #ed6a5a; } - .tab-body-danger { - border-style: solid; - border-color: #ed6a5a; } - .tab-body-light { - border-style: solid; - border-color: #d3f3ee; } - .tab-body-dark { - border-style: solid; - border-color: #403f4c; } - -.td-card.card .highlight { - border: none; - margin: 0; } - -.td-card .card-header.code { - background-color: var(--bs-body-bg); } - -.td-card .card-body.code { - background-color: var(--bs-body-bg); - padding: 0 0 0 1ex; } - -.td-card .card-body pre { - margin: 0; - padding: 0 1rem 1rem 1rem; } - -.swagger-ui .info .title small pre, .swagger-ui .info .title .small pre, .swagger-ui .info .title .td-footer__center pre, .swagger-ui .info .title .td-cover-block > .byline pre { - background: #7d8492; } - -.td-footer { - min-height: 150px; - padding-top: 3rem; - /* &__left { } */ } - @media (max-width: 991.98px) { - .td-footer { - min-height: 200px; } } - .td-footer__center { - text-align: center; } - .td-footer__right { - text-align: right; } - .td-footer__about { - font-size: initial; } - .td-footer__links-list { - margin-bottom: 0; } - .td-footer__links-item a { - color: inherit !important; } - .td-footer__authors, .td-footer__all_rights_reserved { - padding-left: 0.25rem; } - .td-footer__all_rights_reserved { - display: none; } - -@media (min-width: 768px) { - .td-offset-anchor:target { - display: block; - position: relative; - top: -4rem; - visibility: hidden; } - h2[id]:before, [id].h2:before, - h3[id]:before, - [id].h3:before, - [id].td-footer__links-item:before, - h4[id]:before, - [id].h4:before, - h5[id]:before, - [id].h5:before { - display: block; - content: " "; - margin-top: -5rem; - height: 5rem; - visibility: hidden; } } - -/* - -Nothing defined here. The Hugo project that uses this theme can override Bootstrap by adding a file to: - -assets/scss/_styles_project.scss - -*/ - -/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/main.scss_3f90599f3717b4a4920df16fdcadce3d.json b/resources/_gen/assets/scss/main.scss_3f90599f3717b4a4920df16fdcadce3d.json deleted file mode 100644 index a8ece4a..0000000 --- a/resources/_gen/assets/scss/main.scss_3f90599f3717b4a4920df16fdcadce3d.json +++ /dev/null @@ -1 +0,0 @@ -{"Target":"/scss/main.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/resources/_gen/assets/scss/main.scss_fae17086e470d8c6ed0d487092f631b7.content b/resources/_gen/assets/scss/main.scss_fae17086e470d8c6ed0d487092f631b7.content deleted file mode 100644 index e79aaa3..0000000 --- a/resources/_gen/assets/scss/main.scss_fae17086e470d8c6ed0d487092f631b7.content +++ /dev/null @@ -1,19722 +0,0 @@ -/* - -Add styles or override variables from the theme here. - -*/ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i&display=swap"); -:root, -[data-bs-theme="light"] { - --td-pre-bg: var(--bs-tertiary-bg); } - -/*! - * Bootstrap v5.3.3 (https://getbootstrap.com/) - * Copyright 2011-2024 The Bootstrap Authors - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -:root, -[data-bs-theme="light"] { - --bs-blue: #0d6efd; - --bs-indigo: #6610f2; - --bs-purple: #6f42c1; - --bs-pink: #d63384; - --bs-red: #dc3545; - --bs-orange: #fd7e14; - --bs-yellow: #ffc107; - --bs-green: #198754; - --bs-teal: #20c997; - --bs-cyan: #0dcaf0; - --bs-black: #000; - --bs-white: #fff; - --bs-gray: #6c757d; - --bs-gray-dark: #343a40; - --bs-gray-100: #f8f9fa; - --bs-gray-200: #e9ecef; - --bs-gray-300: #dee2e6; - --bs-gray-400: #ced4da; - --bs-gray-500: #adb5bd; - --bs-gray-600: #6c757d; - --bs-gray-700: #495057; - --bs-gray-800: #343a40; - --bs-gray-900: #212529; - --bs-primary: #30638e; - --bs-secondary: #ffa630; - --bs-success: #3772ff; - --bs-info: #c0e0de; - --bs-warning: #ed6a5a; - --bs-danger: #ed6a5a; - --bs-light: #d3f3ee; - --bs-dark: #403f4c; - --bs-primary-rgb: 48, 99, 142; - --bs-secondary-rgb: 255, 166, 48; - --bs-success-rgb: 55, 114, 255; - --bs-info-rgb: 192, 224, 222; - --bs-warning-rgb: 237, 106, 90; - --bs-danger-rgb: 237, 106, 90; - --bs-light-rgb: 211, 243, 238; - --bs-dark-rgb: 64, 63, 76; - --bs-primary-text-emphasis: #132839; - --bs-secondary-text-emphasis: #664213; - --bs-success-text-emphasis: #162e66; - --bs-info-text-emphasis: #4d5a59; - --bs-warning-text-emphasis: #5f2a24; - --bs-danger-text-emphasis: #5f2a24; - --bs-light-text-emphasis: #495057; - --bs-dark-text-emphasis: #495057; - --bs-primary-bg-subtle: #d6e0e8; - --bs-secondary-bg-subtle: #ffedd6; - --bs-success-bg-subtle: #d7e3ff; - --bs-info-bg-subtle: #f2f9f8; - --bs-warning-bg-subtle: #fbe1de; - --bs-danger-bg-subtle: #fbe1de; - --bs-light-bg-subtle: #fcfcfd; - --bs-dark-bg-subtle: #ced4da; - --bs-primary-border-subtle: #acc1d2; - --bs-secondary-border-subtle: #ffdbac; - --bs-success-border-subtle: #afc7ff; - --bs-info-border-subtle: #e6f3f2; - --bs-warning-border-subtle: #f8c3bd; - --bs-danger-border-subtle: #f8c3bd; - --bs-light-border-subtle: #e9ecef; - --bs-dark-border-subtle: #adb5bd; - --bs-white-rgb: 255, 255, 255; - --bs-black-rgb: 0, 0, 0; - --bs-font-sans-serif: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); - --bs-body-font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - --bs-body-font-size: 1rem; - --bs-body-font-weight: 400; - --bs-body-line-height: 1.5; - --bs-body-color: #212529; - --bs-body-color-rgb: 33, 37, 41; - --bs-body-bg: #fff; - --bs-body-bg-rgb: 255, 255, 255; - --bs-emphasis-color: #000; - --bs-emphasis-color-rgb: 0, 0, 0; - --bs-secondary-color: rgba(33, 37, 41, 0.75); - --bs-secondary-color-rgb: 33, 37, 41; - --bs-secondary-bg: #e9ecef; - --bs-secondary-bg-rgb: 233, 236, 239; - --bs-tertiary-color: rgba(33, 37, 41, 0.5); - --bs-tertiary-color-rgb: 33, 37, 41; - --bs-tertiary-bg: #f8f9fa; - --bs-tertiary-bg-rgb: 248, 249, 250; - --bs-heading-color: inherit; - --bs-link-color: #0d6efd; - --bs-link-color-rgb: 13, 110, 253; - --bs-link-decoration: underline; - --bs-link-hover-color: #094db1; - --bs-link-hover-color-rgb: 9, 77, 177; - --bs-code-color: #99641d; - --bs-highlight-color: #212529; - --bs-highlight-bg: #fff3cd; - --bs-border-width: 1px; - --bs-border-style: solid; - --bs-border-color: #dee2e6; - --bs-border-color-translucent: rgba(0, 0, 0, 0.175); - --bs-border-radius: 0.375rem; - --bs-border-radius-sm: 0.25rem; - --bs-border-radius-lg: 0.5rem; - --bs-border-radius-xl: 1rem; - --bs-border-radius-xxl: 2rem; - --bs-border-radius-2xl: var(--bs-border-radius-xxl); - --bs-border-radius-pill: 50rem; - --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); - --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); - --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); - --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); - --bs-focus-ring-width: 0.25rem; - --bs-focus-ring-opacity: 0.25; - --bs-focus-ring-color: rgba(48, 99, 142, 0.25); - --bs-form-valid-color: #3772ff; - --bs-form-valid-border-color: #3772ff; - --bs-form-invalid-color: #ed6a5a; - --bs-form-invalid-border-color: #ed6a5a; } - -[data-bs-theme="dark"] { - color-scheme: dark; - --bs-body-color: #dee2e6; - --bs-body-color-rgb: 222, 226, 230; - --bs-body-bg: #212529; - --bs-body-bg-rgb: 33, 37, 41; - --bs-emphasis-color: #fff; - --bs-emphasis-color-rgb: 255, 255, 255; - --bs-secondary-color: rgba(222, 226, 230, 0.75); - --bs-secondary-color-rgb: 222, 226, 230; - --bs-secondary-bg: #343a40; - --bs-secondary-bg-rgb: 52, 58, 64; - --bs-tertiary-color: rgba(222, 226, 230, 0.5); - --bs-tertiary-color-rgb: 222, 226, 230; - --bs-tertiary-bg: #2b3035; - --bs-tertiary-bg-rgb: 43, 48, 53; - --bs-primary-text-emphasis: #83a1bb; - --bs-secondary-text-emphasis: #ffca83; - --bs-success-text-emphasis: #87aaff; - --bs-info-text-emphasis: #d9eceb; - --bs-warning-text-emphasis: #f4a69c; - --bs-danger-text-emphasis: #f4a69c; - --bs-light-text-emphasis: #f8f9fa; - --bs-dark-text-emphasis: #dee2e6; - --bs-primary-bg-subtle: #0a141c; - --bs-secondary-bg-subtle: #33210a; - --bs-success-bg-subtle: #0b1733; - --bs-info-bg-subtle: #262d2c; - --bs-warning-bg-subtle: #2f1512; - --bs-danger-bg-subtle: #2f1512; - --bs-light-bg-subtle: #343a40; - --bs-dark-bg-subtle: #1a1d20; - --bs-primary-border-subtle: #1d3b55; - --bs-secondary-border-subtle: #99641d; - --bs-success-border-subtle: #214499; - --bs-info-border-subtle: #738685; - --bs-warning-border-subtle: #8e4036; - --bs-danger-border-subtle: #8e4036; - --bs-light-border-subtle: #495057; - --bs-dark-border-subtle: #343a40; - --bs-heading-color: inherit; - --bs-link-color: #83a1bb; - --bs-link-hover-color: #a8bdcf; - --bs-link-color-rgb: 131, 161, 187; - --bs-link-hover-color-rgb: 168, 189, 207; - --bs-code-color: #c2a277; - --bs-highlight-color: #dee2e6; - --bs-highlight-bg: #664d03; - --bs-border-color: #495057; - --bs-border-color-translucent: rgba(255, 255, 255, 0.15); - --bs-form-valid-color: #75b798; - --bs-form-valid-border-color: #75b798; - --bs-form-invalid-color: #ea868f; - --bs-form-invalid-border-color: #ea868f; } - -*, -*::before, -*::after { - box-sizing: border-box; } - -@media (prefers-reduced-motion: no-preference) { - :root { - scroll-behavior: smooth; } } - -body { - margin: 0; - font-family: var(--bs-body-font-family); - font-size: var(--bs-body-font-size); - font-weight: var(--bs-body-font-weight); - line-height: var(--bs-body-line-height); - color: var(--bs-body-color); - text-align: var(--bs-body-text-align); - background-color: var(--bs-body-bg); - -webkit-text-size-adjust: 100%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } - -hr { - margin: 1rem 0; - color: inherit; - border: 0; - border-top: var(--bs-border-width) solid; - opacity: 0.25; } - -h6, .h6, h5, .h5, h4, .h4, h3, .h3, .td-footer__links-item, h2, .h2, h1, .h1 { - margin-top: 0; - margin-bottom: 0.5rem; - font-weight: 500; - line-height: 1.2; - color: var(--bs-heading-color); } - -h1, .h1 { - font-size: calc(1.375rem + 1.5vw); } - @media (min-width: 1200px) { - h1, .h1 { - font-size: 2.5rem; } } -h2, .h2 { - font-size: calc(1.325rem + 0.9vw); } - @media (min-width: 1200px) { - h2, .h2 { - font-size: 2rem; } } -h3, .h3, .td-footer__links-item { - font-size: calc(1.275rem + 0.3vw); } - @media (min-width: 1200px) { - h3, .h3, .td-footer__links-item { - font-size: 1.5rem; } } -h4, .h4 { - font-size: calc(1.26rem + 0.12vw); } - @media (min-width: 1200px) { - h4, .h4 { - font-size: 1.35rem; } } -h5, .h5 { - font-size: 1.15rem; } - -h6, .h6 { - font-size: 1rem; } - -p { - margin-top: 0; - margin-bottom: 1rem; } - -abbr[title] { - text-decoration: underline dotted; - cursor: help; - text-decoration-skip-ink: none; } - -address { - margin-bottom: 1rem; - font-style: normal; - line-height: inherit; } - -ol, -ul { - padding-left: 2rem; } - -ol, -ul, -dl { - margin-top: 0; - margin-bottom: 1rem; } - -ol ol, -ul ul, -ol ul, -ul ol { - margin-bottom: 0; } - -dt { - font-weight: 700; } - -dd { - margin-bottom: .5rem; - margin-left: 0; } - -blockquote { - margin: 0 0 1rem; } - -b, -strong { - font-weight: bolder; } - -small, .small, .td-footer__center, .td-cover-block > .byline { - font-size: 0.875em; } - -mark, .mark { - padding: 0.1875em; - color: var(--bs-highlight-color); - background-color: var(--bs-highlight-bg); } - -sub, -sup { - position: relative; - font-size: 0.75em; - line-height: 0; - vertical-align: baseline; } - -sub { - bottom: -.25em; } - -sup { - top: -.5em; } - -a { - color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); - text-decoration: underline; } - a:hover { - --bs-link-color-rgb: var(--bs-link-hover-color-rgb); } - -a:not([href]):not([class]), a:not([href]):not([class]):hover { - color: inherit; - text-decoration: none; } - -pre, -code, -kbd, -samp { - font-family: var(--bs-font-monospace); - font-size: 1em; } - -pre { - display: block; - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; - font-size: 0.875em; } - pre code { - font-size: inherit; - color: inherit; - word-break: normal; } - -code { - font-size: 0.875em; - color: var(--bs-code-color); - word-wrap: break-word; } - a > code { - color: inherit; } - -kbd { - padding: 0.1875rem 0.375rem; - font-size: 0.875em; - color: var(--bs-body-bg); - background-color: var(--bs-body-color); - border-radius: 0.25rem; } - kbd kbd { - padding: 0; - font-size: 1em; } - -figure { - margin: 0 0 1rem; } - -img, -svg { - vertical-align: middle; } - -table { - caption-side: bottom; - border-collapse: collapse; } - -caption { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - color: var(--bs-secondary-color); - text-align: left; } - -th { - text-align: inherit; - text-align: -webkit-match-parent; } - -thead, -tbody, -tfoot, -tr, -td, -th { - border-color: inherit; - border-style: solid; - border-width: 0; } - -label { - display: inline-block; } - -button { - border-radius: 0; } - -button:focus:not(:focus-visible) { - outline: 0; } - -input, -button, -select, -optgroup, -textarea { - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; } - -button, -select { - text-transform: none; } - -[role="button"] { - cursor: pointer; } - -select { - word-wrap: normal; } - select:disabled { - opacity: 1; } - -[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator { - display: none !important; } - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; } - button:not(:disabled), - [type="button"]:not(:disabled), - [type="reset"]:not(:disabled), - [type="submit"]:not(:disabled) { - cursor: pointer; } - -::-moz-focus-inner { - padding: 0; - border-style: none; } - -textarea { - resize: vertical; } - -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; } - -legend { - float: left; - width: 100%; - padding: 0; - margin-bottom: 0.5rem; - font-size: calc(1.275rem + 0.3vw); - line-height: inherit; } - @media (min-width: 1200px) { - legend { - font-size: 1.5rem; } } - legend + * { - clear: left; } - -::-webkit-datetime-edit-fields-wrapper, -::-webkit-datetime-edit-text, -::-webkit-datetime-edit-minute, -::-webkit-datetime-edit-hour-field, -::-webkit-datetime-edit-day-field, -::-webkit-datetime-edit-month-field, -::-webkit-datetime-edit-year-field { - padding: 0; } - -::-webkit-inner-spin-button { - height: auto; } - -[type="search"] { - -webkit-appearance: textfield; - outline-offset: -2px; } - -/* rtl:raw: -[type="tel"], -[type="url"], -[type="email"], -[type="number"] { - direction: ltr; -} -*/ -::-webkit-search-decoration { - -webkit-appearance: none; } - -::-webkit-color-swatch-wrapper { - padding: 0; } - -::file-selector-button { - font: inherit; - -webkit-appearance: button; } - -output { - display: inline-block; } - -iframe { - border: 0; } - -summary { - display: list-item; - cursor: pointer; } - -progress { - vertical-align: baseline; } - -[hidden] { - display: none !important; } - -.lead { - font-size: 1.25rem; - font-weight: 300; } - -.display-1 { - font-size: calc(1.625rem + 4.5vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-1 { - font-size: 5rem; } } -.display-2 { - font-size: calc(1.575rem + 3.9vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-2 { - font-size: 4.5rem; } } -.display-3 { - font-size: calc(1.525rem + 3.3vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-3 { - font-size: 4rem; } } -.display-4 { - font-size: calc(1.475rem + 2.7vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-4 { - font-size: 3.5rem; } } -.display-5 { - font-size: calc(1.425rem + 2.1vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-5 { - font-size: 3rem; } } -.display-6 { - font-size: calc(1.375rem + 1.5vw); - font-weight: 300; - line-height: 1.2; } - @media (min-width: 1200px) { - .display-6 { - font-size: 2.5rem; } } -.list-unstyled, .td-blog-posts-list { - padding-left: 0; - list-style: none; } - -.list-inline, .td-footer__links-list { - padding-left: 0; - list-style: none; } - -.list-inline-item, .td-footer__links-item { - display: inline-block; } - .list-inline-item:not(:last-child), .td-footer__links-item:not(:last-child) { - margin-right: 1rem; } - -.initialism { - font-size: 0.875em; - text-transform: uppercase; } - -.blockquote { - margin-bottom: 1rem; - font-size: 1.25rem; } - .blockquote > :last-child { - margin-bottom: 0; } - -.blockquote-footer { - margin-top: -1rem; - margin-bottom: 1rem; - font-size: 0.875em; - color: #6c757d; } - .blockquote-footer::before { - content: "\2014\00A0"; } - -.img-fluid, .td-content img { - max-width: 100%; - height: auto; } - -.img-thumbnail { - padding: 0.25rem; - background-color: var(--bs-body-bg); - border: var(--bs-border-width) solid var(--bs-border-color); - border-radius: var(--bs-border-radius); - box-shadow: var(--bs-box-shadow-sm); - max-width: 100%; - height: auto; } - -.figure { - display: inline-block; } - -.figure-img { - margin-bottom: 0.5rem; - line-height: 1; } - -.figure-caption { - font-size: 0.875em; - color: var(--bs-secondary-color); } - -.container, -.container-fluid, -.container-xxl, -.container-xl, -.container-lg, -.container-md, -.container-sm { - --bs-gutter-x: 1.5rem; - --bs-gutter-y: 0; - width: 100%; - padding-right: calc(var(--bs-gutter-x) * .5); - padding-left: calc(var(--bs-gutter-x) * .5); - margin-right: auto; - margin-left: auto; } - -@media (min-width: 576px) { - .container-sm, .container { - max-width: 540px; } } - -@media (min-width: 768px) { - .container-md, .container-sm, .container { - max-width: 720px; } } - -@media (min-width: 992px) { - .container-lg, .container-md, .container-sm, .container { - max-width: 960px; } } - -@media (min-width: 1200px) { - .container-xl, .container-lg, .container-md, .container-sm, .container { - max-width: 1140px; } } - -@media (min-width: 1400px) { - .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { - max-width: 1320px; } } - -:root { - --bs-breakpoint-xs: 0; - --bs-breakpoint-sm: 576px; - --bs-breakpoint-md: 768px; - --bs-breakpoint-lg: 992px; - --bs-breakpoint-xl: 1200px; - --bs-breakpoint-xxl: 1400px; } - -.row { - --bs-gutter-x: 1.5rem; - --bs-gutter-y: 0; - display: flex; - flex-wrap: wrap; - margin-top: calc(-1 * var(--bs-gutter-y)); - margin-right: calc(-.5 * var(--bs-gutter-x)); - margin-left: calc(-.5 * var(--bs-gutter-x)); } - .row > * { - flex-shrink: 0; - width: 100%; - max-width: 100%; - padding-right: calc(var(--bs-gutter-x) * .5); - padding-left: calc(var(--bs-gutter-x) * .5); - margin-top: var(--bs-gutter-y); } - -.col { - flex: 1 0 0%; } - -.row-cols-auto > * { - flex: 0 0 auto; - width: auto; } - -.row-cols-1 > * { - flex: 0 0 auto; - width: 100%; } - -.row-cols-2 > * { - flex: 0 0 auto; - width: 50%; } - -.row-cols-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - -.row-cols-4 > * { - flex: 0 0 auto; - width: 25%; } - -.row-cols-5 > * { - flex: 0 0 auto; - width: 20%; } - -.row-cols-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - -.col-auto { - flex: 0 0 auto; - width: auto; } - -.col-1 { - flex: 0 0 auto; - width: 8.33333333%; } - -.col-2 { - flex: 0 0 auto; - width: 16.66666667%; } - -.col-3 { - flex: 0 0 auto; - width: 25%; } - -.col-4 { - flex: 0 0 auto; - width: 33.33333333%; } - -.col-5 { - flex: 0 0 auto; - width: 41.66666667%; } - -.col-6 { - flex: 0 0 auto; - width: 50%; } - -.col-7 { - flex: 0 0 auto; - width: 58.33333333%; } - -.col-8 { - flex: 0 0 auto; - width: 66.66666667%; } - -.col-9 { - flex: 0 0 auto; - width: 75%; } - -.col-10 { - flex: 0 0 auto; - width: 83.33333333%; } - -.col-11 { - flex: 0 0 auto; - width: 91.66666667%; } - -.col-12 { - flex: 0 0 auto; - width: 100%; } - -.offset-1 { - margin-left: 8.33333333%; } - -.offset-2 { - margin-left: 16.66666667%; } - -.offset-3 { - margin-left: 25%; } - -.offset-4 { - margin-left: 33.33333333%; } - -.offset-5 { - margin-left: 41.66666667%; } - -.offset-6 { - margin-left: 50%; } - -.offset-7 { - margin-left: 58.33333333%; } - -.offset-8 { - margin-left: 66.66666667%; } - -.offset-9 { - margin-left: 75%; } - -.offset-10 { - margin-left: 83.33333333%; } - -.offset-11 { - margin-left: 91.66666667%; } - -.g-0, -.gx-0 { - --bs-gutter-x: 0; } - -.g-0, -.gy-0 { - --bs-gutter-y: 0; } - -.g-1, -.gx-1 { - --bs-gutter-x: 0.25rem; } - -.g-1, -.gy-1 { - --bs-gutter-y: 0.25rem; } - -.g-2, -.gx-2 { - --bs-gutter-x: 0.5rem; } - -.g-2, -.gy-2 { - --bs-gutter-y: 0.5rem; } - -.g-3, -.gx-3 { - --bs-gutter-x: 1rem; } - -.g-3, -.gy-3 { - --bs-gutter-y: 1rem; } - -.g-4, -.gx-4 { - --bs-gutter-x: 1.5rem; } - -.g-4, -.gy-4 { - --bs-gutter-y: 1.5rem; } - -.g-5, -.gx-5 { - --bs-gutter-x: 3rem; } - -.g-5, -.gy-5 { - --bs-gutter-y: 3rem; } - -@media (min-width: 576px) { - .col-sm { - flex: 1 0 0%; } - .row-cols-sm-auto > * { - flex: 0 0 auto; - width: auto; } - .row-cols-sm-1 > * { - flex: 0 0 auto; - width: 100%; } - .row-cols-sm-2 > * { - flex: 0 0 auto; - width: 50%; } - .row-cols-sm-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - .row-cols-sm-4 > * { - flex: 0 0 auto; - width: 25%; } - .row-cols-sm-5 > * { - flex: 0 0 auto; - width: 20%; } - .row-cols-sm-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - .col-sm-auto { - flex: 0 0 auto; - width: auto; } - .col-sm-1 { - flex: 0 0 auto; - width: 8.33333333%; } - .col-sm-2 { - flex: 0 0 auto; - width: 16.66666667%; } - .col-sm-3 { - flex: 0 0 auto; - width: 25%; } - .col-sm-4 { - flex: 0 0 auto; - width: 33.33333333%; } - .col-sm-5 { - flex: 0 0 auto; - width: 41.66666667%; } - .col-sm-6 { - flex: 0 0 auto; - width: 50%; } - .col-sm-7 { - flex: 0 0 auto; - width: 58.33333333%; } - .col-sm-8 { - flex: 0 0 auto; - width: 66.66666667%; } - .col-sm-9 { - flex: 0 0 auto; - width: 75%; } - .col-sm-10 { - flex: 0 0 auto; - width: 83.33333333%; } - .col-sm-11 { - flex: 0 0 auto; - width: 91.66666667%; } - .col-sm-12 { - flex: 0 0 auto; - width: 100%; } - .offset-sm-0 { - margin-left: 0; } - .offset-sm-1 { - margin-left: 8.33333333%; } - .offset-sm-2 { - margin-left: 16.66666667%; } - .offset-sm-3 { - margin-left: 25%; } - .offset-sm-4 { - margin-left: 33.33333333%; } - .offset-sm-5 { - margin-left: 41.66666667%; } - .offset-sm-6 { - margin-left: 50%; } - .offset-sm-7 { - margin-left: 58.33333333%; } - .offset-sm-8 { - margin-left: 66.66666667%; } - .offset-sm-9 { - margin-left: 75%; } - .offset-sm-10 { - margin-left: 83.33333333%; } - .offset-sm-11 { - margin-left: 91.66666667%; } - .g-sm-0, - .gx-sm-0 { - --bs-gutter-x: 0; } - .g-sm-0, - .gy-sm-0 { - --bs-gutter-y: 0; } - .g-sm-1, - .gx-sm-1 { - --bs-gutter-x: 0.25rem; } - .g-sm-1, - .gy-sm-1 { - --bs-gutter-y: 0.25rem; } - .g-sm-2, - .gx-sm-2 { - --bs-gutter-x: 0.5rem; } - .g-sm-2, - .gy-sm-2 { - --bs-gutter-y: 0.5rem; } - .g-sm-3, - .gx-sm-3 { - --bs-gutter-x: 1rem; } - .g-sm-3, - .gy-sm-3 { - --bs-gutter-y: 1rem; } - .g-sm-4, - .gx-sm-4 { - --bs-gutter-x: 1.5rem; } - .g-sm-4, - .gy-sm-4 { - --bs-gutter-y: 1.5rem; } - .g-sm-5, - .gx-sm-5 { - --bs-gutter-x: 3rem; } - .g-sm-5, - .gy-sm-5 { - --bs-gutter-y: 3rem; } } - -@media (min-width: 768px) { - .col-md { - flex: 1 0 0%; } - .row-cols-md-auto > * { - flex: 0 0 auto; - width: auto; } - .row-cols-md-1 > * { - flex: 0 0 auto; - width: 100%; } - .row-cols-md-2 > * { - flex: 0 0 auto; - width: 50%; } - .row-cols-md-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - .row-cols-md-4 > * { - flex: 0 0 auto; - width: 25%; } - .row-cols-md-5 > * { - flex: 0 0 auto; - width: 20%; } - .row-cols-md-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - .col-md-auto { - flex: 0 0 auto; - width: auto; } - .col-md-1 { - flex: 0 0 auto; - width: 8.33333333%; } - .col-md-2 { - flex: 0 0 auto; - width: 16.66666667%; } - .col-md-3 { - flex: 0 0 auto; - width: 25%; } - .col-md-4 { - flex: 0 0 auto; - width: 33.33333333%; } - .col-md-5 { - flex: 0 0 auto; - width: 41.66666667%; } - .col-md-6 { - flex: 0 0 auto; - width: 50%; } - .col-md-7 { - flex: 0 0 auto; - width: 58.33333333%; } - .col-md-8 { - flex: 0 0 auto; - width: 66.66666667%; } - .col-md-9 { - flex: 0 0 auto; - width: 75%; } - .col-md-10 { - flex: 0 0 auto; - width: 83.33333333%; } - .col-md-11 { - flex: 0 0 auto; - width: 91.66666667%; } - .col-md-12 { - flex: 0 0 auto; - width: 100%; } - .offset-md-0 { - margin-left: 0; } - .offset-md-1 { - margin-left: 8.33333333%; } - .offset-md-2 { - margin-left: 16.66666667%; } - .offset-md-3 { - margin-left: 25%; } - .offset-md-4 { - margin-left: 33.33333333%; } - .offset-md-5 { - margin-left: 41.66666667%; } - .offset-md-6 { - margin-left: 50%; } - .offset-md-7 { - margin-left: 58.33333333%; } - .offset-md-8 { - margin-left: 66.66666667%; } - .offset-md-9 { - margin-left: 75%; } - .offset-md-10 { - margin-left: 83.33333333%; } - .offset-md-11 { - margin-left: 91.66666667%; } - .g-md-0, - .gx-md-0 { - --bs-gutter-x: 0; } - .g-md-0, - .gy-md-0 { - --bs-gutter-y: 0; } - .g-md-1, - .gx-md-1 { - --bs-gutter-x: 0.25rem; } - .g-md-1, - .gy-md-1 { - --bs-gutter-y: 0.25rem; } - .g-md-2, - .gx-md-2 { - --bs-gutter-x: 0.5rem; } - .g-md-2, - .gy-md-2 { - --bs-gutter-y: 0.5rem; } - .g-md-3, - .gx-md-3 { - --bs-gutter-x: 1rem; } - .g-md-3, - .gy-md-3 { - --bs-gutter-y: 1rem; } - .g-md-4, - .gx-md-4 { - --bs-gutter-x: 1.5rem; } - .g-md-4, - .gy-md-4 { - --bs-gutter-y: 1.5rem; } - .g-md-5, - .gx-md-5 { - --bs-gutter-x: 3rem; } - .g-md-5, - .gy-md-5 { - --bs-gutter-y: 3rem; } } - -@media (min-width: 992px) { - .col-lg { - flex: 1 0 0%; } - .row-cols-lg-auto > * { - flex: 0 0 auto; - width: auto; } - .row-cols-lg-1 > * { - flex: 0 0 auto; - width: 100%; } - .row-cols-lg-2 > * { - flex: 0 0 auto; - width: 50%; } - .row-cols-lg-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - .row-cols-lg-4 > * { - flex: 0 0 auto; - width: 25%; } - .row-cols-lg-5 > * { - flex: 0 0 auto; - width: 20%; } - .row-cols-lg-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - .col-lg-auto { - flex: 0 0 auto; - width: auto; } - .col-lg-1 { - flex: 0 0 auto; - width: 8.33333333%; } - .col-lg-2 { - flex: 0 0 auto; - width: 16.66666667%; } - .col-lg-3 { - flex: 0 0 auto; - width: 25%; } - .col-lg-4 { - flex: 0 0 auto; - width: 33.33333333%; } - .col-lg-5 { - flex: 0 0 auto; - width: 41.66666667%; } - .col-lg-6 { - flex: 0 0 auto; - width: 50%; } - .col-lg-7 { - flex: 0 0 auto; - width: 58.33333333%; } - .col-lg-8 { - flex: 0 0 auto; - width: 66.66666667%; } - .col-lg-9 { - flex: 0 0 auto; - width: 75%; } - .col-lg-10 { - flex: 0 0 auto; - width: 83.33333333%; } - .col-lg-11 { - flex: 0 0 auto; - width: 91.66666667%; } - .col-lg-12 { - flex: 0 0 auto; - width: 100%; } - .offset-lg-0 { - margin-left: 0; } - .offset-lg-1 { - margin-left: 8.33333333%; } - .offset-lg-2 { - margin-left: 16.66666667%; } - .offset-lg-3 { - margin-left: 25%; } - .offset-lg-4 { - margin-left: 33.33333333%; } - .offset-lg-5 { - margin-left: 41.66666667%; } - .offset-lg-6 { - margin-left: 50%; } - .offset-lg-7 { - margin-left: 58.33333333%; } - .offset-lg-8 { - margin-left: 66.66666667%; } - .offset-lg-9 { - margin-left: 75%; } - .offset-lg-10 { - margin-left: 83.33333333%; } - .offset-lg-11 { - margin-left: 91.66666667%; } - .g-lg-0, - .gx-lg-0 { - --bs-gutter-x: 0; } - .g-lg-0, - .gy-lg-0 { - --bs-gutter-y: 0; } - .g-lg-1, - .gx-lg-1 { - --bs-gutter-x: 0.25rem; } - .g-lg-1, - .gy-lg-1 { - --bs-gutter-y: 0.25rem; } - .g-lg-2, - .gx-lg-2 { - --bs-gutter-x: 0.5rem; } - .g-lg-2, - .gy-lg-2 { - --bs-gutter-y: 0.5rem; } - .g-lg-3, - .gx-lg-3 { - --bs-gutter-x: 1rem; } - .g-lg-3, - .gy-lg-3 { - --bs-gutter-y: 1rem; } - .g-lg-4, - .gx-lg-4 { - --bs-gutter-x: 1.5rem; } - .g-lg-4, - .gy-lg-4 { - --bs-gutter-y: 1.5rem; } - .g-lg-5, - .gx-lg-5 { - --bs-gutter-x: 3rem; } - .g-lg-5, - .gy-lg-5 { - --bs-gutter-y: 3rem; } } - -@media (min-width: 1200px) { - .col-xl { - flex: 1 0 0%; } - .row-cols-xl-auto > * { - flex: 0 0 auto; - width: auto; } - .row-cols-xl-1 > * { - flex: 0 0 auto; - width: 100%; } - .row-cols-xl-2 > * { - flex: 0 0 auto; - width: 50%; } - .row-cols-xl-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - .row-cols-xl-4 > * { - flex: 0 0 auto; - width: 25%; } - .row-cols-xl-5 > * { - flex: 0 0 auto; - width: 20%; } - .row-cols-xl-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - .col-xl-auto { - flex: 0 0 auto; - width: auto; } - .col-xl-1 { - flex: 0 0 auto; - width: 8.33333333%; } - .col-xl-2 { - flex: 0 0 auto; - width: 16.66666667%; } - .col-xl-3 { - flex: 0 0 auto; - width: 25%; } - .col-xl-4 { - flex: 0 0 auto; - width: 33.33333333%; } - .col-xl-5 { - flex: 0 0 auto; - width: 41.66666667%; } - .col-xl-6 { - flex: 0 0 auto; - width: 50%; } - .col-xl-7 { - flex: 0 0 auto; - width: 58.33333333%; } - .col-xl-8 { - flex: 0 0 auto; - width: 66.66666667%; } - .col-xl-9 { - flex: 0 0 auto; - width: 75%; } - .col-xl-10 { - flex: 0 0 auto; - width: 83.33333333%; } - .col-xl-11 { - flex: 0 0 auto; - width: 91.66666667%; } - .col-xl-12 { - flex: 0 0 auto; - width: 100%; } - .offset-xl-0 { - margin-left: 0; } - .offset-xl-1 { - margin-left: 8.33333333%; } - .offset-xl-2 { - margin-left: 16.66666667%; } - .offset-xl-3 { - margin-left: 25%; } - .offset-xl-4 { - margin-left: 33.33333333%; } - .offset-xl-5 { - margin-left: 41.66666667%; } - .offset-xl-6 { - margin-left: 50%; } - .offset-xl-7 { - margin-left: 58.33333333%; } - .offset-xl-8 { - margin-left: 66.66666667%; } - .offset-xl-9 { - margin-left: 75%; } - .offset-xl-10 { - margin-left: 83.33333333%; } - .offset-xl-11 { - margin-left: 91.66666667%; } - .g-xl-0, - .gx-xl-0 { - --bs-gutter-x: 0; } - .g-xl-0, - .gy-xl-0 { - --bs-gutter-y: 0; } - .g-xl-1, - .gx-xl-1 { - --bs-gutter-x: 0.25rem; } - .g-xl-1, - .gy-xl-1 { - --bs-gutter-y: 0.25rem; } - .g-xl-2, - .gx-xl-2 { - --bs-gutter-x: 0.5rem; } - .g-xl-2, - .gy-xl-2 { - --bs-gutter-y: 0.5rem; } - .g-xl-3, - .gx-xl-3 { - --bs-gutter-x: 1rem; } - .g-xl-3, - .gy-xl-3 { - --bs-gutter-y: 1rem; } - .g-xl-4, - .gx-xl-4 { - --bs-gutter-x: 1.5rem; } - .g-xl-4, - .gy-xl-4 { - --bs-gutter-y: 1.5rem; } - .g-xl-5, - .gx-xl-5 { - --bs-gutter-x: 3rem; } - .g-xl-5, - .gy-xl-5 { - --bs-gutter-y: 3rem; } } - -@media (min-width: 1400px) { - .col-xxl { - flex: 1 0 0%; } - .row-cols-xxl-auto > * { - flex: 0 0 auto; - width: auto; } - .row-cols-xxl-1 > * { - flex: 0 0 auto; - width: 100%; } - .row-cols-xxl-2 > * { - flex: 0 0 auto; - width: 50%; } - .row-cols-xxl-3 > * { - flex: 0 0 auto; - width: 33.33333333%; } - .row-cols-xxl-4 > * { - flex: 0 0 auto; - width: 25%; } - .row-cols-xxl-5 > * { - flex: 0 0 auto; - width: 20%; } - .row-cols-xxl-6 > * { - flex: 0 0 auto; - width: 16.66666667%; } - .col-xxl-auto { - flex: 0 0 auto; - width: auto; } - .col-xxl-1 { - flex: 0 0 auto; - width: 8.33333333%; } - .col-xxl-2 { - flex: 0 0 auto; - width: 16.66666667%; } - .col-xxl-3 { - flex: 0 0 auto; - width: 25%; } - .col-xxl-4 { - flex: 0 0 auto; - width: 33.33333333%; } - .col-xxl-5 { - flex: 0 0 auto; - width: 41.66666667%; } - .col-xxl-6 { - flex: 0 0 auto; - width: 50%; } - .col-xxl-7 { - flex: 0 0 auto; - width: 58.33333333%; } - .col-xxl-8 { - flex: 0 0 auto; - width: 66.66666667%; } - .col-xxl-9 { - flex: 0 0 auto; - width: 75%; } - .col-xxl-10 { - flex: 0 0 auto; - width: 83.33333333%; } - .col-xxl-11 { - flex: 0 0 auto; - width: 91.66666667%; } - .col-xxl-12 { - flex: 0 0 auto; - width: 100%; } - .offset-xxl-0 { - margin-left: 0; } - .offset-xxl-1 { - margin-left: 8.33333333%; } - .offset-xxl-2 { - margin-left: 16.66666667%; } - .offset-xxl-3 { - margin-left: 25%; } - .offset-xxl-4 { - margin-left: 33.33333333%; } - .offset-xxl-5 { - margin-left: 41.66666667%; } - .offset-xxl-6 { - margin-left: 50%; } - .offset-xxl-7 { - margin-left: 58.33333333%; } - .offset-xxl-8 { - margin-left: 66.66666667%; } - .offset-xxl-9 { - margin-left: 75%; } - .offset-xxl-10 { - margin-left: 83.33333333%; } - .offset-xxl-11 { - margin-left: 91.66666667%; } - .g-xxl-0, - .gx-xxl-0 { - --bs-gutter-x: 0; } - .g-xxl-0, - .gy-xxl-0 { - --bs-gutter-y: 0; } - .g-xxl-1, - .gx-xxl-1 { - --bs-gutter-x: 0.25rem; } - .g-xxl-1, - .gy-xxl-1 { - --bs-gutter-y: 0.25rem; } - .g-xxl-2, - .gx-xxl-2 { - --bs-gutter-x: 0.5rem; } - .g-xxl-2, - .gy-xxl-2 { - --bs-gutter-y: 0.5rem; } - .g-xxl-3, - .gx-xxl-3 { - --bs-gutter-x: 1rem; } - .g-xxl-3, - .gy-xxl-3 { - --bs-gutter-y: 1rem; } - .g-xxl-4, - .gx-xxl-4 { - --bs-gutter-x: 1.5rem; } - .g-xxl-4, - .gy-xxl-4 { - --bs-gutter-y: 1.5rem; } - .g-xxl-5, - .gx-xxl-5 { - --bs-gutter-x: 3rem; } - .g-xxl-5, - .gy-xxl-5 { - --bs-gutter-y: 3rem; } } - -.table, .td-table:not(.td-initial), .td-content table:not(.td-initial), .td-box table:not(.td-initial) { - --bs-table-color-type: initial; - --bs-table-bg-type: initial; - --bs-table-color-state: initial; - --bs-table-bg-state: initial; - --bs-table-color: var(--bs-emphasis-color); - --bs-table-bg: var(--bs-body-bg); - --bs-table-border-color: var(--bs-border-color); - --bs-table-accent-bg: transparent; - --bs-table-striped-color: var(--bs-emphasis-color); - --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05); - --bs-table-active-color: var(--bs-emphasis-color); - --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1); - --bs-table-hover-color: var(--bs-emphasis-color); - --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075); - width: 100%; - margin-bottom: 1rem; - vertical-align: top; - border-color: var(--bs-table-border-color); } - .table > :not(caption) > * > *, .td-table:not(.td-initial) > :not(caption) > * > *, .td-content table:not(.td-initial) > :not(caption) > * > *, .td-box table:not(.td-initial) > :not(caption) > * > * { - padding: 0.5rem 0.5rem; - color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color))); - background-color: var(--bs-table-bg); - border-bottom-width: var(--bs-border-width); - box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))); } - .table > tbody, .td-table:not(.td-initial) > tbody, .td-content table:not(.td-initial) > tbody, .td-box table:not(.td-initial) > tbody { - vertical-align: inherit; } - .table > thead, .td-table:not(.td-initial) > thead, .td-content table:not(.td-initial) > thead, .td-box table:not(.td-initial) > thead { - vertical-align: bottom; } - -.table-group-divider { - border-top: calc(var(--bs-border-width) * 2) solid currentcolor; } - -.caption-top { - caption-side: top; } - -.table-sm > :not(caption) > * > * { - padding: 0.25rem 0.25rem; } - -.table-bordered > :not(caption) > * { - border-width: var(--bs-border-width) 0; } - .table-bordered > :not(caption) > * > * { - border-width: 0 var(--bs-border-width); } - -.table-borderless > :not(caption) > * > * { - border-bottom-width: 0; } - -.table-borderless > :not(:first-child) { - border-top-width: 0; } - -.table-striped > tbody > tr:nth-of-type(odd) > *, .td-table:not(.td-initial) > tbody > tr:nth-of-type(odd) > *, .td-content table:not(.td-initial) > tbody > tr:nth-of-type(odd) > *, .td-box table:not(.td-initial) > tbody > tr:nth-of-type(odd) > * { - --bs-table-color-type: var(--bs-table-striped-color); - --bs-table-bg-type: var(--bs-table-striped-bg); } - -.table-striped-columns > :not(caption) > tr > :nth-child(even) { - --bs-table-color-type: var(--bs-table-striped-color); - --bs-table-bg-type: var(--bs-table-striped-bg); } - -.table-active { - --bs-table-color-state: var(--bs-table-active-color); - --bs-table-bg-state: var(--bs-table-active-bg); } - -.table-hover > tbody > tr:hover > * { - --bs-table-color-state: var(--bs-table-hover-color); - --bs-table-bg-state: var(--bs-table-hover-bg); } - -.table-primary { - --bs-table-color: #000; - --bs-table-bg: #d6e0e8; - --bs-table-border-color: #abb3ba; - --bs-table-striped-bg: #cbd5dc; - --bs-table-striped-color: #000; - --bs-table-active-bg: #c1cad1; - --bs-table-active-color: #000; - --bs-table-hover-bg: #c6cfd7; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-secondary { - --bs-table-color: #000; - --bs-table-bg: #ffedd6; - --bs-table-border-color: #ccbeab; - --bs-table-striped-bg: #f2e1cb; - --bs-table-striped-color: #000; - --bs-table-active-bg: #e6d5c1; - --bs-table-active-color: #000; - --bs-table-hover-bg: #ecdbc6; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-success { - --bs-table-color: #000; - --bs-table-bg: #d7e3ff; - --bs-table-border-color: #acb6cc; - --bs-table-striped-bg: #ccd8f2; - --bs-table-striped-color: #000; - --bs-table-active-bg: #c2cce6; - --bs-table-active-color: #000; - --bs-table-hover-bg: #c7d2ec; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-info { - --bs-table-color: #000; - --bs-table-bg: #f2f9f8; - --bs-table-border-color: #c2c7c6; - --bs-table-striped-bg: #e6edec; - --bs-table-striped-color: #000; - --bs-table-active-bg: #dae0df; - --bs-table-active-color: #000; - --bs-table-hover-bg: #e0e6e5; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-warning { - --bs-table-color: #000; - --bs-table-bg: #fbe1de; - --bs-table-border-color: #c9b4b2; - --bs-table-striped-bg: #eed6d3; - --bs-table-striped-color: #000; - --bs-table-active-bg: #e2cbc8; - --bs-table-active-color: #000; - --bs-table-hover-bg: #e8d0cd; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-danger { - --bs-table-color: #000; - --bs-table-bg: #fbe1de; - --bs-table-border-color: #c9b4b2; - --bs-table-striped-bg: #eed6d3; - --bs-table-striped-color: #000; - --bs-table-active-bg: #e2cbc8; - --bs-table-active-color: #000; - --bs-table-hover-bg: #e8d0cd; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-light { - --bs-table-color: #000; - --bs-table-bg: #d3f3ee; - --bs-table-border-color: #a9c2be; - --bs-table-striped-bg: #c8e7e2; - --bs-table-striped-color: #000; - --bs-table-active-bg: #bedbd6; - --bs-table-active-color: #000; - --bs-table-hover-bg: #c3e1dc; - --bs-table-hover-color: #000; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-dark { - --bs-table-color: #fff; - --bs-table-bg: #403f4c; - --bs-table-border-color: #666570; - --bs-table-striped-bg: #4a4955; - --bs-table-striped-color: #fff; - --bs-table-active-bg: #53525e; - --bs-table-active-color: #fff; - --bs-table-hover-bg: #4e4d59; - --bs-table-hover-color: #fff; - color: var(--bs-table-color); - border-color: var(--bs-table-border-color); } - -.table-responsive, .td-table:not(.td-initial), .td-content table:not(.td-initial), .td-box table:not(.td-initial) { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } - -@media (max-width: 575.98px) { - .table-responsive-sm { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } } - -@media (max-width: 767.98px) { - .table-responsive-md { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } } - -@media (max-width: 991.98px) { - .table-responsive-lg { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } } - -@media (max-width: 1199.98px) { - .table-responsive-xl { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } } - -@media (max-width: 1399.98px) { - .table-responsive-xxl { - overflow-x: auto; - -webkit-overflow-scrolling: touch; } } - -.form-label { - margin-bottom: 0.5rem; } - -.col-form-label { - padding-top: calc(0.375rem + var(--bs-border-width)); - padding-bottom: calc(0.375rem + var(--bs-border-width)); - margin-bottom: 0; - font-size: inherit; - line-height: 1.5; } - -.col-form-label-lg { - padding-top: calc(0.5rem + var(--bs-border-width)); - padding-bottom: calc(0.5rem + var(--bs-border-width)); - font-size: 1.25rem; } - -.col-form-label-sm { - padding-top: calc(0.25rem + var(--bs-border-width)); - padding-bottom: calc(0.25rem + var(--bs-border-width)); - font-size: 0.875rem; } - -.form-text { - margin-top: 0.25rem; - font-size: 0.875em; - color: var(--bs-secondary-color); } - -.form-control { - display: block; - width: 100%; - padding: 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: var(--bs-body-color); - appearance: none; - background-color: var(--bs-body-bg); - background-clip: padding-box; - border: var(--bs-border-width) solid var(--bs-border-color); - border-radius: var(--bs-border-radius); - box-shadow: var(--bs-box-shadow-inset); - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-control { - transition: none; } } - .form-control[type="file"] { - overflow: hidden; } - .form-control[type="file"]:not(:disabled):not([readonly]) { - cursor: pointer; } - .form-control:focus { - color: var(--bs-body-color); - background-color: var(--bs-body-bg); - border-color: #98b1c7; - outline: 0; - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .form-control::-webkit-date-and-time-value { - min-width: 85px; - height: 1.5em; - margin: 0; } - .form-control::-webkit-datetime-edit { - display: block; - padding: 0; } - .form-control::placeholder { - color: var(--bs-secondary-color); - opacity: 1; } - .form-control:disabled { - background-color: var(--bs-secondary-bg); - opacity: 1; } - .form-control::file-selector-button { - padding: 0.375rem 0.75rem; - margin: -0.375rem -0.75rem; - margin-inline-end: 0.75rem; - color: var(--bs-body-color); - background-color: var(--bs-tertiary-bg); - background-image: var(--bs-gradient); - pointer-events: none; - border-color: inherit; - border-style: solid; - border-width: 0; - border-inline-end-width: var(--bs-border-width); - border-radius: 0; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-control::file-selector-button { - transition: none; } } - .form-control:hover:not(:disabled):not([readonly])::file-selector-button { - background-color: var(--bs-secondary-bg); } - -.form-control-plaintext { - display: block; - width: 100%; - padding: 0.375rem 0; - margin-bottom: 0; - line-height: 1.5; - color: var(--bs-body-color); - background-color: transparent; - border: solid transparent; - border-width: var(--bs-border-width) 0; } - .form-control-plaintext:focus { - outline: 0; } - .form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { - padding-right: 0; - padding-left: 0; } - -.form-control-sm { - min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - border-radius: var(--bs-border-radius-sm); } - .form-control-sm::file-selector-button { - padding: 0.25rem 0.5rem; - margin: -0.25rem -0.5rem; - margin-inline-end: 0.5rem; } - -.form-control-lg { - min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); - padding: 0.5rem 1rem; - font-size: 1.25rem; - border-radius: var(--bs-border-radius-lg); } - .form-control-lg::file-selector-button { - padding: 0.5rem 1rem; - margin: -0.5rem -1rem; - margin-inline-end: 1rem; } - -textarea.form-control { - min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); } - -textarea.form-control-sm { - min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); } - -textarea.form-control-lg { - min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); } - -.form-control-color { - width: 3rem; - height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); - padding: 0.375rem; } - .form-control-color:not(:disabled):not([readonly]) { - cursor: pointer; } - .form-control-color::-moz-color-swatch { - border: 0 !important; - border-radius: var(--bs-border-radius); } - .form-control-color::-webkit-color-swatch { - border: 0 !important; - border-radius: var(--bs-border-radius); } - .form-control-color.form-control-sm { - height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); } - .form-control-color.form-control-lg { - height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); } - -.form-select { - --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); - display: block; - width: 100%; - padding: 0.375rem 2.25rem 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: var(--bs-body-color); - appearance: none; - background-color: var(--bs-body-bg); - background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none); - background-repeat: no-repeat; - background-position: right 0.75rem center; - background-size: 16px 12px; - border: var(--bs-border-width) solid var(--bs-border-color); - border-radius: var(--bs-border-radius); - box-shadow: var(--bs-box-shadow-inset); - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-select { - transition: none; } } - .form-select:focus { - border-color: #98b1c7; - outline: 0; - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .form-select[multiple], .form-select[size]:not([size="1"]) { - padding-right: 0.75rem; - background-image: none; } - .form-select:disabled { - background-color: var(--bs-secondary-bg); } - .form-select:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 var(--bs-body-color); } - -.form-select-sm { - padding-top: 0.25rem; - padding-bottom: 0.25rem; - padding-left: 0.5rem; - font-size: 0.875rem; - border-radius: var(--bs-border-radius-sm); } - -.form-select-lg { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - padding-left: 1rem; - font-size: 1.25rem; - border-radius: var(--bs-border-radius-lg); } - -[data-bs-theme="dark"] .form-select { - --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); } - -.form-check { - display: block; - min-height: 1.5rem; - padding-left: 1.5em; - margin-bottom: 0.125rem; } - .form-check .form-check-input { - float: left; - margin-left: -1.5em; } - -.form-check-reverse { - padding-right: 1.5em; - padding-left: 0; - text-align: right; } - .form-check-reverse .form-check-input { - float: right; - margin-right: -1.5em; - margin-left: 0; } - -.form-check-input { - --bs-form-check-bg: var(--bs-body-bg); - flex-shrink: 0; - width: 1em; - height: 1em; - margin-top: 0.25em; - vertical-align: top; - appearance: none; - background-color: var(--bs-form-check-bg); - background-image: var(--bs-form-check-bg-image); - background-repeat: no-repeat; - background-position: center; - background-size: contain; - border: var(--bs-border-width) solid var(--bs-border-color); - print-color-adjust: exact; } - .form-check-input[type="checkbox"] { - border-radius: 0.25em; } - .form-check-input[type="radio"] { - border-radius: 50%; } - .form-check-input:active { - filter: brightness(90%); } - .form-check-input:focus { - border-color: #98b1c7; - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .form-check-input:checked { - background-color: #30638e; - border-color: #30638e; } - .form-check-input:checked[type="checkbox"] { - --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"), var(--bs-gradient); } - .form-check-input:checked[type="radio"] { - --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"), var(--bs-gradient); } - .form-check-input[type="checkbox"]:indeterminate { - background-color: #30638e; - border-color: #30638e; - --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"), var(--bs-gradient); } - .form-check-input:disabled { - pointer-events: none; - filter: none; - opacity: 0.5; } - .form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { - cursor: default; - opacity: 0.5; } - -.form-switch { - padding-left: 2.5em; } - .form-switch .form-check-input { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); - width: 2em; - margin-left: -2.5em; - background-image: var(--bs-form-switch-bg); - background-position: left center; - border-radius: 2em; - transition: background-position 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-switch .form-check-input { - transition: none; } } - .form-switch .form-check-input:focus { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2398b1c7'/%3e%3c/svg%3e"); } - .form-switch .form-check-input:checked { - background-position: right center; - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"), var(--bs-gradient); } - .form-switch.form-check-reverse { - padding-right: 2.5em; - padding-left: 0; } - .form-switch.form-check-reverse .form-check-input { - margin-right: -2.5em; - margin-left: 0; } - -.form-check-inline { - display: inline-block; - margin-right: 1rem; } - -.btn-check { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; } - .btn-check[disabled] + .btn, div.drawio .btn-check[disabled] + button, .td-blog .btn-check[disabled] + .td-rss-button, .btn-check:disabled + .btn, div.drawio .btn-check:disabled + button, .td-blog .btn-check:disabled + .td-rss-button { - pointer-events: none; - filter: none; - opacity: 0.65; } - -[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked):not(:focus) { - --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e"); } - -.form-range { - width: 100%; - height: 1.5rem; - padding: 0; - appearance: none; - background-color: transparent; } - .form-range:focus { - outline: 0; } - .form-range:focus::-webkit-slider-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .form-range:focus::-moz-range-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .form-range::-moz-focus-outer { - border: 0; } - .form-range::-webkit-slider-thumb { - width: 1rem; - height: 1rem; - margin-top: -0.25rem; - appearance: none; - background-color: #30638e; - background-image: var(--bs-gradient); - border: 0; - border-radius: 1rem; - box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-range::-webkit-slider-thumb { - transition: none; } } - .form-range::-webkit-slider-thumb:active { - background-color: #c1d0dd; - background-image: var(--bs-gradient); } - .form-range::-webkit-slider-runnable-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: var(--bs-secondary-bg); - border-color: transparent; - border-radius: 1rem; - box-shadow: var(--bs-box-shadow-inset); } - .form-range::-moz-range-thumb { - width: 1rem; - height: 1rem; - appearance: none; - background-color: #30638e; - background-image: var(--bs-gradient); - border: 0; - border-radius: 1rem; - box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1); - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-range::-moz-range-thumb { - transition: none; } } - .form-range::-moz-range-thumb:active { - background-color: #c1d0dd; - background-image: var(--bs-gradient); } - .form-range::-moz-range-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: var(--bs-secondary-bg); - border-color: transparent; - border-radius: 1rem; - box-shadow: var(--bs-box-shadow-inset); } - .form-range:disabled { - pointer-events: none; } - .form-range:disabled::-webkit-slider-thumb { - background-color: var(--bs-secondary-color); } - .form-range:disabled::-moz-range-thumb { - background-color: var(--bs-secondary-color); } - -.form-floating { - position: relative; } - .form-floating > .form-control, - .form-floating > .form-control-plaintext, - .form-floating > .form-select { - height: calc(3.5rem + calc(var(--bs-border-width) * 2)); - min-height: calc(3.5rem + calc(var(--bs-border-width) * 2)); - line-height: 1.25; } - .form-floating > label { - position: absolute; - top: 0; - left: 0; - z-index: 2; - height: 100%; - padding: 1rem 0.75rem; - overflow: hidden; - text-align: start; - text-overflow: ellipsis; - white-space: nowrap; - pointer-events: none; - border: var(--bs-border-width) solid transparent; - transform-origin: 0 0; - transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .form-floating > label { - transition: none; } } - .form-floating > .form-control, - .form-floating > .form-control-plaintext { - padding: 1rem 0.75rem; } - .form-floating > .form-control::placeholder, - .form-floating > .form-control-plaintext::placeholder { - color: transparent; } - .form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), - .form-floating > .form-control-plaintext:focus, - .form-floating > .form-control-plaintext:not(:placeholder-shown) { - padding-top: 1.625rem; - padding-bottom: 0.625rem; } - .form-floating > .form-control:-webkit-autofill, - .form-floating > .form-control-plaintext:-webkit-autofill { - padding-top: 1.625rem; - padding-bottom: 0.625rem; } - .form-floating > .form-select { - padding-top: 1.625rem; - padding-bottom: 0.625rem; } - .form-floating > .form-control:focus ~ label, - .form-floating > .form-control:not(:placeholder-shown) ~ label, - .form-floating > .form-control-plaintext ~ label, - .form-floating > .form-select ~ label { - color: rgba(var(--bs-body-color-rgb), 0.65); - transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } - .form-floating > .form-control:focus ~ label::after, - .form-floating > .form-control:not(:placeholder-shown) ~ label::after, - .form-floating > .form-control-plaintext ~ label::after, - .form-floating > .form-select ~ label::after { - position: absolute; - inset: 1rem 0.375rem; - z-index: -1; - height: 1.5em; - content: ""; - background-color: var(--bs-body-bg); - border-radius: var(--bs-border-radius); } - .form-floating > .form-control:-webkit-autofill ~ label { - color: rgba(var(--bs-body-color-rgb), 0.65); - transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } - .form-floating > .form-control-plaintext ~ label { - border-width: var(--bs-border-width) 0; } - .form-floating > :disabled ~ label, - .form-floating > .form-control:disabled ~ label { - color: #6c757d; } - .form-floating > :disabled ~ label::after, - .form-floating > .form-control:disabled ~ label::after { - background-color: var(--bs-secondary-bg); } - -.input-group { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: stretch; - width: 100%; } - .input-group > .form-control, - .input-group > .form-select, - .input-group > .form-floating { - position: relative; - flex: 1 1 auto; - width: 1%; - min-width: 0; } - .input-group > .form-control:focus, - .input-group > .form-select:focus, - .input-group > .form-floating:focus-within { - z-index: 5; } - .input-group .btn, .input-group div.drawio button, div.drawio .input-group button, .input-group .td-blog .td-rss-button, .td-blog .input-group .td-rss-button { - position: relative; - z-index: 2; } - .input-group .btn:focus, .input-group div.drawio button:focus, div.drawio .input-group button:focus, .input-group .td-blog .td-rss-button:focus, .td-blog .input-group .td-rss-button:focus { - z-index: 5; } - -.input-group-text { - display: flex; - align-items: center; - padding: 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: var(--bs-body-color); - text-align: center; - white-space: nowrap; - background-color: var(--bs-tertiary-bg); - border: var(--bs-border-width) solid var(--bs-border-color); - border-radius: var(--bs-border-radius); } - -.input-group-lg > .form-control, -.input-group-lg > .form-select, -.input-group-lg > .input-group-text, -.input-group-lg > .btn, -div.drawio .input-group-lg > button, -.td-blog .input-group-lg > .td-rss-button { - padding: 0.5rem 1rem; - font-size: 1.25rem; - border-radius: var(--bs-border-radius-lg); } - -.input-group-sm > .form-control, -.input-group-sm > .form-select, -.input-group-sm > .input-group-text, -.input-group-sm > .btn, -div.drawio .input-group-sm > button, -.td-blog .input-group-sm > .td-rss-button { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - border-radius: var(--bs-border-radius-sm); } - -.input-group-lg > .form-select, -.input-group-sm > .form-select { - padding-right: 3rem; } - -.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), -.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n + 3), -.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, -.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - -.input-group.has-validation > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), -.input-group.has-validation > .dropdown-toggle:nth-last-child(n + 4), -.input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-control, -.input-group.has-validation > .form-floating:nth-last-child(n + 3) > .form-select { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - -.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { - margin-left: calc(var(--bs-border-width) * -1); - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - -.input-group > .form-floating:not(:first-child) > .form-control, -.input-group > .form-floating:not(:first-child) > .form-select { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - -.valid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 0.875em; - color: var(--bs-form-valid-color); } - -.valid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - color: #fff; - background-color: var(--bs-success); - border-radius: var(--bs-border-radius); } - -.was-validated :valid ~ .valid-feedback, -.was-validated :valid ~ .valid-tooltip, -.is-valid ~ .valid-feedback, -.is-valid ~ .valid-tooltip { - display: block; } - -.was-validated .form-control:valid, .form-control.is-valid { - border-color: var(--bs-form-valid-border-color); - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233772ff' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: right calc(0.375em + 0.1875rem) center; - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-control:valid:focus, .form-control.is-valid:focus { - border-color: var(--bs-form-valid-border-color); - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } - -.was-validated textarea.form-control:valid, textarea.form-control.is-valid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } - -.was-validated .form-select:valid, .form-select.is-valid { - border-color: var(--bs-form-valid-border-color); } - .was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { - --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233772ff' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); - padding-right: 4.125rem; - background-position: right 0.75rem center, center right 2.25rem; - background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-select:valid:focus, .form-select.is-valid:focus { - border-color: var(--bs-form-valid-border-color); - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } - -.was-validated .form-control-color:valid, .form-control-color.is-valid { - width: calc(3rem + calc(1.5em + 0.75rem)); } - -.was-validated .form-check-input:valid, .form-check-input.is-valid { - border-color: var(--bs-form-valid-border-color); } - .was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { - background-color: var(--bs-form-valid-color); } - .was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { - box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } - .was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { - color: var(--bs-form-valid-color); } - -.form-check-inline .form-check-input ~ .valid-feedback { - margin-left: .5em; } - -.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, .was-validated .input-group > .form-select:not(:focus):valid, -.input-group > .form-select:not(:focus).is-valid, .was-validated .input-group > .form-floating:not(:focus-within):valid, -.input-group > .form-floating:not(:focus-within).is-valid { - z-index: 3; } - -.invalid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 0.875em; - color: var(--bs-form-invalid-color); } - -.invalid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - color: #fff; - background-color: var(--bs-danger); - border-radius: var(--bs-border-radius); } - -.was-validated :invalid ~ .invalid-feedback, -.was-validated :invalid ~ .invalid-tooltip, -.is-invalid ~ .invalid-feedback, -.is-invalid ~ .invalid-tooltip { - display: block; } - -.was-validated .form-control:invalid, .form-control.is-invalid { - border-color: var(--bs-form-invalid-border-color); - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ed6a5a'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ed6a5a' stroke='none'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: right calc(0.375em + 0.1875rem) center; - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { - border-color: var(--bs-form-invalid-border-color); - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } - -.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } - -.was-validated .form-select:invalid, .form-select.is-invalid { - border-color: var(--bs-form-invalid-border-color); } - .was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { - --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ed6a5a'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ed6a5a' stroke='none'/%3e%3c/svg%3e"); - padding-right: 4.125rem; - background-position: right 0.75rem center, center right 2.25rem; - background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } - .was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { - border-color: var(--bs-form-invalid-border-color); - box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } - -.was-validated .form-control-color:invalid, .form-control-color.is-invalid { - width: calc(3rem + calc(1.5em + 0.75rem)); } - -.was-validated .form-check-input:invalid, .form-check-input.is-invalid { - border-color: var(--bs-form-invalid-border-color); } - .was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { - background-color: var(--bs-form-invalid-color); } - .was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { - box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } - .was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { - color: var(--bs-form-invalid-color); } - -.form-check-inline .form-check-input ~ .invalid-feedback { - margin-left: .5em; } - -.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, .was-validated .input-group > .form-select:not(:focus):invalid, -.input-group > .form-select:not(:focus).is-invalid, .was-validated .input-group > .form-floating:not(:focus-within):invalid, -.input-group > .form-floating:not(:focus-within).is-invalid { - z-index: 4; } - -.btn, div.drawio button, .td-blog .td-rss-button { - --bs-btn-padding-x: 0.75rem; - --bs-btn-padding-y: 0.375rem; - --bs-btn-font-family: ; - --bs-btn-font-size: 1rem; - --bs-btn-font-weight: 400; - --bs-btn-line-height: 1.5; - --bs-btn-color: var(--bs-body-color); - --bs-btn-bg: transparent; - --bs-btn-border-width: var(--bs-border-width); - --bs-btn-border-color: transparent; - --bs-btn-border-radius: var(--bs-border-radius); - --bs-btn-hover-border-color: transparent; - --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); - --bs-btn-disabled-opacity: 0.65; - --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); - display: inline-block; - padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); - font-family: var(--bs-btn-font-family); - font-size: var(--bs-btn-font-size); - font-weight: var(--bs-btn-font-weight); - line-height: var(--bs-btn-line-height); - color: var(--bs-btn-color); - text-align: center; - text-decoration: none; - vertical-align: middle; - cursor: pointer; - user-select: none; - border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); - border-radius: var(--bs-btn-border-radius); - background-color: var(--bs-btn-bg); - background-image: var(--bs-gradient); - box-shadow: var(--bs-btn-box-shadow); - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .btn, div.drawio button, .td-blog .td-rss-button { - transition: none; } } - .btn:hover, div.drawio button:hover, .td-blog .td-rss-button:hover { - color: var(--bs-btn-hover-color); - background-color: var(--bs-btn-hover-bg); - border-color: var(--bs-btn-hover-border-color); } - .btn-check + .btn:hover, div.drawio .btn-check + button:hover, .td-blog .btn-check + .td-rss-button:hover { - color: var(--bs-btn-color); - background-color: var(--bs-btn-bg); - border-color: var(--bs-btn-border-color); } - .btn:focus-visible, div.drawio button:focus-visible, .td-blog .td-rss-button:focus-visible { - color: var(--bs-btn-hover-color); - background-color: var(--bs-btn-hover-bg); - background-image: var(--bs-gradient); - border-color: var(--bs-btn-hover-border-color); - outline: 0; - box-shadow: var(--bs-btn-box-shadow), var(--bs-btn-focus-box-shadow); } - .btn-check:focus-visible + .btn, div.drawio .btn-check:focus-visible + button, .td-blog .btn-check:focus-visible + .td-rss-button { - border-color: var(--bs-btn-hover-border-color); - outline: 0; - box-shadow: var(--bs-btn-box-shadow), var(--bs-btn-focus-box-shadow); } - .btn-check:checked + .btn, div.drawio .btn-check:checked + button, .td-blog .btn-check:checked + .td-rss-button, :not(.btn-check) + .btn:active, div.drawio :not(.btn-check) + button:active, .td-blog :not(.btn-check) + .td-rss-button:active, .btn:first-child:active, div.drawio button:first-child:active, .td-blog .td-rss-button:first-child:active, .btn.active, div.drawio button.active, .td-blog .active.td-rss-button, .btn.show, div.drawio button.show, .td-blog .show.td-rss-button { - color: var(--bs-btn-active-color); - background-color: var(--bs-btn-active-bg); - background-image: none; - border-color: var(--bs-btn-active-border-color); - box-shadow: var(--bs-btn-active-shadow); } - .btn-check:checked + .btn:focus-visible, div.drawio .btn-check:checked + button:focus-visible, .td-blog .btn-check:checked + .td-rss-button:focus-visible, :not(.btn-check) + .btn:active:focus-visible, div.drawio :not(.btn-check) + button:active:focus-visible, .td-blog :not(.btn-check) + .td-rss-button:active:focus-visible, .btn:first-child:active:focus-visible, div.drawio button:first-child:active:focus-visible, .td-blog .td-rss-button:first-child:active:focus-visible, .btn.active:focus-visible, div.drawio button.active:focus-visible, .td-blog .active.td-rss-button:focus-visible, .btn.show:focus-visible, div.drawio button.show:focus-visible, .td-blog .show.td-rss-button:focus-visible { - box-shadow: var(--bs-btn-active-shadow), var(--bs-btn-focus-box-shadow); } - .btn-check:checked:focus-visible + .btn, div.drawio .btn-check:checked:focus-visible + button, .td-blog .btn-check:checked:focus-visible + .td-rss-button { - box-shadow: var(--bs-btn-active-shadow), var(--bs-btn-focus-box-shadow); } - .btn:disabled, div.drawio button:disabled, .td-blog .td-rss-button:disabled, .btn.disabled, div.drawio button.disabled, .td-blog .disabled.td-rss-button, fieldset:disabled .btn, fieldset:disabled div.drawio button, div.drawio fieldset:disabled button, fieldset:disabled .td-blog .td-rss-button, .td-blog fieldset:disabled .td-rss-button { - color: var(--bs-btn-disabled-color); - pointer-events: none; - background-color: var(--bs-btn-disabled-bg); - background-image: none; - border-color: var(--bs-btn-disabled-border-color); - opacity: var(--bs-btn-disabled-opacity); - box-shadow: none; } - -.btn-primary { - --bs-btn-color: #fff; - --bs-btn-bg: #30638e; - --bs-btn-border-color: #30638e; - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #295479; - --bs-btn-hover-border-color: #264f72; - --bs-btn-focus-shadow-rgb: 79, 122, 159; - --bs-btn-active-color: #fff; - --bs-btn-active-bg: #264f72; - --bs-btn-active-border-color: #244a6b; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #fff; - --bs-btn-disabled-bg: #30638e; - --bs-btn-disabled-border-color: #30638e; } - -.btn-secondary { - --bs-btn-color: #000; - --bs-btn-bg: #ffa630; - --bs-btn-border-color: #ffa630; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #ffb34f; - --bs-btn-hover-border-color: #ffaf45; - --bs-btn-focus-shadow-rgb: 217, 141, 41; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #ffb859; - --bs-btn-active-border-color: #ffaf45; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #ffa630; - --bs-btn-disabled-border-color: #ffa630; } - -.btn-success { - --bs-btn-color: #000; - --bs-btn-bg: #3772ff; - --bs-btn-border-color: #3772ff; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #5587ff; - --bs-btn-hover-border-color: #4b80ff; - --bs-btn-focus-shadow-rgb: 47, 97, 217; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #5f8eff; - --bs-btn-active-border-color: #4b80ff; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #3772ff; - --bs-btn-disabled-border-color: #3772ff; } - -.btn-info, .td-blog .td-rss-button { - --bs-btn-color: #000; - --bs-btn-bg: #c0e0de; - --bs-btn-border-color: #c0e0de; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #c9e5e3; - --bs-btn-hover-border-color: #c6e3e1; - --bs-btn-focus-shadow-rgb: 163, 190, 189; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #cde6e5; - --bs-btn-active-border-color: #c6e3e1; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #c0e0de; - --bs-btn-disabled-border-color: #c0e0de; } - -.btn-warning { - --bs-btn-color: #000; - --bs-btn-bg: #ed6a5a; - --bs-btn-border-color: #ed6a5a; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #f08073; - --bs-btn-hover-border-color: #ef796b; - --bs-btn-focus-shadow-rgb: 201, 90, 77; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #f1887b; - --bs-btn-active-border-color: #ef796b; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #ed6a5a; - --bs-btn-disabled-border-color: #ed6a5a; } - -.btn-danger { - --bs-btn-color: #000; - --bs-btn-bg: #ed6a5a; - --bs-btn-border-color: #ed6a5a; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #f08073; - --bs-btn-hover-border-color: #ef796b; - --bs-btn-focus-shadow-rgb: 201, 90, 77; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #f1887b; - --bs-btn-active-border-color: #ef796b; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #ed6a5a; - --bs-btn-disabled-border-color: #ed6a5a; } - -.btn-light { - --bs-btn-color: #000; - --bs-btn-bg: #d3f3ee; - --bs-btn-border-color: #d3f3ee; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #b3cfca; - --bs-btn-hover-border-color: #a9c2be; - --bs-btn-focus-shadow-rgb: 179, 207, 202; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #a9c2be; - --bs-btn-active-border-color: #9eb6b3; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #000; - --bs-btn-disabled-bg: #d3f3ee; - --bs-btn-disabled-border-color: #d3f3ee; } - -.btn-dark { - --bs-btn-color: #fff; - --bs-btn-bg: #403f4c; - --bs-btn-border-color: #403f4c; - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #5d5c67; - --bs-btn-hover-border-color: #53525e; - --bs-btn-focus-shadow-rgb: 93, 92, 103; - --bs-btn-active-color: #fff; - --bs-btn-active-bg: #666570; - --bs-btn-active-border-color: #53525e; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #fff; - --bs-btn-disabled-bg: #403f4c; - --bs-btn-disabled-border-color: #403f4c; } - -.btn-outline-primary, div.drawio button { - --bs-btn-color: #30638e; - --bs-btn-border-color: #30638e; - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #30638e; - --bs-btn-hover-border-color: #30638e; - --bs-btn-focus-shadow-rgb: 48, 99, 142; - --bs-btn-active-color: #fff; - --bs-btn-active-bg: #30638e; - --bs-btn-active-border-color: #30638e; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #30638e; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #30638e; - --bs-gradient: none; } - -.btn-outline-secondary { - --bs-btn-color: #ffa630; - --bs-btn-border-color: #ffa630; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #ffa630; - --bs-btn-hover-border-color: #ffa630; - --bs-btn-focus-shadow-rgb: 255, 166, 48; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #ffa630; - --bs-btn-active-border-color: #ffa630; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #ffa630; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #ffa630; - --bs-gradient: none; } - -.btn-outline-success { - --bs-btn-color: #3772ff; - --bs-btn-border-color: #3772ff; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #3772ff; - --bs-btn-hover-border-color: #3772ff; - --bs-btn-focus-shadow-rgb: 55, 114, 255; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #3772ff; - --bs-btn-active-border-color: #3772ff; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #3772ff; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #3772ff; - --bs-gradient: none; } - -.btn-outline-info { - --bs-btn-color: #c0e0de; - --bs-btn-border-color: #c0e0de; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #c0e0de; - --bs-btn-hover-border-color: #c0e0de; - --bs-btn-focus-shadow-rgb: 192, 224, 222; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #c0e0de; - --bs-btn-active-border-color: #c0e0de; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #c0e0de; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #c0e0de; - --bs-gradient: none; } - -.btn-outline-warning { - --bs-btn-color: #ed6a5a; - --bs-btn-border-color: #ed6a5a; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #ed6a5a; - --bs-btn-hover-border-color: #ed6a5a; - --bs-btn-focus-shadow-rgb: 237, 106, 90; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #ed6a5a; - --bs-btn-active-border-color: #ed6a5a; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #ed6a5a; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #ed6a5a; - --bs-gradient: none; } - -.btn-outline-danger { - --bs-btn-color: #ed6a5a; - --bs-btn-border-color: #ed6a5a; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #ed6a5a; - --bs-btn-hover-border-color: #ed6a5a; - --bs-btn-focus-shadow-rgb: 237, 106, 90; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #ed6a5a; - --bs-btn-active-border-color: #ed6a5a; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #ed6a5a; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #ed6a5a; - --bs-gradient: none; } - -.btn-outline-light { - --bs-btn-color: #d3f3ee; - --bs-btn-border-color: #d3f3ee; - --bs-btn-hover-color: #000; - --bs-btn-hover-bg: #d3f3ee; - --bs-btn-hover-border-color: #d3f3ee; - --bs-btn-focus-shadow-rgb: 211, 243, 238; - --bs-btn-active-color: #000; - --bs-btn-active-bg: #d3f3ee; - --bs-btn-active-border-color: #d3f3ee; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #d3f3ee; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #d3f3ee; - --bs-gradient: none; } - -.btn-outline-dark { - --bs-btn-color: #403f4c; - --bs-btn-border-color: #403f4c; - --bs-btn-hover-color: #fff; - --bs-btn-hover-bg: #403f4c; - --bs-btn-hover-border-color: #403f4c; - --bs-btn-focus-shadow-rgb: 64, 63, 76; - --bs-btn-active-color: #fff; - --bs-btn-active-bg: #403f4c; - --bs-btn-active-border-color: #403f4c; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #403f4c; - --bs-btn-disabled-bg: transparent; - --bs-btn-disabled-border-color: #403f4c; - --bs-gradient: none; } - -.btn-link { - --bs-btn-font-weight: 400; - --bs-btn-color: var(--bs-link-color); - --bs-btn-bg: transparent; - --bs-btn-border-color: transparent; - --bs-btn-hover-color: var(--bs-link-hover-color); - --bs-btn-hover-border-color: transparent; - --bs-btn-active-color: var(--bs-link-hover-color); - --bs-btn-active-border-color: transparent; - --bs-btn-disabled-color: #6c757d; - --bs-btn-disabled-border-color: transparent; - --bs-btn-box-shadow: 0 0 0 #000; - --bs-btn-focus-shadow-rgb: 49, 132, 253; - text-decoration: underline; - background-image: none; } - .btn-link:focus-visible { - color: var(--bs-btn-color); } - .btn-link:hover { - color: var(--bs-btn-hover-color); } - -.btn-lg, .td-blog .td-rss-button, .btn-group-lg > .btn, div.drawio .btn-group-lg > button { - --bs-btn-padding-y: 0.5rem; - --bs-btn-padding-x: 1rem; - --bs-btn-font-size: 1.25rem; - --bs-btn-border-radius: var(--bs-border-radius-lg); } - -.btn-sm, .btn-group-sm > .btn, div.drawio .btn-group-sm > button, .td-blog .btn-group-sm > .td-rss-button { - --bs-btn-padding-y: 0.25rem; - --bs-btn-padding-x: 0.5rem; - --bs-btn-font-size: 0.875rem; - --bs-btn-border-radius: var(--bs-border-radius-sm); } - -.fade { - transition: opacity 0.15s linear; } - @media (prefers-reduced-motion: reduce) { - .fade { - transition: none; } } - .fade:not(.show) { - opacity: 0; } - -.collapse:not(.show) { - display: none; } - -.collapsing { - height: 0; - overflow: hidden; - transition: height 0.35s ease; } - @media (prefers-reduced-motion: reduce) { - .collapsing { - transition: none; } } - .collapsing.collapse-horizontal { - width: 0; - height: auto; - transition: width 0.35s ease; } - @media (prefers-reduced-motion: reduce) { - .collapsing.collapse-horizontal { - transition: none; } } -.dropup, -.dropend, -.dropdown, -.dropstart, -.dropup-center, -.dropdown-center { - position: relative; } - -.dropdown-toggle { - white-space: nowrap; } - .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid; - border-right: 0.3em solid transparent; - border-bottom: 0; - border-left: 0.3em solid transparent; } - .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropdown-menu { - --bs-dropdown-zindex: 1000; - --bs-dropdown-min-width: 10rem; - --bs-dropdown-padding-x: 0; - --bs-dropdown-padding-y: 0.5rem; - --bs-dropdown-spacer: 0.125rem; - --bs-dropdown-font-size: 1rem; - --bs-dropdown-color: var(--bs-body-color); - --bs-dropdown-bg: var(--bs-body-bg); - --bs-dropdown-border-color: var(--bs-border-color-translucent); - --bs-dropdown-border-radius: var(--bs-border-radius); - --bs-dropdown-border-width: var(--bs-border-width); - --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width)); - --bs-dropdown-divider-bg: var(--bs-border-color-translucent); - --bs-dropdown-divider-margin-y: 0.5rem; - --bs-dropdown-box-shadow: var(--bs-box-shadow); - --bs-dropdown-link-color: var(--bs-body-color); - --bs-dropdown-link-hover-color: var(--bs-body-color); - --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); - --bs-dropdown-link-active-color: #fff; - --bs-dropdown-link-active-bg: #30638e; - --bs-dropdown-link-disabled-color: var(--bs-tertiary-color); - --bs-dropdown-item-padding-x: 1rem; - --bs-dropdown-item-padding-y: 0.25rem; - --bs-dropdown-header-color: #6c757d; - --bs-dropdown-header-padding-x: 1rem; - --bs-dropdown-header-padding-y: 0.5rem; - position: absolute; - z-index: var(--bs-dropdown-zindex); - display: none; - min-width: var(--bs-dropdown-min-width); - padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); - margin: 0; - font-size: var(--bs-dropdown-font-size); - color: var(--bs-dropdown-color); - text-align: left; - list-style: none; - background-color: var(--bs-dropdown-bg); - background-clip: padding-box; - border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); - border-radius: var(--bs-dropdown-border-radius); - box-shadow: var(--bs-dropdown-box-shadow); } - .dropdown-menu[data-bs-popper] { - top: 100%; - left: 0; - margin-top: var(--bs-dropdown-spacer); } - -.dropdown-menu-start { - --bs-position: start; } - .dropdown-menu-start[data-bs-popper] { - right: auto; - left: 0; } - -.dropdown-menu-end { - --bs-position: end; } - .dropdown-menu-end[data-bs-popper] { - right: 0; - left: auto; } - -@media (min-width: 576px) { - .dropdown-menu-sm-start { - --bs-position: start; } - .dropdown-menu-sm-start[data-bs-popper] { - right: auto; - left: 0; } - .dropdown-menu-sm-end { - --bs-position: end; } - .dropdown-menu-sm-end[data-bs-popper] { - right: 0; - left: auto; } } - -@media (min-width: 768px) { - .dropdown-menu-md-start { - --bs-position: start; } - .dropdown-menu-md-start[data-bs-popper] { - right: auto; - left: 0; } - .dropdown-menu-md-end { - --bs-position: end; } - .dropdown-menu-md-end[data-bs-popper] { - right: 0; - left: auto; } } - -@media (min-width: 992px) { - .dropdown-menu-lg-start { - --bs-position: start; } - .dropdown-menu-lg-start[data-bs-popper] { - right: auto; - left: 0; } - .dropdown-menu-lg-end { - --bs-position: end; } - .dropdown-menu-lg-end[data-bs-popper] { - right: 0; - left: auto; } } - -@media (min-width: 1200px) { - .dropdown-menu-xl-start { - --bs-position: start; } - .dropdown-menu-xl-start[data-bs-popper] { - right: auto; - left: 0; } - .dropdown-menu-xl-end { - --bs-position: end; } - .dropdown-menu-xl-end[data-bs-popper] { - right: 0; - left: auto; } } - -@media (min-width: 1400px) { - .dropdown-menu-xxl-start { - --bs-position: start; } - .dropdown-menu-xxl-start[data-bs-popper] { - right: auto; - left: 0; } - .dropdown-menu-xxl-end { - --bs-position: end; } - .dropdown-menu-xxl-end[data-bs-popper] { - right: 0; - left: auto; } } - -.dropup .dropdown-menu[data-bs-popper] { - top: auto; - bottom: 100%; - margin-top: 0; - margin-bottom: var(--bs-dropdown-spacer); } - -.dropup .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0; - border-right: 0.3em solid transparent; - border-bottom: 0.3em solid; - border-left: 0.3em solid transparent; } - -.dropup .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropend .dropdown-menu[data-bs-popper] { - top: 0; - right: auto; - left: 100%; - margin-top: 0; - margin-left: var(--bs-dropdown-spacer); } - -.dropend .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0; - border-bottom: 0.3em solid transparent; - border-left: 0.3em solid; } - -.dropend .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropend .dropdown-toggle::after { - vertical-align: 0; } - -.dropstart .dropdown-menu[data-bs-popper] { - top: 0; - right: 100%; - left: auto; - margin-top: 0; - margin-right: var(--bs-dropdown-spacer); } - -.dropstart .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; } - -.dropstart .dropdown-toggle::after { - display: none; } - -.dropstart .dropdown-toggle::before { - display: inline-block; - margin-right: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0.3em solid; - border-bottom: 0.3em solid transparent; } - -.dropstart .dropdown-toggle:empty::after { - margin-left: 0; } - -.dropstart .dropdown-toggle::before { - vertical-align: 0; } - -.dropdown-divider { - height: 0; - margin: var(--bs-dropdown-divider-margin-y) 0; - overflow: hidden; - border-top: 1px solid var(--bs-dropdown-divider-bg); - opacity: 1; } - -.dropdown-item { - display: block; - width: 100%; - padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); - clear: both; - font-weight: 400; - color: var(--bs-dropdown-link-color); - text-align: inherit; - text-decoration: none; - white-space: nowrap; - background-color: transparent; - border: 0; - border-radius: var(--bs-dropdown-item-border-radius, 0); } - .dropdown-item:hover, .dropdown-item:focus { - color: var(--bs-dropdown-link-hover-color); - background-color: var(--bs-dropdown-link-hover-bg); - background-image: var(--bs-gradient); } - .dropdown-item.active, .dropdown-item:active { - color: var(--bs-dropdown-link-active-color); - text-decoration: none; - background-color: var(--bs-dropdown-link-active-bg); - background-image: var(--bs-gradient); } - .dropdown-item.disabled, .dropdown-item:disabled { - color: var(--bs-dropdown-link-disabled-color); - pointer-events: none; - background-color: transparent; - background-image: none; } - -.dropdown-menu.show { - display: block; } - -.dropdown-header { - display: block; - padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); - margin-bottom: 0; - font-size: 0.875rem; - color: var(--bs-dropdown-header-color); - white-space: nowrap; } - -.dropdown-item-text { - display: block; - padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); - color: var(--bs-dropdown-link-color); } - -.dropdown-menu-dark { - --bs-dropdown-color: #dee2e6; - --bs-dropdown-bg: #343a40; - --bs-dropdown-border-color: var(--bs-border-color-translucent); - --bs-dropdown-box-shadow: ; - --bs-dropdown-link-color: #dee2e6; - --bs-dropdown-link-hover-color: #fff; - --bs-dropdown-divider-bg: var(--bs-border-color-translucent); - --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); - --bs-dropdown-link-active-color: #fff; - --bs-dropdown-link-active-bg: #30638e; - --bs-dropdown-link-disabled-color: #adb5bd; - --bs-dropdown-header-color: #adb5bd; } - -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-flex; - vertical-align: middle; } - .btn-group > .btn, div.drawio .btn-group > button, .td-blog .btn-group > .td-rss-button, - .btn-group-vertical > .btn, - div.drawio .btn-group-vertical > button, - .td-blog .btn-group-vertical > .td-rss-button { - position: relative; - flex: 1 1 auto; } - .btn-group > .btn-check:checked + .btn, div.drawio .btn-group > .btn-check:checked + button, .td-blog .btn-group > .btn-check:checked + .td-rss-button, - .btn-group > .btn-check:focus + .btn, - div.drawio .btn-group > .btn-check:focus + button, - .td-blog .btn-group > .btn-check:focus + .td-rss-button, - .btn-group > .btn:hover, - div.drawio .btn-group > button:hover, - .td-blog .btn-group > .td-rss-button:hover, - .btn-group > .btn:focus, - div.drawio .btn-group > button:focus, - .td-blog .btn-group > .td-rss-button:focus, - .btn-group > .btn:active, - div.drawio .btn-group > button:active, - .td-blog .btn-group > .td-rss-button:active, - .btn-group > .btn.active, - div.drawio .btn-group > button.active, - .td-blog .btn-group > .active.td-rss-button, - .btn-group-vertical > .btn-check:checked + .btn, - div.drawio .btn-group-vertical > .btn-check:checked + button, - .td-blog .btn-group-vertical > .btn-check:checked + .td-rss-button, - .btn-group-vertical > .btn-check:focus + .btn, - div.drawio .btn-group-vertical > .btn-check:focus + button, - .td-blog .btn-group-vertical > .btn-check:focus + .td-rss-button, - .btn-group-vertical > .btn:hover, - div.drawio .btn-group-vertical > button:hover, - .td-blog .btn-group-vertical > .td-rss-button:hover, - .btn-group-vertical > .btn:focus, - div.drawio .btn-group-vertical > button:focus, - .td-blog .btn-group-vertical > .td-rss-button:focus, - .btn-group-vertical > .btn:active, - div.drawio .btn-group-vertical > button:active, - .td-blog .btn-group-vertical > .td-rss-button:active, - .btn-group-vertical > .btn.active, - div.drawio .btn-group-vertical > button.active, - .td-blog .btn-group-vertical > .active.td-rss-button { - z-index: 1; } - -.btn-toolbar { - display: flex; - flex-wrap: wrap; - justify-content: flex-start; } - .btn-toolbar .input-group { - width: auto; } - -.btn-group { - border-radius: var(--bs-border-radius); } - .btn-group > :not(.btn-check:first-child) + .btn, div.drawio .btn-group > :not(.btn-check:first-child) + button, .td-blog .btn-group > :not(.btn-check:first-child) + .td-rss-button, - .btn-group > .btn-group:not(:first-child) { - margin-left: calc(var(--bs-border-width) * -1); } - .btn-group > .btn:not(:last-child):not(.dropdown-toggle), div.drawio .btn-group > button:not(:last-child):not(.dropdown-toggle), .td-blog .btn-group > .td-rss-button:not(:last-child):not(.dropdown-toggle), - .btn-group > .btn.dropdown-toggle-split:first-child, - div.drawio .btn-group > button.dropdown-toggle-split:first-child, - .td-blog .btn-group > .dropdown-toggle-split.td-rss-button:first-child, - .btn-group > .btn-group:not(:last-child) > .btn, - div.drawio .btn-group > .btn-group:not(:last-child) > button, - .td-blog .btn-group > .btn-group:not(:last-child) > .td-rss-button { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .btn-group > .btn:nth-child(n + 3), div.drawio .btn-group > button:nth-child(n + 3), .td-blog .btn-group > .td-rss-button:nth-child(n + 3), - .btn-group > :not(.btn-check) + .btn, - div.drawio .btn-group > :not(.btn-check) + button, - .td-blog .btn-group > :not(.btn-check) + .td-rss-button, - .btn-group > .btn-group:not(:first-child) > .btn, - div.drawio .btn-group > .btn-group:not(:first-child) > button, - .td-blog .btn-group > .btn-group:not(:first-child) > .td-rss-button { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - -.dropdown-toggle-split { - padding-right: 0.5625rem; - padding-left: 0.5625rem; } - .dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { - margin-left: 0; } - .dropstart .dropdown-toggle-split::before { - margin-right: 0; } - -.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split, div.drawio .btn-group-sm > button + .dropdown-toggle-split, .td-blog .btn-group-sm > .td-rss-button + .dropdown-toggle-split { - padding-right: 0.375rem; - padding-left: 0.375rem; } - -.btn-lg + .dropdown-toggle-split, .td-blog .td-rss-button + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split, div.drawio .btn-group-lg > button + .dropdown-toggle-split, .td-blog .btn-group-lg > .td-rss-button + .dropdown-toggle-split { - padding-right: 0.75rem; - padding-left: 0.75rem; } - -.btn-group.show .dropdown-toggle { - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } - .btn-group.show .dropdown-toggle.btn-link { - box-shadow: none; } - -.btn-group-vertical { - flex-direction: column; - align-items: flex-start; - justify-content: center; } - .btn-group-vertical > .btn, div.drawio .btn-group-vertical > button, .td-blog .btn-group-vertical > .td-rss-button, - .btn-group-vertical > .btn-group { - width: 100%; } - .btn-group-vertical > .btn:not(:first-child), div.drawio .btn-group-vertical > button:not(:first-child), .td-blog .btn-group-vertical > .td-rss-button:not(:first-child), - .btn-group-vertical > .btn-group:not(:first-child) { - margin-top: calc(var(--bs-border-width) * -1); } - .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), div.drawio .btn-group-vertical > button:not(:last-child):not(.dropdown-toggle), .td-blog .btn-group-vertical > .td-rss-button:not(:last-child):not(.dropdown-toggle), - .btn-group-vertical > .btn-group:not(:last-child) > .btn, - div.drawio .btn-group-vertical > .btn-group:not(:last-child) > button, - .td-blog .btn-group-vertical > .btn-group:not(:last-child) > .td-rss-button { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - .btn-group-vertical > .btn ~ .btn, div.drawio .btn-group-vertical > button ~ .btn, div.drawio .btn-group-vertical > .btn ~ button, div.drawio .btn-group-vertical > button ~ button, .td-blog .btn-group-vertical > .td-rss-button ~ .btn, .td-blog div.drawio .btn-group-vertical > .td-rss-button ~ button, div.drawio .td-blog .btn-group-vertical > .td-rss-button ~ button, .td-blog .btn-group-vertical > .btn ~ .td-rss-button, .td-blog div.drawio .btn-group-vertical > button ~ .td-rss-button, div.drawio .td-blog .btn-group-vertical > button ~ .td-rss-button, .td-blog .btn-group-vertical > .td-rss-button ~ .td-rss-button, - .btn-group-vertical > .btn-group:not(:first-child) > .btn, - div.drawio .btn-group-vertical > .btn-group:not(:first-child) > button, - .td-blog .btn-group-vertical > .btn-group:not(:first-child) > .td-rss-button { - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.nav { - --bs-nav-link-padding-x: 1rem; - --bs-nav-link-padding-y: 0.5rem; - --bs-nav-link-font-weight: ; - --bs-nav-link-color: var(--bs-link-color); - --bs-nav-link-hover-color: var(--bs-link-hover-color); - --bs-nav-link-disabled-color: var(--bs-secondary-color); - display: flex; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none; } - -.nav-link { - display: block; - padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); - font-size: var(--bs-nav-link-font-size); - font-weight: var(--bs-nav-link-font-weight); - color: var(--bs-nav-link-color); - text-decoration: none; - background: none; - border: 0; - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .nav-link { - transition: none; } } - .nav-link:hover, .nav-link:focus { - color: var(--bs-nav-link-hover-color); } - .nav-link:focus-visible { - outline: 0; - box-shadow: 0 0 0 0.25rem rgba(48, 99, 142, 0.25); } - .nav-link.disabled, .nav-link:disabled { - color: var(--bs-nav-link-disabled-color); - pointer-events: none; - cursor: default; } - -.nav-tabs { - --bs-nav-tabs-border-width: var(--bs-border-width); - --bs-nav-tabs-border-color: var(--bs-border-color); - --bs-nav-tabs-border-radius: var(--bs-border-radius); - --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color); - --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); - --bs-nav-tabs-link-active-bg: var(--bs-body-bg); - --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); - border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); } - .nav-tabs .nav-link { - margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); - border: var(--bs-nav-tabs-border-width) solid transparent; - border-top-left-radius: var(--bs-nav-tabs-border-radius); - border-top-right-radius: var(--bs-nav-tabs-border-radius); } - .nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { - isolation: isolate; - border-color: var(--bs-nav-tabs-link-hover-border-color); } - .nav-tabs .nav-link.active, - .nav-tabs .nav-item.show .nav-link { - color: var(--bs-nav-tabs-link-active-color); - background-color: var(--bs-nav-tabs-link-active-bg); - border-color: var(--bs-nav-tabs-link-active-border-color); } - .nav-tabs .dropdown-menu { - margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); - border-top-left-radius: 0; - border-top-right-radius: 0; } - -.nav-pills { - --bs-nav-pills-border-radius: var(--bs-border-radius); - --bs-nav-pills-link-active-color: #fff; - --bs-nav-pills-link-active-bg: #30638e; } - .nav-pills .nav-link { - border-radius: var(--bs-nav-pills-border-radius); } - .nav-pills .nav-link.active, - .nav-pills .show > .nav-link { - color: var(--bs-nav-pills-link-active-color); - background-color: var(--bs-nav-pills-link-active-bg); - background-image: var(--bs-gradient); } - -.nav-underline { - --bs-nav-underline-gap: 1rem; - --bs-nav-underline-border-width: 0.125rem; - --bs-nav-underline-link-active-color: var(--bs-emphasis-color); - gap: var(--bs-nav-underline-gap); } - .nav-underline .nav-link { - padding-right: 0; - padding-left: 0; - border-bottom: var(--bs-nav-underline-border-width) solid transparent; } - .nav-underline .nav-link:hover, .nav-underline .nav-link:focus { - border-bottom-color: currentcolor; } - .nav-underline .nav-link.active, - .nav-underline .show > .nav-link { - font-weight: 700; - color: var(--bs-nav-underline-link-active-color); - border-bottom-color: currentcolor; } - -.nav-fill > .nav-link, -.nav-fill .nav-item { - flex: 1 1 auto; - text-align: center; } - -.nav-justified > .nav-link, -.nav-justified .nav-item { - flex-basis: 0; - flex-grow: 1; - text-align: center; } - -.nav-fill .nav-item .nav-link, -.nav-justified .nav-item .nav-link { - width: 100%; } - -.tab-content > .tab-pane { - display: none; } - -.tab-content > .active { - display: block; } - -.navbar, .td-navbar { - --bs-navbar-padding-x: 0; - --bs-navbar-padding-y: 0.5rem; - --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65); - --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8); - --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3); - --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1); - --bs-navbar-brand-padding-y: 0.3125rem; - --bs-navbar-brand-margin-end: 1rem; - --bs-navbar-brand-font-size: 1.25rem; - --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1); - --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1); - --bs-navbar-nav-link-padding-x: 0.5rem; - --bs-navbar-toggler-padding-y: 0.25rem; - --bs-navbar-toggler-padding-x: 0.75rem; - --bs-navbar-toggler-font-size: 1.25rem; - --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); - --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15); - --bs-navbar-toggler-border-radius: var(--bs-border-radius); - --bs-navbar-toggler-focus-width: 0.25rem; - --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; - position: relative; - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); - background-image: var(--bs-gradient); } - .navbar > .container, .td-navbar > .container, - .navbar > .container-fluid, - .td-navbar > .container-fluid, - .navbar > .container-sm, - .td-navbar > .container-sm, - .navbar > .container-md, - .td-navbar > .container-md, - .navbar > .container-lg, - .td-navbar > .container-lg, - .navbar > .container-xl, - .td-navbar > .container-xl, - .navbar > .container-xxl, - .td-navbar > .container-xxl { - display: flex; - flex-wrap: inherit; - align-items: center; - justify-content: space-between; } - -.navbar-brand { - padding-top: var(--bs-navbar-brand-padding-y); - padding-bottom: var(--bs-navbar-brand-padding-y); - margin-right: var(--bs-navbar-brand-margin-end); - font-size: var(--bs-navbar-brand-font-size); - color: var(--bs-navbar-brand-color); - text-decoration: none; - white-space: nowrap; } - .navbar-brand:hover, .navbar-brand:focus { - color: var(--bs-navbar-brand-hover-color); } - -.navbar-nav { - --bs-nav-link-padding-x: 0; - --bs-nav-link-padding-y: 0.5rem; - --bs-nav-link-font-weight: ; - --bs-nav-link-color: var(--bs-navbar-color); - --bs-nav-link-hover-color: var(--bs-navbar-hover-color); - --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - list-style: none; } - .navbar-nav .nav-link.active, .navbar-nav .nav-link.show { - color: var(--bs-navbar-active-color); } - .navbar-nav .dropdown-menu { - position: static; } - -.navbar-text { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - color: var(--bs-navbar-color); } - .navbar-text a, - .navbar-text a:hover, - .navbar-text a:focus { - color: var(--bs-navbar-active-color); } - -.navbar-collapse { - flex-basis: 100%; - flex-grow: 1; - align-items: center; } - -.navbar-toggler { - padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); - font-size: var(--bs-navbar-toggler-font-size); - line-height: 1; - color: var(--bs-navbar-color); - background-color: transparent; - border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); - border-radius: var(--bs-navbar-toggler-border-radius); - transition: var(--bs-navbar-toggler-transition); } - @media (prefers-reduced-motion: reduce) { - .navbar-toggler { - transition: none; } } - .navbar-toggler:hover { - text-decoration: none; } - .navbar-toggler:focus { - text-decoration: none; - outline: 0; - box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); } - -.navbar-toggler-icon { - display: inline-block; - width: 1.5em; - height: 1.5em; - vertical-align: middle; - background-image: var(--bs-navbar-toggler-icon-bg); - background-repeat: no-repeat; - background-position: center; - background-size: 100%; } - -.navbar-nav-scroll { - max-height: var(--bs-scroll-height, 75vh); - overflow-y: auto; } - -@media (min-width: 576px) { - .navbar-expand-sm { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand-sm .navbar-nav { - flex-direction: row; } - .navbar-expand-sm .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-sm .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand-sm .navbar-nav-scroll { - overflow: visible; } - .navbar-expand-sm .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-sm .navbar-toggler { - display: none; } - .navbar-expand-sm .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand-sm .offcanvas .offcanvas-header { - display: none; } - .navbar-expand-sm .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } } - -@media (min-width: 768px) { - .navbar-expand-md { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand-md .navbar-nav { - flex-direction: row; } - .navbar-expand-md .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-md .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand-md .navbar-nav-scroll { - overflow: visible; } - .navbar-expand-md .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-md .navbar-toggler { - display: none; } - .navbar-expand-md .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand-md .offcanvas .offcanvas-header { - display: none; } - .navbar-expand-md .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } } - -@media (min-width: 992px) { - .navbar-expand-lg { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand-lg .navbar-nav { - flex-direction: row; } - .navbar-expand-lg .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-lg .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand-lg .navbar-nav-scroll { - overflow: visible; } - .navbar-expand-lg .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-lg .navbar-toggler { - display: none; } - .navbar-expand-lg .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand-lg .offcanvas .offcanvas-header { - display: none; } - .navbar-expand-lg .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } } - -@media (min-width: 1200px) { - .navbar-expand-xl { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand-xl .navbar-nav { - flex-direction: row; } - .navbar-expand-xl .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-xl .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand-xl .navbar-nav-scroll { - overflow: visible; } - .navbar-expand-xl .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-xl .navbar-toggler { - display: none; } - .navbar-expand-xl .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand-xl .offcanvas .offcanvas-header { - display: none; } - .navbar-expand-xl .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } } - -@media (min-width: 1400px) { - .navbar-expand-xxl { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand-xxl .navbar-nav { - flex-direction: row; } - .navbar-expand-xxl .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand-xxl .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand-xxl .navbar-nav-scroll { - overflow: visible; } - .navbar-expand-xxl .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand-xxl .navbar-toggler { - display: none; } - .navbar-expand-xxl .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand-xxl .offcanvas .offcanvas-header { - display: none; } - .navbar-expand-xxl .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } } - -.navbar-expand, .td-navbar { - flex-wrap: nowrap; - justify-content: flex-start; } - .navbar-expand .navbar-nav, .td-navbar .navbar-nav { - flex-direction: row; } - .navbar-expand .navbar-nav .dropdown-menu, .td-navbar .navbar-nav .dropdown-menu { - position: absolute; } - .navbar-expand .navbar-nav .nav-link, .td-navbar .navbar-nav .nav-link { - padding-right: var(--bs-navbar-nav-link-padding-x); - padding-left: var(--bs-navbar-nav-link-padding-x); } - .navbar-expand .navbar-nav-scroll, .td-navbar .navbar-nav-scroll { - overflow: visible; } - .navbar-expand .navbar-collapse, .td-navbar .navbar-collapse { - display: flex !important; - flex-basis: auto; } - .navbar-expand .navbar-toggler, .td-navbar .navbar-toggler { - display: none; } - .navbar-expand .offcanvas, .td-navbar .offcanvas { - position: static; - z-index: auto; - flex-grow: 1; - width: auto !important; - height: auto !important; - visibility: visible !important; - background-color: transparent !important; - border: 0 !important; - transform: none !important; - box-shadow: none; - transition: none; } - .navbar-expand .offcanvas .offcanvas-header, .td-navbar .offcanvas .offcanvas-header { - display: none; } - .navbar-expand .offcanvas .offcanvas-body, .td-navbar .offcanvas .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; } - -.navbar-dark, -.navbar[data-bs-theme="dark"], -[data-bs-theme="dark"].td-navbar { - --bs-navbar-color: rgba(255, 255, 255, 0.55); - --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); - --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); - --bs-navbar-active-color: #fff; - --bs-navbar-brand-color: #fff; - --bs-navbar-brand-hover-color: #fff; - --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); - --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } - -[data-bs-theme="dark"] .navbar-toggler-icon { - --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } - -.card { - --bs-card-spacer-y: 1rem; - --bs-card-spacer-x: 1rem; - --bs-card-title-spacer-y: 0.5rem; - --bs-card-title-color: ; - --bs-card-subtitle-color: ; - --bs-card-border-width: var(--bs-border-width); - --bs-card-border-color: var(--bs-border-color-translucent); - --bs-card-border-radius: var(--bs-border-radius); - --bs-card-box-shadow: ; - --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); - --bs-card-cap-padding-y: 0.5rem; - --bs-card-cap-padding-x: 1rem; - --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03); - --bs-card-cap-color: ; - --bs-card-height: ; - --bs-card-color: ; - --bs-card-bg: var(--bs-body-bg); - --bs-card-img-overlay-padding: 1rem; - --bs-card-group-margin: 0.75rem; - position: relative; - display: flex; - flex-direction: column; - min-width: 0; - height: var(--bs-card-height); - color: var(--bs-body-color); - word-wrap: break-word; - background-color: var(--bs-card-bg); - background-clip: border-box; - border: var(--bs-card-border-width) solid var(--bs-card-border-color); - border-radius: var(--bs-card-border-radius); - box-shadow: var(--bs-card-box-shadow); } - .card > hr { - margin-right: 0; - margin-left: 0; } - .card > .list-group { - border-top: inherit; - border-bottom: inherit; } - .card > .list-group:first-child { - border-top-width: 0; - border-top-left-radius: var(--bs-card-inner-border-radius); - border-top-right-radius: var(--bs-card-inner-border-radius); } - .card > .list-group:last-child { - border-bottom-width: 0; - border-bottom-right-radius: var(--bs-card-inner-border-radius); - border-bottom-left-radius: var(--bs-card-inner-border-radius); } - .card > .card-header + .list-group, - .card > .list-group + .card-footer { - border-top: 0; } - -.card-body { - flex: 1 1 auto; - padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); - color: var(--bs-card-color); } - -.card-title { - margin-bottom: var(--bs-card-title-spacer-y); - color: var(--bs-card-title-color); } - -.card-subtitle { - margin-top: calc(-.5 * var(--bs-card-title-spacer-y)); - margin-bottom: 0; - color: var(--bs-card-subtitle-color); } - -.card-text:last-child { - margin-bottom: 0; } - -.card-link + .card-link { - margin-left: var(--bs-card-spacer-x); } - -.card-header { - padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); - margin-bottom: 0; - color: var(--bs-card-cap-color); - background-color: var(--bs-card-cap-bg); - border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); } - .card-header:first-child { - border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; } - -.card-footer { - padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); - color: var(--bs-card-cap-color); - background-color: var(--bs-card-cap-bg); - border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); } - .card-footer:last-child { - border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); } - -.card-header-tabs { - margin-right: calc(-.5 * var(--bs-card-cap-padding-x)); - margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); - margin-left: calc(-.5 * var(--bs-card-cap-padding-x)); - border-bottom: 0; } - .card-header-tabs .nav-link.active { - background-color: var(--bs-card-bg); - border-bottom-color: var(--bs-card-bg); } - -.card-header-pills { - margin-right: calc(-.5 * var(--bs-card-cap-padding-x)); - margin-left: calc(-.5 * var(--bs-card-cap-padding-x)); } - -.card-img-overlay { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: var(--bs-card-img-overlay-padding); - border-radius: var(--bs-card-inner-border-radius); } - -.card-img, -.card-img-top, -.card-img-bottom { - width: 100%; } - -.card-img, -.card-img-top { - border-top-left-radius: var(--bs-card-inner-border-radius); - border-top-right-radius: var(--bs-card-inner-border-radius); } - -.card-img, -.card-img-bottom { - border-bottom-right-radius: var(--bs-card-inner-border-radius); - border-bottom-left-radius: var(--bs-card-inner-border-radius); } - -.card-group > .card { - margin-bottom: var(--bs-card-group-margin); } - -@media (min-width: 576px) { - .card-group { - display: flex; - flex-flow: row wrap; } - .card-group > .card { - flex: 1 0 0%; - margin-bottom: 0; } - .card-group > .card + .card { - margin-left: 0; - border-left: 0; } - .card-group > .card:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; } - .card-group > .card:not(:last-child) .card-img-top, - .card-group > .card:not(:last-child) .card-header { - border-top-right-radius: 0; } - .card-group > .card:not(:last-child) .card-img-bottom, - .card-group > .card:not(:last-child) .card-footer { - border-bottom-right-radius: 0; } - .card-group > .card:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; } - .card-group > .card:not(:first-child) .card-img-top, - .card-group > .card:not(:first-child) .card-header { - border-top-left-radius: 0; } - .card-group > .card:not(:first-child) .card-img-bottom, - .card-group > .card:not(:first-child) .card-footer { - border-bottom-left-radius: 0; } } - -.accordion { - --bs-accordion-color: var(--bs-body-color); - --bs-accordion-bg: var(--bs-body-bg); - --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; - --bs-accordion-border-color: var(--bs-border-color); - --bs-accordion-border-width: var(--bs-border-width); - --bs-accordion-border-radius: var(--bs-border-radius); - --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); - --bs-accordion-btn-padding-x: 1.25rem; - --bs-accordion-btn-padding-y: 1rem; - --bs-accordion-btn-color: var(--bs-body-color); - --bs-accordion-btn-bg: var(--bs-accordion-bg); - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); - --bs-accordion-btn-icon-width: 1.25rem; - --bs-accordion-btn-icon-transform: rotate(-180deg); - --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23132839' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); - --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(48, 99, 142, 0.25); - --bs-accordion-body-padding-x: 1.25rem; - --bs-accordion-body-padding-y: 1rem; - --bs-accordion-active-color: var(--bs-primary-text-emphasis); - --bs-accordion-active-bg: var(--bs-primary-bg-subtle); } - -.accordion-button { - position: relative; - display: flex; - align-items: center; - width: 100%; - padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); - font-size: 1rem; - color: var(--bs-accordion-btn-color); - text-align: left; - background-color: var(--bs-accordion-btn-bg); - border: 0; - border-radius: 0; - overflow-anchor: none; - transition: var(--bs-accordion-transition); } - @media (prefers-reduced-motion: reduce) { - .accordion-button { - transition: none; } } - .accordion-button:not(.collapsed) { - color: var(--bs-accordion-active-color); - background-color: var(--bs-accordion-active-bg); - box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); } - .accordion-button:not(.collapsed)::after { - background-image: var(--bs-accordion-btn-active-icon); - transform: var(--bs-accordion-btn-icon-transform); } - .accordion-button::after { - flex-shrink: 0; - width: var(--bs-accordion-btn-icon-width); - height: var(--bs-accordion-btn-icon-width); - margin-left: auto; - content: ""; - background-image: var(--bs-accordion-btn-icon); - background-repeat: no-repeat; - background-size: var(--bs-accordion-btn-icon-width); - transition: var(--bs-accordion-btn-icon-transition); } - @media (prefers-reduced-motion: reduce) { - .accordion-button::after { - transition: none; } } - .accordion-button:hover { - z-index: 2; } - .accordion-button:focus { - z-index: 3; - outline: 0; - box-shadow: var(--bs-accordion-btn-focus-box-shadow); } - -.accordion-header { - margin-bottom: 0; } - -.accordion-item { - color: var(--bs-accordion-color); - background-color: var(--bs-accordion-bg); - border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); } - .accordion-item:first-of-type { - border-top-left-radius: var(--bs-accordion-border-radius); - border-top-right-radius: var(--bs-accordion-border-radius); } - .accordion-item:first-of-type > .accordion-header .accordion-button { - border-top-left-radius: var(--bs-accordion-inner-border-radius); - border-top-right-radius: var(--bs-accordion-inner-border-radius); } - .accordion-item:not(:first-of-type) { - border-top: 0; } - .accordion-item:last-of-type { - border-bottom-right-radius: var(--bs-accordion-border-radius); - border-bottom-left-radius: var(--bs-accordion-border-radius); } - .accordion-item:last-of-type > .accordion-header .accordion-button.collapsed { - border-bottom-right-radius: var(--bs-accordion-inner-border-radius); - border-bottom-left-radius: var(--bs-accordion-inner-border-radius); } - .accordion-item:last-of-type > .accordion-collapse { - border-bottom-right-radius: var(--bs-accordion-border-radius); - border-bottom-left-radius: var(--bs-accordion-border-radius); } - -.accordion-body { - padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); } - -.accordion-flush > .accordion-item { - border-right: 0; - border-left: 0; - border-radius: 0; } - .accordion-flush > .accordion-item:first-child { - border-top: 0; } - .accordion-flush > .accordion-item:last-child { - border-bottom: 0; } - .accordion-flush > .accordion-item > .accordion-header .accordion-button, .accordion-flush > .accordion-item > .accordion-header .accordion-button.collapsed { - border-radius: 0; } - .accordion-flush > .accordion-item > .accordion-collapse { - border-radius: 0; } - -[data-bs-theme="dark"] .accordion-button::after { - --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2383a1bb'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); - --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2383a1bb'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } - -.breadcrumb { - --bs-breadcrumb-padding-x: 0; - --bs-breadcrumb-padding-y: 0; - --bs-breadcrumb-margin-bottom: 1rem; - --bs-breadcrumb-bg: ; - --bs-breadcrumb-border-radius: ; - --bs-breadcrumb-divider-color: var(--bs-secondary-color); - --bs-breadcrumb-item-padding-x: 0.5rem; - --bs-breadcrumb-item-active-color: var(--bs-secondary-color); - display: flex; - flex-wrap: wrap; - padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); - margin-bottom: var(--bs-breadcrumb-margin-bottom); - font-size: var(--bs-breadcrumb-font-size); - list-style: none; - background-color: var(--bs-breadcrumb-bg); - border-radius: var(--bs-breadcrumb-border-radius); } - -.breadcrumb-item + .breadcrumb-item { - padding-left: var(--bs-breadcrumb-item-padding-x); } - .breadcrumb-item + .breadcrumb-item::before { - float: left; - padding-right: var(--bs-breadcrumb-item-padding-x); - color: var(--bs-breadcrumb-divider-color); - content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; } - -.breadcrumb-item.active { - color: var(--bs-breadcrumb-item-active-color); } - -.pagination { - --bs-pagination-padding-x: 0.75rem; - --bs-pagination-padding-y: 0.375rem; - --bs-pagination-font-size: 1rem; - --bs-pagination-color: #6c757d; - --bs-pagination-bg: var(--bs-body-bg); - --bs-pagination-border-width: var(--bs-border-width); - --bs-pagination-border-color: var(--bs-border-color); - --bs-pagination-border-radius: var(--bs-border-radius); - --bs-pagination-hover-color: var(--bs-link-hover-color); - --bs-pagination-hover-bg: var(--bs-tertiary-bg); - --bs-pagination-hover-border-color: var(--bs-border-color); - --bs-pagination-focus-color: var(--bs-link-hover-color); - --bs-pagination-focus-bg: var(--bs-secondary-bg); - --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(48, 99, 142, 0.25); - --bs-pagination-active-color: #fff; - --bs-pagination-active-bg: #30638e; - --bs-pagination-active-border-color: #30638e; - --bs-pagination-disabled-color: #dee2e6; - --bs-pagination-disabled-bg: var(--bs-secondary-bg); - --bs-pagination-disabled-border-color: var(--bs-border-color); - display: flex; - padding-left: 0; - list-style: none; } - -.page-link { - position: relative; - display: block; - padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); - font-size: var(--bs-pagination-font-size); - color: var(--bs-pagination-color); - text-decoration: none; - background-color: var(--bs-pagination-bg); - border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); - transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .page-link { - transition: none; } } - .page-link:hover { - z-index: 2; - color: var(--bs-pagination-hover-color); - background-color: var(--bs-pagination-hover-bg); - border-color: var(--bs-pagination-hover-border-color); } - .page-link:focus { - z-index: 3; - color: var(--bs-pagination-focus-color); - background-color: var(--bs-pagination-focus-bg); - outline: 0; - box-shadow: var(--bs-pagination-focus-box-shadow); } - .page-link.active, .active > .page-link { - z-index: 3; - color: var(--bs-pagination-active-color); - background-color: var(--bs-pagination-active-bg); - background-image: var(--bs-gradient); - border-color: var(--bs-pagination-active-border-color); } - .page-link.disabled, .disabled > .page-link { - color: var(--bs-pagination-disabled-color); - pointer-events: none; - background-color: var(--bs-pagination-disabled-bg); - border-color: var(--bs-pagination-disabled-border-color); } - -.page-item:not(:first-child) .page-link { - margin-left: calc(var(--bs-border-width) * -1); } - -.page-item:first-child .page-link { - border-top-left-radius: var(--bs-pagination-border-radius); - border-bottom-left-radius: var(--bs-pagination-border-radius); } - -.page-item:last-child .page-link { - border-top-right-radius: var(--bs-pagination-border-radius); - border-bottom-right-radius: var(--bs-pagination-border-radius); } - -.pagination-lg { - --bs-pagination-padding-x: 1.5rem; - --bs-pagination-padding-y: 0.75rem; - --bs-pagination-font-size: 1.25rem; - --bs-pagination-border-radius: var(--bs-border-radius-lg); } - -.pagination-sm { - --bs-pagination-padding-x: 0.5rem; - --bs-pagination-padding-y: 0.25rem; - --bs-pagination-font-size: 0.875rem; - --bs-pagination-border-radius: var(--bs-border-radius-sm); } - -.badge { - --bs-badge-padding-x: 0.65em; - --bs-badge-padding-y: 0.35em; - --bs-badge-font-size: 0.75em; - --bs-badge-font-weight: 700; - --bs-badge-color: #fff; - --bs-badge-border-radius: var(--bs-border-radius); - display: inline-block; - padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); - font-size: var(--bs-badge-font-size); - font-weight: var(--bs-badge-font-weight); - line-height: 1; - color: var(--bs-badge-color); - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: var(--bs-badge-border-radius); - background-image: var(--bs-gradient); } - .badge:empty { - display: none; } - -.btn .badge, div.drawio button .badge, .td-blog .td-rss-button .badge { - position: relative; - top: -1px; } - -.alert { - --bs-alert-bg: transparent; - --bs-alert-padding-x: 1rem; - --bs-alert-padding-y: 1rem; - --bs-alert-margin-bottom: 1rem; - --bs-alert-color: inherit; - --bs-alert-border-color: transparent; - --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color); - --bs-alert-border-radius: var(--bs-border-radius); - --bs-alert-link-color: inherit; - position: relative; - padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); - margin-bottom: var(--bs-alert-margin-bottom); - color: var(--bs-alert-color); - background-color: var(--bs-alert-bg); - border: var(--bs-alert-border); - border-radius: var(--bs-alert-border-radius); } - -.alert-heading { - color: inherit; } - -.alert-link { - font-weight: 700; - color: var(--bs-alert-link-color); } - -.alert-dismissible { - padding-right: 3rem; } - .alert-dismissible .btn-close { - position: absolute; - top: 0; - right: 0; - z-index: 2; - padding: 1.25rem 1rem; } - -.alert-primary, .pageinfo-primary { - --bs-alert-color: var(--bs-primary-text-emphasis); - --bs-alert-bg: var(--bs-primary-bg-subtle); - --bs-alert-border-color: var(--bs-primary-border-subtle); - --bs-alert-link-color: var(--bs-primary-text-emphasis); } - -.alert-secondary, .pageinfo-secondary { - --bs-alert-color: var(--bs-secondary-text-emphasis); - --bs-alert-bg: var(--bs-secondary-bg-subtle); - --bs-alert-border-color: var(--bs-secondary-border-subtle); - --bs-alert-link-color: var(--bs-secondary-text-emphasis); } - -.alert-success, .pageinfo-success { - --bs-alert-color: var(--bs-success-text-emphasis); - --bs-alert-bg: var(--bs-success-bg-subtle); - --bs-alert-border-color: var(--bs-success-border-subtle); - --bs-alert-link-color: var(--bs-success-text-emphasis); } - -.alert-info, .pageinfo-info { - --bs-alert-color: var(--bs-info-text-emphasis); - --bs-alert-bg: var(--bs-info-bg-subtle); - --bs-alert-border-color: var(--bs-info-border-subtle); - --bs-alert-link-color: var(--bs-info-text-emphasis); } - -.alert-warning, .pageinfo-warning { - --bs-alert-color: var(--bs-warning-text-emphasis); - --bs-alert-bg: var(--bs-warning-bg-subtle); - --bs-alert-border-color: var(--bs-warning-border-subtle); - --bs-alert-link-color: var(--bs-warning-text-emphasis); } - -.alert-danger, .pageinfo-danger { - --bs-alert-color: var(--bs-danger-text-emphasis); - --bs-alert-bg: var(--bs-danger-bg-subtle); - --bs-alert-border-color: var(--bs-danger-border-subtle); - --bs-alert-link-color: var(--bs-danger-text-emphasis); } - -.alert-light, .pageinfo-light { - --bs-alert-color: var(--bs-light-text-emphasis); - --bs-alert-bg: var(--bs-light-bg-subtle); - --bs-alert-border-color: var(--bs-light-border-subtle); - --bs-alert-link-color: var(--bs-light-text-emphasis); } - -.alert-dark, .pageinfo-dark { - --bs-alert-color: var(--bs-dark-text-emphasis); - --bs-alert-bg: var(--bs-dark-bg-subtle); - --bs-alert-border-color: var(--bs-dark-border-subtle); - --bs-alert-link-color: var(--bs-dark-text-emphasis); } - -@keyframes progress-bar-stripes { - 0% { - background-position-x: 1rem; } } - -.progress, -.progress-stacked { - --bs-progress-height: 1rem; - --bs-progress-font-size: 0.75rem; - --bs-progress-bg: var(--bs-secondary-bg); - --bs-progress-border-radius: var(--bs-border-radius); - --bs-progress-box-shadow: var(--bs-box-shadow-inset); - --bs-progress-bar-color: #fff; - --bs-progress-bar-bg: #30638e; - --bs-progress-bar-transition: width 0.6s ease; - display: flex; - height: var(--bs-progress-height); - overflow: hidden; - font-size: var(--bs-progress-font-size); - background-color: var(--bs-progress-bg); - border-radius: var(--bs-progress-border-radius); - box-shadow: var(--bs-progress-box-shadow); } - -.progress-bar { - display: flex; - flex-direction: column; - justify-content: center; - overflow: hidden; - color: var(--bs-progress-bar-color); - text-align: center; - white-space: nowrap; - background-color: var(--bs-progress-bar-bg); - transition: var(--bs-progress-bar-transition); } - @media (prefers-reduced-motion: reduce) { - .progress-bar { - transition: none; } } -.progress-bar-striped { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: var(--bs-progress-height) var(--bs-progress-height); } - -.progress-stacked > .progress { - overflow: visible; } - -.progress-stacked > .progress > .progress-bar { - width: 100%; } - -.progress-bar-animated { - animation: 1s linear infinite progress-bar-stripes; } - @media (prefers-reduced-motion: reduce) { - .progress-bar-animated { - animation: none; } } -.list-group { - --bs-list-group-color: var(--bs-body-color); - --bs-list-group-bg: var(--bs-body-bg); - --bs-list-group-border-color: var(--bs-border-color); - --bs-list-group-border-width: var(--bs-border-width); - --bs-list-group-border-radius: var(--bs-border-radius); - --bs-list-group-item-padding-x: 1rem; - --bs-list-group-item-padding-y: 0.5rem; - --bs-list-group-action-color: var(--bs-secondary-color); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-tertiary-bg); - --bs-list-group-action-active-color: var(--bs-body-color); - --bs-list-group-action-active-bg: var(--bs-secondary-bg); - --bs-list-group-disabled-color: var(--bs-secondary-color); - --bs-list-group-disabled-bg: var(--bs-body-bg); - --bs-list-group-active-color: #fff; - --bs-list-group-active-bg: #30638e; - --bs-list-group-active-border-color: #30638e; - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - border-radius: var(--bs-list-group-border-radius); } - -.list-group-numbered { - list-style-type: none; - counter-reset: section; } - .list-group-numbered > .list-group-item::before { - content: counters(section, ".") ". "; - counter-increment: section; } - -.list-group-item-action { - width: 100%; - color: var(--bs-list-group-action-color); - text-align: inherit; } - .list-group-item-action:hover, .list-group-item-action:focus { - z-index: 1; - color: var(--bs-list-group-action-hover-color); - text-decoration: none; - background-color: var(--bs-list-group-action-hover-bg); } - .list-group-item-action:active { - color: var(--bs-list-group-action-active-color); - background-color: var(--bs-list-group-action-active-bg); } - -.list-group-item { - position: relative; - display: block; - padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); - color: var(--bs-list-group-color); - text-decoration: none; - background-color: var(--bs-list-group-bg); - border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); } - .list-group-item:first-child { - border-top-left-radius: inherit; - border-top-right-radius: inherit; } - .list-group-item:last-child { - border-bottom-right-radius: inherit; - border-bottom-left-radius: inherit; } - .list-group-item.disabled, .list-group-item:disabled { - color: var(--bs-list-group-disabled-color); - pointer-events: none; - background-color: var(--bs-list-group-disabled-bg); } - .list-group-item.active { - z-index: 2; - color: var(--bs-list-group-active-color); - background-color: var(--bs-list-group-active-bg); - border-color: var(--bs-list-group-active-border-color); } - .list-group-item + .list-group-item { - border-top-width: 0; } - .list-group-item + .list-group-item.active { - margin-top: calc(-1 * var(--bs-list-group-border-width)); - border-top-width: var(--bs-list-group-border-width); } - -.list-group-horizontal { - flex-direction: row; } - .list-group-horizontal > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } - -@media (min-width: 576px) { - .list-group-horizontal-sm { - flex-direction: row; } - .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal-sm > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal-sm > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal-sm > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } } - -@media (min-width: 768px) { - .list-group-horizontal-md { - flex-direction: row; } - .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal-md > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal-md > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal-md > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } } - -@media (min-width: 992px) { - .list-group-horizontal-lg { - flex-direction: row; } - .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal-lg > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal-lg > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal-lg > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } } - -@media (min-width: 1200px) { - .list-group-horizontal-xl { - flex-direction: row; } - .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal-xl > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal-xl > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal-xl > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } } - -@media (min-width: 1400px) { - .list-group-horizontal-xxl { - flex-direction: row; } - .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) { - border-bottom-left-radius: var(--bs-list-group-border-radius); - border-top-right-radius: 0; } - .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { - border-top-right-radius: var(--bs-list-group-border-radius); - border-bottom-left-radius: 0; } - .list-group-horizontal-xxl > .list-group-item.active { - margin-top: 0; } - .list-group-horizontal-xxl > .list-group-item + .list-group-item { - border-top-width: var(--bs-list-group-border-width); - border-left-width: 0; } - .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { - margin-left: calc(-1 * var(--bs-list-group-border-width)); - border-left-width: var(--bs-list-group-border-width); } } - -.list-group-flush { - border-radius: 0; } - .list-group-flush > .list-group-item { - border-width: 0 0 var(--bs-list-group-border-width); } - .list-group-flush > .list-group-item:last-child { - border-bottom-width: 0; } - -.list-group-item-primary { - --bs-list-group-color: var(--bs-primary-text-emphasis); - --bs-list-group-bg: var(--bs-primary-bg-subtle); - --bs-list-group-border-color: var(--bs-primary-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-primary-border-subtle); - --bs-list-group-active-color: var(--bs-primary-bg-subtle); - --bs-list-group-active-bg: var(--bs-primary-text-emphasis); - --bs-list-group-active-border-color: var(--bs-primary-text-emphasis); } - -.list-group-item-secondary { - --bs-list-group-color: var(--bs-secondary-text-emphasis); - --bs-list-group-bg: var(--bs-secondary-bg-subtle); - --bs-list-group-border-color: var(--bs-secondary-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle); - --bs-list-group-active-color: var(--bs-secondary-bg-subtle); - --bs-list-group-active-bg: var(--bs-secondary-text-emphasis); - --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis); } - -.list-group-item-success { - --bs-list-group-color: var(--bs-success-text-emphasis); - --bs-list-group-bg: var(--bs-success-bg-subtle); - --bs-list-group-border-color: var(--bs-success-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-success-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-success-border-subtle); - --bs-list-group-active-color: var(--bs-success-bg-subtle); - --bs-list-group-active-bg: var(--bs-success-text-emphasis); - --bs-list-group-active-border-color: var(--bs-success-text-emphasis); } - -.list-group-item-info { - --bs-list-group-color: var(--bs-info-text-emphasis); - --bs-list-group-bg: var(--bs-info-bg-subtle); - --bs-list-group-border-color: var(--bs-info-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-info-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-info-border-subtle); - --bs-list-group-active-color: var(--bs-info-bg-subtle); - --bs-list-group-active-bg: var(--bs-info-text-emphasis); - --bs-list-group-active-border-color: var(--bs-info-text-emphasis); } - -.list-group-item-warning { - --bs-list-group-color: var(--bs-warning-text-emphasis); - --bs-list-group-bg: var(--bs-warning-bg-subtle); - --bs-list-group-border-color: var(--bs-warning-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-warning-border-subtle); - --bs-list-group-active-color: var(--bs-warning-bg-subtle); - --bs-list-group-active-bg: var(--bs-warning-text-emphasis); - --bs-list-group-active-border-color: var(--bs-warning-text-emphasis); } - -.list-group-item-danger { - --bs-list-group-color: var(--bs-danger-text-emphasis); - --bs-list-group-bg: var(--bs-danger-bg-subtle); - --bs-list-group-border-color: var(--bs-danger-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-danger-border-subtle); - --bs-list-group-active-color: var(--bs-danger-bg-subtle); - --bs-list-group-active-bg: var(--bs-danger-text-emphasis); - --bs-list-group-active-border-color: var(--bs-danger-text-emphasis); } - -.list-group-item-light { - --bs-list-group-color: var(--bs-light-text-emphasis); - --bs-list-group-bg: var(--bs-light-bg-subtle); - --bs-list-group-border-color: var(--bs-light-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-light-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-light-border-subtle); - --bs-list-group-active-color: var(--bs-light-bg-subtle); - --bs-list-group-active-bg: var(--bs-light-text-emphasis); - --bs-list-group-active-border-color: var(--bs-light-text-emphasis); } - -.list-group-item-dark { - --bs-list-group-color: var(--bs-dark-text-emphasis); - --bs-list-group-bg: var(--bs-dark-bg-subtle); - --bs-list-group-border-color: var(--bs-dark-border-subtle); - --bs-list-group-action-hover-color: var(--bs-emphasis-color); - --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle); - --bs-list-group-action-active-color: var(--bs-emphasis-color); - --bs-list-group-action-active-bg: var(--bs-dark-border-subtle); - --bs-list-group-active-color: var(--bs-dark-bg-subtle); - --bs-list-group-active-bg: var(--bs-dark-text-emphasis); - --bs-list-group-active-border-color: var(--bs-dark-text-emphasis); } - -.btn-close { - --bs-btn-close-color: #000; - --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e"); - --bs-btn-close-opacity: 0.5; - --bs-btn-close-hover-opacity: 0.75; - --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(48, 99, 142, 0.25); - --bs-btn-close-focus-opacity: 1; - --bs-btn-close-disabled-opacity: 0.25; - --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%); - box-sizing: content-box; - width: 1em; - height: 1em; - padding: 0.25em 0.25em; - color: var(--bs-btn-close-color); - background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat; - border: 0; - border-radius: 0.375rem; - opacity: var(--bs-btn-close-opacity); } - .btn-close:hover { - color: var(--bs-btn-close-color); - text-decoration: none; - opacity: var(--bs-btn-close-hover-opacity); } - .btn-close:focus { - outline: 0; - box-shadow: var(--bs-btn-close-focus-shadow); - opacity: var(--bs-btn-close-focus-opacity); } - .btn-close:disabled, .btn-close.disabled { - pointer-events: none; - user-select: none; - opacity: var(--bs-btn-close-disabled-opacity); } - -.btn-close-white { - filter: var(--bs-btn-close-white-filter); } - -[data-bs-theme="dark"] .btn-close { - filter: var(--bs-btn-close-white-filter); } - -.toast { - --bs-toast-zindex: 1090; - --bs-toast-padding-x: 0.75rem; - --bs-toast-padding-y: 0.5rem; - --bs-toast-spacing: 1.5rem; - --bs-toast-max-width: 350px; - --bs-toast-font-size: 0.875rem; - --bs-toast-color: ; - --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85); - --bs-toast-border-width: var(--bs-border-width); - --bs-toast-border-color: var(--bs-border-color-translucent); - --bs-toast-border-radius: var(--bs-border-radius); - --bs-toast-box-shadow: var(--bs-box-shadow); - --bs-toast-header-color: var(--bs-secondary-color); - --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85); - --bs-toast-header-border-color: var(--bs-border-color-translucent); - width: var(--bs-toast-max-width); - max-width: 100%; - font-size: var(--bs-toast-font-size); - color: var(--bs-toast-color); - pointer-events: auto; - background-color: var(--bs-toast-bg); - background-clip: padding-box; - border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); - box-shadow: var(--bs-toast-box-shadow); - border-radius: var(--bs-toast-border-radius); } - .toast.showing { - opacity: 0; } - .toast:not(.show) { - display: none; } - -.toast-container { - --bs-toast-zindex: 1090; - position: absolute; - z-index: var(--bs-toast-zindex); - width: max-content; - max-width: 100%; - pointer-events: none; } - .toast-container > :not(:last-child) { - margin-bottom: var(--bs-toast-spacing); } - -.toast-header { - display: flex; - align-items: center; - padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); - color: var(--bs-toast-header-color); - background-color: var(--bs-toast-header-bg); - background-clip: padding-box; - border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); - border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); - border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); } - .toast-header .btn-close { - margin-right: calc(-.5 * var(--bs-toast-padding-x)); - margin-left: var(--bs-toast-padding-x); } - -.toast-body { - padding: var(--bs-toast-padding-x); - word-wrap: break-word; } - -.modal { - --bs-modal-zindex: 1055; - --bs-modal-width: 500px; - --bs-modal-padding: 1rem; - --bs-modal-margin: 0.5rem; - --bs-modal-color: ; - --bs-modal-bg: var(--bs-body-bg); - --bs-modal-border-color: var(--bs-border-color-translucent); - --bs-modal-border-width: var(--bs-border-width); - --bs-modal-border-radius: var(--bs-border-radius-lg); - --bs-modal-box-shadow: var(--bs-box-shadow-sm); - --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width))); - --bs-modal-header-padding-x: 1rem; - --bs-modal-header-padding-y: 1rem; - --bs-modal-header-padding: 1rem 1rem; - --bs-modal-header-border-color: var(--bs-border-color); - --bs-modal-header-border-width: var(--bs-border-width); - --bs-modal-title-line-height: 1.5; - --bs-modal-footer-gap: 0.5rem; - --bs-modal-footer-bg: ; - --bs-modal-footer-border-color: var(--bs-border-color); - --bs-modal-footer-border-width: var(--bs-border-width); - position: fixed; - top: 0; - left: 0; - z-index: var(--bs-modal-zindex); - display: none; - width: 100%; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - outline: 0; } - -.modal-dialog { - position: relative; - width: auto; - margin: var(--bs-modal-margin); - pointer-events: none; } - .modal.fade .modal-dialog { - transition: transform 0.3s ease-out; - transform: translate(0, -50px); } - @media (prefers-reduced-motion: reduce) { - .modal.fade .modal-dialog { - transition: none; } } - .modal.show .modal-dialog { - transform: none; } - .modal.modal-static .modal-dialog { - transform: scale(1.02); } - -.modal-dialog-scrollable { - height: calc(100% - var(--bs-modal-margin) * 2); } - .modal-dialog-scrollable .modal-content { - max-height: 100%; - overflow: hidden; } - .modal-dialog-scrollable .modal-body { - overflow-y: auto; } - -.modal-dialog-centered { - display: flex; - align-items: center; - min-height: calc(100% - var(--bs-modal-margin) * 2); } - -.modal-content { - position: relative; - display: flex; - flex-direction: column; - width: 100%; - color: var(--bs-modal-color); - pointer-events: auto; - background-color: var(--bs-modal-bg); - background-clip: padding-box; - border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); - border-radius: var(--bs-modal-border-radius); - box-shadow: var(--bs-modal-box-shadow); - outline: 0; } - -.modal-backdrop { - --bs-backdrop-zindex: 1050; - --bs-backdrop-bg: #000; - --bs-backdrop-opacity: 0.5; - position: fixed; - top: 0; - left: 0; - z-index: var(--bs-backdrop-zindex); - width: 100vw; - height: 100vh; - background-color: var(--bs-backdrop-bg); } - .modal-backdrop.fade { - opacity: 0; } - .modal-backdrop.show { - opacity: var(--bs-backdrop-opacity); } - -.modal-header { - display: flex; - flex-shrink: 0; - align-items: center; - padding: var(--bs-modal-header-padding); - border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); - border-top-left-radius: var(--bs-modal-inner-border-radius); - border-top-right-radius: var(--bs-modal-inner-border-radius); } - .modal-header .btn-close { - padding: calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5); - margin: calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto; } - -.modal-title { - margin-bottom: 0; - line-height: var(--bs-modal-title-line-height); } - -.modal-body { - position: relative; - flex: 1 1 auto; - padding: var(--bs-modal-padding); } - -.modal-footer { - display: flex; - flex-shrink: 0; - flex-wrap: wrap; - align-items: center; - justify-content: flex-end; - padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5); - background-color: var(--bs-modal-footer-bg); - border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); - border-bottom-right-radius: var(--bs-modal-inner-border-radius); - border-bottom-left-radius: var(--bs-modal-inner-border-radius); } - .modal-footer > * { - margin: calc(var(--bs-modal-footer-gap) * .5); } - -@media (min-width: 576px) { - .modal { - --bs-modal-margin: 1.75rem; - --bs-modal-box-shadow: var(--bs-box-shadow); } - .modal-dialog { - max-width: var(--bs-modal-width); - margin-right: auto; - margin-left: auto; } - .modal-sm { - --bs-modal-width: 300px; } } - -@media (min-width: 992px) { - .modal-lg, - .modal-xl { - --bs-modal-width: 800px; } } - -@media (min-width: 1200px) { - .modal-xl { - --bs-modal-width: 1140px; } } - -.modal-fullscreen { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen .modal-header, - .modal-fullscreen .modal-footer { - border-radius: 0; } - .modal-fullscreen .modal-body { - overflow-y: auto; } - -@media (max-width: 575.98px) { - .modal-fullscreen-sm-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen-sm-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen-sm-down .modal-header, - .modal-fullscreen-sm-down .modal-footer { - border-radius: 0; } - .modal-fullscreen-sm-down .modal-body { - overflow-y: auto; } } - -@media (max-width: 767.98px) { - .modal-fullscreen-md-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen-md-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen-md-down .modal-header, - .modal-fullscreen-md-down .modal-footer { - border-radius: 0; } - .modal-fullscreen-md-down .modal-body { - overflow-y: auto; } } - -@media (max-width: 991.98px) { - .modal-fullscreen-lg-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen-lg-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen-lg-down .modal-header, - .modal-fullscreen-lg-down .modal-footer { - border-radius: 0; } - .modal-fullscreen-lg-down .modal-body { - overflow-y: auto; } } - -@media (max-width: 1199.98px) { - .modal-fullscreen-xl-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen-xl-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen-xl-down .modal-header, - .modal-fullscreen-xl-down .modal-footer { - border-radius: 0; } - .modal-fullscreen-xl-down .modal-body { - overflow-y: auto; } } - -@media (max-width: 1399.98px) { - .modal-fullscreen-xxl-down { - width: 100vw; - max-width: none; - height: 100%; - margin: 0; } - .modal-fullscreen-xxl-down .modal-content { - height: 100%; - border: 0; - border-radius: 0; } - .modal-fullscreen-xxl-down .modal-header, - .modal-fullscreen-xxl-down .modal-footer { - border-radius: 0; } - .modal-fullscreen-xxl-down .modal-body { - overflow-y: auto; } } - -.tooltip { - --bs-tooltip-zindex: 1080; - --bs-tooltip-max-width: 200px; - --bs-tooltip-padding-x: 0.5rem; - --bs-tooltip-padding-y: 0.25rem; - --bs-tooltip-margin: ; - --bs-tooltip-font-size: 0.875rem; - --bs-tooltip-color: var(--bs-body-bg); - --bs-tooltip-bg: var(--bs-emphasis-color); - --bs-tooltip-border-radius: var(--bs-border-radius); - --bs-tooltip-opacity: 0.9; - --bs-tooltip-arrow-width: 0.8rem; - --bs-tooltip-arrow-height: 0.4rem; - z-index: var(--bs-tooltip-zindex); - display: block; - margin: var(--bs-tooltip-margin); - font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - white-space: normal; - word-spacing: normal; - line-break: auto; - font-size: var(--bs-tooltip-font-size); - word-wrap: break-word; - opacity: 0; } - .tooltip.show { - opacity: var(--bs-tooltip-opacity); } - .tooltip .tooltip-arrow { - display: block; - width: var(--bs-tooltip-arrow-width); - height: var(--bs-tooltip-arrow-height); } - .tooltip .tooltip-arrow::before { - position: absolute; - content: ""; - border-color: transparent; - border-style: solid; } - -.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow { - bottom: calc(-1 * var(--bs-tooltip-arrow-height)); } - .bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before { - top: -1px; - border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0; - border-top-color: var(--bs-tooltip-bg); } - -/* rtl:begin:ignore */ -.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow { - left: calc(-1 * var(--bs-tooltip-arrow-height)); - width: var(--bs-tooltip-arrow-height); - height: var(--bs-tooltip-arrow-width); } - .bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before { - right: -1px; - border-width: calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0; - border-right-color: var(--bs-tooltip-bg); } - -/* rtl:end:ignore */ -.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow { - top: calc(-1 * var(--bs-tooltip-arrow-height)); } - .bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before { - bottom: -1px; - border-width: 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height); - border-bottom-color: var(--bs-tooltip-bg); } - -/* rtl:begin:ignore */ -.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow { - right: calc(-1 * var(--bs-tooltip-arrow-height)); - width: var(--bs-tooltip-arrow-height); - height: var(--bs-tooltip-arrow-width); } - .bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before { - left: -1px; - border-width: calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height); - border-left-color: var(--bs-tooltip-bg); } - -/* rtl:end:ignore */ -.tooltip-inner { - max-width: var(--bs-tooltip-max-width); - padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); - color: var(--bs-tooltip-color); - text-align: center; - background-color: var(--bs-tooltip-bg); - border-radius: var(--bs-tooltip-border-radius); } - -.popover { - --bs-popover-zindex: 1070; - --bs-popover-max-width: 276px; - --bs-popover-font-size: 0.875rem; - --bs-popover-bg: var(--bs-body-bg); - --bs-popover-border-width: var(--bs-border-width); - --bs-popover-border-color: var(--bs-border-color-translucent); - --bs-popover-border-radius: var(--bs-border-radius-lg); - --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width)); - --bs-popover-box-shadow: var(--bs-box-shadow); - --bs-popover-header-padding-x: 1rem; - --bs-popover-header-padding-y: 0.5rem; - --bs-popover-header-font-size: 1rem; - --bs-popover-header-color: inherit; - --bs-popover-header-bg: var(--bs-secondary-bg); - --bs-popover-body-padding-x: 1rem; - --bs-popover-body-padding-y: 1rem; - --bs-popover-body-color: var(--bs-body-color); - --bs-popover-arrow-width: 1rem; - --bs-popover-arrow-height: 0.5rem; - --bs-popover-arrow-border: var(--bs-popover-border-color); - z-index: var(--bs-popover-zindex); - display: block; - max-width: var(--bs-popover-max-width); - font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - white-space: normal; - word-spacing: normal; - line-break: auto; - font-size: var(--bs-popover-font-size); - word-wrap: break-word; - background-color: var(--bs-popover-bg); - background-clip: padding-box; - border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); - border-radius: var(--bs-popover-border-radius); - box-shadow: var(--bs-popover-box-shadow); } - .popover .popover-arrow { - display: block; - width: var(--bs-popover-arrow-width); - height: var(--bs-popover-arrow-height); } - .popover .popover-arrow::before, .popover .popover-arrow::after { - position: absolute; - display: block; - content: ""; - border-color: transparent; - border-style: solid; - border-width: 0; } - -.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow { - bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); } - .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after { - border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0; } - .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before { - bottom: 0; - border-top-color: var(--bs-popover-arrow-border); } - .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after { - bottom: var(--bs-popover-border-width); - border-top-color: var(--bs-popover-bg); } - -/* rtl:begin:ignore */ -.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow { - left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); - width: var(--bs-popover-arrow-height); - height: var(--bs-popover-arrow-width); } - .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after { - border-width: calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0; } - .bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before { - left: 0; - border-right-color: var(--bs-popover-arrow-border); } - .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after { - left: var(--bs-popover-border-width); - border-right-color: var(--bs-popover-bg); } - -/* rtl:end:ignore */ -.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow { - top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); } - .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after { - border-width: 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height); } - .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before { - top: 0; - border-bottom-color: var(--bs-popover-arrow-border); } - .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after { - top: var(--bs-popover-border-width); - border-bottom-color: var(--bs-popover-bg); } - -.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^="bottom"] .popover-header::before { - position: absolute; - top: 0; - left: 50%; - display: block; - width: var(--bs-popover-arrow-width); - margin-left: calc(-.5 * var(--bs-popover-arrow-width)); - content: ""; - border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); } - -/* rtl:begin:ignore */ -.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow { - right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); - width: var(--bs-popover-arrow-height); - height: var(--bs-popover-arrow-width); } - .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after { - border-width: calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height); } - .bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before { - right: 0; - border-left-color: var(--bs-popover-arrow-border); } - .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after { - right: var(--bs-popover-border-width); - border-left-color: var(--bs-popover-bg); } - -/* rtl:end:ignore */ -.popover-header { - padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); - margin-bottom: 0; - font-size: var(--bs-popover-header-font-size); - color: var(--bs-popover-header-color); - background-color: var(--bs-popover-header-bg); - border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); - border-top-left-radius: var(--bs-popover-inner-border-radius); - border-top-right-radius: var(--bs-popover-inner-border-radius); } - .popover-header:empty { - display: none; } - -.popover-body { - padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); - color: var(--bs-popover-body-color); } - -.carousel { - position: relative; } - -.carousel.pointer-event { - touch-action: pan-y; } - -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; } - .carousel-inner::after { - display: block; - clear: both; - content: ""; } - -.carousel-item { - position: relative; - display: none; - float: left; - width: 100%; - margin-right: -100%; - backface-visibility: hidden; - transition: transform 0.6s ease-in-out; } - @media (prefers-reduced-motion: reduce) { - .carousel-item { - transition: none; } } -.carousel-item.active, -.carousel-item-next, -.carousel-item-prev { - display: block; } - -.carousel-item-next:not(.carousel-item-start), -.active.carousel-item-end { - transform: translateX(100%); } - -.carousel-item-prev:not(.carousel-item-end), -.active.carousel-item-start { - transform: translateX(-100%); } - -.carousel-fade .carousel-item { - opacity: 0; - transition-property: opacity; - transform: none; } - -.carousel-fade .carousel-item.active, -.carousel-fade .carousel-item-next.carousel-item-start, -.carousel-fade .carousel-item-prev.carousel-item-end { - z-index: 1; - opacity: 1; } - -.carousel-fade .active.carousel-item-start, -.carousel-fade .active.carousel-item-end { - z-index: 0; - opacity: 0; - transition: opacity 0s 0.6s; } - @media (prefers-reduced-motion: reduce) { - .carousel-fade .active.carousel-item-start, - .carousel-fade .active.carousel-item-end { - transition: none; } } -.carousel-control-prev, -.carousel-control-next { - position: absolute; - top: 0; - bottom: 0; - z-index: 1; - display: flex; - align-items: center; - justify-content: center; - width: 15%; - padding: 0; - color: #fff; - text-align: center; - background: none; - border: 0; - opacity: 0.5; - transition: opacity 0.15s ease; } - @media (prefers-reduced-motion: reduce) { - .carousel-control-prev, - .carousel-control-next { - transition: none; } } - .carousel-control-prev:hover, .carousel-control-prev:focus, - .carousel-control-next:hover, - .carousel-control-next:focus { - color: #fff; - text-decoration: none; - outline: 0; - opacity: 0.9; } - -.carousel-control-prev { - left: 0; - background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001)); } - -.carousel-control-next { - right: 0; - background-image: linear-gradient(270deg, rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.001)); } - -.carousel-control-prev-icon, -.carousel-control-next-icon { - display: inline-block; - width: 2rem; - height: 2rem; - background-repeat: no-repeat; - background-position: 50%; - background-size: 100% 100%; } - -.carousel-control-prev-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")*/; } - -.carousel-control-next-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")*/; } - -.carousel-indicators { - position: absolute; - right: 0; - bottom: 0; - left: 0; - z-index: 2; - display: flex; - justify-content: center; - padding: 0; - margin-right: 15%; - margin-bottom: 1rem; - margin-left: 15%; } - .carousel-indicators [data-bs-target] { - box-sizing: content-box; - flex: 0 1 auto; - width: 30px; - height: 3px; - padding: 0; - margin-right: 3px; - margin-left: 3px; - text-indent: -999px; - cursor: pointer; - background-color: #fff; - background-clip: padding-box; - border: 0; - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - opacity: 0.5; - transition: opacity 0.6s ease; } - @media (prefers-reduced-motion: reduce) { - .carousel-indicators [data-bs-target] { - transition: none; } } - .carousel-indicators .active { - opacity: 1; } - -.carousel-caption { - position: absolute; - right: 15%; - bottom: 1.25rem; - left: 15%; - padding-top: 1.25rem; - padding-bottom: 1.25rem; - color: #fff; - text-align: center; } - -.carousel-dark .carousel-control-prev-icon, -.carousel-dark .carousel-control-next-icon { - filter: invert(1) grayscale(100); } - -.carousel-dark .carousel-indicators [data-bs-target] { - background-color: #000; } - -.carousel-dark .carousel-caption { - color: #000; } - -[data-bs-theme="dark"] .carousel .carousel-control-prev-icon, -[data-bs-theme="dark"] .carousel .carousel-control-next-icon, [data-bs-theme="dark"].carousel .carousel-control-prev-icon, -[data-bs-theme="dark"].carousel .carousel-control-next-icon { - filter: invert(1) grayscale(100); } - -[data-bs-theme="dark"] .carousel .carousel-indicators [data-bs-target], [data-bs-theme="dark"].carousel .carousel-indicators [data-bs-target] { - background-color: #000; } - -[data-bs-theme="dark"] .carousel .carousel-caption, [data-bs-theme="dark"].carousel .carousel-caption { - color: #000; } - -.spinner-grow, -.spinner-border { - display: inline-block; - width: var(--bs-spinner-width); - height: var(--bs-spinner-height); - vertical-align: var(--bs-spinner-vertical-align); - border-radius: 50%; - animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); } - -@keyframes spinner-border { - to { - transform: rotate(360deg) /* rtl:ignore */; } } - -.spinner-border { - --bs-spinner-width: 2rem; - --bs-spinner-height: 2rem; - --bs-spinner-vertical-align: -0.125em; - --bs-spinner-border-width: 0.25em; - --bs-spinner-animation-speed: 0.75s; - --bs-spinner-animation-name: spinner-border; - border: var(--bs-spinner-border-width) solid currentcolor; - border-right-color: transparent; } - -.spinner-border-sm { - --bs-spinner-width: 1rem; - --bs-spinner-height: 1rem; - --bs-spinner-border-width: 0.2em; } - -@keyframes spinner-grow { - 0% { - transform: scale(0); } - 50% { - opacity: 1; - transform: none; } } - -.spinner-grow { - --bs-spinner-width: 2rem; - --bs-spinner-height: 2rem; - --bs-spinner-vertical-align: -0.125em; - --bs-spinner-animation-speed: 0.75s; - --bs-spinner-animation-name: spinner-grow; - background-color: currentcolor; - opacity: 0; } - -.spinner-grow-sm { - --bs-spinner-width: 1rem; - --bs-spinner-height: 1rem; } - -@media (prefers-reduced-motion: reduce) { - .spinner-border, - .spinner-grow { - --bs-spinner-animation-speed: 1.5s; } } - -.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { - --bs-offcanvas-zindex: 1045; - --bs-offcanvas-width: 400px; - --bs-offcanvas-height: 30vh; - --bs-offcanvas-padding-x: 1rem; - --bs-offcanvas-padding-y: 1rem; - --bs-offcanvas-color: var(--bs-body-color); - --bs-offcanvas-bg: var(--bs-body-bg); - --bs-offcanvas-border-width: var(--bs-border-width); - --bs-offcanvas-border-color: var(--bs-border-color-translucent); - --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm); - --bs-offcanvas-transition: transform 0.3s ease-in-out; - --bs-offcanvas-title-line-height: 1.5; } - -@media (max-width: 575.98px) { - .offcanvas-sm { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } } - @media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { - .offcanvas-sm { - transition: none; } } -@media (max-width: 575.98px) { - .offcanvas-sm.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas-sm.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas-sm.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas-sm.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { - transform: none; } - .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { - visibility: visible; } } - -@media (min-width: 576px) { - .offcanvas-sm { - --bs-offcanvas-height: auto; - --bs-offcanvas-border-width: 0; - background-color: transparent !important; } - .offcanvas-sm .offcanvas-header { - display: none; } - .offcanvas-sm .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; - background-color: transparent !important; } } - -@media (max-width: 767.98px) { - .offcanvas-md { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } } - @media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { - .offcanvas-md { - transition: none; } } -@media (max-width: 767.98px) { - .offcanvas-md.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas-md.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas-md.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas-md.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { - transform: none; } - .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { - visibility: visible; } } - -@media (min-width: 768px) { - .offcanvas-md { - --bs-offcanvas-height: auto; - --bs-offcanvas-border-width: 0; - background-color: transparent !important; } - .offcanvas-md .offcanvas-header { - display: none; } - .offcanvas-md .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; - background-color: transparent !important; } } - -@media (max-width: 991.98px) { - .offcanvas-lg { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } } - @media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { - .offcanvas-lg { - transition: none; } } -@media (max-width: 991.98px) { - .offcanvas-lg.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas-lg.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas-lg.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas-lg.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { - transform: none; } - .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { - visibility: visible; } } - -@media (min-width: 992px) { - .offcanvas-lg { - --bs-offcanvas-height: auto; - --bs-offcanvas-border-width: 0; - background-color: transparent !important; } - .offcanvas-lg .offcanvas-header { - display: none; } - .offcanvas-lg .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; - background-color: transparent !important; } } - -@media (max-width: 1199.98px) { - .offcanvas-xl { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } } - @media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { - .offcanvas-xl { - transition: none; } } -@media (max-width: 1199.98px) { - .offcanvas-xl.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas-xl.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas-xl.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas-xl.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { - transform: none; } - .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { - visibility: visible; } } - -@media (min-width: 1200px) { - .offcanvas-xl { - --bs-offcanvas-height: auto; - --bs-offcanvas-border-width: 0; - background-color: transparent !important; } - .offcanvas-xl .offcanvas-header { - display: none; } - .offcanvas-xl .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; - background-color: transparent !important; } } - -@media (max-width: 1399.98px) { - .offcanvas-xxl { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } } - @media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { - .offcanvas-xxl { - transition: none; } } -@media (max-width: 1399.98px) { - .offcanvas-xxl.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas-xxl.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas-xxl.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas-xxl.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { - transform: none; } - .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { - visibility: visible; } } - -@media (min-width: 1400px) { - .offcanvas-xxl { - --bs-offcanvas-height: auto; - --bs-offcanvas-border-width: 0; - background-color: transparent !important; } - .offcanvas-xxl .offcanvas-header { - display: none; } - .offcanvas-xxl .offcanvas-body { - display: flex; - flex-grow: 0; - padding: 0; - overflow-y: visible; - background-color: transparent !important; } } - -.offcanvas { - position: fixed; - bottom: 0; - z-index: var(--bs-offcanvas-zindex); - display: flex; - flex-direction: column; - max-width: 100%; - color: var(--bs-offcanvas-color); - visibility: hidden; - background-color: var(--bs-offcanvas-bg); - background-clip: padding-box; - outline: 0; - box-shadow: var(--bs-offcanvas-box-shadow); - transition: var(--bs-offcanvas-transition); } - @media (prefers-reduced-motion: reduce) { - .offcanvas { - transition: none; } } - .offcanvas.offcanvas-start { - top: 0; - left: 0; - width: var(--bs-offcanvas-width); - border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(-100%); } - .offcanvas.offcanvas-end { - top: 0; - right: 0; - width: var(--bs-offcanvas-width); - border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateX(100%); } - .offcanvas.offcanvas-top { - top: 0; - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(-100%); } - .offcanvas.offcanvas-bottom { - right: 0; - left: 0; - height: var(--bs-offcanvas-height); - max-height: 100%; - border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); - transform: translateY(100%); } - .offcanvas.showing, .offcanvas.show:not(.hiding) { - transform: none; } - .offcanvas.showing, .offcanvas.hiding, .offcanvas.show { - visibility: visible; } - -.offcanvas-backdrop { - position: fixed; - top: 0; - left: 0; - z-index: 1040; - width: 100vw; - height: 100vh; - background-color: #000; } - .offcanvas-backdrop.fade { - opacity: 0; } - .offcanvas-backdrop.show { - opacity: 0.5; } - -.offcanvas-header { - display: flex; - align-items: center; - padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); } - .offcanvas-header .btn-close { - padding: calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5); - margin: calc(-.5 * var(--bs-offcanvas-padding-y)) calc(-.5 * var(--bs-offcanvas-padding-x)) calc(-.5 * var(--bs-offcanvas-padding-y)) auto; } - -.offcanvas-title { - margin-bottom: 0; - line-height: var(--bs-offcanvas-title-line-height); } - -.offcanvas-body { - flex-grow: 1; - padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); - overflow-y: auto; } - -.placeholder { - display: inline-block; - min-height: 1em; - vertical-align: middle; - cursor: wait; - background-color: currentcolor; - opacity: 0.5; } - .placeholder.btn::before, div.drawio button.placeholder::before, .td-blog .placeholder.td-rss-button::before { - display: inline-block; - content: ""; } - -.placeholder-xs { - min-height: .6em; } - -.placeholder-sm { - min-height: .8em; } - -.placeholder-lg { - min-height: 1.2em; } - -.placeholder-glow .placeholder { - animation: placeholder-glow 2s ease-in-out infinite; } - -@keyframes placeholder-glow { - 50% { - opacity: 0.2; } } - -.placeholder-wave { - mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); - mask-size: 200% 100%; - animation: placeholder-wave 2s linear infinite; } - -@keyframes placeholder-wave { - 100% { - mask-position: -200% 0%; } } - -.clearfix::after { - display: block; - clear: both; - content: ""; } - -.text-bg-primary { - color: #fff !important; - background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-secondary { - color: #000 !important; - background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-success { - color: #000 !important; - background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-info { - color: #000 !important; - background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-warning { - color: #000 !important; - background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-danger { - color: #000 !important; - background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-light { - color: #000 !important; - background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important; } - -.text-bg-dark { - color: #fff !important; - background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important; } - -.link-primary { - color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-primary:hover, .link-primary:focus { - color: RGBA(34, 69, 99, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(34, 69, 99, var(--bs-link-underline-opacity, 1)) !important; } - -.link-secondary { - color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-secondary:hover, .link-secondary:focus { - color: RGBA(255, 193, 110, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(255, 193, 110, var(--bs-link-underline-opacity, 1)) !important; } - -.link-success { - color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-success:hover, .link-success:focus { - color: RGBA(115, 156, 255, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(115, 156, 255, var(--bs-link-underline-opacity, 1)) !important; } - -.link-info { - color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-info:hover, .link-info:focus { - color: RGBA(211, 233, 232, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(211, 233, 232, var(--bs-link-underline-opacity, 1)) !important; } - -.link-warning { - color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-warning:hover, .link-warning:focus { - color: RGBA(242, 151, 140, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(242, 151, 140, var(--bs-link-underline-opacity, 1)) !important; } - -.link-danger { - color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-danger:hover, .link-danger:focus { - color: RGBA(242, 151, 140, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(242, 151, 140, var(--bs-link-underline-opacity, 1)) !important; } - -.link-light { - color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-light:hover, .link-light:focus { - color: RGBA(224, 247, 243, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(224, 247, 243, var(--bs-link-underline-opacity, 1)) !important; } - -.link-dark { - color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-dark:hover, .link-dark:focus { - color: RGBA(45, 44, 53, var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(45, 44, 53, var(--bs-link-underline-opacity, 1)) !important; } - -.link-body-emphasis { - color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important; - text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; } - .link-body-emphasis:hover, .link-body-emphasis:focus { - color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important; - text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; } - -.focus-ring:focus { - outline: 0; - box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color); } - -.icon-link { - display: inline-flex; - gap: 0.375rem; - align-items: center; - text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); - text-underline-offset: 0.25em; - backface-visibility: hidden; } - .icon-link > .bi { - flex-shrink: 0; - width: 1em; - height: 1em; - fill: currentcolor; - transition: 0.2s ease-in-out transform; } - @media (prefers-reduced-motion: reduce) { - .icon-link > .bi { - transition: none; } } -.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi { - transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0)); } - -.ratio { - position: relative; - width: 100%; } - .ratio::before { - display: block; - padding-top: var(--bs-aspect-ratio); - content: ""; } - .ratio > * { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; } - -.ratio-1x1 { - --bs-aspect-ratio: 100%; } - -.ratio-4x3 { - --bs-aspect-ratio: calc(3 / 4 * 100%); } - -.ratio-16x9 { - --bs-aspect-ratio: calc(9 / 16 * 100%); } - -.ratio-21x9 { - --bs-aspect-ratio: calc(9 / 21 * 100%); } - -.fixed-top { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: 1030; } - -.fixed-bottom { - position: fixed; - right: 0; - bottom: 0; - left: 0; - z-index: 1030; } - -.sticky-top { - position: sticky; - top: 0; - z-index: 1020; } - -.sticky-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } - -@media (min-width: 576px) { - .sticky-sm-top { - position: sticky; - top: 0; - z-index: 1020; } - .sticky-sm-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } } - -@media (min-width: 768px) { - .sticky-md-top { - position: sticky; - top: 0; - z-index: 1020; } - .sticky-md-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } } - -@media (min-width: 992px) { - .sticky-lg-top { - position: sticky; - top: 0; - z-index: 1020; } - .sticky-lg-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } } - -@media (min-width: 1200px) { - .sticky-xl-top { - position: sticky; - top: 0; - z-index: 1020; } - .sticky-xl-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } } - -@media (min-width: 1400px) { - .sticky-xxl-top { - position: sticky; - top: 0; - z-index: 1020; } - .sticky-xxl-bottom { - position: sticky; - bottom: 0; - z-index: 1020; } } - -.hstack { - display: flex; - flex-direction: row; - align-items: center; - align-self: stretch; } - -.vstack { - display: flex; - flex: 1 1 auto; - flex-direction: column; - align-self: stretch; } - -.visually-hidden, -.visually-hidden-focusable:not(:focus):not(:focus-within) { - width: 1px !important; - height: 1px !important; - padding: 0 !important; - margin: -1px !important; - overflow: hidden !important; - clip: rect(0, 0, 0, 0) !important; - white-space: nowrap !important; - border: 0 !important; } - .visually-hidden:not(caption), - .visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) { - position: absolute !important; } - -.stretched-link::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1; - content: ""; } - -.text-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - -.vr { - display: inline-block; - align-self: stretch; - width: var(--bs-border-width); - min-height: 1em; - background-color: currentcolor; - opacity: 0.25; } - -.align-baseline { - vertical-align: baseline !important; } - -.align-top { - vertical-align: top !important; } - -.align-middle { - vertical-align: middle !important; } - -.align-bottom { - vertical-align: bottom !important; } - -.align-text-bottom { - vertical-align: text-bottom !important; } - -.align-text-top { - vertical-align: text-top !important; } - -.float-start { - float: left !important; } - -.float-end { - float: right !important; } - -.float-none { - float: none !important; } - -.object-fit-contain { - object-fit: contain !important; } - -.object-fit-cover { - object-fit: cover !important; } - -.object-fit-fill { - object-fit: fill !important; } - -.object-fit-scale { - object-fit: scale-down !important; } - -.object-fit-none { - object-fit: none !important; } - -.opacity-0 { - opacity: 0 !important; } - -.opacity-25 { - opacity: 0.25 !important; } - -.opacity-50 { - opacity: 0.5 !important; } - -.opacity-75 { - opacity: 0.75 !important; } - -.opacity-100 { - opacity: 1 !important; } - -.overflow-auto { - overflow: auto !important; } - -.overflow-hidden { - overflow: hidden !important; } - -.overflow-visible { - overflow: visible !important; } - -.overflow-scroll { - overflow: scroll !important; } - -.overflow-x-auto { - overflow-x: auto !important; } - -.overflow-x-hidden { - overflow-x: hidden !important; } - -.overflow-x-visible { - overflow-x: visible !important; } - -.overflow-x-scroll { - overflow-x: scroll !important; } - -.overflow-y-auto { - overflow-y: auto !important; } - -.overflow-y-hidden { - overflow-y: hidden !important; } - -.overflow-y-visible { - overflow-y: visible !important; } - -.overflow-y-scroll { - overflow-y: scroll !important; } - -.d-inline { - display: inline !important; } - -.d-inline-block { - display: inline-block !important; } - -.d-block { - display: block !important; } - -.d-grid { - display: grid !important; } - -.d-inline-grid { - display: inline-grid !important; } - -.d-table { - display: table !important; } - -.d-table-row { - display: table-row !important; } - -.d-table-cell { - display: table-cell !important; } - -.d-flex { - display: flex !important; } - -.d-inline-flex { - display: inline-flex !important; } - -.d-none { - display: none !important; } - -.shadow { - box-shadow: var(--bs-box-shadow) !important; } - -.shadow-sm { - box-shadow: var(--bs-box-shadow-sm) !important; } - -.shadow-lg { - box-shadow: var(--bs-box-shadow-lg) !important; } - -.shadow-none { - box-shadow: none !important; } - -.focus-ring-primary { - --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-secondary { - --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-success { - --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-info { - --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-warning { - --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-danger { - --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-light { - --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity)); } - -.focus-ring-dark { - --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity)); } - -.position-static { - position: static !important; } - -.position-relative { - position: relative !important; } - -.position-absolute { - position: absolute !important; } - -.position-fixed { - position: fixed !important; } - -.position-sticky { - position: sticky !important; } - -.top-0 { - top: 0 !important; } - -.top-50 { - top: 50% !important; } - -.top-100 { - top: 100% !important; } - -.bottom-0 { - bottom: 0 !important; } - -.bottom-50 { - bottom: 50% !important; } - -.bottom-100 { - bottom: 100% !important; } - -.start-0 { - left: 0 !important; } - -.start-50 { - left: 50% !important; } - -.start-100 { - left: 100% !important; } - -.end-0 { - right: 0 !important; } - -.end-50 { - right: 50% !important; } - -.end-100 { - right: 100% !important; } - -.translate-middle { - transform: translate(-50%, -50%) !important; } - -.translate-middle-x { - transform: translateX(-50%) !important; } - -.translate-middle-y { - transform: translateY(-50%) !important; } - -.border { - border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } - -.border-0 { - border: 0 !important; } - -.border-top, .td-page-meta__lastmod { - border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } - -.border-top-0 { - border-top: 0 !important; } - -.border-end { - border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } - -.border-end-0 { - border-right: 0 !important; } - -.border-bottom { - border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } - -.border-bottom-0 { - border-bottom: 0 !important; } - -.border-start { - border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; } - -.border-start-0 { - border-left: 0 !important; } - -.border-primary { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important; } - -.border-secondary { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important; } - -.border-success { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important; } - -.border-info { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important; } - -.border-warning { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important; } - -.border-danger { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important; } - -.border-light { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important; } - -.border-dark { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important; } - -.border-black { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important; } - -.border-white { - --bs-border-opacity: 1; - border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important; } - -.border-primary-subtle { - border-color: var(--bs-primary-border-subtle) !important; } - -.border-secondary-subtle { - border-color: var(--bs-secondary-border-subtle) !important; } - -.border-success-subtle { - border-color: var(--bs-success-border-subtle) !important; } - -.border-info-subtle { - border-color: var(--bs-info-border-subtle) !important; } - -.border-warning-subtle { - border-color: var(--bs-warning-border-subtle) !important; } - -.border-danger-subtle { - border-color: var(--bs-danger-border-subtle) !important; } - -.border-light-subtle { - border-color: var(--bs-light-border-subtle) !important; } - -.border-dark-subtle { - border-color: var(--bs-dark-border-subtle) !important; } - -.border-1 { - border-width: 1px !important; } - -.border-2 { - border-width: 2px !important; } - -.border-3 { - border-width: 3px !important; } - -.border-4 { - border-width: 4px !important; } - -.border-5 { - border-width: 5px !important; } - -.border-opacity-10 { - --bs-border-opacity: 0.1; } - -.border-opacity-25 { - --bs-border-opacity: 0.25; } - -.border-opacity-50 { - --bs-border-opacity: 0.5; } - -.border-opacity-75 { - --bs-border-opacity: 0.75; } - -.border-opacity-100 { - --bs-border-opacity: 1; } - -.w-25 { - width: 25% !important; } - -.w-50 { - width: 50% !important; } - -.w-75 { - width: 75% !important; } - -.w-100 { - width: 100% !important; } - -.w-auto { - width: auto !important; } - -.mw-100 { - max-width: 100% !important; } - -.vw-100 { - width: 100vw !important; } - -.min-vw-100 { - min-width: 100vw !important; } - -.h-25 { - height: 25% !important; } - -.h-50 { - height: 50% !important; } - -.h-75 { - height: 75% !important; } - -.h-100 { - height: 100% !important; } - -.h-auto { - height: auto !important; } - -.mh-100 { - max-height: 100% !important; } - -.vh-100 { - height: 100vh !important; } - -.min-vh-100 { - min-height: 100vh !important; } - -.flex-fill { - flex: 1 1 auto !important; } - -.flex-row { - flex-direction: row !important; } - -.flex-column { - flex-direction: column !important; } - -.flex-row-reverse { - flex-direction: row-reverse !important; } - -.flex-column-reverse { - flex-direction: column-reverse !important; } - -.flex-grow-0 { - flex-grow: 0 !important; } - -.flex-grow-1 { - flex-grow: 1 !important; } - -.flex-shrink-0 { - flex-shrink: 0 !important; } - -.flex-shrink-1 { - flex-shrink: 1 !important; } - -.flex-wrap { - flex-wrap: wrap !important; } - -.flex-nowrap { - flex-wrap: nowrap !important; } - -.flex-wrap-reverse { - flex-wrap: wrap-reverse !important; } - -.justify-content-start { - justify-content: flex-start !important; } - -.justify-content-end { - justify-content: flex-end !important; } - -.justify-content-center { - justify-content: center !important; } - -.justify-content-between { - justify-content: space-between !important; } - -.justify-content-around { - justify-content: space-around !important; } - -.justify-content-evenly { - justify-content: space-evenly !important; } - -.align-items-start { - align-items: flex-start !important; } - -.align-items-end { - align-items: flex-end !important; } - -.align-items-center { - align-items: center !important; } - -.align-items-baseline { - align-items: baseline !important; } - -.align-items-stretch { - align-items: stretch !important; } - -.align-content-start { - align-content: flex-start !important; } - -.align-content-end { - align-content: flex-end !important; } - -.align-content-center { - align-content: center !important; } - -.align-content-between { - align-content: space-between !important; } - -.align-content-around { - align-content: space-around !important; } - -.align-content-stretch { - align-content: stretch !important; } - -.align-self-auto { - align-self: auto !important; } - -.align-self-start { - align-self: flex-start !important; } - -.align-self-end { - align-self: flex-end !important; } - -.align-self-center { - align-self: center !important; } - -.align-self-baseline { - align-self: baseline !important; } - -.align-self-stretch { - align-self: stretch !important; } - -.order-first { - order: -1 !important; } - -.order-0 { - order: 0 !important; } - -.order-1 { - order: 1 !important; } - -.order-2 { - order: 2 !important; } - -.order-3 { - order: 3 !important; } - -.order-4 { - order: 4 !important; } - -.order-5 { - order: 5 !important; } - -.order-last { - order: 6 !important; } - -.m-0 { - margin: 0 !important; } - -.m-1 { - margin: 0.25rem !important; } - -.m-2 { - margin: 0.5rem !important; } - -.m-3 { - margin: 1rem !important; } - -.m-4 { - margin: 1.5rem !important; } - -.m-5 { - margin: 3rem !important; } - -.m-auto { - margin: auto !important; } - -.mx-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - -.mx-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - -.mx-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - -.mx-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - -.mx-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - -.mx-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - -.mx-auto { - margin-right: auto !important; - margin-left: auto !important; } - -.my-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - -.my-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - -.my-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - -.my-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - -.my-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - -.my-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - -.my-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - -.mt-0 { - margin-top: 0 !important; } - -.mt-1 { - margin-top: 0.25rem !important; } - -.mt-2 { - margin-top: 0.5rem !important; } - -.mt-3 { - margin-top: 1rem !important; } - -.mt-4 { - margin-top: 1.5rem !important; } - -.mt-5 { - margin-top: 3rem !important; } - -.mt-auto { - margin-top: auto !important; } - -.me-0 { - margin-right: 0 !important; } - -.me-1 { - margin-right: 0.25rem !important; } - -.me-2 { - margin-right: 0.5rem !important; } - -.me-3 { - margin-right: 1rem !important; } - -.me-4 { - margin-right: 1.5rem !important; } - -.me-5 { - margin-right: 3rem !important; } - -.me-auto { - margin-right: auto !important; } - -.mb-0 { - margin-bottom: 0 !important; } - -.mb-1 { - margin-bottom: 0.25rem !important; } - -.mb-2 { - margin-bottom: 0.5rem !important; } - -.mb-3 { - margin-bottom: 1rem !important; } - -.mb-4 { - margin-bottom: 1.5rem !important; } - -.mb-5 { - margin-bottom: 3rem !important; } - -.mb-auto { - margin-bottom: auto !important; } - -.ms-0 { - margin-left: 0 !important; } - -.ms-1 { - margin-left: 0.25rem !important; } - -.ms-2 { - margin-left: 0.5rem !important; } - -.ms-3 { - margin-left: 1rem !important; } - -.ms-4 { - margin-left: 1.5rem !important; } - -.ms-5 { - margin-left: 3rem !important; } - -.ms-auto { - margin-left: auto !important; } - -.p-0 { - padding: 0 !important; } - -.p-1 { - padding: 0.25rem !important; } - -.p-2 { - padding: 0.5rem !important; } - -.p-3 { - padding: 1rem !important; } - -.p-4 { - padding: 1.5rem !important; } - -.p-5 { - padding: 3rem !important; } - -.px-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - -.px-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - -.px-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - -.px-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - -.px-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - -.px-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - -.py-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - -.py-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - -.py-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - -.py-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - -.py-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - -.py-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - -.pt-0 { - padding-top: 0 !important; } - -.pt-1 { - padding-top: 0.25rem !important; } - -.pt-2 { - padding-top: 0.5rem !important; } - -.pt-3 { - padding-top: 1rem !important; } - -.pt-4 { - padding-top: 1.5rem !important; } - -.pt-5 { - padding-top: 3rem !important; } - -.pe-0 { - padding-right: 0 !important; } - -.pe-1 { - padding-right: 0.25rem !important; } - -.pe-2 { - padding-right: 0.5rem !important; } - -.pe-3 { - padding-right: 1rem !important; } - -.pe-4 { - padding-right: 1.5rem !important; } - -.pe-5 { - padding-right: 3rem !important; } - -.pb-0 { - padding-bottom: 0 !important; } - -.pb-1 { - padding-bottom: 0.25rem !important; } - -.pb-2 { - padding-bottom: 0.5rem !important; } - -.pb-3 { - padding-bottom: 1rem !important; } - -.pb-4 { - padding-bottom: 1.5rem !important; } - -.pb-5 { - padding-bottom: 3rem !important; } - -.ps-0 { - padding-left: 0 !important; } - -.ps-1 { - padding-left: 0.25rem !important; } - -.ps-2 { - padding-left: 0.5rem !important; } - -.ps-3 { - padding-left: 1rem !important; } - -.ps-4 { - padding-left: 1.5rem !important; } - -.ps-5 { - padding-left: 3rem !important; } - -.gap-0 { - gap: 0 !important; } - -.gap-1 { - gap: 0.25rem !important; } - -.gap-2 { - gap: 0.5rem !important; } - -.gap-3 { - gap: 1rem !important; } - -.gap-4 { - gap: 1.5rem !important; } - -.gap-5 { - gap: 3rem !important; } - -.row-gap-0 { - row-gap: 0 !important; } - -.row-gap-1 { - row-gap: 0.25rem !important; } - -.row-gap-2 { - row-gap: 0.5rem !important; } - -.row-gap-3 { - row-gap: 1rem !important; } - -.row-gap-4 { - row-gap: 1.5rem !important; } - -.row-gap-5 { - row-gap: 3rem !important; } - -.column-gap-0 { - column-gap: 0 !important; } - -.column-gap-1 { - column-gap: 0.25rem !important; } - -.column-gap-2 { - column-gap: 0.5rem !important; } - -.column-gap-3 { - column-gap: 1rem !important; } - -.column-gap-4 { - column-gap: 1.5rem !important; } - -.column-gap-5 { - column-gap: 3rem !important; } - -.font-monospace { - font-family: var(--bs-font-monospace) !important; } - -.fs-1 { - font-size: calc(1.375rem + 1.5vw) !important; } - -.fs-2 { - font-size: calc(1.325rem + 0.9vw) !important; } - -.fs-3 { - font-size: calc(1.275rem + 0.3vw) !important; } - -.fs-4 { - font-size: calc(1.26rem + 0.12vw) !important; } - -.fs-5 { - font-size: 1.15rem !important; } - -.fs-6 { - font-size: 1rem !important; } - -.fst-italic { - font-style: italic !important; } - -.fst-normal { - font-style: normal !important; } - -.fw-lighter { - font-weight: lighter !important; } - -.fw-light { - font-weight: 300 !important; } - -.fw-normal { - font-weight: 400 !important; } - -.fw-medium { - font-weight: 500 !important; } - -.fw-semibold { - font-weight: 600 !important; } - -.fw-bold { - font-weight: 700 !important; } - -.fw-bolder { - font-weight: bolder !important; } - -.lh-1 { - line-height: 1 !important; } - -.lh-sm { - line-height: 1.25 !important; } - -.lh-base { - line-height: 1.5 !important; } - -.lh-lg { - line-height: 2 !important; } - -.text-start { - text-align: left !important; } - -.text-end { - text-align: right !important; } - -.text-center { - text-align: center !important; } - -.text-decoration-none { - text-decoration: none !important; } - -.text-decoration-underline { - text-decoration: underline !important; } - -.text-decoration-line-through { - text-decoration: line-through !important; } - -.text-lowercase { - text-transform: lowercase !important; } - -.text-uppercase { - text-transform: uppercase !important; } - -.text-capitalize { - text-transform: capitalize !important; } - -.text-wrap { - white-space: normal !important; } - -.text-nowrap { - white-space: nowrap !important; } - -/* rtl:begin:remove */ -.text-break { - word-wrap: break-word !important; - word-break: break-word !important; } - -/* rtl:end:remove */ -.text-primary { - --bs-text-opacity: 1; - color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; } - -.text-secondary { - --bs-text-opacity: 1; - color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; } - -.text-success { - --bs-text-opacity: 1; - color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; } - -.text-info { - --bs-text-opacity: 1; - color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; } - -.text-warning { - --bs-text-opacity: 1; - color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; } - -.text-danger { - --bs-text-opacity: 1; - color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; } - -.text-light { - --bs-text-opacity: 1; - color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; } - -.text-dark { - --bs-text-opacity: 1; - color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; } - -.text-black { - --bs-text-opacity: 1; - color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; } - -.text-white { - --bs-text-opacity: 1; - color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; } - -.text-body { - --bs-text-opacity: 1; - color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important; } - -.text-muted { - --bs-text-opacity: 1; - color: var(--bs-secondary-color) !important; } - -.text-black-50 { - --bs-text-opacity: 1; - color: rgba(0, 0, 0, 0.5) !important; } - -.text-white-50 { - --bs-text-opacity: 1; - color: rgba(255, 255, 255, 0.5) !important; } - -.text-body-secondary, .td-page-meta__lastmod { - --bs-text-opacity: 1; - color: var(--bs-secondary-color) !important; } - -.text-body-tertiary { - --bs-text-opacity: 1; - color: var(--bs-tertiary-color) !important; } - -.text-body-emphasis { - --bs-text-opacity: 1; - color: var(--bs-emphasis-color) !important; } - -.text-reset { - --bs-text-opacity: 1; - color: inherit !important; } - -.text-opacity-25 { - --bs-text-opacity: 0.25; } - -.text-opacity-50 { - --bs-text-opacity: 0.5; } - -.text-opacity-75 { - --bs-text-opacity: 0.75; } - -.text-opacity-100 { - --bs-text-opacity: 1; } - -.text-primary-emphasis { - color: var(--bs-primary-text-emphasis) !important; } - -.text-secondary-emphasis { - color: var(--bs-secondary-text-emphasis) !important; } - -.text-success-emphasis { - color: var(--bs-success-text-emphasis) !important; } - -.text-info-emphasis { - color: var(--bs-info-text-emphasis) !important; } - -.text-warning-emphasis { - color: var(--bs-warning-text-emphasis) !important; } - -.text-danger-emphasis { - color: var(--bs-danger-text-emphasis) !important; } - -.text-light-emphasis { - color: var(--bs-light-text-emphasis) !important; } - -.text-dark-emphasis { - color: var(--bs-dark-text-emphasis) !important; } - -.link-opacity-10 { - --bs-link-opacity: 0.1; } - -.link-opacity-10-hover:hover { - --bs-link-opacity: 0.1; } - -.link-opacity-25 { - --bs-link-opacity: 0.25; } - -.link-opacity-25-hover:hover { - --bs-link-opacity: 0.25; } - -.link-opacity-50 { - --bs-link-opacity: 0.5; } - -.link-opacity-50-hover:hover { - --bs-link-opacity: 0.5; } - -.link-opacity-75 { - --bs-link-opacity: 0.75; } - -.link-opacity-75-hover:hover { - --bs-link-opacity: 0.75; } - -.link-opacity-100 { - --bs-link-opacity: 1; } - -.link-opacity-100-hover:hover { - --bs-link-opacity: 1; } - -.link-offset-1 { - text-underline-offset: 0.125em !important; } - -.link-offset-1-hover:hover { - text-underline-offset: 0.125em !important; } - -.link-offset-2 { - text-underline-offset: 0.25em !important; } - -.link-offset-2-hover:hover { - text-underline-offset: 0.25em !important; } - -.link-offset-3 { - text-underline-offset: 0.375em !important; } - -.link-offset-3-hover:hover { - text-underline-offset: 0.375em !important; } - -.link-underline-primary { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-secondary { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-success { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-info { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-warning { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-danger { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-light { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline-dark { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; } - -.link-underline { - --bs-link-underline-opacity: 1; - text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; } - -.link-underline-opacity-0 { - --bs-link-underline-opacity: 0; } - -.link-underline-opacity-0-hover:hover { - --bs-link-underline-opacity: 0; } - -.link-underline-opacity-10 { - --bs-link-underline-opacity: 0.1; } - -.link-underline-opacity-10-hover:hover { - --bs-link-underline-opacity: 0.1; } - -.link-underline-opacity-25 { - --bs-link-underline-opacity: 0.25; } - -.link-underline-opacity-25-hover:hover { - --bs-link-underline-opacity: 0.25; } - -.link-underline-opacity-50 { - --bs-link-underline-opacity: 0.5; } - -.link-underline-opacity-50-hover:hover { - --bs-link-underline-opacity: 0.5; } - -.link-underline-opacity-75 { - --bs-link-underline-opacity: 0.75; } - -.link-underline-opacity-75-hover:hover { - --bs-link-underline-opacity: 0.75; } - -.link-underline-opacity-100 { - --bs-link-underline-opacity: 1; } - -.link-underline-opacity-100-hover:hover { - --bs-link-underline-opacity: 1; } - -.bg-primary { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important; } - -.bg-secondary { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important; } - -.bg-success { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important; } - -.bg-info { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important; } - -.bg-warning { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; } - -.bg-danger { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important; } - -.bg-light { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; } - -.bg-dark { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important; } - -.bg-black { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important; } - -.bg-white { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important; } - -.bg-body { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important; } - -.bg-transparent { - --bs-bg-opacity: 1; - background-color: transparent !important; } - -.bg-body-secondary { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important; } - -.bg-body-tertiary { - --bs-bg-opacity: 1; - background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important; } - -.bg-opacity-10 { - --bs-bg-opacity: 0.1; } - -.bg-opacity-25 { - --bs-bg-opacity: 0.25; } - -.bg-opacity-50 { - --bs-bg-opacity: 0.5; } - -.bg-opacity-75 { - --bs-bg-opacity: 0.75; } - -.bg-opacity-100 { - --bs-bg-opacity: 1; } - -.bg-primary-subtle { - background-color: var(--bs-primary-bg-subtle) !important; } - -.bg-secondary-subtle { - background-color: var(--bs-secondary-bg-subtle) !important; } - -.bg-success-subtle { - background-color: var(--bs-success-bg-subtle) !important; } - -.bg-info-subtle { - background-color: var(--bs-info-bg-subtle) !important; } - -.bg-warning-subtle { - background-color: var(--bs-warning-bg-subtle) !important; } - -.bg-danger-subtle { - background-color: var(--bs-danger-bg-subtle) !important; } - -.bg-light-subtle { - background-color: var(--bs-light-bg-subtle) !important; } - -.bg-dark-subtle { - background-color: var(--bs-dark-bg-subtle) !important; } - -.bg-gradient { - background-image: var(--bs-gradient) !important; } - -.user-select-all { - user-select: all !important; } - -.user-select-auto { - user-select: auto !important; } - -.user-select-none { - user-select: none !important; } - -.pe-none { - pointer-events: none !important; } - -.pe-auto { - pointer-events: auto !important; } - -.rounded { - border-radius: var(--bs-border-radius) !important; } - -.rounded-0 { - border-radius: 0 !important; } - -.rounded-1 { - border-radius: var(--bs-border-radius-sm) !important; } - -.rounded-2 { - border-radius: var(--bs-border-radius) !important; } - -.rounded-3 { - border-radius: var(--bs-border-radius-lg) !important; } - -.rounded-4 { - border-radius: var(--bs-border-radius-xl) !important; } - -.rounded-5 { - border-radius: var(--bs-border-radius-xxl) !important; } - -.rounded-circle { - border-radius: 50% !important; } - -.rounded-pill { - border-radius: var(--bs-border-radius-pill) !important; } - -.rounded-top { - border-top-left-radius: var(--bs-border-radius) !important; - border-top-right-radius: var(--bs-border-radius) !important; } - -.rounded-top-0 { - border-top-left-radius: 0 !important; - border-top-right-radius: 0 !important; } - -.rounded-top-1 { - border-top-left-radius: var(--bs-border-radius-sm) !important; - border-top-right-radius: var(--bs-border-radius-sm) !important; } - -.rounded-top-2 { - border-top-left-radius: var(--bs-border-radius) !important; - border-top-right-radius: var(--bs-border-radius) !important; } - -.rounded-top-3 { - border-top-left-radius: var(--bs-border-radius-lg) !important; - border-top-right-radius: var(--bs-border-radius-lg) !important; } - -.rounded-top-4 { - border-top-left-radius: var(--bs-border-radius-xl) !important; - border-top-right-radius: var(--bs-border-radius-xl) !important; } - -.rounded-top-5 { - border-top-left-radius: var(--bs-border-radius-xxl) !important; - border-top-right-radius: var(--bs-border-radius-xxl) !important; } - -.rounded-top-circle { - border-top-left-radius: 50% !important; - border-top-right-radius: 50% !important; } - -.rounded-top-pill { - border-top-left-radius: var(--bs-border-radius-pill) !important; - border-top-right-radius: var(--bs-border-radius-pill) !important; } - -.rounded-end { - border-top-right-radius: var(--bs-border-radius) !important; - border-bottom-right-radius: var(--bs-border-radius) !important; } - -.rounded-end-0 { - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; } - -.rounded-end-1 { - border-top-right-radius: var(--bs-border-radius-sm) !important; - border-bottom-right-radius: var(--bs-border-radius-sm) !important; } - -.rounded-end-2 { - border-top-right-radius: var(--bs-border-radius) !important; - border-bottom-right-radius: var(--bs-border-radius) !important; } - -.rounded-end-3 { - border-top-right-radius: var(--bs-border-radius-lg) !important; - border-bottom-right-radius: var(--bs-border-radius-lg) !important; } - -.rounded-end-4 { - border-top-right-radius: var(--bs-border-radius-xl) !important; - border-bottom-right-radius: var(--bs-border-radius-xl) !important; } - -.rounded-end-5 { - border-top-right-radius: var(--bs-border-radius-xxl) !important; - border-bottom-right-radius: var(--bs-border-radius-xxl) !important; } - -.rounded-end-circle { - border-top-right-radius: 50% !important; - border-bottom-right-radius: 50% !important; } - -.rounded-end-pill { - border-top-right-radius: var(--bs-border-radius-pill) !important; - border-bottom-right-radius: var(--bs-border-radius-pill) !important; } - -.rounded-bottom { - border-bottom-right-radius: var(--bs-border-radius) !important; - border-bottom-left-radius: var(--bs-border-radius) !important; } - -.rounded-bottom-0 { - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 0 !important; } - -.rounded-bottom-1 { - border-bottom-right-radius: var(--bs-border-radius-sm) !important; - border-bottom-left-radius: var(--bs-border-radius-sm) !important; } - -.rounded-bottom-2 { - border-bottom-right-radius: var(--bs-border-radius) !important; - border-bottom-left-radius: var(--bs-border-radius) !important; } - -.rounded-bottom-3 { - border-bottom-right-radius: var(--bs-border-radius-lg) !important; - border-bottom-left-radius: var(--bs-border-radius-lg) !important; } - -.rounded-bottom-4 { - border-bottom-right-radius: var(--bs-border-radius-xl) !important; - border-bottom-left-radius: var(--bs-border-radius-xl) !important; } - -.rounded-bottom-5 { - border-bottom-right-radius: var(--bs-border-radius-xxl) !important; - border-bottom-left-radius: var(--bs-border-radius-xxl) !important; } - -.rounded-bottom-circle { - border-bottom-right-radius: 50% !important; - border-bottom-left-radius: 50% !important; } - -.rounded-bottom-pill { - border-bottom-right-radius: var(--bs-border-radius-pill) !important; - border-bottom-left-radius: var(--bs-border-radius-pill) !important; } - -.rounded-start { - border-bottom-left-radius: var(--bs-border-radius) !important; - border-top-left-radius: var(--bs-border-radius) !important; } - -.rounded-start-0 { - border-bottom-left-radius: 0 !important; - border-top-left-radius: 0 !important; } - -.rounded-start-1 { - border-bottom-left-radius: var(--bs-border-radius-sm) !important; - border-top-left-radius: var(--bs-border-radius-sm) !important; } - -.rounded-start-2 { - border-bottom-left-radius: var(--bs-border-radius) !important; - border-top-left-radius: var(--bs-border-radius) !important; } - -.rounded-start-3 { - border-bottom-left-radius: var(--bs-border-radius-lg) !important; - border-top-left-radius: var(--bs-border-radius-lg) !important; } - -.rounded-start-4 { - border-bottom-left-radius: var(--bs-border-radius-xl) !important; - border-top-left-radius: var(--bs-border-radius-xl) !important; } - -.rounded-start-5 { - border-bottom-left-radius: var(--bs-border-radius-xxl) !important; - border-top-left-radius: var(--bs-border-radius-xxl) !important; } - -.rounded-start-circle { - border-bottom-left-radius: 50% !important; - border-top-left-radius: 50% !important; } - -.rounded-start-pill { - border-bottom-left-radius: var(--bs-border-radius-pill) !important; - border-top-left-radius: var(--bs-border-radius-pill) !important; } - -.visible { - visibility: visible !important; } - -.invisible { - visibility: hidden !important; } - -.z-n1 { - z-index: -1 !important; } - -.z-0 { - z-index: 0 !important; } - -.z-1 { - z-index: 1 !important; } - -.z-2 { - z-index: 2 !important; } - -.z-3 { - z-index: 3 !important; } - -@media (min-width: 576px) { - .float-sm-start { - float: left !important; } - .float-sm-end { - float: right !important; } - .float-sm-none { - float: none !important; } - .object-fit-sm-contain { - object-fit: contain !important; } - .object-fit-sm-cover { - object-fit: cover !important; } - .object-fit-sm-fill { - object-fit: fill !important; } - .object-fit-sm-scale { - object-fit: scale-down !important; } - .object-fit-sm-none { - object-fit: none !important; } - .d-sm-inline { - display: inline !important; } - .d-sm-inline-block { - display: inline-block !important; } - .d-sm-block { - display: block !important; } - .d-sm-grid { - display: grid !important; } - .d-sm-inline-grid { - display: inline-grid !important; } - .d-sm-table { - display: table !important; } - .d-sm-table-row { - display: table-row !important; } - .d-sm-table-cell { - display: table-cell !important; } - .d-sm-flex { - display: flex !important; } - .d-sm-inline-flex { - display: inline-flex !important; } - .d-sm-none { - display: none !important; } - .flex-sm-fill { - flex: 1 1 auto !important; } - .flex-sm-row { - flex-direction: row !important; } - .flex-sm-column { - flex-direction: column !important; } - .flex-sm-row-reverse { - flex-direction: row-reverse !important; } - .flex-sm-column-reverse { - flex-direction: column-reverse !important; } - .flex-sm-grow-0 { - flex-grow: 0 !important; } - .flex-sm-grow-1 { - flex-grow: 1 !important; } - .flex-sm-shrink-0 { - flex-shrink: 0 !important; } - .flex-sm-shrink-1 { - flex-shrink: 1 !important; } - .flex-sm-wrap { - flex-wrap: wrap !important; } - .flex-sm-nowrap { - flex-wrap: nowrap !important; } - .flex-sm-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .justify-content-sm-start { - justify-content: flex-start !important; } - .justify-content-sm-end { - justify-content: flex-end !important; } - .justify-content-sm-center { - justify-content: center !important; } - .justify-content-sm-between { - justify-content: space-between !important; } - .justify-content-sm-around { - justify-content: space-around !important; } - .justify-content-sm-evenly { - justify-content: space-evenly !important; } - .align-items-sm-start { - align-items: flex-start !important; } - .align-items-sm-end { - align-items: flex-end !important; } - .align-items-sm-center { - align-items: center !important; } - .align-items-sm-baseline { - align-items: baseline !important; } - .align-items-sm-stretch { - align-items: stretch !important; } - .align-content-sm-start { - align-content: flex-start !important; } - .align-content-sm-end { - align-content: flex-end !important; } - .align-content-sm-center { - align-content: center !important; } - .align-content-sm-between { - align-content: space-between !important; } - .align-content-sm-around { - align-content: space-around !important; } - .align-content-sm-stretch { - align-content: stretch !important; } - .align-self-sm-auto { - align-self: auto !important; } - .align-self-sm-start { - align-self: flex-start !important; } - .align-self-sm-end { - align-self: flex-end !important; } - .align-self-sm-center { - align-self: center !important; } - .align-self-sm-baseline { - align-self: baseline !important; } - .align-self-sm-stretch { - align-self: stretch !important; } - .order-sm-first { - order: -1 !important; } - .order-sm-0 { - order: 0 !important; } - .order-sm-1 { - order: 1 !important; } - .order-sm-2 { - order: 2 !important; } - .order-sm-3 { - order: 3 !important; } - .order-sm-4 { - order: 4 !important; } - .order-sm-5 { - order: 5 !important; } - .order-sm-last { - order: 6 !important; } - .m-sm-0 { - margin: 0 !important; } - .m-sm-1 { - margin: 0.25rem !important; } - .m-sm-2 { - margin: 0.5rem !important; } - .m-sm-3 { - margin: 1rem !important; } - .m-sm-4 { - margin: 1.5rem !important; } - .m-sm-5 { - margin: 3rem !important; } - .m-sm-auto { - margin: auto !important; } - .mx-sm-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - .mx-sm-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - .mx-sm-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - .mx-sm-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - .mx-sm-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - .mx-sm-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - .mx-sm-auto { - margin-right: auto !important; - margin-left: auto !important; } - .my-sm-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - .my-sm-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - .my-sm-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - .my-sm-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - .my-sm-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - .my-sm-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - .my-sm-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - .mt-sm-0 { - margin-top: 0 !important; } - .mt-sm-1 { - margin-top: 0.25rem !important; } - .mt-sm-2 { - margin-top: 0.5rem !important; } - .mt-sm-3 { - margin-top: 1rem !important; } - .mt-sm-4 { - margin-top: 1.5rem !important; } - .mt-sm-5 { - margin-top: 3rem !important; } - .mt-sm-auto { - margin-top: auto !important; } - .me-sm-0 { - margin-right: 0 !important; } - .me-sm-1 { - margin-right: 0.25rem !important; } - .me-sm-2 { - margin-right: 0.5rem !important; } - .me-sm-3 { - margin-right: 1rem !important; } - .me-sm-4 { - margin-right: 1.5rem !important; } - .me-sm-5 { - margin-right: 3rem !important; } - .me-sm-auto { - margin-right: auto !important; } - .mb-sm-0 { - margin-bottom: 0 !important; } - .mb-sm-1 { - margin-bottom: 0.25rem !important; } - .mb-sm-2 { - margin-bottom: 0.5rem !important; } - .mb-sm-3 { - margin-bottom: 1rem !important; } - .mb-sm-4 { - margin-bottom: 1.5rem !important; } - .mb-sm-5 { - margin-bottom: 3rem !important; } - .mb-sm-auto { - margin-bottom: auto !important; } - .ms-sm-0 { - margin-left: 0 !important; } - .ms-sm-1 { - margin-left: 0.25rem !important; } - .ms-sm-2 { - margin-left: 0.5rem !important; } - .ms-sm-3 { - margin-left: 1rem !important; } - .ms-sm-4 { - margin-left: 1.5rem !important; } - .ms-sm-5 { - margin-left: 3rem !important; } - .ms-sm-auto { - margin-left: auto !important; } - .p-sm-0 { - padding: 0 !important; } - .p-sm-1 { - padding: 0.25rem !important; } - .p-sm-2 { - padding: 0.5rem !important; } - .p-sm-3 { - padding: 1rem !important; } - .p-sm-4 { - padding: 1.5rem !important; } - .p-sm-5 { - padding: 3rem !important; } - .px-sm-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - .px-sm-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - .px-sm-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - .px-sm-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - .px-sm-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - .px-sm-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - .py-sm-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - .py-sm-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - .py-sm-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - .py-sm-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - .py-sm-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - .py-sm-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - .pt-sm-0 { - padding-top: 0 !important; } - .pt-sm-1 { - padding-top: 0.25rem !important; } - .pt-sm-2 { - padding-top: 0.5rem !important; } - .pt-sm-3 { - padding-top: 1rem !important; } - .pt-sm-4 { - padding-top: 1.5rem !important; } - .pt-sm-5 { - padding-top: 3rem !important; } - .pe-sm-0 { - padding-right: 0 !important; } - .pe-sm-1 { - padding-right: 0.25rem !important; } - .pe-sm-2 { - padding-right: 0.5rem !important; } - .pe-sm-3 { - padding-right: 1rem !important; } - .pe-sm-4 { - padding-right: 1.5rem !important; } - .pe-sm-5 { - padding-right: 3rem !important; } - .pb-sm-0 { - padding-bottom: 0 !important; } - .pb-sm-1 { - padding-bottom: 0.25rem !important; } - .pb-sm-2 { - padding-bottom: 0.5rem !important; } - .pb-sm-3 { - padding-bottom: 1rem !important; } - .pb-sm-4 { - padding-bottom: 1.5rem !important; } - .pb-sm-5 { - padding-bottom: 3rem !important; } - .ps-sm-0 { - padding-left: 0 !important; } - .ps-sm-1 { - padding-left: 0.25rem !important; } - .ps-sm-2 { - padding-left: 0.5rem !important; } - .ps-sm-3 { - padding-left: 1rem !important; } - .ps-sm-4 { - padding-left: 1.5rem !important; } - .ps-sm-5 { - padding-left: 3rem !important; } - .gap-sm-0 { - gap: 0 !important; } - .gap-sm-1 { - gap: 0.25rem !important; } - .gap-sm-2 { - gap: 0.5rem !important; } - .gap-sm-3 { - gap: 1rem !important; } - .gap-sm-4 { - gap: 1.5rem !important; } - .gap-sm-5 { - gap: 3rem !important; } - .row-gap-sm-0 { - row-gap: 0 !important; } - .row-gap-sm-1 { - row-gap: 0.25rem !important; } - .row-gap-sm-2 { - row-gap: 0.5rem !important; } - .row-gap-sm-3 { - row-gap: 1rem !important; } - .row-gap-sm-4 { - row-gap: 1.5rem !important; } - .row-gap-sm-5 { - row-gap: 3rem !important; } - .column-gap-sm-0 { - column-gap: 0 !important; } - .column-gap-sm-1 { - column-gap: 0.25rem !important; } - .column-gap-sm-2 { - column-gap: 0.5rem !important; } - .column-gap-sm-3 { - column-gap: 1rem !important; } - .column-gap-sm-4 { - column-gap: 1.5rem !important; } - .column-gap-sm-5 { - column-gap: 3rem !important; } - .text-sm-start { - text-align: left !important; } - .text-sm-end { - text-align: right !important; } - .text-sm-center { - text-align: center !important; } } - -@media (min-width: 768px) { - .float-md-start { - float: left !important; } - .float-md-end { - float: right !important; } - .float-md-none { - float: none !important; } - .object-fit-md-contain { - object-fit: contain !important; } - .object-fit-md-cover { - object-fit: cover !important; } - .object-fit-md-fill { - object-fit: fill !important; } - .object-fit-md-scale { - object-fit: scale-down !important; } - .object-fit-md-none { - object-fit: none !important; } - .d-md-inline { - display: inline !important; } - .d-md-inline-block { - display: inline-block !important; } - .d-md-block { - display: block !important; } - .d-md-grid { - display: grid !important; } - .d-md-inline-grid { - display: inline-grid !important; } - .d-md-table { - display: table !important; } - .d-md-table-row { - display: table-row !important; } - .d-md-table-cell { - display: table-cell !important; } - .d-md-flex { - display: flex !important; } - .d-md-inline-flex { - display: inline-flex !important; } - .d-md-none { - display: none !important; } - .flex-md-fill { - flex: 1 1 auto !important; } - .flex-md-row { - flex-direction: row !important; } - .flex-md-column { - flex-direction: column !important; } - .flex-md-row-reverse { - flex-direction: row-reverse !important; } - .flex-md-column-reverse { - flex-direction: column-reverse !important; } - .flex-md-grow-0 { - flex-grow: 0 !important; } - .flex-md-grow-1 { - flex-grow: 1 !important; } - .flex-md-shrink-0 { - flex-shrink: 0 !important; } - .flex-md-shrink-1 { - flex-shrink: 1 !important; } - .flex-md-wrap { - flex-wrap: wrap !important; } - .flex-md-nowrap { - flex-wrap: nowrap !important; } - .flex-md-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .justify-content-md-start { - justify-content: flex-start !important; } - .justify-content-md-end { - justify-content: flex-end !important; } - .justify-content-md-center { - justify-content: center !important; } - .justify-content-md-between { - justify-content: space-between !important; } - .justify-content-md-around { - justify-content: space-around !important; } - .justify-content-md-evenly { - justify-content: space-evenly !important; } - .align-items-md-start { - align-items: flex-start !important; } - .align-items-md-end { - align-items: flex-end !important; } - .align-items-md-center { - align-items: center !important; } - .align-items-md-baseline { - align-items: baseline !important; } - .align-items-md-stretch { - align-items: stretch !important; } - .align-content-md-start { - align-content: flex-start !important; } - .align-content-md-end { - align-content: flex-end !important; } - .align-content-md-center { - align-content: center !important; } - .align-content-md-between { - align-content: space-between !important; } - .align-content-md-around { - align-content: space-around !important; } - .align-content-md-stretch { - align-content: stretch !important; } - .align-self-md-auto { - align-self: auto !important; } - .align-self-md-start { - align-self: flex-start !important; } - .align-self-md-end { - align-self: flex-end !important; } - .align-self-md-center { - align-self: center !important; } - .align-self-md-baseline { - align-self: baseline !important; } - .align-self-md-stretch { - align-self: stretch !important; } - .order-md-first { - order: -1 !important; } - .order-md-0 { - order: 0 !important; } - .order-md-1 { - order: 1 !important; } - .order-md-2 { - order: 2 !important; } - .order-md-3 { - order: 3 !important; } - .order-md-4 { - order: 4 !important; } - .order-md-5 { - order: 5 !important; } - .order-md-last { - order: 6 !important; } - .m-md-0 { - margin: 0 !important; } - .m-md-1 { - margin: 0.25rem !important; } - .m-md-2 { - margin: 0.5rem !important; } - .m-md-3 { - margin: 1rem !important; } - .m-md-4 { - margin: 1.5rem !important; } - .m-md-5 { - margin: 3rem !important; } - .m-md-auto { - margin: auto !important; } - .mx-md-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - .mx-md-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - .mx-md-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - .mx-md-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - .mx-md-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - .mx-md-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - .mx-md-auto { - margin-right: auto !important; - margin-left: auto !important; } - .my-md-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - .my-md-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - .my-md-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - .my-md-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - .my-md-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - .my-md-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - .my-md-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - .mt-md-0 { - margin-top: 0 !important; } - .mt-md-1 { - margin-top: 0.25rem !important; } - .mt-md-2 { - margin-top: 0.5rem !important; } - .mt-md-3 { - margin-top: 1rem !important; } - .mt-md-4 { - margin-top: 1.5rem !important; } - .mt-md-5 { - margin-top: 3rem !important; } - .mt-md-auto { - margin-top: auto !important; } - .me-md-0 { - margin-right: 0 !important; } - .me-md-1 { - margin-right: 0.25rem !important; } - .me-md-2 { - margin-right: 0.5rem !important; } - .me-md-3 { - margin-right: 1rem !important; } - .me-md-4 { - margin-right: 1.5rem !important; } - .me-md-5 { - margin-right: 3rem !important; } - .me-md-auto { - margin-right: auto !important; } - .mb-md-0 { - margin-bottom: 0 !important; } - .mb-md-1 { - margin-bottom: 0.25rem !important; } - .mb-md-2 { - margin-bottom: 0.5rem !important; } - .mb-md-3 { - margin-bottom: 1rem !important; } - .mb-md-4 { - margin-bottom: 1.5rem !important; } - .mb-md-5 { - margin-bottom: 3rem !important; } - .mb-md-auto { - margin-bottom: auto !important; } - .ms-md-0 { - margin-left: 0 !important; } - .ms-md-1 { - margin-left: 0.25rem !important; } - .ms-md-2 { - margin-left: 0.5rem !important; } - .ms-md-3 { - margin-left: 1rem !important; } - .ms-md-4 { - margin-left: 1.5rem !important; } - .ms-md-5 { - margin-left: 3rem !important; } - .ms-md-auto { - margin-left: auto !important; } - .p-md-0 { - padding: 0 !important; } - .p-md-1 { - padding: 0.25rem !important; } - .p-md-2 { - padding: 0.5rem !important; } - .p-md-3 { - padding: 1rem !important; } - .p-md-4 { - padding: 1.5rem !important; } - .p-md-5 { - padding: 3rem !important; } - .px-md-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - .px-md-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - .px-md-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - .px-md-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - .px-md-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - .px-md-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - .py-md-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - .py-md-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - .py-md-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - .py-md-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - .py-md-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - .py-md-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - .pt-md-0 { - padding-top: 0 !important; } - .pt-md-1 { - padding-top: 0.25rem !important; } - .pt-md-2 { - padding-top: 0.5rem !important; } - .pt-md-3 { - padding-top: 1rem !important; } - .pt-md-4 { - padding-top: 1.5rem !important; } - .pt-md-5 { - padding-top: 3rem !important; } - .pe-md-0 { - padding-right: 0 !important; } - .pe-md-1 { - padding-right: 0.25rem !important; } - .pe-md-2 { - padding-right: 0.5rem !important; } - .pe-md-3 { - padding-right: 1rem !important; } - .pe-md-4 { - padding-right: 1.5rem !important; } - .pe-md-5 { - padding-right: 3rem !important; } - .pb-md-0 { - padding-bottom: 0 !important; } - .pb-md-1 { - padding-bottom: 0.25rem !important; } - .pb-md-2 { - padding-bottom: 0.5rem !important; } - .pb-md-3 { - padding-bottom: 1rem !important; } - .pb-md-4 { - padding-bottom: 1.5rem !important; } - .pb-md-5 { - padding-bottom: 3rem !important; } - .ps-md-0 { - padding-left: 0 !important; } - .ps-md-1 { - padding-left: 0.25rem !important; } - .ps-md-2 { - padding-left: 0.5rem !important; } - .ps-md-3 { - padding-left: 1rem !important; } - .ps-md-4 { - padding-left: 1.5rem !important; } - .ps-md-5 { - padding-left: 3rem !important; } - .gap-md-0 { - gap: 0 !important; } - .gap-md-1 { - gap: 0.25rem !important; } - .gap-md-2 { - gap: 0.5rem !important; } - .gap-md-3 { - gap: 1rem !important; } - .gap-md-4 { - gap: 1.5rem !important; } - .gap-md-5 { - gap: 3rem !important; } - .row-gap-md-0 { - row-gap: 0 !important; } - .row-gap-md-1 { - row-gap: 0.25rem !important; } - .row-gap-md-2 { - row-gap: 0.5rem !important; } - .row-gap-md-3 { - row-gap: 1rem !important; } - .row-gap-md-4 { - row-gap: 1.5rem !important; } - .row-gap-md-5 { - row-gap: 3rem !important; } - .column-gap-md-0 { - column-gap: 0 !important; } - .column-gap-md-1 { - column-gap: 0.25rem !important; } - .column-gap-md-2 { - column-gap: 0.5rem !important; } - .column-gap-md-3 { - column-gap: 1rem !important; } - .column-gap-md-4 { - column-gap: 1.5rem !important; } - .column-gap-md-5 { - column-gap: 3rem !important; } - .text-md-start { - text-align: left !important; } - .text-md-end { - text-align: right !important; } - .text-md-center { - text-align: center !important; } } - -@media (min-width: 992px) { - .float-lg-start { - float: left !important; } - .float-lg-end { - float: right !important; } - .float-lg-none { - float: none !important; } - .object-fit-lg-contain { - object-fit: contain !important; } - .object-fit-lg-cover { - object-fit: cover !important; } - .object-fit-lg-fill { - object-fit: fill !important; } - .object-fit-lg-scale { - object-fit: scale-down !important; } - .object-fit-lg-none { - object-fit: none !important; } - .d-lg-inline { - display: inline !important; } - .d-lg-inline-block { - display: inline-block !important; } - .d-lg-block, .td-blog .td-rss-button { - display: block !important; } - .d-lg-grid { - display: grid !important; } - .d-lg-inline-grid { - display: inline-grid !important; } - .d-lg-table { - display: table !important; } - .d-lg-table-row { - display: table-row !important; } - .d-lg-table-cell { - display: table-cell !important; } - .d-lg-flex { - display: flex !important; } - .d-lg-inline-flex { - display: inline-flex !important; } - .d-lg-none { - display: none !important; } - .flex-lg-fill { - flex: 1 1 auto !important; } - .flex-lg-row { - flex-direction: row !important; } - .flex-lg-column { - flex-direction: column !important; } - .flex-lg-row-reverse { - flex-direction: row-reverse !important; } - .flex-lg-column-reverse { - flex-direction: column-reverse !important; } - .flex-lg-grow-0 { - flex-grow: 0 !important; } - .flex-lg-grow-1 { - flex-grow: 1 !important; } - .flex-lg-shrink-0 { - flex-shrink: 0 !important; } - .flex-lg-shrink-1 { - flex-shrink: 1 !important; } - .flex-lg-wrap { - flex-wrap: wrap !important; } - .flex-lg-nowrap { - flex-wrap: nowrap !important; } - .flex-lg-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .justify-content-lg-start { - justify-content: flex-start !important; } - .justify-content-lg-end { - justify-content: flex-end !important; } - .justify-content-lg-center { - justify-content: center !important; } - .justify-content-lg-between { - justify-content: space-between !important; } - .justify-content-lg-around { - justify-content: space-around !important; } - .justify-content-lg-evenly { - justify-content: space-evenly !important; } - .align-items-lg-start { - align-items: flex-start !important; } - .align-items-lg-end { - align-items: flex-end !important; } - .align-items-lg-center { - align-items: center !important; } - .align-items-lg-baseline { - align-items: baseline !important; } - .align-items-lg-stretch { - align-items: stretch !important; } - .align-content-lg-start { - align-content: flex-start !important; } - .align-content-lg-end { - align-content: flex-end !important; } - .align-content-lg-center { - align-content: center !important; } - .align-content-lg-between { - align-content: space-between !important; } - .align-content-lg-around { - align-content: space-around !important; } - .align-content-lg-stretch { - align-content: stretch !important; } - .align-self-lg-auto { - align-self: auto !important; } - .align-self-lg-start { - align-self: flex-start !important; } - .align-self-lg-end { - align-self: flex-end !important; } - .align-self-lg-center { - align-self: center !important; } - .align-self-lg-baseline { - align-self: baseline !important; } - .align-self-lg-stretch { - align-self: stretch !important; } - .order-lg-first { - order: -1 !important; } - .order-lg-0 { - order: 0 !important; } - .order-lg-1 { - order: 1 !important; } - .order-lg-2 { - order: 2 !important; } - .order-lg-3 { - order: 3 !important; } - .order-lg-4 { - order: 4 !important; } - .order-lg-5 { - order: 5 !important; } - .order-lg-last { - order: 6 !important; } - .m-lg-0 { - margin: 0 !important; } - .m-lg-1 { - margin: 0.25rem !important; } - .m-lg-2 { - margin: 0.5rem !important; } - .m-lg-3 { - margin: 1rem !important; } - .m-lg-4 { - margin: 1.5rem !important; } - .m-lg-5 { - margin: 3rem !important; } - .m-lg-auto { - margin: auto !important; } - .mx-lg-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - .mx-lg-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - .mx-lg-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - .mx-lg-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - .mx-lg-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - .mx-lg-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - .mx-lg-auto { - margin-right: auto !important; - margin-left: auto !important; } - .my-lg-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - .my-lg-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - .my-lg-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - .my-lg-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - .my-lg-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - .my-lg-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - .my-lg-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - .mt-lg-0 { - margin-top: 0 !important; } - .mt-lg-1 { - margin-top: 0.25rem !important; } - .mt-lg-2 { - margin-top: 0.5rem !important; } - .mt-lg-3 { - margin-top: 1rem !important; } - .mt-lg-4 { - margin-top: 1.5rem !important; } - .mt-lg-5 { - margin-top: 3rem !important; } - .mt-lg-auto { - margin-top: auto !important; } - .me-lg-0 { - margin-right: 0 !important; } - .me-lg-1 { - margin-right: 0.25rem !important; } - .me-lg-2 { - margin-right: 0.5rem !important; } - .me-lg-3 { - margin-right: 1rem !important; } - .me-lg-4 { - margin-right: 1.5rem !important; } - .me-lg-5 { - margin-right: 3rem !important; } - .me-lg-auto { - margin-right: auto !important; } - .mb-lg-0 { - margin-bottom: 0 !important; } - .mb-lg-1 { - margin-bottom: 0.25rem !important; } - .mb-lg-2 { - margin-bottom: 0.5rem !important; } - .mb-lg-3 { - margin-bottom: 1rem !important; } - .mb-lg-4 { - margin-bottom: 1.5rem !important; } - .mb-lg-5 { - margin-bottom: 3rem !important; } - .mb-lg-auto { - margin-bottom: auto !important; } - .ms-lg-0 { - margin-left: 0 !important; } - .ms-lg-1 { - margin-left: 0.25rem !important; } - .ms-lg-2 { - margin-left: 0.5rem !important; } - .ms-lg-3 { - margin-left: 1rem !important; } - .ms-lg-4 { - margin-left: 1.5rem !important; } - .ms-lg-5 { - margin-left: 3rem !important; } - .ms-lg-auto { - margin-left: auto !important; } - .p-lg-0 { - padding: 0 !important; } - .p-lg-1 { - padding: 0.25rem !important; } - .p-lg-2 { - padding: 0.5rem !important; } - .p-lg-3 { - padding: 1rem !important; } - .p-lg-4 { - padding: 1.5rem !important; } - .p-lg-5 { - padding: 3rem !important; } - .px-lg-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - .px-lg-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - .px-lg-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - .px-lg-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - .px-lg-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - .px-lg-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - .py-lg-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - .py-lg-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - .py-lg-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - .py-lg-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - .py-lg-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - .py-lg-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - .pt-lg-0 { - padding-top: 0 !important; } - .pt-lg-1 { - padding-top: 0.25rem !important; } - .pt-lg-2 { - padding-top: 0.5rem !important; } - .pt-lg-3 { - padding-top: 1rem !important; } - .pt-lg-4 { - padding-top: 1.5rem !important; } - .pt-lg-5 { - padding-top: 3rem !important; } - .pe-lg-0 { - padding-right: 0 !important; } - .pe-lg-1 { - padding-right: 0.25rem !important; } - .pe-lg-2 { - padding-right: 0.5rem !important; } - .pe-lg-3 { - padding-right: 1rem !important; } - .pe-lg-4 { - padding-right: 1.5rem !important; } - .pe-lg-5 { - padding-right: 3rem !important; } - .pb-lg-0 { - padding-bottom: 0 !important; } - .pb-lg-1 { - padding-bottom: 0.25rem !important; } - .pb-lg-2 { - padding-bottom: 0.5rem !important; } - .pb-lg-3 { - padding-bottom: 1rem !important; } - .pb-lg-4 { - padding-bottom: 1.5rem !important; } - .pb-lg-5 { - padding-bottom: 3rem !important; } - .ps-lg-0 { - padding-left: 0 !important; } - .ps-lg-1 { - padding-left: 0.25rem !important; } - .ps-lg-2 { - padding-left: 0.5rem !important; } - .ps-lg-3 { - padding-left: 1rem !important; } - .ps-lg-4 { - padding-left: 1.5rem !important; } - .ps-lg-5 { - padding-left: 3rem !important; } - .gap-lg-0 { - gap: 0 !important; } - .gap-lg-1 { - gap: 0.25rem !important; } - .gap-lg-2 { - gap: 0.5rem !important; } - .gap-lg-3 { - gap: 1rem !important; } - .gap-lg-4 { - gap: 1.5rem !important; } - .gap-lg-5 { - gap: 3rem !important; } - .row-gap-lg-0 { - row-gap: 0 !important; } - .row-gap-lg-1 { - row-gap: 0.25rem !important; } - .row-gap-lg-2 { - row-gap: 0.5rem !important; } - .row-gap-lg-3 { - row-gap: 1rem !important; } - .row-gap-lg-4 { - row-gap: 1.5rem !important; } - .row-gap-lg-5 { - row-gap: 3rem !important; } - .column-gap-lg-0 { - column-gap: 0 !important; } - .column-gap-lg-1 { - column-gap: 0.25rem !important; } - .column-gap-lg-2 { - column-gap: 0.5rem !important; } - .column-gap-lg-3 { - column-gap: 1rem !important; } - .column-gap-lg-4 { - column-gap: 1.5rem !important; } - .column-gap-lg-5 { - column-gap: 3rem !important; } - .text-lg-start { - text-align: left !important; } - .text-lg-end { - text-align: right !important; } - .text-lg-center { - text-align: center !important; } } - -@media (min-width: 1200px) { - .float-xl-start { - float: left !important; } - .float-xl-end { - float: right !important; } - .float-xl-none { - float: none !important; } - .object-fit-xl-contain { - object-fit: contain !important; } - .object-fit-xl-cover { - object-fit: cover !important; } - .object-fit-xl-fill { - object-fit: fill !important; } - .object-fit-xl-scale { - object-fit: scale-down !important; } - .object-fit-xl-none { - object-fit: none !important; } - .d-xl-inline { - display: inline !important; } - .d-xl-inline-block { - display: inline-block !important; } - .d-xl-block { - display: block !important; } - .d-xl-grid { - display: grid !important; } - .d-xl-inline-grid { - display: inline-grid !important; } - .d-xl-table { - display: table !important; } - .d-xl-table-row { - display: table-row !important; } - .d-xl-table-cell { - display: table-cell !important; } - .d-xl-flex { - display: flex !important; } - .d-xl-inline-flex { - display: inline-flex !important; } - .d-xl-none { - display: none !important; } - .flex-xl-fill { - flex: 1 1 auto !important; } - .flex-xl-row { - flex-direction: row !important; } - .flex-xl-column { - flex-direction: column !important; } - .flex-xl-row-reverse { - flex-direction: row-reverse !important; } - .flex-xl-column-reverse { - flex-direction: column-reverse !important; } - .flex-xl-grow-0 { - flex-grow: 0 !important; } - .flex-xl-grow-1 { - flex-grow: 1 !important; } - .flex-xl-shrink-0 { - flex-shrink: 0 !important; } - .flex-xl-shrink-1 { - flex-shrink: 1 !important; } - .flex-xl-wrap { - flex-wrap: wrap !important; } - .flex-xl-nowrap { - flex-wrap: nowrap !important; } - .flex-xl-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .justify-content-xl-start { - justify-content: flex-start !important; } - .justify-content-xl-end { - justify-content: flex-end !important; } - .justify-content-xl-center { - justify-content: center !important; } - .justify-content-xl-between { - justify-content: space-between !important; } - .justify-content-xl-around { - justify-content: space-around !important; } - .justify-content-xl-evenly { - justify-content: space-evenly !important; } - .align-items-xl-start { - align-items: flex-start !important; } - .align-items-xl-end { - align-items: flex-end !important; } - .align-items-xl-center { - align-items: center !important; } - .align-items-xl-baseline { - align-items: baseline !important; } - .align-items-xl-stretch { - align-items: stretch !important; } - .align-content-xl-start { - align-content: flex-start !important; } - .align-content-xl-end { - align-content: flex-end !important; } - .align-content-xl-center { - align-content: center !important; } - .align-content-xl-between { - align-content: space-between !important; } - .align-content-xl-around { - align-content: space-around !important; } - .align-content-xl-stretch { - align-content: stretch !important; } - .align-self-xl-auto { - align-self: auto !important; } - .align-self-xl-start { - align-self: flex-start !important; } - .align-self-xl-end { - align-self: flex-end !important; } - .align-self-xl-center { - align-self: center !important; } - .align-self-xl-baseline { - align-self: baseline !important; } - .align-self-xl-stretch { - align-self: stretch !important; } - .order-xl-first { - order: -1 !important; } - .order-xl-0 { - order: 0 !important; } - .order-xl-1 { - order: 1 !important; } - .order-xl-2 { - order: 2 !important; } - .order-xl-3 { - order: 3 !important; } - .order-xl-4 { - order: 4 !important; } - .order-xl-5 { - order: 5 !important; } - .order-xl-last { - order: 6 !important; } - .m-xl-0 { - margin: 0 !important; } - .m-xl-1 { - margin: 0.25rem !important; } - .m-xl-2 { - margin: 0.5rem !important; } - .m-xl-3 { - margin: 1rem !important; } - .m-xl-4 { - margin: 1.5rem !important; } - .m-xl-5 { - margin: 3rem !important; } - .m-xl-auto { - margin: auto !important; } - .mx-xl-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - .mx-xl-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - .mx-xl-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - .mx-xl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - .mx-xl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - .mx-xl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - .mx-xl-auto { - margin-right: auto !important; - margin-left: auto !important; } - .my-xl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - .my-xl-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - .my-xl-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - .my-xl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - .my-xl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - .my-xl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - .my-xl-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - .mt-xl-0 { - margin-top: 0 !important; } - .mt-xl-1 { - margin-top: 0.25rem !important; } - .mt-xl-2 { - margin-top: 0.5rem !important; } - .mt-xl-3 { - margin-top: 1rem !important; } - .mt-xl-4 { - margin-top: 1.5rem !important; } - .mt-xl-5 { - margin-top: 3rem !important; } - .mt-xl-auto { - margin-top: auto !important; } - .me-xl-0 { - margin-right: 0 !important; } - .me-xl-1 { - margin-right: 0.25rem !important; } - .me-xl-2 { - margin-right: 0.5rem !important; } - .me-xl-3 { - margin-right: 1rem !important; } - .me-xl-4 { - margin-right: 1.5rem !important; } - .me-xl-5 { - margin-right: 3rem !important; } - .me-xl-auto { - margin-right: auto !important; } - .mb-xl-0 { - margin-bottom: 0 !important; } - .mb-xl-1 { - margin-bottom: 0.25rem !important; } - .mb-xl-2 { - margin-bottom: 0.5rem !important; } - .mb-xl-3 { - margin-bottom: 1rem !important; } - .mb-xl-4 { - margin-bottom: 1.5rem !important; } - .mb-xl-5 { - margin-bottom: 3rem !important; } - .mb-xl-auto { - margin-bottom: auto !important; } - .ms-xl-0 { - margin-left: 0 !important; } - .ms-xl-1 { - margin-left: 0.25rem !important; } - .ms-xl-2 { - margin-left: 0.5rem !important; } - .ms-xl-3 { - margin-left: 1rem !important; } - .ms-xl-4 { - margin-left: 1.5rem !important; } - .ms-xl-5 { - margin-left: 3rem !important; } - .ms-xl-auto { - margin-left: auto !important; } - .p-xl-0 { - padding: 0 !important; } - .p-xl-1 { - padding: 0.25rem !important; } - .p-xl-2 { - padding: 0.5rem !important; } - .p-xl-3 { - padding: 1rem !important; } - .p-xl-4 { - padding: 1.5rem !important; } - .p-xl-5 { - padding: 3rem !important; } - .px-xl-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - .px-xl-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - .px-xl-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - .px-xl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - .px-xl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - .px-xl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - .py-xl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - .py-xl-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - .py-xl-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - .py-xl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - .py-xl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - .py-xl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - .pt-xl-0 { - padding-top: 0 !important; } - .pt-xl-1 { - padding-top: 0.25rem !important; } - .pt-xl-2 { - padding-top: 0.5rem !important; } - .pt-xl-3 { - padding-top: 1rem !important; } - .pt-xl-4 { - padding-top: 1.5rem !important; } - .pt-xl-5 { - padding-top: 3rem !important; } - .pe-xl-0 { - padding-right: 0 !important; } - .pe-xl-1 { - padding-right: 0.25rem !important; } - .pe-xl-2 { - padding-right: 0.5rem !important; } - .pe-xl-3 { - padding-right: 1rem !important; } - .pe-xl-4 { - padding-right: 1.5rem !important; } - .pe-xl-5 { - padding-right: 3rem !important; } - .pb-xl-0 { - padding-bottom: 0 !important; } - .pb-xl-1 { - padding-bottom: 0.25rem !important; } - .pb-xl-2 { - padding-bottom: 0.5rem !important; } - .pb-xl-3 { - padding-bottom: 1rem !important; } - .pb-xl-4 { - padding-bottom: 1.5rem !important; } - .pb-xl-5 { - padding-bottom: 3rem !important; } - .ps-xl-0 { - padding-left: 0 !important; } - .ps-xl-1 { - padding-left: 0.25rem !important; } - .ps-xl-2 { - padding-left: 0.5rem !important; } - .ps-xl-3 { - padding-left: 1rem !important; } - .ps-xl-4 { - padding-left: 1.5rem !important; } - .ps-xl-5 { - padding-left: 3rem !important; } - .gap-xl-0 { - gap: 0 !important; } - .gap-xl-1 { - gap: 0.25rem !important; } - .gap-xl-2 { - gap: 0.5rem !important; } - .gap-xl-3 { - gap: 1rem !important; } - .gap-xl-4 { - gap: 1.5rem !important; } - .gap-xl-5 { - gap: 3rem !important; } - .row-gap-xl-0 { - row-gap: 0 !important; } - .row-gap-xl-1 { - row-gap: 0.25rem !important; } - .row-gap-xl-2 { - row-gap: 0.5rem !important; } - .row-gap-xl-3 { - row-gap: 1rem !important; } - .row-gap-xl-4 { - row-gap: 1.5rem !important; } - .row-gap-xl-5 { - row-gap: 3rem !important; } - .column-gap-xl-0 { - column-gap: 0 !important; } - .column-gap-xl-1 { - column-gap: 0.25rem !important; } - .column-gap-xl-2 { - column-gap: 0.5rem !important; } - .column-gap-xl-3 { - column-gap: 1rem !important; } - .column-gap-xl-4 { - column-gap: 1.5rem !important; } - .column-gap-xl-5 { - column-gap: 3rem !important; } - .text-xl-start { - text-align: left !important; } - .text-xl-end { - text-align: right !important; } - .text-xl-center { - text-align: center !important; } } - -@media (min-width: 1400px) { - .float-xxl-start { - float: left !important; } - .float-xxl-end { - float: right !important; } - .float-xxl-none { - float: none !important; } - .object-fit-xxl-contain { - object-fit: contain !important; } - .object-fit-xxl-cover { - object-fit: cover !important; } - .object-fit-xxl-fill { - object-fit: fill !important; } - .object-fit-xxl-scale { - object-fit: scale-down !important; } - .object-fit-xxl-none { - object-fit: none !important; } - .d-xxl-inline { - display: inline !important; } - .d-xxl-inline-block { - display: inline-block !important; } - .d-xxl-block { - display: block !important; } - .d-xxl-grid { - display: grid !important; } - .d-xxl-inline-grid { - display: inline-grid !important; } - .d-xxl-table { - display: table !important; } - .d-xxl-table-row { - display: table-row !important; } - .d-xxl-table-cell { - display: table-cell !important; } - .d-xxl-flex { - display: flex !important; } - .d-xxl-inline-flex { - display: inline-flex !important; } - .d-xxl-none { - display: none !important; } - .flex-xxl-fill { - flex: 1 1 auto !important; } - .flex-xxl-row { - flex-direction: row !important; } - .flex-xxl-column { - flex-direction: column !important; } - .flex-xxl-row-reverse { - flex-direction: row-reverse !important; } - .flex-xxl-column-reverse { - flex-direction: column-reverse !important; } - .flex-xxl-grow-0 { - flex-grow: 0 !important; } - .flex-xxl-grow-1 { - flex-grow: 1 !important; } - .flex-xxl-shrink-0 { - flex-shrink: 0 !important; } - .flex-xxl-shrink-1 { - flex-shrink: 1 !important; } - .flex-xxl-wrap { - flex-wrap: wrap !important; } - .flex-xxl-nowrap { - flex-wrap: nowrap !important; } - .flex-xxl-wrap-reverse { - flex-wrap: wrap-reverse !important; } - .justify-content-xxl-start { - justify-content: flex-start !important; } - .justify-content-xxl-end { - justify-content: flex-end !important; } - .justify-content-xxl-center { - justify-content: center !important; } - .justify-content-xxl-between { - justify-content: space-between !important; } - .justify-content-xxl-around { - justify-content: space-around !important; } - .justify-content-xxl-evenly { - justify-content: space-evenly !important; } - .align-items-xxl-start { - align-items: flex-start !important; } - .align-items-xxl-end { - align-items: flex-end !important; } - .align-items-xxl-center { - align-items: center !important; } - .align-items-xxl-baseline { - align-items: baseline !important; } - .align-items-xxl-stretch { - align-items: stretch !important; } - .align-content-xxl-start { - align-content: flex-start !important; } - .align-content-xxl-end { - align-content: flex-end !important; } - .align-content-xxl-center { - align-content: center !important; } - .align-content-xxl-between { - align-content: space-between !important; } - .align-content-xxl-around { - align-content: space-around !important; } - .align-content-xxl-stretch { - align-content: stretch !important; } - .align-self-xxl-auto { - align-self: auto !important; } - .align-self-xxl-start { - align-self: flex-start !important; } - .align-self-xxl-end { - align-self: flex-end !important; } - .align-self-xxl-center { - align-self: center !important; } - .align-self-xxl-baseline { - align-self: baseline !important; } - .align-self-xxl-stretch { - align-self: stretch !important; } - .order-xxl-first { - order: -1 !important; } - .order-xxl-0 { - order: 0 !important; } - .order-xxl-1 { - order: 1 !important; } - .order-xxl-2 { - order: 2 !important; } - .order-xxl-3 { - order: 3 !important; } - .order-xxl-4 { - order: 4 !important; } - .order-xxl-5 { - order: 5 !important; } - .order-xxl-last { - order: 6 !important; } - .m-xxl-0 { - margin: 0 !important; } - .m-xxl-1 { - margin: 0.25rem !important; } - .m-xxl-2 { - margin: 0.5rem !important; } - .m-xxl-3 { - margin: 1rem !important; } - .m-xxl-4 { - margin: 1.5rem !important; } - .m-xxl-5 { - margin: 3rem !important; } - .m-xxl-auto { - margin: auto !important; } - .mx-xxl-0 { - margin-right: 0 !important; - margin-left: 0 !important; } - .mx-xxl-1 { - margin-right: 0.25rem !important; - margin-left: 0.25rem !important; } - .mx-xxl-2 { - margin-right: 0.5rem !important; - margin-left: 0.5rem !important; } - .mx-xxl-3 { - margin-right: 1rem !important; - margin-left: 1rem !important; } - .mx-xxl-4 { - margin-right: 1.5rem !important; - margin-left: 1.5rem !important; } - .mx-xxl-5 { - margin-right: 3rem !important; - margin-left: 3rem !important; } - .mx-xxl-auto { - margin-right: auto !important; - margin-left: auto !important; } - .my-xxl-0 { - margin-top: 0 !important; - margin-bottom: 0 !important; } - .my-xxl-1 { - margin-top: 0.25rem !important; - margin-bottom: 0.25rem !important; } - .my-xxl-2 { - margin-top: 0.5rem !important; - margin-bottom: 0.5rem !important; } - .my-xxl-3 { - margin-top: 1rem !important; - margin-bottom: 1rem !important; } - .my-xxl-4 { - margin-top: 1.5rem !important; - margin-bottom: 1.5rem !important; } - .my-xxl-5 { - margin-top: 3rem !important; - margin-bottom: 3rem !important; } - .my-xxl-auto { - margin-top: auto !important; - margin-bottom: auto !important; } - .mt-xxl-0 { - margin-top: 0 !important; } - .mt-xxl-1 { - margin-top: 0.25rem !important; } - .mt-xxl-2 { - margin-top: 0.5rem !important; } - .mt-xxl-3 { - margin-top: 1rem !important; } - .mt-xxl-4 { - margin-top: 1.5rem !important; } - .mt-xxl-5 { - margin-top: 3rem !important; } - .mt-xxl-auto { - margin-top: auto !important; } - .me-xxl-0 { - margin-right: 0 !important; } - .me-xxl-1 { - margin-right: 0.25rem !important; } - .me-xxl-2 { - margin-right: 0.5rem !important; } - .me-xxl-3 { - margin-right: 1rem !important; } - .me-xxl-4 { - margin-right: 1.5rem !important; } - .me-xxl-5 { - margin-right: 3rem !important; } - .me-xxl-auto { - margin-right: auto !important; } - .mb-xxl-0 { - margin-bottom: 0 !important; } - .mb-xxl-1 { - margin-bottom: 0.25rem !important; } - .mb-xxl-2 { - margin-bottom: 0.5rem !important; } - .mb-xxl-3 { - margin-bottom: 1rem !important; } - .mb-xxl-4 { - margin-bottom: 1.5rem !important; } - .mb-xxl-5 { - margin-bottom: 3rem !important; } - .mb-xxl-auto { - margin-bottom: auto !important; } - .ms-xxl-0 { - margin-left: 0 !important; } - .ms-xxl-1 { - margin-left: 0.25rem !important; } - .ms-xxl-2 { - margin-left: 0.5rem !important; } - .ms-xxl-3 { - margin-left: 1rem !important; } - .ms-xxl-4 { - margin-left: 1.5rem !important; } - .ms-xxl-5 { - margin-left: 3rem !important; } - .ms-xxl-auto { - margin-left: auto !important; } - .p-xxl-0 { - padding: 0 !important; } - .p-xxl-1 { - padding: 0.25rem !important; } - .p-xxl-2 { - padding: 0.5rem !important; } - .p-xxl-3 { - padding: 1rem !important; } - .p-xxl-4 { - padding: 1.5rem !important; } - .p-xxl-5 { - padding: 3rem !important; } - .px-xxl-0 { - padding-right: 0 !important; - padding-left: 0 !important; } - .px-xxl-1 { - padding-right: 0.25rem !important; - padding-left: 0.25rem !important; } - .px-xxl-2 { - padding-right: 0.5rem !important; - padding-left: 0.5rem !important; } - .px-xxl-3 { - padding-right: 1rem !important; - padding-left: 1rem !important; } - .px-xxl-4 { - padding-right: 1.5rem !important; - padding-left: 1.5rem !important; } - .px-xxl-5 { - padding-right: 3rem !important; - padding-left: 3rem !important; } - .py-xxl-0 { - padding-top: 0 !important; - padding-bottom: 0 !important; } - .py-xxl-1 { - padding-top: 0.25rem !important; - padding-bottom: 0.25rem !important; } - .py-xxl-2 { - padding-top: 0.5rem !important; - padding-bottom: 0.5rem !important; } - .py-xxl-3 { - padding-top: 1rem !important; - padding-bottom: 1rem !important; } - .py-xxl-4 { - padding-top: 1.5rem !important; - padding-bottom: 1.5rem !important; } - .py-xxl-5 { - padding-top: 3rem !important; - padding-bottom: 3rem !important; } - .pt-xxl-0 { - padding-top: 0 !important; } - .pt-xxl-1 { - padding-top: 0.25rem !important; } - .pt-xxl-2 { - padding-top: 0.5rem !important; } - .pt-xxl-3 { - padding-top: 1rem !important; } - .pt-xxl-4 { - padding-top: 1.5rem !important; } - .pt-xxl-5 { - padding-top: 3rem !important; } - .pe-xxl-0 { - padding-right: 0 !important; } - .pe-xxl-1 { - padding-right: 0.25rem !important; } - .pe-xxl-2 { - padding-right: 0.5rem !important; } - .pe-xxl-3 { - padding-right: 1rem !important; } - .pe-xxl-4 { - padding-right: 1.5rem !important; } - .pe-xxl-5 { - padding-right: 3rem !important; } - .pb-xxl-0 { - padding-bottom: 0 !important; } - .pb-xxl-1 { - padding-bottom: 0.25rem !important; } - .pb-xxl-2 { - padding-bottom: 0.5rem !important; } - .pb-xxl-3 { - padding-bottom: 1rem !important; } - .pb-xxl-4 { - padding-bottom: 1.5rem !important; } - .pb-xxl-5 { - padding-bottom: 3rem !important; } - .ps-xxl-0 { - padding-left: 0 !important; } - .ps-xxl-1 { - padding-left: 0.25rem !important; } - .ps-xxl-2 { - padding-left: 0.5rem !important; } - .ps-xxl-3 { - padding-left: 1rem !important; } - .ps-xxl-4 { - padding-left: 1.5rem !important; } - .ps-xxl-5 { - padding-left: 3rem !important; } - .gap-xxl-0 { - gap: 0 !important; } - .gap-xxl-1 { - gap: 0.25rem !important; } - .gap-xxl-2 { - gap: 0.5rem !important; } - .gap-xxl-3 { - gap: 1rem !important; } - .gap-xxl-4 { - gap: 1.5rem !important; } - .gap-xxl-5 { - gap: 3rem !important; } - .row-gap-xxl-0 { - row-gap: 0 !important; } - .row-gap-xxl-1 { - row-gap: 0.25rem !important; } - .row-gap-xxl-2 { - row-gap: 0.5rem !important; } - .row-gap-xxl-3 { - row-gap: 1rem !important; } - .row-gap-xxl-4 { - row-gap: 1.5rem !important; } - .row-gap-xxl-5 { - row-gap: 3rem !important; } - .column-gap-xxl-0 { - column-gap: 0 !important; } - .column-gap-xxl-1 { - column-gap: 0.25rem !important; } - .column-gap-xxl-2 { - column-gap: 0.5rem !important; } - .column-gap-xxl-3 { - column-gap: 1rem !important; } - .column-gap-xxl-4 { - column-gap: 1.5rem !important; } - .column-gap-xxl-5 { - column-gap: 3rem !important; } - .text-xxl-start { - text-align: left !important; } - .text-xxl-end { - text-align: right !important; } - .text-xxl-center { - text-align: center !important; } } - -@media (min-width: 1200px) { - .fs-1 { - font-size: 2.5rem !important; } - .fs-2 { - font-size: 2rem !important; } - .fs-3 { - font-size: 1.5rem !important; } - .fs-4 { - font-size: 1.35rem !important; } } - -@media print { - .d-print-inline { - display: inline !important; } - .d-print-inline-block { - display: inline-block !important; } - .d-print-block { - display: block !important; } - .d-print-grid { - display: grid !important; } - .d-print-inline-grid { - display: inline-grid !important; } - .d-print-table { - display: table !important; } - .d-print-table-row { - display: table-row !important; } - .d-print-table-cell { - display: table-cell !important; } - .d-print-flex { - display: flex !important; } - .d-print-inline-flex { - display: inline-flex !important; } - .d-print-none { - display: none !important; } } - -/*! - * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -.fa, .td-search__icon:before { - font-family: var(--fa-style-family, "Font Awesome 6 Free"); - font-weight: var(--fa-style, 900); } - -.fa, .td-search__icon:before, -.fa-classic, -.fa-sharp, -.fas, -.td-offline-search-results__close-button:after, -.fa-solid, -.far, -.fa-regular, -.fab, -.fa-brands { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: var(--fa-display, inline-block); - font-style: normal; - font-variant: normal; - line-height: 1; - text-rendering: auto; } - -.fas, .td-offline-search-results__close-button:after, -.fa-classic, -.fa-solid, -.far, -.fa-regular { - font-family: 'Font Awesome 6 Free'; } - -.fab, -.fa-brands { - font-family: 'Font Awesome 6 Brands'; } - -.fa-1x { - font-size: 1em; } - -.fa-2x { - font-size: 2em; } - -.fa-3x { - font-size: 3em; } - -.fa-4x { - font-size: 4em; } - -.fa-5x { - font-size: 5em; } - -.fa-6x { - font-size: 6em; } - -.fa-7x { - font-size: 7em; } - -.fa-8x { - font-size: 8em; } - -.fa-9x { - font-size: 9em; } - -.fa-10x { - font-size: 10em; } - -.fa-2xs { - font-size: 0.625em; - line-height: 0.1em; - vertical-align: 0.225em; } - -.fa-xs { - font-size: 0.75em; - line-height: 0.08333333em; - vertical-align: 0.125em; } - -.fa-sm { - font-size: 0.875em; - line-height: 0.07142857em; - vertical-align: 0.05357143em; } - -.fa-lg { - font-size: 1.25em; - line-height: 0.05em; - vertical-align: -0.075em; } - -.fa-xl { - font-size: 1.5em; - line-height: 0.04166667em; - vertical-align: -0.125em; } - -.fa-2xl { - font-size: 2em; - line-height: 0.03125em; - vertical-align: -0.1875em; } - -.fa-fw { - text-align: center; - width: 1.25em; } - -.fa-ul { - list-style-type: none; - margin-left: var(--fa-li-margin, 2.5em); - padding-left: 0; } - .fa-ul > li { - position: relative; } - -.fa-li { - left: calc(var(--fa-li-width, 2em) * -1); - position: absolute; - text-align: center; - width: var(--fa-li-width, 2em); - line-height: inherit; } - -.fa-border { - border-color: var(--fa-border-color, #eee); - border-radius: var(--fa-border-radius, 0.1em); - border-style: var(--fa-border-style, solid); - border-width: var(--fa-border-width, 0.08em); - padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } - -.fa-pull-left { - float: left; - margin-right: var(--fa-pull-margin, 0.3em); } - -.fa-pull-right { - float: right; - margin-left: var(--fa-pull-margin, 0.3em); } - -.fa-beat { - animation-name: fa-beat; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); } - -.fa-bounce { - animation-name: fa-bounce; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } - -.fa-fade { - animation-name: fa-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } - -.fa-beat-fade { - animation-name: fa-beat-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } - -.fa-flip { - animation-name: fa-flip; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); } - -.fa-shake { - animation-name: fa-shake; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); } - -.fa-spin { - animation-name: fa-spin; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 2s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); } - -.fa-spin-reverse { - --fa-animation-direction: reverse; } - -.fa-pulse, -.fa-spin-pulse { - animation-name: fa-spin; - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, steps(8)); } - -@media (prefers-reduced-motion: reduce) { - .fa-beat, - .fa-bounce, - .fa-fade, - .fa-beat-fade, - .fa-flip, - .fa-pulse, - .fa-shake, - .fa-spin, - .fa-spin-pulse { - animation-delay: -1ms; - animation-duration: 1ms; - animation-iteration-count: 1; - transition-delay: 0s; - transition-duration: 0s; } } - -@keyframes fa-beat { - 0%, 90% { - transform: scale(1); } - 45% { - transform: scale(var(--fa-beat-scale, 1.25)); } } - -@keyframes fa-bounce { - 0% { - transform: scale(1, 1) translateY(0); } - 10% { - transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } - 30% { - transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } - 50% { - transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } - 57% { - transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } - 64% { - transform: scale(1, 1) translateY(0); } - 100% { - transform: scale(1, 1) translateY(0); } } - -@keyframes fa-fade { - 50% { - opacity: var(--fa-fade-opacity, 0.4); } } - -@keyframes fa-beat-fade { - 0%, 100% { - opacity: var(--fa-beat-fade-opacity, 0.4); - transform: scale(1); } - 50% { - opacity: 1; - transform: scale(var(--fa-beat-fade-scale, 1.125)); } } - -@keyframes fa-flip { - 50% { - transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } - -@keyframes fa-shake { - 0% { - transform: rotate(-15deg); } - 4% { - transform: rotate(15deg); } - 8%, 24% { - transform: rotate(-18deg); } - 12%, 28% { - transform: rotate(18deg); } - 16% { - transform: rotate(-22deg); } - 20% { - transform: rotate(22deg); } - 32% { - transform: rotate(-12deg); } - 36% { - transform: rotate(12deg); } - 40%, 100% { - transform: rotate(0deg); } } - -@keyframes fa-spin { - 0% { - transform: rotate(0deg); } - 100% { - transform: rotate(360deg); } } - -.fa-rotate-90 { - transform: rotate(90deg); } - -.fa-rotate-180 { - transform: rotate(180deg); } - -.fa-rotate-270 { - transform: rotate(270deg); } - -.fa-flip-horizontal { - transform: scale(-1, 1); } - -.fa-flip-vertical { - transform: scale(1, -1); } - -.fa-flip-both, -.fa-flip-horizontal.fa-flip-vertical { - transform: scale(-1, -1); } - -.fa-rotate-by { - transform: rotate(var(--fa-rotate-angle, 0)); } - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; } - -.fa-stack-1x, -.fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; - z-index: var(--fa-stack-z-index, auto); } - -.fa-stack-1x { - line-height: inherit; } - -.fa-stack-2x { - font-size: 2em; } - -.fa-inverse { - color: var(--fa-inverse, #fff); } - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen -readers do not read off random characters that represent icons */ -.fa-0::before { - content: "\30"; } - -.fa-1::before { - content: "\31"; } - -.fa-2::before { - content: "\32"; } - -.fa-3::before { - content: "\33"; } - -.fa-4::before { - content: "\34"; } - -.fa-5::before { - content: "\35"; } - -.fa-6::before { - content: "\36"; } - -.fa-7::before { - content: "\37"; } - -.fa-8::before { - content: "\38"; } - -.fa-9::before { - content: "\39"; } - -.fa-fill-drip::before { - content: "\f576"; } - -.fa-arrows-to-circle::before { - content: "\e4bd"; } - -.fa-circle-chevron-right::before { - content: "\f138"; } - -.fa-chevron-circle-right::before { - content: "\f138"; } - -.fa-at::before { - content: "\40"; } - -.fa-trash-can::before { - content: "\f2ed"; } - -.fa-trash-alt::before { - content: "\f2ed"; } - -.fa-text-height::before { - content: "\f034"; } - -.fa-user-xmark::before { - content: "\f235"; } - -.fa-user-times::before { - content: "\f235"; } - -.fa-stethoscope::before { - content: "\f0f1"; } - -.fa-message::before { - content: "\f27a"; } - -.fa-comment-alt::before { - content: "\f27a"; } - -.fa-info::before { - content: "\f129"; } - -.fa-down-left-and-up-right-to-center::before { - content: "\f422"; } - -.fa-compress-alt::before { - content: "\f422"; } - -.fa-explosion::before { - content: "\e4e9"; } - -.fa-file-lines::before { - content: "\f15c"; } - -.fa-file-alt::before { - content: "\f15c"; } - -.fa-file-text::before { - content: "\f15c"; } - -.fa-wave-square::before { - content: "\f83e"; } - -.fa-ring::before { - content: "\f70b"; } - -.fa-building-un::before { - content: "\e4d9"; } - -.fa-dice-three::before { - content: "\f527"; } - -.fa-calendar-days::before { - content: "\f073"; } - -.fa-calendar-alt::before { - content: "\f073"; } - -.fa-anchor-circle-check::before { - content: "\e4aa"; } - -.fa-building-circle-arrow-right::before { - content: "\e4d1"; } - -.fa-volleyball::before { - content: "\f45f"; } - -.fa-volleyball-ball::before { - content: "\f45f"; } - -.fa-arrows-up-to-line::before { - content: "\e4c2"; } - -.fa-sort-down::before { - content: "\f0dd"; } - -.fa-sort-desc::before { - content: "\f0dd"; } - -.fa-circle-minus::before { - content: "\f056"; } - -.fa-minus-circle::before { - content: "\f056"; } - -.fa-door-open::before { - content: "\f52b"; } - -.fa-right-from-bracket::before { - content: "\f2f5"; } - -.fa-sign-out-alt::before { - content: "\f2f5"; } - -.fa-atom::before { - content: "\f5d2"; } - -.fa-soap::before { - content: "\e06e"; } - -.fa-icons::before { - content: "\f86d"; } - -.fa-heart-music-camera-bolt::before { - content: "\f86d"; } - -.fa-microphone-lines-slash::before { - content: "\f539"; } - -.fa-microphone-alt-slash::before { - content: "\f539"; } - -.fa-bridge-circle-check::before { - content: "\e4c9"; } - -.fa-pump-medical::before { - content: "\e06a"; } - -.fa-fingerprint::before { - content: "\f577"; } - -.fa-hand-point-right::before { - content: "\f0a4"; } - -.fa-magnifying-glass-location::before { - content: "\f689"; } - -.fa-search-location::before { - content: "\f689"; } - -.fa-forward-step::before { - content: "\f051"; } - -.fa-step-forward::before { - content: "\f051"; } - -.fa-face-smile-beam::before { - content: "\f5b8"; } - -.fa-smile-beam::before { - content: "\f5b8"; } - -.fa-flag-checkered::before { - content: "\f11e"; } - -.fa-football::before { - content: "\f44e"; } - -.fa-football-ball::before { - content: "\f44e"; } - -.fa-school-circle-exclamation::before { - content: "\e56c"; } - -.fa-crop::before { - content: "\f125"; } - -.fa-angles-down::before { - content: "\f103"; } - -.fa-angle-double-down::before { - content: "\f103"; } - -.fa-users-rectangle::before { - content: "\e594"; } - -.fa-people-roof::before { - content: "\e537"; } - -.fa-people-line::before { - content: "\e534"; } - -.fa-beer-mug-empty::before { - content: "\f0fc"; } - -.fa-beer::before { - content: "\f0fc"; } - -.fa-diagram-predecessor::before { - content: "\e477"; } - -.fa-arrow-up-long::before { - content: "\f176"; } - -.fa-long-arrow-up::before { - content: "\f176"; } - -.fa-fire-flame-simple::before { - content: "\f46a"; } - -.fa-burn::before { - content: "\f46a"; } - -.fa-person::before { - content: "\f183"; } - -.fa-male::before { - content: "\f183"; } - -.fa-laptop::before { - content: "\f109"; } - -.fa-file-csv::before { - content: "\f6dd"; } - -.fa-menorah::before { - content: "\f676"; } - -.fa-truck-plane::before { - content: "\e58f"; } - -.fa-record-vinyl::before { - content: "\f8d9"; } - -.fa-face-grin-stars::before { - content: "\f587"; } - -.fa-grin-stars::before { - content: "\f587"; } - -.fa-bong::before { - content: "\f55c"; } - -.fa-spaghetti-monster-flying::before { - content: "\f67b"; } - -.fa-pastafarianism::before { - content: "\f67b"; } - -.fa-arrow-down-up-across-line::before { - content: "\e4af"; } - -.fa-spoon::before { - content: "\f2e5"; } - -.fa-utensil-spoon::before { - content: "\f2e5"; } - -.fa-jar-wheat::before { - content: "\e517"; } - -.fa-envelopes-bulk::before { - content: "\f674"; } - -.fa-mail-bulk::before { - content: "\f674"; } - -.fa-file-circle-exclamation::before { - content: "\e4eb"; } - -.fa-circle-h::before { - content: "\f47e"; } - -.fa-hospital-symbol::before { - content: "\f47e"; } - -.fa-pager::before { - content: "\f815"; } - -.fa-address-book::before { - content: "\f2b9"; } - -.fa-contact-book::before { - content: "\f2b9"; } - -.fa-strikethrough::before { - content: "\f0cc"; } - -.fa-k::before { - content: "\4b"; } - -.fa-landmark-flag::before { - content: "\e51c"; } - -.fa-pencil::before { - content: "\f303"; } - -.fa-pencil-alt::before { - content: "\f303"; } - -.fa-backward::before { - content: "\f04a"; } - -.fa-caret-right::before { - content: "\f0da"; } - -.fa-comments::before { - content: "\f086"; } - -.fa-paste::before { - content: "\f0ea"; } - -.fa-file-clipboard::before { - content: "\f0ea"; } - -.fa-code-pull-request::before { - content: "\e13c"; } - -.fa-clipboard-list::before { - content: "\f46d"; } - -.fa-truck-ramp-box::before { - content: "\f4de"; } - -.fa-truck-loading::before { - content: "\f4de"; } - -.fa-user-check::before { - content: "\f4fc"; } - -.fa-vial-virus::before { - content: "\e597"; } - -.fa-sheet-plastic::before { - content: "\e571"; } - -.fa-blog::before { - content: "\f781"; } - -.fa-user-ninja::before { - content: "\f504"; } - -.fa-person-arrow-up-from-line::before { - content: "\e539"; } - -.fa-scroll-torah::before { - content: "\f6a0"; } - -.fa-torah::before { - content: "\f6a0"; } - -.fa-broom-ball::before { - content: "\f458"; } - -.fa-quidditch::before { - content: "\f458"; } - -.fa-quidditch-broom-ball::before { - content: "\f458"; } - -.fa-toggle-off::before { - content: "\f204"; } - -.fa-box-archive::before { - content: "\f187"; } - -.fa-archive::before { - content: "\f187"; } - -.fa-person-drowning::before { - content: "\e545"; } - -.fa-arrow-down-9-1::before { - content: "\f886"; } - -.fa-sort-numeric-desc::before { - content: "\f886"; } - -.fa-sort-numeric-down-alt::before { - content: "\f886"; } - -.fa-face-grin-tongue-squint::before { - content: "\f58a"; } - -.fa-grin-tongue-squint::before { - content: "\f58a"; } - -.fa-spray-can::before { - content: "\f5bd"; } - -.fa-truck-monster::before { - content: "\f63b"; } - -.fa-w::before { - content: "\57"; } - -.fa-earth-africa::before { - content: "\f57c"; } - -.fa-globe-africa::before { - content: "\f57c"; } - -.fa-rainbow::before { - content: "\f75b"; } - -.fa-circle-notch::before { - content: "\f1ce"; } - -.fa-tablet-screen-button::before { - content: "\f3fa"; } - -.fa-tablet-alt::before { - content: "\f3fa"; } - -.fa-paw::before { - content: "\f1b0"; } - -.fa-cloud::before { - content: "\f0c2"; } - -.fa-trowel-bricks::before { - content: "\e58a"; } - -.fa-face-flushed::before { - content: "\f579"; } - -.fa-flushed::before { - content: "\f579"; } - -.fa-hospital-user::before { - content: "\f80d"; } - -.fa-tent-arrow-left-right::before { - content: "\e57f"; } - -.fa-gavel::before { - content: "\f0e3"; } - -.fa-legal::before { - content: "\f0e3"; } - -.fa-binoculars::before { - content: "\f1e5"; } - -.fa-microphone-slash::before { - content: "\f131"; } - -.fa-box-tissue::before { - content: "\e05b"; } - -.fa-motorcycle::before { - content: "\f21c"; } - -.fa-bell-concierge::before { - content: "\f562"; } - -.fa-concierge-bell::before { - content: "\f562"; } - -.fa-pen-ruler::before { - content: "\f5ae"; } - -.fa-pencil-ruler::before { - content: "\f5ae"; } - -.fa-people-arrows::before { - content: "\e068"; } - -.fa-people-arrows-left-right::before { - content: "\e068"; } - -.fa-mars-and-venus-burst::before { - content: "\e523"; } - -.fa-square-caret-right::before { - content: "\f152"; } - -.fa-caret-square-right::before { - content: "\f152"; } - -.fa-scissors::before { - content: "\f0c4"; } - -.fa-cut::before { - content: "\f0c4"; } - -.fa-sun-plant-wilt::before { - content: "\e57a"; } - -.fa-toilets-portable::before { - content: "\e584"; } - -.fa-hockey-puck::before { - content: "\f453"; } - -.fa-table::before { - content: "\f0ce"; } - -.fa-magnifying-glass-arrow-right::before { - content: "\e521"; } - -.fa-tachograph-digital::before { - content: "\f566"; } - -.fa-digital-tachograph::before { - content: "\f566"; } - -.fa-users-slash::before { - content: "\e073"; } - -.fa-clover::before { - content: "\e139"; } - -.fa-reply::before { - content: "\f3e5"; } - -.fa-mail-reply::before { - content: "\f3e5"; } - -.fa-star-and-crescent::before { - content: "\f699"; } - -.fa-house-fire::before { - content: "\e50c"; } - -.fa-square-minus::before { - content: "\f146"; } - -.fa-minus-square::before { - content: "\f146"; } - -.fa-helicopter::before { - content: "\f533"; } - -.fa-compass::before { - content: "\f14e"; } - -.fa-square-caret-down::before { - content: "\f150"; } - -.fa-caret-square-down::before { - content: "\f150"; } - -.fa-file-circle-question::before { - content: "\e4ef"; } - -.fa-laptop-code::before { - content: "\f5fc"; } - -.fa-swatchbook::before { - content: "\f5c3"; } - -.fa-prescription-bottle::before { - content: "\f485"; } - -.fa-bars::before { - content: "\f0c9"; } - -.fa-navicon::before { - content: "\f0c9"; } - -.fa-people-group::before { - content: "\e533"; } - -.fa-hourglass-end::before { - content: "\f253"; } - -.fa-hourglass-3::before { - content: "\f253"; } - -.fa-heart-crack::before { - content: "\f7a9"; } - -.fa-heart-broken::before { - content: "\f7a9"; } - -.fa-square-up-right::before { - content: "\f360"; } - -.fa-external-link-square-alt::before { - content: "\f360"; } - -.fa-face-kiss-beam::before { - content: "\f597"; } - -.fa-kiss-beam::before { - content: "\f597"; } - -.fa-film::before { - content: "\f008"; } - -.fa-ruler-horizontal::before { - content: "\f547"; } - -.fa-people-robbery::before { - content: "\e536"; } - -.fa-lightbulb::before { - content: "\f0eb"; } - -.fa-caret-left::before { - content: "\f0d9"; } - -.fa-circle-exclamation::before { - content: "\f06a"; } - -.fa-exclamation-circle::before { - content: "\f06a"; } - -.fa-school-circle-xmark::before { - content: "\e56d"; } - -.fa-arrow-right-from-bracket::before { - content: "\f08b"; } - -.fa-sign-out::before { - content: "\f08b"; } - -.fa-circle-chevron-down::before { - content: "\f13a"; } - -.fa-chevron-circle-down::before { - content: "\f13a"; } - -.fa-unlock-keyhole::before { - content: "\f13e"; } - -.fa-unlock-alt::before { - content: "\f13e"; } - -.fa-cloud-showers-heavy::before { - content: "\f740"; } - -.fa-headphones-simple::before { - content: "\f58f"; } - -.fa-headphones-alt::before { - content: "\f58f"; } - -.fa-sitemap::before { - content: "\f0e8"; } - -.fa-circle-dollar-to-slot::before { - content: "\f4b9"; } - -.fa-donate::before { - content: "\f4b9"; } - -.fa-memory::before { - content: "\f538"; } - -.fa-road-spikes::before { - content: "\e568"; } - -.fa-fire-burner::before { - content: "\e4f1"; } - -.fa-flag::before { - content: "\f024"; } - -.fa-hanukiah::before { - content: "\f6e6"; } - -.fa-feather::before { - content: "\f52d"; } - -.fa-volume-low::before { - content: "\f027"; } - -.fa-volume-down::before { - content: "\f027"; } - -.fa-comment-slash::before { - content: "\f4b3"; } - -.fa-cloud-sun-rain::before { - content: "\f743"; } - -.fa-compress::before { - content: "\f066"; } - -.fa-wheat-awn::before { - content: "\e2cd"; } - -.fa-wheat-alt::before { - content: "\e2cd"; } - -.fa-ankh::before { - content: "\f644"; } - -.fa-hands-holding-child::before { - content: "\e4fa"; } - -.fa-asterisk::before { - content: "\2a"; } - -.fa-square-check::before { - content: "\f14a"; } - -.fa-check-square::before { - content: "\f14a"; } - -.fa-peseta-sign::before { - content: "\e221"; } - -.fa-heading::before { - content: "\f1dc"; } - -.fa-header::before { - content: "\f1dc"; } - -.fa-ghost::before { - content: "\f6e2"; } - -.fa-list::before { - content: "\f03a"; } - -.fa-list-squares::before { - content: "\f03a"; } - -.fa-square-phone-flip::before { - content: "\f87b"; } - -.fa-phone-square-alt::before { - content: "\f87b"; } - -.fa-cart-plus::before { - content: "\f217"; } - -.fa-gamepad::before { - content: "\f11b"; } - -.fa-circle-dot::before { - content: "\f192"; } - -.fa-dot-circle::before { - content: "\f192"; } - -.fa-face-dizzy::before { - content: "\f567"; } - -.fa-dizzy::before { - content: "\f567"; } - -.fa-egg::before { - content: "\f7fb"; } - -.fa-house-medical-circle-xmark::before { - content: "\e513"; } - -.fa-campground::before { - content: "\f6bb"; } - -.fa-folder-plus::before { - content: "\f65e"; } - -.fa-futbol::before { - content: "\f1e3"; } - -.fa-futbol-ball::before { - content: "\f1e3"; } - -.fa-soccer-ball::before { - content: "\f1e3"; } - -.fa-paintbrush::before { - content: "\f1fc"; } - -.fa-paint-brush::before { - content: "\f1fc"; } - -.fa-lock::before { - content: "\f023"; } - -.fa-gas-pump::before { - content: "\f52f"; } - -.fa-hot-tub-person::before { - content: "\f593"; } - -.fa-hot-tub::before { - content: "\f593"; } - -.fa-map-location::before { - content: "\f59f"; } - -.fa-map-marked::before { - content: "\f59f"; } - -.fa-house-flood-water::before { - content: "\e50e"; } - -.fa-tree::before { - content: "\f1bb"; } - -.fa-bridge-lock::before { - content: "\e4cc"; } - -.fa-sack-dollar::before { - content: "\f81d"; } - -.fa-pen-to-square::before { - content: "\f044"; } - -.fa-edit::before { - content: "\f044"; } - -.fa-car-side::before { - content: "\f5e4"; } - -.fa-share-nodes::before { - content: "\f1e0"; } - -.fa-share-alt::before { - content: "\f1e0"; } - -.fa-heart-circle-minus::before { - content: "\e4ff"; } - -.fa-hourglass-half::before { - content: "\f252"; } - -.fa-hourglass-2::before { - content: "\f252"; } - -.fa-microscope::before { - content: "\f610"; } - -.fa-sink::before { - content: "\e06d"; } - -.fa-bag-shopping::before { - content: "\f290"; } - -.fa-shopping-bag::before { - content: "\f290"; } - -.fa-arrow-down-z-a::before { - content: "\f881"; } - -.fa-sort-alpha-desc::before { - content: "\f881"; } - -.fa-sort-alpha-down-alt::before { - content: "\f881"; } - -.fa-mitten::before { - content: "\f7b5"; } - -.fa-person-rays::before { - content: "\e54d"; } - -.fa-users::before { - content: "\f0c0"; } - -.fa-eye-slash::before { - content: "\f070"; } - -.fa-flask-vial::before { - content: "\e4f3"; } - -.fa-hand::before { - content: "\f256"; } - -.fa-hand-paper::before { - content: "\f256"; } - -.fa-om::before { - content: "\f679"; } - -.fa-worm::before { - content: "\e599"; } - -.fa-house-circle-xmark::before { - content: "\e50b"; } - -.fa-plug::before { - content: "\f1e6"; } - -.fa-chevron-up::before { - content: "\f077"; } - -.fa-hand-spock::before { - content: "\f259"; } - -.fa-stopwatch::before { - content: "\f2f2"; } - -.fa-face-kiss::before { - content: "\f596"; } - -.fa-kiss::before { - content: "\f596"; } - -.fa-bridge-circle-xmark::before { - content: "\e4cb"; } - -.fa-face-grin-tongue::before { - content: "\f589"; } - -.fa-grin-tongue::before { - content: "\f589"; } - -.fa-chess-bishop::before { - content: "\f43a"; } - -.fa-face-grin-wink::before { - content: "\f58c"; } - -.fa-grin-wink::before { - content: "\f58c"; } - -.fa-ear-deaf::before { - content: "\f2a4"; } - -.fa-deaf::before { - content: "\f2a4"; } - -.fa-deafness::before { - content: "\f2a4"; } - -.fa-hard-of-hearing::before { - content: "\f2a4"; } - -.fa-road-circle-check::before { - content: "\e564"; } - -.fa-dice-five::before { - content: "\f523"; } - -.fa-square-rss::before { - content: "\f143"; } - -.fa-rss-square::before { - content: "\f143"; } - -.fa-land-mine-on::before { - content: "\e51b"; } - -.fa-i-cursor::before { - content: "\f246"; } - -.fa-stamp::before { - content: "\f5bf"; } - -.fa-stairs::before { - content: "\e289"; } - -.fa-i::before { - content: "\49"; } - -.fa-hryvnia-sign::before { - content: "\f6f2"; } - -.fa-hryvnia::before { - content: "\f6f2"; } - -.fa-pills::before { - content: "\f484"; } - -.fa-face-grin-wide::before { - content: "\f581"; } - -.fa-grin-alt::before { - content: "\f581"; } - -.fa-tooth::before { - content: "\f5c9"; } - -.fa-v::before { - content: "\56"; } - -.fa-bangladeshi-taka-sign::before { - content: "\e2e6"; } - -.fa-bicycle::before { - content: "\f206"; } - -.fa-staff-snake::before { - content: "\e579"; } - -.fa-rod-asclepius::before { - content: "\e579"; } - -.fa-rod-snake::before { - content: "\e579"; } - -.fa-staff-aesculapius::before { - content: "\e579"; } - -.fa-head-side-cough-slash::before { - content: "\e062"; } - -.fa-truck-medical::before { - content: "\f0f9"; } - -.fa-ambulance::before { - content: "\f0f9"; } - -.fa-wheat-awn-circle-exclamation::before { - content: "\e598"; } - -.fa-snowman::before { - content: "\f7d0"; } - -.fa-mortar-pestle::before { - content: "\f5a7"; } - -.fa-road-barrier::before { - content: "\e562"; } - -.fa-school::before { - content: "\f549"; } - -.fa-igloo::before { - content: "\f7ae"; } - -.fa-joint::before { - content: "\f595"; } - -.fa-angle-right::before { - content: "\f105"; } - -.fa-horse::before { - content: "\f6f0"; } - -.fa-q::before { - content: "\51"; } - -.fa-g::before { - content: "\47"; } - -.fa-notes-medical::before { - content: "\f481"; } - -.fa-temperature-half::before { - content: "\f2c9"; } - -.fa-temperature-2::before { - content: "\f2c9"; } - -.fa-thermometer-2::before { - content: "\f2c9"; } - -.fa-thermometer-half::before { - content: "\f2c9"; } - -.fa-dong-sign::before { - content: "\e169"; } - -.fa-capsules::before { - content: "\f46b"; } - -.fa-poo-storm::before { - content: "\f75a"; } - -.fa-poo-bolt::before { - content: "\f75a"; } - -.fa-face-frown-open::before { - content: "\f57a"; } - -.fa-frown-open::before { - content: "\f57a"; } - -.fa-hand-point-up::before { - content: "\f0a6"; } - -.fa-money-bill::before { - content: "\f0d6"; } - -.fa-bookmark::before { - content: "\f02e"; } - -.fa-align-justify::before { - content: "\f039"; } - -.fa-umbrella-beach::before { - content: "\f5ca"; } - -.fa-helmet-un::before { - content: "\e503"; } - -.fa-bullseye::before { - content: "\f140"; } - -.fa-bacon::before { - content: "\f7e5"; } - -.fa-hand-point-down::before { - content: "\f0a7"; } - -.fa-arrow-up-from-bracket::before { - content: "\e09a"; } - -.fa-folder::before { - content: "\f07b"; } - -.fa-folder-blank::before { - content: "\f07b"; } - -.fa-file-waveform::before { - content: "\f478"; } - -.fa-file-medical-alt::before { - content: "\f478"; } - -.fa-radiation::before { - content: "\f7b9"; } - -.fa-chart-simple::before { - content: "\e473"; } - -.fa-mars-stroke::before { - content: "\f229"; } - -.fa-vial::before { - content: "\f492"; } - -.fa-gauge::before { - content: "\f624"; } - -.fa-dashboard::before { - content: "\f624"; } - -.fa-gauge-med::before { - content: "\f624"; } - -.fa-tachometer-alt-average::before { - content: "\f624"; } - -.fa-wand-magic-sparkles::before { - content: "\e2ca"; } - -.fa-magic-wand-sparkles::before { - content: "\e2ca"; } - -.fa-e::before { - content: "\45"; } - -.fa-pen-clip::before { - content: "\f305"; } - -.fa-pen-alt::before { - content: "\f305"; } - -.fa-bridge-circle-exclamation::before { - content: "\e4ca"; } - -.fa-user::before { - content: "\f007"; } - -.fa-school-circle-check::before { - content: "\e56b"; } - -.fa-dumpster::before { - content: "\f793"; } - -.fa-van-shuttle::before { - content: "\f5b6"; } - -.fa-shuttle-van::before { - content: "\f5b6"; } - -.fa-building-user::before { - content: "\e4da"; } - -.fa-square-caret-left::before { - content: "\f191"; } - -.fa-caret-square-left::before { - content: "\f191"; } - -.fa-highlighter::before { - content: "\f591"; } - -.fa-key::before { - content: "\f084"; } - -.fa-bullhorn::before { - content: "\f0a1"; } - -.fa-globe::before { - content: "\f0ac"; } - -.fa-synagogue::before { - content: "\f69b"; } - -.fa-person-half-dress::before { - content: "\e548"; } - -.fa-road-bridge::before { - content: "\e563"; } - -.fa-location-arrow::before { - content: "\f124"; } - -.fa-c::before { - content: "\43"; } - -.fa-tablet-button::before { - content: "\f10a"; } - -.fa-building-lock::before { - content: "\e4d6"; } - -.fa-pizza-slice::before { - content: "\f818"; } - -.fa-money-bill-wave::before { - content: "\f53a"; } - -.fa-chart-area::before { - content: "\f1fe"; } - -.fa-area-chart::before { - content: "\f1fe"; } - -.fa-house-flag::before { - content: "\e50d"; } - -.fa-person-circle-minus::before { - content: "\e540"; } - -.fa-ban::before { - content: "\f05e"; } - -.fa-cancel::before { - content: "\f05e"; } - -.fa-camera-rotate::before { - content: "\e0d8"; } - -.fa-spray-can-sparkles::before { - content: "\f5d0"; } - -.fa-air-freshener::before { - content: "\f5d0"; } - -.fa-star::before { - content: "\f005"; } - -.fa-repeat::before { - content: "\f363"; } - -.fa-cross::before { - content: "\f654"; } - -.fa-box::before { - content: "\f466"; } - -.fa-venus-mars::before { - content: "\f228"; } - -.fa-arrow-pointer::before { - content: "\f245"; } - -.fa-mouse-pointer::before { - content: "\f245"; } - -.fa-maximize::before { - content: "\f31e"; } - -.fa-expand-arrows-alt::before { - content: "\f31e"; } - -.fa-charging-station::before { - content: "\f5e7"; } - -.fa-shapes::before { - content: "\f61f"; } - -.fa-triangle-circle-square::before { - content: "\f61f"; } - -.fa-shuffle::before { - content: "\f074"; } - -.fa-random::before { - content: "\f074"; } - -.fa-person-running::before { - content: "\f70c"; } - -.fa-running::before { - content: "\f70c"; } - -.fa-mobile-retro::before { - content: "\e527"; } - -.fa-grip-lines-vertical::before { - content: "\f7a5"; } - -.fa-spider::before { - content: "\f717"; } - -.fa-hands-bound::before { - content: "\e4f9"; } - -.fa-file-invoice-dollar::before { - content: "\f571"; } - -.fa-plane-circle-exclamation::before { - content: "\e556"; } - -.fa-x-ray::before { - content: "\f497"; } - -.fa-spell-check::before { - content: "\f891"; } - -.fa-slash::before { - content: "\f715"; } - -.fa-computer-mouse::before { - content: "\f8cc"; } - -.fa-mouse::before { - content: "\f8cc"; } - -.fa-arrow-right-to-bracket::before { - content: "\f090"; } - -.fa-sign-in::before { - content: "\f090"; } - -.fa-shop-slash::before { - content: "\e070"; } - -.fa-store-alt-slash::before { - content: "\e070"; } - -.fa-server::before { - content: "\f233"; } - -.fa-virus-covid-slash::before { - content: "\e4a9"; } - -.fa-shop-lock::before { - content: "\e4a5"; } - -.fa-hourglass-start::before { - content: "\f251"; } - -.fa-hourglass-1::before { - content: "\f251"; } - -.fa-blender-phone::before { - content: "\f6b6"; } - -.fa-building-wheat::before { - content: "\e4db"; } - -.fa-person-breastfeeding::before { - content: "\e53a"; } - -.fa-right-to-bracket::before { - content: "\f2f6"; } - -.fa-sign-in-alt::before { - content: "\f2f6"; } - -.fa-venus::before { - content: "\f221"; } - -.fa-passport::before { - content: "\f5ab"; } - -.fa-heart-pulse::before { - content: "\f21e"; } - -.fa-heartbeat::before { - content: "\f21e"; } - -.fa-people-carry-box::before { - content: "\f4ce"; } - -.fa-people-carry::before { - content: "\f4ce"; } - -.fa-temperature-high::before { - content: "\f769"; } - -.fa-microchip::before { - content: "\f2db"; } - -.fa-crown::before { - content: "\f521"; } - -.fa-weight-hanging::before { - content: "\f5cd"; } - -.fa-xmarks-lines::before { - content: "\e59a"; } - -.fa-file-prescription::before { - content: "\f572"; } - -.fa-weight-scale::before { - content: "\f496"; } - -.fa-weight::before { - content: "\f496"; } - -.fa-user-group::before { - content: "\f500"; } - -.fa-user-friends::before { - content: "\f500"; } - -.fa-arrow-up-a-z::before { - content: "\f15e"; } - -.fa-sort-alpha-up::before { - content: "\f15e"; } - -.fa-chess-knight::before { - content: "\f441"; } - -.fa-face-laugh-squint::before { - content: "\f59b"; } - -.fa-laugh-squint::before { - content: "\f59b"; } - -.fa-wheelchair::before { - content: "\f193"; } - -.fa-circle-arrow-up::before { - content: "\f0aa"; } - -.fa-arrow-circle-up::before { - content: "\f0aa"; } - -.fa-toggle-on::before { - content: "\f205"; } - -.fa-person-walking::before { - content: "\f554"; } - -.fa-walking::before { - content: "\f554"; } - -.fa-l::before { - content: "\4c"; } - -.fa-fire::before { - content: "\f06d"; } - -.fa-bed-pulse::before { - content: "\f487"; } - -.fa-procedures::before { - content: "\f487"; } - -.fa-shuttle-space::before { - content: "\f197"; } - -.fa-space-shuttle::before { - content: "\f197"; } - -.fa-face-laugh::before { - content: "\f599"; } - -.fa-laugh::before { - content: "\f599"; } - -.fa-folder-open::before { - content: "\f07c"; } - -.fa-heart-circle-plus::before { - content: "\e500"; } - -.fa-code-fork::before { - content: "\e13b"; } - -.fa-city::before { - content: "\f64f"; } - -.fa-microphone-lines::before { - content: "\f3c9"; } - -.fa-microphone-alt::before { - content: "\f3c9"; } - -.fa-pepper-hot::before { - content: "\f816"; } - -.fa-unlock::before { - content: "\f09c"; } - -.fa-colon-sign::before { - content: "\e140"; } - -.fa-headset::before { - content: "\f590"; } - -.fa-store-slash::before { - content: "\e071"; } - -.fa-road-circle-xmark::before { - content: "\e566"; } - -.fa-user-minus::before { - content: "\f503"; } - -.fa-mars-stroke-up::before { - content: "\f22a"; } - -.fa-mars-stroke-v::before { - content: "\f22a"; } - -.fa-champagne-glasses::before { - content: "\f79f"; } - -.fa-glass-cheers::before { - content: "\f79f"; } - -.fa-clipboard::before { - content: "\f328"; } - -.fa-house-circle-exclamation::before { - content: "\e50a"; } - -.fa-file-arrow-up::before { - content: "\f574"; } - -.fa-file-upload::before { - content: "\f574"; } - -.fa-wifi::before { - content: "\f1eb"; } - -.fa-wifi-3::before { - content: "\f1eb"; } - -.fa-wifi-strong::before { - content: "\f1eb"; } - -.fa-bath::before { - content: "\f2cd"; } - -.fa-bathtub::before { - content: "\f2cd"; } - -.fa-underline::before { - content: "\f0cd"; } - -.fa-user-pen::before { - content: "\f4ff"; } - -.fa-user-edit::before { - content: "\f4ff"; } - -.fa-signature::before { - content: "\f5b7"; } - -.fa-stroopwafel::before { - content: "\f551"; } - -.fa-bold::before { - content: "\f032"; } - -.fa-anchor-lock::before { - content: "\e4ad"; } - -.fa-building-ngo::before { - content: "\e4d7"; } - -.fa-manat-sign::before { - content: "\e1d5"; } - -.fa-not-equal::before { - content: "\f53e"; } - -.fa-border-top-left::before { - content: "\f853"; } - -.fa-border-style::before { - content: "\f853"; } - -.fa-map-location-dot::before { - content: "\f5a0"; } - -.fa-map-marked-alt::before { - content: "\f5a0"; } - -.fa-jedi::before { - content: "\f669"; } - -.fa-square-poll-vertical::before { - content: "\f681"; } - -.fa-poll::before { - content: "\f681"; } - -.fa-mug-hot::before { - content: "\f7b6"; } - -.fa-car-battery::before { - content: "\f5df"; } - -.fa-battery-car::before { - content: "\f5df"; } - -.fa-gift::before { - content: "\f06b"; } - -.fa-dice-two::before { - content: "\f528"; } - -.fa-chess-queen::before { - content: "\f445"; } - -.fa-glasses::before { - content: "\f530"; } - -.fa-chess-board::before { - content: "\f43c"; } - -.fa-building-circle-check::before { - content: "\e4d2"; } - -.fa-person-chalkboard::before { - content: "\e53d"; } - -.fa-mars-stroke-right::before { - content: "\f22b"; } - -.fa-mars-stroke-h::before { - content: "\f22b"; } - -.fa-hand-back-fist::before { - content: "\f255"; } - -.fa-hand-rock::before { - content: "\f255"; } - -.fa-square-caret-up::before { - content: "\f151"; } - -.fa-caret-square-up::before { - content: "\f151"; } - -.fa-cloud-showers-water::before { - content: "\e4e4"; } - -.fa-chart-bar::before { - content: "\f080"; } - -.fa-bar-chart::before { - content: "\f080"; } - -.fa-hands-bubbles::before { - content: "\e05e"; } - -.fa-hands-wash::before { - content: "\e05e"; } - -.fa-less-than-equal::before { - content: "\f537"; } - -.fa-train::before { - content: "\f238"; } - -.fa-eye-low-vision::before { - content: "\f2a8"; } - -.fa-low-vision::before { - content: "\f2a8"; } - -.fa-crow::before { - content: "\f520"; } - -.fa-sailboat::before { - content: "\e445"; } - -.fa-window-restore::before { - content: "\f2d2"; } - -.fa-square-plus::before { - content: "\f0fe"; } - -.fa-plus-square::before { - content: "\f0fe"; } - -.fa-torii-gate::before { - content: "\f6a1"; } - -.fa-frog::before { - content: "\f52e"; } - -.fa-bucket::before { - content: "\e4cf"; } - -.fa-image::before { - content: "\f03e"; } - -.fa-microphone::before { - content: "\f130"; } - -.fa-cow::before { - content: "\f6c8"; } - -.fa-caret-up::before { - content: "\f0d8"; } - -.fa-screwdriver::before { - content: "\f54a"; } - -.fa-folder-closed::before { - content: "\e185"; } - -.fa-house-tsunami::before { - content: "\e515"; } - -.fa-square-nfi::before { - content: "\e576"; } - -.fa-arrow-up-from-ground-water::before { - content: "\e4b5"; } - -.fa-martini-glass::before { - content: "\f57b"; } - -.fa-glass-martini-alt::before { - content: "\f57b"; } - -.fa-rotate-left::before { - content: "\f2ea"; } - -.fa-rotate-back::before { - content: "\f2ea"; } - -.fa-rotate-backward::before { - content: "\f2ea"; } - -.fa-undo-alt::before { - content: "\f2ea"; } - -.fa-table-columns::before { - content: "\f0db"; } - -.fa-columns::before { - content: "\f0db"; } - -.fa-lemon::before { - content: "\f094"; } - -.fa-head-side-mask::before { - content: "\e063"; } - -.fa-handshake::before { - content: "\f2b5"; } - -.fa-gem::before { - content: "\f3a5"; } - -.fa-dolly::before { - content: "\f472"; } - -.fa-dolly-box::before { - content: "\f472"; } - -.fa-smoking::before { - content: "\f48d"; } - -.fa-minimize::before { - content: "\f78c"; } - -.fa-compress-arrows-alt::before { - content: "\f78c"; } - -.fa-monument::before { - content: "\f5a6"; } - -.fa-snowplow::before { - content: "\f7d2"; } - -.fa-angles-right::before { - content: "\f101"; } - -.fa-angle-double-right::before { - content: "\f101"; } - -.fa-cannabis::before { - content: "\f55f"; } - -.fa-circle-play::before { - content: "\f144"; } - -.fa-play-circle::before { - content: "\f144"; } - -.fa-tablets::before { - content: "\f490"; } - -.fa-ethernet::before { - content: "\f796"; } - -.fa-euro-sign::before { - content: "\f153"; } - -.fa-eur::before { - content: "\f153"; } - -.fa-euro::before { - content: "\f153"; } - -.fa-chair::before { - content: "\f6c0"; } - -.fa-circle-check::before { - content: "\f058"; } - -.fa-check-circle::before { - content: "\f058"; } - -.fa-circle-stop::before { - content: "\f28d"; } - -.fa-stop-circle::before { - content: "\f28d"; } - -.fa-compass-drafting::before { - content: "\f568"; } - -.fa-drafting-compass::before { - content: "\f568"; } - -.fa-plate-wheat::before { - content: "\e55a"; } - -.fa-icicles::before { - content: "\f7ad"; } - -.fa-person-shelter::before { - content: "\e54f"; } - -.fa-neuter::before { - content: "\f22c"; } - -.fa-id-badge::before { - content: "\f2c1"; } - -.fa-marker::before { - content: "\f5a1"; } - -.fa-face-laugh-beam::before { - content: "\f59a"; } - -.fa-laugh-beam::before { - content: "\f59a"; } - -.fa-helicopter-symbol::before { - content: "\e502"; } - -.fa-universal-access::before { - content: "\f29a"; } - -.fa-circle-chevron-up::before { - content: "\f139"; } - -.fa-chevron-circle-up::before { - content: "\f139"; } - -.fa-lari-sign::before { - content: "\e1c8"; } - -.fa-volcano::before { - content: "\f770"; } - -.fa-person-walking-dashed-line-arrow-right::before { - content: "\e553"; } - -.fa-sterling-sign::before { - content: "\f154"; } - -.fa-gbp::before { - content: "\f154"; } - -.fa-pound-sign::before { - content: "\f154"; } - -.fa-viruses::before { - content: "\e076"; } - -.fa-square-person-confined::before { - content: "\e577"; } - -.fa-user-tie::before { - content: "\f508"; } - -.fa-arrow-down-long::before { - content: "\f175"; } - -.fa-long-arrow-down::before { - content: "\f175"; } - -.fa-tent-arrow-down-to-line::before { - content: "\e57e"; } - -.fa-certificate::before { - content: "\f0a3"; } - -.fa-reply-all::before { - content: "\f122"; } - -.fa-mail-reply-all::before { - content: "\f122"; } - -.fa-suitcase::before { - content: "\f0f2"; } - -.fa-person-skating::before { - content: "\f7c5"; } - -.fa-skating::before { - content: "\f7c5"; } - -.fa-filter-circle-dollar::before { - content: "\f662"; } - -.fa-funnel-dollar::before { - content: "\f662"; } - -.fa-camera-retro::before { - content: "\f083"; } - -.fa-circle-arrow-down::before { - content: "\f0ab"; } - -.fa-arrow-circle-down::before { - content: "\f0ab"; } - -.fa-file-import::before { - content: "\f56f"; } - -.fa-arrow-right-to-file::before { - content: "\f56f"; } - -.fa-square-arrow-up-right::before { - content: "\f14c"; } - -.fa-external-link-square::before { - content: "\f14c"; } - -.fa-box-open::before { - content: "\f49e"; } - -.fa-scroll::before { - content: "\f70e"; } - -.fa-spa::before { - content: "\f5bb"; } - -.fa-location-pin-lock::before { - content: "\e51f"; } - -.fa-pause::before { - content: "\f04c"; } - -.fa-hill-avalanche::before { - content: "\e507"; } - -.fa-temperature-empty::before { - content: "\f2cb"; } - -.fa-temperature-0::before { - content: "\f2cb"; } - -.fa-thermometer-0::before { - content: "\f2cb"; } - -.fa-thermometer-empty::before { - content: "\f2cb"; } - -.fa-bomb::before { - content: "\f1e2"; } - -.fa-registered::before { - content: "\f25d"; } - -.fa-address-card::before { - content: "\f2bb"; } - -.fa-contact-card::before { - content: "\f2bb"; } - -.fa-vcard::before { - content: "\f2bb"; } - -.fa-scale-unbalanced-flip::before { - content: "\f516"; } - -.fa-balance-scale-right::before { - content: "\f516"; } - -.fa-subscript::before { - content: "\f12c"; } - -.fa-diamond-turn-right::before { - content: "\f5eb"; } - -.fa-directions::before { - content: "\f5eb"; } - -.fa-burst::before { - content: "\e4dc"; } - -.fa-house-laptop::before { - content: "\e066"; } - -.fa-laptop-house::before { - content: "\e066"; } - -.fa-face-tired::before { - content: "\f5c8"; } - -.fa-tired::before { - content: "\f5c8"; } - -.fa-money-bills::before { - content: "\e1f3"; } - -.fa-smog::before { - content: "\f75f"; } - -.fa-crutch::before { - content: "\f7f7"; } - -.fa-cloud-arrow-up::before { - content: "\f0ee"; } - -.fa-cloud-upload::before { - content: "\f0ee"; } - -.fa-cloud-upload-alt::before { - content: "\f0ee"; } - -.fa-palette::before { - content: "\f53f"; } - -.fa-arrows-turn-right::before { - content: "\e4c0"; } - -.fa-vest::before { - content: "\e085"; } - -.fa-ferry::before { - content: "\e4ea"; } - -.fa-arrows-down-to-people::before { - content: "\e4b9"; } - -.fa-seedling::before { - content: "\f4d8"; } - -.fa-sprout::before { - content: "\f4d8"; } - -.fa-left-right::before { - content: "\f337"; } - -.fa-arrows-alt-h::before { - content: "\f337"; } - -.fa-boxes-packing::before { - content: "\e4c7"; } - -.fa-circle-arrow-left::before { - content: "\f0a8"; } - -.fa-arrow-circle-left::before { - content: "\f0a8"; } - -.fa-group-arrows-rotate::before { - content: "\e4f6"; } - -.fa-bowl-food::before { - content: "\e4c6"; } - -.fa-candy-cane::before { - content: "\f786"; } - -.fa-arrow-down-wide-short::before { - content: "\f160"; } - -.fa-sort-amount-asc::before { - content: "\f160"; } - -.fa-sort-amount-down::before { - content: "\f160"; } - -.fa-cloud-bolt::before { - content: "\f76c"; } - -.fa-thunderstorm::before { - content: "\f76c"; } - -.fa-text-slash::before { - content: "\f87d"; } - -.fa-remove-format::before { - content: "\f87d"; } - -.fa-face-smile-wink::before { - content: "\f4da"; } - -.fa-smile-wink::before { - content: "\f4da"; } - -.fa-file-word::before { - content: "\f1c2"; } - -.fa-file-powerpoint::before { - content: "\f1c4"; } - -.fa-arrows-left-right::before { - content: "\f07e"; } - -.fa-arrows-h::before { - content: "\f07e"; } - -.fa-house-lock::before { - content: "\e510"; } - -.fa-cloud-arrow-down::before { - content: "\f0ed"; } - -.fa-cloud-download::before { - content: "\f0ed"; } - -.fa-cloud-download-alt::before { - content: "\f0ed"; } - -.fa-children::before { - content: "\e4e1"; } - -.fa-chalkboard::before { - content: "\f51b"; } - -.fa-blackboard::before { - content: "\f51b"; } - -.fa-user-large-slash::before { - content: "\f4fa"; } - -.fa-user-alt-slash::before { - content: "\f4fa"; } - -.fa-envelope-open::before { - content: "\f2b6"; } - -.fa-handshake-simple-slash::before { - content: "\e05f"; } - -.fa-handshake-alt-slash::before { - content: "\e05f"; } - -.fa-mattress-pillow::before { - content: "\e525"; } - -.fa-guarani-sign::before { - content: "\e19a"; } - -.fa-arrows-rotate::before { - content: "\f021"; } - -.fa-refresh::before { - content: "\f021"; } - -.fa-sync::before { - content: "\f021"; } - -.fa-fire-extinguisher::before { - content: "\f134"; } - -.fa-cruzeiro-sign::before { - content: "\e152"; } - -.fa-greater-than-equal::before { - content: "\f532"; } - -.fa-shield-halved::before { - content: "\f3ed"; } - -.fa-shield-alt::before { - content: "\f3ed"; } - -.fa-book-atlas::before { - content: "\f558"; } - -.fa-atlas::before { - content: "\f558"; } - -.fa-virus::before { - content: "\e074"; } - -.fa-envelope-circle-check::before { - content: "\e4e8"; } - -.fa-layer-group::before { - content: "\f5fd"; } - -.fa-arrows-to-dot::before { - content: "\e4be"; } - -.fa-archway::before { - content: "\f557"; } - -.fa-heart-circle-check::before { - content: "\e4fd"; } - -.fa-house-chimney-crack::before { - content: "\f6f1"; } - -.fa-house-damage::before { - content: "\f6f1"; } - -.fa-file-zipper::before { - content: "\f1c6"; } - -.fa-file-archive::before { - content: "\f1c6"; } - -.fa-square::before { - content: "\f0c8"; } - -.fa-martini-glass-empty::before { - content: "\f000"; } - -.fa-glass-martini::before { - content: "\f000"; } - -.fa-couch::before { - content: "\f4b8"; } - -.fa-cedi-sign::before { - content: "\e0df"; } - -.fa-italic::before { - content: "\f033"; } - -.fa-table-cells-column-lock::before { - content: "\e678"; } - -.fa-church::before { - content: "\f51d"; } - -.fa-comments-dollar::before { - content: "\f653"; } - -.fa-democrat::before { - content: "\f747"; } - -.fa-z::before { - content: "\5a"; } - -.fa-person-skiing::before { - content: "\f7c9"; } - -.fa-skiing::before { - content: "\f7c9"; } - -.fa-road-lock::before { - content: "\e567"; } - -.fa-a::before { - content: "\41"; } - -.fa-temperature-arrow-down::before { - content: "\e03f"; } - -.fa-temperature-down::before { - content: "\e03f"; } - -.fa-feather-pointed::before { - content: "\f56b"; } - -.fa-feather-alt::before { - content: "\f56b"; } - -.fa-p::before { - content: "\50"; } - -.fa-snowflake::before { - content: "\f2dc"; } - -.fa-newspaper::before { - content: "\f1ea"; } - -.fa-rectangle-ad::before { - content: "\f641"; } - -.fa-ad::before { - content: "\f641"; } - -.fa-circle-arrow-right::before { - content: "\f0a9"; } - -.fa-arrow-circle-right::before { - content: "\f0a9"; } - -.fa-filter-circle-xmark::before { - content: "\e17b"; } - -.fa-locust::before { - content: "\e520"; } - -.fa-sort::before { - content: "\f0dc"; } - -.fa-unsorted::before { - content: "\f0dc"; } - -.fa-list-ol::before { - content: "\f0cb"; } - -.fa-list-1-2::before { - content: "\f0cb"; } - -.fa-list-numeric::before { - content: "\f0cb"; } - -.fa-person-dress-burst::before { - content: "\e544"; } - -.fa-money-check-dollar::before { - content: "\f53d"; } - -.fa-money-check-alt::before { - content: "\f53d"; } - -.fa-vector-square::before { - content: "\f5cb"; } - -.fa-bread-slice::before { - content: "\f7ec"; } - -.fa-language::before { - content: "\f1ab"; } - -.fa-face-kiss-wink-heart::before { - content: "\f598"; } - -.fa-kiss-wink-heart::before { - content: "\f598"; } - -.fa-filter::before { - content: "\f0b0"; } - -.fa-question::before { - content: "\3f"; } - -.fa-file-signature::before { - content: "\f573"; } - -.fa-up-down-left-right::before { - content: "\f0b2"; } - -.fa-arrows-alt::before { - content: "\f0b2"; } - -.fa-house-chimney-user::before { - content: "\e065"; } - -.fa-hand-holding-heart::before { - content: "\f4be"; } - -.fa-puzzle-piece::before { - content: "\f12e"; } - -.fa-money-check::before { - content: "\f53c"; } - -.fa-star-half-stroke::before { - content: "\f5c0"; } - -.fa-star-half-alt::before { - content: "\f5c0"; } - -.fa-code::before { - content: "\f121"; } - -.fa-whiskey-glass::before { - content: "\f7a0"; } - -.fa-glass-whiskey::before { - content: "\f7a0"; } - -.fa-building-circle-exclamation::before { - content: "\e4d3"; } - -.fa-magnifying-glass-chart::before { - content: "\e522"; } - -.fa-arrow-up-right-from-square::before { - content: "\f08e"; } - -.fa-external-link::before { - content: "\f08e"; } - -.fa-cubes-stacked::before { - content: "\e4e6"; } - -.fa-won-sign::before { - content: "\f159"; } - -.fa-krw::before { - content: "\f159"; } - -.fa-won::before { - content: "\f159"; } - -.fa-virus-covid::before { - content: "\e4a8"; } - -.fa-austral-sign::before { - content: "\e0a9"; } - -.fa-f::before { - content: "\46"; } - -.fa-leaf::before { - content: "\f06c"; } - -.fa-road::before { - content: "\f018"; } - -.fa-taxi::before { - content: "\f1ba"; } - -.fa-cab::before { - content: "\f1ba"; } - -.fa-person-circle-plus::before { - content: "\e541"; } - -.fa-chart-pie::before { - content: "\f200"; } - -.fa-pie-chart::before { - content: "\f200"; } - -.fa-bolt-lightning::before { - content: "\e0b7"; } - -.fa-sack-xmark::before { - content: "\e56a"; } - -.fa-file-excel::before { - content: "\f1c3"; } - -.fa-file-contract::before { - content: "\f56c"; } - -.fa-fish-fins::before { - content: "\e4f2"; } - -.fa-building-flag::before { - content: "\e4d5"; } - -.fa-face-grin-beam::before { - content: "\f582"; } - -.fa-grin-beam::before { - content: "\f582"; } - -.fa-object-ungroup::before { - content: "\f248"; } - -.fa-poop::before { - content: "\f619"; } - -.fa-location-pin::before { - content: "\f041"; } - -.fa-map-marker::before { - content: "\f041"; } - -.fa-kaaba::before { - content: "\f66b"; } - -.fa-toilet-paper::before { - content: "\f71e"; } - -.fa-helmet-safety::before { - content: "\f807"; } - -.fa-hard-hat::before { - content: "\f807"; } - -.fa-hat-hard::before { - content: "\f807"; } - -.fa-eject::before { - content: "\f052"; } - -.fa-circle-right::before { - content: "\f35a"; } - -.fa-arrow-alt-circle-right::before { - content: "\f35a"; } - -.fa-plane-circle-check::before { - content: "\e555"; } - -.fa-face-rolling-eyes::before { - content: "\f5a5"; } - -.fa-meh-rolling-eyes::before { - content: "\f5a5"; } - -.fa-object-group::before { - content: "\f247"; } - -.fa-chart-line::before { - content: "\f201"; } - -.fa-line-chart::before { - content: "\f201"; } - -.fa-mask-ventilator::before { - content: "\e524"; } - -.fa-arrow-right::before { - content: "\f061"; } - -.fa-signs-post::before { - content: "\f277"; } - -.fa-map-signs::before { - content: "\f277"; } - -.fa-cash-register::before { - content: "\f788"; } - -.fa-person-circle-question::before { - content: "\e542"; } - -.fa-h::before { - content: "\48"; } - -.fa-tarp::before { - content: "\e57b"; } - -.fa-screwdriver-wrench::before { - content: "\f7d9"; } - -.fa-tools::before { - content: "\f7d9"; } - -.fa-arrows-to-eye::before { - content: "\e4bf"; } - -.fa-plug-circle-bolt::before { - content: "\e55b"; } - -.fa-heart::before { - content: "\f004"; } - -.fa-mars-and-venus::before { - content: "\f224"; } - -.fa-house-user::before { - content: "\e1b0"; } - -.fa-home-user::before { - content: "\e1b0"; } - -.fa-dumpster-fire::before { - content: "\f794"; } - -.fa-house-crack::before { - content: "\e3b1"; } - -.fa-martini-glass-citrus::before { - content: "\f561"; } - -.fa-cocktail::before { - content: "\f561"; } - -.fa-face-surprise::before { - content: "\f5c2"; } - -.fa-surprise::before { - content: "\f5c2"; } - -.fa-bottle-water::before { - content: "\e4c5"; } - -.fa-circle-pause::before { - content: "\f28b"; } - -.fa-pause-circle::before { - content: "\f28b"; } - -.fa-toilet-paper-slash::before { - content: "\e072"; } - -.fa-apple-whole::before { - content: "\f5d1"; } - -.fa-apple-alt::before { - content: "\f5d1"; } - -.fa-kitchen-set::before { - content: "\e51a"; } - -.fa-r::before { - content: "\52"; } - -.fa-temperature-quarter::before { - content: "\f2ca"; } - -.fa-temperature-1::before { - content: "\f2ca"; } - -.fa-thermometer-1::before { - content: "\f2ca"; } - -.fa-thermometer-quarter::before { - content: "\f2ca"; } - -.fa-cube::before { - content: "\f1b2"; } - -.fa-bitcoin-sign::before { - content: "\e0b4"; } - -.fa-shield-dog::before { - content: "\e573"; } - -.fa-solar-panel::before { - content: "\f5ba"; } - -.fa-lock-open::before { - content: "\f3c1"; } - -.fa-elevator::before { - content: "\e16d"; } - -.fa-money-bill-transfer::before { - content: "\e528"; } - -.fa-money-bill-trend-up::before { - content: "\e529"; } - -.fa-house-flood-water-circle-arrow-right::before { - content: "\e50f"; } - -.fa-square-poll-horizontal::before { - content: "\f682"; } - -.fa-poll-h::before { - content: "\f682"; } - -.fa-circle::before { - content: "\f111"; } - -.fa-backward-fast::before { - content: "\f049"; } - -.fa-fast-backward::before { - content: "\f049"; } - -.fa-recycle::before { - content: "\f1b8"; } - -.fa-user-astronaut::before { - content: "\f4fb"; } - -.fa-plane-slash::before { - content: "\e069"; } - -.fa-trademark::before { - content: "\f25c"; } - -.fa-basketball::before { - content: "\f434"; } - -.fa-basketball-ball::before { - content: "\f434"; } - -.fa-satellite-dish::before { - content: "\f7c0"; } - -.fa-circle-up::before { - content: "\f35b"; } - -.fa-arrow-alt-circle-up::before { - content: "\f35b"; } - -.fa-mobile-screen-button::before { - content: "\f3cd"; } - -.fa-mobile-alt::before { - content: "\f3cd"; } - -.fa-volume-high::before { - content: "\f028"; } - -.fa-volume-up::before { - content: "\f028"; } - -.fa-users-rays::before { - content: "\e593"; } - -.fa-wallet::before { - content: "\f555"; } - -.fa-clipboard-check::before { - content: "\f46c"; } - -.fa-file-audio::before { - content: "\f1c7"; } - -.fa-burger::before { - content: "\f805"; } - -.fa-hamburger::before { - content: "\f805"; } - -.fa-wrench::before { - content: "\f0ad"; } - -.fa-bugs::before { - content: "\e4d0"; } - -.fa-rupee-sign::before { - content: "\f156"; } - -.fa-rupee::before { - content: "\f156"; } - -.fa-file-image::before { - content: "\f1c5"; } - -.fa-circle-question::before { - content: "\f059"; } - -.fa-question-circle::before { - content: "\f059"; } - -.fa-plane-departure::before { - content: "\f5b0"; } - -.fa-handshake-slash::before { - content: "\e060"; } - -.fa-book-bookmark::before { - content: "\e0bb"; } - -.fa-code-branch::before { - content: "\f126"; } - -.fa-hat-cowboy::before { - content: "\f8c0"; } - -.fa-bridge::before { - content: "\e4c8"; } - -.fa-phone-flip::before { - content: "\f879"; } - -.fa-phone-alt::before { - content: "\f879"; } - -.fa-truck-front::before { - content: "\e2b7"; } - -.fa-cat::before { - content: "\f6be"; } - -.fa-anchor-circle-exclamation::before { - content: "\e4ab"; } - -.fa-truck-field::before { - content: "\e58d"; } - -.fa-route::before { - content: "\f4d7"; } - -.fa-clipboard-question::before { - content: "\e4e3"; } - -.fa-panorama::before { - content: "\e209"; } - -.fa-comment-medical::before { - content: "\f7f5"; } - -.fa-teeth-open::before { - content: "\f62f"; } - -.fa-file-circle-minus::before { - content: "\e4ed"; } - -.fa-tags::before { - content: "\f02c"; } - -.fa-wine-glass::before { - content: "\f4e3"; } - -.fa-forward-fast::before { - content: "\f050"; } - -.fa-fast-forward::before { - content: "\f050"; } - -.fa-face-meh-blank::before { - content: "\f5a4"; } - -.fa-meh-blank::before { - content: "\f5a4"; } - -.fa-square-parking::before { - content: "\f540"; } - -.fa-parking::before { - content: "\f540"; } - -.fa-house-signal::before { - content: "\e012"; } - -.fa-bars-progress::before { - content: "\f828"; } - -.fa-tasks-alt::before { - content: "\f828"; } - -.fa-faucet-drip::before { - content: "\e006"; } - -.fa-cart-flatbed::before { - content: "\f474"; } - -.fa-dolly-flatbed::before { - content: "\f474"; } - -.fa-ban-smoking::before { - content: "\f54d"; } - -.fa-smoking-ban::before { - content: "\f54d"; } - -.fa-terminal::before { - content: "\f120"; } - -.fa-mobile-button::before { - content: "\f10b"; } - -.fa-house-medical-flag::before { - content: "\e514"; } - -.fa-basket-shopping::before { - content: "\f291"; } - -.fa-shopping-basket::before { - content: "\f291"; } - -.fa-tape::before { - content: "\f4db"; } - -.fa-bus-simple::before { - content: "\f55e"; } - -.fa-bus-alt::before { - content: "\f55e"; } - -.fa-eye::before { - content: "\f06e"; } - -.fa-face-sad-cry::before { - content: "\f5b3"; } - -.fa-sad-cry::before { - content: "\f5b3"; } - -.fa-audio-description::before { - content: "\f29e"; } - -.fa-person-military-to-person::before { - content: "\e54c"; } - -.fa-file-shield::before { - content: "\e4f0"; } - -.fa-user-slash::before { - content: "\f506"; } - -.fa-pen::before { - content: "\f304"; } - -.fa-tower-observation::before { - content: "\e586"; } - -.fa-file-code::before { - content: "\f1c9"; } - -.fa-signal::before { - content: "\f012"; } - -.fa-signal-5::before { - content: "\f012"; } - -.fa-signal-perfect::before { - content: "\f012"; } - -.fa-bus::before { - content: "\f207"; } - -.fa-heart-circle-xmark::before { - content: "\e501"; } - -.fa-house-chimney::before { - content: "\e3af"; } - -.fa-home-lg::before { - content: "\e3af"; } - -.fa-window-maximize::before { - content: "\f2d0"; } - -.fa-face-frown::before { - content: "\f119"; } - -.fa-frown::before { - content: "\f119"; } - -.fa-prescription::before { - content: "\f5b1"; } - -.fa-shop::before { - content: "\f54f"; } - -.fa-store-alt::before { - content: "\f54f"; } - -.fa-floppy-disk::before { - content: "\f0c7"; } - -.fa-save::before { - content: "\f0c7"; } - -.fa-vihara::before { - content: "\f6a7"; } - -.fa-scale-unbalanced::before { - content: "\f515"; } - -.fa-balance-scale-left::before { - content: "\f515"; } - -.fa-sort-up::before { - content: "\f0de"; } - -.fa-sort-asc::before { - content: "\f0de"; } - -.fa-comment-dots::before { - content: "\f4ad"; } - -.fa-commenting::before { - content: "\f4ad"; } - -.fa-plant-wilt::before { - content: "\e5aa"; } - -.fa-diamond::before { - content: "\f219"; } - -.fa-face-grin-squint::before { - content: "\f585"; } - -.fa-grin-squint::before { - content: "\f585"; } - -.fa-hand-holding-dollar::before { - content: "\f4c0"; } - -.fa-hand-holding-usd::before { - content: "\f4c0"; } - -.fa-bacterium::before { - content: "\e05a"; } - -.fa-hand-pointer::before { - content: "\f25a"; } - -.fa-drum-steelpan::before { - content: "\f56a"; } - -.fa-hand-scissors::before { - content: "\f257"; } - -.fa-hands-praying::before { - content: "\f684"; } - -.fa-praying-hands::before { - content: "\f684"; } - -.fa-arrow-rotate-right::before { - content: "\f01e"; } - -.fa-arrow-right-rotate::before { - content: "\f01e"; } - -.fa-arrow-rotate-forward::before { - content: "\f01e"; } - -.fa-redo::before { - content: "\f01e"; } - -.fa-biohazard::before { - content: "\f780"; } - -.fa-location-crosshairs::before { - content: "\f601"; } - -.fa-location::before { - content: "\f601"; } - -.fa-mars-double::before { - content: "\f227"; } - -.fa-child-dress::before { - content: "\e59c"; } - -.fa-users-between-lines::before { - content: "\e591"; } - -.fa-lungs-virus::before { - content: "\e067"; } - -.fa-face-grin-tears::before { - content: "\f588"; } - -.fa-grin-tears::before { - content: "\f588"; } - -.fa-phone::before { - content: "\f095"; } - -.fa-calendar-xmark::before { - content: "\f273"; } - -.fa-calendar-times::before { - content: "\f273"; } - -.fa-child-reaching::before { - content: "\e59d"; } - -.fa-head-side-virus::before { - content: "\e064"; } - -.fa-user-gear::before { - content: "\f4fe"; } - -.fa-user-cog::before { - content: "\f4fe"; } - -.fa-arrow-up-1-9::before { - content: "\f163"; } - -.fa-sort-numeric-up::before { - content: "\f163"; } - -.fa-door-closed::before { - content: "\f52a"; } - -.fa-shield-virus::before { - content: "\e06c"; } - -.fa-dice-six::before { - content: "\f526"; } - -.fa-mosquito-net::before { - content: "\e52c"; } - -.fa-bridge-water::before { - content: "\e4ce"; } - -.fa-person-booth::before { - content: "\f756"; } - -.fa-text-width::before { - content: "\f035"; } - -.fa-hat-wizard::before { - content: "\f6e8"; } - -.fa-pen-fancy::before { - content: "\f5ac"; } - -.fa-person-digging::before { - content: "\f85e"; } - -.fa-digging::before { - content: "\f85e"; } - -.fa-trash::before { - content: "\f1f8"; } - -.fa-gauge-simple::before { - content: "\f629"; } - -.fa-gauge-simple-med::before { - content: "\f629"; } - -.fa-tachometer-average::before { - content: "\f629"; } - -.fa-book-medical::before { - content: "\f7e6"; } - -.fa-poo::before { - content: "\f2fe"; } - -.fa-quote-right::before { - content: "\f10e"; } - -.fa-quote-right-alt::before { - content: "\f10e"; } - -.fa-shirt::before { - content: "\f553"; } - -.fa-t-shirt::before { - content: "\f553"; } - -.fa-tshirt::before { - content: "\f553"; } - -.fa-cubes::before { - content: "\f1b3"; } - -.fa-divide::before { - content: "\f529"; } - -.fa-tenge-sign::before { - content: "\f7d7"; } - -.fa-tenge::before { - content: "\f7d7"; } - -.fa-headphones::before { - content: "\f025"; } - -.fa-hands-holding::before { - content: "\f4c2"; } - -.fa-hands-clapping::before { - content: "\e1a8"; } - -.fa-republican::before { - content: "\f75e"; } - -.fa-arrow-left::before { - content: "\f060"; } - -.fa-person-circle-xmark::before { - content: "\e543"; } - -.fa-ruler::before { - content: "\f545"; } - -.fa-align-left::before { - content: "\f036"; } - -.fa-dice-d6::before { - content: "\f6d1"; } - -.fa-restroom::before { - content: "\f7bd"; } - -.fa-j::before { - content: "\4a"; } - -.fa-users-viewfinder::before { - content: "\e595"; } - -.fa-file-video::before { - content: "\f1c8"; } - -.fa-up-right-from-square::before { - content: "\f35d"; } - -.fa-external-link-alt::before { - content: "\f35d"; } - -.fa-table-cells::before { - content: "\f00a"; } - -.fa-th::before { - content: "\f00a"; } - -.fa-file-pdf::before { - content: "\f1c1"; } - -.fa-book-bible::before { - content: "\f647"; } - -.fa-bible::before { - content: "\f647"; } - -.fa-o::before { - content: "\4f"; } - -.fa-suitcase-medical::before { - content: "\f0fa"; } - -.fa-medkit::before { - content: "\f0fa"; } - -.fa-user-secret::before { - content: "\f21b"; } - -.fa-otter::before { - content: "\f700"; } - -.fa-person-dress::before { - content: "\f182"; } - -.fa-female::before { - content: "\f182"; } - -.fa-comment-dollar::before { - content: "\f651"; } - -.fa-business-time::before { - content: "\f64a"; } - -.fa-briefcase-clock::before { - content: "\f64a"; } - -.fa-table-cells-large::before { - content: "\f009"; } - -.fa-th-large::before { - content: "\f009"; } - -.fa-book-tanakh::before { - content: "\f827"; } - -.fa-tanakh::before { - content: "\f827"; } - -.fa-phone-volume::before { - content: "\f2a0"; } - -.fa-volume-control-phone::before { - content: "\f2a0"; } - -.fa-hat-cowboy-side::before { - content: "\f8c1"; } - -.fa-clipboard-user::before { - content: "\f7f3"; } - -.fa-child::before { - content: "\f1ae"; } - -.fa-lira-sign::before { - content: "\f195"; } - -.fa-satellite::before { - content: "\f7bf"; } - -.fa-plane-lock::before { - content: "\e558"; } - -.fa-tag::before { - content: "\f02b"; } - -.fa-comment::before { - content: "\f075"; } - -.fa-cake-candles::before { - content: "\f1fd"; } - -.fa-birthday-cake::before { - content: "\f1fd"; } - -.fa-cake::before { - content: "\f1fd"; } - -.fa-envelope::before { - content: "\f0e0"; } - -.fa-angles-up::before { - content: "\f102"; } - -.fa-angle-double-up::before { - content: "\f102"; } - -.fa-paperclip::before { - content: "\f0c6"; } - -.fa-arrow-right-to-city::before { - content: "\e4b3"; } - -.fa-ribbon::before { - content: "\f4d6"; } - -.fa-lungs::before { - content: "\f604"; } - -.fa-arrow-up-9-1::before { - content: "\f887"; } - -.fa-sort-numeric-up-alt::before { - content: "\f887"; } - -.fa-litecoin-sign::before { - content: "\e1d3"; } - -.fa-border-none::before { - content: "\f850"; } - -.fa-circle-nodes::before { - content: "\e4e2"; } - -.fa-parachute-box::before { - content: "\f4cd"; } - -.fa-indent::before { - content: "\f03c"; } - -.fa-truck-field-un::before { - content: "\e58e"; } - -.fa-hourglass::before { - content: "\f254"; } - -.fa-hourglass-empty::before { - content: "\f254"; } - -.fa-mountain::before { - content: "\f6fc"; } - -.fa-user-doctor::before { - content: "\f0f0"; } - -.fa-user-md::before { - content: "\f0f0"; } - -.fa-circle-info::before { - content: "\f05a"; } - -.fa-info-circle::before { - content: "\f05a"; } - -.fa-cloud-meatball::before { - content: "\f73b"; } - -.fa-camera::before { - content: "\f030"; } - -.fa-camera-alt::before { - content: "\f030"; } - -.fa-square-virus::before { - content: "\e578"; } - -.fa-meteor::before { - content: "\f753"; } - -.fa-car-on::before { - content: "\e4dd"; } - -.fa-sleigh::before { - content: "\f7cc"; } - -.fa-arrow-down-1-9::before { - content: "\f162"; } - -.fa-sort-numeric-asc::before { - content: "\f162"; } - -.fa-sort-numeric-down::before { - content: "\f162"; } - -.fa-hand-holding-droplet::before { - content: "\f4c1"; } - -.fa-hand-holding-water::before { - content: "\f4c1"; } - -.fa-water::before { - content: "\f773"; } - -.fa-calendar-check::before { - content: "\f274"; } - -.fa-braille::before { - content: "\f2a1"; } - -.fa-prescription-bottle-medical::before { - content: "\f486"; } - -.fa-prescription-bottle-alt::before { - content: "\f486"; } - -.fa-landmark::before { - content: "\f66f"; } - -.fa-truck::before { - content: "\f0d1"; } - -.fa-crosshairs::before { - content: "\f05b"; } - -.fa-person-cane::before { - content: "\e53c"; } - -.fa-tent::before { - content: "\e57d"; } - -.fa-vest-patches::before { - content: "\e086"; } - -.fa-check-double::before { - content: "\f560"; } - -.fa-arrow-down-a-z::before { - content: "\f15d"; } - -.fa-sort-alpha-asc::before { - content: "\f15d"; } - -.fa-sort-alpha-down::before { - content: "\f15d"; } - -.fa-money-bill-wheat::before { - content: "\e52a"; } - -.fa-cookie::before { - content: "\f563"; } - -.fa-arrow-rotate-left::before { - content: "\f0e2"; } - -.fa-arrow-left-rotate::before { - content: "\f0e2"; } - -.fa-arrow-rotate-back::before { - content: "\f0e2"; } - -.fa-arrow-rotate-backward::before { - content: "\f0e2"; } - -.fa-undo::before { - content: "\f0e2"; } - -.fa-hard-drive::before { - content: "\f0a0"; } - -.fa-hdd::before { - content: "\f0a0"; } - -.fa-face-grin-squint-tears::before { - content: "\f586"; } - -.fa-grin-squint-tears::before { - content: "\f586"; } - -.fa-dumbbell::before { - content: "\f44b"; } - -.fa-rectangle-list::before { - content: "\f022"; } - -.fa-list-alt::before { - content: "\f022"; } - -.fa-tarp-droplet::before { - content: "\e57c"; } - -.fa-house-medical-circle-check::before { - content: "\e511"; } - -.fa-person-skiing-nordic::before { - content: "\f7ca"; } - -.fa-skiing-nordic::before { - content: "\f7ca"; } - -.fa-calendar-plus::before { - content: "\f271"; } - -.fa-plane-arrival::before { - content: "\f5af"; } - -.fa-circle-left::before { - content: "\f359"; } - -.fa-arrow-alt-circle-left::before { - content: "\f359"; } - -.fa-train-subway::before { - content: "\f239"; } - -.fa-subway::before { - content: "\f239"; } - -.fa-chart-gantt::before { - content: "\e0e4"; } - -.fa-indian-rupee-sign::before { - content: "\e1bc"; } - -.fa-indian-rupee::before { - content: "\e1bc"; } - -.fa-inr::before { - content: "\e1bc"; } - -.fa-crop-simple::before { - content: "\f565"; } - -.fa-crop-alt::before { - content: "\f565"; } - -.fa-money-bill-1::before { - content: "\f3d1"; } - -.fa-money-bill-alt::before { - content: "\f3d1"; } - -.fa-left-long::before { - content: "\f30a"; } - -.fa-long-arrow-alt-left::before { - content: "\f30a"; } - -.fa-dna::before { - content: "\f471"; } - -.fa-virus-slash::before { - content: "\e075"; } - -.fa-minus::before { - content: "\f068"; } - -.fa-subtract::before { - content: "\f068"; } - -.fa-chess::before { - content: "\f439"; } - -.fa-arrow-left-long::before { - content: "\f177"; } - -.fa-long-arrow-left::before { - content: "\f177"; } - -.fa-plug-circle-check::before { - content: "\e55c"; } - -.fa-street-view::before { - content: "\f21d"; } - -.fa-franc-sign::before { - content: "\e18f"; } - -.fa-volume-off::before { - content: "\f026"; } - -.fa-hands-asl-interpreting::before { - content: "\f2a3"; } - -.fa-american-sign-language-interpreting::before { - content: "\f2a3"; } - -.fa-asl-interpreting::before { - content: "\f2a3"; } - -.fa-hands-american-sign-language-interpreting::before { - content: "\f2a3"; } - -.fa-gear::before { - content: "\f013"; } - -.fa-cog::before { - content: "\f013"; } - -.fa-droplet-slash::before { - content: "\f5c7"; } - -.fa-tint-slash::before { - content: "\f5c7"; } - -.fa-mosque::before { - content: "\f678"; } - -.fa-mosquito::before { - content: "\e52b"; } - -.fa-star-of-david::before { - content: "\f69a"; } - -.fa-person-military-rifle::before { - content: "\e54b"; } - -.fa-cart-shopping::before { - content: "\f07a"; } - -.fa-shopping-cart::before { - content: "\f07a"; } - -.fa-vials::before { - content: "\f493"; } - -.fa-plug-circle-plus::before { - content: "\e55f"; } - -.fa-place-of-worship::before { - content: "\f67f"; } - -.fa-grip-vertical::before { - content: "\f58e"; } - -.fa-arrow-turn-up::before { - content: "\f148"; } - -.fa-level-up::before { - content: "\f148"; } - -.fa-u::before { - content: "\55"; } - -.fa-square-root-variable::before { - content: "\f698"; } - -.fa-square-root-alt::before { - content: "\f698"; } - -.fa-clock::before { - content: "\f017"; } - -.fa-clock-four::before { - content: "\f017"; } - -.fa-backward-step::before { - content: "\f048"; } - -.fa-step-backward::before { - content: "\f048"; } - -.fa-pallet::before { - content: "\f482"; } - -.fa-faucet::before { - content: "\e005"; } - -.fa-baseball-bat-ball::before { - content: "\f432"; } - -.fa-s::before { - content: "\53"; } - -.fa-timeline::before { - content: "\e29c"; } - -.fa-keyboard::before { - content: "\f11c"; } - -.fa-caret-down::before { - content: "\f0d7"; } - -.fa-house-chimney-medical::before { - content: "\f7f2"; } - -.fa-clinic-medical::before { - content: "\f7f2"; } - -.fa-temperature-three-quarters::before { - content: "\f2c8"; } - -.fa-temperature-3::before { - content: "\f2c8"; } - -.fa-thermometer-3::before { - content: "\f2c8"; } - -.fa-thermometer-three-quarters::before { - content: "\f2c8"; } - -.fa-mobile-screen::before { - content: "\f3cf"; } - -.fa-mobile-android-alt::before { - content: "\f3cf"; } - -.fa-plane-up::before { - content: "\e22d"; } - -.fa-piggy-bank::before { - content: "\f4d3"; } - -.fa-battery-half::before { - content: "\f242"; } - -.fa-battery-3::before { - content: "\f242"; } - -.fa-mountain-city::before { - content: "\e52e"; } - -.fa-coins::before { - content: "\f51e"; } - -.fa-khanda::before { - content: "\f66d"; } - -.fa-sliders::before { - content: "\f1de"; } - -.fa-sliders-h::before { - content: "\f1de"; } - -.fa-folder-tree::before { - content: "\f802"; } - -.fa-network-wired::before { - content: "\f6ff"; } - -.fa-map-pin::before { - content: "\f276"; } - -.fa-hamsa::before { - content: "\f665"; } - -.fa-cent-sign::before { - content: "\e3f5"; } - -.fa-flask::before { - content: "\f0c3"; } - -.fa-person-pregnant::before { - content: "\e31e"; } - -.fa-wand-sparkles::before { - content: "\f72b"; } - -.fa-ellipsis-vertical::before { - content: "\f142"; } - -.fa-ellipsis-v::before { - content: "\f142"; } - -.fa-ticket::before { - content: "\f145"; } - -.fa-power-off::before { - content: "\f011"; } - -.fa-right-long::before { - content: "\f30b"; } - -.fa-long-arrow-alt-right::before { - content: "\f30b"; } - -.fa-flag-usa::before { - content: "\f74d"; } - -.fa-laptop-file::before { - content: "\e51d"; } - -.fa-tty::before { - content: "\f1e4"; } - -.fa-teletype::before { - content: "\f1e4"; } - -.fa-diagram-next::before { - content: "\e476"; } - -.fa-person-rifle::before { - content: "\e54e"; } - -.fa-house-medical-circle-exclamation::before { - content: "\e512"; } - -.fa-closed-captioning::before { - content: "\f20a"; } - -.fa-person-hiking::before { - content: "\f6ec"; } - -.fa-hiking::before { - content: "\f6ec"; } - -.fa-venus-double::before { - content: "\f226"; } - -.fa-images::before { - content: "\f302"; } - -.fa-calculator::before { - content: "\f1ec"; } - -.fa-people-pulling::before { - content: "\e535"; } - -.fa-n::before { - content: "\4e"; } - -.fa-cable-car::before { - content: "\f7da"; } - -.fa-tram::before { - content: "\f7da"; } - -.fa-cloud-rain::before { - content: "\f73d"; } - -.fa-building-circle-xmark::before { - content: "\e4d4"; } - -.fa-ship::before { - content: "\f21a"; } - -.fa-arrows-down-to-line::before { - content: "\e4b8"; } - -.fa-download::before { - content: "\f019"; } - -.fa-face-grin::before { - content: "\f580"; } - -.fa-grin::before { - content: "\f580"; } - -.fa-delete-left::before { - content: "\f55a"; } - -.fa-backspace::before { - content: "\f55a"; } - -.fa-eye-dropper::before { - content: "\f1fb"; } - -.fa-eye-dropper-empty::before { - content: "\f1fb"; } - -.fa-eyedropper::before { - content: "\f1fb"; } - -.fa-file-circle-check::before { - content: "\e5a0"; } - -.fa-forward::before { - content: "\f04e"; } - -.fa-mobile::before { - content: "\f3ce"; } - -.fa-mobile-android::before { - content: "\f3ce"; } - -.fa-mobile-phone::before { - content: "\f3ce"; } - -.fa-face-meh::before { - content: "\f11a"; } - -.fa-meh::before { - content: "\f11a"; } - -.fa-align-center::before { - content: "\f037"; } - -.fa-book-skull::before { - content: "\f6b7"; } - -.fa-book-dead::before { - content: "\f6b7"; } - -.fa-id-card::before { - content: "\f2c2"; } - -.fa-drivers-license::before { - content: "\f2c2"; } - -.fa-outdent::before { - content: "\f03b"; } - -.fa-dedent::before { - content: "\f03b"; } - -.fa-heart-circle-exclamation::before { - content: "\e4fe"; } - -.fa-house::before { - content: "\f015"; } - -.fa-home::before { - content: "\f015"; } - -.fa-home-alt::before { - content: "\f015"; } - -.fa-home-lg-alt::before { - content: "\f015"; } - -.fa-calendar-week::before { - content: "\f784"; } - -.fa-laptop-medical::before { - content: "\f812"; } - -.fa-b::before { - content: "\42"; } - -.fa-file-medical::before { - content: "\f477"; } - -.fa-dice-one::before { - content: "\f525"; } - -.fa-kiwi-bird::before { - content: "\f535"; } - -.fa-arrow-right-arrow-left::before { - content: "\f0ec"; } - -.fa-exchange::before { - content: "\f0ec"; } - -.fa-rotate-right::before { - content: "\f2f9"; } - -.fa-redo-alt::before { - content: "\f2f9"; } - -.fa-rotate-forward::before { - content: "\f2f9"; } - -.fa-utensils::before { - content: "\f2e7"; } - -.fa-cutlery::before { - content: "\f2e7"; } - -.fa-arrow-up-wide-short::before { - content: "\f161"; } - -.fa-sort-amount-up::before { - content: "\f161"; } - -.fa-mill-sign::before { - content: "\e1ed"; } - -.fa-bowl-rice::before { - content: "\e2eb"; } - -.fa-skull::before { - content: "\f54c"; } - -.fa-tower-broadcast::before { - content: "\f519"; } - -.fa-broadcast-tower::before { - content: "\f519"; } - -.fa-truck-pickup::before { - content: "\f63c"; } - -.fa-up-long::before { - content: "\f30c"; } - -.fa-long-arrow-alt-up::before { - content: "\f30c"; } - -.fa-stop::before { - content: "\f04d"; } - -.fa-code-merge::before { - content: "\f387"; } - -.fa-upload::before { - content: "\f093"; } - -.fa-hurricane::before { - content: "\f751"; } - -.fa-mound::before { - content: "\e52d"; } - -.fa-toilet-portable::before { - content: "\e583"; } - -.fa-compact-disc::before { - content: "\f51f"; } - -.fa-file-arrow-down::before { - content: "\f56d"; } - -.fa-file-download::before { - content: "\f56d"; } - -.fa-caravan::before { - content: "\f8ff"; } - -.fa-shield-cat::before { - content: "\e572"; } - -.fa-bolt::before { - content: "\f0e7"; } - -.fa-zap::before { - content: "\f0e7"; } - -.fa-glass-water::before { - content: "\e4f4"; } - -.fa-oil-well::before { - content: "\e532"; } - -.fa-vault::before { - content: "\e2c5"; } - -.fa-mars::before { - content: "\f222"; } - -.fa-toilet::before { - content: "\f7d8"; } - -.fa-plane-circle-xmark::before { - content: "\e557"; } - -.fa-yen-sign::before { - content: "\f157"; } - -.fa-cny::before { - content: "\f157"; } - -.fa-jpy::before { - content: "\f157"; } - -.fa-rmb::before { - content: "\f157"; } - -.fa-yen::before { - content: "\f157"; } - -.fa-ruble-sign::before { - content: "\f158"; } - -.fa-rouble::before { - content: "\f158"; } - -.fa-rub::before { - content: "\f158"; } - -.fa-ruble::before { - content: "\f158"; } - -.fa-sun::before { - content: "\f185"; } - -.fa-guitar::before { - content: "\f7a6"; } - -.fa-face-laugh-wink::before { - content: "\f59c"; } - -.fa-laugh-wink::before { - content: "\f59c"; } - -.fa-horse-head::before { - content: "\f7ab"; } - -.fa-bore-hole::before { - content: "\e4c3"; } - -.fa-industry::before { - content: "\f275"; } - -.fa-circle-down::before { - content: "\f358"; } - -.fa-arrow-alt-circle-down::before { - content: "\f358"; } - -.fa-arrows-turn-to-dots::before { - content: "\e4c1"; } - -.fa-florin-sign::before { - content: "\e184"; } - -.fa-arrow-down-short-wide::before { - content: "\f884"; } - -.fa-sort-amount-desc::before { - content: "\f884"; } - -.fa-sort-amount-down-alt::before { - content: "\f884"; } - -.fa-less-than::before { - content: "\3c"; } - -.fa-angle-down::before { - content: "\f107"; } - -.fa-car-tunnel::before { - content: "\e4de"; } - -.fa-head-side-cough::before { - content: "\e061"; } - -.fa-grip-lines::before { - content: "\f7a4"; } - -.fa-thumbs-down::before { - content: "\f165"; } - -.fa-user-lock::before { - content: "\f502"; } - -.fa-arrow-right-long::before { - content: "\f178"; } - -.fa-long-arrow-right::before { - content: "\f178"; } - -.fa-anchor-circle-xmark::before { - content: "\e4ac"; } - -.fa-ellipsis::before { - content: "\f141"; } - -.fa-ellipsis-h::before { - content: "\f141"; } - -.fa-chess-pawn::before { - content: "\f443"; } - -.fa-kit-medical::before { - content: "\f479"; } - -.fa-first-aid::before { - content: "\f479"; } - -.fa-person-through-window::before { - content: "\e5a9"; } - -.fa-toolbox::before { - content: "\f552"; } - -.fa-hands-holding-circle::before { - content: "\e4fb"; } - -.fa-bug::before { - content: "\f188"; } - -.fa-credit-card::before { - content: "\f09d"; } - -.fa-credit-card-alt::before { - content: "\f09d"; } - -.fa-car::before { - content: "\f1b9"; } - -.fa-automobile::before { - content: "\f1b9"; } - -.fa-hand-holding-hand::before { - content: "\e4f7"; } - -.fa-book-open-reader::before { - content: "\f5da"; } - -.fa-book-reader::before { - content: "\f5da"; } - -.fa-mountain-sun::before { - content: "\e52f"; } - -.fa-arrows-left-right-to-line::before { - content: "\e4ba"; } - -.fa-dice-d20::before { - content: "\f6cf"; } - -.fa-truck-droplet::before { - content: "\e58c"; } - -.fa-file-circle-xmark::before { - content: "\e5a1"; } - -.fa-temperature-arrow-up::before { - content: "\e040"; } - -.fa-temperature-up::before { - content: "\e040"; } - -.fa-medal::before { - content: "\f5a2"; } - -.fa-bed::before { - content: "\f236"; } - -.fa-square-h::before { - content: "\f0fd"; } - -.fa-h-square::before { - content: "\f0fd"; } - -.fa-podcast::before { - content: "\f2ce"; } - -.fa-temperature-full::before { - content: "\f2c7"; } - -.fa-temperature-4::before { - content: "\f2c7"; } - -.fa-thermometer-4::before { - content: "\f2c7"; } - -.fa-thermometer-full::before { - content: "\f2c7"; } - -.fa-bell::before { - content: "\f0f3"; } - -.fa-superscript::before { - content: "\f12b"; } - -.fa-plug-circle-xmark::before { - content: "\e560"; } - -.fa-star-of-life::before { - content: "\f621"; } - -.fa-phone-slash::before { - content: "\f3dd"; } - -.fa-paint-roller::before { - content: "\f5aa"; } - -.fa-handshake-angle::before { - content: "\f4c4"; } - -.fa-hands-helping::before { - content: "\f4c4"; } - -.fa-location-dot::before { - content: "\f3c5"; } - -.fa-map-marker-alt::before { - content: "\f3c5"; } - -.fa-file::before { - content: "\f15b"; } - -.fa-greater-than::before { - content: "\3e"; } - -.fa-person-swimming::before { - content: "\f5c4"; } - -.fa-swimmer::before { - content: "\f5c4"; } - -.fa-arrow-down::before { - content: "\f063"; } - -.fa-droplet::before { - content: "\f043"; } - -.fa-tint::before { - content: "\f043"; } - -.fa-eraser::before { - content: "\f12d"; } - -.fa-earth-americas::before { - content: "\f57d"; } - -.fa-earth::before { - content: "\f57d"; } - -.fa-earth-america::before { - content: "\f57d"; } - -.fa-globe-americas::before { - content: "\f57d"; } - -.fa-person-burst::before { - content: "\e53b"; } - -.fa-dove::before { - content: "\f4ba"; } - -.fa-battery-empty::before { - content: "\f244"; } - -.fa-battery-0::before { - content: "\f244"; } - -.fa-socks::before { - content: "\f696"; } - -.fa-inbox::before { - content: "\f01c"; } - -.fa-section::before { - content: "\e447"; } - -.fa-gauge-high::before { - content: "\f625"; } - -.fa-tachometer-alt::before { - content: "\f625"; } - -.fa-tachometer-alt-fast::before { - content: "\f625"; } - -.fa-envelope-open-text::before { - content: "\f658"; } - -.fa-hospital::before { - content: "\f0f8"; } - -.fa-hospital-alt::before { - content: "\f0f8"; } - -.fa-hospital-wide::before { - content: "\f0f8"; } - -.fa-wine-bottle::before { - content: "\f72f"; } - -.fa-chess-rook::before { - content: "\f447"; } - -.fa-bars-staggered::before { - content: "\f550"; } - -.fa-reorder::before { - content: "\f550"; } - -.fa-stream::before { - content: "\f550"; } - -.fa-dharmachakra::before { - content: "\f655"; } - -.fa-hotdog::before { - content: "\f80f"; } - -.fa-person-walking-with-cane::before { - content: "\f29d"; } - -.fa-blind::before { - content: "\f29d"; } - -.fa-drum::before { - content: "\f569"; } - -.fa-ice-cream::before { - content: "\f810"; } - -.fa-heart-circle-bolt::before { - content: "\e4fc"; } - -.fa-fax::before { - content: "\f1ac"; } - -.fa-paragraph::before { - content: "\f1dd"; } - -.fa-check-to-slot::before { - content: "\f772"; } - -.fa-vote-yea::before { - content: "\f772"; } - -.fa-star-half::before { - content: "\f089"; } - -.fa-boxes-stacked::before { - content: "\f468"; } - -.fa-boxes::before { - content: "\f468"; } - -.fa-boxes-alt::before { - content: "\f468"; } - -.fa-link::before { - content: "\f0c1"; } - -.fa-chain::before { - content: "\f0c1"; } - -.fa-ear-listen::before { - content: "\f2a2"; } - -.fa-assistive-listening-systems::before { - content: "\f2a2"; } - -.fa-tree-city::before { - content: "\e587"; } - -.fa-play::before { - content: "\f04b"; } - -.fa-font::before { - content: "\f031"; } - -.fa-table-cells-row-lock::before { - content: "\e67a"; } - -.fa-rupiah-sign::before { - content: "\e23d"; } - -.fa-magnifying-glass::before { - content: "\f002"; } - -.fa-search::before { - content: "\f002"; } - -.fa-table-tennis-paddle-ball::before { - content: "\f45d"; } - -.fa-ping-pong-paddle-ball::before { - content: "\f45d"; } - -.fa-table-tennis::before { - content: "\f45d"; } - -.fa-person-dots-from-line::before { - content: "\f470"; } - -.fa-diagnoses::before { - content: "\f470"; } - -.fa-trash-can-arrow-up::before { - content: "\f82a"; } - -.fa-trash-restore-alt::before { - content: "\f82a"; } - -.fa-naira-sign::before { - content: "\e1f6"; } - -.fa-cart-arrow-down::before { - content: "\f218"; } - -.fa-walkie-talkie::before { - content: "\f8ef"; } - -.fa-file-pen::before { - content: "\f31c"; } - -.fa-file-edit::before { - content: "\f31c"; } - -.fa-receipt::before { - content: "\f543"; } - -.fa-square-pen::before { - content: "\f14b"; } - -.fa-pen-square::before { - content: "\f14b"; } - -.fa-pencil-square::before { - content: "\f14b"; } - -.fa-suitcase-rolling::before { - content: "\f5c1"; } - -.fa-person-circle-exclamation::before { - content: "\e53f"; } - -.fa-chevron-down::before { - content: "\f078"; } - -.fa-battery-full::before { - content: "\f240"; } - -.fa-battery::before { - content: "\f240"; } - -.fa-battery-5::before { - content: "\f240"; } - -.fa-skull-crossbones::before { - content: "\f714"; } - -.fa-code-compare::before { - content: "\e13a"; } - -.fa-list-ul::before { - content: "\f0ca"; } - -.fa-list-dots::before { - content: "\f0ca"; } - -.fa-school-lock::before { - content: "\e56f"; } - -.fa-tower-cell::before { - content: "\e585"; } - -.fa-down-long::before { - content: "\f309"; } - -.fa-long-arrow-alt-down::before { - content: "\f309"; } - -.fa-ranking-star::before { - content: "\e561"; } - -.fa-chess-king::before { - content: "\f43f"; } - -.fa-person-harassing::before { - content: "\e549"; } - -.fa-brazilian-real-sign::before { - content: "\e46c"; } - -.fa-landmark-dome::before { - content: "\f752"; } - -.fa-landmark-alt::before { - content: "\f752"; } - -.fa-arrow-up::before { - content: "\f062"; } - -.fa-tv::before { - content: "\f26c"; } - -.fa-television::before { - content: "\f26c"; } - -.fa-tv-alt::before { - content: "\f26c"; } - -.fa-shrimp::before { - content: "\e448"; } - -.fa-list-check::before { - content: "\f0ae"; } - -.fa-tasks::before { - content: "\f0ae"; } - -.fa-jug-detergent::before { - content: "\e519"; } - -.fa-circle-user::before { - content: "\f2bd"; } - -.fa-user-circle::before { - content: "\f2bd"; } - -.fa-user-shield::before { - content: "\f505"; } - -.fa-wind::before { - content: "\f72e"; } - -.fa-car-burst::before { - content: "\f5e1"; } - -.fa-car-crash::before { - content: "\f5e1"; } - -.fa-y::before { - content: "\59"; } - -.fa-person-snowboarding::before { - content: "\f7ce"; } - -.fa-snowboarding::before { - content: "\f7ce"; } - -.fa-truck-fast::before { - content: "\f48b"; } - -.fa-shipping-fast::before { - content: "\f48b"; } - -.fa-fish::before { - content: "\f578"; } - -.fa-user-graduate::before { - content: "\f501"; } - -.fa-circle-half-stroke::before { - content: "\f042"; } - -.fa-adjust::before { - content: "\f042"; } - -.fa-clapperboard::before { - content: "\e131"; } - -.fa-circle-radiation::before { - content: "\f7ba"; } - -.fa-radiation-alt::before { - content: "\f7ba"; } - -.fa-baseball::before { - content: "\f433"; } - -.fa-baseball-ball::before { - content: "\f433"; } - -.fa-jet-fighter-up::before { - content: "\e518"; } - -.fa-diagram-project::before { - content: "\f542"; } - -.fa-project-diagram::before { - content: "\f542"; } - -.fa-copy::before { - content: "\f0c5"; } - -.fa-volume-xmark::before { - content: "\f6a9"; } - -.fa-volume-mute::before { - content: "\f6a9"; } - -.fa-volume-times::before { - content: "\f6a9"; } - -.fa-hand-sparkles::before { - content: "\e05d"; } - -.fa-grip::before { - content: "\f58d"; } - -.fa-grip-horizontal::before { - content: "\f58d"; } - -.fa-share-from-square::before { - content: "\f14d"; } - -.fa-share-square::before { - content: "\f14d"; } - -.fa-child-combatant::before { - content: "\e4e0"; } - -.fa-child-rifle::before { - content: "\e4e0"; } - -.fa-gun::before { - content: "\e19b"; } - -.fa-square-phone::before { - content: "\f098"; } - -.fa-phone-square::before { - content: "\f098"; } - -.fa-plus::before { - content: "\2b"; } - -.fa-add::before { - content: "\2b"; } - -.fa-expand::before { - content: "\f065"; } - -.fa-computer::before { - content: "\e4e5"; } - -.fa-xmark::before { - content: "\f00d"; } - -.fa-close::before { - content: "\f00d"; } - -.fa-multiply::before { - content: "\f00d"; } - -.fa-remove::before { - content: "\f00d"; } - -.fa-times::before { - content: "\f00d"; } - -.fa-arrows-up-down-left-right::before { - content: "\f047"; } - -.fa-arrows::before { - content: "\f047"; } - -.fa-chalkboard-user::before { - content: "\f51c"; } - -.fa-chalkboard-teacher::before { - content: "\f51c"; } - -.fa-peso-sign::before { - content: "\e222"; } - -.fa-building-shield::before { - content: "\e4d8"; } - -.fa-baby::before { - content: "\f77c"; } - -.fa-users-line::before { - content: "\e592"; } - -.fa-quote-left::before { - content: "\f10d"; } - -.fa-quote-left-alt::before { - content: "\f10d"; } - -.fa-tractor::before { - content: "\f722"; } - -.fa-trash-arrow-up::before { - content: "\f829"; } - -.fa-trash-restore::before { - content: "\f829"; } - -.fa-arrow-down-up-lock::before { - content: "\e4b0"; } - -.fa-lines-leaning::before { - content: "\e51e"; } - -.fa-ruler-combined::before { - content: "\f546"; } - -.fa-copyright::before { - content: "\f1f9"; } - -.fa-equals::before { - content: "\3d"; } - -.fa-blender::before { - content: "\f517"; } - -.fa-teeth::before { - content: "\f62e"; } - -.fa-shekel-sign::before { - content: "\f20b"; } - -.fa-ils::before { - content: "\f20b"; } - -.fa-shekel::before { - content: "\f20b"; } - -.fa-sheqel::before { - content: "\f20b"; } - -.fa-sheqel-sign::before { - content: "\f20b"; } - -.fa-map::before { - content: "\f279"; } - -.fa-rocket::before { - content: "\f135"; } - -.fa-photo-film::before { - content: "\f87c"; } - -.fa-photo-video::before { - content: "\f87c"; } - -.fa-folder-minus::before { - content: "\f65d"; } - -.fa-store::before { - content: "\f54e"; } - -.fa-arrow-trend-up::before { - content: "\e098"; } - -.fa-plug-circle-minus::before { - content: "\e55e"; } - -.fa-sign-hanging::before { - content: "\f4d9"; } - -.fa-sign::before { - content: "\f4d9"; } - -.fa-bezier-curve::before { - content: "\f55b"; } - -.fa-bell-slash::before { - content: "\f1f6"; } - -.fa-tablet::before { - content: "\f3fb"; } - -.fa-tablet-android::before { - content: "\f3fb"; } - -.fa-school-flag::before { - content: "\e56e"; } - -.fa-fill::before { - content: "\f575"; } - -.fa-angle-up::before { - content: "\f106"; } - -.fa-drumstick-bite::before { - content: "\f6d7"; } - -.fa-holly-berry::before { - content: "\f7aa"; } - -.fa-chevron-left::before { - content: "\f053"; } - -.fa-bacteria::before { - content: "\e059"; } - -.fa-hand-lizard::before { - content: "\f258"; } - -.fa-notdef::before { - content: "\e1fe"; } - -.fa-disease::before { - content: "\f7fa"; } - -.fa-briefcase-medical::before { - content: "\f469"; } - -.fa-genderless::before { - content: "\f22d"; } - -.fa-chevron-right::before { - content: "\f054"; } - -.fa-retweet::before { - content: "\f079"; } - -.fa-car-rear::before { - content: "\f5de"; } - -.fa-car-alt::before { - content: "\f5de"; } - -.fa-pump-soap::before { - content: "\e06b"; } - -.fa-video-slash::before { - content: "\f4e2"; } - -.fa-battery-quarter::before { - content: "\f243"; } - -.fa-battery-2::before { - content: "\f243"; } - -.fa-radio::before { - content: "\f8d7"; } - -.fa-baby-carriage::before { - content: "\f77d"; } - -.fa-carriage-baby::before { - content: "\f77d"; } - -.fa-traffic-light::before { - content: "\f637"; } - -.fa-thermometer::before { - content: "\f491"; } - -.fa-vr-cardboard::before { - content: "\f729"; } - -.fa-hand-middle-finger::before { - content: "\f806"; } - -.fa-percent::before { - content: "\25"; } - -.fa-percentage::before { - content: "\25"; } - -.fa-truck-moving::before { - content: "\f4df"; } - -.fa-glass-water-droplet::before { - content: "\e4f5"; } - -.fa-display::before { - content: "\e163"; } - -.fa-face-smile::before { - content: "\f118"; } - -.fa-smile::before { - content: "\f118"; } - -.fa-thumbtack::before { - content: "\f08d"; } - -.fa-thumb-tack::before { - content: "\f08d"; } - -.fa-trophy::before { - content: "\f091"; } - -.fa-person-praying::before { - content: "\f683"; } - -.fa-pray::before { - content: "\f683"; } - -.fa-hammer::before { - content: "\f6e3"; } - -.fa-hand-peace::before { - content: "\f25b"; } - -.fa-rotate::before { - content: "\f2f1"; } - -.fa-sync-alt::before { - content: "\f2f1"; } - -.fa-spinner::before { - content: "\f110"; } - -.fa-robot::before { - content: "\f544"; } - -.fa-peace::before { - content: "\f67c"; } - -.fa-gears::before { - content: "\f085"; } - -.fa-cogs::before { - content: "\f085"; } - -.fa-warehouse::before { - content: "\f494"; } - -.fa-arrow-up-right-dots::before { - content: "\e4b7"; } - -.fa-splotch::before { - content: "\f5bc"; } - -.fa-face-grin-hearts::before { - content: "\f584"; } - -.fa-grin-hearts::before { - content: "\f584"; } - -.fa-dice-four::before { - content: "\f524"; } - -.fa-sim-card::before { - content: "\f7c4"; } - -.fa-transgender::before { - content: "\f225"; } - -.fa-transgender-alt::before { - content: "\f225"; } - -.fa-mercury::before { - content: "\f223"; } - -.fa-arrow-turn-down::before { - content: "\f149"; } - -.fa-level-down::before { - content: "\f149"; } - -.fa-person-falling-burst::before { - content: "\e547"; } - -.fa-award::before { - content: "\f559"; } - -.fa-ticket-simple::before { - content: "\f3ff"; } - -.fa-ticket-alt::before { - content: "\f3ff"; } - -.fa-building::before { - content: "\f1ad"; } - -.fa-angles-left::before { - content: "\f100"; } - -.fa-angle-double-left::before { - content: "\f100"; } - -.fa-qrcode::before { - content: "\f029"; } - -.fa-clock-rotate-left::before { - content: "\f1da"; } - -.fa-history::before { - content: "\f1da"; } - -.fa-face-grin-beam-sweat::before { - content: "\f583"; } - -.fa-grin-beam-sweat::before { - content: "\f583"; } - -.fa-file-export::before { - content: "\f56e"; } - -.fa-arrow-right-from-file::before { - content: "\f56e"; } - -.fa-shield::before { - content: "\f132"; } - -.fa-shield-blank::before { - content: "\f132"; } - -.fa-arrow-up-short-wide::before { - content: "\f885"; } - -.fa-sort-amount-up-alt::before { - content: "\f885"; } - -.fa-house-medical::before { - content: "\e3b2"; } - -.fa-golf-ball-tee::before { - content: "\f450"; } - -.fa-golf-ball::before { - content: "\f450"; } - -.fa-circle-chevron-left::before { - content: "\f137"; } - -.fa-chevron-circle-left::before { - content: "\f137"; } - -.fa-house-chimney-window::before { - content: "\e00d"; } - -.fa-pen-nib::before { - content: "\f5ad"; } - -.fa-tent-arrow-turn-left::before { - content: "\e580"; } - -.fa-tents::before { - content: "\e582"; } - -.fa-wand-magic::before { - content: "\f0d0"; } - -.fa-magic::before { - content: "\f0d0"; } - -.fa-dog::before { - content: "\f6d3"; } - -.fa-carrot::before { - content: "\f787"; } - -.fa-moon::before { - content: "\f186"; } - -.fa-wine-glass-empty::before { - content: "\f5ce"; } - -.fa-wine-glass-alt::before { - content: "\f5ce"; } - -.fa-cheese::before { - content: "\f7ef"; } - -.fa-yin-yang::before { - content: "\f6ad"; } - -.fa-music::before { - content: "\f001"; } - -.fa-code-commit::before { - content: "\f386"; } - -.fa-temperature-low::before { - content: "\f76b"; } - -.fa-person-biking::before { - content: "\f84a"; } - -.fa-biking::before { - content: "\f84a"; } - -.fa-broom::before { - content: "\f51a"; } - -.fa-shield-heart::before { - content: "\e574"; } - -.fa-gopuram::before { - content: "\f664"; } - -.fa-earth-oceania::before { - content: "\e47b"; } - -.fa-globe-oceania::before { - content: "\e47b"; } - -.fa-square-xmark::before { - content: "\f2d3"; } - -.fa-times-square::before { - content: "\f2d3"; } - -.fa-xmark-square::before { - content: "\f2d3"; } - -.fa-hashtag::before { - content: "\23"; } - -.fa-up-right-and-down-left-from-center::before { - content: "\f424"; } - -.fa-expand-alt::before { - content: "\f424"; } - -.fa-oil-can::before { - content: "\f613"; } - -.fa-t::before { - content: "\54"; } - -.fa-hippo::before { - content: "\f6ed"; } - -.fa-chart-column::before { - content: "\e0e3"; } - -.fa-infinity::before { - content: "\f534"; } - -.fa-vial-circle-check::before { - content: "\e596"; } - -.fa-person-arrow-down-to-line::before { - content: "\e538"; } - -.fa-voicemail::before { - content: "\f897"; } - -.fa-fan::before { - content: "\f863"; } - -.fa-person-walking-luggage::before { - content: "\e554"; } - -.fa-up-down::before { - content: "\f338"; } - -.fa-arrows-alt-v::before { - content: "\f338"; } - -.fa-cloud-moon-rain::before { - content: "\f73c"; } - -.fa-calendar::before { - content: "\f133"; } - -.fa-trailer::before { - content: "\e041"; } - -.fa-bahai::before { - content: "\f666"; } - -.fa-haykal::before { - content: "\f666"; } - -.fa-sd-card::before { - content: "\f7c2"; } - -.fa-dragon::before { - content: "\f6d5"; } - -.fa-shoe-prints::before { - content: "\f54b"; } - -.fa-circle-plus::before { - content: "\f055"; } - -.fa-plus-circle::before { - content: "\f055"; } - -.fa-face-grin-tongue-wink::before { - content: "\f58b"; } - -.fa-grin-tongue-wink::before { - content: "\f58b"; } - -.fa-hand-holding::before { - content: "\f4bd"; } - -.fa-plug-circle-exclamation::before { - content: "\e55d"; } - -.fa-link-slash::before { - content: "\f127"; } - -.fa-chain-broken::before { - content: "\f127"; } - -.fa-chain-slash::before { - content: "\f127"; } - -.fa-unlink::before { - content: "\f127"; } - -.fa-clone::before { - content: "\f24d"; } - -.fa-person-walking-arrow-loop-left::before { - content: "\e551"; } - -.fa-arrow-up-z-a::before { - content: "\f882"; } - -.fa-sort-alpha-up-alt::before { - content: "\f882"; } - -.fa-fire-flame-curved::before { - content: "\f7e4"; } - -.fa-fire-alt::before { - content: "\f7e4"; } - -.fa-tornado::before { - content: "\f76f"; } - -.fa-file-circle-plus::before { - content: "\e494"; } - -.fa-book-quran::before { - content: "\f687"; } - -.fa-quran::before { - content: "\f687"; } - -.fa-anchor::before { - content: "\f13d"; } - -.fa-border-all::before { - content: "\f84c"; } - -.fa-face-angry::before { - content: "\f556"; } - -.fa-angry::before { - content: "\f556"; } - -.fa-cookie-bite::before { - content: "\f564"; } - -.fa-arrow-trend-down::before { - content: "\e097"; } - -.fa-rss::before { - content: "\f09e"; } - -.fa-feed::before { - content: "\f09e"; } - -.fa-draw-polygon::before { - content: "\f5ee"; } - -.fa-scale-balanced::before { - content: "\f24e"; } - -.fa-balance-scale::before { - content: "\f24e"; } - -.fa-gauge-simple-high::before { - content: "\f62a"; } - -.fa-tachometer::before { - content: "\f62a"; } - -.fa-tachometer-fast::before { - content: "\f62a"; } - -.fa-shower::before { - content: "\f2cc"; } - -.fa-desktop::before { - content: "\f390"; } - -.fa-desktop-alt::before { - content: "\f390"; } - -.fa-m::before { - content: "\4d"; } - -.fa-table-list::before { - content: "\f00b"; } - -.fa-th-list::before { - content: "\f00b"; } - -.fa-comment-sms::before { - content: "\f7cd"; } - -.fa-sms::before { - content: "\f7cd"; } - -.fa-book::before { - content: "\f02d"; } - -.fa-user-plus::before { - content: "\f234"; } - -.fa-check::before { - content: "\f00c"; } - -.fa-battery-three-quarters::before { - content: "\f241"; } - -.fa-battery-4::before { - content: "\f241"; } - -.fa-house-circle-check::before { - content: "\e509"; } - -.fa-angle-left::before { - content: "\f104"; } - -.fa-diagram-successor::before { - content: "\e47a"; } - -.fa-truck-arrow-right::before { - content: "\e58b"; } - -.fa-arrows-split-up-and-left::before { - content: "\e4bc"; } - -.fa-hand-fist::before { - content: "\f6de"; } - -.fa-fist-raised::before { - content: "\f6de"; } - -.fa-cloud-moon::before { - content: "\f6c3"; } - -.fa-briefcase::before { - content: "\f0b1"; } - -.fa-person-falling::before { - content: "\e546"; } - -.fa-image-portrait::before { - content: "\f3e0"; } - -.fa-portrait::before { - content: "\f3e0"; } - -.fa-user-tag::before { - content: "\f507"; } - -.fa-rug::before { - content: "\e569"; } - -.fa-earth-europe::before { - content: "\f7a2"; } - -.fa-globe-europe::before { - content: "\f7a2"; } - -.fa-cart-flatbed-suitcase::before { - content: "\f59d"; } - -.fa-luggage-cart::before { - content: "\f59d"; } - -.fa-rectangle-xmark::before { - content: "\f410"; } - -.fa-rectangle-times::before { - content: "\f410"; } - -.fa-times-rectangle::before { - content: "\f410"; } - -.fa-window-close::before { - content: "\f410"; } - -.fa-baht-sign::before { - content: "\e0ac"; } - -.fa-book-open::before { - content: "\f518"; } - -.fa-book-journal-whills::before { - content: "\f66a"; } - -.fa-journal-whills::before { - content: "\f66a"; } - -.fa-handcuffs::before { - content: "\e4f8"; } - -.fa-triangle-exclamation::before { - content: "\f071"; } - -.fa-exclamation-triangle::before { - content: "\f071"; } - -.fa-warning::before { - content: "\f071"; } - -.fa-database::before { - content: "\f1c0"; } - -.fa-share::before { - content: "\f064"; } - -.fa-mail-forward::before { - content: "\f064"; } - -.fa-bottle-droplet::before { - content: "\e4c4"; } - -.fa-mask-face::before { - content: "\e1d7"; } - -.fa-hill-rockslide::before { - content: "\e508"; } - -.fa-right-left::before { - content: "\f362"; } - -.fa-exchange-alt::before { - content: "\f362"; } - -.fa-paper-plane::before { - content: "\f1d8"; } - -.fa-road-circle-exclamation::before { - content: "\e565"; } - -.fa-dungeon::before { - content: "\f6d9"; } - -.fa-align-right::before { - content: "\f038"; } - -.fa-money-bill-1-wave::before { - content: "\f53b"; } - -.fa-money-bill-wave-alt::before { - content: "\f53b"; } - -.fa-life-ring::before { - content: "\f1cd"; } - -.fa-hands::before { - content: "\f2a7"; } - -.fa-sign-language::before { - content: "\f2a7"; } - -.fa-signing::before { - content: "\f2a7"; } - -.fa-calendar-day::before { - content: "\f783"; } - -.fa-water-ladder::before { - content: "\f5c5"; } - -.fa-ladder-water::before { - content: "\f5c5"; } - -.fa-swimming-pool::before { - content: "\f5c5"; } - -.fa-arrows-up-down::before { - content: "\f07d"; } - -.fa-arrows-v::before { - content: "\f07d"; } - -.fa-face-grimace::before { - content: "\f57f"; } - -.fa-grimace::before { - content: "\f57f"; } - -.fa-wheelchair-move::before { - content: "\e2ce"; } - -.fa-wheelchair-alt::before { - content: "\e2ce"; } - -.fa-turn-down::before { - content: "\f3be"; } - -.fa-level-down-alt::before { - content: "\f3be"; } - -.fa-person-walking-arrow-right::before { - content: "\e552"; } - -.fa-square-envelope::before { - content: "\f199"; } - -.fa-envelope-square::before { - content: "\f199"; } - -.fa-dice::before { - content: "\f522"; } - -.fa-bowling-ball::before { - content: "\f436"; } - -.fa-brain::before { - content: "\f5dc"; } - -.fa-bandage::before { - content: "\f462"; } - -.fa-band-aid::before { - content: "\f462"; } - -.fa-calendar-minus::before { - content: "\f272"; } - -.fa-circle-xmark::before { - content: "\f057"; } - -.fa-times-circle::before { - content: "\f057"; } - -.fa-xmark-circle::before { - content: "\f057"; } - -.fa-gifts::before { - content: "\f79c"; } - -.fa-hotel::before { - content: "\f594"; } - -.fa-earth-asia::before { - content: "\f57e"; } - -.fa-globe-asia::before { - content: "\f57e"; } - -.fa-id-card-clip::before { - content: "\f47f"; } - -.fa-id-card-alt::before { - content: "\f47f"; } - -.fa-magnifying-glass-plus::before { - content: "\f00e"; } - -.fa-search-plus::before { - content: "\f00e"; } - -.fa-thumbs-up::before { - content: "\f164"; } - -.fa-user-clock::before { - content: "\f4fd"; } - -.fa-hand-dots::before { - content: "\f461"; } - -.fa-allergies::before { - content: "\f461"; } - -.fa-file-invoice::before { - content: "\f570"; } - -.fa-window-minimize::before { - content: "\f2d1"; } - -.fa-mug-saucer::before { - content: "\f0f4"; } - -.fa-coffee::before { - content: "\f0f4"; } - -.fa-brush::before { - content: "\f55d"; } - -.fa-mask::before { - content: "\f6fa"; } - -.fa-magnifying-glass-minus::before { - content: "\f010"; } - -.fa-search-minus::before { - content: "\f010"; } - -.fa-ruler-vertical::before { - content: "\f548"; } - -.fa-user-large::before { - content: "\f406"; } - -.fa-user-alt::before { - content: "\f406"; } - -.fa-train-tram::before { - content: "\e5b4"; } - -.fa-user-nurse::before { - content: "\f82f"; } - -.fa-syringe::before { - content: "\f48e"; } - -.fa-cloud-sun::before { - content: "\f6c4"; } - -.fa-stopwatch-20::before { - content: "\e06f"; } - -.fa-square-full::before { - content: "\f45c"; } - -.fa-magnet::before { - content: "\f076"; } - -.fa-jar::before { - content: "\e516"; } - -.fa-note-sticky::before { - content: "\f249"; } - -.fa-sticky-note::before { - content: "\f249"; } - -.fa-bug-slash::before { - content: "\e490"; } - -.fa-arrow-up-from-water-pump::before { - content: "\e4b6"; } - -.fa-bone::before { - content: "\f5d7"; } - -.fa-user-injured::before { - content: "\f728"; } - -.fa-face-sad-tear::before { - content: "\f5b4"; } - -.fa-sad-tear::before { - content: "\f5b4"; } - -.fa-plane::before { - content: "\f072"; } - -.fa-tent-arrows-down::before { - content: "\e581"; } - -.fa-exclamation::before { - content: "\21"; } - -.fa-arrows-spin::before { - content: "\e4bb"; } - -.fa-print::before { - content: "\f02f"; } - -.fa-turkish-lira-sign::before { - content: "\e2bb"; } - -.fa-try::before { - content: "\e2bb"; } - -.fa-turkish-lira::before { - content: "\e2bb"; } - -.fa-dollar-sign::before { - content: "\24"; } - -.fa-dollar::before { - content: "\24"; } - -.fa-usd::before { - content: "\24"; } - -.fa-x::before { - content: "\58"; } - -.fa-magnifying-glass-dollar::before { - content: "\f688"; } - -.fa-search-dollar::before { - content: "\f688"; } - -.fa-users-gear::before { - content: "\f509"; } - -.fa-users-cog::before { - content: "\f509"; } - -.fa-person-military-pointing::before { - content: "\e54a"; } - -.fa-building-columns::before { - content: "\f19c"; } - -.fa-bank::before { - content: "\f19c"; } - -.fa-institution::before { - content: "\f19c"; } - -.fa-museum::before { - content: "\f19c"; } - -.fa-university::before { - content: "\f19c"; } - -.fa-umbrella::before { - content: "\f0e9"; } - -.fa-trowel::before { - content: "\e589"; } - -.fa-d::before { - content: "\44"; } - -.fa-stapler::before { - content: "\e5af"; } - -.fa-masks-theater::before { - content: "\f630"; } - -.fa-theater-masks::before { - content: "\f630"; } - -.fa-kip-sign::before { - content: "\e1c4"; } - -.fa-hand-point-left::before { - content: "\f0a5"; } - -.fa-handshake-simple::before { - content: "\f4c6"; } - -.fa-handshake-alt::before { - content: "\f4c6"; } - -.fa-jet-fighter::before { - content: "\f0fb"; } - -.fa-fighter-jet::before { - content: "\f0fb"; } - -.fa-square-share-nodes::before { - content: "\f1e1"; } - -.fa-share-alt-square::before { - content: "\f1e1"; } - -.fa-barcode::before { - content: "\f02a"; } - -.fa-plus-minus::before { - content: "\e43c"; } - -.fa-video::before { - content: "\f03d"; } - -.fa-video-camera::before { - content: "\f03d"; } - -.fa-graduation-cap::before { - content: "\f19d"; } - -.fa-mortar-board::before { - content: "\f19d"; } - -.fa-hand-holding-medical::before { - content: "\e05c"; } - -.fa-person-circle-check::before { - content: "\e53e"; } - -.fa-turn-up::before { - content: "\f3bf"; } - -.fa-level-up-alt::before { - content: "\f3bf"; } - -.sr-only, -.fa-sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; } - -.sr-only-focusable:not(:focus), -.fa-sr-only-focusable:not(:focus) { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; } - -/*! - * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:root, :host { - --fa-style-family-classic: 'Font Awesome 6 Free'; - --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } - -@font-face { - font-family: 'Font Awesome 6 Free'; - font-style: normal; - font-weight: 900; - font-display: block; - src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } - -.fas, .td-offline-search-results__close-button:after, -.fa-solid { - font-weight: 900; } - -/*! - * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -:root, :host { - --fa-style-family-brands: 'Font Awesome 6 Brands'; - --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } - -@font-face { - font-family: 'Font Awesome 6 Brands'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } - -.fab, -.fa-brands { - font-weight: 400; } - -.fa-monero:before { - content: "\f3d0"; } - -.fa-hooli:before { - content: "\f427"; } - -.fa-yelp:before { - content: "\f1e9"; } - -.fa-cc-visa:before { - content: "\f1f0"; } - -.fa-lastfm:before { - content: "\f202"; } - -.fa-shopware:before { - content: "\f5b5"; } - -.fa-creative-commons-nc:before { - content: "\f4e8"; } - -.fa-aws:before { - content: "\f375"; } - -.fa-redhat:before { - content: "\f7bc"; } - -.fa-yoast:before { - content: "\f2b1"; } - -.fa-cloudflare:before { - content: "\e07d"; } - -.fa-ups:before { - content: "\f7e0"; } - -.fa-pixiv:before { - content: "\e640"; } - -.fa-wpexplorer:before { - content: "\f2de"; } - -.fa-dyalog:before { - content: "\f399"; } - -.fa-bity:before { - content: "\f37a"; } - -.fa-stackpath:before { - content: "\f842"; } - -.fa-buysellads:before { - content: "\f20d"; } - -.fa-first-order:before { - content: "\f2b0"; } - -.fa-modx:before { - content: "\f285"; } - -.fa-guilded:before { - content: "\e07e"; } - -.fa-vnv:before { - content: "\f40b"; } - -.fa-square-js:before { - content: "\f3b9"; } - -.fa-js-square:before { - content: "\f3b9"; } - -.fa-microsoft:before { - content: "\f3ca"; } - -.fa-qq:before { - content: "\f1d6"; } - -.fa-orcid:before { - content: "\f8d2"; } - -.fa-java:before { - content: "\f4e4"; } - -.fa-invision:before { - content: "\f7b0"; } - -.fa-creative-commons-pd-alt:before { - content: "\f4ed"; } - -.fa-centercode:before { - content: "\f380"; } - -.fa-glide-g:before { - content: "\f2a6"; } - -.fa-drupal:before { - content: "\f1a9"; } - -.fa-jxl:before { - content: "\e67b"; } - -.fa-hire-a-helper:before { - content: "\f3b0"; } - -.fa-creative-commons-by:before { - content: "\f4e7"; } - -.fa-unity:before { - content: "\e049"; } - -.fa-whmcs:before { - content: "\f40d"; } - -.fa-rocketchat:before { - content: "\f3e8"; } - -.fa-vk:before { - content: "\f189"; } - -.fa-untappd:before { - content: "\f405"; } - -.fa-mailchimp:before { - content: "\f59e"; } - -.fa-css3-alt:before { - content: "\f38b"; } - -.fa-square-reddit:before { - content: "\f1a2"; } - -.fa-reddit-square:before { - content: "\f1a2"; } - -.fa-vimeo-v:before { - content: "\f27d"; } - -.fa-contao:before { - content: "\f26d"; } - -.fa-square-font-awesome:before { - content: "\e5ad"; } - -.fa-deskpro:before { - content: "\f38f"; } - -.fa-brave:before { - content: "\e63c"; } - -.fa-sistrix:before { - content: "\f3ee"; } - -.fa-square-instagram:before { - content: "\e055"; } - -.fa-instagram-square:before { - content: "\e055"; } - -.fa-battle-net:before { - content: "\f835"; } - -.fa-the-red-yeti:before { - content: "\f69d"; } - -.fa-square-hacker-news:before { - content: "\f3af"; } - -.fa-hacker-news-square:before { - content: "\f3af"; } - -.fa-edge:before { - content: "\f282"; } - -.fa-threads:before { - content: "\e618"; } - -.fa-napster:before { - content: "\f3d2"; } - -.fa-square-snapchat:before { - content: "\f2ad"; } - -.fa-snapchat-square:before { - content: "\f2ad"; } - -.fa-google-plus-g:before { - content: "\f0d5"; } - -.fa-artstation:before { - content: "\f77a"; } - -.fa-markdown:before { - content: "\f60f"; } - -.fa-sourcetree:before { - content: "\f7d3"; } - -.fa-google-plus:before { - content: "\f2b3"; } - -.fa-diaspora:before { - content: "\f791"; } - -.fa-foursquare:before { - content: "\f180"; } - -.fa-stack-overflow:before { - content: "\f16c"; } - -.fa-github-alt:before { - content: "\f113"; } - -.fa-phoenix-squadron:before { - content: "\f511"; } - -.fa-pagelines:before { - content: "\f18c"; } - -.fa-algolia:before { - content: "\f36c"; } - -.fa-red-river:before { - content: "\f3e3"; } - -.fa-creative-commons-sa:before { - content: "\f4ef"; } - -.fa-safari:before { - content: "\f267"; } - -.fa-google:before { - content: "\f1a0"; } - -.fa-square-font-awesome-stroke:before { - content: "\f35c"; } - -.fa-font-awesome-alt:before { - content: "\f35c"; } - -.fa-atlassian:before { - content: "\f77b"; } - -.fa-linkedin-in:before { - content: "\f0e1"; } - -.fa-digital-ocean:before { - content: "\f391"; } - -.fa-nimblr:before { - content: "\f5a8"; } - -.fa-chromecast:before { - content: "\f838"; } - -.fa-evernote:before { - content: "\f839"; } - -.fa-hacker-news:before { - content: "\f1d4"; } - -.fa-creative-commons-sampling:before { - content: "\f4f0"; } - -.fa-adversal:before { - content: "\f36a"; } - -.fa-creative-commons:before { - content: "\f25e"; } - -.fa-watchman-monitoring:before { - content: "\e087"; } - -.fa-fonticons:before { - content: "\f280"; } - -.fa-weixin:before { - content: "\f1d7"; } - -.fa-shirtsinbulk:before { - content: "\f214"; } - -.fa-codepen:before { - content: "\f1cb"; } - -.fa-git-alt:before { - content: "\f841"; } - -.fa-lyft:before { - content: "\f3c3"; } - -.fa-rev:before { - content: "\f5b2"; } - -.fa-windows:before { - content: "\f17a"; } - -.fa-wizards-of-the-coast:before { - content: "\f730"; } - -.fa-square-viadeo:before { - content: "\f2aa"; } - -.fa-viadeo-square:before { - content: "\f2aa"; } - -.fa-meetup:before { - content: "\f2e0"; } - -.fa-centos:before { - content: "\f789"; } - -.fa-adn:before { - content: "\f170"; } - -.fa-cloudsmith:before { - content: "\f384"; } - -.fa-opensuse:before { - content: "\e62b"; } - -.fa-pied-piper-alt:before { - content: "\f1a8"; } - -.fa-square-dribbble:before { - content: "\f397"; } - -.fa-dribbble-square:before { - content: "\f397"; } - -.fa-codiepie:before { - content: "\f284"; } - -.fa-node:before { - content: "\f419"; } - -.fa-mix:before { - content: "\f3cb"; } - -.fa-steam:before { - content: "\f1b6"; } - -.fa-cc-apple-pay:before { - content: "\f416"; } - -.fa-scribd:before { - content: "\f28a"; } - -.fa-debian:before { - content: "\e60b"; } - -.fa-openid:before { - content: "\f19b"; } - -.fa-instalod:before { - content: "\e081"; } - -.fa-expeditedssl:before { - content: "\f23e"; } - -.fa-sellcast:before { - content: "\f2da"; } - -.fa-square-twitter:before { - content: "\f081"; } - -.fa-twitter-square:before { - content: "\f081"; } - -.fa-r-project:before { - content: "\f4f7"; } - -.fa-delicious:before { - content: "\f1a5"; } - -.fa-freebsd:before { - content: "\f3a4"; } - -.fa-vuejs:before { - content: "\f41f"; } - -.fa-accusoft:before { - content: "\f369"; } - -.fa-ioxhost:before { - content: "\f208"; } - -.fa-fonticons-fi:before { - content: "\f3a2"; } - -.fa-app-store:before { - content: "\f36f"; } - -.fa-cc-mastercard:before { - content: "\f1f1"; } - -.fa-itunes-note:before { - content: "\f3b5"; } - -.fa-golang:before { - content: "\e40f"; } - -.fa-kickstarter:before { - content: "\f3bb"; } - -.fa-square-kickstarter:before { - content: "\f3bb"; } - -.fa-grav:before { - content: "\f2d6"; } - -.fa-weibo:before { - content: "\f18a"; } - -.fa-uncharted:before { - content: "\e084"; } - -.fa-firstdraft:before { - content: "\f3a1"; } - -.fa-square-youtube:before { - content: "\f431"; } - -.fa-youtube-square:before { - content: "\f431"; } - -.fa-wikipedia-w:before { - content: "\f266"; } - -.fa-wpressr:before { - content: "\f3e4"; } - -.fa-rendact:before { - content: "\f3e4"; } - -.fa-angellist:before { - content: "\f209"; } - -.fa-galactic-republic:before { - content: "\f50c"; } - -.fa-nfc-directional:before { - content: "\e530"; } - -.fa-skype:before { - content: "\f17e"; } - -.fa-joget:before { - content: "\f3b7"; } - -.fa-fedora:before { - content: "\f798"; } - -.fa-stripe-s:before { - content: "\f42a"; } - -.fa-meta:before { - content: "\e49b"; } - -.fa-laravel:before { - content: "\f3bd"; } - -.fa-hotjar:before { - content: "\f3b1"; } - -.fa-bluetooth-b:before { - content: "\f294"; } - -.fa-square-letterboxd:before { - content: "\e62e"; } - -.fa-sticker-mule:before { - content: "\f3f7"; } - -.fa-creative-commons-zero:before { - content: "\f4f3"; } - -.fa-hips:before { - content: "\f452"; } - -.fa-behance:before { - content: "\f1b4"; } - -.fa-reddit:before { - content: "\f1a1"; } - -.fa-discord:before { - content: "\f392"; } - -.fa-chrome:before { - content: "\f268"; } - -.fa-app-store-ios:before { - content: "\f370"; } - -.fa-cc-discover:before { - content: "\f1f2"; } - -.fa-wpbeginner:before { - content: "\f297"; } - -.fa-confluence:before { - content: "\f78d"; } - -.fa-shoelace:before { - content: "\e60c"; } - -.fa-mdb:before { - content: "\f8ca"; } - -.fa-dochub:before { - content: "\f394"; } - -.fa-accessible-icon:before { - content: "\f368"; } - -.fa-ebay:before { - content: "\f4f4"; } - -.fa-amazon:before { - content: "\f270"; } - -.fa-unsplash:before { - content: "\e07c"; } - -.fa-yarn:before { - content: "\f7e3"; } - -.fa-square-steam:before { - content: "\f1b7"; } - -.fa-steam-square:before { - content: "\f1b7"; } - -.fa-500px:before { - content: "\f26e"; } - -.fa-square-vimeo:before { - content: "\f194"; } - -.fa-vimeo-square:before { - content: "\f194"; } - -.fa-asymmetrik:before { - content: "\f372"; } - -.fa-font-awesome:before { - content: "\f2b4"; } - -.fa-font-awesome-flag:before { - content: "\f2b4"; } - -.fa-font-awesome-logo-full:before { - content: "\f2b4"; } - -.fa-gratipay:before { - content: "\f184"; } - -.fa-apple:before { - content: "\f179"; } - -.fa-hive:before { - content: "\e07f"; } - -.fa-gitkraken:before { - content: "\f3a6"; } - -.fa-keybase:before { - content: "\f4f5"; } - -.fa-apple-pay:before { - content: "\f415"; } - -.fa-padlet:before { - content: "\e4a0"; } - -.fa-amazon-pay:before { - content: "\f42c"; } - -.fa-square-github:before { - content: "\f092"; } - -.fa-github-square:before { - content: "\f092"; } - -.fa-stumbleupon:before { - content: "\f1a4"; } - -.fa-fedex:before { - content: "\f797"; } - -.fa-phoenix-framework:before { - content: "\f3dc"; } - -.fa-shopify:before { - content: "\e057"; } - -.fa-neos:before { - content: "\f612"; } - -.fa-square-threads:before { - content: "\e619"; } - -.fa-hackerrank:before { - content: "\f5f7"; } - -.fa-researchgate:before { - content: "\f4f8"; } - -.fa-swift:before { - content: "\f8e1"; } - -.fa-angular:before { - content: "\f420"; } - -.fa-speakap:before { - content: "\f3f3"; } - -.fa-angrycreative:before { - content: "\f36e"; } - -.fa-y-combinator:before { - content: "\f23b"; } - -.fa-empire:before { - content: "\f1d1"; } - -.fa-envira:before { - content: "\f299"; } - -.fa-google-scholar:before { - content: "\e63b"; } - -.fa-square-gitlab:before { - content: "\e5ae"; } - -.fa-gitlab-square:before { - content: "\e5ae"; } - -.fa-studiovinari:before { - content: "\f3f8"; } - -.fa-pied-piper:before { - content: "\f2ae"; } - -.fa-wordpress:before { - content: "\f19a"; } - -.fa-product-hunt:before { - content: "\f288"; } - -.fa-firefox:before { - content: "\f269"; } - -.fa-linode:before { - content: "\f2b8"; } - -.fa-goodreads:before { - content: "\f3a8"; } - -.fa-square-odnoklassniki:before { - content: "\f264"; } - -.fa-odnoklassniki-square:before { - content: "\f264"; } - -.fa-jsfiddle:before { - content: "\f1cc"; } - -.fa-sith:before { - content: "\f512"; } - -.fa-themeisle:before { - content: "\f2b2"; } - -.fa-page4:before { - content: "\f3d7"; } - -.fa-hashnode:before { - content: "\e499"; } - -.fa-react:before { - content: "\f41b"; } - -.fa-cc-paypal:before { - content: "\f1f4"; } - -.fa-squarespace:before { - content: "\f5be"; } - -.fa-cc-stripe:before { - content: "\f1f5"; } - -.fa-creative-commons-share:before { - content: "\f4f2"; } - -.fa-bitcoin:before { - content: "\f379"; } - -.fa-keycdn:before { - content: "\f3ba"; } - -.fa-opera:before { - content: "\f26a"; } - -.fa-itch-io:before { - content: "\f83a"; } - -.fa-umbraco:before { - content: "\f8e8"; } - -.fa-galactic-senate:before { - content: "\f50d"; } - -.fa-ubuntu:before { - content: "\f7df"; } - -.fa-draft2digital:before { - content: "\f396"; } - -.fa-stripe:before { - content: "\f429"; } - -.fa-houzz:before { - content: "\f27c"; } - -.fa-gg:before { - content: "\f260"; } - -.fa-dhl:before { - content: "\f790"; } - -.fa-square-pinterest:before { - content: "\f0d3"; } - -.fa-pinterest-square:before { - content: "\f0d3"; } - -.fa-xing:before { - content: "\f168"; } - -.fa-blackberry:before { - content: "\f37b"; } - -.fa-creative-commons-pd:before { - content: "\f4ec"; } - -.fa-playstation:before { - content: "\f3df"; } - -.fa-quinscape:before { - content: "\f459"; } - -.fa-less:before { - content: "\f41d"; } - -.fa-blogger-b:before { - content: "\f37d"; } - -.fa-opencart:before { - content: "\f23d"; } - -.fa-vine:before { - content: "\f1ca"; } - -.fa-signal-messenger:before { - content: "\e663"; } - -.fa-paypal:before { - content: "\f1ed"; } - -.fa-gitlab:before { - content: "\f296"; } - -.fa-typo3:before { - content: "\f42b"; } - -.fa-reddit-alien:before { - content: "\f281"; } - -.fa-yahoo:before { - content: "\f19e"; } - -.fa-dailymotion:before { - content: "\e052"; } - -.fa-affiliatetheme:before { - content: "\f36b"; } - -.fa-pied-piper-pp:before { - content: "\f1a7"; } - -.fa-bootstrap:before { - content: "\f836"; } - -.fa-odnoklassniki:before { - content: "\f263"; } - -.fa-nfc-symbol:before { - content: "\e531"; } - -.fa-mintbit:before { - content: "\e62f"; } - -.fa-ethereum:before { - content: "\f42e"; } - -.fa-speaker-deck:before { - content: "\f83c"; } - -.fa-creative-commons-nc-eu:before { - content: "\f4e9"; } - -.fa-patreon:before { - content: "\f3d9"; } - -.fa-avianex:before { - content: "\f374"; } - -.fa-ello:before { - content: "\f5f1"; } - -.fa-gofore:before { - content: "\f3a7"; } - -.fa-bimobject:before { - content: "\f378"; } - -.fa-brave-reverse:before { - content: "\e63d"; } - -.fa-facebook-f:before { - content: "\f39e"; } - -.fa-square-google-plus:before { - content: "\f0d4"; } - -.fa-google-plus-square:before { - content: "\f0d4"; } - -.fa-web-awesome:before { - content: "\e682"; } - -.fa-mandalorian:before { - content: "\f50f"; } - -.fa-first-order-alt:before { - content: "\f50a"; } - -.fa-osi:before { - content: "\f41a"; } - -.fa-google-wallet:before { - content: "\f1ee"; } - -.fa-d-and-d-beyond:before { - content: "\f6ca"; } - -.fa-periscope:before { - content: "\f3da"; } - -.fa-fulcrum:before { - content: "\f50b"; } - -.fa-cloudscale:before { - content: "\f383"; } - -.fa-forumbee:before { - content: "\f211"; } - -.fa-mizuni:before { - content: "\f3cc"; } - -.fa-schlix:before { - content: "\f3ea"; } - -.fa-square-xing:before { - content: "\f169"; } - -.fa-xing-square:before { - content: "\f169"; } - -.fa-bandcamp:before { - content: "\f2d5"; } - -.fa-wpforms:before { - content: "\f298"; } - -.fa-cloudversify:before { - content: "\f385"; } - -.fa-usps:before { - content: "\f7e1"; } - -.fa-megaport:before { - content: "\f5a3"; } - -.fa-magento:before { - content: "\f3c4"; } - -.fa-spotify:before { - content: "\f1bc"; } - -.fa-optin-monster:before { - content: "\f23c"; } - -.fa-fly:before { - content: "\f417"; } - -.fa-aviato:before { - content: "\f421"; } - -.fa-itunes:before { - content: "\f3b4"; } - -.fa-cuttlefish:before { - content: "\f38c"; } - -.fa-blogger:before { - content: "\f37c"; } - -.fa-flickr:before { - content: "\f16e"; } - -.fa-viber:before { - content: "\f409"; } - -.fa-soundcloud:before { - content: "\f1be"; } - -.fa-digg:before { - content: "\f1a6"; } - -.fa-tencent-weibo:before { - content: "\f1d5"; } - -.fa-letterboxd:before { - content: "\e62d"; } - -.fa-symfony:before { - content: "\f83d"; } - -.fa-maxcdn:before { - content: "\f136"; } - -.fa-etsy:before { - content: "\f2d7"; } - -.fa-facebook-messenger:before { - content: "\f39f"; } - -.fa-audible:before { - content: "\f373"; } - -.fa-think-peaks:before { - content: "\f731"; } - -.fa-bilibili:before { - content: "\e3d9"; } - -.fa-erlang:before { - content: "\f39d"; } - -.fa-x-twitter:before { - content: "\e61b"; } - -.fa-cotton-bureau:before { - content: "\f89e"; } - -.fa-dashcube:before { - content: "\f210"; } - -.fa-42-group:before { - content: "\e080"; } - -.fa-innosoft:before { - content: "\e080"; } - -.fa-stack-exchange:before { - content: "\f18d"; } - -.fa-elementor:before { - content: "\f430"; } - -.fa-square-pied-piper:before { - content: "\e01e"; } - -.fa-pied-piper-square:before { - content: "\e01e"; } - -.fa-creative-commons-nd:before { - content: "\f4eb"; } - -.fa-palfed:before { - content: "\f3d8"; } - -.fa-superpowers:before { - content: "\f2dd"; } - -.fa-resolving:before { - content: "\f3e7"; } - -.fa-xbox:before { - content: "\f412"; } - -.fa-square-web-awesome-stroke:before { - content: "\e684"; } - -.fa-searchengin:before { - content: "\f3eb"; } - -.fa-tiktok:before { - content: "\e07b"; } - -.fa-square-facebook:before { - content: "\f082"; } - -.fa-facebook-square:before { - content: "\f082"; } - -.fa-renren:before { - content: "\f18b"; } - -.fa-linux:before { - content: "\f17c"; } - -.fa-glide:before { - content: "\f2a5"; } - -.fa-linkedin:before { - content: "\f08c"; } - -.fa-hubspot:before { - content: "\f3b2"; } - -.fa-deploydog:before { - content: "\f38e"; } - -.fa-twitch:before { - content: "\f1e8"; } - -.fa-ravelry:before { - content: "\f2d9"; } - -.fa-mixer:before { - content: "\e056"; } - -.fa-square-lastfm:before { - content: "\f203"; } - -.fa-lastfm-square:before { - content: "\f203"; } - -.fa-vimeo:before { - content: "\f40a"; } - -.fa-mendeley:before { - content: "\f7b3"; } - -.fa-uniregistry:before { - content: "\f404"; } - -.fa-figma:before { - content: "\f799"; } - -.fa-creative-commons-remix:before { - content: "\f4ee"; } - -.fa-cc-amazon-pay:before { - content: "\f42d"; } - -.fa-dropbox:before { - content: "\f16b"; } - -.fa-instagram:before { - content: "\f16d"; } - -.fa-cmplid:before { - content: "\e360"; } - -.fa-upwork:before { - content: "\e641"; } - -.fa-facebook:before { - content: "\f09a"; } - -.fa-gripfire:before { - content: "\f3ac"; } - -.fa-jedi-order:before { - content: "\f50e"; } - -.fa-uikit:before { - content: "\f403"; } - -.fa-fort-awesome-alt:before { - content: "\f3a3"; } - -.fa-phabricator:before { - content: "\f3db"; } - -.fa-ussunnah:before { - content: "\f407"; } - -.fa-earlybirds:before { - content: "\f39a"; } - -.fa-trade-federation:before { - content: "\f513"; } - -.fa-autoprefixer:before { - content: "\f41c"; } - -.fa-whatsapp:before { - content: "\f232"; } - -.fa-square-upwork:before { - content: "\e67c"; } - -.fa-slideshare:before { - content: "\f1e7"; } - -.fa-google-play:before { - content: "\f3ab"; } - -.fa-viadeo:before { - content: "\f2a9"; } - -.fa-line:before { - content: "\f3c0"; } - -.fa-google-drive:before { - content: "\f3aa"; } - -.fa-servicestack:before { - content: "\f3ec"; } - -.fa-simplybuilt:before { - content: "\f215"; } - -.fa-bitbucket:before { - content: "\f171"; } - -.fa-imdb:before { - content: "\f2d8"; } - -.fa-deezer:before { - content: "\e077"; } - -.fa-raspberry-pi:before { - content: "\f7bb"; } - -.fa-jira:before { - content: "\f7b1"; } - -.fa-docker:before { - content: "\f395"; } - -.fa-screenpal:before { - content: "\e570"; } - -.fa-bluetooth:before { - content: "\f293"; } - -.fa-gitter:before { - content: "\f426"; } - -.fa-d-and-d:before { - content: "\f38d"; } - -.fa-microblog:before { - content: "\e01a"; } - -.fa-cc-diners-club:before { - content: "\f24c"; } - -.fa-gg-circle:before { - content: "\f261"; } - -.fa-pied-piper-hat:before { - content: "\f4e5"; } - -.fa-kickstarter-k:before { - content: "\f3bc"; } - -.fa-yandex:before { - content: "\f413"; } - -.fa-readme:before { - content: "\f4d5"; } - -.fa-html5:before { - content: "\f13b"; } - -.fa-sellsy:before { - content: "\f213"; } - -.fa-square-web-awesome:before { - content: "\e683"; } - -.fa-sass:before { - content: "\f41e"; } - -.fa-wirsindhandwerk:before { - content: "\e2d0"; } - -.fa-wsh:before { - content: "\e2d0"; } - -.fa-buromobelexperte:before { - content: "\f37f"; } - -.fa-salesforce:before { - content: "\f83b"; } - -.fa-octopus-deploy:before { - content: "\e082"; } - -.fa-medapps:before { - content: "\f3c6"; } - -.fa-ns8:before { - content: "\f3d5"; } - -.fa-pinterest-p:before { - content: "\f231"; } - -.fa-apper:before { - content: "\f371"; } - -.fa-fort-awesome:before { - content: "\f286"; } - -.fa-waze:before { - content: "\f83f"; } - -.fa-bluesky:before { - content: "\e671"; } - -.fa-cc-jcb:before { - content: "\f24b"; } - -.fa-snapchat:before { - content: "\f2ab"; } - -.fa-snapchat-ghost:before { - content: "\f2ab"; } - -.fa-fantasy-flight-games:before { - content: "\f6dc"; } - -.fa-rust:before { - content: "\e07a"; } - -.fa-wix:before { - content: "\f5cf"; } - -.fa-square-behance:before { - content: "\f1b5"; } - -.fa-behance-square:before { - content: "\f1b5"; } - -.fa-supple:before { - content: "\f3f9"; } - -.fa-webflow:before { - content: "\e65c"; } - -.fa-rebel:before { - content: "\f1d0"; } - -.fa-css3:before { - content: "\f13c"; } - -.fa-staylinked:before { - content: "\f3f5"; } - -.fa-kaggle:before { - content: "\f5fa"; } - -.fa-space-awesome:before { - content: "\e5ac"; } - -.fa-deviantart:before { - content: "\f1bd"; } - -.fa-cpanel:before { - content: "\f388"; } - -.fa-goodreads-g:before { - content: "\f3a9"; } - -.fa-square-git:before { - content: "\f1d2"; } - -.fa-git-square:before { - content: "\f1d2"; } - -.fa-square-tumblr:before { - content: "\f174"; } - -.fa-tumblr-square:before { - content: "\f174"; } - -.fa-trello:before { - content: "\f181"; } - -.fa-creative-commons-nc-jp:before { - content: "\f4ea"; } - -.fa-get-pocket:before { - content: "\f265"; } - -.fa-perbyte:before { - content: "\e083"; } - -.fa-grunt:before { - content: "\f3ad"; } - -.fa-weebly:before { - content: "\f5cc"; } - -.fa-connectdevelop:before { - content: "\f20e"; } - -.fa-leanpub:before { - content: "\f212"; } - -.fa-black-tie:before { - content: "\f27e"; } - -.fa-themeco:before { - content: "\f5c6"; } - -.fa-python:before { - content: "\f3e2"; } - -.fa-android:before { - content: "\f17b"; } - -.fa-bots:before { - content: "\e340"; } - -.fa-free-code-camp:before { - content: "\f2c5"; } - -.fa-hornbill:before { - content: "\f592"; } - -.fa-js:before { - content: "\f3b8"; } - -.fa-ideal:before { - content: "\e013"; } - -.fa-git:before { - content: "\f1d3"; } - -.fa-dev:before { - content: "\f6cc"; } - -.fa-sketch:before { - content: "\f7c6"; } - -.fa-yandex-international:before { - content: "\f414"; } - -.fa-cc-amex:before { - content: "\f1f3"; } - -.fa-uber:before { - content: "\f402"; } - -.fa-github:before { - content: "\f09b"; } - -.fa-php:before { - content: "\f457"; } - -.fa-alipay:before { - content: "\f642"; } - -.fa-youtube:before { - content: "\f167"; } - -.fa-skyatlas:before { - content: "\f216"; } - -.fa-firefox-browser:before { - content: "\e007"; } - -.fa-replyd:before { - content: "\f3e6"; } - -.fa-suse:before { - content: "\f7d6"; } - -.fa-jenkins:before { - content: "\f3b6"; } - -.fa-twitter:before { - content: "\f099"; } - -.fa-rockrms:before { - content: "\f3e9"; } - -.fa-pinterest:before { - content: "\f0d2"; } - -.fa-buffer:before { - content: "\f837"; } - -.fa-npm:before { - content: "\f3d4"; } - -.fa-yammer:before { - content: "\f840"; } - -.fa-btc:before { - content: "\f15a"; } - -.fa-dribbble:before { - content: "\f17d"; } - -.fa-stumbleupon-circle:before { - content: "\f1a3"; } - -.fa-internet-explorer:before { - content: "\f26b"; } - -.fa-stubber:before { - content: "\e5c7"; } - -.fa-telegram:before { - content: "\f2c6"; } - -.fa-telegram-plane:before { - content: "\f2c6"; } - -.fa-old-republic:before { - content: "\f510"; } - -.fa-odysee:before { - content: "\e5c6"; } - -.fa-square-whatsapp:before { - content: "\f40c"; } - -.fa-whatsapp-square:before { - content: "\f40c"; } - -.fa-node-js:before { - content: "\f3d3"; } - -.fa-edge-legacy:before { - content: "\e078"; } - -.fa-slack:before { - content: "\f198"; } - -.fa-slack-hash:before { - content: "\f198"; } - -.fa-medrt:before { - content: "\f3c8"; } - -.fa-usb:before { - content: "\f287"; } - -.fa-tumblr:before { - content: "\f173"; } - -.fa-vaadin:before { - content: "\f408"; } - -.fa-quora:before { - content: "\f2c4"; } - -.fa-square-x-twitter:before { - content: "\e61a"; } - -.fa-reacteurope:before { - content: "\f75d"; } - -.fa-medium:before { - content: "\f23a"; } - -.fa-medium-m:before { - content: "\f23a"; } - -.fa-amilia:before { - content: "\f36d"; } - -.fa-mixcloud:before { - content: "\f289"; } - -.fa-flipboard:before { - content: "\f44d"; } - -.fa-viacoin:before { - content: "\f237"; } - -.fa-critical-role:before { - content: "\f6c9"; } - -.fa-sitrox:before { - content: "\e44a"; } - -.fa-discourse:before { - content: "\f393"; } - -.fa-joomla:before { - content: "\f1aa"; } - -.fa-mastodon:before { - content: "\f4f6"; } - -.fa-airbnb:before { - content: "\f834"; } - -.fa-wolf-pack-battalion:before { - content: "\f514"; } - -.fa-buy-n-large:before { - content: "\f8a6"; } - -.fa-gulp:before { - content: "\f3ae"; } - -.fa-creative-commons-sampling-plus:before { - content: "\f4f1"; } - -.fa-strava:before { - content: "\f428"; } - -.fa-ember:before { - content: "\f423"; } - -.fa-canadian-maple-leaf:before { - content: "\f785"; } - -.fa-teamspeak:before { - content: "\f4f9"; } - -.fa-pushed:before { - content: "\f3e1"; } - -.fa-wordpress-simple:before { - content: "\f411"; } - -.fa-nutritionix:before { - content: "\f3d6"; } - -.fa-wodu:before { - content: "\e088"; } - -.fa-google-pay:before { - content: "\e079"; } - -.fa-intercom:before { - content: "\f7af"; } - -.fa-zhihu:before { - content: "\f63f"; } - -.fa-korvue:before { - content: "\f42f"; } - -.fa-pix:before { - content: "\e43a"; } - -.fa-steam-symbol:before { - content: "\f3f6"; } - -/* -Projects can override this file. For details, see: -https://www.docsy.dev/docs/adding-content/lookandfeel/#project-style-files -*/ -.td-border-top { - border: none; - border-top: 1px solid #eee; } - -.td-border-none { - border: none; } - -.td-block-padding, .td-default main section { - padding-top: 4rem; - padding-bottom: 4rem; } - @media (min-width: 768px) { - .td-block-padding, .td-default main section { - padding-top: 5rem; - padding-bottom: 5rem; } } -.td-overlay { - position: relative; } - .td-overlay::after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; } - .td-overlay--dark::after { - background-color: rgba(64, 63, 76, 0.3); } - .td-overlay--light::after { - background-color: rgba(211, 243, 238, 0.3); } - .td-overlay__inner { - position: relative; - z-index: 1; } - -@media (min-width: 992px) { - .td-max-width-on-larger-screens, .td-card.card, .td-card-group.card-group, .td-content > .tab-content .tab-pane, .td-content .footnotes, - .td-content > .alert, - .td-content > .highlight, - .td-content > .lead, - .td-content > .td-table, - .td-box .td-content > table, - .td-content > table, - .td-content > blockquote, - .td-content > dl dd, - .td-content > h1, - .td-content > .h1, - .td-content > h2, - .td-content > .h2, - .td-content > ol, - .td-content > p, - .td-content > pre, - .td-content > ul { - max-width: 80%; } } - -.-bg-blue { - color: #fff; - background-color: #0d6efd; } - -.-bg-blue p:not(.p-initial) > a { - color: #81b3fe; } - .-bg-blue p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-blue { - color: #0d6efd; } - -.-bg-indigo { - color: #fff; - background-color: #6610f2; } - -.-bg-indigo p:not(.p-initial) > a { - color: #85b6fe; } - .-bg-indigo p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-indigo { - color: #6610f2; } - -.-bg-purple { - color: #fff; - background-color: #6f42c1; } - -.-bg-purple p:not(.p-initial) > a { - color: #84b5fe; } - .-bg-purple p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-purple { - color: #6f42c1; } - -.-bg-pink { - color: #fff; - background-color: #d63384; } - -.-bg-pink p:not(.p-initial) > a { - color: #81b4fe; } - .-bg-pink p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-pink { - color: #d63384; } - -.-bg-red { - color: #fff; - background-color: #dc3545; } - -.-bg-red p:not(.p-initial) > a { - color: #7db1fe; } - .-bg-red p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-red { - color: #dc3545; } - -.-bg-orange { - color: #000; - background-color: #fd7e14; } - -.-bg-orange p:not(.p-initial) > a { - color: #073b87; } - .-bg-orange p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-orange { - color: #fd7e14; } - -.-bg-yellow { - color: #000; - background-color: #ffc107; } - -.-bg-yellow p:not(.p-initial) > a { - color: #073982; } - .-bg-yellow p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-yellow { - color: #ffc107; } - -.-bg-green { - color: #fff; - background-color: #198754; } - -.-bg-green p:not(.p-initial) > a { - color: #b3d2fe; } - .-bg-green p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-green { - color: #198754; } - -.-bg-teal { - color: #000; - background-color: #20c997; } - -.-bg-teal p:not(.p-initial) > a { - color: #063274; } - .-bg-teal p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-teal { - color: #20c997; } - -.-bg-cyan { - color: #000; - background-color: #0dcaf0; } - -.-bg-cyan p:not(.p-initial) > a { - color: #06377e; } - .-bg-cyan p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-cyan { - color: #0dcaf0; } - -.-bg-black { - color: #fff; - background-color: #000; } - -.-bg-black p:not(.p-initial) > a { - color: white; } - .-bg-black p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-black { - color: #000; } - -.-bg-white { - color: #000; - background-color: #fff; } - -.-bg-white p:not(.p-initial) > a { - color: #0d6efd; } - .-bg-white p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-white { - color: #fff; } - -.-bg-gray { - color: #fff; - background-color: #6c757d; } - -.-bg-gray p:not(.p-initial) > a { - color: #90bdfe; } - .-bg-gray p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-gray { - color: #6c757d; } - -.-bg-gray-dark { - color: #fff; - background-color: #343a40; } - -.-bg-gray-dark p:not(.p-initial) > a { - color: #c8deff; } - .-bg-gray-dark p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-gray-dark { - color: #343a40; } - -.-bg-primary { - color: #fff; - background-color: #30638e; } - -.-bg-primary p:not(.p-initial) > a { - color: #a5c9fe; } - .-bg-primary p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-primary { - color: #30638e; } - -.-bg-secondary { - color: #000; - background-color: #ffa630; } - -.-bg-secondary p:not(.p-initial) > a { - color: #084196; } - .-bg-secondary p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-secondary { - color: #ffa630; } - -.-bg-success { - color: #000; - background-color: #3772ff; } - -.-bg-success p:not(.p-initial) > a { - color: #08439a; } - .-bg-success p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-success { - color: #3772ff; } - -.-bg-info { - color: #000; - background-color: #c0e0de; } - -.-bg-info p:not(.p-initial) > a { - color: #0b5ace; } - .-bg-info p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-info { - color: #c0e0de; } - -.-bg-warning { - color: #000; - background-color: #ed6a5a; } - -.-bg-warning p:not(.p-initial) > a { - color: #0847a2; } - .-bg-warning p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-warning { - color: #ed6a5a; } - -.-bg-danger { - color: #000; - background-color: #ed6a5a; } - -.-bg-danger p:not(.p-initial) > a { - color: #0847a2; } - .-bg-danger p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-danger { - color: #ed6a5a; } - -.-bg-light { - color: #000; - background-color: #d3f3ee; } - -.-bg-light p:not(.p-initial) > a { - color: #0c62e1; } - .-bg-light p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-light { - color: #d3f3ee; } - -.-bg-dark { - color: #fff; - background-color: #403f4c; } - -.-bg-dark p:not(.p-initial) > a { - color: #bdd7fe; } - .-bg-dark p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-dark { - color: #403f4c; } - -.-bg-100 { - color: #000; - background-color: #f8f9fa; } - -.-bg-100 p:not(.p-initial) > a { - color: #0d6bf7; } - .-bg-100 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-100 { - color: #f8f9fa; } - -.-bg-200 { - color: #000; - background-color: #e9ecef; } - -.-bg-200 p:not(.p-initial) > a { - color: #0c66ea; } - .-bg-200 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-200 { - color: #e9ecef; } - -.-bg-300 { - color: #000; - background-color: #dee2e6; } - -.-bg-300 p:not(.p-initial) > a { - color: #0c61e0; } - .-bg-300 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-300 { - color: #dee2e6; } - -.-bg-400 { - color: #000; - background-color: #ced4da; } - -.-bg-400 p:not(.p-initial) > a { - color: #0b5bd2; } - .-bg-400 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-400 { - color: #ced4da; } - -.-bg-500 { - color: #000; - background-color: #adb5bd; } - -.-bg-500 p:not(.p-initial) > a { - color: #094eb4; } - .-bg-500 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-500 { - color: #adb5bd; } - -.-bg-600 { - color: #fff; - background-color: #6c757d; } - -.-bg-600 p:not(.p-initial) > a { - color: #90bdfe; } - .-bg-600 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-600 { - color: #6c757d; } - -.-bg-700 { - color: #fff; - background-color: #495057; } - -.-bg-700 p:not(.p-initial) > a { - color: #b3d2fe; } - .-bg-700 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-700 { - color: #495057; } - -.-bg-800 { - color: #fff; - background-color: #343a40; } - -.-bg-800 p:not(.p-initial) > a { - color: #c8deff; } - .-bg-800 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-800 { - color: #343a40; } - -.-bg-900 { - color: #fff; - background-color: #212529; } - -.-bg-900 p:not(.p-initial) > a { - color: #dceaff; } - .-bg-900 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-900 { - color: #212529; } - -.-bg-0 { - color: #fff; - background-color: #403f4c; } - -.-bg-0 p:not(.p-initial) > a { - color: #bdd7fe; } - .-bg-0 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-0 { - color: #403f4c; } - -.-bg-1 { - color: #fff; - background-color: #30638e; } - -.-bg-1 p:not(.p-initial) > a { - color: #a5c9fe; } - .-bg-1 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-1 { - color: #30638e; } - -.-bg-2 { - color: #000; - background-color: #ffa630; } - -.-bg-2 p:not(.p-initial) > a { - color: #084196; } - .-bg-2 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-2 { - color: #ffa630; } - -.-bg-3 { - color: #000; - background-color: #c0e0de; } - -.-bg-3 p:not(.p-initial) > a { - color: #0b5ace; } - .-bg-3 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-3 { - color: #c0e0de; } - -.-bg-4 { - color: #000; - background-color: #fff; } - -.-bg-4 p:not(.p-initial) > a { - color: #0d6efd; } - .-bg-4 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-4 { - color: #fff; } - -.-bg-5 { - color: #fff; - background-color: #6c757d; } - -.-bg-5 p:not(.p-initial) > a { - color: #90bdfe; } - .-bg-5 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-5 { - color: #6c757d; } - -.-bg-6 { - color: #000; - background-color: #3772ff; } - -.-bg-6 p:not(.p-initial) > a { - color: #08439a; } - .-bg-6 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-6 { - color: #3772ff; } - -.-bg-7 { - color: #000; - background-color: #ed6a5a; } - -.-bg-7 p:not(.p-initial) > a { - color: #0847a2; } - .-bg-7 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-7 { - color: #ed6a5a; } - -.-bg-8 { - color: #fff; - background-color: #403f4c; } - -.-bg-8 p:not(.p-initial) > a { - color: #bdd7fe; } - .-bg-8 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-8 { - color: #403f4c; } - -.-bg-9 { - color: #000; - background-color: #ed6a5a; } - -.-bg-9 p:not(.p-initial) > a { - color: #0847a2; } - .-bg-9 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-9 { - color: #ed6a5a; } - -.-bg-10 { - color: #fff; - background-color: #30638e; } - -.-bg-10 p:not(.p-initial) > a { - color: #a5c9fe; } - .-bg-10 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-10 { - color: #30638e; } - -.-bg-11 { - color: #000; - background-color: #ffa630; } - -.-bg-11 p:not(.p-initial) > a { - color: #084196; } - .-bg-11 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-11 { - color: #ffa630; } - -.-bg-12 { - color: #000; - background-color: #c0e0de; } - -.-bg-12 p:not(.p-initial) > a { - color: #0b5ace; } - .-bg-12 p:not(.p-initial) > a:hover { - color: #094db1; } - -.-text-12 { - color: #c0e0de; } - -.td-table:not(.td-initial), .td-content table:not(.td-initial), .td-box table:not(.td-initial) { - display: block; } - -.td-box--height-min { - min-height: 300px; } - -.td-box--height-med { - min-height: 400px; } - -.td-box--height-max { - min-height: 500px; } - -.td-box--height-full { - min-height: 100vh; } - -@media (min-width: 768px) { - .td-box--height-min { - min-height: 450px; } - .td-box--height-med { - min-height: 500px; } - .td-box--height-max { - min-height: 650px; } } - -.td-box .row { - padding-left: 5vw; - padding-right: 5vw; } - -.td-box.linkbox { - padding: 5vh 5vw; } - -.td-box--0 { - color: #fff; - background-color: #403f4c; } - .td-box--0 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #403f4c transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--0 p > a, .td-box--0 span > a { - color: #bdd7fe; } - .td-box--0 p > a:hover, .td-box--0 span > a:hover { - color: #d1e3fe; } - -.td-box--1 { - color: #fff; - background-color: #30638e; } - .td-box--1 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #30638e transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--1 p > a, .td-box--1 span > a { - color: #a5c9fe; } - .td-box--1 p > a:hover, .td-box--1 span > a:hover { - color: #c0d9fe; } - -.td-box--2 { - color: #000; - background-color: #ffa630; } - .td-box--2 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ffa630 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--2 p > a, .td-box--2 span > a { - color: #084196; } - .td-box--2 p > a:hover, .td-box--2 span > a:hover { - color: #062e69; } - -.td-box--3 { - color: #000; - background-color: #c0e0de; } - .td-box--3 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #c0e0de transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--3 p > a, .td-box--3 span > a { - color: #0b5ace; } - .td-box--3 p > a:hover, .td-box--3 span > a:hover { - color: #083f90; } - -.td-box--4 { - color: #000; - background-color: #fff; } - .td-box--4 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #fff transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--4 p > a, .td-box--4 span > a { - color: #0d6efd; } - .td-box--4 p > a:hover, .td-box--4 span > a:hover { - color: #094db1; } - -.td-box--5 { - color: #fff; - background-color: #6c757d; } - .td-box--5 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #6c757d transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--5 p > a, .td-box--5 span > a { - color: #90bdfe; } - .td-box--5 p > a:hover, .td-box--5 span > a:hover { - color: #b1d1fe; } - -.td-box--6 { - color: #000; - background-color: #3772ff; } - .td-box--6 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #3772ff transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--6 p > a, .td-box--6 span > a { - color: #08439a; } - .td-box--6 p > a:hover, .td-box--6 span > a:hover { - color: #062f6c; } - -.td-box--7 { - color: #000; - background-color: #ed6a5a; } - .td-box--7 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ed6a5a transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--7 p > a, .td-box--7 span > a { - color: #0847a2; } - .td-box--7 p > a:hover, .td-box--7 span > a:hover { - color: #063271; } - -.td-box--8 { - color: #fff; - background-color: #403f4c; } - .td-box--8 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #403f4c transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--8 p > a, .td-box--8 span > a { - color: #bdd7fe; } - .td-box--8 p > a:hover, .td-box--8 span > a:hover { - color: #d1e3fe; } - -.td-box--9 { - color: #000; - background-color: #ed6a5a; } - .td-box--9 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ed6a5a transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--9 p > a, .td-box--9 span > a { - color: #0847a2; } - .td-box--9 p > a:hover, .td-box--9 span > a:hover { - color: #063271; } - -.td-box--10 { - color: #fff; - background-color: #30638e; } - .td-box--10 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #30638e transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--10 p > a, .td-box--10 span > a { - color: #a5c9fe; } - .td-box--10 p > a:hover, .td-box--10 span > a:hover { - color: #c0d9fe; } - -.td-box--11 { - color: #000; - background-color: #ffa630; } - .td-box--11 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ffa630 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--11 p > a, .td-box--11 span > a { - color: #084196; } - .td-box--11 p > a:hover, .td-box--11 span > a:hover { - color: #062e69; } - -.td-box--12 { - color: #000; - background-color: #c0e0de; } - .td-box--12 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #c0e0de transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--12 p > a, .td-box--12 span > a { - color: #0b5ace; } - .td-box--12 p > a:hover, .td-box--12 span > a:hover { - color: #083f90; } - -.td-box--blue { - color: #fff; - background-color: #0d6efd; } - .td-box--blue .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #0d6efd transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--blue p > a, .td-box--blue span > a { - color: #81b3fe; } - .td-box--blue p > a:hover, .td-box--blue span > a:hover { - color: #a7cafe; } - -.td-box--indigo { - color: #fff; - background-color: #6610f2; } - .td-box--indigo .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #6610f2 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--indigo p > a, .td-box--indigo span > a { - color: #85b6fe; } - .td-box--indigo p > a:hover, .td-box--indigo span > a:hover { - color: #aaccfe; } - -.td-box--purple { - color: #fff; - background-color: #6f42c1; } - .td-box--purple .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #6f42c1 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--purple p > a, .td-box--purple span > a { - color: #84b5fe; } - .td-box--purple p > a:hover, .td-box--purple span > a:hover { - color: #a9cbfe; } - -.td-box--pink { - color: #fff; - background-color: #d63384; } - .td-box--pink .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #d63384 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--pink p > a, .td-box--pink span > a { - color: #81b4fe; } - .td-box--pink p > a:hover, .td-box--pink span > a:hover { - color: #a7cbfe; } - -.td-box--red { - color: #fff; - background-color: #dc3545; } - .td-box--red .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #dc3545 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--red p > a, .td-box--red span > a { - color: #7db1fe; } - .td-box--red p > a:hover, .td-box--red span > a:hover { - color: #a4c8fe; } - -.td-box--orange { - color: #000; - background-color: #fd7e14; } - .td-box--orange .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #fd7e14 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--orange p > a, .td-box--orange span > a { - color: #073b87; } - .td-box--orange p > a:hover, .td-box--orange span > a:hover { - color: #05295f; } - -.td-box--yellow { - color: #000; - background-color: #ffc107; } - .td-box--yellow .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ffc107 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--yellow p > a, .td-box--yellow span > a { - color: #073982; } - .td-box--yellow p > a:hover, .td-box--yellow span > a:hover { - color: #05285b; } - -.td-box--green { - color: #fff; - background-color: #198754; } - .td-box--green .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #198754 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--green p > a, .td-box--green span > a { - color: #b3d2fe; } - .td-box--green p > a:hover, .td-box--green span > a:hover { - color: #cae0fe; } - -.td-box--teal { - color: #000; - background-color: #20c997; } - .td-box--teal .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #20c997 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--teal p > a, .td-box--teal span > a { - color: #063274; } - .td-box--teal p > a:hover, .td-box--teal span > a:hover { - color: #042351; } - -.td-box--cyan { - color: #000; - background-color: #0dcaf0; } - .td-box--cyan .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #0dcaf0 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--cyan p > a, .td-box--cyan span > a { - color: #06377e; } - .td-box--cyan p > a:hover, .td-box--cyan span > a:hover { - color: #042758; } - -.td-box--black { - color: #fff; - background-color: #000; } - .td-box--black .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #000 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--black p > a, .td-box--black span > a { - color: white; } - .td-box--black p > a:hover, .td-box--black span > a:hover { - color: white; } - -.td-box--white { - color: #000; - background-color: #fff; } - .td-box--white .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #fff transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--white p > a, .td-box--white span > a { - color: #0d6efd; } - .td-box--white p > a:hover, .td-box--white span > a:hover { - color: #094db1; } - -.td-box--gray { - color: #fff; - background-color: #6c757d; } - .td-box--gray .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #6c757d transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--gray p > a, .td-box--gray span > a { - color: #90bdfe; } - .td-box--gray p > a:hover, .td-box--gray span > a:hover { - color: #b1d1fe; } - -.td-box--gray-dark { - color: #fff; - background-color: #343a40; } - .td-box--gray-dark .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #343a40 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--gray-dark p > a, .td-box--gray-dark span > a { - color: #c8deff; } - .td-box--gray-dark p > a:hover, .td-box--gray-dark span > a:hover { - color: #d9e8ff; } - -.td-box--primary { - color: #fff; - background-color: #30638e; } - .td-box--primary .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #30638e transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--primary p > a, .td-box--primary span > a { - color: #a5c9fe; } - .td-box--primary p > a:hover, .td-box--primary span > a:hover { - color: #c0d9fe; } - -.td-box--secondary { - color: #000; - background-color: #ffa630; } - .td-box--secondary .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ffa630 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--secondary p > a, .td-box--secondary span > a { - color: #084196; } - .td-box--secondary p > a:hover, .td-box--secondary span > a:hover { - color: #062e69; } - -.td-box--success { - color: #000; - background-color: #3772ff; } - .td-box--success .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #3772ff transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--success p > a, .td-box--success span > a { - color: #08439a; } - .td-box--success p > a:hover, .td-box--success span > a:hover { - color: #062f6c; } - -.td-box--info { - color: #000; - background-color: #c0e0de; } - .td-box--info .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #c0e0de transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--info p > a, .td-box--info span > a { - color: #0b5ace; } - .td-box--info p > a:hover, .td-box--info span > a:hover { - color: #083f90; } - -.td-box--warning { - color: #000; - background-color: #ed6a5a; } - .td-box--warning .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ed6a5a transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--warning p > a, .td-box--warning span > a { - color: #0847a2; } - .td-box--warning p > a:hover, .td-box--warning span > a:hover { - color: #063271; } - -.td-box--danger { - color: #000; - background-color: #ed6a5a; } - .td-box--danger .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ed6a5a transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--danger p > a, .td-box--danger span > a { - color: #0847a2; } - .td-box--danger p > a:hover, .td-box--danger span > a:hover { - color: #063271; } - -.td-box--light { - color: #000; - background-color: #d3f3ee; } - .td-box--light .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #d3f3ee transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--light p > a, .td-box--light span > a { - color: #0c62e1; } - .td-box--light p > a:hover, .td-box--light span > a:hover { - color: #08459e; } - -.td-box--dark, .td-footer { - color: #fff; - background-color: #403f4c; } - .td-box--dark .td-arrow-down::before, .td-footer .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #403f4c transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--dark p > a, .td-footer p > a, .td-box--dark span > a, .td-footer span > a { - color: #bdd7fe; } - .td-box--dark p > a:hover, .td-footer p > a:hover, .td-box--dark span > a:hover, .td-footer span > a:hover { - color: #d1e3fe; } - -.td-box--100 { - color: #000; - background-color: #f8f9fa; } - .td-box--100 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #f8f9fa transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--100 p > a, .td-box--100 span > a { - color: #0d6bf7; } - .td-box--100 p > a:hover, .td-box--100 span > a:hover { - color: #094bad; } - -.td-box--200 { - color: #000; - background-color: #e9ecef; } - .td-box--200 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #e9ecef transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--200 p > a, .td-box--200 span > a { - color: #0c66ea; } - .td-box--200 p > a:hover, .td-box--200 span > a:hover { - color: #0847a4; } - -.td-box--300 { - color: #000; - background-color: #dee2e6; } - .td-box--300 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #dee2e6 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--300 p > a, .td-box--300 span > a { - color: #0c61e0; } - .td-box--300 p > a:hover, .td-box--300 span > a:hover { - color: #08449d; } - -.td-box--400 { - color: #000; - background-color: #ced4da; } - .td-box--400 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #ced4da transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--400 p > a, .td-box--400 span > a { - color: #0b5bd2; } - .td-box--400 p > a:hover, .td-box--400 span > a:hover { - color: #084093; } - -.td-box--500 { - color: #000; - background-color: #adb5bd; } - .td-box--500 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #adb5bd transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--500 p > a, .td-box--500 span > a { - color: #094eb4; } - .td-box--500 p > a:hover, .td-box--500 span > a:hover { - color: #06377e; } - -.td-box--600 { - color: #fff; - background-color: #6c757d; } - .td-box--600 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #6c757d transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--600 p > a, .td-box--600 span > a { - color: #90bdfe; } - .td-box--600 p > a:hover, .td-box--600 span > a:hover { - color: #b1d1fe; } - -.td-box--700 { - color: #fff; - background-color: #495057; } - .td-box--700 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #495057 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--700 p > a, .td-box--700 span > a { - color: #b3d2fe; } - .td-box--700 p > a:hover, .td-box--700 span > a:hover { - color: #cae0fe; } - -.td-box--800 { - color: #fff; - background-color: #343a40; } - .td-box--800 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #343a40 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--800 p > a, .td-box--800 span > a { - color: #c8deff; } - .td-box--800 p > a:hover, .td-box--800 span > a:hover { - color: #d9e8ff; } - -.td-box--900 { - color: #fff; - background-color: #212529; } - .td-box--900 .td-arrow-down::before { - left: 50%; - margin-left: -30px; - bottom: -25px; - border-style: solid; - border-width: 25px 30px 0 30px; - border-color: #212529 transparent transparent transparent; - z-index: 3; - position: absolute; - content: ""; } - -.td-box--900 p > a, .td-box--900 span > a { - color: #dceaff; } - .td-box--900 p > a:hover, .td-box--900 span > a:hover { - color: #e7f0ff; } - -[data-bs-theme="dark"] .td-box--white { - color: var(--bs-body-color); - background-color: var(--bs-body-bg); } - [data-bs-theme="dark"] .td-box--white p > a, [data-bs-theme="dark"] .td-box--white span > a { - color: var(--bs-link-color); } - [data-bs-theme="dark"] .td-box--white p > a:focus, [data-bs-theme="dark"] .td-box--white p > a:hover, [data-bs-theme="dark"] .td-box--white span > a:focus, [data-bs-theme="dark"] .td-box--white span > a:hover { - color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); } - [data-bs-theme="dark"] .td-box--white .td-arrow-down::before { - border-color: var(--bs-body-bg) transparent transparent transparent; } - -.td-blog .td-rss-button { - border-radius: 2rem; - float: right; - display: none; } - -.td-blog-posts-list { - margin-top: 1.5rem !important; } - .td-blog-posts-list__item { - display: flex; - align-items: flex-start; - margin-bottom: 1.5rem !important; } - .td-blog-posts-list__item__body { - flex: 1; } - -[data-bs-theme="dark"] { - --td-pre-bg: #1b1f22; } - -.td-content .highlight { - margin: 2rem 0; - padding: 0; - position: relative; } - .td-content .highlight .click-to-copy { - display: block; - text-align: right; } - .td-content .highlight pre { - margin: 0; - padding: 1rem; - border-radius: inherit; } - .td-content .highlight pre button.td-click-to-copy { - position: absolute; - color: var(--bs-tertiary-color); - border-width: 0; - background-color: transparent; - background-image: none; - --bs-btn-box-shadow: 0; - padding: var(--bs-btn-padding-y) calc(var(--bs-btn-padding-x) / 2); - right: 4px; - top: 2px; } - .td-content .highlight pre button.td-click-to-copy:hover { - color: var(--bs-secondary-color); - background-color: var(--bs-dark-bg-subtle); } - .td-content .highlight pre button.td-click-to-copy:active { - color: var(--bs-secondary-color); - background-color: var(--bs-dark-bg-subtle); - transform: translateY(2px); } - -.td-content p code, -.td-content li > code, -.td-content table code { - color: inherit; - padding: 0.2em 0.4em; - margin: 0; - font-size: 85%; - word-break: normal; - background-color: var(--td-pre-bg); - border-radius: 0.375rem; } - .td-content p code br, - .td-content li > code br, - .td-content table code br { - display: none; } - -.td-content pre { - word-wrap: normal; - background-color: var(--td-pre-bg); - border: solid var(--bs-border-color); - border-width: 1px; - padding: 1rem; } - .td-content pre > code { - background-color: inherit !important; - padding: 0; - margin: 0; - font-size: 100%; - word-break: normal; - white-space: pre; - border: 0; } - -.td-content pre.mermaid { - background-color: inherit; - font-size: 0; - padding: 0; } - -@media (min-width: 768px) { - .td-navbar-cover { - background: transparent !important; } - .td-navbar-cover .nav-link { - text-shadow: 1px 1px 2px #403f4c; } } - -.td-navbar-cover.navbar-bg-onscroll .nav-link { - text-shadow: none; } - -.navbar-bg-onscroll { - background: #30638e !important; - opacity: inherit; } - -.td-navbar { - background: #30638e; - min-height: 4rem; - margin: 0; - z-index: 32; } - .td-navbar .navbar-brand { - text-transform: none; } - .td-navbar .navbar-brand__name { - font-weight: 700; } - .td-navbar .navbar-brand svg { - display: inline-block; - margin: 0 10px; - height: 30px; } - .td-navbar .navbar-nav { - padding-top: 0.5rem; - white-space: nowrap; } - .td-navbar .nav-link { - text-transform: none; - font-weight: 700; } - .td-navbar .dropdown { - min-width: 50px; } - @media (min-width: 768px) { - .td-navbar { - position: fixed; - top: 0; - width: 100%; } - .td-navbar .nav-item { - padding-inline-end: 0.5rem; } - .td-navbar .navbar-nav { - padding-top: 0 !important; } } - @media (max-width: 991.98px) { - .td-navbar .td-navbar-nav-scroll { - max-width: 100%; - height: 2.5rem; - overflow: hidden; - font-size: 0.9rem; } - .td-navbar .navbar-brand { - margin-right: 0; } - .td-navbar .navbar-nav { - padding-bottom: 2rem; - overflow-x: auto; } } - .td-navbar .td-light-dark-menu .bi { - width: 1em; - height: 1em; - vertical-align: -.125em; - fill: currentcolor; } - @media (max-width: 991.98px) { - .td-navbar .td-light-dark-menu.dropdown { - position: unset; } } -#main_navbar li i { - padding-right: 0.5em; } - #main_navbar li i:before { - display: inline-block; - text-align: center; - min-width: 1em; } - -#main_navbar .alert { - background-color: inherit; - padding: 0; - color: #ffa630; - border: 0; - font-weight: inherit; } - #main_navbar .alert:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - font-weight: 900; - content: "\f0d9"; - padding-left: 0.5em; - padding-right: 0.5em; } - -nav.foldable-nav#td-section-nav { - position: relative; } - -nav.foldable-nav#td-section-nav label { - margin-bottom: 0; - width: 100%; } - -nav.foldable-nav .td-sidebar-nav__section, -nav.foldable-nav .with-child ul { - list-style: none; - padding: 0; - margin: 0; } - -nav.foldable-nav .ul-1 > li { - padding-left: 1.5em; } - -nav.foldable-nav ul.foldable { - display: none; } - -nav.foldable-nav input:checked ~ ul.foldable { - display: block; } - -nav.foldable-nav input[type="checkbox"] { - display: none; } - -nav.foldable-nav .with-child, -nav.foldable-nav .without-child { - position: relative; - padding-left: 1.5em; } - -nav.foldable-nav .ul-1 .with-child > label:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - font-weight: 900; - content: "\f0da"; - position: absolute; - left: 0.1em; - padding-left: 0.4em; - padding-right: 0.4em; - font-size: 1em; - color: var(--bs-secondary-color); - transition: all 0.5s; } - nav.foldable-nav .ul-1 .with-child > label:before:hover { - transform: rotate(90deg); } - -nav.foldable-nav .ul-1 .with-child > input:checked ~ label:before { - color: var(--bs-secondary-color); - transform: rotate(90deg); - transition: transform 0.5s; } - -nav.foldable-nav .with-child ul { - margin-top: 0.1em; } - -@media (hover: hover) and (pointer: fine) { - nav.foldable-nav .ul-1 .with-child > label:hover:before { - color: var(--bs-link-color); - transition: color 0.3s; } - nav.foldable-nav .ul-1 .with-child > input:checked ~ label:hover:before { - color: var(--bs-link-color); - transition: color 0.3s; } } - -.td-sidebar-nav { - padding-right: 0.5rem; - margin-right: -15px; - margin-left: -15px; } - @media (min-width: 768px) { - @supports (position: sticky) { - .td-sidebar-nav { - max-height: calc(100vh - 8.5rem); - overflow-y: auto; } } } - @media (min-width: 992px) { - .td-sidebar-nav.td-sidebar-nav--search-disabled { - padding-top: 1rem; } - @supports (position: sticky) { - .td-sidebar-nav.td-sidebar-nav--search-disabled { - max-height: calc(calc(100vh - 8.5rem) + 4.5rem); } } } - @media (min-width: 768px) { - .td-sidebar-nav { - display: block !important; } } - .td-sidebar-nav__section { - padding-left: 0; } - .td-sidebar-nav__section li { - list-style: none; } - .td-sidebar-nav__section.ul-0, .td-sidebar-nav__section ul { - padding: 0; - margin: 0; } - @media (min-width: 768px) { - .td-sidebar-nav__section .ul-1 ul { - padding-left: 1.5em; } } - .td-sidebar-nav__section-title { - display: block; - font-weight: 500; } - .td-sidebar-nav__section-title .active { - font-weight: 700; } - .td-sidebar-nav__section-title a { - color: var(--bs-secondary-color); } - .td-sidebar-nav .td-sidebar-link { - display: block; - padding-bottom: 0.375rem; } - .td-sidebar-nav .td-sidebar-link__page { - color: var(--bs-body-color); - font-weight: 300; } - .td-sidebar-nav a:focus, .td-sidebar-nav a:hover { - color: var(--bs-link-color); } - .td-sidebar-nav a.active { - font-weight: 700; } - .td-sidebar-nav .dropdown a { - color: var(--bs-tertiary-color); } - .td-sidebar-nav .dropdown .nav-link { - padding: 0 0 1rem; } - .td-sidebar-nav > .td-sidebar-nav__section { - padding-left: 1.5rem; } - .td-sidebar-nav li i { - padding-right: 0.5em; } - .td-sidebar-nav li i:before { - display: inline-block; - text-align: center; - min-width: 1em; } - .td-sidebar-nav .td-sidebar-link.tree-root { - font-weight: 700; - border-bottom: 1px solid var(--bs-tertiary-color); - margin-bottom: 1rem; } - -.td-sidebar { - padding-bottom: 1rem; } - .td-sidebar a { - text-decoration: none; } - .td-sidebar a:focus, .td-sidebar a:hover { - text-decoration: initial; } - .td-sidebar .btn-link { - text-decoration: none; } - @media (min-width: 768px) { - .td-sidebar { - padding-top: 4rem; - background-color: var(--bs-body-tertiary-bg); - padding-right: 1rem; - border-right: 1px solid var(--bs-border-color); } } - .td-sidebar__toggle { - line-height: 1; - color: var(--bs-body-color); - margin: 1rem; } - .td-sidebar__search { - padding: 1rem 0; } - .td-sidebar__inner { - order: 0; } - @media (min-width: 768px) { - @supports (position: sticky) { - .td-sidebar__inner { - position: sticky; - top: 4rem; - z-index: 10; - height: calc(100vh - 5rem); } } } - @media (min-width: 1200px) { - .td-sidebar__inner { - flex: 0 1 320px; } } - .td-sidebar__inner .td-search-box { - width: 100%; } - .td-sidebar #content-desktop { - display: block; } - .td-sidebar #content-mobile { - display: none; } - @media (max-width: 991.98px) { - .td-sidebar #content-desktop { - display: none; } - .td-sidebar #content-mobile { - display: block; } } -.td-sidebar-toc { - border-left: 1px solid var(--bs-border-color); - order: 2; - padding-top: 0.75rem; - padding-bottom: 1.5rem; - vertical-align: top; } - .td-sidebar-toc a { - text-decoration: none; } - .td-sidebar-toc a:focus, .td-sidebar-toc a:hover { - text-decoration: initial; } - .td-sidebar-toc .btn-link { - text-decoration: none; } - @supports (position: sticky) { - .td-sidebar-toc { - position: sticky; - top: 4rem; - height: calc(100vh - 4rem); - overflow-y: auto; } } - .td-sidebar-toc .td-page-meta a { - display: block; - font-weight: 500; } - -.td-toc a { - display: block; - font-weight: 300; - padding-bottom: 0.25rem; } - -.td-toc li { - list-style: none; - display: block; } - -.td-toc li li { - margin-left: 0.5rem; } - -.td-toc #TableOfContents a { - color: var(--bs-secondary-color); } - .td-toc #TableOfContents a:focus, .td-toc #TableOfContents a:hover { - color: initial; } - -.td-toc ul { - padding-left: 0; } - -@media print { - .td-breadcrumbs { - display: none !important; } } - -.td-breadcrumbs .breadcrumb { - background: inherit; - padding-left: 0; - padding-top: 0; } - -.alert { - font-weight: 500; - color: inherit; - border-radius: 0; } - .alert-primary, .pageinfo-primary { - border-style: solid; - border-color: #30638e; - border-width: 0 0 0 4px; } - .alert-primary .alert-heading, .pageinfo-primary .alert-heading { - color: #30638e; } - .alert-secondary, .pageinfo-secondary { - border-style: solid; - border-color: #ffa630; - border-width: 0 0 0 4px; } - .alert-secondary .alert-heading, .pageinfo-secondary .alert-heading { - color: #ffa630; } - .alert-success, .pageinfo-success { - border-style: solid; - border-color: #3772ff; - border-width: 0 0 0 4px; } - .alert-success .alert-heading, .pageinfo-success .alert-heading { - color: #3772ff; } - .alert-info, .pageinfo-info { - border-style: solid; - border-color: #c0e0de; - border-width: 0 0 0 4px; } - .alert-info .alert-heading, .pageinfo-info .alert-heading { - color: #c0e0de; } - .alert-warning, .pageinfo-warning { - border-style: solid; - border-color: #ed6a5a; - border-width: 0 0 0 4px; } - .alert-warning .alert-heading, .pageinfo-warning .alert-heading { - color: #ed6a5a; } - .alert-danger, .pageinfo-danger { - border-style: solid; - border-color: #ed6a5a; - border-width: 0 0 0 4px; } - .alert-danger .alert-heading, .pageinfo-danger .alert-heading { - color: #ed6a5a; } - .alert-light, .pageinfo-light { - border-style: solid; - border-color: #d3f3ee; - border-width: 0 0 0 4px; } - .alert-light .alert-heading, .pageinfo-light .alert-heading { - color: #d3f3ee; } - .alert-dark, .pageinfo-dark { - border-style: solid; - border-color: #403f4c; - border-width: 0 0 0 4px; } - .alert-dark .alert-heading, .pageinfo-dark .alert-heading { - color: #403f4c; } - -.td-content { - order: 1; } - .td-content p, - .td-content li, - .td-content td { - font-weight: 400; } - .td-content > h1, .td-content > .h1 { - font-weight: 700; - margin-bottom: 1rem; } - .td-content > h2, .td-content > .h2 { - margin-bottom: 1rem; } - .td-content > h2:not(:first-child), .td-content > .h2:not(:first-child) { - margin-top: 3rem; } - .td-content > h2 + h3, .td-content > .h2 + h3, .td-content > h2 + .h3, .td-content > h2 + .td-footer__links-item, .td-content > .h2 + .h3, .td-content > .h2 + .td-footer__links-item { - margin-top: 1rem; } - .td-content > h3, .td-content > .h3, .td-content > .td-footer__links-item, - .td-content > h4, - .td-content > .h4, - .td-content > h5, - .td-content > .h5, - .td-content > h6, - .td-content > .h6 { - margin-bottom: 1rem; - margin-top: 2rem; } - .td-content blockquote { - padding: 0 0 0 1rem; - margin-bottom: 1rem; - color: var(--bs-secondary-color); - border-left: 6px solid var(--bs-primary); } - .td-content ul li, - .td-content ol li { - margin-bottom: 0.25rem; } - .td-content strong { - font-weight: 700; } - .td-content .alert:not(:first-child) { - margin-top: 2rem; - margin-bottom: 2rem; } - .td-content .lead { - margin-bottom: 1.5rem; } - -.td-title { - margin-top: 1rem; - margin-bottom: 0.5rem; } - @media (min-width: 576px) { - .td-title { - font-size: 3rem; } } -.td-heading-self-link { - font-size: 90%; - padding-left: 0.25em; - text-decoration: none; - visibility: hidden; } - .td-heading-self-link:before { - content: '#'; } - @media (hover: none) and (pointer: coarse), (max-width: 576px) { - .td-heading-self-link { - visibility: visible; } } -h1:hover > .td-heading-self-link, .h1:hover > .td-heading-self-link { - visibility: visible; } - -h2:hover > .td-heading-self-link, .h2:hover > .td-heading-self-link { - visibility: visible; } - -h3:hover > .td-heading-self-link, .h3:hover > .td-heading-self-link, .td-footer__links-item:hover > .td-heading-self-link { - visibility: visible; } - -h4:hover > .td-heading-self-link, .h4:hover > .td-heading-self-link { - visibility: visible; } - -h5:hover > .td-heading-self-link, .h5:hover > .td-heading-self-link { - visibility: visible; } - -h6:hover > .td-heading-self-link, .h6:hover > .td-heading-self-link { - visibility: visible; } - -.td-search { - background: transparent; - position: relative; - width: 100%; } - .td-search__icon { - display: flex; - align-items: center; - height: 100%; - position: absolute; - left: 0.75em; - pointer-events: none; } - .td-search__icon:before { - content: "\f002"; } - .td-navbar .td-search__icon { - color: inherit; } - .td-search__input { - width: 100%; - text-indent: 1.25em; } - .td-search__input:not(:focus) { - background: transparent; } - .td-search__input.form-control:focus { - border-color: #f5f7f9; - box-shadow: 0 0 0 2px #83a1bb; - color: var(--bs-body-color); } - .td-navbar .td-search__input { - border: none; - color: inherit; } - .td-navbar .td-search__input::-webkit-input-placeholder { - color: inherit; } - .td-navbar .td-search__input:-moz-placeholder { - color: inherit; } - .td-navbar .td-search__input::-moz-placeholder { - color: inherit; } - .td-navbar .td-search__input:-ms-input-placeholder { - color: inherit; } - .td-search:focus-within .td-search__icon { - display: none; } - .td-search:focus-within .td-search-input { - text-indent: 0px; } - .td-search:not(:focus-within) { - color: var(--bs-secondary-color); } - -.td-sidebar .td-search--algolia { - display: block; - padding: 0 0.5rem; } - .td-sidebar .td-search--algolia > button { - margin: 0; - width: 100%; } - -.td-search--offline:focus-within .td-search__icon { - display: flex; - color: var(--bs-secondary-color); } - -.td-offline-search-results { - max-width: 90%; } - .td-offline-search-results .card { - margin-bottom: 0.5rem; } - .td-offline-search-results .card .card-header { - font-weight: bold; } - .td-offline-search-results__close-button { - float: right; } - .td-offline-search-results__close-button:after { - content: "\f00d"; } - -.td-outer { - display: flex; - flex-direction: column; - min-height: 100vh; } - -@media (min-width: 768px) { - .td-default main > section:first-of-type { - padding-top: 8rem; } } - -.td-main { - flex-grow: 1; } - -.td-404 main, -.td-main main { - padding-top: 1.5rem; - padding-bottom: 2rem; } - @media (min-width: 768px) { - .td-404 main, - .td-main main { - padding-top: 5.5rem; } } -.td-cover-block--height-min { - min-height: 300px; } - -.td-cover-block--height-med { - min-height: 400px; } - -.td-cover-block--height-max { - min-height: 500px; } - -.td-cover-block--height-full { - min-height: 100vh; } - -@media (min-width: 768px) { - .td-cover-block--height-min { - min-height: 450px; } - .td-cover-block--height-med { - min-height: 500px; } - .td-cover-block--height-max { - min-height: 650px; } } - -.td-cover-logo { - margin-right: 0.5em; } - -.td-cover-block { - position: relative; - padding-top: 5rem; - padding-bottom: 5rem; - background-repeat: no-repeat; - background-position: 50% 0; - background-size: cover; } - .td-cover-block > .byline { - position: absolute; - bottom: 2px; - right: 4px; } - -.td-bg-arrow-wrapper { - position: relative; } - -.section-index .entry { - padding: 0.75rem; } - -.section-index h5, .section-index .h5 { - margin-bottom: 0; } - .section-index h5 a, .section-index .h5 a { - font-weight: 700; } - -.section-index p { - margin-top: 0; } - -.pageinfo { - font-weight: 500; - background: var(--bs-alert-bg); - color: inherit; - margin: 2rem auto; - padding: 1.5rem; - padding-bottom: 0.5rem; } - .pageinfo-primary { - border-width: 0; } - .pageinfo-secondary { - border-width: 0; } - .pageinfo-success { - border-width: 0; } - .pageinfo-info { - border-width: 0; } - .pageinfo-warning { - border-width: 0; } - .pageinfo-danger { - border-width: 0; } - .pageinfo-light { - border-width: 0; } - .pageinfo-dark { - border-width: 0; } - -.td-page-meta__lastmod { - margin-top: 3rem !important; - padding-top: 1rem !important; } - -.taxonomy-terms-article { - width: 100%; - clear: both; - font-size: 0.8rem; } - .taxonomy-terms-article .taxonomy-title { - display: inline; - font-size: 1.25em; - height: 1em; - line-height: 1em; - margin-right: 0.5em; - padding: 0; } - -.taxonomy-terms-cloud { - width: 100%; - clear: both; - font-size: 0.8rem; } - .taxonomy-terms-cloud .taxonomy-title { - display: inline-block; - width: 100%; - font-size: 1rem; - font-weight: 700; - color: var(--bs-primary-text-emphasis); - border-bottom: 1px solid var(--bs-tertiary-color); - margin-bottom: 1em; - padding-bottom: 0.375rem; - margin-top: 1em; } - -.taxonomy-terms-page { - max-width: 800px; - margin: auto; } - .taxonomy-terms-page h1, .taxonomy-terms-page .h1 { - margin-bottom: 1em; } - .taxonomy-terms-page .taxonomy-terms-cloud { - font-size: 1em; } - .taxonomy-terms-page .taxonomy-terms-cloud li { - display: block; } - .taxonomy-terms-page .taxo-text-tags li + li::before { - content: none; } - .taxonomy-terms-page .taxo-fruits .taxonomy-count, - .taxonomy-terms-page .taxo-fruits .taxonomy-label { - display: inherit; - font-size: 1rem; - margin: 0; - padding: 0; - padding-right: 0.5em; } - .taxonomy-terms-page .taxo-fruits .taxonomy-count::before { - content: "("; } - .taxonomy-terms-page .taxo-fruits .taxonomy-count::after { - content: ")"; } - -.taxonomy-terms { - list-style: none; - margin: 0; - overflow: hidden; - padding: 0; - display: inline; } - .taxonomy-terms li { - display: inline; - overflow-wrap: break-word; - word-wrap: break-word; - -ms-word-break: break-all; - word-break: break-all; - word-break: break-word; - -ms-hyphens: auto; - -moz-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; } - -.taxonomy-count { - font-size: 0.8em; - line-height: 1.25em; - display: inline-block; - padding-left: 0.6em; - padding-right: 0.6em; - margin-left: 0.6em; - text-align: center; - border-radius: 1em; - background-color: var(--bs-body-bg); } - -.taxonomy-term { - background: var(--bs-secondary-bg); - border-width: 0; - border-radius: 0 3px 3px 0; - color: var(--bs-body-color); - display: inline-block; - font-size: 1em; - line-height: 1.5em; - min-height: 1.5em; - max-width: 100%; - padding: 0 0.5em 0 1em; - position: relative; - margin: 0 0.5em 0.2em 0; - text-decoration: none; - -webkit-transition: color 0.2s; - -webkit-clip-path: polygon(100% 0, 100% 100%, 0.8em 100%, 0 50%, 0.8em 0); - clip-path: polygon(100% 0, 100% 100%, 0.8em 100%, 0 50%, 0.8em 0); } - .taxonomy-term:hover { - background-color: var(--bs-primary-bg-subtle); - color: var(--bs-body-color-dark); } - .taxonomy-term:hover .taxonomy-count { - color: var(--bs-body-color-dark); } - .taxonomy-term:hover::before { - background: #30638e; } - -.taxo-text-tags .taxonomy-term { - background: none; - border-width: 0; - border-radius: 0; - color: #6c757d; - font-size: 1em; - line-height: 1.5em; - min-height: 1.5em; - max-width: 100%; - padding: 0; - position: relative; - margin: 0; - text-decoration: none; - -webkit-clip-path: none; - clip-path: none; } - .taxo-text-tags .taxonomy-term:hover { - background: none; - color: #0d6efd; } - .taxo-text-tags .taxonomy-term:hover .taxonomy-count { - color: #403f4c !important; } - .taxo-text-tags .taxonomy-term:hover::before { - background: none; } - -.taxo-text-tags li + li::before { - content: "|"; - color: #6c757d; - margin-right: 0.2em; } - -.taxo-text-tags .taxonomy-count { - font-size: 1em; - line-height: 1.25em; - display: inline-block; - padding: 0; - margin: 0; - text-align: center; - border-radius: 0; - background: none; - vertical-align: super; - font-size: 0.75em; } - -.taxo-text-tags .taxonomy-term:hover .taxonomy-count { - color: #0d6efd !important; } - -.taxo-fruits .taxonomy-term[data-taxonomy-term]::before { - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - padding-right: 0.5em; - font-size: 2em; - min-width: 1.5em; - display: inline-block; } - -.taxo-fruits .taxonomy-term[data-taxonomy-term="apple"]::before { - content: "\f5d1"; - color: red; } - -.taxo-fruits .taxonomy-term[data-taxonomy-term="carrot"]::before { - content: "\f787"; - color: orange; } - -.taxo-fruits .taxonomy-term[data-taxonomy-term="lemon"]::before { - content: "\f094"; - color: limegreen; } - -.taxo-fruits .taxonomy-term[data-taxonomy-term="pepper"]::before { - content: "\f816"; - color: darkred; } - -.taxo-fruits .taxonomy-term { - background: none; - border-width: 0; - border-radius: 0; - color: #6c757d; - font-size: 1em; - line-height: 2.5em; - max-width: 100%; - padding: 0; - position: relative; - margin: 0; - text-decoration: none; - -webkit-clip-path: none; - clip-path: none; } - .taxo-fruits .taxonomy-term:hover { - background: none; - color: #0d6efd; } - .taxo-fruits .taxonomy-term:hover .taxonomy-count { - color: #403f4c !important; } - .taxo-fruits .taxonomy-term:hover::before { - background: none; - text-shadow: 0 0 3px #212529; } - -.taxo-fruits .taxonomy-count, -.taxo-fruits .taxonomy-label { - display: none; } - -.taxo-fruits.taxonomy-terms-article { - margin-bottom: 1rem; } - .taxo-fruits.taxonomy-terms-article .taxonomy-title { - display: none; } - -.taxonomy-taxonomy-page { - max-width: 800px; - margin: auto; } - .taxonomy-taxonomy-page h1, .taxonomy-taxonomy-page .h1 { - margin-bottom: 1em; } - -.article-meta { - margin-bottom: 1.5rem; } - -.article-teaser.article-type-docs h3 a:before, .article-teaser.article-type-docs .h3 a:before, .article-teaser.article-type-docs .td-footer__links-item a:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - content: "\f02d"; - padding-right: 0.5em; } - -.article-teaser.article-type-blog h3 a:before, .article-teaser.article-type-blog .h3 a:before, .article-teaser.article-type-blog .td-footer__links-item a:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - content: "\f781"; - padding-right: 0.5em; } - -.all-taxonomy-terms { - font-weight: 500; - line-height: 1.2; - font-size: 1.5rem; } - .all-taxonomy-terms:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 6 Free"; - content: "\f122"; - padding-right: 0.5em; } - -.article-teaser.card { - padding: 1em; - margin-bottom: 1.5em; } - -.article-teaser .breadcrumb { - margin-bottom: 0em; - font-size: 0.85rem; } - -.article-teaser .article-meta { - margin-bottom: 0em; } - -div.drawio { - display: inline-block; - position: relative; } - div.drawio button { - position: absolute; - bottom: 5px; - right: 5px; - padding: 0.4em 0.5em; - font-size: 0.8em; - display: none; } - div.drawio:hover button { - display: inline; } - -div.drawioframe { - position: fixed; - height: 100%; - width: 100%; - top: 0; - left: 0px; - z-index: 1000; - background: #000b; - border: 0; } - div.drawioframe iframe { - position: absolute; - height: 90%; - width: 90%; - top: 5%; - left: 5%; - z-index: 1010; } - -.tab-content .tab-pane { - margin-top: 0rem; - margin-bottom: 1.5rem; - border-left: var(--bs-border-width) solid var(--bs-border-color); - border-right: var(--bs-border-width) solid var(--bs-border-color); - border-bottom: var(--bs-border-width) solid var(--bs-border-color); } - .tab-content .tab-pane .highlight { - margin: 0; - border: none; - max-width: 100%; } - -.tab-body { - font-weight: 500; - background: var(--td-pre-bg); - color: var(--bs-body-color); - border-radius: 0; - padding: 1.5rem; } - .tab-body > :last-child { - margin-bottom: 0; } - .tab-body > .highlight:only-child { - margin: -1.5rem; - max-width: calc(100% + 3rem); } - .tab-body-primary { - border-style: solid; - border-color: #30638e; } - .tab-body-secondary { - border-style: solid; - border-color: #ffa630; } - .tab-body-success { - border-style: solid; - border-color: #3772ff; } - .tab-body-info { - border-style: solid; - border-color: #c0e0de; } - .tab-body-warning { - border-style: solid; - border-color: #ed6a5a; } - .tab-body-danger { - border-style: solid; - border-color: #ed6a5a; } - .tab-body-light { - border-style: solid; - border-color: #d3f3ee; } - .tab-body-dark { - border-style: solid; - border-color: #403f4c; } - -.td-card.card .highlight { - border: none; - margin: 0; } - -.td-card .card-header.code { - background-color: var(--bs-body-bg); } - -.td-card .card-body.code { - background-color: var(--bs-body-bg); - padding: 0 0 0 1ex; } - -.td-card .card-body pre { - margin: 0; - padding: 0 1rem 1rem 1rem; } - -.swagger-ui .info .title small pre, .swagger-ui .info .title .small pre, .swagger-ui .info .title .td-footer__center pre, .swagger-ui .info .title .td-cover-block > .byline pre { - background: #7d8492; } - -.td-footer { - min-height: 150px; - padding-top: 3rem; - /* &__left { } */ } - @media (max-width: 991.98px) { - .td-footer { - min-height: 200px; } } - .td-footer__center { - text-align: center; } - .td-footer__right { - text-align: right; } - .td-footer__about { - font-size: initial; } - .td-footer__links-list { - margin-bottom: 0; } - .td-footer__links-item a { - color: inherit !important; } - .td-footer__authors, .td-footer__all_rights_reserved { - padding-left: 0.25rem; } - .td-footer__all_rights_reserved { - display: none; } - -@media (min-width: 768px) { - .td-offset-anchor:target { - display: block; - position: relative; - top: -4rem; - visibility: hidden; } - h2[id]:before, [id].h2:before, - h3[id]:before, - [id].h3:before, - [id].td-footer__links-item:before, - h4[id]:before, - [id].h4:before, - h5[id]:before, - [id].h5:before { - display: block; - content: " "; - margin-top: -5rem; - height: 5rem; - visibility: hidden; } } - -/* - -Nothing defined here. The Hugo project that uses this theme can override Bootstrap by adding a file to: - -assets/scss/_styles_project.scss - -*/ - -/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/resources/_gen/assets/scss/main.scss_fae17086e470d8c6ed0d487092f631b7.json b/resources/_gen/assets/scss/main.scss_fae17086e470d8c6ed0d487092f631b7.json deleted file mode 100644 index a8ece4a..0000000 --- a/resources/_gen/assets/scss/main.scss_fae17086e470d8c6ed0d487092f631b7.json +++ /dev/null @@ -1 +0,0 @@ -{"Target":"/scss/main.css","MediaType":"text/css","Data":{}} \ No newline at end of file diff --git a/resources/_gen/images/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_bottom.jpg b/resources/_gen/images/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_bottom.jpg deleted file mode 100644 index 80e6e71..0000000 Binary files a/resources/_gen/images/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_bottom.jpg and /dev/null differ diff --git a/resources/_gen/images/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg b/resources/_gen/images/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg deleted file mode 100644 index a883d00..0000000 Binary files a/resources/_gen/images/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg and /dev/null differ diff --git a/resources/_gen/images/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_250x125_fill_catmullrom_smart1_3.png b/resources/_gen/images/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_250x125_fill_catmullrom_smart1_3.png deleted file mode 100644 index 30df1c3..0000000 Binary files a/resources/_gen/images/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_250x125_fill_catmullrom_smart1_3.png and /dev/null differ diff --git a/resources/_gen/images/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_600x300_fill_catmullrom_smart1_3.png b/resources/_gen/images/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_600x300_fill_catmullrom_smart1_3.png deleted file mode 100644 index e4e0620..0000000 Binary files a/resources/_gen/images/blog/2018/10/06/easy-documentation-with-docsy/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_600x300_fill_catmullrom_smart1_3.png and /dev/null differ diff --git a/resources/_gen/images/fa/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_bottom.jpg b/resources/_gen/images/fa/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_bottom.jpg deleted file mode 100644 index 80e6e71..0000000 Binary files a/resources/_gen/images/fa/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_bottom.jpg and /dev/null differ diff --git a/resources/_gen/images/fa/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg b/resources/_gen/images/fa/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg deleted file mode 100644 index a883d00..0000000 Binary files a/resources/_gen/images/fa/about/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_bottom.jpg and /dev/null differ diff --git a/resources/_gen/images/fa/blog/2018/10/06/مستدات-راحت-با-داکسی/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_250x125_fill_catmullrom_smart1_3.png b/resources/_gen/images/fa/blog/2018/10/06/مستدات-راحت-با-داکسی/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_250x125_fill_catmullrom_smart1_3.png deleted file mode 100644 index 30df1c3..0000000 Binary files a/resources/_gen/images/fa/blog/2018/10/06/مستدات-راحت-با-داکسی/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_250x125_fill_catmullrom_smart1_3.png and /dev/null differ diff --git a/resources/_gen/images/fa/blog/2018/10/06/مستدات-راحت-با-داکسی/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_600x300_fill_catmullrom_smart1_3.png b/resources/_gen/images/fa/blog/2018/10/06/مستدات-راحت-با-داکسی/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_600x300_fill_catmullrom_smart1_3.png deleted file mode 100644 index e4e0620..0000000 Binary files a/resources/_gen/images/fa/blog/2018/10/06/مستدات-راحت-با-داکسی/featured-sunset-get_hu69849a7cdb847c2393a7b3a7f6061c86_387442_600x300_fill_catmullrom_smart1_3.png and /dev/null differ diff --git a/resources/_gen/images/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_top.jpg b/resources/_gen/images/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_top.jpg deleted file mode 100644 index f2a6e45..0000000 Binary files a/resources/_gen/images/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_top.jpg and /dev/null differ diff --git a/resources/_gen/images/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_top.jpg b/resources/_gen/images/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_top.jpg deleted file mode 100644 index d7c8202..0000000 Binary files a/resources/_gen/images/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_top.jpg and /dev/null differ diff --git a/resources/_gen/images/no/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_top.jpg b/resources/_gen/images/no/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_top.jpg deleted file mode 100644 index f2a6e45..0000000 Binary files a/resources/_gen/images/no/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_1920x1080_fill_q75_catmullrom_top.jpg and /dev/null differ diff --git a/resources/_gen/images/no/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_top.jpg b/resources/_gen/images/no/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_top.jpg deleted file mode 100644 index d7c8202..0000000 Binary files a/resources/_gen/images/no/featured-background_hu376e1fbab6ce6c455a2b3aa5c258c0d9_496231_960x540_fill_q75_catmullrom_top.jpg and /dev/null differ diff --git a/resources/likec4/INTEGRATION.md b/resources/likec4/INTEGRATION.md new file mode 100644 index 0000000..09cad8b --- /dev/null +++ b/resources/likec4/INTEGRATION.md @@ -0,0 +1,109 @@ +# LikeC4 Architecture Documentation Integration + +This directory contains the LikeC4 architecture models and views that power the interactive architecture diagrams throughout this documentation. + +## What is LikeC4? + +LikeC4 is a tool for creating interactive C4 architecture diagrams as code. It generates web components that can be embedded directly into web pages, providing an interactive way to explore complex system architectures. + +## Directory Structure + +``` +resources/likec4/ +├── models/ # C4 model definitions (.c4 files) +│ ├── components/ # Component-level models +│ ├── containers/ # Container-level models +│ ├── context/ # System context models +│ └── code/ # Code-level workflow models +├── views/ # View definitions +│ ├── deployment/ # Deployment architecture views +│ ├── edp/ # EDP-specific views +│ ├── high-level-concept/ # Conceptual views +│ └── dynamic/ # Dynamic process views +├── deployment/ # Deployment-specific models +├── doc/ # Documentation and screenshots +├── package.json # Node.js dependencies +└── README.md # This file +``` + +## Generating Web Components + +To generate the web component that Hugo can use: + +```bash +cd resources/likec4 + +# Install dependencies (first time only) +npm install + +# Generate the web component +npx likec4 codegen webcomponent \ + --webcomponent-prefix likec4 \ + --outfile ../../static/js/likec4-webcomponent.js +``` + +This creates `static/js/likec4-webcomponent.js` which contains all your architecture views as an interactive web component. + +## Using in Hugo Content + +Add interactive diagrams to any Markdown page: + +```markdown +## Architecture Overview + +
+
+ System Architecture - High Level View +
+ +
+ Loading architecture diagram... +
+
+ +{{< alert title="Note" >}} +The diagram above is interactive. Click on components to explore details. +{{< /alert >}} +``` + +## Available Views + +To discover available view IDs: + +```bash +# Search for all view definitions in .c4 files +cd resources/likec4 +grep -r "view\s\+\w" views/ models/ --include="*.c4" +``` + +Common view IDs include: +- `otc-faas` - OTC FaaS Deployment Architecture +- `edp` - EDP Main Overview +- `landscape` - Developer Landscape +- `edpbuilderworkflow` - EDP Builder Workflow +- And many more... + +## Workflow for Changes + +1. **Edit Models**: Modify `.c4` files in `models/` or `views/` +2. **Regenerate**: Run the codegen command (see above) +3. **Test**: Start Hugo dev server and check your pages +4. **Commit**: Commit both the `.c4` changes and regenerated JS file + +## Integration with Hugo + +The integration is enabled via: +- `hugo.toml` - Configuration parameter `params.likec4.enable = true` +- `layouts/partials/hooks/head-end.html` - Loads CSS and JS +- `static/css/likec4-styles.css` - Styling for diagrams +- `static/js/likec4-loader.js` - Dynamic loading logic +- `static/js/likec4-webcomponent.js` - Generated web component (you create this) + +## Migrated from edp-doc + +This content was migrated from the edp-doc repository with full Git history preserved. This repository is now the primary source for LikeC4 architecture documentation. + +## More Information + +- [LikeC4 Documentation](https://likec4.dev/) +- [C4 Model](https://c4model.com/) diff --git a/resources/likec4/README.md b/resources/likec4/README.md new file mode 100644 index 0000000..cc88733 --- /dev/null +++ b/resources/likec4/README.md @@ -0,0 +1,29 @@ +# LikeC4 architecture documentation + +Run `npx likec4 start` to start dev server + +## with docker and how to render/export images + +// how to create/export c4 images: +// see also https://likec4.dev/tooling/cli/ + +docker run -it --rm --name likec4 --user node -v $PWD:/app node bash +npm install likec4 +exit + +docker commit likec4 likec4 +docker run -it --rm --user node -v $PWD:/app -p 5173:5173 likec4 bash + +// as root +npx playwright install-deps +npx playwright install + +npm install likec4 + +// render +node@e20899c8046f:/app/content/en/docs/project/onboarding$ ./node_modules/.bin/likec4 export png -o ./images . + +## trouble shooting + +when refactoring you might need to restart the languange server, just that it updates its internal model representation +In VSCode it is: `ctrl+Shift+P' + 'LikeC4: restart languange server` \ No newline at end of file diff --git a/resources/likec4/deployment/kind/edp.c4 b/resources/likec4/deployment/kind/edp.c4 new file mode 100644 index 0000000..e677b53 --- /dev/null +++ b/resources/likec4/deployment/kind/edp.c4 @@ -0,0 +1,86 @@ +// Deployment model +deployment { + + environment local 'Local kind-cluster' { + description 'Local kind-cluster environment for EDP, typically run by edpbuilder' + technology 'Kind' + icon tech:kubernetes + + namespace backstage { + instanceOf edp.ui.backstage + instanceOf edp.ui.database + } + + namespace argocd { + instanceOf edp.argoCD.argocdAppController + instanceOf edp.argoCD.argocdAppSetController + instanceOf edp.argoCD.argocdRedis + instanceOf edp.argoCD.argocdRepoServer + instanceOf edp.argoCD.argocdServer + } + + namespace gitea { + instanceOf edp.forgejo + instanceOf forgejoRunner + } + + namespace keycloak { + instanceOf edp.keycloak.keycloak + instanceOf edp.keycloak.keycloakDB + } + + namespace crossplane 'crossplane-system' { + instanceOf edp.crossplane.crossplane + instanceOf edp.crossplane.crossplaneFunction + instanceOf edp.crossplane.crossplaneRbacManager + instanceOf edp.crossplane.providerArgoCD + instanceOf edp.crossplane.providerKind + instanceOf edp.crossplane.providerShell + } + + namespace externalSecrets 'external-secrets' { + instanceOf edp.externalSecrets.certController + instanceOf edp.externalSecrets.externalSecrets + instanceOf edp.externalSecrets.webhook + } + + namespace velero { + instanceOf edp.velero.velero + } + + namespace minio 'minio-backup' { + instanceOf edp.minio.minio + } + + namespace monitoring { + instanceOf edp.monitoring.alloy + instanceOf edp.monitoring.distributor + instanceOf edp.monitoring.gateway + instanceOf edp.monitoring.ingestor + instanceOf edp.monitoring.querier + instanceOf edp.monitoring.queryFrontend + } + + namespace ingressNginx 'ingress-nginx'{ + instanceOf edp.ingressNginx.ingressNginx + } + + namespace openbao 'openbao' { + instanceOf edp.openbao.openbao + instanceOf edp.openbao.agentInjector + } + + namespace fibonacci 'fibonacci-app' { + instanceOf edp.testApp.fibonacci + } + + namespace mailhog 'mailhog' { + instanceOf edp.mailhog.mailhog + } + + namespace spark 'spark' { + instanceOf edp.spark.sparkoperator + } + } +} + diff --git a/resources/likec4/deployment/otc/edp.c4 b/resources/likec4/deployment/otc/edp.c4 new file mode 100644 index 0000000..c5b51b5 --- /dev/null +++ b/resources/likec4/deployment/otc/edp.c4 @@ -0,0 +1,49 @@ +// Deployment model +deployment { + + cloud otc-edp-per-tenant 'OTC EDP per tenant cluster' { + description 'OTC environment for EDP. EDP is the environment a customer gets from us. + + This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry. + ' + technology 'OTC' + + kubernetes cce 'OTC CCE' { + description 'OTC Container Cluster Engine' + icon tech:kubernetes + technology 'Kubernetes' + + cluster edp 'EDP' { + instanceOf edp.argoCD + instanceOf forgejoRunner + instanceOf edp.forgejo { + -> cloudServices.elasticsearch + -> cloudServices.objectstorage + -> cloudServices.postgres + -> cloudServices.redis + } + instanceOf edp.externalSecrets + instanceOf edp.ingressNginx + } + } + + paas cloudServices 'EDP Cloud Services' { + description 'EDP Cloud Services' + technology 'Cloud Services' + + instanceOf postgres + instanceOf redis + instanceOf objectstorage + instanceOf elasticsearch + } + + computeressource forgejoRunnerInfrastructure 'EDP ForgejoRunner infrastructure' { + description 'Infrastructure for Forgejo runners like pods, vms, lxds, etc' + instanceOf forgejoRunner { + -> cce.edp.forgejo 'registers' + } + } + } +} + + \ No newline at end of file diff --git a/resources/likec4/deployment/otc/faas-deployment.c4 b/resources/likec4/deployment/otc/faas-deployment.c4 new file mode 100644 index 0000000..7d482ef --- /dev/null +++ b/resources/likec4/deployment/otc/faas-deployment.c4 @@ -0,0 +1,72 @@ +deployment { + + cloud otc-faas 'OTC prototype FaaS' { + description 'OTC environments for Prototype faaS. + ' + technology 'OTC' + + environment dev 'tenant Dev' { + description '*.t09.de' + technology 'OTC' + + kubernetes cce 'Central Forgejo' { + description '*.t09.de' + icon tech:kubernetes + technology 'Kubernetes' + + cluster edp 'Forgejo Dev for platform team' { + description 't09.de' + + instanceOf edp.forgejo { + -> cloudServices + } + } + } + + paas cloudServices 'EDP Cloud Services' { + description 'EDP Cloud Services (Postgres, Redis, etc.' + technology 'Cloud Services' + } + + kubernetes observability 'Observability' { + description '*.t09.de' + icon tech:kubernetes + technology 'Kubernetes' + } + } + + environment prod 'Tenant Prod' { + description '*.buildth.ing' + technology 'OTC' + + kubernetes cce 'Central Forgejo' { + description '*.buildth.ing' + icon tech:kubernetes + technology 'Kubernetes' + + cluster edp 'Forgejo for all EDP-tenants' { + + instanceOf edp.forgejo 'Forgejo for all EDP-tenants' { + description 'buildth.ing' + -> cloudServices + } + } + } + + + paas cloudServices 'EDP Cloud Services' { + description 'EDP Cloud Services (Postgres, Redis, etc.' + technology 'Cloud Services' + } + + kubernetes observability 'Observability' { + description '*.buildth.ing' + icon tech:kubernetes + technology 'Kubernetes' + + } + } + + + } +} \ No newline at end of file diff --git a/resources/likec4/deployment/otc/foundry.c4 b/resources/likec4/deployment/otc/foundry.c4 new file mode 100644 index 0000000..dcd1197 --- /dev/null +++ b/resources/likec4/deployment/otc/foundry.c4 @@ -0,0 +1,74 @@ +// Deployment model +deployment { + + cloud otc-edpFoundry 'OTC EDP Foundry Central Service clusters' { + description ' + OTC environments for the central EDP Foundry services. This is kubernetes clusters and other infrastructure like nodes and vms, and optionally platform services. All is set up by IaC terraform and edpbuilder. + + A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP. + Optionally we will have a WebUI/API/CLI + ' + technology 'OTC' + + kubernetes cce 'OTC CCE' { + description 'OTC Container Cluster Engine' + icon tech:kubernetes + technology 'Kubernetes' + + cluster internalServices 'EDP Foundry Internal Services' { + instanceOf edp.argoCD + instanceOf edp.forgejo { + -> workflowSetupEDPInfrastructure.forgejoRunner 'invokes' + -> workflowSetupArgoCDInfrastructure.forgejoRunner 'invokes' + } + instanceOf edp.externalSecrets + instanceOf edp.openbao + instanceOf edp.ingressNginx + } + + cluster centralObservability 'EDP Foundry Central Observability' { + instanceOf edp.grafana + instanceOf edp.prometheus + instanceOf edp.loki + } + } + computeressource workflowSetupEDPInfrastructure 'EDP infrastructure Workflow' { + description 'EDP infrastructure Workflow' + + instanceOf forgejoRunner { + -> forgejoRunnerWorker 'runs' + } + instanceOf forgejoRunnerWorker { + -> edpworkflow 'executes' + } + instanceOf edpworkflow { + -> otc-edp-per-tenant.cce.edp 'deploys edp to otc.cce' + -> otc-edp-per-tenant.cloudServices 'deploys edp to otc.paas' + + } + } + + computeressource workflowSetupArgoCDInfrastructure 'EDP ArgoCD Workflow' { + description 'EDP Setup ArgoCD Workflow' + instanceOf forgejoRunner { + -> forgejoRunnerWorker 'runs' + } + instanceOf forgejoRunnerWorker { + -> edpworkflow 'executes' + } + instanceOf edpworkflow { + -> otc-edp-per-tenant.cce.argoCD + + } + } + + computeressource forgejoRunnerInfrastructure 'EDP ForgejoRunner infrastructure' { + description 'Infrastructure for Forgejo runners like pods, vms, lxds, etc' + instanceOf forgejoRunner { + -> cce.internalServices.forgejo 'registers' + } + } + + } +} + diff --git a/resources/likec4/devbox.json b/resources/likec4/devbox.json new file mode 100644 index 0000000..045ef14 --- /dev/null +++ b/resources/likec4/devbox.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.14.0/.schema/devbox.schema.json", + "packages": ["nodejs@latest"], + "shell": { + "init_hook": [ + "echo 'Welcome to devbox!' > /dev/null" + ], + "scripts": { + "test": [ + "echo \"Error: no test specified\" && exit 1" + ] + } + } +} diff --git a/resources/likec4/devbox.lock b/resources/likec4/devbox.lock new file mode 100644 index 0000000..80ac876 --- /dev/null +++ b/resources/likec4/devbox.lock @@ -0,0 +1,73 @@ +{ + "lockfile_version": "1", + "packages": { + "github:NixOS/nixpkgs/nixpkgs-unstable": { + "resolved": "github:NixOS/nixpkgs/250b695f41e0e2f5afbf15c6b12480de1fe0001b?lastModified=1743814133&narHash=sha256-drDyYyUmjeYGiHmwB9eOPTQRjmrq3Yz26knwmMPLZFk%3D" + }, + "nodejs@latest": { + "last_modified": "2025-03-16T16:17:41Z", + "plugin_version": "0.0.2", + "resolved": "github:NixOS/nixpkgs/8f76cf16b17c51ae0cc8e55488069593f6dab645#nodejs_23", + "source": "devbox-search", + "version": "23.10.0", + "systems": { + "aarch64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/dihlffh62qmgzsrxq1igwxicdyr3fn8a-nodejs-23.10.0", + "default": true + }, + { + "name": "libv8", + "path": "/nix/store/ks94i4365833bykrzg3d3mqxnciygyrn-nodejs-23.10.0-libv8" + } + ], + "store_path": "/nix/store/dihlffh62qmgzsrxq1igwxicdyr3fn8a-nodejs-23.10.0" + }, + "aarch64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/m7j1lf8a4z5bfla1m78pa3y12888hl7b-nodejs-23.10.0", + "default": true + }, + { + "name": "libv8", + "path": "/nix/store/kfvlfxx83n2w2fyb8hiz4p4dc165r035-nodejs-23.10.0-libv8" + } + ], + "store_path": "/nix/store/m7j1lf8a4z5bfla1m78pa3y12888hl7b-nodejs-23.10.0" + }, + "x86_64-darwin": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/nj0d1lc4nanqj7v4ibcgd26m3p5yfb0h-nodejs-23.10.0", + "default": true + }, + { + "name": "libv8", + "path": "/nix/store/k5rvmvqyibamfxa7cfzjfd5ldmi38kf3-nodejs-23.10.0-libv8" + } + ], + "store_path": "/nix/store/nj0d1lc4nanqj7v4ibcgd26m3p5yfb0h-nodejs-23.10.0" + }, + "x86_64-linux": { + "outputs": [ + { + "name": "out", + "path": "/nix/store/m7imcmwi4hschl257dzc33gxciqlf4bm-nodejs-23.10.0", + "default": true + }, + { + "name": "libv8", + "path": "/nix/store/wy7ysxmd2ygdc5zpbhf9ripwgvvvnwsd-nodejs-23.10.0-libv8" + } + ], + "store_path": "/nix/store/m7imcmwi4hschl257dzc33gxciqlf4bm-nodejs-23.10.0" + } + } + } + } +} diff --git a/resources/likec4/doc/developer-landscape/cicd-outerloop-2.png b/resources/likec4/doc/developer-landscape/cicd-outerloop-2.png new file mode 100644 index 0000000..6199ff1 Binary files /dev/null and b/resources/likec4/doc/developer-landscape/cicd-outerloop-2.png differ diff --git a/resources/likec4/doc/developer-landscape/cicd-outerloop-draft.png b/resources/likec4/doc/developer-landscape/cicd-outerloop-draft.png new file mode 100644 index 0000000..f56ef30 Binary files /dev/null and b/resources/likec4/doc/developer-landscape/cicd-outerloop-draft.png differ diff --git a/resources/likec4/doc/developer-landscape/cicd-outerloop.png b/resources/likec4/doc/developer-landscape/cicd-outerloop.png new file mode 100644 index 0000000..29b5122 Binary files /dev/null and b/resources/likec4/doc/developer-landscape/cicd-outerloop.png differ diff --git a/resources/likec4/doc/developer-landscape/devday-presentation.md b/resources/likec4/doc/developer-landscape/devday-presentation.md new file mode 100644 index 0000000..339d63e --- /dev/null +++ b/resources/likec4/doc/developer-landscape/devday-presentation.md @@ -0,0 +1,44 @@ +# Developer landscape with respect to DevOps Inner-Outer loop + +## Inner loop, outer loop + +![alt text](localdev.png) + +* [What software delivery leaders need to know about inner & outer loops](https://curiositysoftware.medium.com/what-software-delivery-leaders-need-to-know-about-inner-outer-loops-9da765b0ca2c) + +* (original articale is here](https://www.curiositysoftware.ie/blog/software-delivery-leaders-guide-inner-outer-loops) + +## Landscape + +### Draft + +![alt text](developer-landscape-view-draft.png) + +### C4 + +See [developer-landscape](../../views/landscape.c4) + +![alt text](developer-landscape-view-c4.png) +![alt text](developer-landscape-view-c4-2.png) + +![alt text](developer-landscape-view-c4-ppt-layouted.png) +![alt text](developer-landscape-view-c4-ppt-layouted-dark.png) + +## CI/CD Outerloop + +### Draft + +![alt text](cicd-outerloop-draft.png) + +ArgoCD and Cloud are CD, Forgejo is CI + +### C4 + +![alt text](cicd-outerloop.png) + +![alt text](cicd-outerloop-2.png) + + +## PPT + +![alt text](slide-1.png) \ No newline at end of file diff --git a/resources/likec4/doc/developer-landscape/developer-landscape-view-c4-2.png b/resources/likec4/doc/developer-landscape/developer-landscape-view-c4-2.png new file mode 100644 index 0000000..eb9b073 Binary files /dev/null and b/resources/likec4/doc/developer-landscape/developer-landscape-view-c4-2.png differ diff --git a/resources/likec4/doc/developer-landscape/developer-landscape-view-c4-ppt-layouted-dark.png b/resources/likec4/doc/developer-landscape/developer-landscape-view-c4-ppt-layouted-dark.png new file mode 100644 index 0000000..5480fb0 Binary files /dev/null and b/resources/likec4/doc/developer-landscape/developer-landscape-view-c4-ppt-layouted-dark.png differ diff --git a/resources/likec4/doc/developer-landscape/developer-landscape-view-c4-ppt-layouted.png b/resources/likec4/doc/developer-landscape/developer-landscape-view-c4-ppt-layouted.png new file mode 100644 index 0000000..81c4d0d Binary files /dev/null and b/resources/likec4/doc/developer-landscape/developer-landscape-view-c4-ppt-layouted.png differ diff --git a/resources/likec4/doc/developer-landscape/developer-landscape-view-c4.png b/resources/likec4/doc/developer-landscape/developer-landscape-view-c4.png new file mode 100644 index 0000000..58e7847 Binary files /dev/null and b/resources/likec4/doc/developer-landscape/developer-landscape-view-c4.png differ diff --git a/resources/likec4/doc/developer-landscape/developer-landscape-view-draft.png b/resources/likec4/doc/developer-landscape/developer-landscape-view-draft.png new file mode 100644 index 0000000..46b3044 Binary files /dev/null and b/resources/likec4/doc/developer-landscape/developer-landscape-view-draft.png differ diff --git a/resources/likec4/doc/developer-landscape/localdev.png b/resources/likec4/doc/developer-landscape/localdev.png new file mode 100644 index 0000000..6de1218 Binary files /dev/null and b/resources/likec4/doc/developer-landscape/localdev.png differ diff --git a/resources/likec4/doc/developer-landscape/slide-1.png b/resources/likec4/doc/developer-landscape/slide-1.png new file mode 100644 index 0000000..70acab2 Binary files /dev/null and b/resources/likec4/doc/developer-landscape/slide-1.png differ diff --git a/resources/likec4/likec4.config.json b/resources/likec4/likec4.config.json new file mode 100644 index 0000000..bf92db2 --- /dev/null +++ b/resources/likec4/likec4.config.json @@ -0,0 +1,3 @@ +{ + "name": "architecture" +} \ No newline at end of file diff --git a/resources/likec4/models/code/workflow-edpbuilder.c4 b/resources/likec4/models/code/workflow-edpbuilder.c4 new file mode 100644 index 0000000..1610d72 --- /dev/null +++ b/resources/likec4/models/code/workflow-edpbuilder.c4 @@ -0,0 +1,103 @@ +model { + workflow edfbuilder_workflow "EDFbuilder" { + step runEDP "Run edpbuilder script" { + style { + opacity 25% + } + step createCrossplaneNS "Create Crossplane namespace" + step installCrossplaneHelm "Install Crossplane Helm Chart" + step installCrossplaneFunctionsAndProviders "Install Crossplane Functions and Providers" + step waitForCrossplaneFunctionsAndProviders "Wait for Crossplane Functions and Providers to become available" + step setupCrossplaneServiceAccount "Apply cluster-admin role to crossplane shell provider service account" + step createArgoCdNS "Create ArgoCD namespace" + step createGiteaNS "Create Gitea namespace" + step createArgoCdTlsCert "Create TLS Cert for Argo" + step createGiteaTlsCert "Create TLS Cert for Forgejo" + step createEDFBuilderDefinition "Create EDFbuilder crossplane definition (defines API)" + step createEDFBuilderComposition "Create EDFbuilder crossplane composition (defines what happens when EDFbuilder is applied)" + } + + step applyEDFBuilder "Applies EDFbuilder resource (and triggers creation)" { + style { + opacity 15% + } + + step setEnvVars "Set required environment variables" + step readWriteKubeConf "Make kube.conf write/readbale" + step setWorkDir "Set workdir to /tmp/rundir" + step cloneStacksRepo "Clone steps repo and checkout desired branch" + step hydrateStacksWithValues "Hydrate Stacks with values" + step createNamespaces "Create all required namespaces" + step createGiteaAdminPass "Create Admin Password for Forgejo" + step createGrafanaPass "Create Grafana Admin Password" + step applyServiceMonitorCRD "Apply ServiceMonitor CRDs for Prometheus" + step cloneIngressNginxChart "Git clone ingress-nginx helm chart" + step isntallIngressNginx "Install ingress-nginx from cloned chart" + step waitForIngress "Wait till ingress-nginx is ready" + step cloneArgoCDHelm "Git clone ArgoCD Helm Chart" + step installArgoCD "Install ArgoCD Helm Chart" + step installArgoCDIngress "Install ingress for ArgoCD" + step cloneForgejoHelmChart "Git clone Forgejo Helm Chart" + step installForgejo "Install Forgejo Helm Chart" + step installForgejoIngress "Install ingress for Forgejo" + step waitForArgoCD "Wait till ArgoCD is available" + step waitForForgejo "Wait till Forgejo is available" + step createForgejoUser "Create technical user for Forgejo" + step createForgejoRepo "Create repository for EDP state in Forgejo" + step installForgejoRunner "Install Forgejo Runner deployment" + step registerForgejoRunner "Create registration token secret for runner" + step configGitIdentity "Configure Git identity" + step configCrossplaneArgoCDProvider "Configure Crossplane ArgoCD provider" + step configCrossplaneKindProvider "Configure Crossplane Kind provider" + step uploadStacksToForgjo "Git push hydrated stacks to Forgejo isntance" + step configArgoDockerRegistry "Configure Docker Registry for Argo Workflows" + step createPackagesForgejoUser "Create packages user and token in Forgejo (unused?)" + step installArgoCDStacks "Apply all selected ArgoCD stacks" + step cleanup "Cleanup work folder and unset all env vars" + + setEnvVars -> readWriteKubeConf + readWriteKubeConf -> setWorkDir + setWorkDir -> cloneStacksRepo + cloneStacksRepo -> hydrateStacksWithValues + hydrateStacksWithValues -> createNamespaces + createNamespaces -> createGiteaAdminPass + createGiteaAdminPass -> createGrafanaPass + createGrafanaPass -> applyServiceMonitorCRD + applyServiceMonitorCRD -> cloneIngressNginxChart + cloneIngressNginxChart -> isntallIngressNginx + isntallIngressNginx -> waitForIngress + waitForIngress -> cloneArgoCDHelm + cloneArgoCDHelm -> installArgoCD + installArgoCD -> installArgoCDIngress + installArgoCDIngress -> cloneForgejoHelmChart + cloneForgejoHelmChart -> installForgejo + installForgejo -> installForgejoIngress + installForgejoIngress -> waitForArgoCD + waitForArgoCD -> waitForForgejo + waitForForgejo -> createForgejoUser + createForgejoUser -> createForgejoRepo + createForgejoRepo -> installForgejoRunner + installForgejoRunner -> registerForgejoRunner + registerForgejoRunner -> configGitIdentity + configGitIdentity -> configCrossplaneArgoCDProvider + configCrossplaneArgoCDProvider -> configCrossplaneKindProvider + configCrossplaneKindProvider -> uploadStacksToForgjo + uploadStacksToForgjo -> configArgoDockerRegistry + configArgoDockerRegistry -> createPackagesForgejoUser + createPackagesForgejoUser -> installArgoCDStacks + installArgoCDStacks -> cleanup + } + + createCrossplaneNS -> installCrossplaneHelm + installCrossplaneHelm -> installCrossplaneFunctionsAndProviders + installCrossplaneFunctionsAndProviders -> waitForCrossplaneFunctionsAndProviders + waitForCrossplaneFunctionsAndProviders -> setupCrossplaneServiceAccount + setupCrossplaneServiceAccount -> createArgoCdNS + createArgoCdNS -> createGiteaNS + createGiteaNS -> createArgoCdTlsCert + createArgoCdTlsCert -> createGiteaTlsCert + createGiteaTlsCert -> createEDFBuilderDefinition + createEDFBuilderDefinition -> createEDFBuilderComposition + createEDFBuilderComposition -> applyEDFBuilder + } +} diff --git a/resources/likec4/models/code/workflow-setup-edp-argocd.c4 b/resources/likec4/models/code/workflow-setup-edp-argocd.c4 new file mode 100644 index 0000000..b47b9f6 --- /dev/null +++ b/resources/likec4/models/code/workflow-setup-edp-argocd.c4 @@ -0,0 +1,6 @@ +model { + workflow argocdworkflow "EDP ArgoCD Setup Workflow" { + + } +} + diff --git a/resources/likec4/models/code/workflow-setup-edp-infrastructure.c4 b/resources/likec4/models/code/workflow-setup-edp-infrastructure.c4 new file mode 100644 index 0000000..456dfa4 --- /dev/null +++ b/resources/likec4/models/code/workflow-setup-edp-infrastructure.c4 @@ -0,0 +1,7 @@ +model { + workflow edpworkflow "EDP Infrastructure Setup Workflow" { + // step createS3bucket "Create s3 bucket for state" {} + // step setupRedis "Setup Redis" {} + } +} + diff --git a/resources/likec4/models/components/application-specification.c4 b/resources/likec4/models/components/application-specification.c4 new file mode 100644 index 0000000..3916520 --- /dev/null +++ b/resources/likec4/models/components/application-specification.c4 @@ -0,0 +1,16 @@ +model { + component applicationspecification "application-specification" { + description 'The application specification describes the application and its components. It is used to generate the application and its components.' + + component application_gitrepo 'Git App Repo' { + description 'Git Application Repository' + technology 'Git' + icon tech:git + } + component applicationspec_gitrepo 'Git AppSpec Repo' { + description 'Git Application Specification Repository' + technology 'Git' + icon tech:git + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/components/forgejoRunner.c4 b/resources/likec4/models/components/forgejoRunner.c4 new file mode 100644 index 0000000..2a70d49 --- /dev/null +++ b/resources/likec4/models/components/forgejoRunner.c4 @@ -0,0 +1,6 @@ +model { + component forgejoRunner 'Forgejo Runner' { + description 'A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM.' + -> edp.forgejoActions 'register' + } +} \ No newline at end of file diff --git a/resources/likec4/models/components/forgejoRunnerWorker.c4 b/resources/likec4/models/components/forgejoRunnerWorker.c4 new file mode 100644 index 0000000..4397bd1 --- /dev/null +++ b/resources/likec4/models/components/forgejoRunnerWorker.c4 @@ -0,0 +1,6 @@ +model { + component forgejoRunnerWorker 'Forgejo Runner Worker' { + description 'A worker is a service that runs a job invoked by a runner. A worker typically is a container.' + + } +} \ No newline at end of file diff --git a/resources/likec4/models/components/promtail.c4 b/resources/likec4/models/components/promtail.c4 new file mode 100644 index 0000000..85b8e5e --- /dev/null +++ b/resources/likec4/models/components/promtail.c4 @@ -0,0 +1,6 @@ +model { + component promtail 'Promtail' { + description 'Log shipper agent for Loki' + + } +} \ No newline at end of file diff --git a/resources/likec4/models/components/tools.c4 b/resources/likec4/models/components/tools.c4 new file mode 100644 index 0000000..8484713 --- /dev/null +++ b/resources/likec4/models/components/tools.c4 @@ -0,0 +1,13 @@ +model { + component edfbuilder "edfbuilder" { + description 'EDP Foundry Builder' + technology 'Golang' + icon tech:go + style { + shape rectangle + } + -> edf "boots one" + platformdeveloper -> edfbuilder "runs" + } + +} \ No newline at end of file diff --git a/resources/likec4/models/containers/api.c4 b/resources/likec4/models/containers/api.c4 new file mode 100644 index 0000000..8902864 --- /dev/null +++ b/resources/likec4/models/containers/api.c4 @@ -0,0 +1,9 @@ +model { + + extend edp { + container api 'API' { + description 'API for the EDP platform' + icon tech:swagger + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/argocd.c4 b/resources/likec4/models/containers/argocd.c4 new file mode 100644 index 0000000..59fbf47 --- /dev/null +++ b/resources/likec4/models/containers/argocd.c4 @@ -0,0 +1,24 @@ +model { + + extend edp { + container argoCD 'ArgoCD' { + description 'GitOps Service' + + component argocdServer 'ArgoCD Server' + component argocdAppController 'ApplicationController' + component argocdAppSetController 'ApplicationSeetController' + component argocdRedis 'Redis' { + technology: 'Redis' + icon: tech:redis + } + component argocdRepoServer 'Repo Server' + + argocdServer -> argocdRedis 'read/write' + argocdRepoServer -> argocdRedis 'read/write' + argocdAppController -> argocdRedis 'read/write' + argocdAppSetController -> argocdRedis 'read/write' + + argocdRepoServer -> edp.forgejogit 'Syncs git repo' + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/backstage.c4 b/resources/likec4/models/containers/backstage.c4 new file mode 100644 index 0000000..fd323c6 --- /dev/null +++ b/resources/likec4/models/containers/backstage.c4 @@ -0,0 +1,25 @@ +model { + + extend edp { + container ui 'Backstage' { + description 'Developer Portal' + + component backstage 'Backstage' { + style { + icon tech:react + shape browser + } + } + + component database 'Database' { + technology 'Postgresql' + icon tech:postgresql + style { + shape storage + } + } + + backstage -> database 'reads/writes' + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/crossplane.c4 b/resources/likec4/models/containers/crossplane.c4 new file mode 100644 index 0000000..6452b8b --- /dev/null +++ b/resources/likec4/models/containers/crossplane.c4 @@ -0,0 +1,16 @@ +model { + + extend edp { + container crossplane 'Crossplane' { + #internal + description 'Declarative management of ressources' + + component crossplane 'Crossplane' + component crossplaneFunction 'Function Patch and Transform' + component crossplaneRbacManager 'RBAC Manager' + component providerArgoCD 'ArgoCD Provider' + component providerKind 'Kind Provider' + component providerShell 'Shell Provider' + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/elasticsearch.c4 b/resources/likec4/models/containers/elasticsearch.c4 new file mode 100644 index 0000000..c50a766 --- /dev/null +++ b/resources/likec4/models/containers/elasticsearch.c4 @@ -0,0 +1,13 @@ +model { + + container elasticsearch 'Elasticsearch' { + description ' + Elasticsearch is a distributed, RESTful search and analytics engine capable of + addressing a growing number of use cases. It centrally stores your data so you can + discover the expected and uncover the unexpected. + ' + icon tech:elasticsearch + technology 'Elasticsearch' + } + +} \ No newline at end of file diff --git a/resources/likec4/models/containers/externalsecrets.c4 b/resources/likec4/models/containers/externalsecrets.c4 new file mode 100644 index 0000000..f929e19 --- /dev/null +++ b/resources/likec4/models/containers/externalsecrets.c4 @@ -0,0 +1,13 @@ +model { + + extend edp { + container externalSecrets 'external-secrets' { + #internal + description 'Provider to access externally stored Kubernetes secrets' + + component externalSecrets 'external-secrets controller' + component certController 'cert-controller' + component webhook 'webhook' + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/forgejo.c4 b/resources/likec4/models/containers/forgejo.c4 new file mode 100644 index 0000000..fcaeacd --- /dev/null +++ b/resources/likec4/models/containers/forgejo.c4 @@ -0,0 +1,42 @@ +model { + + extend edp { + container forgejo 'Forgejo' { + description ' + Fully managed DevOps Platform + offering capabilities like + code version controling + collaboration and ticketing + and security scanning + ' + technology 'Golang' + icon tech:go + + component forgejocollaboration 'Collaboration' { + icon tech:github + } + + component forgejoproject 'Project Mgmt' { + icon tech:github + } + + } + + component forgejoActions 'Forgejo Actions' { + description 'Continuous Integration like Github Actions' + technology 'Golang' + icon tech:go + -> forgejoRunner 'runs workflows' + } + + component imageregistry 'Forgejo OCI Image Registry' { + description 'Container Image Registry' + technology 'Golang' + icon tech:go + } + + component forgejogit 'ForgejoGit' { + icon tech:git + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/grafana.c4 b/resources/likec4/models/containers/grafana.c4 new file mode 100644 index 0000000..df88bb9 --- /dev/null +++ b/resources/likec4/models/containers/grafana.c4 @@ -0,0 +1,11 @@ +model { + + extend edp { + container grafana 'Grafana' { + description 'Data visualization and monitoring' + icon tech:grafana + -> prometheus 'get metrics and alerts' + -> loki 'get logs' + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/ingress.c4 b/resources/likec4/models/containers/ingress.c4 new file mode 100644 index 0000000..d0babc4 --- /dev/null +++ b/resources/likec4/models/containers/ingress.c4 @@ -0,0 +1,25 @@ +model { + + extend edp { + container ingressNginx 'Ingress' { + #internal + description 'Ingress Controller for incoming http(s) traffic' + + component ingressNginx 'ingress-nginx' { + technology 'Nginx' + icon tech:nginx + } + + ingressNginx -> edp.forgejo 'https' + ingressNginx -> edp.keycloak.keycloak 'https' + ingressNginx -> edp.openbao.openbao 'https' + ingressNginx -> edp.argoCD.argocdServer 'https' + ingressNginx -> edp.ui.backstage 'https' + ingressNginx -> edp.minio.minio 'https' + ingressNginx -> edp.monitoring.alloy 'https' + ingressNginx -> edp.monitoring.queryFrontend 'https' + ingressNginx -> testApp.fibonacci 'https' + ingressNginx -> mailhog.mailhog 'https' + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/keycloak.c4 b/resources/likec4/models/containers/keycloak.c4 new file mode 100644 index 0000000..7f5ea08 --- /dev/null +++ b/resources/likec4/models/containers/keycloak.c4 @@ -0,0 +1,21 @@ +model { + + extend edp { + container keycloak 'Keycloak' { + description 'Single Sign On for all EDP products' + component keycloak 'Keycloak' { + technology 'Java' + icon tech:java + } + + component keycloakDB 'Database' { + technology 'Postgresql' + icon tech:postgresql + style { + shape storage + } + } + keycloak -> keycloakDB 'reads/writes' + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/kyverno.c4 b/resources/likec4/models/containers/kyverno.c4 new file mode 100644 index 0000000..0ab2d71 --- /dev/null +++ b/resources/likec4/models/containers/kyverno.c4 @@ -0,0 +1,9 @@ +model { + + extend edp { + container kyverno 'Kyverno' { + #internal + description 'Policy-as-Code' + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/loki.c4 b/resources/likec4/models/containers/loki.c4 new file mode 100644 index 0000000..f49070a --- /dev/null +++ b/resources/likec4/models/containers/loki.c4 @@ -0,0 +1,8 @@ +model { + + extend edp { + container loki 'Loki' { + description 'Log aggregation system' + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/mailhog.c4 b/resources/likec4/models/containers/mailhog.c4 new file mode 100644 index 0000000..c773c0f --- /dev/null +++ b/resources/likec4/models/containers/mailhog.c4 @@ -0,0 +1,13 @@ +model { + + extend edp { + container mailhog 'Mailhog' { + description 'Web and API based SMTP testing' + + component mailhog 'Mailhog' { + technology 'Golang' + icon tech:go + } + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/minio.c4 b/resources/likec4/models/containers/minio.c4 new file mode 100644 index 0000000..eb14fce --- /dev/null +++ b/resources/likec4/models/containers/minio.c4 @@ -0,0 +1,15 @@ +model { + + extend edp { + container minio 'Minio' { + description 'S3 compatible blob storage' + + component minio 'S3 Blob Storage' { + technology 'Minio' + style { + shape storage + } + } + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/monitoring.c4 b/resources/likec4/models/containers/monitoring.c4 new file mode 100644 index 0000000..226acde --- /dev/null +++ b/resources/likec4/models/containers/monitoring.c4 @@ -0,0 +1,30 @@ +model { + + extend edp { + container monitoring 'Monitoring' { + description 'Observability system to monitor deployed components' + + component alloy 'Alloy' { + description 'Open Telemetry Collector' + + style { + icon tech:grafana + multiple true + } + } + + container loki 'Loki' { + description 'Log aggregation system' + icon tech:grafana + + component queryFrontend 'Query Frontend' + component distributor 'Distributor' + component gateway 'Gateway' + component ingestor 'Ingestor' + component querier 'Querier' + + alloy -> distributor 'pushes logs' + } + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/objectstorage.c4 b/resources/likec4/models/containers/objectstorage.c4 new file mode 100644 index 0000000..d1a9550 --- /dev/null +++ b/resources/likec4/models/containers/objectstorage.c4 @@ -0,0 +1,8 @@ +model { + + container objectstorage 's3 Object Storage' { + description 's3 Object Storage' + technology 'S3 Object Storage' + } + +} \ No newline at end of file diff --git a/resources/likec4/models/containers/openbao.c4 b/resources/likec4/models/containers/openbao.c4 new file mode 100644 index 0000000..039355a --- /dev/null +++ b/resources/likec4/models/containers/openbao.c4 @@ -0,0 +1,17 @@ +model { + + extend edp { + container openbao 'OpenBao' { + description 'Secure secret storage' + + component openbao 'Openbao' { + technology 'Openbao' + style { + shape storage + } + } + + component agentInjector 'Agent Injector' + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/postgres.c4 b/resources/likec4/models/containers/postgres.c4 new file mode 100644 index 0000000..a77cc73 --- /dev/null +++ b/resources/likec4/models/containers/postgres.c4 @@ -0,0 +1,13 @@ +model { + + container postgres 'PostgreSQL' { + description ' + PostgreSQL is a powerful, open source object-relational database system. + It has more than 15 years of active development and a proven architecture + that has earned it a strong reputation for reliability, data integrity, + and correctness.' + icon tech:postgresql + technology 'PostgreSQL' + } + +} \ No newline at end of file diff --git a/resources/likec4/models/containers/prometheus.c4 b/resources/likec4/models/containers/prometheus.c4 new file mode 100644 index 0000000..5da49e8 --- /dev/null +++ b/resources/likec4/models/containers/prometheus.c4 @@ -0,0 +1,9 @@ +model { + + extend edp { + container prometheus 'Prometheus' { + description 'Monitoring and alerting toolkit' + icon tech:prometheus + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/redis.c4 b/resources/likec4/models/containers/redis.c4 new file mode 100644 index 0000000..4173b72 --- /dev/null +++ b/resources/likec4/models/containers/redis.c4 @@ -0,0 +1,9 @@ +model { + + container redis 'Redis' { + description 'Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.' + icon tech:redis + technology 'Redis' + } + +} \ No newline at end of file diff --git a/resources/likec4/models/containers/spark-operator.c4 b/resources/likec4/models/containers/spark-operator.c4 new file mode 100644 index 0000000..92a73bb --- /dev/null +++ b/resources/likec4/models/containers/spark-operator.c4 @@ -0,0 +1,14 @@ +model { + + extend edp { + container spark 'Spark' { + #internal + description 'Allows running Spark applications on K8s' + + component sparkoperator 'Spark Operator' { + technology 'Spark' + icon tech:spark + } + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/containers/velero.c4 b/resources/likec4/models/containers/velero.c4 new file mode 100644 index 0000000..3676cbf --- /dev/null +++ b/resources/likec4/models/containers/velero.c4 @@ -0,0 +1,13 @@ +model { + + extend edp { + container velero 'Velero' { + #internal + description 'Backup Kubernetes resources' + + component velero 'Velero' + + velero -> edp.minio.minio 'store backups' + } + } +} \ No newline at end of file diff --git a/resources/likec4/models/context/actors.c4 b/resources/likec4/models/context/actors.c4 new file mode 100644 index 0000000..dd690f5 --- /dev/null +++ b/resources/likec4/models/context/actors.c4 @@ -0,0 +1,35 @@ +model { + developer = actor 'Developer' { + description 'The regular user of the platform' + -> localbox 'inner loop development' + -> edp 'outer loop development' + -> edp.ui 'manages project' + -> edp.forgejo 'manages code' + -> edp.keycloak 'authenticates' + -> edp.argoCD 'manages deployments' + -> edp.grafana 'monitors' + -> edp.backstage 'create and maintain apps' + -> edp.imageregistry 'pushes and pull images' + -> edp.api 'uses API' + -> edp.forgejogit 'uses git' + } + platformdeveloper = actor 'Platform Developer' { + description 'The EDP engineer' + style { + color gray + shape person + } + } + otherProductLifecycleRoles = actor 'Reviewer, Tester, Auditors, Operators' { + description 'Coworking roles in the outer loop' + -> edp 'act according to responibility' + } + customers = actor 'End Customers' { + description 'Consumers of your Application' + style { + color amber + shape person + } + -> cloud 'uses your app' + } +} \ No newline at end of file diff --git a/resources/likec4/models/context/cloud.c4 b/resources/likec4/models/context/cloud.c4 new file mode 100644 index 0000000..0602ac5 --- /dev/null +++ b/resources/likec4/models/context/cloud.c4 @@ -0,0 +1,14 @@ +model { + cloud = system 'Cloud' { + description 'Cloud environments' + technology 'IaaS/PaaS' + + application = schema 'application' { + description 'An application description' + technology 'DSL' + style { + color primary + } + } + } +} diff --git a/resources/likec4/models/context/customer-systems.c4 b/resources/likec4/models/context/customer-systems.c4 new file mode 100644 index 0000000..2d15443 --- /dev/null +++ b/resources/likec4/models/context/customer-systems.c4 @@ -0,0 +1,6 @@ +model { + enterprise = system "Customers' Enterprise Systems" { + description "The customers' enterprise systems" + -> cloud 'app specific dependencies' + } +} diff --git a/resources/likec4/models/context/edfoundry.c4 b/resources/likec4/models/context/edfoundry.c4 new file mode 100644 index 0000000..2453ca1 --- /dev/null +++ b/resources/likec4/models/context/edfoundry.c4 @@ -0,0 +1,10 @@ +model { + edf = system 'EDF' { + description 'EDP Foundry is a platform for building and deploying EDPs tenantwise.' + technology 'Kubernetes' + icon tech:kubernetes + -> edp 'builds many' + platformdeveloper -> edf "develops EDP and EDF" + + } +} \ No newline at end of file diff --git a/resources/likec4/models/context/edp.c4 b/resources/likec4/models/context/edp.c4 new file mode 100644 index 0000000..970e989 --- /dev/null +++ b/resources/likec4/models/context/edp.c4 @@ -0,0 +1,31 @@ +model { + edp = system 'EDP' { + description 'EDP Edge Development Platform' + technology 'Kubernetes' + icon tech:kubernetes + -> enterprise 'integrates' + -> cloud 'deploys and observes' + -> localbox // inner-outer loop synchronization + + application = schema 'application' { + description 'An application description' + technology 'DSL' + style { + color primary + } + } + + container testApp 'Fibonacci' { + description 'Testapp to validate deployments' + + component fibonacci 'Fibonacci' { + technology 'Golang' + icon tech:go + } + } + + // UI requests data from the Backend + // ui -> backend 'fetches via HTTPS' + } +} + diff --git a/resources/likec4/models/context/localbox.c4 b/resources/likec4/models/context/localbox.c4 new file mode 100644 index 0000000..07547d8 --- /dev/null +++ b/resources/likec4/models/context/localbox.c4 @@ -0,0 +1,22 @@ +model { + localbox = system 'localbox' { + description 'A local development system' + technology 'Linux/Windows/Mac' + -> edp 'inner-outer-loop synchronization' + -> enterprise 'company integration' + + application = schema 'application' { + description 'An application description' + technology 'DSL' + style { + color primary + } + } + + git = component 'git' { + description 'local git' + technology 'Git' + icon tech:git + } + } +} diff --git a/resources/likec4/models/spec.c4 b/resources/likec4/models/spec.c4 new file mode 100644 index 0000000..c00ac40 --- /dev/null +++ b/resources/likec4/models/spec.c4 @@ -0,0 +1,35 @@ +specification { + element actor { + style { + shape person + color green + } + } + element component + element container { + style { + opacity 20% + } + } + element internalComponent { + style { + color muted + opacity 15% + } + } + + element schema + element step + element system + element workflow + + deploymentNode cloud + deploymentNode environment + deploymentNode computeressource + deploymentNode paas + deploymentNode kubernetes + deploymentNode cluster + deploymentNode namespace + + tag internal +} \ No newline at end of file diff --git a/resources/likec4/package-lock.json b/resources/likec4/package-lock.json new file mode 100644 index 0000000..1e7e456 --- /dev/null +++ b/resources/likec4/package-lock.json @@ -0,0 +1,2455 @@ +{ + "name": "likec4", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "likec4", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@likec4/cli": "^0.40.0", + "likec4": "^1.37.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@hpcc-js/wasm-graphviz": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@hpcc-js/wasm-graphviz/-/wasm-graphviz-1.12.0.tgz", + "integrity": "sha512-Cr0eeLN3M87zkTllMMd5G1FtT2LsxEu+V2t72CokvvQmylRtQpfdZBf4nZvw+qZmJWB0IuGxzYkSoxGfZCbtKQ==", + "license": "Apache-2.0" + }, + "node_modules/@jridgewell/gen-mapping": { + "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==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "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==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@likec4/cli": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/@likec4/cli/-/cli-0.40.0.tgz", + "integrity": "sha512-ITKetrNrGUkJ1ZSauk8Goj89Mn5+riU91K1ZFWRnLMB3fvPX8i7xf6Vvqms1g/vAWf3blRvtk5iuzFDKmM+1Og==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "bin": { + "likec4": "bin/likec4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@likec4/core": { + "version": "1.42.1", + "resolved": "https://registry.npmjs.org/@likec4/core/-/core-1.42.1.tgz", + "integrity": "sha512-DAoe5PvOBIRyfhY7gbfZbBVF9qbgeQdqR0DXKi/7Na/di4IJo2KORo9EUK46AHqBDFumuwfXuEuTPJ/97CRaMw==", + "license": "MIT", + "dependencies": { + "type-fest": "^4.41.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.43", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.43.tgz", + "integrity": "sha512-5Uxg7fQUCmfhax7FJke2+8B6cqgeUJUD9o2uXIKXhD+mG0mL6NObmVoi9wXEU1tY89mZKgAYA6fTbftx3q2ZPQ==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", + "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", + "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", + "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", + "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", + "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", + "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", + "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", + "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", + "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", + "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", + "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", + "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", + "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", + "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", + "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", + "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", + "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", + "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", + "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", + "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", + "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", + "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-react": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.0.tgz", + "integrity": "sha512-4LuWrg7EKWgQaMJfnN+wcmbAW+VSsCmqGohftWjuct47bv8uE4n/nPpq4XjJPsxgq00GGG5J8dvBczp8uxScew==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.4", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.43", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.18.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@xyflow/react": { + "version": "12.8.6", + "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.8.6.tgz", + "integrity": "sha512-SksAm2m4ySupjChphMmzvm55djtgMDPr+eovPDdTnyGvShf73cvydfoBfWDFllooIQ4IaiUL5yfxHRwU0c37EA==", + "license": "MIT", + "dependencies": { + "@xyflow/system": "0.0.70", + "classcat": "^5.0.3", + "zustand": "^4.4.0" + }, + "peerDependencies": { + "react": ">=17", + "react-dom": ">=17" + } + }, + "node_modules/@xyflow/system": { + "version": "0.0.70", + "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.70.tgz", + "integrity": "sha512-PpC//u9zxdjj0tfTSmZrg3+sRbTz6kop/Amky44U2Dl51sxzDTIUfXMwETOYpmr2dqICWXBIJwXL2a9QWtX2XA==", + "license": "MIT", + "dependencies": { + "@types/d3-drag": "^3.0.7", + "@types/d3-interpolate": "^3.0.4", + "@types/d3-selection": "^3.0.10", + "@types/d3-transition": "^3.0.8", + "@types/d3-zoom": "^3.0.8", + "d3-drag": "^3.0.0", + "d3-interpolate": "^3.0.1", + "d3-selection": "^3.0.0", + "d3-zoom": "^3.0.0" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.20.tgz", + "integrity": "sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/boxen": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", + "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^8.0.0", + "chalk": "^5.3.0", + "cli-boxes": "^3.0.0", + "string-width": "^7.2.0", + "type-fest": "^4.21.0", + "widest-line": "^5.0.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/browserslist": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", + "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.8.19", + "caniuse-lite": "^1.0.30001751", + "electron-to-chromium": "^1.5.238", + "node-releases": "^2.0.26", + "update-browserslist-db": "^1.1.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bundle-require": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz", + "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==", + "license": "MIT", + "dependencies": { + "load-tsconfig": "^0.2.3" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.18" + } + }, + "node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001751", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", + "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.5.0.tgz", + "integrity": "sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/classcat": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/classcat/-/classcat-5.0.5.tgz", + "integrity": "sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==", + "license": "MIT" + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "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-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "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-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.240", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.240.tgz", + "integrity": "sha512-OBwbZjWgrCOH+g6uJsA2/7Twpas2OlepS9uvByJjR2datRDuKGYeD+nP8lBBks2qnB7bGJNHDUx7c/YLaT3QMQ==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", + "hasInstallScript": true, + "license": "MIT", + "peer": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fdir": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.0.tgz", + "integrity": "sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/likec4": { + "version": "1.42.1", + "resolved": "https://registry.npmjs.org/likec4/-/likec4-1.42.1.tgz", + "integrity": "sha512-r31lq8pCifIkJUJgGqTNwDc1d1NtyM8+89koBi0j3SoxYR1NFEfPK3rXAptHNOb/nRyWRCaD0dt+vtF+8a/n9g==", + "license": "MIT", + "dependencies": { + "@hpcc-js/wasm-graphviz": "1.12.0", + "@likec4/core": "1.42.1", + "@vitejs/plugin-react": "^5.0.4", + "@xyflow/react": "12.8.6", + "@xyflow/system": "0.0.70", + "boxen": "^8.0.1", + "bundle-require": "^5.1.0", + "esbuild": "0.25.9", + "fdir": "6.4.0", + "playwright": "1.54.2", + "rollup": "^4.52.3", + "std-env": "^3.9.0", + "type-fest": "^4.41.0", + "vite": "^7.1.7", + "yargs": "17.7.2" + }, + "bin": { + "likec4": "bin/likec4.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.18.0" + }, + "peerDependencies": { + "react": "^18.x || ^19.x", + "react-dom": "^18.x || ^19.x" + } + }, + "node_modules/load-tsconfig": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.26.tgz", + "integrity": "sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/playwright": { + "version": "1.54.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.54.2.tgz", + "integrity": "sha512-Hu/BMoA1NAdRUuulyvQC0pEqZ4vQbGfn8f7wPXcnqQmM+zct9UliKxsIkLNmz/ku7LElUNqmaiv1TG/aL5ACsw==", + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.54.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.54.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.54.2.tgz", + "integrity": "sha512-n5r4HFbMmWsB4twG7tJLDN9gmBUeSPcsBZiWSE4DnYz9mJMAFqr2ID7+eGC9kpEnxExJ1epttwR59LEWCk8mtA==", + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", + "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", + "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", + "license": "MIT", + "peer": true, + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.1" + } + }, + "node_modules/react-refresh": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", + "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.52.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", + "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.52.5", + "@rollup/rollup-android-arm64": "4.52.5", + "@rollup/rollup-darwin-arm64": "4.52.5", + "@rollup/rollup-darwin-x64": "4.52.5", + "@rollup/rollup-freebsd-arm64": "4.52.5", + "@rollup/rollup-freebsd-x64": "4.52.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", + "@rollup/rollup-linux-arm-musleabihf": "4.52.5", + "@rollup/rollup-linux-arm64-gnu": "4.52.5", + "@rollup/rollup-linux-arm64-musl": "4.52.5", + "@rollup/rollup-linux-loong64-gnu": "4.52.5", + "@rollup/rollup-linux-ppc64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-gnu": "4.52.5", + "@rollup/rollup-linux-riscv64-musl": "4.52.5", + "@rollup/rollup-linux-s390x-gnu": "4.52.5", + "@rollup/rollup-linux-x64-gnu": "4.52.5", + "@rollup/rollup-linux-x64-musl": "4.52.5", + "@rollup/rollup-openharmony-arm64": "4.52.5", + "@rollup/rollup-win32-arm64-msvc": "4.52.5", + "@rollup/rollup-win32-ia32-msvc": "4.52.5", + "@rollup/rollup-win32-x64-gnu": "4.52.5", + "@rollup/rollup-win32-x64-msvc": "4.52.5", + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/vite": { + "version": "7.1.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.12.tgz", + "integrity": "sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==", + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/widest-line": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", + "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", + "license": "MIT", + "dependencies": { + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/zustand": { + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.7.tgz", + "integrity": "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "^1.2.2" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } + } + } +} diff --git a/resources/likec4/package.json b/resources/likec4/package.json new file mode 100644 index 0000000..ae47d13 --- /dev/null +++ b/resources/likec4/package.json @@ -0,0 +1,19 @@ +{ + "name": "likec4", + "version": "1.0.0", + "description": "Run `npx likec4 start` to start dev server", + "main": "index.js", + "directories": { + "doc": "doc" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@likec4/cli": "^0.40.0", + "likec4": "^1.37.0" + } +} diff --git a/resources/likec4/views/deployment/kind/kind.c4 b/resources/likec4/views/deployment/kind/kind.c4 new file mode 100644 index 0000000..a6d12f3 --- /dev/null +++ b/resources/likec4/views/deployment/kind/kind.c4 @@ -0,0 +1,16 @@ +views { + deployment view index { + title 'Local Kind Deployment' + + include + *, + local.**, + local.monitoring.*, + local.openbao.*, + local.externalSecrets.*, + local.crossplane.*, + local.spark.*, + local.argocd.* + } +} + diff --git a/resources/likec4/views/deployment/otc/edp.c4 b/resources/likec4/views/deployment/otc/edp.c4 new file mode 100644 index 0000000..b5d9d0b --- /dev/null +++ b/resources/likec4/views/deployment/otc/edp.c4 @@ -0,0 +1,24 @@ +views { + deployment view edp-per-tenant { + title 'EDP per tenant' + + include + otc-edp-per-tenant, + otc-edp-per-tenant.*, + otc-edp-per-tenant.cce, + otc-edp-per-tenant.cce.*, + otc-edp-per-tenant.cce.**, + otc-edp-per-tenant.cce.externalSecrets, + otc-edp-per-tenant.forgejoRunnerInfrastructure, + otc-edp-per-tenant.forgejoRunnerInfrastructure.*, + otc-edp-per-tenant.cloudServices, + otc-edp-per-tenant.cloudServices.* + style otc-edp-per-tenant { + color slate + } + style otc-edp-per-tenant.cce { + color red + } + } +} + diff --git a/resources/likec4/views/deployment/otc/forgejo-runner-connections.md b/resources/likec4/views/deployment/otc/forgejo-runner-connections.md new file mode 100644 index 0000000..13697f9 --- /dev/null +++ b/resources/likec4/views/deployment/otc/forgejo-runner-connections.md @@ -0,0 +1,19 @@ +```mermaid +flowchart TD + subgraph Forgejo + forgejoActions[Forgejo Actions] + forgejogit[ForgejoGit] + end + forgejoRunner[Forgejo Runner] + imageregistry[Forgejo OCI Image Registry] + + forgejoActions -- runs workflows --> forgejoRunner + forgejogit -- triggers on push --> forgejoRunner + forgejoRunner -- pushes new image --> imageregistry + forgejoRunner -- pushes new appspec --> forgejogit +``` + +This diagram shows the main components that connect to `forgejo-runner`: +- `Forgejo Actions` triggers workflows to be run by the runner. +- `ForgejoGit` triggers the runner on push events. +- The runner interacts with the image registry and git as part of CI/CD flows. diff --git a/resources/likec4/views/deployment/otc/foundry-and-edp.c4 b/resources/likec4/views/deployment/otc/foundry-and-edp.c4 new file mode 100644 index 0000000..ee0794d --- /dev/null +++ b/resources/likec4/views/deployment/otc/foundry-and-edp.c4 @@ -0,0 +1,53 @@ +views { + + deployment view forgejo-as-a-service { + title 'Forgejo as a Service' + + include + + otc-edpFoundry.*, + otc-edpFoundry.internalServices, + otc-edpFoundry.internalServices.*, + otc-edpFoundry.centralObservability, + otc-edpFoundry.centralObservability.*, + otc-edpFoundry.workflowSetupEDPInfrastructure, + otc-edpFoundry.workflowSetupEDPInfrastructure.*, + otc-edpFoundry.workflowSetupArgoCDInfrastructure, + otc-edpFoundry.workflowSetupArgoCDInfrastructure.*, + otc-edpFoundry.forgejoRunnerInfrastructure, + otc-edpFoundry.forgejoRunnerInfrastructure.*, + + otc-edp-per-tenant, + otc-edp-per-tenant.*, + otc-edp-per-tenant.cce, + otc-edp-per-tenant.cce.*, + otc-edp-per-tenant.cce.**, + otc-edp-per-tenant.cce.externalSecrets, + otc-edp-per-tenant.forgejoRunnerInfrastructure, + otc-edp-per-tenant.forgejoRunnerInfrastructure.*, + otc-edp-per-tenant.cloudServices, + otc-edp-per-tenant.cloudServices.* + style otc-edp-per-tenant { + color slate + } + style otc-edpFoundry { + color slate + } + style otc-edpFoundry.workflowSetupEDPInfrastructure { + color amber + } + style otc-edpFoundry.workflowSetupArgoCDInfrastructure { + color amber + } + style otc-edpFoundry.forgejoRunnerInfrastructure { + color green + } + style otc-edp-per-tenant.cce { + color red + } + style otc-edpFoundry.cce { + color red + } + } +} + diff --git a/resources/likec4/views/deployment/otc/foundry.c4 b/resources/likec4/views/deployment/otc/foundry.c4 new file mode 100644 index 0000000..b07546c --- /dev/null +++ b/resources/likec4/views/deployment/otc/foundry.c4 @@ -0,0 +1,37 @@ +views { + deployment view edp-foundry-central-service { + title 'EDP Foundry Central Service' + + include + otc-edpFoundry, + otc-edpFoundry.*, + otc-edpFoundry.internalServices, + otc-edpFoundry.internalServices.*, + otc-edpFoundry.centralObservability, + otc-edpFoundry.centralObservability.*, + otc-edpFoundry.workflowSetupEDPInfrastructure, + otc-edpFoundry.workflowSetupEDPInfrastructure.*, + otc-edpFoundry.workflowSetupArgoCDInfrastructure, + otc-edpFoundry.workflowSetupArgoCDInfrastructure.*, + otc-edpFoundry.workflowSetupArgoCDInfrastructure.*, + otc-edpFoundry.forgejoRunnerInfrastructure, + otc-edpFoundry.forgejoRunnerInfrastructure.* + + style otc-edpFoundry.forgejoRunnerInfrastructure { + color green + } + style otc-edpFoundry.workflowSetupEDPInfrastructure { + color amber + } + style otc-edpFoundry.workflowSetupArgoCDInfrastructure { + color amber + } + style otc-edpFoundry { + color slate + } + style otc-edpFoundry.cce { + color red + } + } +} + diff --git a/resources/likec4/views/deployment/otc/otc-faas.c4 b/resources/likec4/views/deployment/otc/otc-faas.c4 new file mode 100644 index 0000000..4ba87eb --- /dev/null +++ b/resources/likec4/views/deployment/otc/otc-faas.c4 @@ -0,0 +1,24 @@ +views { + deployment view otc-faas { + title 'OTC Prototype FaaS' + + include + otc-faas, + otc-faas.*, + otc-faas.dev, + otc-faas.dev.*, + otc-faas.dev.cce, + otc-faas.dev.cce.*, + otc-faas.prod, + otc-faas.prod.*, + otc-faas.prod.cce, + otc-faas.prod.cce.*, + style otc-edp-per-tenant { + color slate + } + style otc-edp-per-tenant.cce { + color red + } + } +} + diff --git a/resources/likec4/views/dynamic/cicd/gitops-inner-outer-loop.c4 b/resources/likec4/views/dynamic/cicd/gitops-inner-outer-loop.c4 new file mode 100644 index 0000000..d6f60f2 --- /dev/null +++ b/resources/likec4/views/dynamic/cicd/gitops-inner-outer-loop.c4 @@ -0,0 +1,26 @@ +views { + dynamic view view_gitops-inner-outer-loop_15 { + title 'outer-ci-loop' + + include localbox, edp + include edp.forgejo with { + color gray + title 'Forgejo' + } + + style edp._ { + color secondary + } + + localbox.git -> edp.forgejogit 'git push' + edp.forgejogit -> forgejoRunner 'on push' + + forgejoRunner -> edp.imageregistry 'pushes new image' + forgejoRunner -> edp.forgejogit 'pushes new appspec' + + edp.forgejogit -> edp.argoCD 'triggers deployment' + edp.argoCD -> cloud 'deploys application' + cloud -> edp.imageregistry 'pulls image' + } + +} \ No newline at end of file diff --git a/resources/likec4/views/edp/edfbuilder.c4 b/resources/likec4/views/edp/edfbuilder.c4 new file mode 100644 index 0000000..a74cb32 --- /dev/null +++ b/resources/likec4/views/edp/edfbuilder.c4 @@ -0,0 +1,8 @@ + +views { + view edpbuilderworkflow of edfbuilder { + description 'Describes the process how to create an EDP instance' + include edfbuilder.** + autoLayout LeftRight 120 110 + } +} \ No newline at end of file diff --git a/resources/likec4/views/edp/edp-as-idp.c4 b/resources/likec4/views/edp/edp-as-idp.c4 new file mode 100644 index 0000000..684368d --- /dev/null +++ b/resources/likec4/views/edp/edp-as-idp.c4 @@ -0,0 +1,44 @@ +views { + /** + * @likec4-generated(v1) + * iKRoYXNo2ShjOTFkNTk3Y2QyNjFmM2Y1ZjdhOGVjNDAyOTFjM2FiODI4NTg3NTc5qmF1dG9MYXlvdXSBqWRpcmVjdGlvbqJUQqF40fzwoXnR/iqld2lkdGjNGkWmaGVpZ2h0zQjmpW5vZGVz3gAWqWRldmVsb3BlcoKhYpTR/PDR/tPNAgjNASKhY8KkQGdyMYKhYpQd0f4uzQlszQjioWPDpEBncjKCoWKURdH+Zc0JHM0DhaFjw6RAZ3I1gqFilHLNAhbNCNvNAYehY8OkQGdyNoKhYpR3zQO+zQjUzQGJoWPDpEBncjeCoWKUdM0FYc0I2s0Bh6Fjw6RAZ3IzgqFilG7R/pzNCMfNAYWhY8OkQGdyNIKhYpRtNs0IzM0BjKFjw7FlZHAuZm9yZ2Vqb1J1bm5lcoKhYpTMmM0CTM0CCM0BIqFjwrFlZHAuaW1hZ2VyZWdpc3RyeYKhYpTNA8XNAlPNAgrNASKhY8KqZWRwLmFyZ29D + * RIKhYpTNBx3NAlDNAgjNASKhY8KuZWRwLm1vbml0b3JpbmeCoWKUzQcbzQP9zQIIzQEioWPCq2VkcC5ncmFmYW5hgqFilMydzQP1zQIIzQEioWPCrGVkcC5rZXljbG9ha4KhYpTMnM0Fns0CCM0BIqFjwqtlZHAua3l2ZXJub4KhYpTNBPPNBZnNAgjNASKhY8KzZWRwLmV4dGVybmFsU2VjcmV0c4KhYpTNBx7NBZjNAgjNASKhY8KrZWRwLm9wZW5iYW+CoWKUzQLHzQWdzQIIzQEioWPCsGVkcC51aS5iYWNrc3RhZ2WCoWKUzJbR/tPNAgjNASKhY8KnZWRwLmFwaYKhYpTNBwTR/tfNAgjNASKhY8LZLGFwcGxpY2F0aW9uc3BlY2lmaWNhdGlvbi5hcHBsaWNhdGlvbl9naXRyZXBvgqFilM0DvnfNAgjNASKhY8LZMGFwcGxpY2F0aW9uc3BlY2lmaWNhdGlvbi5hcHBsaWNh + * dGlvbnNwZWNfZ2l0cmVwb4KhYpTNBwl3zQIIzQEioWPCrmVkcC5mb3JnZWpvZ2l0gqFilMyVbc0CCM0BIqFjwqVlZGdlc4anMXc5Y3BiMoOiY3CRgqF4y8BheZmZmZmaoXnR/2ShbISheNDHoXnR/2Sld2lkdGjMoaZoZWlnaHQSoXCaks0XAs0BfJLNFaPNAbOSzRMdzQIRks0Q8s0CNJLNENHNAjeSzQfUzQIzks0Htc0CPJLNB4vNAkmSzQdgzQJdks0HOs0CdacxeTNsY3lqg6JjcJGCoXjNBI2hedH+KqFshKF4zQMHoXnR/kald2lkdGg8pmhlaWdodBKhcJqSzRcCzQGNks0WAc0BxZLNFGzNAhSSzRMIzQI0ks0S6c0CN5LNCm/NAjSSzQpRzQI8ks0KIs0CSZLNCfTNAl6SzQnIzQJ1pzFhZ3ZlbjmDomNwkYKheMvAYa6Y5gyf6qF5y0BTTMzMzMzNoWyEoXjQt6F5Z6V3 + * aWR0aDSmaGVpZ2h0EqFwmpLNFwLNAXGSzRU+zQGlks0Res0CDpLNDknNAjSSzQ4pzQI2ks0FUs0CM5LNBTPNAjySzQUJzQJJks0E380CXZLNBLnNAnSnMW52MHc0MYOiY3CRgqF40f9BoXnNAQ+hbISheMzNoXnNAbeld2lkdGjMl6ZoZWlnaHQSoXCaks0XAs0BtpLNFnjNAeeSzRXJzQIcks0VKM0CNJLNFP/NAjuSzQ97zQIwks0PU80CPJLNDynNAkmSzQ7/zQJdks0O2M0CdKYzbnhycTeDomNwkYKhePWhec0DmKFshKF40f8roXnNAimld2lkdGg6pmhlaWdodBKhcJqSzRcCzQGfks0WQM0B1ZLNFS7NAhiSzRQ5zQI0ks0UBc0CO5LNDQPNAi2SzQzRzQI8ks0Mp80CSZLNDH3NAl2SzQxXzQJ0pmJmZ2FwcYOiY3CRgqF40LWhec0FEKFshKF40f7voXnNAxWld2lkdGhX + * pmhlaWdodBKhcJSSzRc1zQHhks0W8c0CEJLNFqXNAkWSzRZgzQJ0 + */ + view idp of edp { + title 'EDP as IDP' + + global style text_large + + include developer + exclude element.tag = #internal + + style * { + opacity 25% + } + group 'EDP' { + group 'Developer Control Plane' { + group 'Frontend' { + include backstage, api + } + group 'Version Control' { + include applicationspecification.application_gitrepo, applicationspecification.applicationspec_gitrepo + include forgejogit + } + } + group 'Integration & Delivery Plane' { + include forgejoRunner, imageregistry, argoCD + exclude -> argoCD -> + } + group 'Monitoring Plane' { + include monitoring, grafana + } + group 'Security Plane' { + include keycloak, kyverno, externalSecrets, openbao + } + } + autoLayout TopBottom + } +} \ No newline at end of file diff --git a/resources/likec4/views/edp/edp-as-orchestrator.c4 b/resources/likec4/views/edp/edp-as-orchestrator.c4 new file mode 100644 index 0000000..b149d38 --- /dev/null +++ b/resources/likec4/views/edp/edp-as-orchestrator.c4 @@ -0,0 +1,42 @@ +views { + + + + /** + * @likec4-generated(v1) + * iKRoYXNo2ShiMmZlZGEwNzE3MDU5ZjQ0Nzg2YzFhYjJiNTI0NmRjZmRlOWNhYjdlqmF1dG9MYXlvdXSBqWRpcmVjdGlvbqJUQqF40f8UoXkOpXdpZHRozQU6pmhlaWdodM0D7aVub2Rlc4ikQGdyMYKhYpTR/xQOzQU6zQPtoWPDpEBncjKCoWKUMEXNAUDMtKFjw6RAZ3IzgqFilM0B3kXNAUDMtKFjw6RAZ3I0gqFilDDNAXHNAUDMtKFjw6RAZ3I1gqFilM0B3s0Bcc0BQMy0oWPDpEBncjaCoWKU0f88zQJSzQTqzQGBoWPDqmVkcC5hcmdvQ0SCoWKU0f9kzQKJzQIIzQEioWPCrmVkcC5jcm9zc3BsYW5lgqFilM0B+M0Cis0CCM0BIqFjwqVlZGdlc4A= + */ + view edporchestrator of edp { + title 'EDP as Orchestrator' + + global style text_large + + exclude element.tag = #internal + + style * { + opacity 25% + } + group 'EDP' { + group 'Developer Control Plane' { + + } + group 'Integration & Delivery Plane' { + + } + group 'Monitoring Plane' { + + } + group 'Security Plane' { + + } + group 'Backend' { + include argoCD with { + description 'Declarative management of platform tools' + } + include crossplane + + } + } + autoLayout TopBottom + } +} \ No newline at end of file diff --git a/resources/likec4/views/edp/edp.c4 b/resources/likec4/views/edp/edp.c4 new file mode 100644 index 0000000..490e553 --- /dev/null +++ b/resources/likec4/views/edp/edp.c4 @@ -0,0 +1,86 @@ +views { + + view edp of edp { + title 'Context view' + include * + exclude ingressNginx -> + exclude element.tag = #internal + + style * { + opacity 25% + } + } + + view keycloak of edp.keycloak { + include + *, + edp.ingressNginx -> + } + + view forgejo of edp.forgejo { + include + *, + edp.ingressNginx -> + } + + view crossplane of edp.crossplane { + include + *, + edp.ingressNginx -> + } + + view externalSecrets of edp.externalSecrets { + include + *, + edp.ingressNginx -> + } + + view velero of edp.velero { + include + *, + edp.ingressNginx -> + } + + view minio of edp.minio { + include + *, + edp.ingressNginx -> + } + + view monitoring of edp.monitoring { + include + *, + edp.ingressNginx -> + loki.* + } + + view ingressNginx of edp.ingressNginx { + include * + } + + view testapp of edp.testApp { + include + *, + edp.ingressNginx -> + } + + view mailhog of edp.mailhog { + include + *, + edp.ingressNginx -> + } + + view spark of edp.spark { + include + *, + edp.ingressNginx -> + } + + view argoCD of edp.argoCD { + include + *, + edp.ingressNginx -> + } +} + + diff --git a/resources/likec4/views/high-level-concept/application-transition.c4 b/resources/likec4/views/high-level-concept/application-transition.c4 new file mode 100644 index 0000000..cf86039 --- /dev/null +++ b/resources/likec4/views/high-level-concept/application-transition.c4 @@ -0,0 +1,35 @@ +views { + + // the application meta-definition travels through all deploying components + view application-transition { + title 'application-transistion' + // autoLayout LeftRight 100 100 + + // include * + exclude developer, localbox, edp, otherProductLifecycleRoles + exclude element.kind = workflow + include cloud, cloud.application + + group 'developer-scope' { + color green + opacity 20% + border none + include developer + include otherProductLifecycleRoles + + group 'Devops inner-loop' { + color gray + opacity 30% + border none + + include localbox, localbox.application + } + group 'Devops outer-loop' { + color gray + opacity 30% + border none + include edp, edp.application + } + } + } +} \ No newline at end of file diff --git a/resources/likec4/views/high-level-concept/platform-context/developer-landscape-with-foundry.c4 b/resources/likec4/views/high-level-concept/platform-context/developer-landscape-with-foundry.c4 new file mode 100644 index 0000000..606c91c --- /dev/null +++ b/resources/likec4/views/high-level-concept/platform-context/developer-landscape-with-foundry.c4 @@ -0,0 +1,41 @@ + +global { + style text_large * { + size xlarge + } +} +views { + + view developer-landscape-with-foundry { + title 'Developer Landscape View (with Foundry)' + autoLayout LeftRight 100 100 + + global style text_large + + include * + exclude developer, localbox, edp, otherProductLifecycleRoles + exclude element.kind = workflow + + group 'developer-scope' { + color green + opacity 20% + border none + include developer + include otherProductLifecycleRoles + + group 'Devops inner-loop' { + color gray + opacity 30% + border none + + include localbox + } + group 'Devops outer-loop' { + color gray + opacity 30% + border none + include edp + } + } + } +} \ No newline at end of file diff --git a/resources/likec4/views/high-level-concept/platform-context/developer-landscape.c4 b/resources/likec4/views/high-level-concept/platform-context/developer-landscape.c4 new file mode 100644 index 0000000..d88a9cb --- /dev/null +++ b/resources/likec4/views/high-level-concept/platform-context/developer-landscape.c4 @@ -0,0 +1,33 @@ +views { + + view landscape { + title 'Developer Landscape View' + autoLayout LeftRight 100 100 + + include * + exclude developer, localbox, edp, otherProductLifecycleRoles + exclude element.kind = workflow + + group 'developer-scope' { + color green + opacity 20% + border none + include developer + include otherProductLifecycleRoles + + group 'Devops inner-loop' { + color gray + opacity 30% + border none + + include localbox + } + group 'Devops outer-loop' { + color gray + opacity 30% + border none + include edp + } + } + } +} \ No newline at end of file diff --git a/scripts/get-versions.sh b/scripts/get-versions.sh new file mode 100755 index 0000000..cc90f56 --- /dev/null +++ b/scripts/get-versions.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# Load versions from .env.versions for Docker build +# Usage: source scripts/get-versions.sh + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +VERSIONS_FILE="${SCRIPT_DIR}/../.env.versions" + +if [ ! -f "$VERSIONS_FILE" ]; then + echo "Error: .env.versions not found at $VERSIONS_FILE" + exit 1 +fi + +# Load versions +set -a +source "$VERSIONS_FILE" +set +a + +echo "Loaded versions from .env.versions:" +echo " NODE_VERSION=${NODE_VERSION}" +echo " GO_VERSION=${GO_VERSION}" +echo " HUGO_VERSION=${HUGO_VERSION}" +echo "" +echo "Build Docker image with:" +echo " docker build --network=host \\" +echo " --build-arg NODE_VERSION=${NODE_VERSION} \\" +echo " --build-arg GO_VERSION=${GO_VERSION} \\" +echo " --build-arg HUGO_VERSION=${HUGO_VERSION} \\" +echo " -t ipceicis-developerframework:latest ." diff --git a/static/css/likec4-styles.css b/static/css/likec4-styles.css new file mode 100644 index 0000000..0f90974 --- /dev/null +++ b/static/css/likec4-styles.css @@ -0,0 +1,70 @@ +/* LikeC4 Component Styles for Hugo/Docsy */ +likec4-view { + display: block; + width: 100%; + height: 100%; + border: none; +} + +.likec4-container { + width: 100%; + height: 600px; + border: 1px solid #ddd; + border-radius: 4px; + background: #f9f9f9; + position: relative; + overflow: hidden; + margin: 2rem 0; +} + +.likec4-loading { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: #666; + font-size: 14px; + font-family: system-ui, sans-serif; +} + +.likec4-loading::after { + content: ''; + display: inline-block; + width: 12px; + height: 12px; + margin-left: 8px; + border: 2px solid #dee2e6; + border-top: 2px solid #007bff; + border-radius: 50%; + animation: likec4-spin 1s linear infinite; +} + +@keyframes likec4-spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +.likec4-header { + background: #f8f9fa; + border-bottom: 1px solid #e9ecef; + padding: 8px 16px; + font-size: 12px; + color: #495057; + border-radius: 4px 4px 0 0; +} + +/* Dark mode support for Docsy */ +body[data-dark-mode] .likec4-container { + background: #1e1e1e; + border-color: #444; +} + +body[data-dark-mode] .likec4-header { + background: #2d2d2d; + border-bottom-color: #444; + color: #ccc; +} + +body[data-dark-mode] .likec4-loading { + color: #ccc; +} diff --git a/static/js/likec4-loader.js b/static/js/likec4-loader.js new file mode 100644 index 0000000..f165e99 --- /dev/null +++ b/static/js/likec4-loader.js @@ -0,0 +1,86 @@ +/* LikeC4 Webcomponent Loader for Hugo/Docsy */ +(function() { + 'use strict'; + + // Check if the component is already loaded + if (customElements.get('likec4-view')) { + console.log('LikeC4 component already loaded'); + return; + } + + // Function to dynamically import the ES6 module + function loadLikeC4Module() { + // Try different possible paths for the webcomponent + const possiblePaths = [ + // Absolute Hugo paths (most likely to work) + '/js/likec4-webcomponent.js', + // Relative paths from current page + '../js/likec4-webcomponent.js', + '../../js/likec4-webcomponent.js', + '../../../js/likec4-webcomponent.js', + // Fallback paths + './js/likec4-webcomponent.js', + 'js/likec4-webcomponent.js' + ]; + + let pathIndex = 0; + + function tryNextPath() { + if (pathIndex >= possiblePaths.length) { + console.error('All module paths failed'); + showErrorMessage('Failed to load interactive diagram module'); + return; + } + + const modulePath = possiblePaths[pathIndex]; + console.log(`Trying to load LikeC4 module from: ${modulePath}`); + + // Dynamic import with error handling + try { + const importFunction = new Function('specifier', 'return import(specifier)'); + importFunction(modulePath) + .then(function(module) { + console.log('LikeC4 webcomponent loaded successfully'); + // Hide any loading indicators + hideLoadingIndicators(); + }) + .catch(function(error) { + console.warn(`Failed to load from ${modulePath}:`, error.message); + pathIndex++; + tryNextPath(); + }); + } catch (error) { + console.warn(`Dynamic import failed for ${modulePath}:`, error.message); + pathIndex++; + tryNextPath(); + } + } + + tryNextPath(); + } + + function hideLoadingIndicators() { + const loadingElements = document.querySelectorAll('.likec4-loading, #likec4-loading'); + loadingElements.forEach(function(el) { + el.style.display = 'none'; + }); + } + + function showErrorMessage(message) { + const containers = document.querySelectorAll('.likec4-container'); + containers.forEach(function(container) { + const errorDiv = document.createElement('div'); + errorDiv.style.cssText = 'position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #dc3545; text-align: center; font-size: 14px; max-width: 300px;'; + errorDiv.textContent = message; + container.appendChild(errorDiv); + }); + hideLoadingIndicators(); + } + + // Check if DOM is ready + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', loadLikeC4Module); + } else { + loadLikeC4Module(); + } +})(); diff --git a/static/js/likec4-webcomponent.js b/static/js/likec4-webcomponent.js new file mode 100644 index 0000000..f8766cf --- /dev/null +++ b/static/js/likec4-webcomponent.js @@ -0,0 +1,760 @@ +var LikeC4Views=(function(F_){"use strict";/* prettier-ignore-start */ +/* eslint-disable */ + +/****************************************************************************** + * This file was generated + * DO NOT EDIT MANUALLY! + ******************************************************************************/ + + +function w1e(e,r){for(var n=0;no[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function vM(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var H_={exports:{}},h1={};/** +* @license React +* react-jsx-runtime.production.js +* +* Copyright (c) Meta Platforms, Inc. and affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var xM;function k1e(){if(xM)return h1;xM=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function n(o,a,i){var l=null;if(i!==void 0&&(l=""+i),a.key!==void 0&&(l=""+a.key),"key"in a){i={};for(var s in a)s!=="key"&&(i[s]=a[s])}else i=a;return a=i.ref,{$$typeof:e,type:o,key:l,ref:a!==void 0?a:null,props:i}}return h1.Fragment=r,h1.jsx=n,h1.jsxs=n,h1}var wM;function _1e(){return wM||(wM=1,H_.exports=k1e()),H_.exports}var y=_1e(),U_={exports:{}},jt={};/** +* @license React +* react.production.js +* +* Copyright (c) Meta Platforms, Inc. and affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var kM;function E1e(){if(kM)return jt;kM=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),i=Symbol.for("react.consumer"),l=Symbol.for("react.context"),s=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),p=Symbol.iterator;function f(F){return F===null||typeof F!="object"?null:(F=p&&F[p]||F["@@iterator"],typeof F=="function"?F:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,x={};function w(F,J,Q){this.props=F,this.context=J,this.refs=x,this.updater=Q||g}w.prototype.isReactComponent={},w.prototype.setState=function(F,J){if(typeof F!="object"&&typeof F!="function"&&F!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,F,J,"setState")},w.prototype.forceUpdate=function(F){this.updater.enqueueForceUpdate(this,F,"forceUpdate")};function k(){}k.prototype=w.prototype;function C(F,J,Q){this.props=F,this.context=J,this.refs=x,this.updater=Q||g}var _=C.prototype=new k;_.constructor=C,b(_,w.prototype),_.isPureReactComponent=!0;var T=Array.isArray,R={H:null,A:null,T:null,S:null,V:null},A=Object.prototype.hasOwnProperty;function D(F,J,Q,z,W,X){return Q=X.ref,{$$typeof:e,type:F,key:J,ref:Q!==void 0?Q:null,props:X}}function N(F,J){return D(F.type,J,void 0,void 0,void 0,F.props)}function P(F){return typeof F=="object"&&F!==null&&F.$$typeof===e}function O(F){var J={"=":"=0",":":"=2"};return"$"+F.replace(/[=:]/g,function(Q){return J[Q]})}var B=/\/+/g;function L(F,J){return typeof F=="object"&&F!==null&&F.key!=null?O(""+F.key):J.toString(36)}function Y(){}function M(F){switch(F.status){case"fulfilled":return F.value;case"rejected":throw F.reason;default:switch(typeof F.status=="string"?F.then(Y,Y):(F.status="pending",F.then(function(J){F.status==="pending"&&(F.status="fulfilled",F.value=J)},function(J){F.status==="pending"&&(F.status="rejected",F.reason=J)})),F.status){case"fulfilled":return F.value;case"rejected":throw F.reason}}throw F}function q(F,J,Q,z,W){var X=typeof F;(X==="undefined"||X==="boolean")&&(F=null);var Z=!1;if(F===null)Z=!0;else switch(X){case"bigint":case"string":case"number":Z=!0;break;case"object":switch(F.$$typeof){case e:case r:Z=!0;break;case d:return Z=F._init,q(Z(F._payload),J,Q,z,W)}}if(Z)return W=W(F),Z=z===""?"."+L(F,0):z,T(W)?(Q="",Z!=null&&(Q=Z.replace(B,"$&/")+"/"),q(W,J,Q,"",function(re){return re})):W!=null&&(P(W)&&(W=N(W,Q+(W.key==null||F&&F.key===W.key?"":(""+W.key).replace(B,"$&/")+"/")+Z)),J.push(W)),1;Z=0;var oe=z===""?".":z+":";if(T(F))for(var ee=0;ee"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(r){console.error(r)}}return e(),V_.exports=S1e(),V_.exports}var ji=CM();const TM=vM(ji);function C1e(e,r,n){let o=a=>e(a,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function ba(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return C1e(e,r,n);throw Error("Wrong number of arguments")}function _h(...e){return ba(T1e,e)}const T1e=(e,r)=>e.length>=r;function mt(e,r){if(typeof e>"u"||e==null){const n=typeof r=="function"?r():r;throw new Error(n??`Expected defined value, but received ${e}`)}return e}function nt(e,r){if(!e)throw new Error(r??"Invariant failed")}function Xa(e){throw new Error(`NonExhaustive value: ${e}`)}function cr(e,r,n){const o=typeof r=="symbol"?r:Symbol.for(r);return e.hasOwnProperty(o)||Object.defineProperty(e,o,{enumerable:!1,writable:!1,value:n()}),e[o]}const{min:R1e,max:A1e}=Math,yd=(e,r=0,n=1)=>R1e(A1e(r,e),n),Y_=e=>{e._clipped=!1,e._unclipped=e.slice(0);for(let r=0;r<=3;r++)r<3?((e[r]<0||e[r]>255)&&(e._clipped=!0),e[r]=yd(e[r],0,255)):r===3&&(e[r]=yd(e[r],0,1));return e},RM={};for(let e of["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"])RM[`[object ${e}]`]=e.toLowerCase();function Ft(e){return RM[Object.prototype.toString.call(e)]||"object"}const Pt=(e,r=null)=>e.length>=3?Array.prototype.slice.call(e):Ft(e[0])=="object"&&r?r.split("").filter(n=>e[0][n]!==void 0).map(n=>e[0][n]):e[0].slice(0),Eh=e=>{if(e.length<2)return null;const r=e.length-1;return Ft(e[r])=="string"?e[r].toLowerCase():null},{PI:Vv,min:AM,max:NM}=Math,Ka=e=>Math.round(e*100)/100,W_=e=>Math.round(e*100)/100,$s=Vv*2,G_=Vv/3,N1e=Vv/180,D1e=180/Vv;function DM(e){return[...e.slice(0,3).reverse(),...e.slice(3)]}const Ct={format:{},autodetect:[]};let je=class{constructor(...r){const n=this;if(Ft(r[0])==="object"&&r[0].constructor&&r[0].constructor===this.constructor)return r[0];let o=Eh(r),a=!1;if(!o){a=!0,Ct.sorted||(Ct.autodetect=Ct.autodetect.sort((i,l)=>l.p-i.p),Ct.sorted=!0);for(let i of Ct.autodetect)if(o=i.test(...r),o)break}if(Ct.format[o]){const i=Ct.format[o].apply(null,a?r:r.slice(0,-1));n._rgb=Y_(i)}else throw new Error("unknown format: "+r);n._rgb.length===3&&n._rgb.push(1)}toString(){return Ft(this.hex)=="function"?this.hex():`[${this._rgb.join(",")}]`}};const $1e="3.1.2",Tt=(...e)=>new je(...e);Tt.version=$1e;const Sh={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},P1e=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,O1e=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,$M=e=>{if(e.match(P1e)){(e.length===4||e.length===7)&&(e=e.substr(1)),e.length===3&&(e=e.split(""),e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]);const r=parseInt(e,16),n=r>>16,o=r>>8&255,a=r&255;return[n,o,a,1]}if(e.match(O1e)){(e.length===5||e.length===9)&&(e=e.substr(1)),e.length===4&&(e=e.split(""),e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]);const r=parseInt(e,16),n=r>>24&255,o=r>>16&255,a=r>>8&255,i=Math.round((r&255)/255*100)/100;return[n,o,a,i]}throw new Error(`unknown hex color: ${e}`)},{round:Yv}=Math,PM=(...e)=>{let[r,n,o,a]=Pt(e,"rgba"),i=Eh(e)||"auto";a===void 0&&(a=1),i==="auto"&&(i=a<1?"rgba":"rgb"),r=Yv(r),n=Yv(n),o=Yv(o);let s="000000"+(r<<16|n<<8|o).toString(16);s=s.substr(s.length-6);let c="0"+Yv(a*255).toString(16);switch(c=c.substr(c.length-2),i.toLowerCase()){case"rgba":return`#${s}${c}`;case"argb":return`#${c}${s}`;default:return`#${s}`}};je.prototype.name=function(){const e=PM(this._rgb,"rgb");for(let r of Object.keys(Sh))if(Sh[r]===e)return r.toLowerCase();return e},Ct.format.named=e=>{if(e=e.toLowerCase(),Sh[e])return $M(Sh[e]);throw new Error("unknown color name: "+e)},Ct.autodetect.push({p:5,test:(e,...r)=>{if(!r.length&&Ft(e)==="string"&&Sh[e.toLowerCase()])return"named"}}),je.prototype.alpha=function(e,r=!1){return e!==void 0&&Ft(e)==="number"?r?(this._rgb[3]=e,this):new je([this._rgb[0],this._rgb[1],this._rgb[2],e],"rgb"):this._rgb[3]},je.prototype.clipped=function(){return this._rgb._clipped||!1};const ql={Kn:18,labWhitePoint:"d65",Xn:.95047,Yn:1,Zn:1.08883,kE:216/24389,kKE:8,kK:24389/27,RefWhiteRGB:{X:.95047,Y:1,Z:1.08883},MtxRGB2XYZ:{m00:.4124564390896922,m01:.21267285140562253,m02:.0193338955823293,m10:.357576077643909,m11:.715152155287818,m12:.11919202588130297,m20:.18043748326639894,m21:.07217499330655958,m22:.9503040785363679},MtxXYZ2RGB:{m00:3.2404541621141045,m01:-.9692660305051868,m02:.055643430959114726,m10:-1.5371385127977166,m11:1.8760108454466942,m12:-.2040259135167538,m20:-.498531409556016,m21:.041556017530349834,m22:1.0572251882231791},As:.9414285350000001,Bs:1.040417467,Cs:1.089532651,MtxAdaptMa:{m00:.8951,m01:-.7502,m02:.0389,m10:.2664,m11:1.7135,m12:-.0685,m20:-.1614,m21:.0367,m22:1.0296},MtxAdaptMaI:{m00:.9869929054667123,m01:.43230526972339456,m02:-.008528664575177328,m10:-.14705425642099013,m11:.5183602715367776,m12:.04004282165408487,m20:.15996265166373125,m21:.0492912282128556,m22:.9684866957875502}},M1e=new Map([["a",[1.0985,.35585]],["b",[1.0985,.35585]],["c",[.98074,1.18232]],["d50",[.96422,.82521]],["d55",[.95682,.92149]],["d65",[.95047,1.08883]],["e",[1,1,1]],["f2",[.99186,.67393]],["f7",[.95041,1.08747]],["f11",[1.00962,.6435]],["icc",[.96422,.82521]]]);function Ps(e){const r=M1e.get(String(e).toLowerCase());if(!r)throw new Error("unknown Lab illuminant "+e);ql.labWhitePoint=e,ql.Xn=r[0],ql.Zn=r[1]}function f1(){return ql.labWhitePoint}const X_=(...e)=>{e=Pt(e,"lab");const[r,n,o]=e,[a,i,l]=I1e(r,n,o),[s,c,u]=OM(a,i,l);return[s,c,u,e.length>3?e[3]:1]},I1e=(e,r,n)=>{const{kE:o,kK:a,kKE:i,Xn:l,Yn:s,Zn:c}=ql,u=(e+16)/116,d=.002*r+u,p=u-.005*n,f=d*d*d,g=p*p*p,b=f>o?f:(116*d-16)/a,x=e>i?Math.pow((e+16)/116,3):e/a,w=g>o?g:(116*p-16)/a,k=b*l,C=x*s,_=w*c;return[k,C,_]},K_=e=>{const r=Math.sign(e);return e=Math.abs(e),(e<=.0031308?e*12.92:1.055*Math.pow(e,1/2.4)-.055)*r},OM=(e,r,n)=>{const{MtxAdaptMa:o,MtxAdaptMaI:a,MtxXYZ2RGB:i,RefWhiteRGB:l,Xn:s,Yn:c,Zn:u}=ql,d=s*o.m00+c*o.m10+u*o.m20,p=s*o.m01+c*o.m11+u*o.m21,f=s*o.m02+c*o.m12+u*o.m22,g=l.X*o.m00+l.Y*o.m10+l.Z*o.m20,b=l.X*o.m01+l.Y*o.m11+l.Z*o.m21,x=l.X*o.m02+l.Y*o.m12+l.Z*o.m22,w=(e*o.m00+r*o.m10+n*o.m20)*(g/d),k=(e*o.m01+r*o.m11+n*o.m21)*(b/p),C=(e*o.m02+r*o.m12+n*o.m22)*(x/f),_=w*a.m00+k*a.m10+C*a.m20,T=w*a.m01+k*a.m11+C*a.m21,R=w*a.m02+k*a.m12+C*a.m22,A=K_(_*i.m00+T*i.m10+R*i.m20),D=K_(_*i.m01+T*i.m11+R*i.m21),N=K_(_*i.m02+T*i.m12+R*i.m22);return[A*255,D*255,N*255]},Z_=(...e)=>{const[r,n,o,...a]=Pt(e,"rgb"),[i,l,s]=MM(r,n,o),[c,u,d]=L1e(i,l,s);return[c,u,d,...a.length>0&&a[0]<1?[a[0]]:[]]};function L1e(e,r,n){const{Xn:o,Yn:a,Zn:i,kE:l,kK:s}=ql,c=e/o,u=r/a,d=n/i,p=c>l?Math.pow(c,1/3):(s*c+16)/116,f=u>l?Math.pow(u,1/3):(s*u+16)/116,g=d>l?Math.pow(d,1/3):(s*d+16)/116;return[116*f-16,500*(p-f),200*(f-g)]}function Q_(e){const r=Math.sign(e);return e=Math.abs(e),(e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4))*r}const MM=(e,r,n)=>{e=Q_(e/255),r=Q_(r/255),n=Q_(n/255);const{MtxRGB2XYZ:o,MtxAdaptMa:a,MtxAdaptMaI:i,Xn:l,Yn:s,Zn:c,As:u,Bs:d,Cs:p}=ql;let f=e*o.m00+r*o.m10+n*o.m20,g=e*o.m01+r*o.m11+n*o.m21,b=e*o.m02+r*o.m12+n*o.m22;const x=l*a.m00+s*a.m10+c*a.m20,w=l*a.m01+s*a.m11+c*a.m21,k=l*a.m02+s*a.m12+c*a.m22;let C=f*a.m00+g*a.m10+b*a.m20,_=f*a.m01+g*a.m11+b*a.m21,T=f*a.m02+g*a.m12+b*a.m22;return C*=x/u,_*=w/d,T*=k/p,f=C*i.m00+_*i.m10+T*i.m20,g=C*i.m01+_*i.m11+T*i.m21,b=C*i.m02+_*i.m12+T*i.m22,[f,g,b]};je.prototype.lab=function(){return Z_(this._rgb)},Object.assign(Tt,{lab:(...e)=>new je(...e,"lab"),getLabWhitePoint:f1,setLabWhitePoint:Ps}),Ct.format.lab=X_,Ct.autodetect.push({p:2,test:(...e)=>{if(e=Pt(e,"lab"),Ft(e)==="array"&&e.length===3)return"lab"}}),je.prototype.darken=function(e=1){const r=this,n=r.lab();return n[0]-=ql.Kn*e,new je(n,"lab").alpha(r.alpha(),!0)},je.prototype.brighten=function(e=1){return this.darken(-e)},je.prototype.darker=je.prototype.darken,je.prototype.brighter=je.prototype.brighten,je.prototype.get=function(e){const[r,n]=e.split("."),o=this[r]();if(n){const a=r.indexOf(n)-(r.substr(0,2)==="ok"?2:0);if(a>-1)return o[a];throw new Error(`unknown channel ${n} in mode ${r}`)}else return o};const{pow:z1e}=Math,j1e=1e-7,B1e=20;je.prototype.luminance=function(e,r="rgb"){if(e!==void 0&&Ft(e)==="number"){if(e===0)return new je([0,0,0,this._rgb[3]],"rgb");if(e===1)return new je([255,255,255,this._rgb[3]],"rgb");let n=this.luminance(),o=B1e;const a=(l,s)=>{const c=l.interpolate(s,.5,r),u=c.luminance();return Math.abs(e-u)e?a(l,c):a(c,s)},i=(n>e?a(new je([0,0,0]),this):a(this,new je([255,255,255]))).rgb();return new je([...i,this._rgb[3]])}return F1e(...this._rgb.slice(0,3))};const F1e=(e,r,n)=>(e=J_(e),r=J_(r),n=J_(n),.2126*e+.7152*r+.0722*n),J_=e=>(e/=255,e<=.03928?e/12.92:z1e((e+.055)/1.055,2.4)),Eo={},Ch=(e,r,n=.5,...o)=>{let a=o[0]||"lrgb";if(!Eo[a]&&!o.length&&(a=Object.keys(Eo)[0]),!Eo[a])throw new Error(`interpolation mode ${a} is not defined`);return Ft(e)!=="object"&&(e=new je(e)),Ft(r)!=="object"&&(r=new je(r)),Eo[a](e,r,n).alpha(e.alpha()+n*(r.alpha()-e.alpha()))};je.prototype.mix=je.prototype.interpolate=function(e,r=.5,...n){return Ch(this,e,r,...n)},je.prototype.premultiply=function(e=!1){const r=this._rgb,n=r[3];return e?(this._rgb=[r[0]*n,r[1]*n,r[2]*n,n],this):new je([r[0]*n,r[1]*n,r[2]*n,n],"rgb")};const{sin:H1e,cos:U1e}=Math,IM=(...e)=>{let[r,n,o]=Pt(e,"lch");return isNaN(o)&&(o=0),o=o*N1e,[r,U1e(o)*n,H1e(o)*n]},e6=(...e)=>{e=Pt(e,"lch");const[r,n,o]=e,[a,i,l]=IM(r,n,o),[s,c,u]=X_(a,i,l);return[s,c,u,e.length>3?e[3]:1]},q1e=(...e)=>{const r=DM(Pt(e,"hcl"));return e6(...r)},{sqrt:V1e,atan2:Y1e,round:W1e}=Math,LM=(...e)=>{const[r,n,o]=Pt(e,"lab"),a=V1e(n*n+o*o);let i=(Y1e(o,n)*D1e+360)%360;return W1e(a*1e4)===0&&(i=Number.NaN),[r,a,i]},t6=(...e)=>{const[r,n,o,...a]=Pt(e,"rgb"),[i,l,s]=Z_(r,n,o),[c,u,d]=LM(i,l,s);return[c,u,d,...a.length>0&&a[0]<1?[a[0]]:[]]};je.prototype.lch=function(){return t6(this._rgb)},je.prototype.hcl=function(){return DM(t6(this._rgb))},Object.assign(Tt,{lch:(...e)=>new je(...e,"lch"),hcl:(...e)=>new je(...e,"hcl")}),Ct.format.lch=e6,Ct.format.hcl=q1e,["lch","hcl"].forEach(e=>Ct.autodetect.push({p:2,test:(...r)=>{if(r=Pt(r,e),Ft(r)==="array"&&r.length===3)return e}})),je.prototype.saturate=function(e=1){const r=this,n=r.lch();return n[1]+=ql.Kn*e,n[1]<0&&(n[1]=0),new je(n,"lch").alpha(r.alpha(),!0)},je.prototype.desaturate=function(e=1){return this.saturate(-e)},je.prototype.set=function(e,r,n=!1){const[o,a]=e.split("."),i=this[o]();if(a){const l=o.indexOf(a)-(o.substr(0,2)==="ok"?2:0);if(l>-1){if(Ft(r)=="string")switch(r.charAt(0)){case"+":i[l]+=+r;break;case"-":i[l]+=+r;break;case"*":i[l]*=+r.substr(1);break;case"/":i[l]/=+r.substr(1);break;default:i[l]=+r}else if(Ft(r)==="number")i[l]=r;else throw new Error("unsupported value for Color.set");const s=new je(i,o);return n?(this._rgb=s._rgb,this):s}throw new Error(`unknown channel ${a} in mode ${o}`)}else return i},je.prototype.tint=function(e=.5,...r){return Ch(this,"white",e,...r)},je.prototype.shade=function(e=.5,...r){return Ch(this,"black",e,...r)};const G1e=(e,r,n)=>{const o=e._rgb,a=r._rgb;return new je(o[0]+n*(a[0]-o[0]),o[1]+n*(a[1]-o[1]),o[2]+n*(a[2]-o[2]),"rgb")};Eo.rgb=G1e;const{sqrt:r6,pow:Th}=Math,X1e=(e,r,n)=>{const[o,a,i]=e._rgb,[l,s,c]=r._rgb;return new je(r6(Th(o,2)*(1-n)+Th(l,2)*n),r6(Th(a,2)*(1-n)+Th(s,2)*n),r6(Th(i,2)*(1-n)+Th(c,2)*n),"rgb")};Eo.lrgb=X1e;const K1e=(e,r,n)=>{const o=e.lab(),a=r.lab();return new je(o[0]+n*(a[0]-o[0]),o[1]+n*(a[1]-o[1]),o[2]+n*(a[2]-o[2]),"lab")};Eo.lab=K1e;const Rh=(e,r,n,o)=>{let a,i;o==="hsl"?(a=e.hsl(),i=r.hsl()):o==="hsv"?(a=e.hsv(),i=r.hsv()):o==="hcg"?(a=e.hcg(),i=r.hcg()):o==="hsi"?(a=e.hsi(),i=r.hsi()):o==="lch"||o==="hcl"?(o="hcl",a=e.hcl(),i=r.hcl()):o==="oklch"&&(a=e.oklch().reverse(),i=r.oklch().reverse());let l,s,c,u,d,p;(o.substr(0,1)==="h"||o==="oklch")&&([l,c,d]=a,[s,u,p]=i);let f,g,b,x;return!isNaN(l)&&!isNaN(s)?(s>l&&s-l>180?x=s-(l+360):s180?x=s+360-l:x=s-l,g=l+n*x):isNaN(l)?isNaN(s)?g=Number.NaN:(g=s,(d==1||d==0)&&o!="hsv"&&(f=u)):(g=l,(p==1||p==0)&&o!="hsv"&&(f=c)),f===void 0&&(f=c+n*(u-c)),b=d+n*(p-d),o==="oklch"?new je([b,f,g],o):new je([g,f,b],o)},zM=(e,r,n)=>Rh(e,r,n,"lch");Eo.lch=zM,Eo.hcl=zM;const Z1e=e=>{if(Ft(e)=="number"&&e>=0&&e<=16777215){const r=e>>16,n=e>>8&255,o=e&255;return[r,n,o,1]}throw new Error("unknown num color: "+e)},Q1e=(...e)=>{const[r,n,o]=Pt(e,"rgb");return(r<<16)+(n<<8)+o};je.prototype.num=function(){return Q1e(this._rgb)},Object.assign(Tt,{num:(...e)=>new je(...e,"num")}),Ct.format.num=Z1e,Ct.autodetect.push({p:5,test:(...e)=>{if(e.length===1&&Ft(e[0])==="number"&&e[0]>=0&&e[0]<=16777215)return"num"}});const J1e=(e,r,n)=>{const o=e.num(),a=r.num();return new je(o+n*(a-o),"num")};Eo.num=J1e;const{floor:e0e}=Math,t0e=(...e)=>{e=Pt(e,"hcg");let[r,n,o]=e,a,i,l;o=o*255;const s=n*255;if(n===0)a=i=l=o;else{r===360&&(r=0),r>360&&(r-=360),r<0&&(r+=360),r/=60;const c=e0e(r),u=r-c,d=o*(1-n),p=d+s*(1-u),f=d+s*u,g=d+s;switch(c){case 0:[a,i,l]=[g,f,d];break;case 1:[a,i,l]=[p,g,d];break;case 2:[a,i,l]=[d,g,f];break;case 3:[a,i,l]=[d,p,g];break;case 4:[a,i,l]=[f,d,g];break;case 5:[a,i,l]=[g,d,p];break}}return[a,i,l,e.length>3?e[3]:1]},r0e=(...e)=>{const[r,n,o]=Pt(e,"rgb"),a=AM(r,n,o),i=NM(r,n,o),l=i-a,s=l*100/255,c=a/(255-l)*100;let u;return l===0?u=Number.NaN:(r===i&&(u=(n-o)/l),n===i&&(u=2+(o-r)/l),o===i&&(u=4+(r-n)/l),u*=60,u<0&&(u+=360)),[u,s,c]};je.prototype.hcg=function(){return r0e(this._rgb)};const n0e=(...e)=>new je(...e,"hcg");Tt.hcg=n0e,Ct.format.hcg=t0e,Ct.autodetect.push({p:1,test:(...e)=>{if(e=Pt(e,"hcg"),Ft(e)==="array"&&e.length===3)return"hcg"}});const o0e=(e,r,n)=>Rh(e,r,n,"hcg");Eo.hcg=o0e;const{cos:Ah}=Math,a0e=(...e)=>{e=Pt(e,"hsi");let[r,n,o]=e,a,i,l;return isNaN(r)&&(r=0),isNaN(n)&&(n=0),r>360&&(r-=360),r<0&&(r+=360),r/=360,r<1/3?(l=(1-n)/3,a=(1+n*Ah($s*r)/Ah(G_-$s*r))/3,i=1-(l+a)):r<2/3?(r-=1/3,a=(1-n)/3,i=(1+n*Ah($s*r)/Ah(G_-$s*r))/3,l=1-(a+i)):(r-=2/3,i=(1-n)/3,l=(1+n*Ah($s*r)/Ah(G_-$s*r))/3,a=1-(i+l)),a=yd(o*a*3),i=yd(o*i*3),l=yd(o*l*3),[a*255,i*255,l*255,e.length>3?e[3]:1]},{min:i0e,sqrt:l0e,acos:s0e}=Math,c0e=(...e)=>{let[r,n,o]=Pt(e,"rgb");r/=255,n/=255,o/=255;let a;const i=i0e(r,n,o),l=(r+n+o)/3,s=l>0?1-i/l:0;return s===0?a=NaN:(a=(r-n+(r-o))/2,a/=l0e((r-n)*(r-n)+(r-o)*(n-o)),a=s0e(a),o>n&&(a=$s-a),a/=$s),[a*360,s,l]};je.prototype.hsi=function(){return c0e(this._rgb)};const u0e=(...e)=>new je(...e,"hsi");Tt.hsi=u0e,Ct.format.hsi=a0e,Ct.autodetect.push({p:2,test:(...e)=>{if(e=Pt(e,"hsi"),Ft(e)==="array"&&e.length===3)return"hsi"}});const d0e=(e,r,n)=>Rh(e,r,n,"hsi");Eo.hsi=d0e;const n6=(...e)=>{e=Pt(e,"hsl");const[r,n,o]=e;let a,i,l;if(n===0)a=i=l=o*255;else{const s=[0,0,0],c=[0,0,0],u=o<.5?o*(1+n):o+n-o*n,d=2*o-u,p=r/360;s[0]=p+1/3,s[1]=p,s[2]=p-1/3;for(let f=0;f<3;f++)s[f]<0&&(s[f]+=1),s[f]>1&&(s[f]-=1),6*s[f]<1?c[f]=d+(u-d)*6*s[f]:2*s[f]<1?c[f]=u:3*s[f]<2?c[f]=d+(u-d)*(2/3-s[f])*6:c[f]=d;[a,i,l]=[c[0]*255,c[1]*255,c[2]*255]}return e.length>3?[a,i,l,e[3]]:[a,i,l,1]},jM=(...e)=>{e=Pt(e,"rgba");let[r,n,o]=e;r/=255,n/=255,o/=255;const a=AM(r,n,o),i=NM(r,n,o),l=(i+a)/2;let s,c;return i===a?(s=0,c=Number.NaN):s=l<.5?(i-a)/(i+a):(i-a)/(2-i-a),r==i?c=(n-o)/(i-a):n==i?c=2+(o-r)/(i-a):o==i&&(c=4+(r-n)/(i-a)),c*=60,c<0&&(c+=360),e.length>3&&e[3]!==void 0?[c,s,l,e[3]]:[c,s,l]};je.prototype.hsl=function(){return jM(this._rgb)};const p0e=(...e)=>new je(...e,"hsl");Tt.hsl=p0e,Ct.format.hsl=n6,Ct.autodetect.push({p:2,test:(...e)=>{if(e=Pt(e,"hsl"),Ft(e)==="array"&&e.length===3)return"hsl"}});const h0e=(e,r,n)=>Rh(e,r,n,"hsl");Eo.hsl=h0e;const{floor:f0e}=Math,m0e=(...e)=>{e=Pt(e,"hsv");let[r,n,o]=e,a,i,l;if(o*=255,n===0)a=i=l=o;else{r===360&&(r=0),r>360&&(r-=360),r<0&&(r+=360),r/=60;const s=f0e(r),c=r-s,u=o*(1-n),d=o*(1-n*c),p=o*(1-n*(1-c));switch(s){case 0:[a,i,l]=[o,p,u];break;case 1:[a,i,l]=[d,o,u];break;case 2:[a,i,l]=[u,o,p];break;case 3:[a,i,l]=[u,d,o];break;case 4:[a,i,l]=[p,u,o];break;case 5:[a,i,l]=[o,u,d];break}}return[a,i,l,e.length>3?e[3]:1]},{min:g0e,max:y0e}=Math,b0e=(...e)=>{e=Pt(e,"rgb");let[r,n,o]=e;const a=g0e(r,n,o),i=y0e(r,n,o),l=i-a;let s,c,u;return u=i/255,i===0?(s=Number.NaN,c=0):(c=l/i,r===i&&(s=(n-o)/l),n===i&&(s=2+(o-r)/l),o===i&&(s=4+(r-n)/l),s*=60,s<0&&(s+=360)),[s,c,u]};je.prototype.hsv=function(){return b0e(this._rgb)};const v0e=(...e)=>new je(...e,"hsv");Tt.hsv=v0e,Ct.format.hsv=m0e,Ct.autodetect.push({p:2,test:(...e)=>{if(e=Pt(e,"hsv"),Ft(e)==="array"&&e.length===3)return"hsv"}});const x0e=(e,r,n)=>Rh(e,r,n,"hsv");Eo.hsv=x0e;function Wv(e,r){let n=e.length;Array.isArray(e[0])||(e=[e]),Array.isArray(r[0])||(r=r.map(l=>[l]));let o=r[0].length,a=r[0].map((l,s)=>r.map(c=>c[s])),i=e.map(l=>a.map(s=>Array.isArray(l)?l.reduce((c,u,d)=>c+u*(s[d]||0),0):s.reduce((c,u)=>c+u*l,0)));return n===1&&(i=i[0]),o===1?i.map(l=>l[0]):i}const o6=(...e)=>{e=Pt(e,"lab");const[r,n,o,...a]=e,[i,l,s]=w0e([r,n,o]),[c,u,d]=OM(i,l,s);return[c,u,d,...a.length>0&&a[0]<1?[a[0]]:[]]};function w0e(e){var r=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],n=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],o=Wv(n,e);return Wv(r,o.map(a=>a**3))}const a6=(...e)=>{const[r,n,o,...a]=Pt(e,"rgb"),i=MM(r,n,o);return[...k0e(i),...a.length>0&&a[0]<1?[a[0]]:[]]};function k0e(e){const r=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],n=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],o=Wv(r,e);return Wv(n,o.map(a=>Math.cbrt(a)))}je.prototype.oklab=function(){return a6(this._rgb)},Object.assign(Tt,{oklab:(...e)=>new je(...e,"oklab")}),Ct.format.oklab=o6,Ct.autodetect.push({p:2,test:(...e)=>{if(e=Pt(e,"oklab"),Ft(e)==="array"&&e.length===3)return"oklab"}});const _0e=(e,r,n)=>{const o=e.oklab(),a=r.oklab();return new je(o[0]+n*(a[0]-o[0]),o[1]+n*(a[1]-o[1]),o[2]+n*(a[2]-o[2]),"oklab")};Eo.oklab=_0e;const E0e=(e,r,n)=>Rh(e,r,n,"oklch");Eo.oklch=E0e;const{pow:i6,sqrt:l6,PI:s6,cos:BM,sin:FM,atan2:S0e}=Math,C0e=(e,r="lrgb",n=null)=>{const o=e.length;n||(n=Array.from(new Array(o)).map(()=>1));const a=o/n.reduce(function(p,f){return p+f});if(n.forEach((p,f)=>{n[f]*=a}),e=e.map(p=>new je(p)),r==="lrgb")return T0e(e,n);const i=e.shift(),l=i.get(r),s=[];let c=0,u=0;for(let p=0;p{const g=p.get(r);d+=p.alpha()*n[f+1];for(let b=0;b=360;)f-=360;l[p]=f}else l[p]=l[p]/s[p];return d/=o,new je(l,r).alpha(d>.99999?1:d,!0)},T0e=(e,r)=>{const n=e.length,o=[0,0,0,0];for(let a=0;a.9999999&&(o[3]=1),new je(Y_(o))},{pow:R0e}=Math;function Gv(e){let r="rgb",n=Tt("#ccc"),o=0,a=[0,1],i=[],l=[0,0],s=!1,c=[],u=!1,d=0,p=1,f=!1,g={},b=!0,x=1;const w=function(D){if(D=D||["#fff","#000"],D&&Ft(D)==="string"&&Tt.brewer&&Tt.brewer[D.toLowerCase()]&&(D=Tt.brewer[D.toLowerCase()]),Ft(D)==="array"){D.length===1&&(D=[D[0],D[0]]),D=D.slice(0);for(let N=0;N=s[P];)P++;return P-1}return 0};let C=D=>D,_=D=>D;const T=function(D,N){let P,O;if(N==null&&(N=!1),isNaN(D)||D===null)return n;N?O=D:s&&s.length>2?O=k(D)/(s.length-2):p!==d?O=(D-d)/(p-d):O=1,O=_(O),N||(O=C(O)),x!==1&&(O=R0e(O,x)),O=l[0]+O*(1-l[0]-l[1]),O=yd(O,0,1);const B=Math.floor(O*1e4);if(b&&g[B])P=g[B];else{if(Ft(c)==="array")for(let L=0;L=Y&&L===i.length-1){P=c[L];break}if(O>Y&&Og={};w(e);const A=function(D){const N=Tt(T(D));return u&&N[u]?N[u]():N};return A.classes=function(D){if(D!=null){if(Ft(D)==="array")s=D,a=[D[0],D[D.length-1]];else{const N=Tt.analyze(a);D===0?s=[N.min,N.max]:s=Tt.limits(N,"e",D)}return A}return s},A.domain=function(D){if(!arguments.length)return a;d=D[0],p=D[D.length-1],i=[];const N=c.length;if(D.length===N&&d!==p)for(let P of Array.from(D))i.push((P-d)/(p-d));else{for(let P=0;P2){const P=D.map((B,L)=>L/(D.length-1)),O=D.map(B=>(B-d)/(p-d));O.every((B,L)=>P[L]===B)||(_=B=>{if(B<=0||B>=1)return B;let L=0;for(;B>=O[L+1];)L++;const Y=(B-O[L])/(O[L+1]-O[L]);return P[L]+Y*(P[L+1]-P[L])})}}return a=[d,p],A},A.mode=function(D){return arguments.length?(r=D,R(),A):r},A.range=function(D,N){return w(D),A},A.out=function(D){return u=D,A},A.spread=function(D){return arguments.length?(o=D,A):o},A.correctLightness=function(D){return D==null&&(D=!0),f=D,R(),f?C=function(N){const P=T(0,!0).lab()[0],O=T(1,!0).lab()[0],B=P>O;let L=T(N,!0).lab()[0];const Y=P+(O-P)*N;let M=L-Y,q=0,I=1,U=20;for(;Math.abs(M)>.01&&U-- >0;)(function(){return B&&(M*=-1),M<0?(q=N,N+=(I-N)*.5):(I=N,N+=(q-N)*.5),L=T(N,!0).lab()[0],M=L-Y})();return N}:C=N=>N,A},A.padding=function(D){return D!=null?(Ft(D)==="number"&&(D=[D,D]),l=D,A):l},A.colors=function(D,N){arguments.length<2&&(N="hex");let P=[];if(arguments.length===0)P=c.slice(0);else if(D===1)P=[A(.5)];else if(D>1){const O=a[0],B=a[1]-O;P=A0e(0,D).map(L=>A(O+L/(D-1)*B))}else{e=[];let O=[];if(s&&s.length>2)for(let B=1,L=s.length,Y=1<=L;Y?BL;Y?B++:B--)O.push((s[B-1]+s[B])*.5);else O=a;P=O.map(B=>A(B))}return Tt[N]&&(P=P.map(O=>O[N]())),P},A.cache=function(D){return D!=null?(b=D,A):b},A.gamma=function(D){return D!=null?(x=D,A):x},A.nodata=function(D){return D!=null?(n=Tt(D),A):n},A}function A0e(e,r,n){let o=[],a=ei;a?l++:l--)o.push(l);return o}const N0e=function(e){let r=[1,1];for(let n=1;nnew je(i)),e.length===2)[n,o]=e.map(i=>i.lab()),r=function(i){const l=[0,1,2].map(s=>n[s]+i*(o[s]-n[s]));return new je(l,"lab")};else if(e.length===3)[n,o,a]=e.map(i=>i.lab()),r=function(i){const l=[0,1,2].map(s=>(1-i)*(1-i)*n[s]+2*(1-i)*i*o[s]+i*i*a[s]);return new je(l,"lab")};else if(e.length===4){let i;[n,o,a,i]=e.map(l=>l.lab()),r=function(l){const s=[0,1,2].map(c=>(1-l)*(1-l)*(1-l)*n[c]+3*(1-l)*(1-l)*l*o[c]+3*(1-l)*l*l*a[c]+l*l*l*i[c]);return new je(s,"lab")}}else if(e.length>=5){let i,l,s;i=e.map(c=>c.lab()),s=e.length-1,l=N0e(s),r=function(c){const u=1-c,d=[0,1,2].map(p=>i.reduce((f,g,b)=>f+l[b]*u**(s-b)*c**b*g[p],0));return new je(d,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return r},$0e=e=>{const r=D0e(e);return r.scale=()=>Gv(r),r},{round:HM}=Math;je.prototype.rgb=function(e=!0){return e===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(HM)},je.prototype.rgba=function(e=!0){return this._rgb.slice(0,4).map((r,n)=>n<3?e===!1?r:HM(r):r)},Object.assign(Tt,{rgb:(...e)=>new je(...e,"rgb")}),Ct.format.rgb=(...e)=>{const r=Pt(e,"rgba");return r[3]===void 0&&(r[3]=1),r},Ct.autodetect.push({p:3,test:(...e)=>{if(e=Pt(e,"rgba"),Ft(e)==="array"&&(e.length===3||e.length===4&&Ft(e[3])=="number"&&e[3]>=0&&e[3]<=1))return"rgb"}});const Bi=(e,r,n)=>{if(!Bi[n])throw new Error("unknown blend mode "+n);return Bi[n](e,r)},Hc=e=>(r,n)=>{const o=Tt(n).rgb(),a=Tt(r).rgb();return Tt.rgb(e(o,a))},Uc=e=>(r,n)=>{const o=[];return o[0]=e(r[0],n[0]),o[1]=e(r[1],n[1]),o[2]=e(r[2],n[2]),o},P0e=e=>e,O0e=(e,r)=>e*r/255,M0e=(e,r)=>e>r?r:e,I0e=(e,r)=>e>r?e:r,L0e=(e,r)=>255*(1-(1-e/255)*(1-r/255)),z0e=(e,r)=>r<128?2*e*r/255:255*(1-2*(1-e/255)*(1-r/255)),j0e=(e,r)=>255*(1-(1-r/255)/(e/255)),B0e=(e,r)=>e===255?255:(e=255*(r/255)/(1-e/255),e>255?255:e);Bi.normal=Hc(Uc(P0e)),Bi.multiply=Hc(Uc(O0e)),Bi.screen=Hc(Uc(L0e)),Bi.overlay=Hc(Uc(z0e)),Bi.darken=Hc(Uc(M0e)),Bi.lighten=Hc(Uc(I0e)),Bi.dodge=Hc(Uc(B0e)),Bi.burn=Hc(Uc(j0e));const{pow:F0e,sin:H0e,cos:U0e}=Math;function q0e(e=300,r=-1.5,n=1,o=1,a=[0,1]){let i=0,l;Ft(a)==="array"?l=a[1]-a[0]:(l=0,a=[a,a]);const s=function(c){const u=$s*((e+120)/360+r*c),d=F0e(a[0]+l*c,o),f=(i!==0?n[0]+c*i:n)*d*(1-d)/2,g=U0e(u),b=H0e(u),x=d+f*(-.14861*g+1.78277*b),w=d+f*(-.29227*g-.90649*b),k=d+f*(1.97294*g);return Tt(Y_([x*255,w*255,k*255,1]))};return s.start=function(c){return c==null?e:(e=c,s)},s.rotations=function(c){return c==null?r:(r=c,s)},s.gamma=function(c){return c==null?o:(o=c,s)},s.hue=function(c){return c==null?n:(n=c,Ft(n)==="array"?(i=n[1]-n[0],i===0&&(n=n[1])):i=0,s)},s.lightness=function(c){return c==null?a:(Ft(c)==="array"?(a=c,l=c[1]-c[0]):(a=[c,c],l=0),s)},s.scale=()=>Tt.scale(s),s.hue(n),s}const V0e="0123456789abcdef",{floor:Y0e,random:W0e}=Math,G0e=()=>{let e="#";for(let r=0;r<6;r++)e+=V0e.charAt(Y0e(W0e()*16));return new je(e,"hex")},{log:UM,pow:X0e,floor:K0e,abs:Z0e}=Math;function qM(e,r=null){const n={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return Ft(e)==="object"&&(e=Object.values(e)),e.forEach(o=>{r&&Ft(o)==="object"&&(o=o[r]),o!=null&&!isNaN(o)&&(n.values.push(o),n.sum+=o,on.max&&(n.max=o),n.count+=1)}),n.domain=[n.min,n.max],n.limits=(o,a)=>VM(n,o,a),n}function VM(e,r="equal",n=7){Ft(e)=="array"&&(e=qM(e));const{min:o,max:a}=e,i=e.values.sort((s,c)=>s-c);if(n===1)return[o,a];const l=[];if(r.substr(0,1)==="c"&&(l.push(o),l.push(a)),r.substr(0,1)==="e"){l.push(o);for(let s=1;s 0");const s=Math.LOG10E*UM(o),c=Math.LOG10E*UM(a);l.push(o);for(let u=1;u200&&(p=!1)}const b={};for(let w=0;ww-k),l.push(x[0]);for(let w=1;w{e=new je(e),r=new je(r);const n=e.luminance(),o=r.luminance();return n>o?(n+.05)/(o+.05):(o+.05)/(n+.05)};/** + * @license + * + * The APCA contrast prediction algorithm is based of the formulas published + * in the APCA-1.0.98G specification by Myndex. The specification is available at: + * https://raw.githubusercontent.com/Myndex/apca-w3/master/images/APCAw3_0.1.17_APCA0.0.98G.svg + * + * Note that the APCA implementation is still beta, so please update to + * future versions of chroma.js when they become available. + * + * You can read more about the APCA Readability Criterion at + * https://readtech.org/ARC/ + */const YM=.027,J0e=5e-4,eye=.1,WM=1.14,Xv=.022,GM=1.414,tye=(e,r)=>{e=new je(e),r=new je(r),e.alpha()<1&&(e=Ch(r,e,e.alpha(),"rgb"));const n=XM(...e.rgb()),o=XM(...r.rgb()),a=n>=Xv?n:n+Math.pow(Xv-n,GM),i=o>=Xv?o:o+Math.pow(Xv-o,GM),l=Math.pow(i,.56)-Math.pow(a,.57),s=Math.pow(i,.65)-Math.pow(a,.62),c=Math.abs(i-a)0?c-YM:c+YM)*100};function XM(e,r,n){return .2126729*Math.pow(e/255,2.4)+.7151522*Math.pow(r/255,2.4)+.072175*Math.pow(n/255,2.4)}const{sqrt:Os,pow:hn,min:rye,max:nye,atan2:KM,abs:ZM,cos:Kv,sin:QM,exp:oye,PI:JM}=Math;function aye(e,r,n=1,o=1,a=1){var i=function(z){return 360*z/(2*JM)},l=function(z){return 2*JM*z/360};e=new je(e),r=new je(r);const[s,c,u]=Array.from(e.lab()),[d,p,f]=Array.from(r.lab()),g=(s+d)/2,b=Os(hn(c,2)+hn(u,2)),x=Os(hn(p,2)+hn(f,2)),w=(b+x)/2,k=.5*(1-Os(hn(w,7)/(hn(w,7)+hn(25,7)))),C=c*(1+k),_=p*(1+k),T=Os(hn(C,2)+hn(u,2)),R=Os(hn(_,2)+hn(f,2)),A=(T+R)/2,D=i(KM(u,C)),N=i(KM(f,_)),P=D>=0?D:D+360,O=N>=0?N:N+360,B=ZM(P-O)>180?(P+O+360)/2:(P+O)/2,L=1-.17*Kv(l(B-30))+.24*Kv(l(2*B))+.32*Kv(l(3*B+6))-.2*Kv(l(4*B-63));let Y=O-P;Y=ZM(Y)<=180?Y:O<=P?Y+360:Y-360,Y=2*Os(T*R)*QM(l(Y)/2);const M=d-s,q=R-T,I=1+.015*hn(g-50,2)/Os(20+hn(g-50,2)),U=1+.045*A,V=1+.015*A*L,G=30*oye(-hn((B-275)/25,2)),J=-(2*Os(hn(A,7)/(hn(A,7)+hn(25,7))))*QM(2*l(G)),Q=Os(hn(M/(n*I),2)+hn(q/(o*U),2)+hn(Y/(a*V),2)+J*(q/(o*U))*(Y/(a*V)));return nye(0,rye(100,Q))}function iye(e,r,n="lab"){e=new je(e),r=new je(r);const o=e.get(n),a=r.get(n);let i=0;for(let l in o){const s=(o[l]||0)-(a[l]||0);i+=s*s}return Math.sqrt(i)}const lye=(...e)=>{try{return new je(...e),!0}catch{return!1}},sye={cool(){return Gv([Tt.hsl(180,1,.9),Tt.hsl(250,.7,.4)])},hot(){return Gv(["#000","#f00","#ff0","#fff"]).mode("rgb")}},c6={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},eI=Object.keys(c6),tI=new Map(eI.map(e=>[e.toLowerCase(),e])),cye=typeof Proxy=="function"?new Proxy(c6,{get(e,r){const n=r.toLowerCase();if(tI.has(n))return e[tI.get(n)]},getOwnPropertyNames(){return Object.getOwnPropertyNames(eI)}}):c6,uye=(...e)=>{e=Pt(e,"cmyk");const[r,n,o,a]=e,i=e.length>4?e[4]:1;return a===1?[0,0,0,i]:[r>=1?0:255*(1-r)*(1-a),n>=1?0:255*(1-n)*(1-a),o>=1?0:255*(1-o)*(1-a),i]},{max:rI}=Math,dye=(...e)=>{let[r,n,o]=Pt(e,"rgb");r=r/255,n=n/255,o=o/255;const a=1-rI(r,rI(n,o)),i=a<1?1/(1-a):0,l=(1-r-a)*i,s=(1-n-a)*i,c=(1-o-a)*i;return[l,s,c,a]};je.prototype.cmyk=function(){return dye(this._rgb)},Object.assign(Tt,{cmyk:(...e)=>new je(...e,"cmyk")}),Ct.format.cmyk=uye,Ct.autodetect.push({p:2,test:(...e)=>{if(e=Pt(e,"cmyk"),Ft(e)==="array"&&e.length===4)return"cmyk"}});const pye=(...e)=>{const r=Pt(e,"hsla");let n=Eh(e)||"lsa";return r[0]=Ka(r[0]||0)+"deg",r[1]=Ka(r[1]*100)+"%",r[2]=Ka(r[2]*100)+"%",n==="hsla"||r.length>3&&r[3]<1?(r[3]="/ "+(r.length>3?r[3]:1),n="hsla"):r.length=3,`${n.substr(0,3)}(${r.join(" ")})`},hye=(...e)=>{const r=Pt(e,"lab");let n=Eh(e)||"lab";return r[0]=Ka(r[0])+"%",r[1]=Ka(r[1]),r[2]=Ka(r[2]),n==="laba"||r.length>3&&r[3]<1?r[3]="/ "+(r.length>3?r[3]:1):r.length=3,`lab(${r.join(" ")})`},fye=(...e)=>{const r=Pt(e,"lch");let n=Eh(e)||"lab";return r[0]=Ka(r[0])+"%",r[1]=Ka(r[1]),r[2]=isNaN(r[2])?"none":Ka(r[2])+"deg",n==="lcha"||r.length>3&&r[3]<1?r[3]="/ "+(r.length>3?r[3]:1):r.length=3,`lch(${r.join(" ")})`},mye=(...e)=>{const r=Pt(e,"lab");return r[0]=Ka(r[0]*100)+"%",r[1]=W_(r[1]),r[2]=W_(r[2]),r.length>3&&r[3]<1?r[3]="/ "+(r.length>3?r[3]:1):r.length=3,`oklab(${r.join(" ")})`},nI=(...e)=>{const[r,n,o,...a]=Pt(e,"rgb"),[i,l,s]=a6(r,n,o),[c,u,d]=LM(i,l,s);return[c,u,d,...a.length>0&&a[0]<1?[a[0]]:[]]},gye=(...e)=>{const r=Pt(e,"lch");return r[0]=Ka(r[0]*100)+"%",r[1]=W_(r[1]),r[2]=isNaN(r[2])?"none":Ka(r[2])+"deg",r.length>3&&r[3]<1?r[3]="/ "+(r.length>3?r[3]:1):r.length=3,`oklch(${r.join(" ")})`},{round:u6}=Math,yye=(...e)=>{const r=Pt(e,"rgba");let n=Eh(e)||"rgb";if(n.substr(0,3)==="hsl")return pye(jM(r),n);if(n.substr(0,3)==="lab"){const o=f1();Ps("d50");const a=hye(Z_(r),n);return Ps(o),a}if(n.substr(0,3)==="lch"){const o=f1();Ps("d50");const a=fye(t6(r),n);return Ps(o),a}return n.substr(0,5)==="oklab"?mye(a6(r)):n.substr(0,5)==="oklch"?gye(nI(r)):(r[0]=u6(r[0]),r[1]=u6(r[1]),r[2]=u6(r[2]),(n==="rgba"||r.length>3&&r[3]<1)&&(r[3]="/ "+(r.length>3?r[3]:1),n="rgba"),`${n.substr(0,3)}(${r.slice(0,n==="rgb"?3:4).join(" ")})`)},oI=(...e)=>{e=Pt(e,"lch");const[r,n,o,...a]=e,[i,l,s]=IM(r,n,o),[c,u,d]=o6(i,l,s);return[c,u,d,...a.length>0&&a[0]<1?[a[0]]:[]]},Ms=/((?:-?\d+)|(?:-?\d+(?:\.\d+)?)%|none)/.source,Fi=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%?)|none)/.source,Zv=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%)|none)/.source,Za=/\s*/.source,Nh=/\s+/.source,d6=/\s*,\s*/.source,Qv=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)(?:deg)?)|none)/.source,Dh=/\s*(?:\/\s*((?:[01]|[01]?\.\d+)|\d+(?:\.\d+)?%))?/.source,aI=new RegExp("^rgba?\\("+Za+[Ms,Ms,Ms].join(Nh)+Dh+"\\)$"),iI=new RegExp("^rgb\\("+Za+[Ms,Ms,Ms].join(d6)+Za+"\\)$"),lI=new RegExp("^rgba\\("+Za+[Ms,Ms,Ms,Fi].join(d6)+Za+"\\)$"),sI=new RegExp("^hsla?\\("+Za+[Qv,Zv,Zv].join(Nh)+Dh+"\\)$"),cI=new RegExp("^hsl?\\("+Za+[Qv,Zv,Zv].join(d6)+Za+"\\)$"),uI=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,dI=new RegExp("^lab\\("+Za+[Fi,Fi,Fi].join(Nh)+Dh+"\\)$"),pI=new RegExp("^lch\\("+Za+[Fi,Fi,Qv].join(Nh)+Dh+"\\)$"),hI=new RegExp("^oklab\\("+Za+[Fi,Fi,Fi].join(Nh)+Dh+"\\)$"),fI=new RegExp("^oklch\\("+Za+[Fi,Fi,Qv].join(Nh)+Dh+"\\)$"),{round:mI}=Math,$h=e=>e.map((r,n)=>n<=2?yd(mI(r),0,255):r),fn=(e,r=0,n=100,o=!1)=>(typeof e=="string"&&e.endsWith("%")&&(e=parseFloat(e.substring(0,e.length-1))/100,o?e=r+(e+1)*.5*(n-r):e=r+e*(n-r)),+e),Bo=(e,r)=>e==="none"?r:e,p6=e=>{if(e=e.toLowerCase().trim(),e==="transparent")return[0,0,0,0];let r;if(Ct.format.named)try{return Ct.format.named(e)}catch{}if((r=e.match(aI))||(r=e.match(iI))){let n=r.slice(1,4);for(let a=0;a<3;a++)n[a]=+fn(Bo(n[a],0),0,255);n=$h(n);const o=r[4]!==void 0?+fn(r[4],0,1):1;return n[3]=o,n}if(r=e.match(lI)){const n=r.slice(1,5);for(let o=0;o<4;o++)n[o]=+fn(n[o],0,255);return n}if((r=e.match(sI))||(r=e.match(cI))){const n=r.slice(1,4);n[0]=+Bo(n[0].replace("deg",""),0),n[1]=+fn(Bo(n[1],0),0,100)*.01,n[2]=+fn(Bo(n[2],0),0,100)*.01;const o=$h(n6(n)),a=r[4]!==void 0?+fn(r[4],0,1):1;return o[3]=a,o}if(r=e.match(uI)){const n=r.slice(1,4);n[1]*=.01,n[2]*=.01;const o=n6(n);for(let a=0;a<3;a++)o[a]=mI(o[a]);return o[3]=+r[4],o}if(r=e.match(dI)){const n=r.slice(1,4);n[0]=fn(Bo(n[0],0),0,100),n[1]=fn(Bo(n[1],0),-125,125,!0),n[2]=fn(Bo(n[2],0),-125,125,!0);const o=f1();Ps("d50");const a=$h(X_(n));Ps(o);const i=r[4]!==void 0?+fn(r[4],0,1):1;return a[3]=i,a}if(r=e.match(pI)){const n=r.slice(1,4);n[0]=fn(n[0],0,100),n[1]=fn(Bo(n[1],0),0,150,!1),n[2]=+Bo(n[2].replace("deg",""),0);const o=f1();Ps("d50");const a=$h(e6(n));Ps(o);const i=r[4]!==void 0?+fn(r[4],0,1):1;return a[3]=i,a}if(r=e.match(hI)){const n=r.slice(1,4);n[0]=fn(Bo(n[0],0),0,1),n[1]=fn(Bo(n[1],0),-.4,.4,!0),n[2]=fn(Bo(n[2],0),-.4,.4,!0);const o=$h(o6(n)),a=r[4]!==void 0?+fn(r[4],0,1):1;return o[3]=a,o}if(r=e.match(fI)){const n=r.slice(1,4);n[0]=fn(Bo(n[0],0),0,1),n[1]=fn(Bo(n[1],0),0,.4,!1),n[2]=+Bo(n[2].replace("deg",""),0);const o=$h(oI(n)),a=r[4]!==void 0?+fn(r[4],0,1):1;return o[3]=a,o}};p6.test=e=>aI.test(e)||sI.test(e)||dI.test(e)||pI.test(e)||hI.test(e)||fI.test(e)||iI.test(e)||lI.test(e)||cI.test(e)||uI.test(e)||e==="transparent",je.prototype.css=function(e){return yye(this._rgb,e)};const bye=(...e)=>new je(...e,"css");Tt.css=bye,Ct.format.css=p6,Ct.autodetect.push({p:5,test:(e,...r)=>{if(!r.length&&Ft(e)==="string"&&p6.test(e))return"css"}}),Ct.format.gl=(...e)=>{const r=Pt(e,"rgba");return r[0]*=255,r[1]*=255,r[2]*=255,r};const vye=(...e)=>new je(...e,"gl");Tt.gl=vye,je.prototype.gl=function(){const e=this._rgb;return[e[0]/255,e[1]/255,e[2]/255,e[3]]},je.prototype.hex=function(e){return PM(this._rgb,e)};const xye=(...e)=>new je(...e,"hex");Tt.hex=xye,Ct.format.hex=$M,Ct.autodetect.push({p:4,test:(e,...r)=>{if(!r.length&&Ft(e)==="string"&&[3,4,5,6,7,8,9].indexOf(e.length)>=0)return"hex"}});const{log:Jv}=Math,gI=e=>{const r=e/100;let n,o,a;return r<66?(n=255,o=r<6?0:-155.25485562709179-.44596950469579133*(o=r-2)+104.49216199393888*Jv(o),a=r<20?0:-254.76935184120902+.8274096064007395*(a=r-10)+115.67994401066147*Jv(a)):(n=351.97690566805693+.114206453784165*(n=r-55)-40.25366309332127*Jv(n),o=325.4494125711974+.07943456536662342*(o=r-50)-28.0852963507957*Jv(o),a=255),[n,o,a,1]},{round:wye}=Math,kye=(...e)=>{const r=Pt(e,"rgb"),n=r[0],o=r[2];let a=1e3,i=4e4;const l=.4;let s;for(;i-a>l;){s=(i+a)*.5;const c=gI(s);c[2]/c[0]>=o/n?i=s:a=s}return wye(s)};je.prototype.temp=je.prototype.kelvin=je.prototype.temperature=function(){return kye(this._rgb)};const h6=(...e)=>new je(...e,"temp");Object.assign(Tt,{temp:h6,kelvin:h6,temperature:h6}),Ct.format.temp=Ct.format.kelvin=Ct.format.temperature=gI,je.prototype.oklch=function(){return nI(this._rgb)},Object.assign(Tt,{oklch:(...e)=>new je(...e,"oklch")}),Ct.format.oklch=oI,Ct.autodetect.push({p:2,test:(...e)=>{if(e=Pt(e,"oklch"),Ft(e)==="array"&&e.length===3)return"oklch"}}),Object.assign(Tt,{analyze:qM,average:C0e,bezier:$0e,blend:Bi,brewer:cye,Color:je,colors:Sh,contrast:Q0e,contrastAPCA:tye,cubehelix:q0e,deltaE:aye,distance:iye,input:Ct,interpolate:Ch,limits:VM,mix:Ch,random:G0e,scale:Gv,scales:sye,valid:lye});const f6=[.96,.907,.805,.697,.605,.547,.518,.445,.395,.34],yI=[.32,.16,.08,.04,0,0,.04,.08,.16,.32];function _ye(e){const r=e.get("hsl.l");return f6.reduce((n,o)=>Math.abs(o-r)i===n),a=f6.map(i=>r.set("hsl.l",i)).map(i=>Tt(i)).map((i,l)=>{const s=yI[l]-yI[o];return s>=0?i.saturate(s):i.desaturate(s*-1)});return a[o]=Tt(e),{baseColorIndex:o,colors:a}}function Sye(e){return Eye(e).colors.map(r=>r.hex())}function Cye(...e){return ba(Tye,e)}function Tye(e,r){let n={};for(let[o,a]of e.entries())n[a]=r(a,o,e);return n}function m6(...e){return ba(m1,e)}function m1(e,r){if(e===r||Object.is(e,r))return!0;if(typeof e!="object"||typeof r!="object"||e===null||r===null||Object.getPrototypeOf(e)!==Object.getPrototypeOf(r))return!1;if(Array.isArray(e))return Rye(e,r);if(e instanceof Map)return Aye(e,r);if(e instanceof Set)return Nye(e,r);if(e instanceof Date)return e.getTime()===r.getTime();if(e instanceof RegExp)return e.toString()===r.toString();if(Object.keys(e).length!==Object.keys(r).length)return!1;for(let[n,o]of Object.entries(e))if(!(n in r)||!m1(o,r[n]))return!1;return!0}function Rye(e,r){if(e.length!==r.length)return!1;for(let[n,o]of e.entries())if(!m1(o,r[n]))return!1;return!0}function Aye(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e.entries())if(!r.has(n)||!m1(o,r.get(n)))return!1;return!0}function Nye(e,r){if(e.size!==r.size)return!1;let n=[...r];for(let o of e){let a=!1;for(let[i,l]of n.entries())if(m1(o,l)){a=!0,n.splice(i,1);break}if(!a)return!1}return!0}const bI={fill:"#3b82f6",stroke:"#2563eb",hiContrast:"#eff6ff",loContrast:"#bfdbfe"},vI={fill:"#0284c7",stroke:"#0369a1",hiContrast:"#f0f9ff",loContrast:"#B6ECF7"},xI={fill:"#64748b",stroke:"#475569",hiContrast:"#f8fafc",loContrast:"#cbd5e1"},Dye={primary:bI,blue:bI,secondary:vI,sky:vI,muted:xI,slate:xI,gray:{fill:"#737373",stroke:"#525252",hiContrast:"#fafafa",loContrast:"#d4d4d4"},red:{fill:"#AC4D39",stroke:"#853A2D",hiContrast:"#FBD3CB",loContrast:"#f5b2a3"},green:{fill:"#428a4f",stroke:"#2d5d39",hiContrast:"#f8fafc",loContrast:"#c2f0c2"},amber:{fill:"#A35829",stroke:"#7E451D",hiContrast:"#FFE0C2",loContrast:"#f9b27c"},indigo:{fill:"#6366f1",stroke:"#4f46e5",hiContrast:"#eef2ff",loContrast:"#c7d2fe"}},$ye={line:"#6E6E6E",labelBg:"#18191b",label:"#C6C6C6"},wI={line:"#64748b",labelBg:"#0f172a",label:"#cbd5e1"},kI={line:"#3b82f6",labelBg:"#172554",label:"#60a5fa"},_I={line:"#0ea5e9",labelBg:"#082f49",label:"#38bdf8"},Pye={amber:{line:"#b45309",labelBg:"#78350f",label:"#FFE0C2"},blue:kI,gray:$ye,green:{line:"#15803d",labelBg:"#052e16",label:"#22c55e"},indigo:{line:"#6366f1",labelBg:"#1e1b4b",label:"#818cf8"},muted:wI,primary:kI,red:{line:"#AC4D39",labelBg:"#b91c1c",label:"#f5b2a3"},secondary:_I,sky:_I,slate:wI},EI=60,SI=2,CI=1;function Oye(e){nt(Tt.valid(e),`Invalid color: ${e}`);const r=Sye(e),n=r[6],o=Mye(n);return{elements:{fill:n,stroke:r[7],hiContrast:o[0],loContrast:o[1]},relationships:{line:r[4],label:r[3],labelBg:r[9]}}}function Mye(e){const r=Tt(e);let n=r.brighten(SI),o=r.darken(SI),a,i,l,s;do a=n,i=o,n=n.brighten(CI),o=o.darken(CI),l=Tt.contrastAPCA(r,n),s=Tt.contrastAPCA(r,o);while(Math.abs(l)Math.abs(s)?[n.brighten(.4).hex(),n.hex()]:[o.darken(.4).hex(),o.hex()]}const Iye=["rectangle","person","browser","mobile","cylinder","storage","queue"],Lye={colors:Cye(["amber","blue","gray","slate","green","indigo","muted","primary","red","secondary","sky"],e=>({elements:Dye[e],relationships:Pye[e]})),sizes:{xs:{width:180,height:100},sm:{width:240,height:135},md:{width:320,height:180},lg:{width:420,height:234},xl:{width:520,height:290}},spacing:{xs:8,sm:10,md:16,lg:24,xl:32},textSizes:{xs:13.33,sm:16,md:19.2,lg:23.04,xl:27.65}};function g6(e){if(e===null||typeof e!="object")return!1;const r=Object.getPrototypeOf(e);return r!==null&&r!==Object.prototype&&Object.getPrototypeOf(r)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function y6(e,r,n=".",o){if(!g6(r))return y6(e,{},n);const a=Object.assign({},r);for(const i in e){if(i==="__proto__"||i==="constructor")continue;const l=e[i];l!=null&&(Array.isArray(l)&&Array.isArray(a[i])?a[i]=[...l,...a[i]]:g6(l)&&g6(a[i])?a[i]=y6(l,a[i],(n?`${n}.`:"")+i.toString()):a[i]=l)}return a}function zye(e){return(...r)=>r.reduce((n,o)=>y6(n,o,""),{})}const jye=zye();function e3({size:e,padding:r,textSize:n,...o},a=b6.defaults.size){return e??=a,n??=e,r??=e,{...o,size:e,padding:r,textSize:n}}const b6={theme:Lye,defaults:{color:"primary",size:"md",opacity:15,shape:"rectangle",group:{opacity:15,border:"dashed"},relationship:{color:"gray",line:"dashed",arrow:"normal"}}};let TI=class bM{constructor(r){this.config=r,this.theme=r.theme,this.defaults=r.defaults}theme;defaults;static DEFAULT=new bM(b6);static from(...r){return _h(r,1)?new bM(jye(...r,b6)):this.DEFAULT}get elementColors(){return this.theme.colors[this.defaults.color].elements}get relationshipColors(){return this.theme.colors[this.defaults.relationship.color].relationships}get groupColors(){const r=this.defaults.group?.color;return r?cr(this,"defaultGroup",()=>({...this.elementColors,...this.theme.colors[r].elements})):this.elementColors}isDefaultColor(r){return r===this.defaults.color}colors(r){if(r??=this.defaults.color,this.isThemeColor(r))return this.theme.colors[r];throw new Error(`Unknown color: ${r}`)}fontSize(r){return r??=this.defaults.text??this.defaults.size,this.theme.textSizes[r]}padding(r){return r??=this.defaults.padding??this.defaults.size,this.theme.spacing[r]}isThemeColor(r){return r in this.theme.colors}nodeSizes(r){const n=e3(r,this.defaults.size);return{sizes:n,values:{sizes:this.theme.sizes[n.size],padding:this.padding(n.padding),textSize:this.fontSize(n.textSize)}}}computeFrom(r){if(this.isThemeColor(r))return this.theme.colors[r];if(!Tt.valid(r))throw new Error(`Invalid color value: "${r}"`);return cr(this,`compute-${r}`,()=>Oye(r))}equals(r){return r===this?!0:m6(this.config,r.config)}};function t3(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function qc(e){return typeof e=="string"}var v6={exports:{}},RI;function Bye(){if(RI)return v6.exports;RI=1;/* + * @version 1.4.0 + * @date 2015-10-26 + * @stability 3 - Stable + * @author Lauri Rooden (https://github.com/litejs/natural-compare-lite) + * @license MIT License + */var e=function(r,n){var o,a,i=1,l=0,s=0,c=String.alphabet;function u(d,p,f){if(f){for(o=p;f=u(d,o),f<76&&f>65;)++o;return+d.slice(p-1,o)}return f=c&&c.indexOf(d.charAt(p)),f>-1?f+76:(f=d.charCodeAt(p)||0,f<45||f>127?f:f<46?65:f<48?f-1:f<58?f+18:f<65?f-11:f<91?f+11:f<97?f-37:f<123?f+5:f-63)}if((r+="")!=(n+="")){for(;i;)if(a=u(r,l++),i=u(n,s++),a<76&&i<76&&a>66&&i>66&&(a=u(r,l,l),i=u(n,s,l=o),s=o),a!=i)return a{if(n===o)return 0;if(!n)return-1;if(!o)return 1;const a=n.split(e),i=o.split(e),l=Math.min(a.length,i.length);for(let c=0;c0?e.slice(0,r):null}function g1(e){const r=e.lastIndexOf(".");return r>0?e.slice(r+1):e}const y1=e=>x6(e)?e:e.id;function Un(e,r){const n=y1(e);return r?y1(r).startsWith(n+"."):o=>{const a=y1(o);return n.startsWith(a+".")}}function DI(e,r){if(!r)return a=>DI(e,a);const n=y1(e),o=y1(r);return n===o||o.startsWith(n+".")||n.startsWith(o+".")}function $I(e,r){return n=>Un(e,n)}function o3(e){return(x6(e)?e:e.id).split(".").length}function b1(e,r){const n=e.split(".");if(n.length<2)return null;const o=r.split(".");if(o.length<2)return null;let a=[];for(let i=0;ia===0?(n.push(o),n):(n.unshift(`${n[0]}.${o}`),n),[])}function Hye(e,r){let n=r;for(const o of e)Un(o,n)&&(n=o);return n!==r?n:null}function Vc(e){const r=[],n=[...e];let o;for(;o=n.shift();){let a;for(;a=Hye(n,o);)r.push(n.splice(n.indexOf(a),1)[0]);r.push(o)}return r}function PI(e,r){if(!e||x6(e)){const o=e??"asc";return a=>PI(a,o)}const n=r==="desc"?-1:1;return e.map(o=>({item:o,fqn:o.id.split(".")})).sort((o,a)=>{if(o.fqn.length!==a.fqn.length)return(o.fqn.length-a.fqn.length)*n;for(let i=0;io)}var a3={},OI;function Uye(){return OI||(OI=1,a3.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u",a3.SYMBOL_SUPPORT=typeof Symbol<"u"),a3}var w6,MI;function qye(){if(MI)return w6;MI=1;function e(r){if(typeof r!="function")throw new Error("obliterator/iterator: expecting a function!");this.next=r}return typeof Symbol<"u"&&(e.prototype[Symbol.iterator]=function(){return this}),e.of=function(){var r=arguments,n=r.length,o=0;return new e(function(){return o>=n?{done:!0}:{done:!1,value:r[o++]}})},e.empty=function(){var r=new e(function(){return{done:!0}});return r},e.fromSequence=function(r){var n=0,o=r.length;return new e(function(){return n>=o?{done:!0}:{done:!1,value:r[n++]}})},e.is=function(r){return r instanceof e?!0:typeof r=="object"&&r!==null&&typeof r.next=="function"},w6=e,w6}var k6,II;function Vye(){if(II)return k6;II=1;var e=Uye(),r=e.ARRAY_BUFFER_SUPPORT,n=e.SYMBOL_SUPPORT;return k6=function(a,i){var l,s,c,u,d;if(!a)throw new Error("obliterator/forEach: invalid iterable.");if(typeof i!="function")throw new Error("obliterator/forEach: expecting a callback.");if(Array.isArray(a)||r&&ArrayBuffer.isView(a)||typeof a=="string"||a.toString()==="[object Arguments]"){for(c=0,u=a.length;c=this.items.length&&(this.items=this.items.slice(this.offset),this.offset=0),this.size--,o}},n.prototype.peek=function(){if(this.size)return this.items[this.offset]},n.prototype.forEach=function(o,a){a=arguments.length>1?a:this;for(var i=this.offset,l=0,s=this.items.length;i=o.length)return{done:!0};var i=o[a];return a++,{value:i,done:!1}})},n.prototype.entries=function(){var o=this.items,a=this.offset,i=0;return new e(function(){if(a>=o.length)return{done:!0};var l=o[a];return a++,{value:[i++,l],done:!1}})},typeof Symbol<"u"&&(n.prototype[Symbol.iterator]=n.prototype.values),n.prototype.toString=function(){return this.toArray().join(",")},n.prototype.toJSON=function(){return this.toArray()},n.prototype.inspect=function(){var o=this.toArray();return Object.defineProperty(o,"constructor",{value:n,enumerable:!1}),o},typeof Symbol<"u"&&(n.prototype[Symbol.for("nodejs.util.inspect.custom")]=n.prototype.inspect),n.from=function(o){var a=new n;return r(o,function(i){a.enqueue(i)}),a},n.of=function(){return n.from(arguments)},_6=n,_6}var Wye=Yye();const E6=t3(Wye);var S6,zI;function Gye(){if(zI)return S6;zI=1;function e(r){if(typeof r!="function")throw new Error("mnemonist/DefaultMap.constructor: expecting a function.");this.items=new Map,this.factory=r,this.size=0}return e.prototype.clear=function(){this.items.clear(),this.size=0},e.prototype.get=function(r){var n=this.items.get(r);return typeof n>"u"&&(n=this.factory(r,this.size),this.items.set(r,n),this.size++),n},e.prototype.peek=function(r){return this.items.get(r)},e.prototype.set=function(r,n){return this.items.set(r,n),this.size=this.items.size,this},e.prototype.has=function(r){return this.items.has(r)},e.prototype.delete=function(r){var n=this.items.delete(r);return this.size=this.items.size,n},e.prototype.forEach=function(r,n){n=arguments.length>1?n:this,this.items.forEach(r,n)},e.prototype.entries=function(){return this.items.entries()},e.prototype.keys=function(){return this.items.keys()},e.prototype.values=function(){return this.items.values()},typeof Symbol<"u"&&(e.prototype[Symbol.iterator]=e.prototype.entries),e.prototype.inspect=function(){return this.items},typeof Symbol<"u"&&(e.prototype[Symbol.for("nodejs.util.inspect.custom")]=e.prototype.inspect),e.autoIncrement=function(){var r=0;return function(){return r++}},S6=e,S6}var Xye=Gye();const so=t3(Xye);function i3(e){return e.summary??e.description}function l3(e){return e.description??e.summary}function Is(e){return!!e}const vd="@group";function Kye(e){return e.kind===vd}function jI(e,r){return nt(typeof e=="string"&&e!=""),"@"+e+"."+r}function Zye(e){return e.startsWith("@")}function Qye(e){if(!e.startsWith("@"))return[null,e];const r=e.indexOf(".");if(r<2)throw new Error("Invalid global FQN");const n=e.slice(1,r),o=e.slice(r+1);return[n,o]}function v1(e){return e.startsWith("step-")}function BI(e){if(!v1(e))throw new Error(`Invalid step edge id: ${e}`);return parseFloat(e.slice(5))}const FI=-1,s3=0,x1=1,c3=2,C6=3,T6=4,R6=5,A6=6,HI=7,UI=8,qI=typeof self=="object"?self:globalThis,Jye=(e,r)=>{const n=(a,i)=>(e.set(i,a),a),o=a=>{if(e.has(a))return e.get(a);const[i,l]=r[a];switch(i){case s3:case FI:return n(l,a);case x1:{const s=n([],a);for(const c of l)s.push(o(c));return s}case c3:{const s=n({},a);for(const[c,u]of l)s[o(c)]=o(u);return s}case C6:return n(new Date(l),a);case T6:{const{source:s,flags:c}=l;return n(new RegExp(s,c),a)}case R6:{const s=n(new Map,a);for(const[c,u]of l)s.set(o(c),o(u));return s}case A6:{const s=n(new Set,a);for(const c of l)s.add(o(c));return s}case HI:{const{name:s,message:c}=l;return n(new qI[s](c),a)}case UI:return n(BigInt(l),a);case"BigInt":return n(Object(BigInt(l)),a);case"ArrayBuffer":return n(new Uint8Array(l).buffer,l);case"DataView":{const{buffer:s}=new Uint8Array(l);return n(new DataView(s),l)}}return n(new qI[i](l),a)};return o},VI=e=>Jye(new Map,e)(0),Ph="",{toString:ebe}={},{keys:tbe}=Object,w1=e=>{const r=typeof e;if(r!=="object"||!e)return[s3,r];const n=ebe.call(e).slice(8,-1);switch(n){case"Array":return[x1,Ph];case"Object":return[c3,Ph];case"Date":return[C6,Ph];case"RegExp":return[T6,Ph];case"Map":return[R6,Ph];case"Set":return[A6,Ph];case"DataView":return[x1,n]}return n.includes("Array")?[x1,n]:n.includes("Error")?[HI,n]:[c3,n]},u3=([e,r])=>e===s3&&(r==="function"||r==="symbol"),rbe=(e,r,n,o)=>{const a=(l,s)=>{const c=o.push(l)-1;return n.set(s,c),c},i=l=>{if(n.has(l))return n.get(l);let[s,c]=w1(l);switch(s){case s3:{let d=l;switch(c){case"bigint":s=UI,d=l.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return a([FI],l)}return a([s,d],l)}case x1:{if(c){let f=l;return c==="DataView"?f=new Uint8Array(l.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(l)),a([c,[...f]],l)}const d=[],p=a([s,d],l);for(const f of l)d.push(i(f));return p}case c3:{if(c)switch(c){case"BigInt":return a([c,l.toString()],l);case"Boolean":case"Number":case"String":return a([c,l.valueOf()],l)}if(r&&"toJSON"in l)return i(l.toJSON());const d=[],p=a([s,d],l);for(const f of tbe(l))(e||!u3(w1(l[f])))&&d.push([i(f),i(l[f])]);return p}case C6:return a([s,l.toISOString()],l);case T6:{const{source:d,flags:p}=l;return a([s,{source:d,flags:p}],l)}case R6:{const d=[],p=a([s,d],l);for(const[f,g]of l)(e||!(u3(w1(f))||u3(w1(g))))&&d.push([i(f),i(g)]);return p}case A6:{const d=[],p=a([s,d],l);for(const f of l)(e||!u3(w1(f)))&&d.push(i(f));return p}}const{message:u}=l;return a([s,{name:c,message:u}],l)};return i},YI=(e,{json:r,lossy:n}={})=>{const o=[];return rbe(!(r||n),!!r,new Map,o)(e),o},xd=typeof structuredClone=="function"?(e,r)=>r&&("json"in r||"lossy"in r)?VI(YI(e,r)):structuredClone(e):(e,r)=>VI(YI(e,r));function x_t(){}let k1=class{constructor(r,n,o){this.normal=n,this.property=r,o&&(this.space=o)}};k1.prototype.normal={},k1.prototype.property={},k1.prototype.space=void 0;function WI(e,r){const n={},o={};for(const a of e)Object.assign(n,a.property),Object.assign(o,a.normal);return new k1(n,o,r)}function _1(e){return e.toLowerCase()}let Go=class{constructor(r,n){this.attribute=n,this.property=r}};Go.prototype.attribute="",Go.prototype.booleanish=!1,Go.prototype.boolean=!1,Go.prototype.commaOrSpaceSeparated=!1,Go.prototype.commaSeparated=!1,Go.prototype.defined=!1,Go.prototype.mustUseProperty=!1,Go.prototype.number=!1,Go.prototype.overloadedBoolean=!1,Go.prototype.property="",Go.prototype.spaceSeparated=!1,Go.prototype.space=void 0;let nbe=0;const Ot=wd(),mn=wd(),GI=wd(),He=wd(),_r=wd(),Oh=wd(),va=wd();function wd(){return 2**++nbe}const N6={__proto__:null,boolean:Ot,booleanish:mn,commaOrSpaceSeparated:va,commaSeparated:Oh,number:He,overloadedBoolean:GI,spaceSeparated:_r},D6=Object.keys(N6);let $6=class extends Go{constructor(r,n,o,a){let i=-1;if(super(r,n),XI(this,"space",a),typeof o=="number")for(;++i4&&n.slice(0,4)==="data"&&lbe.test(r)){if(r.charAt(4)==="-"){const i=r.slice(5).replace(rL,cbe);o="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=r.slice(4);if(!rL.test(i)){let l=i.replace(ibe,sbe);l.charAt(0)!=="-"&&(l="-"+l),r="data"+l}}a=$6}return new a(o,r)}function sbe(e){return"-"+e.toLowerCase()}function cbe(e){return e.charAt(1).toUpperCase()}const d3=WI([KI,obe,JI,eL,tL],"html"),E1=WI([KI,abe,JI,eL,tL],"svg");function nL(e){const r=[],n=String(e||"");let o=n.indexOf(","),a=0,i=!1;for(;!i;){o===-1&&(o=n.length,i=!0);const l=n.slice(a,o).trim();(l||!i)&&r.push(l),a=o+1,o=n.indexOf(",",a)}return r}function oL(e,r){const n=r||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const aL=/[#.]/g;function ube(e,r){const n=e||"",o={};let a=0,i,l;for(;a-1&&i<=r.length){let l=0;for(;;){let s=n[l];if(s===void 0){const c=uL(r,n[l-1]);s=c===-1?r.length+1:c+1,n[l]=s}if(s>i)return{line:l+1,column:i-(l>0?n[l-1]:0)+1,offset:i};l++}}}function a(i){if(i&&typeof i.line=="number"&&typeof i.column=="number"&&!Number.isNaN(i.line)&&!Number.isNaN(i.column)){for(;n.length1?n[i.line-2]:0)+i.column-1;if(l4&&n.slice(0,4)==="data"&&Tbe.test(r)){if(r.charAt(4)==="-"){const i=r.slice(5).replace(_L,Dbe);o="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=r.slice(4);if(!_L.test(i)){let l=i.replace(Rbe,Nbe);l.charAt(0)!=="-"&&(l="-"+l),r="data"+l}}a=j6}return new a(o,r)}function Nbe(e){return"-"+e.toLowerCase()}function Dbe(e){return e.charAt(1).toUpperCase()}const $be=fL([bL,yL,wL,kL,Sbe],"html"),EL=fL([bL,yL,wL,kL,Cbe],"svg"),SL={}.hasOwnProperty;function B6(e,r){const n=r||{};function o(a,...i){let l=o.invalid;const s=o.handlers;if(a&&SL.call(a,e)){const c=String(a[e]);l=SL.call(s,c)?s[c]:o.unknown}if(l)return l.call(this,a,...i)}return o.handlers=n.handlers||{},o.invalid=n.invalid,o.unknown=n.unknown,o}const Pbe={},Obe={}.hasOwnProperty,CL=B6("type",{handlers:{root:Ibe,element:Fbe,text:jbe,comment:Bbe,doctype:zbe}});function Mbe(e,r){const o=(r||Pbe).space;return CL(e,o==="svg"?EL:$be)}function Ibe(e,r){const n={nodeName:"#document",mode:(e.data||{}).quirksMode?"quirks":"no-quirks",childNodes:[]};return n.childNodes=F6(e.children,n,r),jh(e,n),n}function Lbe(e,r){const n={nodeName:"#document-fragment",childNodes:[]};return n.childNodes=F6(e.children,n,r),jh(e,n),n}function zbe(e){const r={nodeName:"#documentType",name:"html",publicId:"",systemId:"",parentNode:null};return jh(e,r),r}function jbe(e){const r={nodeName:"#text",value:e.value,parentNode:null};return jh(e,r),r}function Bbe(e){const r={nodeName:"#comment",data:e.value,parentNode:null};return jh(e,r),r}function Fbe(e,r){const n=r;let o=n;e.type==="element"&&e.tagName.toLowerCase()==="svg"&&n.space==="html"&&(o=EL);const a=[];let i;if(e.properties){for(i in e.properties)if(i!=="children"&&Obe.call(e.properties,i)){const c=Hbe(o,i,e.properties[i]);c&&a.push(c)}}const l=o.space,s={nodeName:e.tagName,tagName:e.tagName,attrs:a,namespaceURI:kd[l],childNodes:[],parentNode:null};return s.childNodes=F6(e.children,s,o),jh(e,s),e.tagName==="template"&&e.content&&(s.content=Lbe(e.content,o)),s}function Hbe(e,r,n){const o=Abe(e,r);if(n===!1||n===null||n===void 0||typeof n=="number"&&Number.isNaN(n)||!n&&o.boolean)return;Array.isArray(n)&&(n=o.commaSeparated?oL(n):lL(n));const a={name:o.attribute,value:n===!0?"":String(n)};if(o.space&&o.space!=="html"&&o.space!=="svg"){const i=a.name.indexOf(":");i<0?a.prefix="":(a.name=a.name.slice(i+1),a.prefix=o.attribute.slice(0,i)),a.namespace=kd[o.space]}return a}function F6(e,r,n){let o=-1;const a=[];if(e)for(;++o=55296&&e<=57343}function qbe(e){return e>=56320&&e<=57343}function Vbe(e,r){return(e-55296)*1024+9216+r}function AL(e){return e!==32&&e!==10&&e!==13&&e!==9&&e!==12&&e>=1&&e<=31||e>=127&&e<=159}function NL(e){return e>=64976&&e<=65007||Ube.has(e)}var Ee;(function(e){e.controlCharacterInInputStream="control-character-in-input-stream",e.noncharacterInInputStream="noncharacter-in-input-stream",e.surrogateInInputStream="surrogate-in-input-stream",e.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",e.endTagWithAttributes="end-tag-with-attributes",e.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",e.unexpectedSolidusInTag="unexpected-solidus-in-tag",e.unexpectedNullCharacter="unexpected-null-character",e.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",e.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",e.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",e.missingEndTagName="missing-end-tag-name",e.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",e.unknownNamedCharacterReference="unknown-named-character-reference",e.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",e.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",e.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",e.eofBeforeTagName="eof-before-tag-name",e.eofInTag="eof-in-tag",e.missingAttributeValue="missing-attribute-value",e.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",e.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",e.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",e.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",e.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",e.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",e.missingDoctypePublicIdentifier="missing-doctype-public-identifier",e.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",e.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",e.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",e.cdataInHtmlContent="cdata-in-html-content",e.incorrectlyOpenedComment="incorrectly-opened-comment",e.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",e.eofInDoctype="eof-in-doctype",e.nestedComment="nested-comment",e.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",e.eofInComment="eof-in-comment",e.incorrectlyClosedComment="incorrectly-closed-comment",e.eofInCdata="eof-in-cdata",e.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",e.nullCharacterReference="null-character-reference",e.surrogateCharacterReference="surrogate-character-reference",e.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",e.controlCharacterReference="control-character-reference",e.noncharacterCharacterReference="noncharacter-character-reference",e.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",e.missingDoctypeName="missing-doctype-name",e.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",e.duplicateAttribute="duplicate-attribute",e.nonConformingDoctype="non-conforming-doctype",e.missingDoctype="missing-doctype",e.misplacedDoctype="misplaced-doctype",e.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",e.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",e.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",e.openElementsLeftAfterEof="open-elements-left-after-eof",e.abandonedHeadElementChild="abandoned-head-element-child",e.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",e.nestedNoscriptInHead="nested-noscript-in-head",e.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text"})(Ee||(Ee={}));const Ybe=65536;class Wbe{constructor(r){this.handler=r,this.html="",this.pos=-1,this.lastGapPos=-2,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=Ybe,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.line=1,this.lastErrOffset=-1}get col(){return this.pos-this.lineStartPos+ +(this.lastGapPos!==this.pos)}get offset(){return this.droppedBufferSize+this.pos}getError(r,n){const{line:o,col:a,offset:i}=this,l=a+n,s=i+n;return{code:r,startLine:o,endLine:o,startCol:l,endCol:l,startOffset:s,endOffset:s}}_err(r){this.handler.onParseError&&this.lastErrOffset!==this.offset&&(this.lastErrOffset=this.offset,this.handler.onParseError(this.getError(r,0)))}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(r){if(this.pos!==this.html.length-1){const n=this.html.charCodeAt(this.pos+1);if(qbe(n))return this.pos++,this._addGap(),Vbe(r,n)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,ne.EOF;return this._err(Ee.surrogateInInputStream),r}willDropParsedChunk(){return this.pos>this.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0)}write(r,n){this.html.length>0?this.html+=r:this.html=r,this.endOfChunkHit=!1,this.lastChunkWritten=n}insertHtmlAtCurrentPos(r){this.html=this.html.substring(0,this.pos+1)+r+this.html.substring(this.pos+1),this.endOfChunkHit=!1}startsWith(r,n){if(this.pos+r.length>this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(n)return this.html.startsWith(r,this.pos);for(let o=0;o=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,ne.EOF;const o=this.html.charCodeAt(n);return o===ne.CARRIAGE_RETURN?ne.LINE_FEED:o}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,ne.EOF;let r=this.html.charCodeAt(this.pos);return r===ne.CARRIAGE_RETURN?(this.isEol=!0,this.skipNextNewLine=!0,ne.LINE_FEED):r===ne.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine)?(this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance()):(this.skipNextNewLine=!1,RL(r)&&(r=this._processSurrogate(r)),this.handler.onParseError===null||r>31&&r<127||r===ne.LINE_FEED||r===ne.CARRIAGE_RETURN||r>159&&r<64976||this._checkForProblematicCharacters(r),r)}_checkForProblematicCharacters(r){AL(r)?this._err(Ee.controlCharacterInInputStream):NL(r)&&this._err(Ee.noncharacterInInputStream)}retreat(r){for(this.pos-=r;this.pos=0;n--)if(e.attrs[n].name===r)return e.attrs[n].value;return null}const $L=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),Gbe=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e=>e.charCodeAt(0)));var H6;const Xbe=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Kbe=(H6=String.fromCodePoint)!==null&&H6!==void 0?H6:function(e){let r="";return e>65535&&(e-=65536,r+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),r+=String.fromCharCode(e),r};function Zbe(e){var r;return e>=55296&&e<=57343||e>1114111?65533:(r=Xbe.get(e))!==null&&r!==void 0?r:e}var qn;(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(qn||(qn={}));const Qbe=32;var Yc;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(Yc||(Yc={}));function U6(e){return e>=qn.ZERO&&e<=qn.NINE}function Jbe(e){return e>=qn.UPPER_A&&e<=qn.UPPER_F||e>=qn.LOWER_A&&e<=qn.LOWER_F}function eve(e){return e>=qn.UPPER_A&&e<=qn.UPPER_Z||e>=qn.LOWER_A&&e<=qn.LOWER_Z||U6(e)}function tve(e){return e===qn.EQUALS||eve(e)}var Vn;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(Vn||(Vn={}));var Ls;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(Ls||(Ls={}));let PL=class{constructor(r,n,o){this.decodeTree=r,this.emitCodePoint=n,this.errors=o,this.state=Vn.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=Ls.Strict}startEntity(r){this.decodeMode=r,this.state=Vn.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(r,n){switch(this.state){case Vn.EntityStart:return r.charCodeAt(n)===qn.NUM?(this.state=Vn.NumericStart,this.consumed+=1,this.stateNumericStart(r,n+1)):(this.state=Vn.NamedEntity,this.stateNamedEntity(r,n));case Vn.NumericStart:return this.stateNumericStart(r,n);case Vn.NumericDecimal:return this.stateNumericDecimal(r,n);case Vn.NumericHex:return this.stateNumericHex(r,n);case Vn.NamedEntity:return this.stateNamedEntity(r,n)}}stateNumericStart(r,n){return n>=r.length?-1:(r.charCodeAt(n)|Qbe)===qn.LOWER_X?(this.state=Vn.NumericHex,this.consumed+=1,this.stateNumericHex(r,n+1)):(this.state=Vn.NumericDecimal,this.stateNumericDecimal(r,n))}addToNumericResult(r,n,o,a){if(n!==o){const i=o-n;this.result=this.result*Math.pow(a,i)+parseInt(r.substr(n,i),a),this.consumed+=i}}stateNumericHex(r,n){const o=n;for(;n>14;for(;n>14,i!==0){if(l===qn.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==Ls.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var r;const{result:n,decodeTree:o}=this,a=(o[n]&Yc.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,a,this.consumed),(r=this.errors)===null||r===void 0||r.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(r,n,o){const{decodeTree:a}=this;return this.emitCodePoint(n===1?a[r]&~Yc.VALUE_LENGTH:a[r+1],o),n===3&&this.emitCodePoint(a[r+2],o),o}end(){var r;switch(this.state){case Vn.NamedEntity:return this.result!==0&&(this.decodeMode!==Ls.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case Vn.NumericDecimal:return this.emitNumericEntity(0,2);case Vn.NumericHex:return this.emitNumericEntity(0,3);case Vn.NumericStart:return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case Vn.EntityStart:return 0}}};function OL(e){let r="";const n=new PL(e,o=>r+=Kbe(o));return function(a,i){let l=0,s=0;for(;(s=a.indexOf("&",s))>=0;){r+=a.slice(l,s),n.startEntity(i);const u=n.write(a,s+1);if(u<0){l=s+n.end();break}l=s+u,s=u===0?l+1:l}const c=r+a.slice(l);return r="",c}}function rve(e,r,n,o){const a=(r&Yc.BRANCH_LENGTH)>>7,i=r&Yc.JUMP_TABLE;if(a===0)return i!==0&&o===i?n:-1;if(i){const c=o-i;return c<0||c>=a?-1:e[n+c]-1}let l=n,s=l+a-1;for(;l<=s;){const c=l+s>>>1,u=e[c];if(uo)s=c-1;else return e[c+a]}return-1}OL($L),OL(Gbe);var Pe;(function(e){e.HTML="http://www.w3.org/1999/xhtml",e.MATHML="http://www.w3.org/1998/Math/MathML",e.SVG="http://www.w3.org/2000/svg",e.XLINK="http://www.w3.org/1999/xlink",e.XML="http://www.w3.org/XML/1998/namespace",e.XMLNS="http://www.w3.org/2000/xmlns/"})(Pe||(Pe={}));var Ed;(function(e){e.TYPE="type",e.ACTION="action",e.ENCODING="encoding",e.PROMPT="prompt",e.NAME="name",e.COLOR="color",e.FACE="face",e.SIZE="size"})(Ed||(Ed={}));var Ja;(function(e){e.NO_QUIRKS="no-quirks",e.QUIRKS="quirks",e.LIMITED_QUIRKS="limited-quirks"})(Ja||(Ja={}));var me;(function(e){e.A="a",e.ADDRESS="address",e.ANNOTATION_XML="annotation-xml",e.APPLET="applet",e.AREA="area",e.ARTICLE="article",e.ASIDE="aside",e.B="b",e.BASE="base",e.BASEFONT="basefont",e.BGSOUND="bgsound",e.BIG="big",e.BLOCKQUOTE="blockquote",e.BODY="body",e.BR="br",e.BUTTON="button",e.CAPTION="caption",e.CENTER="center",e.CODE="code",e.COL="col",e.COLGROUP="colgroup",e.DD="dd",e.DESC="desc",e.DETAILS="details",e.DIALOG="dialog",e.DIR="dir",e.DIV="div",e.DL="dl",e.DT="dt",e.EM="em",e.EMBED="embed",e.FIELDSET="fieldset",e.FIGCAPTION="figcaption",e.FIGURE="figure",e.FONT="font",e.FOOTER="footer",e.FOREIGN_OBJECT="foreignObject",e.FORM="form",e.FRAME="frame",e.FRAMESET="frameset",e.H1="h1",e.H2="h2",e.H3="h3",e.H4="h4",e.H5="h5",e.H6="h6",e.HEAD="head",e.HEADER="header",e.HGROUP="hgroup",e.HR="hr",e.HTML="html",e.I="i",e.IMG="img",e.IMAGE="image",e.INPUT="input",e.IFRAME="iframe",e.KEYGEN="keygen",e.LABEL="label",e.LI="li",e.LINK="link",e.LISTING="listing",e.MAIN="main",e.MALIGNMARK="malignmark",e.MARQUEE="marquee",e.MATH="math",e.MENU="menu",e.META="meta",e.MGLYPH="mglyph",e.MI="mi",e.MO="mo",e.MN="mn",e.MS="ms",e.MTEXT="mtext",e.NAV="nav",e.NOBR="nobr",e.NOFRAMES="noframes",e.NOEMBED="noembed",e.NOSCRIPT="noscript",e.OBJECT="object",e.OL="ol",e.OPTGROUP="optgroup",e.OPTION="option",e.P="p",e.PARAM="param",e.PLAINTEXT="plaintext",e.PRE="pre",e.RB="rb",e.RP="rp",e.RT="rt",e.RTC="rtc",e.RUBY="ruby",e.S="s",e.SCRIPT="script",e.SEARCH="search",e.SECTION="section",e.SELECT="select",e.SOURCE="source",e.SMALL="small",e.SPAN="span",e.STRIKE="strike",e.STRONG="strong",e.STYLE="style",e.SUB="sub",e.SUMMARY="summary",e.SUP="sup",e.TABLE="table",e.TBODY="tbody",e.TEMPLATE="template",e.TEXTAREA="textarea",e.TFOOT="tfoot",e.TD="td",e.TH="th",e.THEAD="thead",e.TITLE="title",e.TR="tr",e.TRACK="track",e.TT="tt",e.U="u",e.UL="ul",e.SVG="svg",e.VAR="var",e.WBR="wbr",e.XMP="xmp"})(me||(me={}));var H;(function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.A=1]="A",e[e.ADDRESS=2]="ADDRESS",e[e.ANNOTATION_XML=3]="ANNOTATION_XML",e[e.APPLET=4]="APPLET",e[e.AREA=5]="AREA",e[e.ARTICLE=6]="ARTICLE",e[e.ASIDE=7]="ASIDE",e[e.B=8]="B",e[e.BASE=9]="BASE",e[e.BASEFONT=10]="BASEFONT",e[e.BGSOUND=11]="BGSOUND",e[e.BIG=12]="BIG",e[e.BLOCKQUOTE=13]="BLOCKQUOTE",e[e.BODY=14]="BODY",e[e.BR=15]="BR",e[e.BUTTON=16]="BUTTON",e[e.CAPTION=17]="CAPTION",e[e.CENTER=18]="CENTER",e[e.CODE=19]="CODE",e[e.COL=20]="COL",e[e.COLGROUP=21]="COLGROUP",e[e.DD=22]="DD",e[e.DESC=23]="DESC",e[e.DETAILS=24]="DETAILS",e[e.DIALOG=25]="DIALOG",e[e.DIR=26]="DIR",e[e.DIV=27]="DIV",e[e.DL=28]="DL",e[e.DT=29]="DT",e[e.EM=30]="EM",e[e.EMBED=31]="EMBED",e[e.FIELDSET=32]="FIELDSET",e[e.FIGCAPTION=33]="FIGCAPTION",e[e.FIGURE=34]="FIGURE",e[e.FONT=35]="FONT",e[e.FOOTER=36]="FOOTER",e[e.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",e[e.FORM=38]="FORM",e[e.FRAME=39]="FRAME",e[e.FRAMESET=40]="FRAMESET",e[e.H1=41]="H1",e[e.H2=42]="H2",e[e.H3=43]="H3",e[e.H4=44]="H4",e[e.H5=45]="H5",e[e.H6=46]="H6",e[e.HEAD=47]="HEAD",e[e.HEADER=48]="HEADER",e[e.HGROUP=49]="HGROUP",e[e.HR=50]="HR",e[e.HTML=51]="HTML",e[e.I=52]="I",e[e.IMG=53]="IMG",e[e.IMAGE=54]="IMAGE",e[e.INPUT=55]="INPUT",e[e.IFRAME=56]="IFRAME",e[e.KEYGEN=57]="KEYGEN",e[e.LABEL=58]="LABEL",e[e.LI=59]="LI",e[e.LINK=60]="LINK",e[e.LISTING=61]="LISTING",e[e.MAIN=62]="MAIN",e[e.MALIGNMARK=63]="MALIGNMARK",e[e.MARQUEE=64]="MARQUEE",e[e.MATH=65]="MATH",e[e.MENU=66]="MENU",e[e.META=67]="META",e[e.MGLYPH=68]="MGLYPH",e[e.MI=69]="MI",e[e.MO=70]="MO",e[e.MN=71]="MN",e[e.MS=72]="MS",e[e.MTEXT=73]="MTEXT",e[e.NAV=74]="NAV",e[e.NOBR=75]="NOBR",e[e.NOFRAMES=76]="NOFRAMES",e[e.NOEMBED=77]="NOEMBED",e[e.NOSCRIPT=78]="NOSCRIPT",e[e.OBJECT=79]="OBJECT",e[e.OL=80]="OL",e[e.OPTGROUP=81]="OPTGROUP",e[e.OPTION=82]="OPTION",e[e.P=83]="P",e[e.PARAM=84]="PARAM",e[e.PLAINTEXT=85]="PLAINTEXT",e[e.PRE=86]="PRE",e[e.RB=87]="RB",e[e.RP=88]="RP",e[e.RT=89]="RT",e[e.RTC=90]="RTC",e[e.RUBY=91]="RUBY",e[e.S=92]="S",e[e.SCRIPT=93]="SCRIPT",e[e.SEARCH=94]="SEARCH",e[e.SECTION=95]="SECTION",e[e.SELECT=96]="SELECT",e[e.SOURCE=97]="SOURCE",e[e.SMALL=98]="SMALL",e[e.SPAN=99]="SPAN",e[e.STRIKE=100]="STRIKE",e[e.STRONG=101]="STRONG",e[e.STYLE=102]="STYLE",e[e.SUB=103]="SUB",e[e.SUMMARY=104]="SUMMARY",e[e.SUP=105]="SUP",e[e.TABLE=106]="TABLE",e[e.TBODY=107]="TBODY",e[e.TEMPLATE=108]="TEMPLATE",e[e.TEXTAREA=109]="TEXTAREA",e[e.TFOOT=110]="TFOOT",e[e.TD=111]="TD",e[e.TH=112]="TH",e[e.THEAD=113]="THEAD",e[e.TITLE=114]="TITLE",e[e.TR=115]="TR",e[e.TRACK=116]="TRACK",e[e.TT=117]="TT",e[e.U=118]="U",e[e.UL=119]="UL",e[e.SVG=120]="SVG",e[e.VAR=121]="VAR",e[e.WBR=122]="WBR",e[e.XMP=123]="XMP"})(H||(H={}));const nve=new Map([[me.A,H.A],[me.ADDRESS,H.ADDRESS],[me.ANNOTATION_XML,H.ANNOTATION_XML],[me.APPLET,H.APPLET],[me.AREA,H.AREA],[me.ARTICLE,H.ARTICLE],[me.ASIDE,H.ASIDE],[me.B,H.B],[me.BASE,H.BASE],[me.BASEFONT,H.BASEFONT],[me.BGSOUND,H.BGSOUND],[me.BIG,H.BIG],[me.BLOCKQUOTE,H.BLOCKQUOTE],[me.BODY,H.BODY],[me.BR,H.BR],[me.BUTTON,H.BUTTON],[me.CAPTION,H.CAPTION],[me.CENTER,H.CENTER],[me.CODE,H.CODE],[me.COL,H.COL],[me.COLGROUP,H.COLGROUP],[me.DD,H.DD],[me.DESC,H.DESC],[me.DETAILS,H.DETAILS],[me.DIALOG,H.DIALOG],[me.DIR,H.DIR],[me.DIV,H.DIV],[me.DL,H.DL],[me.DT,H.DT],[me.EM,H.EM],[me.EMBED,H.EMBED],[me.FIELDSET,H.FIELDSET],[me.FIGCAPTION,H.FIGCAPTION],[me.FIGURE,H.FIGURE],[me.FONT,H.FONT],[me.FOOTER,H.FOOTER],[me.FOREIGN_OBJECT,H.FOREIGN_OBJECT],[me.FORM,H.FORM],[me.FRAME,H.FRAME],[me.FRAMESET,H.FRAMESET],[me.H1,H.H1],[me.H2,H.H2],[me.H3,H.H3],[me.H4,H.H4],[me.H5,H.H5],[me.H6,H.H6],[me.HEAD,H.HEAD],[me.HEADER,H.HEADER],[me.HGROUP,H.HGROUP],[me.HR,H.HR],[me.HTML,H.HTML],[me.I,H.I],[me.IMG,H.IMG],[me.IMAGE,H.IMAGE],[me.INPUT,H.INPUT],[me.IFRAME,H.IFRAME],[me.KEYGEN,H.KEYGEN],[me.LABEL,H.LABEL],[me.LI,H.LI],[me.LINK,H.LINK],[me.LISTING,H.LISTING],[me.MAIN,H.MAIN],[me.MALIGNMARK,H.MALIGNMARK],[me.MARQUEE,H.MARQUEE],[me.MATH,H.MATH],[me.MENU,H.MENU],[me.META,H.META],[me.MGLYPH,H.MGLYPH],[me.MI,H.MI],[me.MO,H.MO],[me.MN,H.MN],[me.MS,H.MS],[me.MTEXT,H.MTEXT],[me.NAV,H.NAV],[me.NOBR,H.NOBR],[me.NOFRAMES,H.NOFRAMES],[me.NOEMBED,H.NOEMBED],[me.NOSCRIPT,H.NOSCRIPT],[me.OBJECT,H.OBJECT],[me.OL,H.OL],[me.OPTGROUP,H.OPTGROUP],[me.OPTION,H.OPTION],[me.P,H.P],[me.PARAM,H.PARAM],[me.PLAINTEXT,H.PLAINTEXT],[me.PRE,H.PRE],[me.RB,H.RB],[me.RP,H.RP],[me.RT,H.RT],[me.RTC,H.RTC],[me.RUBY,H.RUBY],[me.S,H.S],[me.SCRIPT,H.SCRIPT],[me.SEARCH,H.SEARCH],[me.SECTION,H.SECTION],[me.SELECT,H.SELECT],[me.SOURCE,H.SOURCE],[me.SMALL,H.SMALL],[me.SPAN,H.SPAN],[me.STRIKE,H.STRIKE],[me.STRONG,H.STRONG],[me.STYLE,H.STYLE],[me.SUB,H.SUB],[me.SUMMARY,H.SUMMARY],[me.SUP,H.SUP],[me.TABLE,H.TABLE],[me.TBODY,H.TBODY],[me.TEMPLATE,H.TEMPLATE],[me.TEXTAREA,H.TEXTAREA],[me.TFOOT,H.TFOOT],[me.TD,H.TD],[me.TH,H.TH],[me.THEAD,H.THEAD],[me.TITLE,H.TITLE],[me.TR,H.TR],[me.TRACK,H.TRACK],[me.TT,H.TT],[me.U,H.U],[me.UL,H.UL],[me.SVG,H.SVG],[me.VAR,H.VAR],[me.WBR,H.WBR],[me.XMP,H.XMP]]);function Bh(e){var r;return(r=nve.get(e))!==null&&r!==void 0?r:H.UNKNOWN}const Ie=H,ove={[Pe.HTML]:new Set([Ie.ADDRESS,Ie.APPLET,Ie.AREA,Ie.ARTICLE,Ie.ASIDE,Ie.BASE,Ie.BASEFONT,Ie.BGSOUND,Ie.BLOCKQUOTE,Ie.BODY,Ie.BR,Ie.BUTTON,Ie.CAPTION,Ie.CENTER,Ie.COL,Ie.COLGROUP,Ie.DD,Ie.DETAILS,Ie.DIR,Ie.DIV,Ie.DL,Ie.DT,Ie.EMBED,Ie.FIELDSET,Ie.FIGCAPTION,Ie.FIGURE,Ie.FOOTER,Ie.FORM,Ie.FRAME,Ie.FRAMESET,Ie.H1,Ie.H2,Ie.H3,Ie.H4,Ie.H5,Ie.H6,Ie.HEAD,Ie.HEADER,Ie.HGROUP,Ie.HR,Ie.HTML,Ie.IFRAME,Ie.IMG,Ie.INPUT,Ie.LI,Ie.LINK,Ie.LISTING,Ie.MAIN,Ie.MARQUEE,Ie.MENU,Ie.META,Ie.NAV,Ie.NOEMBED,Ie.NOFRAMES,Ie.NOSCRIPT,Ie.OBJECT,Ie.OL,Ie.P,Ie.PARAM,Ie.PLAINTEXT,Ie.PRE,Ie.SCRIPT,Ie.SECTION,Ie.SELECT,Ie.SOURCE,Ie.STYLE,Ie.SUMMARY,Ie.TABLE,Ie.TBODY,Ie.TD,Ie.TEMPLATE,Ie.TEXTAREA,Ie.TFOOT,Ie.TH,Ie.THEAD,Ie.TITLE,Ie.TR,Ie.TRACK,Ie.UL,Ie.WBR,Ie.XMP]),[Pe.MATHML]:new Set([Ie.MI,Ie.MO,Ie.MN,Ie.MS,Ie.MTEXT,Ie.ANNOTATION_XML]),[Pe.SVG]:new Set([Ie.TITLE,Ie.FOREIGN_OBJECT,Ie.DESC]),[Pe.XLINK]:new Set,[Pe.XML]:new Set,[Pe.XMLNS]:new Set},q6=new Set([Ie.H1,Ie.H2,Ie.H3,Ie.H4,Ie.H5,Ie.H6]);me.STYLE,me.SCRIPT,me.XMP,me.IFRAME,me.NOEMBED,me.NOFRAMES,me.PLAINTEXT;var ae;(function(e){e[e.DATA=0]="DATA",e[e.RCDATA=1]="RCDATA",e[e.RAWTEXT=2]="RAWTEXT",e[e.SCRIPT_DATA=3]="SCRIPT_DATA",e[e.PLAINTEXT=4]="PLAINTEXT",e[e.TAG_OPEN=5]="TAG_OPEN",e[e.END_TAG_OPEN=6]="END_TAG_OPEN",e[e.TAG_NAME=7]="TAG_NAME",e[e.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",e[e.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",e[e.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",e[e.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",e[e.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",e[e.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",e[e.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",e[e.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",e[e.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",e[e.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",e[e.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",e[e.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",e[e.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",e[e.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",e[e.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",e[e.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",e[e.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",e[e.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",e[e.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",e[e.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",e[e.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",e[e.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",e[e.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",e[e.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",e[e.BOGUS_COMMENT=40]="BOGUS_COMMENT",e[e.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",e[e.COMMENT_START=42]="COMMENT_START",e[e.COMMENT_START_DASH=43]="COMMENT_START_DASH",e[e.COMMENT=44]="COMMENT",e[e.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",e[e.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",e[e.COMMENT_END_DASH=49]="COMMENT_END_DASH",e[e.COMMENT_END=50]="COMMENT_END",e[e.COMMENT_END_BANG=51]="COMMENT_END_BANG",e[e.DOCTYPE=52]="DOCTYPE",e[e.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",e[e.DOCTYPE_NAME=54]="DOCTYPE_NAME",e[e.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",e[e.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",e[e.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",e[e.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",e[e.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",e[e.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",e[e.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",e[e.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",e[e.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",e[e.CDATA_SECTION=68]="CDATA_SECTION",e[e.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",e[e.CDATA_SECTION_END=70]="CDATA_SECTION_END",e[e.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",e[e.AMBIGUOUS_AMPERSAND=72]="AMBIGUOUS_AMPERSAND"})(ae||(ae={}));const on={DATA:ae.DATA,RCDATA:ae.RCDATA,RAWTEXT:ae.RAWTEXT,SCRIPT_DATA:ae.SCRIPT_DATA,PLAINTEXT:ae.PLAINTEXT,CDATA_SECTION:ae.CDATA_SECTION};function ave(e){return e>=ne.DIGIT_0&&e<=ne.DIGIT_9}function C1(e){return e>=ne.LATIN_CAPITAL_A&&e<=ne.LATIN_CAPITAL_Z}function ive(e){return e>=ne.LATIN_SMALL_A&&e<=ne.LATIN_SMALL_Z}function Wc(e){return ive(e)||C1(e)}function ML(e){return Wc(e)||ave(e)}function h3(e){return e+32}function IL(e){return e===ne.SPACE||e===ne.LINE_FEED||e===ne.TABULATION||e===ne.FORM_FEED}function LL(e){return IL(e)||e===ne.SOLIDUS||e===ne.GREATER_THAN_SIGN}function lve(e){return e===ne.NULL?Ee.nullCharacterReference:e>1114111?Ee.characterReferenceOutsideUnicodeRange:RL(e)?Ee.surrogateCharacterReference:NL(e)?Ee.noncharacterCharacterReference:AL(e)||e===ne.CARRIAGE_RETURN?Ee.controlCharacterReference:null}class sve{constructor(r,n){this.options=r,this.handler=n,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=ae.DATA,this.returnState=ae.DATA,this.entityStartPos=0,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new Wbe(n),this.currentLocation=this.getCurrentLocation(-1),this.entityDecoder=new PL($L,(o,a)=>{this.preprocessor.pos=this.entityStartPos+a-1,this._flushCodePointConsumedAsCharacterReference(o)},n.onParseError?{missingSemicolonAfterCharacterReference:()=>{this._err(Ee.missingSemicolonAfterCharacterReference,1)},absenceOfDigitsInNumericCharacterReference:o=>{this._err(Ee.absenceOfDigitsInNumericCharacterReference,this.entityStartPos-this.preprocessor.pos+o)},validateNumericCharacterReference:o=>{const a=lve(o);a&&this._err(a,1)}}:void 0)}_err(r,n=0){var o,a;(a=(o=this.handler).onParseError)===null||a===void 0||a.call(o,this.preprocessor.getError(r,n))}getCurrentLocation(r){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-r,startOffset:this.preprocessor.offset-r,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;const r=this._consume();this._ensureHibernation()||this._callState(r)}this.inLoop=!1}}pause(){this.paused=!0}resume(r){if(!this.paused)throw new Error("Parser was already resumed");this.paused=!1,!this.inLoop&&(this._runParsingLoop(),this.paused||r?.())}write(r,n,o){this.active=!0,this.preprocessor.write(r,n),this._runParsingLoop(),this.paused||o?.()}insertHtmlAtCurrentPos(r){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(r),this._runParsingLoop()}_ensureHibernation(){return this.preprocessor.endOfChunkHit?(this.preprocessor.retreat(this.consumedAfterSnapshot),this.consumedAfterSnapshot=0,this.active=!1,!0):!1}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_advanceBy(r){this.consumedAfterSnapshot+=r;for(let n=0;n0&&this._err(Ee.endTagWithAttributes),r.selfClosing&&this._err(Ee.endTagWithTrailingSolidus),this.handler.onEndTag(r)),this.preprocessor.dropParsedChunk()}emitCurrentComment(r){this.prepareToken(r),this.handler.onComment(r),this.preprocessor.dropParsedChunk()}emitCurrentDoctype(r){this.prepareToken(r),this.handler.onDoctype(r),this.preprocessor.dropParsedChunk()}_emitCurrentCharacterToken(r){if(this.currentCharacterToken){switch(r&&this.currentCharacterToken.location&&(this.currentCharacterToken.location.endLine=r.startLine,this.currentCharacterToken.location.endCol=r.startCol,this.currentCharacterToken.location.endOffset=r.startOffset),this.currentCharacterToken.type){case Ht.CHARACTER:{this.handler.onCharacter(this.currentCharacterToken);break}case Ht.NULL_CHARACTER:{this.handler.onNullCharacter(this.currentCharacterToken);break}case Ht.WHITESPACE_CHARACTER:{this.handler.onWhitespaceCharacter(this.currentCharacterToken);break}}this.currentCharacterToken=null}}_emitEOFToken(){const r=this.getCurrentLocation(0);r&&(r.endLine=r.startLine,r.endCol=r.startCol,r.endOffset=r.startOffset),this._emitCurrentCharacterToken(r),this.handler.onEof({type:Ht.EOF,location:r}),this.active=!1}_appendCharToCurrentCharacterToken(r,n){if(this.currentCharacterToken)if(this.currentCharacterToken.type===r){this.currentCharacterToken.chars+=n;return}else this.currentLocation=this.getCurrentLocation(0),this._emitCurrentCharacterToken(this.currentLocation),this.preprocessor.dropParsedChunk();this._createCharacterToken(r,n)}_emitCodePoint(r){const n=IL(r)?Ht.WHITESPACE_CHARACTER:r===ne.NULL?Ht.NULL_CHARACTER:Ht.CHARACTER;this._appendCharToCurrentCharacterToken(n,String.fromCodePoint(r))}_emitChars(r){this._appendCharToCurrentCharacterToken(Ht.CHARACTER,r)}_startCharacterReference(){this.returnState=this.state,this.state=ae.CHARACTER_REFERENCE,this.entityStartPos=this.preprocessor.pos,this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute()?Ls.Attribute:Ls.Legacy)}_isCharacterReferenceInAttribute(){return this.returnState===ae.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===ae.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===ae.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(r){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(r):this._emitCodePoint(r)}_callState(r){switch(this.state){case ae.DATA:{this._stateData(r);break}case ae.RCDATA:{this._stateRcdata(r);break}case ae.RAWTEXT:{this._stateRawtext(r);break}case ae.SCRIPT_DATA:{this._stateScriptData(r);break}case ae.PLAINTEXT:{this._statePlaintext(r);break}case ae.TAG_OPEN:{this._stateTagOpen(r);break}case ae.END_TAG_OPEN:{this._stateEndTagOpen(r);break}case ae.TAG_NAME:{this._stateTagName(r);break}case ae.RCDATA_LESS_THAN_SIGN:{this._stateRcdataLessThanSign(r);break}case ae.RCDATA_END_TAG_OPEN:{this._stateRcdataEndTagOpen(r);break}case ae.RCDATA_END_TAG_NAME:{this._stateRcdataEndTagName(r);break}case ae.RAWTEXT_LESS_THAN_SIGN:{this._stateRawtextLessThanSign(r);break}case ae.RAWTEXT_END_TAG_OPEN:{this._stateRawtextEndTagOpen(r);break}case ae.RAWTEXT_END_TAG_NAME:{this._stateRawtextEndTagName(r);break}case ae.SCRIPT_DATA_LESS_THAN_SIGN:{this._stateScriptDataLessThanSign(r);break}case ae.SCRIPT_DATA_END_TAG_OPEN:{this._stateScriptDataEndTagOpen(r);break}case ae.SCRIPT_DATA_END_TAG_NAME:{this._stateScriptDataEndTagName(r);break}case ae.SCRIPT_DATA_ESCAPE_START:{this._stateScriptDataEscapeStart(r);break}case ae.SCRIPT_DATA_ESCAPE_START_DASH:{this._stateScriptDataEscapeStartDash(r);break}case ae.SCRIPT_DATA_ESCAPED:{this._stateScriptDataEscaped(r);break}case ae.SCRIPT_DATA_ESCAPED_DASH:{this._stateScriptDataEscapedDash(r);break}case ae.SCRIPT_DATA_ESCAPED_DASH_DASH:{this._stateScriptDataEscapedDashDash(r);break}case ae.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataEscapedLessThanSign(r);break}case ae.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:{this._stateScriptDataEscapedEndTagOpen(r);break}case ae.SCRIPT_DATA_ESCAPED_END_TAG_NAME:{this._stateScriptDataEscapedEndTagName(r);break}case ae.SCRIPT_DATA_DOUBLE_ESCAPE_START:{this._stateScriptDataDoubleEscapeStart(r);break}case ae.SCRIPT_DATA_DOUBLE_ESCAPED:{this._stateScriptDataDoubleEscaped(r);break}case ae.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:{this._stateScriptDataDoubleEscapedDash(r);break}case ae.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:{this._stateScriptDataDoubleEscapedDashDash(r);break}case ae.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataDoubleEscapedLessThanSign(r);break}case ae.SCRIPT_DATA_DOUBLE_ESCAPE_END:{this._stateScriptDataDoubleEscapeEnd(r);break}case ae.BEFORE_ATTRIBUTE_NAME:{this._stateBeforeAttributeName(r);break}case ae.ATTRIBUTE_NAME:{this._stateAttributeName(r);break}case ae.AFTER_ATTRIBUTE_NAME:{this._stateAfterAttributeName(r);break}case ae.BEFORE_ATTRIBUTE_VALUE:{this._stateBeforeAttributeValue(r);break}case ae.ATTRIBUTE_VALUE_DOUBLE_QUOTED:{this._stateAttributeValueDoubleQuoted(r);break}case ae.ATTRIBUTE_VALUE_SINGLE_QUOTED:{this._stateAttributeValueSingleQuoted(r);break}case ae.ATTRIBUTE_VALUE_UNQUOTED:{this._stateAttributeValueUnquoted(r);break}case ae.AFTER_ATTRIBUTE_VALUE_QUOTED:{this._stateAfterAttributeValueQuoted(r);break}case ae.SELF_CLOSING_START_TAG:{this._stateSelfClosingStartTag(r);break}case ae.BOGUS_COMMENT:{this._stateBogusComment(r);break}case ae.MARKUP_DECLARATION_OPEN:{this._stateMarkupDeclarationOpen(r);break}case ae.COMMENT_START:{this._stateCommentStart(r);break}case ae.COMMENT_START_DASH:{this._stateCommentStartDash(r);break}case ae.COMMENT:{this._stateComment(r);break}case ae.COMMENT_LESS_THAN_SIGN:{this._stateCommentLessThanSign(r);break}case ae.COMMENT_LESS_THAN_SIGN_BANG:{this._stateCommentLessThanSignBang(r);break}case ae.COMMENT_LESS_THAN_SIGN_BANG_DASH:{this._stateCommentLessThanSignBangDash(r);break}case ae.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:{this._stateCommentLessThanSignBangDashDash(r);break}case ae.COMMENT_END_DASH:{this._stateCommentEndDash(r);break}case ae.COMMENT_END:{this._stateCommentEnd(r);break}case ae.COMMENT_END_BANG:{this._stateCommentEndBang(r);break}case ae.DOCTYPE:{this._stateDoctype(r);break}case ae.BEFORE_DOCTYPE_NAME:{this._stateBeforeDoctypeName(r);break}case ae.DOCTYPE_NAME:{this._stateDoctypeName(r);break}case ae.AFTER_DOCTYPE_NAME:{this._stateAfterDoctypeName(r);break}case ae.AFTER_DOCTYPE_PUBLIC_KEYWORD:{this._stateAfterDoctypePublicKeyword(r);break}case ae.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateBeforeDoctypePublicIdentifier(r);break}case ae.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypePublicIdentifierDoubleQuoted(r);break}case ae.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypePublicIdentifierSingleQuoted(r);break}case ae.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateAfterDoctypePublicIdentifier(r);break}case ae.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:{this._stateBetweenDoctypePublicAndSystemIdentifiers(r);break}case ae.AFTER_DOCTYPE_SYSTEM_KEYWORD:{this._stateAfterDoctypeSystemKeyword(r);break}case ae.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateBeforeDoctypeSystemIdentifier(r);break}case ae.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypeSystemIdentifierDoubleQuoted(r);break}case ae.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypeSystemIdentifierSingleQuoted(r);break}case ae.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateAfterDoctypeSystemIdentifier(r);break}case ae.BOGUS_DOCTYPE:{this._stateBogusDoctype(r);break}case ae.CDATA_SECTION:{this._stateCdataSection(r);break}case ae.CDATA_SECTION_BRACKET:{this._stateCdataSectionBracket(r);break}case ae.CDATA_SECTION_END:{this._stateCdataSectionEnd(r);break}case ae.CHARACTER_REFERENCE:{this._stateCharacterReference();break}case ae.AMBIGUOUS_AMPERSAND:{this._stateAmbiguousAmpersand(r);break}default:throw new Error("Unknown state")}}_stateData(r){switch(r){case ne.LESS_THAN_SIGN:{this.state=ae.TAG_OPEN;break}case ne.AMPERSAND:{this._startCharacterReference();break}case ne.NULL:{this._err(Ee.unexpectedNullCharacter),this._emitCodePoint(r);break}case ne.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(r)}}_stateRcdata(r){switch(r){case ne.AMPERSAND:{this._startCharacterReference();break}case ne.LESS_THAN_SIGN:{this.state=ae.RCDATA_LESS_THAN_SIGN;break}case ne.NULL:{this._err(Ee.unexpectedNullCharacter),this._emitChars(Mr);break}case ne.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(r)}}_stateRawtext(r){switch(r){case ne.LESS_THAN_SIGN:{this.state=ae.RAWTEXT_LESS_THAN_SIGN;break}case ne.NULL:{this._err(Ee.unexpectedNullCharacter),this._emitChars(Mr);break}case ne.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(r)}}_stateScriptData(r){switch(r){case ne.LESS_THAN_SIGN:{this.state=ae.SCRIPT_DATA_LESS_THAN_SIGN;break}case ne.NULL:{this._err(Ee.unexpectedNullCharacter),this._emitChars(Mr);break}case ne.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(r)}}_statePlaintext(r){switch(r){case ne.NULL:{this._err(Ee.unexpectedNullCharacter),this._emitChars(Mr);break}case ne.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(r)}}_stateTagOpen(r){if(Wc(r))this._createStartTagToken(),this.state=ae.TAG_NAME,this._stateTagName(r);else switch(r){case ne.EXCLAMATION_MARK:{this.state=ae.MARKUP_DECLARATION_OPEN;break}case ne.SOLIDUS:{this.state=ae.END_TAG_OPEN;break}case ne.QUESTION_MARK:{this._err(Ee.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=ae.BOGUS_COMMENT,this._stateBogusComment(r);break}case ne.EOF:{this._err(Ee.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break}default:this._err(Ee.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=ae.DATA,this._stateData(r)}}_stateEndTagOpen(r){if(Wc(r))this._createEndTagToken(),this.state=ae.TAG_NAME,this._stateTagName(r);else switch(r){case ne.GREATER_THAN_SIGN:{this._err(Ee.missingEndTagName),this.state=ae.DATA;break}case ne.EOF:{this._err(Ee.eofBeforeTagName),this._emitChars("");break}case ne.NULL:{this._err(Ee.unexpectedNullCharacter),this.state=ae.SCRIPT_DATA_ESCAPED,this._emitChars(Mr);break}case ne.EOF:{this._err(Ee.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=ae.SCRIPT_DATA_ESCAPED,this._emitCodePoint(r)}}_stateScriptDataEscapedLessThanSign(r){r===ne.SOLIDUS?this.state=ae.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:Wc(r)?(this._emitChars("<"),this.state=ae.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(r)):(this._emitChars("<"),this.state=ae.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(r))}_stateScriptDataEscapedEndTagOpen(r){Wc(r)?(this.state=ae.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(r)):(this._emitChars("");break}case ne.NULL:{this._err(Ee.unexpectedNullCharacter),this.state=ae.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(Mr);break}case ne.EOF:{this._err(Ee.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=ae.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(r)}}_stateScriptDataDoubleEscapedLessThanSign(r){r===ne.SOLIDUS?(this.state=ae.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=ae.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(r))}_stateScriptDataDoubleEscapeEnd(r){if(this.preprocessor.startsWith(Xo.SCRIPT,!1)&&LL(this.preprocessor.peek(Xo.SCRIPT.length))){this._emitCodePoint(r);for(let n=0;n0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(r,!0)}replace(r,n){const o=this._indexOf(r);this.items[o]=n,o===this.stackTop&&(this.current=n)}insertAfter(r,n,o){const a=this._indexOf(r)+1;this.items.splice(a,0,n),this.tagIDs.splice(a,0,o),this.stackTop++,a===this.stackTop&&this._updateCurrentElement(),this.handler.onItemPush(this.current,this.currentTagId,a===this.stackTop)}popUntilTagNamePopped(r){let n=this.stackTop+1;do n=this.tagIDs.lastIndexOf(r,n-1);while(n>0&&this.treeAdapter.getNamespaceURI(this.items[n])!==Pe.HTML);this.shortenToLength(n<0?0:n)}shortenToLength(r){for(;this.stackTop>=r;){const n=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(n,this.stackTop=0;o--)if(r.has(this.tagIDs[o])&&this.treeAdapter.getNamespaceURI(this.items[o])===n)return o;return-1}clearBackTo(r,n){const o=this._indexOfTagNames(r,n);this.shortenToLength(o+1)}clearBackToTableContext(){this.clearBackTo(hve,Pe.HTML)}clearBackToTableBodyContext(){this.clearBackTo(pve,Pe.HTML)}clearBackToTableRowContext(){this.clearBackTo(dve,Pe.HTML)}remove(r){const n=this._indexOf(r);n>=0&&(n===this.stackTop?this.pop():(this.items.splice(n,1),this.tagIDs.splice(n,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(r,!1)))}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===H.BODY?this.items[1]:null}contains(r){return this._indexOf(r)>-1}getCommonAncestor(r){const n=this._indexOf(r)-1;return n>=0?this.items[n]:null}isRootHtmlElementCurrent(){return this.stackTop===0&&this.tagIDs[0]===H.HTML}hasInDynamicScope(r,n){for(let o=this.stackTop;o>=0;o--){const a=this.tagIDs[o];switch(this.treeAdapter.getNamespaceURI(this.items[o])){case Pe.HTML:{if(a===r)return!0;if(n.has(a))return!1;break}case Pe.SVG:{if(FL.has(a))return!1;break}case Pe.MATHML:{if(BL.has(a))return!1;break}}}return!0}hasInScope(r){return this.hasInDynamicScope(r,f3)}hasInListItemScope(r){return this.hasInDynamicScope(r,cve)}hasInButtonScope(r){return this.hasInDynamicScope(r,uve)}hasNumberedHeaderInScope(){for(let r=this.stackTop;r>=0;r--){const n=this.tagIDs[r];switch(this.treeAdapter.getNamespaceURI(this.items[r])){case Pe.HTML:{if(q6.has(n))return!0;if(f3.has(n))return!1;break}case Pe.SVG:{if(FL.has(n))return!1;break}case Pe.MATHML:{if(BL.has(n))return!1;break}}}return!0}hasInTableScope(r){for(let n=this.stackTop;n>=0;n--)if(this.treeAdapter.getNamespaceURI(this.items[n])===Pe.HTML)switch(this.tagIDs[n]){case r:return!0;case H.TABLE:case H.HTML:return!1}return!0}hasTableBodyContextInTableScope(){for(let r=this.stackTop;r>=0;r--)if(this.treeAdapter.getNamespaceURI(this.items[r])===Pe.HTML)switch(this.tagIDs[r]){case H.TBODY:case H.THEAD:case H.TFOOT:return!0;case H.TABLE:case H.HTML:return!1}return!0}hasInSelectScope(r){for(let n=this.stackTop;n>=0;n--)if(this.treeAdapter.getNamespaceURI(this.items[n])===Pe.HTML)switch(this.tagIDs[n]){case r:return!0;case H.OPTION:case H.OPTGROUP:break;default:return!1}return!0}generateImpliedEndTags(){for(;zL.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;jL.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(r){for(;this.currentTagId!==r&&jL.has(this.currentTagId);)this.pop()}}const V6=3;var Vl;(function(e){e[e.Marker=0]="Marker",e[e.Element=1]="Element"})(Vl||(Vl={}));const HL={type:Vl.Marker};class gve{constructor(r){this.treeAdapter=r,this.entries=[],this.bookmark=null}_getNoahArkConditionCandidates(r,n){const o=[],a=n.length,i=this.treeAdapter.getTagName(r),l=this.treeAdapter.getNamespaceURI(r);for(let s=0;s[l.name,l.value]));let i=0;for(let l=0;la.get(c.name)===c.value)&&(i+=1,i>=V6&&this.entries.splice(s.idx,1))}}insertMarker(){this.entries.unshift(HL)}pushElement(r,n){this._ensureNoahArkCondition(r),this.entries.unshift({type:Vl.Element,element:r,token:n})}insertElementAfterBookmark(r,n){const o=this.entries.indexOf(this.bookmark);this.entries.splice(o,0,{type:Vl.Element,element:r,token:n})}removeEntry(r){const n=this.entries.indexOf(r);n>=0&&this.entries.splice(n,1)}clearToLastMarker(){const r=this.entries.indexOf(HL);r>=0?this.entries.splice(0,r+1):this.entries.length=0}getElementEntryInScopeWithTagName(r){const n=this.entries.find(o=>o.type===Vl.Marker||this.treeAdapter.getTagName(o.element)===r);return n&&n.type===Vl.Element?n:null}getElementEntry(r){return this.entries.find(n=>n.type===Vl.Element&&n.element===r)}}const Gc={createDocument(){return{nodeName:"#document",mode:Ja.NO_QUIRKS,childNodes:[]}},createDocumentFragment(){return{nodeName:"#document-fragment",childNodes:[]}},createElement(e,r,n){return{nodeName:e,tagName:e,attrs:n,namespaceURI:r,childNodes:[],parentNode:null}},createCommentNode(e){return{nodeName:"#comment",data:e,parentNode:null}},createTextNode(e){return{nodeName:"#text",value:e,parentNode:null}},appendChild(e,r){e.childNodes.push(r),r.parentNode=e},insertBefore(e,r,n){const o=e.childNodes.indexOf(n);e.childNodes.splice(o,0,r),r.parentNode=e},setTemplateContent(e,r){e.content=r},getTemplateContent(e){return e.content},setDocumentType(e,r,n,o){const a=e.childNodes.find(i=>i.nodeName==="#documentType");if(a)a.name=r,a.publicId=n,a.systemId=o;else{const i={nodeName:"#documentType",name:r,publicId:n,systemId:o,parentNode:null};Gc.appendChild(e,i)}},setDocumentMode(e,r){e.mode=r},getDocumentMode(e){return e.mode},detachNode(e){if(e.parentNode){const r=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(r,1),e.parentNode=null}},insertText(e,r){if(e.childNodes.length>0){const n=e.childNodes[e.childNodes.length-1];if(Gc.isTextNode(n)){n.value+=r;return}}Gc.appendChild(e,Gc.createTextNode(r))},insertTextBefore(e,r,n){const o=e.childNodes[e.childNodes.indexOf(n)-1];o&&Gc.isTextNode(o)?o.value+=r:Gc.insertBefore(e,Gc.createTextNode(r),n)},adoptAttributes(e,r){const n=new Set(e.attrs.map(o=>o.name));for(let o=0;oe.startsWith(n))}function kve(e){return e.name===UL&&e.publicId===null&&(e.systemId===null||e.systemId===yve)}function _ve(e){if(e.name!==UL)return Ja.QUIRKS;const{systemId:r}=e;if(r&&r.toLowerCase()===bve)return Ja.QUIRKS;let{publicId:n}=e;if(n!==null){if(n=n.toLowerCase(),xve.has(n))return Ja.QUIRKS;let o=r===null?vve:qL;if(YL(n,o))return Ja.QUIRKS;if(o=r===null?VL:wve,YL(n,o))return Ja.LIMITED_QUIRKS}return Ja.NO_QUIRKS}const WL={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},Eve="definitionurl",Sve="definitionURL",Cve=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(e=>[e.toLowerCase(),e])),Tve=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:Pe.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:Pe.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:Pe.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:Pe.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:Pe.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:Pe.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:Pe.XLINK}],["xml:lang",{prefix:"xml",name:"lang",namespace:Pe.XML}],["xml:space",{prefix:"xml",name:"space",namespace:Pe.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:Pe.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:Pe.XMLNS}]]),Rve=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(e=>[e.toLowerCase(),e])),Ave=new Set([H.B,H.BIG,H.BLOCKQUOTE,H.BODY,H.BR,H.CENTER,H.CODE,H.DD,H.DIV,H.DL,H.DT,H.EM,H.EMBED,H.H1,H.H2,H.H3,H.H4,H.H5,H.H6,H.HEAD,H.HR,H.I,H.IMG,H.LI,H.LISTING,H.MENU,H.META,H.NOBR,H.OL,H.P,H.PRE,H.RUBY,H.S,H.SMALL,H.SPAN,H.STRONG,H.STRIKE,H.SUB,H.SUP,H.TABLE,H.TT,H.U,H.UL,H.VAR]);function Nve(e){const r=e.tagID;return r===H.FONT&&e.attrs.some(({name:o})=>o===Ed.COLOR||o===Ed.SIZE||o===Ed.FACE)||Ave.has(r)}function GL(e){for(let r=0;r0&&this._setContextModes(r,n)}onItemPop(r,n){var o,a;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(r,this.currentToken),(a=(o=this.treeAdapter).onItemPop)===null||a===void 0||a.call(o,r,this.openElements.current),n){let i,l;this.openElements.stackTop===0&&this.fragmentContext?(i=this.fragmentContext,l=this.fragmentContextID):{current:i,currentTagId:l}=this.openElements,this._setContextModes(i,l)}}_setContextModes(r,n){const o=r===this.document||this.treeAdapter.getNamespaceURI(r)===Pe.HTML;this.currentNotInHTML=!o,this.tokenizer.inForeignNode=!o&&!this._isIntegrationPoint(n,r)}_switchToTextParsing(r,n){this._insertElement(r,Pe.HTML),this.tokenizer.state=n,this.originalInsertionMode=this.insertionMode,this.insertionMode=le.TEXT}switchToPlaintextParsing(){this.insertionMode=le.TEXT,this.originalInsertionMode=le.IN_BODY,this.tokenizer.state=on.PLAINTEXT}_getAdjustedCurrentElement(){return this.openElements.stackTop===0&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let r=this.fragmentContext;for(;r;){if(this.treeAdapter.getTagName(r)===me.FORM){this.formElement=r;break}r=this.treeAdapter.getParentNode(r)}}_initTokenizerForFragmentParsing(){if(!(!this.fragmentContext||this.treeAdapter.getNamespaceURI(this.fragmentContext)!==Pe.HTML))switch(this.fragmentContextID){case H.TITLE:case H.TEXTAREA:{this.tokenizer.state=on.RCDATA;break}case H.STYLE:case H.XMP:case H.IFRAME:case H.NOEMBED:case H.NOFRAMES:case H.NOSCRIPT:{this.tokenizer.state=on.RAWTEXT;break}case H.SCRIPT:{this.tokenizer.state=on.SCRIPT_DATA;break}case H.PLAINTEXT:{this.tokenizer.state=on.PLAINTEXT;break}}}_setDocumentType(r){const n=r.name||"",o=r.publicId||"",a=r.systemId||"";if(this.treeAdapter.setDocumentType(this.document,n,o,a),r.location){const l=this.treeAdapter.getChildNodes(this.document).find(s=>this.treeAdapter.isDocumentTypeNode(s));l&&this.treeAdapter.setNodeSourceCodeLocation(l,r.location)}}_attachElementToTree(r,n){if(this.options.sourceCodeLocationInfo){const o=n&&{...n,startTag:n};this.treeAdapter.setNodeSourceCodeLocation(r,o)}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(r);else{const o=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(o,r)}}_appendElement(r,n){const o=this.treeAdapter.createElement(r.tagName,n,r.attrs);this._attachElementToTree(o,r.location)}_insertElement(r,n){const o=this.treeAdapter.createElement(r.tagName,n,r.attrs);this._attachElementToTree(o,r.location),this.openElements.push(o,r.tagID)}_insertFakeElement(r,n){const o=this.treeAdapter.createElement(r,Pe.HTML,[]);this._attachElementToTree(o,null),this.openElements.push(o,n)}_insertTemplate(r){const n=this.treeAdapter.createElement(r.tagName,Pe.HTML,r.attrs),o=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(n,o),this._attachElementToTree(n,r.location),this.openElements.push(n,r.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(o,null)}_insertFakeRootElement(){const r=this.treeAdapter.createElement(me.HTML,Pe.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(r,null),this.treeAdapter.appendChild(this.openElements.current,r),this.openElements.push(r,H.HTML)}_appendCommentNode(r,n){const o=this.treeAdapter.createCommentNode(r.data);this.treeAdapter.appendChild(n,o),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(o,r.location)}_insertCharacters(r){let n,o;if(this._shouldFosterParentOnInsertion()?({parent:n,beforeElement:o}=this._findFosterParentingLocation(),o?this.treeAdapter.insertTextBefore(n,r.chars,o):this.treeAdapter.insertText(n,r.chars)):(n=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(n,r.chars)),!r.location)return;const a=this.treeAdapter.getChildNodes(n),i=o?a.lastIndexOf(o):a.length,l=a[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(l)){const{endLine:c,endCol:u,endOffset:d}=r.location;this.treeAdapter.updateNodeSourceCodeLocation(l,{endLine:c,endCol:u,endOffset:d})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(l,r.location)}_adoptNodes(r,n){for(let o=this.treeAdapter.getFirstChild(r);o;o=this.treeAdapter.getFirstChild(r))this.treeAdapter.detachNode(o),this.treeAdapter.appendChild(n,o)}_setEndLocation(r,n){if(this.treeAdapter.getNodeSourceCodeLocation(r)&&n.location){const o=n.location,a=this.treeAdapter.getTagName(r),i=n.type===Ht.END_TAG&&a===n.tagName?{endTag:{...o},endLine:o.endLine,endCol:o.endCol,endOffset:o.endOffset}:{endLine:o.startLine,endCol:o.startCol,endOffset:o.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(r,i)}}shouldProcessStartTagTokenInForeignContent(r){if(!this.currentNotInHTML)return!1;let n,o;return this.openElements.stackTop===0&&this.fragmentContext?(n=this.fragmentContext,o=this.fragmentContextID):{current:n,currentTagId:o}=this.openElements,r.tagID===H.SVG&&this.treeAdapter.getTagName(n)===me.ANNOTATION_XML&&this.treeAdapter.getNamespaceURI(n)===Pe.MATHML?!1:this.tokenizer.inForeignNode||(r.tagID===H.MGLYPH||r.tagID===H.MALIGNMARK)&&!this._isIntegrationPoint(o,n,Pe.HTML)}_processToken(r){switch(r.type){case Ht.CHARACTER:{this.onCharacter(r);break}case Ht.NULL_CHARACTER:{this.onNullCharacter(r);break}case Ht.COMMENT:{this.onComment(r);break}case Ht.DOCTYPE:{this.onDoctype(r);break}case Ht.START_TAG:{this._processStartTag(r);break}case Ht.END_TAG:{this.onEndTag(r);break}case Ht.EOF:{this.onEof(r);break}case Ht.WHITESPACE_CHARACTER:{this.onWhitespaceCharacter(r);break}}}_isIntegrationPoint(r,n,o){const a=this.treeAdapter.getNamespaceURI(n),i=this.treeAdapter.getAttrList(n);return Ove(r,a,i,o)}_reconstructActiveFormattingElements(){const r=this.activeFormattingElements.entries.length;if(r){const n=this.activeFormattingElements.entries.findIndex(a=>a.type===Vl.Marker||this.openElements.contains(a.element)),o=n<0?r-1:n-1;for(let a=o;a>=0;a--){const i=this.activeFormattingElements.entries[a];this._insertElement(i.token,this.treeAdapter.getNamespaceURI(i.element)),i.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=le.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(H.P),this.openElements.popUntilTagNamePopped(H.P)}_resetInsertionMode(){for(let r=this.openElements.stackTop;r>=0;r--)switch(r===0&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[r]){case H.TR:{this.insertionMode=le.IN_ROW;return}case H.TBODY:case H.THEAD:case H.TFOOT:{this.insertionMode=le.IN_TABLE_BODY;return}case H.CAPTION:{this.insertionMode=le.IN_CAPTION;return}case H.COLGROUP:{this.insertionMode=le.IN_COLUMN_GROUP;return}case H.TABLE:{this.insertionMode=le.IN_TABLE;return}case H.BODY:{this.insertionMode=le.IN_BODY;return}case H.FRAMESET:{this.insertionMode=le.IN_FRAMESET;return}case H.SELECT:{this._resetInsertionModeForSelect(r);return}case H.TEMPLATE:{this.insertionMode=this.tmplInsertionModeStack[0];return}case H.HTML:{this.insertionMode=this.headElement?le.AFTER_HEAD:le.BEFORE_HEAD;return}case H.TD:case H.TH:{if(r>0){this.insertionMode=le.IN_CELL;return}break}case H.HEAD:{if(r>0){this.insertionMode=le.IN_HEAD;return}break}}this.insertionMode=le.IN_BODY}_resetInsertionModeForSelect(r){if(r>0)for(let n=r-1;n>0;n--){const o=this.openElements.tagIDs[n];if(o===H.TEMPLATE)break;if(o===H.TABLE){this.insertionMode=le.IN_SELECT_IN_TABLE;return}}this.insertionMode=le.IN_SELECT}_isElementCausesFosterParenting(r){return KL.has(r)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let r=this.openElements.stackTop;r>=0;r--){const n=this.openElements.items[r];switch(this.openElements.tagIDs[r]){case H.TEMPLATE:{if(this.treeAdapter.getNamespaceURI(n)===Pe.HTML)return{parent:this.treeAdapter.getTemplateContent(n),beforeElement:null};break}case H.TABLE:{const o=this.treeAdapter.getParentNode(n);return o?{parent:o,beforeElement:n}:{parent:this.openElements.items[r-1],beforeElement:null}}}}return{parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(r){const n=this._findFosterParentingLocation();n.beforeElement?this.treeAdapter.insertBefore(n.parent,r,n.beforeElement):this.treeAdapter.appendChild(n.parent,r)}_isSpecialElement(r,n){const o=this.treeAdapter.getNamespaceURI(r);return ove[o].has(n)}onCharacter(r){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){fxe(this,r);return}switch(this.insertionMode){case le.INITIAL:{T1(this,r);break}case le.BEFORE_HTML:{R1(this,r);break}case le.BEFORE_HEAD:{A1(this,r);break}case le.IN_HEAD:{N1(this,r);break}case le.IN_HEAD_NO_SCRIPT:{D1(this,r);break}case le.AFTER_HEAD:{$1(this,r);break}case le.IN_BODY:case le.IN_CAPTION:case le.IN_CELL:case le.IN_TEMPLATE:{ez(this,r);break}case le.TEXT:case le.IN_SELECT:case le.IN_SELECT_IN_TABLE:{this._insertCharacters(r);break}case le.IN_TABLE:case le.IN_TABLE_BODY:case le.IN_ROW:{K6(this,r);break}case le.IN_TABLE_TEXT:{sz(this,r);break}case le.IN_COLUMN_GROUP:{y3(this,r);break}case le.AFTER_BODY:{x3(this,r);break}case le.AFTER_AFTER_BODY:{w3(this,r);break}}}onNullCharacter(r){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){hxe(this,r);return}switch(this.insertionMode){case le.INITIAL:{T1(this,r);break}case le.BEFORE_HTML:{R1(this,r);break}case le.BEFORE_HEAD:{A1(this,r);break}case le.IN_HEAD:{N1(this,r);break}case le.IN_HEAD_NO_SCRIPT:{D1(this,r);break}case le.AFTER_HEAD:{$1(this,r);break}case le.TEXT:{this._insertCharacters(r);break}case le.IN_TABLE:case le.IN_TABLE_BODY:case le.IN_ROW:{K6(this,r);break}case le.IN_COLUMN_GROUP:{y3(this,r);break}case le.AFTER_BODY:{x3(this,r);break}case le.AFTER_AFTER_BODY:{w3(this,r);break}}}onComment(r){if(this.skipNextNewLine=!1,this.currentNotInHTML){G6(this,r);return}switch(this.insertionMode){case le.INITIAL:case le.BEFORE_HTML:case le.BEFORE_HEAD:case le.IN_HEAD:case le.IN_HEAD_NO_SCRIPT:case le.AFTER_HEAD:case le.IN_BODY:case le.IN_TABLE:case le.IN_CAPTION:case le.IN_COLUMN_GROUP:case le.IN_TABLE_BODY:case le.IN_ROW:case le.IN_CELL:case le.IN_SELECT:case le.IN_SELECT_IN_TABLE:case le.IN_TEMPLATE:case le.IN_FRAMESET:case le.AFTER_FRAMESET:{G6(this,r);break}case le.IN_TABLE_TEXT:{M1(this,r);break}case le.AFTER_BODY:{Vve(this,r);break}case le.AFTER_AFTER_BODY:case le.AFTER_AFTER_FRAMESET:{Yve(this,r);break}}}onDoctype(r){switch(this.skipNextNewLine=!1,this.insertionMode){case le.INITIAL:{Wve(this,r);break}case le.BEFORE_HEAD:case le.IN_HEAD:case le.IN_HEAD_NO_SCRIPT:case le.AFTER_HEAD:{this._err(r,Ee.misplacedDoctype);break}case le.IN_TABLE_TEXT:{M1(this,r);break}}}onStartTag(r){this.skipNextNewLine=!1,this.currentToken=r,this._processStartTag(r),r.selfClosing&&!r.ackSelfClosing&&this._err(r,Ee.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(r){this.shouldProcessStartTagTokenInForeignContent(r)?mxe(this,r):this._startTagOutsideForeignContent(r)}_startTagOutsideForeignContent(r){switch(this.insertionMode){case le.INITIAL:{T1(this,r);break}case le.BEFORE_HTML:{Gve(this,r);break}case le.BEFORE_HEAD:{Kve(this,r);break}case le.IN_HEAD:{Hi(this,r);break}case le.IN_HEAD_NO_SCRIPT:{Jve(this,r);break}case le.AFTER_HEAD:{t3e(this,r);break}case le.IN_BODY:{So(this,r);break}case le.IN_TABLE:{Fh(this,r);break}case le.IN_TABLE_TEXT:{M1(this,r);break}case le.IN_CAPTION:{Z3e(this,r);break}case le.IN_COLUMN_GROUP:{Z6(this,r);break}case le.IN_TABLE_BODY:{b3(this,r);break}case le.IN_ROW:{v3(this,r);break}case le.IN_CELL:{exe(this,r);break}case le.IN_SELECT:{dz(this,r);break}case le.IN_SELECT_IN_TABLE:{rxe(this,r);break}case le.IN_TEMPLATE:{oxe(this,r);break}case le.AFTER_BODY:{ixe(this,r);break}case le.IN_FRAMESET:{lxe(this,r);break}case le.AFTER_FRAMESET:{cxe(this,r);break}case le.AFTER_AFTER_BODY:{dxe(this,r);break}case le.AFTER_AFTER_FRAMESET:{pxe(this,r);break}}}onEndTag(r){this.skipNextNewLine=!1,this.currentToken=r,this.currentNotInHTML?gxe(this,r):this._endTagOutsideForeignContent(r)}_endTagOutsideForeignContent(r){switch(this.insertionMode){case le.INITIAL:{T1(this,r);break}case le.BEFORE_HTML:{Xve(this,r);break}case le.BEFORE_HEAD:{Zve(this,r);break}case le.IN_HEAD:{Qve(this,r);break}case le.IN_HEAD_NO_SCRIPT:{e3e(this,r);break}case le.AFTER_HEAD:{r3e(this,r);break}case le.IN_BODY:{g3(this,r);break}case le.TEXT:{F3e(this,r);break}case le.IN_TABLE:{P1(this,r);break}case le.IN_TABLE_TEXT:{M1(this,r);break}case le.IN_CAPTION:{Q3e(this,r);break}case le.IN_COLUMN_GROUP:{J3e(this,r);break}case le.IN_TABLE_BODY:{Q6(this,r);break}case le.IN_ROW:{uz(this,r);break}case le.IN_CELL:{txe(this,r);break}case le.IN_SELECT:{pz(this,r);break}case le.IN_SELECT_IN_TABLE:{nxe(this,r);break}case le.IN_TEMPLATE:{axe(this,r);break}case le.AFTER_BODY:{fz(this,r);break}case le.IN_FRAMESET:{sxe(this,r);break}case le.AFTER_FRAMESET:{uxe(this,r);break}case le.AFTER_AFTER_BODY:{w3(this,r);break}}}onEof(r){switch(this.insertionMode){case le.INITIAL:{T1(this,r);break}case le.BEFORE_HTML:{R1(this,r);break}case le.BEFORE_HEAD:{A1(this,r);break}case le.IN_HEAD:{N1(this,r);break}case le.IN_HEAD_NO_SCRIPT:{D1(this,r);break}case le.AFTER_HEAD:{$1(this,r);break}case le.IN_BODY:case le.IN_TABLE:case le.IN_CAPTION:case le.IN_COLUMN_GROUP:case le.IN_TABLE_BODY:case le.IN_ROW:case le.IN_CELL:case le.IN_SELECT:case le.IN_SELECT_IN_TABLE:{iz(this,r);break}case le.TEXT:{H3e(this,r);break}case le.IN_TABLE_TEXT:{M1(this,r);break}case le.IN_TEMPLATE:{hz(this,r);break}case le.AFTER_BODY:case le.IN_FRAMESET:case le.AFTER_FRAMESET:case le.AFTER_AFTER_BODY:case le.AFTER_AFTER_FRAMESET:{X6(this,r);break}}}onWhitespaceCharacter(r){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,r.chars.charCodeAt(0)===ne.LINE_FEED)){if(r.chars.length===1)return;r.chars=r.chars.substr(1)}if(this.tokenizer.inForeignNode){this._insertCharacters(r);return}switch(this.insertionMode){case le.IN_HEAD:case le.IN_HEAD_NO_SCRIPT:case le.AFTER_HEAD:case le.TEXT:case le.IN_COLUMN_GROUP:case le.IN_SELECT:case le.IN_SELECT_IN_TABLE:case le.IN_FRAMESET:case le.AFTER_FRAMESET:{this._insertCharacters(r);break}case le.IN_BODY:case le.IN_CAPTION:case le.IN_CELL:case le.IN_TEMPLATE:case le.AFTER_BODY:case le.AFTER_AFTER_BODY:case le.AFTER_AFTER_FRAMESET:{JL(this,r);break}case le.IN_TABLE:case le.IN_TABLE_BODY:case le.IN_ROW:{K6(this,r);break}case le.IN_TABLE_TEXT:{lz(this,r);break}}}}function jve(e,r){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(r.tagName);return n?e.openElements.contains(n.element)?e.openElements.hasInScope(r.tagID)||(n=null):(e.activeFormattingElements.removeEntry(n),n=null):az(e,r),n}function Bve(e,r){let n=null,o=e.openElements.stackTop;for(;o>=0;o--){const a=e.openElements.items[o];if(a===r.element)break;e._isSpecialElement(a,e.openElements.tagIDs[o])&&(n=a)}return n||(e.openElements.shortenToLength(o<0?0:o),e.activeFormattingElements.removeEntry(r)),n}function Fve(e,r,n){let o=r,a=e.openElements.getCommonAncestor(r);for(let i=0,l=a;l!==n;i++,l=a){a=e.openElements.getCommonAncestor(l);const s=e.activeFormattingElements.getElementEntry(l),c=s&&i>=Lve;!s||c?(c&&e.activeFormattingElements.removeEntry(s),e.openElements.remove(l)):(l=Hve(e,s),o===r&&(e.activeFormattingElements.bookmark=s),e.treeAdapter.detachNode(o),e.treeAdapter.appendChild(l,o),o=l)}return o}function Hve(e,r){const n=e.treeAdapter.getNamespaceURI(r.element),o=e.treeAdapter.createElement(r.token.tagName,n,r.token.attrs);return e.openElements.replace(r.element,o),r.element=o,o}function Uve(e,r,n){const o=e.treeAdapter.getTagName(r),a=Bh(o);if(e._isElementCausesFosterParenting(a))e._fosterParentElement(n);else{const i=e.treeAdapter.getNamespaceURI(r);a===H.TEMPLATE&&i===Pe.HTML&&(r=e.treeAdapter.getTemplateContent(r)),e.treeAdapter.appendChild(r,n)}}function qve(e,r,n){const o=e.treeAdapter.getNamespaceURI(n.element),{token:a}=n,i=e.treeAdapter.createElement(a.tagName,o,a.attrs);e._adoptNodes(r,i),e.treeAdapter.appendChild(r,i),e.activeFormattingElements.insertElementAfterBookmark(i,a),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(r,i,a.tagID)}function W6(e,r){for(let n=0;n=n;o--)e._setEndLocation(e.openElements.items[o],r);if(!e.fragmentContext&&e.openElements.stackTop>=0){const o=e.openElements.items[0],a=e.treeAdapter.getNodeSourceCodeLocation(o);if(a&&!a.endTag&&(e._setEndLocation(o,r),e.openElements.stackTop>=1)){const i=e.openElements.items[1],l=e.treeAdapter.getNodeSourceCodeLocation(i);l&&!l.endTag&&e._setEndLocation(i,r)}}}}function Wve(e,r){e._setDocumentType(r);const n=r.forceQuirks?Ja.QUIRKS:_ve(r);kve(r)||e._err(r,Ee.nonConformingDoctype),e.treeAdapter.setDocumentMode(e.document,n),e.insertionMode=le.BEFORE_HTML}function T1(e,r){e._err(r,Ee.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,Ja.QUIRKS),e.insertionMode=le.BEFORE_HTML,e._processToken(r)}function Gve(e,r){r.tagID===H.HTML?(e._insertElement(r,Pe.HTML),e.insertionMode=le.BEFORE_HEAD):R1(e,r)}function Xve(e,r){const n=r.tagID;(n===H.HTML||n===H.HEAD||n===H.BODY||n===H.BR)&&R1(e,r)}function R1(e,r){e._insertFakeRootElement(),e.insertionMode=le.BEFORE_HEAD,e._processToken(r)}function Kve(e,r){switch(r.tagID){case H.HTML:{So(e,r);break}case H.HEAD:{e._insertElement(r,Pe.HTML),e.headElement=e.openElements.current,e.insertionMode=le.IN_HEAD;break}default:A1(e,r)}}function Zve(e,r){const n=r.tagID;n===H.HEAD||n===H.BODY||n===H.HTML||n===H.BR?A1(e,r):e._err(r,Ee.endTagWithoutMatchingOpenElement)}function A1(e,r){e._insertFakeElement(me.HEAD,H.HEAD),e.headElement=e.openElements.current,e.insertionMode=le.IN_HEAD,e._processToken(r)}function Hi(e,r){switch(r.tagID){case H.HTML:{So(e,r);break}case H.BASE:case H.BASEFONT:case H.BGSOUND:case H.LINK:case H.META:{e._appendElement(r,Pe.HTML),r.ackSelfClosing=!0;break}case H.TITLE:{e._switchToTextParsing(r,on.RCDATA);break}case H.NOSCRIPT:{e.options.scriptingEnabled?e._switchToTextParsing(r,on.RAWTEXT):(e._insertElement(r,Pe.HTML),e.insertionMode=le.IN_HEAD_NO_SCRIPT);break}case H.NOFRAMES:case H.STYLE:{e._switchToTextParsing(r,on.RAWTEXT);break}case H.SCRIPT:{e._switchToTextParsing(r,on.SCRIPT_DATA);break}case H.TEMPLATE:{e._insertTemplate(r),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=le.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(le.IN_TEMPLATE);break}case H.HEAD:{e._err(r,Ee.misplacedStartTagForHeadElement);break}default:N1(e,r)}}function Qve(e,r){switch(r.tagID){case H.HEAD:{e.openElements.pop(),e.insertionMode=le.AFTER_HEAD;break}case H.BODY:case H.BR:case H.HTML:{N1(e,r);break}case H.TEMPLATE:{Sd(e,r);break}default:e._err(r,Ee.endTagWithoutMatchingOpenElement)}}function Sd(e,r){e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagId!==H.TEMPLATE&&e._err(r,Ee.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(H.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode()):e._err(r,Ee.endTagWithoutMatchingOpenElement)}function N1(e,r){e.openElements.pop(),e.insertionMode=le.AFTER_HEAD,e._processToken(r)}function Jve(e,r){switch(r.tagID){case H.HTML:{So(e,r);break}case H.BASEFONT:case H.BGSOUND:case H.HEAD:case H.LINK:case H.META:case H.NOFRAMES:case H.STYLE:{Hi(e,r);break}case H.NOSCRIPT:{e._err(r,Ee.nestedNoscriptInHead);break}default:D1(e,r)}}function e3e(e,r){switch(r.tagID){case H.NOSCRIPT:{e.openElements.pop(),e.insertionMode=le.IN_HEAD;break}case H.BR:{D1(e,r);break}default:e._err(r,Ee.endTagWithoutMatchingOpenElement)}}function D1(e,r){const n=r.type===Ht.EOF?Ee.openElementsLeftAfterEof:Ee.disallowedContentInNoscriptInHead;e._err(r,n),e.openElements.pop(),e.insertionMode=le.IN_HEAD,e._processToken(r)}function t3e(e,r){switch(r.tagID){case H.HTML:{So(e,r);break}case H.BODY:{e._insertElement(r,Pe.HTML),e.framesetOk=!1,e.insertionMode=le.IN_BODY;break}case H.FRAMESET:{e._insertElement(r,Pe.HTML),e.insertionMode=le.IN_FRAMESET;break}case H.BASE:case H.BASEFONT:case H.BGSOUND:case H.LINK:case H.META:case H.NOFRAMES:case H.SCRIPT:case H.STYLE:case H.TEMPLATE:case H.TITLE:{e._err(r,Ee.abandonedHeadElementChild),e.openElements.push(e.headElement,H.HEAD),Hi(e,r),e.openElements.remove(e.headElement);break}case H.HEAD:{e._err(r,Ee.misplacedStartTagForHeadElement);break}default:$1(e,r)}}function r3e(e,r){switch(r.tagID){case H.BODY:case H.HTML:case H.BR:{$1(e,r);break}case H.TEMPLATE:{Sd(e,r);break}default:e._err(r,Ee.endTagWithoutMatchingOpenElement)}}function $1(e,r){e._insertFakeElement(me.BODY,H.BODY),e.insertionMode=le.IN_BODY,m3(e,r)}function m3(e,r){switch(r.type){case Ht.CHARACTER:{ez(e,r);break}case Ht.WHITESPACE_CHARACTER:{JL(e,r);break}case Ht.COMMENT:{G6(e,r);break}case Ht.START_TAG:{So(e,r);break}case Ht.END_TAG:{g3(e,r);break}case Ht.EOF:{iz(e,r);break}}}function JL(e,r){e._reconstructActiveFormattingElements(),e._insertCharacters(r)}function ez(e,r){e._reconstructActiveFormattingElements(),e._insertCharacters(r),e.framesetOk=!1}function n3e(e,r){e.openElements.tmplCount===0&&e.treeAdapter.adoptAttributes(e.openElements.items[0],r.attrs)}function o3e(e,r){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e.openElements.tmplCount===0&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,r.attrs))}function a3e(e,r){const n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(r,Pe.HTML),e.insertionMode=le.IN_FRAMESET)}function i3e(e,r){e.openElements.hasInButtonScope(H.P)&&e._closePElement(),e._insertElement(r,Pe.HTML)}function l3e(e,r){e.openElements.hasInButtonScope(H.P)&&e._closePElement(),q6.has(e.openElements.currentTagId)&&e.openElements.pop(),e._insertElement(r,Pe.HTML)}function s3e(e,r){e.openElements.hasInButtonScope(H.P)&&e._closePElement(),e._insertElement(r,Pe.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function c3e(e,r){const n=e.openElements.tmplCount>0;(!e.formElement||n)&&(e.openElements.hasInButtonScope(H.P)&&e._closePElement(),e._insertElement(r,Pe.HTML),n||(e.formElement=e.openElements.current))}function u3e(e,r){e.framesetOk=!1;const n=r.tagID;for(let o=e.openElements.stackTop;o>=0;o--){const a=e.openElements.tagIDs[o];if(n===H.LI&&a===H.LI||(n===H.DD||n===H.DT)&&(a===H.DD||a===H.DT)){e.openElements.generateImpliedEndTagsWithExclusion(a),e.openElements.popUntilTagNamePopped(a);break}if(a!==H.ADDRESS&&a!==H.DIV&&a!==H.P&&e._isSpecialElement(e.openElements.items[o],a))break}e.openElements.hasInButtonScope(H.P)&&e._closePElement(),e._insertElement(r,Pe.HTML)}function d3e(e,r){e.openElements.hasInButtonScope(H.P)&&e._closePElement(),e._insertElement(r,Pe.HTML),e.tokenizer.state=on.PLAINTEXT}function p3e(e,r){e.openElements.hasInScope(H.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(H.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(r,Pe.HTML),e.framesetOk=!1}function h3e(e,r){const n=e.activeFormattingElements.getElementEntryInScopeWithTagName(me.A);n&&(W6(e,r),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(r,Pe.HTML),e.activeFormattingElements.pushElement(e.openElements.current,r)}function f3e(e,r){e._reconstructActiveFormattingElements(),e._insertElement(r,Pe.HTML),e.activeFormattingElements.pushElement(e.openElements.current,r)}function m3e(e,r){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(H.NOBR)&&(W6(e,r),e._reconstructActiveFormattingElements()),e._insertElement(r,Pe.HTML),e.activeFormattingElements.pushElement(e.openElements.current,r)}function g3e(e,r){e._reconstructActiveFormattingElements(),e._insertElement(r,Pe.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function y3e(e,r){e.treeAdapter.getDocumentMode(e.document)!==Ja.QUIRKS&&e.openElements.hasInButtonScope(H.P)&&e._closePElement(),e._insertElement(r,Pe.HTML),e.framesetOk=!1,e.insertionMode=le.IN_TABLE}function tz(e,r){e._reconstructActiveFormattingElements(),e._appendElement(r,Pe.HTML),e.framesetOk=!1,r.ackSelfClosing=!0}function rz(e){const r=DL(e,Ed.TYPE);return r!=null&&r.toLowerCase()===Mve}function b3e(e,r){e._reconstructActiveFormattingElements(),e._appendElement(r,Pe.HTML),rz(r)||(e.framesetOk=!1),r.ackSelfClosing=!0}function v3e(e,r){e._appendElement(r,Pe.HTML),r.ackSelfClosing=!0}function x3e(e,r){e.openElements.hasInButtonScope(H.P)&&e._closePElement(),e._appendElement(r,Pe.HTML),e.framesetOk=!1,r.ackSelfClosing=!0}function w3e(e,r){r.tagName=me.IMG,r.tagID=H.IMG,tz(e,r)}function k3e(e,r){e._insertElement(r,Pe.HTML),e.skipNextNewLine=!0,e.tokenizer.state=on.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=le.TEXT}function _3e(e,r){e.openElements.hasInButtonScope(H.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(r,on.RAWTEXT)}function E3e(e,r){e.framesetOk=!1,e._switchToTextParsing(r,on.RAWTEXT)}function nz(e,r){e._switchToTextParsing(r,on.RAWTEXT)}function S3e(e,r){e._reconstructActiveFormattingElements(),e._insertElement(r,Pe.HTML),e.framesetOk=!1,e.insertionMode=e.insertionMode===le.IN_TABLE||e.insertionMode===le.IN_CAPTION||e.insertionMode===le.IN_TABLE_BODY||e.insertionMode===le.IN_ROW||e.insertionMode===le.IN_CELL?le.IN_SELECT_IN_TABLE:le.IN_SELECT}function C3e(e,r){e.openElements.currentTagId===H.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(r,Pe.HTML)}function T3e(e,r){e.openElements.hasInScope(H.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(r,Pe.HTML)}function R3e(e,r){e.openElements.hasInScope(H.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(H.RTC),e._insertElement(r,Pe.HTML)}function A3e(e,r){e._reconstructActiveFormattingElements(),GL(r),Y6(r),r.selfClosing?e._appendElement(r,Pe.MATHML):e._insertElement(r,Pe.MATHML),r.ackSelfClosing=!0}function N3e(e,r){e._reconstructActiveFormattingElements(),XL(r),Y6(r),r.selfClosing?e._appendElement(r,Pe.SVG):e._insertElement(r,Pe.SVG),r.ackSelfClosing=!0}function oz(e,r){e._reconstructActiveFormattingElements(),e._insertElement(r,Pe.HTML)}function So(e,r){switch(r.tagID){case H.I:case H.S:case H.B:case H.U:case H.EM:case H.TT:case H.BIG:case H.CODE:case H.FONT:case H.SMALL:case H.STRIKE:case H.STRONG:{f3e(e,r);break}case H.A:{h3e(e,r);break}case H.H1:case H.H2:case H.H3:case H.H4:case H.H5:case H.H6:{l3e(e,r);break}case H.P:case H.DL:case H.OL:case H.UL:case H.DIV:case H.DIR:case H.NAV:case H.MAIN:case H.MENU:case H.ASIDE:case H.CENTER:case H.FIGURE:case H.FOOTER:case H.HEADER:case H.HGROUP:case H.DIALOG:case H.DETAILS:case H.ADDRESS:case H.ARTICLE:case H.SEARCH:case H.SECTION:case H.SUMMARY:case H.FIELDSET:case H.BLOCKQUOTE:case H.FIGCAPTION:{i3e(e,r);break}case H.LI:case H.DD:case H.DT:{u3e(e,r);break}case H.BR:case H.IMG:case H.WBR:case H.AREA:case H.EMBED:case H.KEYGEN:{tz(e,r);break}case H.HR:{x3e(e,r);break}case H.RB:case H.RTC:{T3e(e,r);break}case H.RT:case H.RP:{R3e(e,r);break}case H.PRE:case H.LISTING:{s3e(e,r);break}case H.XMP:{_3e(e,r);break}case H.SVG:{N3e(e,r);break}case H.HTML:{n3e(e,r);break}case H.BASE:case H.LINK:case H.META:case H.STYLE:case H.TITLE:case H.SCRIPT:case H.BGSOUND:case H.BASEFONT:case H.TEMPLATE:{Hi(e,r);break}case H.BODY:{o3e(e,r);break}case H.FORM:{c3e(e,r);break}case H.NOBR:{m3e(e,r);break}case H.MATH:{A3e(e,r);break}case H.TABLE:{y3e(e,r);break}case H.INPUT:{b3e(e,r);break}case H.PARAM:case H.TRACK:case H.SOURCE:{v3e(e,r);break}case H.IMAGE:{w3e(e,r);break}case H.BUTTON:{p3e(e,r);break}case H.APPLET:case H.OBJECT:case H.MARQUEE:{g3e(e,r);break}case H.IFRAME:{E3e(e,r);break}case H.SELECT:{S3e(e,r);break}case H.OPTION:case H.OPTGROUP:{C3e(e,r);break}case H.NOEMBED:case H.NOFRAMES:{nz(e,r);break}case H.FRAMESET:{a3e(e,r);break}case H.TEXTAREA:{k3e(e,r);break}case H.NOSCRIPT:{e.options.scriptingEnabled?nz(e,r):oz(e,r);break}case H.PLAINTEXT:{d3e(e,r);break}case H.COL:case H.TH:case H.TD:case H.TR:case H.HEAD:case H.FRAME:case H.TBODY:case H.TFOOT:case H.THEAD:case H.CAPTION:case H.COLGROUP:break;default:oz(e,r)}}function D3e(e,r){if(e.openElements.hasInScope(H.BODY)&&(e.insertionMode=le.AFTER_BODY,e.options.sourceCodeLocationInfo)){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e._setEndLocation(n,r)}}function $3e(e,r){e.openElements.hasInScope(H.BODY)&&(e.insertionMode=le.AFTER_BODY,fz(e,r))}function P3e(e,r){const n=r.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}function O3e(e){const r=e.openElements.tmplCount>0,{formElement:n}=e;r||(e.formElement=null),(n||r)&&e.openElements.hasInScope(H.FORM)&&(e.openElements.generateImpliedEndTags(),r?e.openElements.popUntilTagNamePopped(H.FORM):n&&e.openElements.remove(n))}function M3e(e){e.openElements.hasInButtonScope(H.P)||e._insertFakeElement(me.P,H.P),e._closePElement()}function I3e(e){e.openElements.hasInListItemScope(H.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(H.LI),e.openElements.popUntilTagNamePopped(H.LI))}function L3e(e,r){const n=r.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}function z3e(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}function j3e(e,r){const n=r.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}function B3e(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(me.BR,H.BR),e.openElements.pop(),e.framesetOk=!1}function az(e,r){const n=r.tagName,o=r.tagID;for(let a=e.openElements.stackTop;a>0;a--){const i=e.openElements.items[a],l=e.openElements.tagIDs[a];if(o===l&&(o!==H.UNKNOWN||e.treeAdapter.getTagName(i)===n)){e.openElements.generateImpliedEndTagsWithExclusion(o),e.openElements.stackTop>=a&&e.openElements.shortenToLength(a);break}if(e._isSpecialElement(i,l))break}}function g3(e,r){switch(r.tagID){case H.A:case H.B:case H.I:case H.S:case H.U:case H.EM:case H.TT:case H.BIG:case H.CODE:case H.FONT:case H.NOBR:case H.SMALL:case H.STRIKE:case H.STRONG:{W6(e,r);break}case H.P:{M3e(e);break}case H.DL:case H.UL:case H.OL:case H.DIR:case H.DIV:case H.NAV:case H.PRE:case H.MAIN:case H.MENU:case H.ASIDE:case H.BUTTON:case H.CENTER:case H.FIGURE:case H.FOOTER:case H.HEADER:case H.HGROUP:case H.DIALOG:case H.ADDRESS:case H.ARTICLE:case H.DETAILS:case H.SEARCH:case H.SECTION:case H.SUMMARY:case H.LISTING:case H.FIELDSET:case H.BLOCKQUOTE:case H.FIGCAPTION:{P3e(e,r);break}case H.LI:{I3e(e);break}case H.DD:case H.DT:{L3e(e,r);break}case H.H1:case H.H2:case H.H3:case H.H4:case H.H5:case H.H6:{z3e(e);break}case H.BR:{B3e(e);break}case H.BODY:{D3e(e,r);break}case H.HTML:{$3e(e,r);break}case H.FORM:{O3e(e);break}case H.APPLET:case H.OBJECT:case H.MARQUEE:{j3e(e,r);break}case H.TEMPLATE:{Sd(e,r);break}default:az(e,r)}}function iz(e,r){e.tmplInsertionModeStack.length>0?hz(e,r):X6(e,r)}function F3e(e,r){var n;r.tagID===H.SCRIPT&&((n=e.scriptHandler)===null||n===void 0||n.call(e,e.openElements.current)),e.openElements.pop(),e.insertionMode=e.originalInsertionMode}function H3e(e,r){e._err(r,Ee.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e.onEof(r)}function K6(e,r){if(KL.has(e.openElements.currentTagId))switch(e.pendingCharacterTokens.length=0,e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=le.IN_TABLE_TEXT,r.type){case Ht.CHARACTER:{sz(e,r);break}case Ht.WHITESPACE_CHARACTER:{lz(e,r);break}}else O1(e,r)}function U3e(e,r){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(r,Pe.HTML),e.insertionMode=le.IN_CAPTION}function q3e(e,r){e.openElements.clearBackToTableContext(),e._insertElement(r,Pe.HTML),e.insertionMode=le.IN_COLUMN_GROUP}function V3e(e,r){e.openElements.clearBackToTableContext(),e._insertFakeElement(me.COLGROUP,H.COLGROUP),e.insertionMode=le.IN_COLUMN_GROUP,Z6(e,r)}function Y3e(e,r){e.openElements.clearBackToTableContext(),e._insertElement(r,Pe.HTML),e.insertionMode=le.IN_TABLE_BODY}function W3e(e,r){e.openElements.clearBackToTableContext(),e._insertFakeElement(me.TBODY,H.TBODY),e.insertionMode=le.IN_TABLE_BODY,b3(e,r)}function G3e(e,r){e.openElements.hasInTableScope(H.TABLE)&&(e.openElements.popUntilTagNamePopped(H.TABLE),e._resetInsertionMode(),e._processStartTag(r))}function X3e(e,r){rz(r)?e._appendElement(r,Pe.HTML):O1(e,r),r.ackSelfClosing=!0}function K3e(e,r){!e.formElement&&e.openElements.tmplCount===0&&(e._insertElement(r,Pe.HTML),e.formElement=e.openElements.current,e.openElements.pop())}function Fh(e,r){switch(r.tagID){case H.TD:case H.TH:case H.TR:{W3e(e,r);break}case H.STYLE:case H.SCRIPT:case H.TEMPLATE:{Hi(e,r);break}case H.COL:{V3e(e,r);break}case H.FORM:{K3e(e,r);break}case H.TABLE:{G3e(e,r);break}case H.TBODY:case H.TFOOT:case H.THEAD:{Y3e(e,r);break}case H.INPUT:{X3e(e,r);break}case H.CAPTION:{U3e(e,r);break}case H.COLGROUP:{q3e(e,r);break}default:O1(e,r)}}function P1(e,r){switch(r.tagID){case H.TABLE:{e.openElements.hasInTableScope(H.TABLE)&&(e.openElements.popUntilTagNamePopped(H.TABLE),e._resetInsertionMode());break}case H.TEMPLATE:{Sd(e,r);break}case H.BODY:case H.CAPTION:case H.COL:case H.COLGROUP:case H.HTML:case H.TBODY:case H.TD:case H.TFOOT:case H.TH:case H.THEAD:case H.TR:break;default:O1(e,r)}}function O1(e,r){const n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,m3(e,r),e.fosterParentingEnabled=n}function lz(e,r){e.pendingCharacterTokens.push(r)}function sz(e,r){e.pendingCharacterTokens.push(r),e.hasNonWhitespacePendingCharacterToken=!0}function M1(e,r){let n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n0&&e.openElements.currentTagId===H.OPTION&&e.openElements.tagIDs[e.openElements.stackTop-1]===H.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagId===H.OPTGROUP&&e.openElements.pop();break}case H.OPTION:{e.openElements.currentTagId===H.OPTION&&e.openElements.pop();break}case H.SELECT:{e.openElements.hasInSelectScope(H.SELECT)&&(e.openElements.popUntilTagNamePopped(H.SELECT),e._resetInsertionMode());break}case H.TEMPLATE:{Sd(e,r);break}}}function rxe(e,r){const n=r.tagID;n===H.CAPTION||n===H.TABLE||n===H.TBODY||n===H.TFOOT||n===H.THEAD||n===H.TR||n===H.TD||n===H.TH?(e.openElements.popUntilTagNamePopped(H.SELECT),e._resetInsertionMode(),e._processStartTag(r)):dz(e,r)}function nxe(e,r){const n=r.tagID;n===H.CAPTION||n===H.TABLE||n===H.TBODY||n===H.TFOOT||n===H.THEAD||n===H.TR||n===H.TD||n===H.TH?e.openElements.hasInTableScope(n)&&(e.openElements.popUntilTagNamePopped(H.SELECT),e._resetInsertionMode(),e.onEndTag(r)):pz(e,r)}function oxe(e,r){switch(r.tagID){case H.BASE:case H.BASEFONT:case H.BGSOUND:case H.LINK:case H.META:case H.NOFRAMES:case H.SCRIPT:case H.STYLE:case H.TEMPLATE:case H.TITLE:{Hi(e,r);break}case H.CAPTION:case H.COLGROUP:case H.TBODY:case H.TFOOT:case H.THEAD:{e.tmplInsertionModeStack[0]=le.IN_TABLE,e.insertionMode=le.IN_TABLE,Fh(e,r);break}case H.COL:{e.tmplInsertionModeStack[0]=le.IN_COLUMN_GROUP,e.insertionMode=le.IN_COLUMN_GROUP,Z6(e,r);break}case H.TR:{e.tmplInsertionModeStack[0]=le.IN_TABLE_BODY,e.insertionMode=le.IN_TABLE_BODY,b3(e,r);break}case H.TD:case H.TH:{e.tmplInsertionModeStack[0]=le.IN_ROW,e.insertionMode=le.IN_ROW,v3(e,r);break}default:e.tmplInsertionModeStack[0]=le.IN_BODY,e.insertionMode=le.IN_BODY,So(e,r)}}function axe(e,r){r.tagID===H.TEMPLATE&&Sd(e,r)}function hz(e,r){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(H.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode(),e.onEof(r)):X6(e,r)}function ixe(e,r){r.tagID===H.HTML?So(e,r):x3(e,r)}function fz(e,r){var n;if(r.tagID===H.HTML){if(e.fragmentContext||(e.insertionMode=le.AFTER_AFTER_BODY),e.options.sourceCodeLocationInfo&&e.openElements.tagIDs[0]===H.HTML){e._setEndLocation(e.openElements.items[0],r);const o=e.openElements.items[1];o&&!(!((n=e.treeAdapter.getNodeSourceCodeLocation(o))===null||n===void 0)&&n.endTag)&&e._setEndLocation(o,r)}}else x3(e,r)}function x3(e,r){e.insertionMode=le.IN_BODY,m3(e,r)}function lxe(e,r){switch(r.tagID){case H.HTML:{So(e,r);break}case H.FRAMESET:{e._insertElement(r,Pe.HTML);break}case H.FRAME:{e._appendElement(r,Pe.HTML),r.ackSelfClosing=!0;break}case H.NOFRAMES:{Hi(e,r);break}}}function sxe(e,r){r.tagID===H.FRAMESET&&!e.openElements.isRootHtmlElementCurrent()&&(e.openElements.pop(),!e.fragmentContext&&e.openElements.currentTagId!==H.FRAMESET&&(e.insertionMode=le.AFTER_FRAMESET))}function cxe(e,r){switch(r.tagID){case H.HTML:{So(e,r);break}case H.NOFRAMES:{Hi(e,r);break}}}function uxe(e,r){r.tagID===H.HTML&&(e.insertionMode=le.AFTER_AFTER_FRAMESET)}function dxe(e,r){r.tagID===H.HTML?So(e,r):w3(e,r)}function w3(e,r){e.insertionMode=le.IN_BODY,m3(e,r)}function pxe(e,r){switch(r.tagID){case H.HTML:{So(e,r);break}case H.NOFRAMES:{Hi(e,r);break}}}function hxe(e,r){r.chars=Mr,e._insertCharacters(r)}function fxe(e,r){e._insertCharacters(r),e.framesetOk=!1}function mz(e){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==Pe.HTML&&!e._isIntegrationPoint(e.openElements.currentTagId,e.openElements.current);)e.openElements.pop()}function mxe(e,r){if(Nve(r))mz(e),e._startTagOutsideForeignContent(r);else{const n=e._getAdjustedCurrentElement(),o=e.treeAdapter.getNamespaceURI(n);o===Pe.MATHML?GL(r):o===Pe.SVG&&(Dve(r),XL(r)),Y6(r),r.selfClosing?e._appendElement(r,o):e._insertElement(r,o),r.ackSelfClosing=!0}}function gxe(e,r){if(r.tagID===H.P||r.tagID===H.BR){mz(e),e._endTagOutsideForeignContent(r);return}for(let n=e.openElements.stackTop;n>0;n--){const o=e.openElements.items[n];if(e.treeAdapter.getNamespaceURI(o)===Pe.HTML){e._endTagOutsideForeignContent(r);break}const a=e.treeAdapter.getTagName(o);if(a.toLowerCase()===r.tagName){r.tagName=a,e.openElements.shortenToLength(n);break}}}me.AREA,me.BASE,me.BASEFONT,me.BGSOUND,me.BR,me.COL,me.EMBED,me.FRAME,me.HR,me.IMG,me.INPUT,me.KEYGEN,me.LINK,me.META,me.PARAM,me.SOURCE,me.TRACK,me.WBR;const k3=gz("end"),zs=gz("start");function gz(e){return r;function r(n){const o=n&&n.position&&n.position[e]||{};if(typeof o.line=="number"&&o.line>0&&typeof o.column=="number"&&o.column>0)return{line:o.line,column:o.column,offset:typeof o.offset=="number"&&o.offset>-1?o.offset:void 0}}}function yz(e){const r=zs(e),n=k3(e);if(r&&n)return{start:r,end:n}}const _3=(function(e){if(e==null)return xxe;if(typeof e=="function")return E3(e);if(typeof e=="object")return Array.isArray(e)?yxe(e):bxe(e);if(typeof e=="string")return vxe(e);throw new Error("Expected function, string, or object as test")});function yxe(e){const r=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let g=bz,b,x,w;if((!r||i(c,u,d[d.length-1]||void 0))&&(g=Exe(n(c,d)),g[0]===J6))return g;if("children"in c&&c.children){const k=c;if(k.children&&g[0]!==_xe)for(x=(o?k.children.length:-1)+l,w=d.concat(k);x>-1&&x])/gi,Cxe=new Set(["mdxFlowExpression","mdxJsxFlowElement","mdxJsxTextElement","mdxTextExpression","mdxjsEsm"]),xz={sourceCodeLocationInfo:!0,scriptingEnabled:!1};function wz(e,r){const n=Ixe(e),o=B6("type",{handlers:{root:Txe,element:Rxe,text:Axe,comment:_z,doctype:Nxe,raw:$xe},unknown:Pxe}),a={parser:n?new QL(xz):QL.getFragmentParser(void 0,xz),handle(s){o(s,a)},stitches:!1,options:r||{}};o(e,a),Hh(a,zs());const i=n?a.parser.document:a.parser.getFragment(),l=xbe(i,{file:a.options.file});return a.stitches&&eE(l,"comment",function(s,c,u){const d=s;if(d.value.stitch&&u&&c!==void 0){const p=u.children;return p[c]=d.value.stitch,c}}),l.type==="root"&&l.children.length===1&&l.children[0].type===e.type?l.children[0]:l}function kz(e,r){let n=-1;if(e)for(;++n4&&(r.parser.tokenizer.state=0);const n={type:Ht.CHARACTER,chars:e.value,location:I1(e)};Hh(r,zs(e)),r.parser.currentToken=n,r.parser._processToken(r.parser.currentToken)}function Nxe(e,r){const n={type:Ht.DOCTYPE,name:"html",forceQuirks:!1,publicId:"",systemId:"",location:I1(e)};Hh(r,zs(e)),r.parser.currentToken=n,r.parser._processToken(r.parser.currentToken)}function Dxe(e,r){r.stitches=!0;const n=Lxe(e);if("children"in e&&"children"in n){const o=wz({type:"root",children:e.children},r.options);n.children=o.children}_z({type:"comment",value:{stitch:n}},r)}function _z(e,r){const n=e.value,o={type:Ht.COMMENT,data:n,location:I1(e)};Hh(r,zs(e)),r.parser.currentToken=o,r.parser._processToken(r.parser.currentToken)}function $xe(e,r){if(r.parser.tokenizer.preprocessor.html="",r.parser.tokenizer.preprocessor.pos=-1,r.parser.tokenizer.preprocessor.lastGapPos=-2,r.parser.tokenizer.preprocessor.gapStack=[],r.parser.tokenizer.preprocessor.skipNextNewLine=!1,r.parser.tokenizer.preprocessor.lastChunkWritten=!1,r.parser.tokenizer.preprocessor.endOfChunkHit=!1,r.parser.tokenizer.preprocessor.isEol=!1,Ez(r,zs(e)),r.parser.tokenizer.write(r.options.tagfilter?e.value.replace(Sxe,"<$1$2"):e.value,!1),r.parser.tokenizer._runParsingLoop(),r.parser.tokenizer.state===72||r.parser.tokenizer.state===78){r.parser.tokenizer.preprocessor.lastChunkWritten=!0;const n=r.parser.tokenizer._consume();r.parser.tokenizer._callState(n)}}function Pxe(e,r){const n=e;if(r.options.passThrough&&r.options.passThrough.includes(n.type))Dxe(n,r);else{let o="";throw Cxe.has(n.type)&&(o=". It looks like you are using MDX nodes with `hast-util-raw` (or `rehype-raw`). If you use this because you are using remark or rehype plugins that inject `'html'` nodes, then please raise an issue with that plugin, as its a bad and slow idea. If you use this because you are using markdown syntax, then you have to configure this utility (or plugin) to pass through these nodes (see `passThrough` in docs), but you can also migrate to use the MDX syntax"),new Error("Cannot compile `"+n.type+"` node"+o)}}function Hh(e,r){Ez(e,r);const n=e.parser.tokenizer.currentCharacterToken;n&&n.location&&(n.location.endLine=e.parser.tokenizer.preprocessor.line,n.location.endCol=e.parser.tokenizer.preprocessor.col+1,n.location.endOffset=e.parser.tokenizer.preprocessor.offset+1,e.parser.currentToken=n,e.parser._processToken(e.parser.currentToken)),e.parser.tokenizer.paused=!1,e.parser.tokenizer.inLoop=!1,e.parser.tokenizer.active=!1,e.parser.tokenizer.returnState=on.DATA,e.parser.tokenizer.charRefCode=-1,e.parser.tokenizer.consumedAfterSnapshot=-1,e.parser.tokenizer.currentLocation=null,e.parser.tokenizer.currentCharacterToken=null,e.parser.tokenizer.currentToken=null,e.parser.tokenizer.currentAttr={name:"",value:""}}function Ez(e,r){if(r&&r.offset!==void 0){const n={startLine:r.line,startCol:r.column,startOffset:r.offset,endLine:-1,endCol:-1,endOffset:-1};e.parser.tokenizer.preprocessor.lineStartPos=-r.column+1,e.parser.tokenizer.preprocessor.droppedBufferSize=r.offset,e.parser.tokenizer.preprocessor.line=r.line,e.parser.tokenizer.currentLocation=n}}function Oxe(e,r){const n=e.tagName.toLowerCase();if(r.parser.tokenizer.state===on.PLAINTEXT)return;Hh(r,zs(e));const o=r.parser.openElements.current;let a="namespaceURI"in o?o.namespaceURI:kd.html;a===kd.html&&n==="svg"&&(a=kd.svg);const i=Mbe({...e,children:[]},{space:a===kd.svg?"svg":"html"}),l={type:Ht.START_TAG,tagName:n,tagID:Bh(n),selfClosing:!1,ackSelfClosing:!1,attrs:"attrs"in i?i.attrs:[],location:I1(e)};r.parser.currentToken=l,r.parser._processToken(r.parser.currentToken),r.parser.tokenizer.lastStartTagName=n}function Mxe(e,r){const n=e.tagName.toLowerCase();if(!r.parser.tokenizer.inForeignNode&&TL.includes(n)||r.parser.tokenizer.state===on.PLAINTEXT)return;Hh(r,k3(e));const o={type:Ht.END_TAG,tagName:n,tagID:Bh(n),selfClosing:!1,ackSelfClosing:!1,attrs:[],location:I1(e)};r.parser.currentToken=o,r.parser._processToken(r.parser.currentToken),n===r.parser.tokenizer.lastStartTagName&&(r.parser.tokenizer.state===on.RCDATA||r.parser.tokenizer.state===on.RAWTEXT||r.parser.tokenizer.state===on.SCRIPT_DATA)&&(r.parser.tokenizer.state=on.DATA)}function Ixe(e){const r=e.type==="root"?e.children[0]:e;return!!(r&&(r.type==="doctype"||r.type==="element"&&r.tagName.toLowerCase()==="html"))}function I1(e){const r=zs(e)||{line:void 0,column:void 0,offset:void 0},n=k3(e)||{line:void 0,column:void 0,offset:void 0};return{startLine:r.line,startCol:r.column,startOffset:r.offset,endLine:n.line,endCol:n.column,endOffset:n.offset}}function Lxe(e){return"children"in e?xd({...e,children:[]}):xd(e)}function zxe(e){return function(r,n){return wz(r,{...e,file:n})}}const Cd=["ariaDescribedBy","ariaLabel","ariaLabelledBy"],Sz={ancestors:{tbody:["table"],td:["table"],th:["table"],thead:["table"],tfoot:["table"],tr:["table"]},attributes:{a:[...Cd,"dataFootnoteBackref","dataFootnoteRef",["className","data-footnote-backref"],"href"],blockquote:["cite"],code:[["className",/^language-./]],del:["cite"],div:["itemScope","itemType"],dl:[...Cd],h2:[["className","sr-only"]],img:[...Cd,"longDesc","src"],input:[["disabled",!0],["type","checkbox"]],ins:["cite"],li:[["className","task-list-item"]],ol:[...Cd,["className","contains-task-list"]],q:["cite"],section:["dataFootnotes",["className","footnotes"]],source:["srcSet"],summary:[...Cd],table:[...Cd],ul:[...Cd,["className","contains-task-list"]],"*":["abbr","accept","acceptCharset","accessKey","action","align","alt","axis","border","cellPadding","cellSpacing","char","charOff","charSet","checked","clear","colSpan","color","cols","compact","coords","dateTime","dir","encType","frame","hSpace","headers","height","hrefLang","htmlFor","id","isMap","itemProp","label","lang","maxLength","media","method","multiple","name","noHref","noShade","noWrap","open","prompt","readOnly","rev","rowSpan","rows","rules","scope","selected","shape","size","span","start","summary","tabIndex","title","useMap","vAlign","value","width"]},clobber:["ariaDescribedBy","ariaLabelledBy","id","name"],clobberPrefix:"user-content-",protocols:{cite:["http","https"],href:["http","https","irc","ircs","mailto","xmpp"],longDesc:["http","https"],src:["http","https"]},required:{input:{disabled:!0,type:"checkbox"}},strip:["script"],tagNames:["a","b","blockquote","br","code","dd","del","details","div","dl","dt","em","h1","h2","h3","h4","h5","h6","hr","i","img","input","ins","kbd","li","ol","p","picture","pre","q","rp","rt","ruby","s","samp","section","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","tr","tt","ul","var"]},Xc={}.hasOwnProperty;function jxe(e,r){let n={type:"root",children:[]};const o={schema:r?{...Sz,...r}:Sz,stack:[]},a=Cz(o,e);return a&&(Array.isArray(a)?a.length===1?n=a[0]:n.children=a:n=a),n}function Cz(e,r){if(r&&typeof r=="object"){const n=r;switch(typeof n.type=="string"?n.type:""){case"comment":return Bxe(e,n);case"doctype":return Fxe(e,n);case"element":return Hxe(e,n);case"root":return Uxe(e,n);case"text":return qxe(e,n)}}}function Bxe(e,r){if(e.schema.allowComments){const n=typeof r.value=="string"?r.value:"",o=n.indexOf("-->"),i={type:"comment",value:o<0?n:n.slice(0,o)};return L1(i,r),i}}function Fxe(e,r){if(e.schema.allowDoctypes){const n={type:"doctype"};return L1(n,r),n}}function Hxe(e,r){const n=typeof r.tagName=="string"?r.tagName:"";e.stack.push(n);const o=Tz(e,r.children),a=Vxe(e,r.properties);e.stack.pop();let i=!1;if(n&&n!=="*"&&(!e.schema.tagNames||e.schema.tagNames.includes(n))&&(i=!0,e.schema.ancestors&&Xc.call(e.schema.ancestors,n))){const s=e.schema.ancestors[n];let c=-1;for(i=!1;++c1){let a=!1,i=0;for(;++i-1&&i>c||l>-1&&i>l||s>-1&&i>s)return!0;let u=-1;for(;++u4&&r.slice(0,4).toLowerCase()==="data")return n}function Gxe(e){return function(r){return jxe(r,e)}}const Xxe=/["&'<>`]/g,Kxe=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Zxe=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,Qxe=/[|\\{}()[\]^$+*?.]/g,Dz=new WeakMap;function Jxe(e,r){if(e=e.replace(r.subset?ewe(r.subset):Xxe,o),r.subset||r.escapeOnly)return e;return e.replace(Kxe,n).replace(Zxe,o);function n(a,i,l){return r.format((a.charCodeAt(0)-55296)*1024+a.charCodeAt(1)-56320+65536,l.charCodeAt(i+2),r)}function o(a,i,l){return r.format(a.charCodeAt(0),l.charCodeAt(i+1),r)}}function ewe(e){let r=Dz.get(e);return r||(r=twe(e),Dz.set(e,r)),r}function twe(e){const r=[];let n=-1;for(;++n",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",permil:"‰",lsaquo:"‹",rsaquo:"›",euro:"€"},lwe=["cent","copy","divide","gt","lt","not","para","times"],$z={}.hasOwnProperty,rE={};let S3;for(S3 in tE)$z.call(tE,S3)&&(rE[tE[S3]]=S3);const swe=/[^\dA-Za-z]/;function cwe(e,r,n,o){const a=String.fromCharCode(e);if($z.call(rE,a)){const i=rE[a],l="&"+i;return n&&iwe.includes(i)&&!lwe.includes(i)&&(!o||r&&r!==61&&swe.test(String.fromCharCode(r)))?l:l+";"}return""}function uwe(e,r,n){let o=nwe(e,r,n.omitOptionalSemicolons),a;if((n.useNamedReferences||n.useShortestReferences)&&(a=cwe(e,r,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!a)&&n.useShortestReferences){const i=awe(e,r,n.omitOptionalSemicolons);i.length|^->||--!>|"],hwe=["<",">"];function fwe(e,r,n,o){return o.settings.bogusComments?"":"";function a(i){return Uh(i,Object.assign({},o.settings.characterReferences,{subset:hwe}))}}function mwe(e,r,n,o){return""}function C3(e,r){const n=String(e);if(typeof r!="string")throw new TypeError("Expected character");let o=0,a=n.indexOf(r);for(;a!==-1;)o++,a=n.indexOf(r,a+r.length);return o}const gwe=/[ \t\n\f\r]/g;function nE(e){return typeof e=="object"?e.type==="text"?Pz(e.value):!1:Pz(e)}function Pz(e){return e.replace(gwe,"")===""}const Ln=Mz(1),Oz=Mz(-1),ywe=[];function Mz(e){return r;function r(n,o,a){const i=n?n.children:ywe;let l=(o||0)+e,s=i[l];if(!a)for(;s&&nE(s);)l+=e,s=i[l];return s}}const bwe={}.hasOwnProperty;function Iz(e){return r;function r(n,o,a){return bwe.call(e,n.tagName)&&e[n.tagName](n,o,a)}}const oE=Iz({body:xwe,caption:aE,colgroup:aE,dd:Ewe,dt:_we,head:aE,html:vwe,li:kwe,optgroup:Swe,option:Cwe,p:wwe,rp:Lz,rt:Lz,tbody:Rwe,td:zz,tfoot:Awe,th:zz,thead:Twe,tr:Nwe});function aE(e,r,n){const o=Ln(n,r,!0);return!o||o.type!=="comment"&&!(o.type==="text"&&nE(o.value.charAt(0)))}function vwe(e,r,n){const o=Ln(n,r);return!o||o.type!=="comment"}function xwe(e,r,n){const o=Ln(n,r);return!o||o.type!=="comment"}function wwe(e,r,n){const o=Ln(n,r);return o?o.type==="element"&&(o.tagName==="address"||o.tagName==="article"||o.tagName==="aside"||o.tagName==="blockquote"||o.tagName==="details"||o.tagName==="div"||o.tagName==="dl"||o.tagName==="fieldset"||o.tagName==="figcaption"||o.tagName==="figure"||o.tagName==="footer"||o.tagName==="form"||o.tagName==="h1"||o.tagName==="h2"||o.tagName==="h3"||o.tagName==="h4"||o.tagName==="h5"||o.tagName==="h6"||o.tagName==="header"||o.tagName==="hgroup"||o.tagName==="hr"||o.tagName==="main"||o.tagName==="menu"||o.tagName==="nav"||o.tagName==="ol"||o.tagName==="p"||o.tagName==="pre"||o.tagName==="section"||o.tagName==="table"||o.tagName==="ul"):!n||!(n.type==="element"&&(n.tagName==="a"||n.tagName==="audio"||n.tagName==="del"||n.tagName==="ins"||n.tagName==="map"||n.tagName==="noscript"||n.tagName==="video"))}function kwe(e,r,n){const o=Ln(n,r);return!o||o.type==="element"&&o.tagName==="li"}function _we(e,r,n){const o=Ln(n,r);return!!(o&&o.type==="element"&&(o.tagName==="dt"||o.tagName==="dd"))}function Ewe(e,r,n){const o=Ln(n,r);return!o||o.type==="element"&&(o.tagName==="dt"||o.tagName==="dd")}function Lz(e,r,n){const o=Ln(n,r);return!o||o.type==="element"&&(o.tagName==="rp"||o.tagName==="rt")}function Swe(e,r,n){const o=Ln(n,r);return!o||o.type==="element"&&o.tagName==="optgroup"}function Cwe(e,r,n){const o=Ln(n,r);return!o||o.type==="element"&&(o.tagName==="option"||o.tagName==="optgroup")}function Twe(e,r,n){const o=Ln(n,r);return!!(o&&o.type==="element"&&(o.tagName==="tbody"||o.tagName==="tfoot"))}function Rwe(e,r,n){const o=Ln(n,r);return!o||o.type==="element"&&(o.tagName==="tbody"||o.tagName==="tfoot")}function Awe(e,r,n){return!Ln(n,r)}function Nwe(e,r,n){const o=Ln(n,r);return!o||o.type==="element"&&o.tagName==="tr"}function zz(e,r,n){const o=Ln(n,r);return!o||o.type==="element"&&(o.tagName==="td"||o.tagName==="th")}const Dwe=Iz({body:Owe,colgroup:Mwe,head:Pwe,html:$we,tbody:Iwe});function $we(e){const r=Ln(e,-1);return!r||r.type!=="comment"}function Pwe(e){const r=new Set;for(const o of e.children)if(o.type==="element"&&(o.tagName==="base"||o.tagName==="title")){if(r.has(o.tagName))return!1;r.add(o.tagName)}const n=e.children[0];return!n||n.type==="element"}function Owe(e){const r=Ln(e,-1,!0);return!r||r.type!=="comment"&&!(r.type==="text"&&nE(r.value.charAt(0)))&&!(r.type==="element"&&(r.tagName==="meta"||r.tagName==="link"||r.tagName==="script"||r.tagName==="style"||r.tagName==="template"))}function Mwe(e,r,n){const o=Oz(n,r),a=Ln(e,-1,!0);return n&&o&&o.type==="element"&&o.tagName==="colgroup"&&oE(o,n.children.indexOf(o),n)?!1:!!(a&&a.type==="element"&&a.tagName==="col")}function Iwe(e,r,n){const o=Oz(n,r),a=Ln(e,-1);return n&&o&&o.type==="element"&&(o.tagName==="thead"||o.tagName==="tbody")&&oE(o,n.children.indexOf(o),n)?!1:!!(a&&a.type==="element"&&a.tagName==="tr")}const T3={name:[[` +\f\r &/=>`.split(""),` +\f\r "&'/=>\``.split("")],[`\0 +\f\r "&'/<=>`.split(""),`\0 +\f\r "&'/<=>\``.split("")]],unquoted:[[` +\f\r &>`.split(""),`\0 +\f\r "&'<=>\``.split("")],[`\0 +\f\r "&'<=>\``.split(""),`\0 +\f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function Lwe(e,r,n,o){const a=o.schema,i=a.space==="svg"?!1:o.settings.omitOptionalTags;let l=a.space==="svg"?o.settings.closeEmptyElements:o.settings.voids.includes(e.tagName.toLowerCase());const s=[];let c;a.space==="html"&&e.tagName==="svg"&&(o.schema=E1);const u=zwe(o,e.properties),d=o.all(a.space==="html"&&e.tagName==="template"?e.content:e);return o.schema=a,d&&(l=!1),(u||!i||!Dwe(e,r,n))&&(s.push("<",e.tagName,u?" "+u:""),l&&(a.space==="svg"||o.settings.closeSelfClosing)&&(c=u.charAt(u.length-1),(!o.settings.tightSelfClosing||c==="/"||c&&c!=='"'&&c!=="'")&&s.push(" "),s.push("/")),s.push(">")),s.push(d),!l&&(!i||!oE(e,r,n))&&s.push(""),s.join("")}function zwe(e,r){const n=[];let o=-1,a;if(r){for(a in r)if(r[a]!==null&&r[a]!==void 0){const i=jwe(e,a,r[a]);i&&n.push(i)}}for(;++oC3(n,e.alternative)&&(l=e.alternative),s=l+Uh(n,Object.assign({},e.settings.characterReferences,{subset:(l==="'"?T3.single:T3.double)[a][i],attribute:!0}))+l),c+(s&&"="+s))}const Bwe=["<","&"];function jz(e,r,n,o){return n&&n.type==="element"&&(n.tagName==="script"||n.tagName==="style")?e.value:Uh(e.value,Object.assign({},o.settings.characterReferences,{subset:Bwe}))}function Fwe(e,r,n,o){return o.settings.allowDangerousHtml?e.value:jz(e,r,n,o)}function Hwe(e,r,n,o){return o.all(e)}const Uwe=B6("type",{invalid:qwe,unknown:Vwe,handlers:{comment:fwe,doctype:mwe,element:Lwe,raw:Fwe,root:Hwe,text:jz}});function qwe(e){throw new Error("Expected node, not `"+e+"`")}function Vwe(e){const r=e;throw new Error("Cannot compile unknown node `"+r.type+"`")}const Ywe={},Wwe={},Gwe=[];function Xwe(e,r){const n=r||Ywe,o=n.quote||'"',a=o==='"'?"'":'"';if(o!=='"'&&o!=="'")throw new Error("Invalid quote `"+o+"`, expected `'` or `\"`");return{one:Kwe,all:Zwe,settings:{omitOptionalTags:n.omitOptionalTags||!1,allowParseErrors:n.allowParseErrors||!1,allowDangerousCharacters:n.allowDangerousCharacters||!1,quoteSmart:n.quoteSmart||!1,preferUnquoted:n.preferUnquoted||!1,tightAttributes:n.tightAttributes||!1,upperDoctype:n.upperDoctype||!1,tightDoctype:n.tightDoctype||!1,bogusComments:n.bogusComments||!1,tightCommaSeparatedLists:n.tightCommaSeparatedLists||!1,tightSelfClosing:n.tightSelfClosing||!1,collapseEmptyAttributes:n.collapseEmptyAttributes||!1,allowDangerousHtml:n.allowDangerousHtml||!1,voids:n.voids||TL,characterReferences:n.characterReferences||Wwe,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space==="svg"?E1:d3,quote:o,alternative:a}.one(Array.isArray(e)?{type:"root",children:e}:e,void 0,void 0)}function Kwe(e,r,n){return Uwe(e,r,n,this)}function Zwe(e){const r=[],n=e&&e.children||Gwe;let o=-1;for(;++o-1&&e.test(String.fromCharCode(n))}}function r2e(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function n2e(e,r,n){const a=_3((n||{}).ignore||[]),i=o2e(r);let l=-1;for(;++l0?{type:"text",value:A}:void 0),A===!1?f.lastIndex=T+1:(b!==T&&C.push({type:"text",value:u.value.slice(b,T)}),Array.isArray(A)?C.push(...A):A&&C.push(A),b=T+_[0].length,k=!0),!f.global)break;_=f.exec(u.value)}return k?(b?\]}]+$/.exec(e);if(!r)return[e,void 0];e=e.slice(0,r.index);let n=r[0],o=n.indexOf(")");const a=C3(e,"(");let i=C3(e,")");for(;o!==-1&&a>i;)e+=n.slice(0,o+1),n=n.slice(o+1),o=n.indexOf(")"),i++;return[e,n]}function Bz(e,r){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Td(n)||A3(n))&&(!r||n!==47)}function Ui(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}Fz.peek=T2e;function v2e(){this.buffer()}function x2e(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function w2e(){this.buffer()}function k2e(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function _2e(e){const r=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ui(this.sliceSerialize(e)).toLowerCase(),n.label=r}function E2e(e){this.exit(e)}function S2e(e){const r=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ui(this.sliceSerialize(e)).toLowerCase(),n.label=r}function C2e(e){this.exit(e)}function T2e(){return"["}function Fz(e,r,n,o){const a=n.createTracker(o);let i=a.move("[^");const l=n.enter("footnoteReference"),s=n.enter("reference");return i+=a.move(n.safe(n.associationId(e),{after:"]",before:i})),s(),l(),i+=a.move("]"),i}function R2e(){return{enter:{gfmFootnoteCallString:v2e,gfmFootnoteCall:x2e,gfmFootnoteDefinitionLabelString:w2e,gfmFootnoteDefinition:k2e},exit:{gfmFootnoteCallString:_2e,gfmFootnoteCall:E2e,gfmFootnoteDefinitionLabelString:S2e,gfmFootnoteDefinition:C2e}}}function A2e(e){let r=!1;return e&&e.firstLineBlank&&(r=!0),{handlers:{footnoteDefinition:n,footnoteReference:Fz},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(o,a,i,l){const s=i.createTracker(l);let c=s.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=s.move(i.safe(i.associationId(o),{before:c,after:"]"})),d(),c+=s.move("]:"),o.children&&o.children.length>0&&(s.shift(4),c+=s.move((r?` +`:" ")+i.indentLines(i.containerFlow(o,s.current()),r?Hz:N2e))),u(),c}}function N2e(e,r,n){return r===0?e:Hz(e,r,n)}function Hz(e,r,n){return(n?"":" ")+e}const D2e=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];Uz.peek=I2e;function $2e(){return{canContainEols:["delete"],enter:{strikethrough:O2e},exit:{strikethrough:M2e}}}function P2e(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:D2e}],handlers:{delete:Uz}}}function O2e(e){this.enter({type:"delete",children:[]},e)}function M2e(e){this.exit(e)}function Uz(e,r,n,o){const a=n.createTracker(o),i=n.enter("strikethrough");let l=a.move("~~");return l+=n.containerPhrasing(e,{...a.current(),before:l,after:"~"}),l+=a.move("~~"),i(),l}function I2e(){return"~"}function L2e(e){return e.length}function z2e(e,r){const n=r||{},o=(n.align||[]).concat(),a=n.stringLength||L2e,i=[],l=[],s=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++kc[k])&&(c[k]=_)}x.push(C)}l[d]=x,s[d]=w}let p=-1;if(typeof o=="object"&&"length"in o)for(;++pc[p]&&(c[p]=C),g[p]=C),f[p]=_}l.splice(1,0,f),s.splice(1,0,g),d=-1;const b=[];for(;++d "),i.shift(2);const l=n.indentLines(n.containerFlow(e,i.current()),F2e);return a(),l}function F2e(e,r,n){return">"+(n?"":" ")+e}function H2e(e,r){return Vz(e,r.inConstruct,!0)&&!Vz(e,r.notInConstruct,!1)}function Vz(e,r,n){if(typeof r=="string"&&(r=[r]),!r||r.length===0)return n;let o=-1;for(;++ol&&(l=i):i=1,a=o+r.length,o=n.indexOf(r,a);return l}function q2e(e,r){return!!(r.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function V2e(e){const r=e.options.fence||"`";if(r!=="`"&&r!=="~")throw new Error("Cannot serialize code with `"+r+"` for `options.fence`, expected `` ` `` or `~`");return r}function Y2e(e,r,n,o){const a=V2e(n),i=e.value||"",l=a==="`"?"GraveAccent":"Tilde";if(q2e(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(i,W2e);return p(),f}const s=n.createTracker(o),c=a.repeat(Math.max(U2e(i,a)+1,3)),u=n.enter("codeFenced");let d=s.move(c);if(e.lang){const p=n.enter(`codeFencedLang${l}`);d+=s.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...s.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${l}`);d+=s.move(" "),d+=s.move(n.safe(e.meta,{before:d,after:` +`,encode:["`"],...s.current()})),p()}return d+=s.move(` +`),i&&(d+=s.move(i+` +`)),d+=s.move(c),u(),d}function W2e(e,r,n){return(n?"":" ")+e}function uE(e){const r=e.options.quote||'"';if(r!=='"'&&r!=="'")throw new Error("Cannot serialize title with `"+r+"` for `options.quote`, expected `\"`, or `'`");return r}function G2e(e,r,n,o){const a=uE(n),i=a==='"'?"Quote":"Apostrophe",l=n.enter("definition");let s=n.enter("label");const c=n.createTracker(o);let u=c.move("[");return u+=c.move(n.safe(n.associationId(e),{before:u,after:"]",...c.current()})),u+=c.move("]: "),s(),!e.url||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(s=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` +`,...c.current()}))),s(),e.title&&(s=n.enter(`title${i}`),u+=c.move(" "+a),u+=c.move(n.safe(e.title,{before:u,after:a,...c.current()})),u+=c.move(a),s()),l(),u}function X2e(e){const r=e.options.emphasis||"*";if(r!=="*"&&r!=="_")throw new Error("Cannot serialize emphasis with `"+r+"` for `options.emphasis`, expected `*`, or `_`");return r}function z1(e){return"&#x"+e.toString(16).toUpperCase()+";"}function qh(e){if(e===null||xr(e)||Td(e))return 1;if(A3(e))return 2}function N3(e,r,n){const o=qh(e),a=qh(r);return o===void 0?a===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:a===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:o===1?a===void 0?{inside:!1,outside:!1}:a===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:a===void 0?{inside:!1,outside:!1}:a===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}Wz.peek=K2e;function Wz(e,r,n,o){const a=X2e(n),i=n.enter("emphasis"),l=n.createTracker(o),s=l.move(a);let c=l.move(n.containerPhrasing(e,{after:a,before:s,...l.current()}));const u=c.charCodeAt(0),d=N3(o.before.charCodeAt(o.before.length-1),u,a);d.inside&&(c=z1(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=N3(o.after.charCodeAt(0),p,a);f.inside&&(c=c.slice(0,-1)+z1(p));const g=l.move(a);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},s+c+g}function K2e(e,r,n){return n.options.emphasis||"*"}const Z2e={};function D3(e,r){const n=r||Z2e,o=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,a=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return Gz(e,o,a)}function Gz(e,r,n){if(Q2e(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(r&&"alt"in e&&e.alt)return e.alt;if("children"in e)return Xz(e.children,r,n)}return Array.isArray(e)?Xz(e,r,n):""}function Xz(e,r,n){const o=[];let a=-1;for(;++a",...c.current()})),u+=c.move(">")):(s=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),s(),e.title&&(s=n.enter(`title${i}`),u+=c.move(" "+a),u+=c.move(n.safe(e.title,{before:u,after:a,...c.current()})),u+=c.move(a),s()),u+=c.move(")"),l(),u}function r4e(){return"!"}Qz.peek=n4e;function Qz(e,r,n,o){const a=e.referenceType,i=n.enter("imageReference");let l=n.enter("label");const s=n.createTracker(o);let c=s.move("![");const u=n.safe(e.alt,{before:c,after:"]",...s.current()});c+=s.move(u+"]["),l();const d=n.stack;n.stack=[],l=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...s.current()});return l(),n.stack=d,i(),a==="full"||!u||u!==p?c+=s.move(p+"]"):a==="shortcut"?c=c.slice(0,-1):c+=s.move("]"),c}function n4e(){return"!"}Jz.peek=o4e;function Jz(e,r,n){let o=e.value||"",a="`",i=-1;for(;new RegExp("(^|[^`])"+a+"([^`]|$)").test(o);)a+="`";for(/[^ \r\n]/.test(o)&&(/^[ \r\n]/.test(o)&&/[ \r\n]$/.test(o)||/^`|`$/.test(o))&&(o=" "+o+" ");++i\u007F]/.test(e.url))}tj.peek=a4e;function tj(e,r,n,o){const a=uE(n),i=a==='"'?"Quote":"Apostrophe",l=n.createTracker(o);let s,c;if(ej(e,n)){const d=n.stack;n.stack=[],s=n.enter("autolink");let p=l.move("<");return p+=l.move(n.containerPhrasing(e,{before:p,after:">",...l.current()})),p+=l.move(">"),s(),n.stack=d,p}s=n.enter("link"),c=n.enter("label");let u=l.move("[");return u+=l.move(n.containerPhrasing(e,{before:u,after:"](",...l.current()})),u+=l.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=l.move("<"),u+=l.move(n.safe(e.url,{before:u,after:">",...l.current()})),u+=l.move(">")):(c=n.enter("destinationRaw"),u+=l.move(n.safe(e.url,{before:u,after:e.title?" ":")",...l.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=l.move(" "+a),u+=l.move(n.safe(e.title,{before:u,after:a,...l.current()})),u+=l.move(a),c()),u+=l.move(")"),s(),u}function a4e(e,r,n){return ej(e,n)?"<":"["}rj.peek=i4e;function rj(e,r,n,o){const a=e.referenceType,i=n.enter("linkReference");let l=n.enter("label");const s=n.createTracker(o);let c=s.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...s.current()});c+=s.move(u+"]["),l();const d=n.stack;n.stack=[],l=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...s.current()});return l(),n.stack=d,i(),a==="full"||!u||u!==p?c+=s.move(p+"]"):a==="shortcut"?c=c.slice(0,-1):c+=s.move("]"),c}function i4e(){return"["}function dE(e){const r=e.options.bullet||"*";if(r!=="*"&&r!=="+"&&r!=="-")throw new Error("Cannot serialize items with `"+r+"` for `options.bullet`, expected `*`, `+`, or `-`");return r}function l4e(e){const r=dE(e),n=e.options.bulletOther;if(!n)return r==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===r)throw new Error("Expected `bullet` (`"+r+"`) and `bulletOther` (`"+n+"`) to be different");return n}function s4e(e){const r=e.options.bulletOrdered||".";if(r!=="."&&r!==")")throw new Error("Cannot serialize items with `"+r+"` for `options.bulletOrdered`, expected `.` or `)`");return r}function nj(e){const r=e.options.rule||"*";if(r!=="*"&&r!=="-"&&r!=="_")throw new Error("Cannot serialize rules with `"+r+"` for `options.rule`, expected `*`, `-`, or `_`");return r}function c4e(e,r,n,o){const a=n.enter("list"),i=n.bulletCurrent;let l=e.ordered?s4e(n):dE(n);const s=e.ordered?l==="."?")":".":l4e(n);let c=r&&n.bulletLastUsed?l===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((l==="*"||l==="-")&&d&&(!d.children||!d.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),nj(n)===l&&d){let p=-1;for(;++p-1?r.start:1)+(n.options.incrementListMarker===!1?0:r.children.indexOf(e))+i);let l=i.length+1;(a==="tab"||a==="mixed"&&(r&&r.type==="list"&&r.spread||e.spread))&&(l=Math.ceil(l/4)*4);const s=n.createTracker(o);s.move(i+" ".repeat(l-i.length)),s.shift(l);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,s.current()),d);return c(),u;function d(p,f,g){return f?(g?"":" ".repeat(l))+p:(g?i:i+" ".repeat(l-i.length))+p}}function p4e(e,r,n,o){const a=n.enter("paragraph"),i=n.enter("phrasing"),l=n.containerPhrasing(e,o);return i(),a(),l}const h4e=_3(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function f4e(e,r,n,o){return(e.children.some(function(l){return h4e(l)})?n.containerPhrasing:n.containerFlow).call(n,e,o)}function m4e(e){const r=e.options.strong||"*";if(r!=="*"&&r!=="_")throw new Error("Cannot serialize strong with `"+r+"` for `options.strong`, expected `*`, or `_`");return r}oj.peek=g4e;function oj(e,r,n,o){const a=m4e(n),i=n.enter("strong"),l=n.createTracker(o),s=l.move(a+a);let c=l.move(n.containerPhrasing(e,{after:a,before:s,...l.current()}));const u=c.charCodeAt(0),d=N3(o.before.charCodeAt(o.before.length-1),u,a);d.inside&&(c=z1(u)+c.slice(1));const p=c.charCodeAt(c.length-1),f=N3(o.after.charCodeAt(0),p,a);f.inside&&(c=c.slice(0,-1)+z1(p));const g=l.move(a+a);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},s+c+g}function g4e(e,r,n){return n.options.strong||"*"}function y4e(e,r,n,o){return n.safe(e.value,o)}function b4e(e){const r=e.options.ruleRepetition||3;if(r<3)throw new Error("Cannot serialize rules with repetition `"+r+"` for `options.ruleRepetition`, expected `3` or more");return r}function v4e(e,r,n){const o=(nj(n)+(n.options.ruleSpaces?" ":"")).repeat(b4e(n));return n.options.ruleSpaces?o.slice(0,-1):o}const aj={blockquote:B2e,break:Yz,code:Y2e,definition:G2e,emphasis:Wz,hardBreak:Yz,heading:e4e,html:Kz,image:Zz,imageReference:Qz,inlineCode:Jz,link:tj,linkReference:rj,list:c4e,listItem:d4e,paragraph:p4e,root:f4e,strong:oj,text:y4e,thematicBreak:v4e},ij={AElig:"Æ",AMP:"&",Aacute:"Á",Abreve:"Ă",Acirc:"Â",Acy:"А",Afr:"𝔄",Agrave:"À",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"𝔸",ApplyFunction:"⁡",Aring:"Å",Ascr:"𝒜",Assign:"≔",Atilde:"Ã",Auml:"Ä",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"𝔅",Bopf:"𝔹",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"©",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"Ç",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"¸",CenterDot:"·",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"𝒞",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"𝔇",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"𝔻",Dot:"¨",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"𝒟",Dstrok:"Đ",ENG:"Ŋ",ETH:"Ð",Eacute:"É",Ecaron:"Ě",Ecirc:"Ê",Ecy:"Э",Edot:"Ė",Efr:"𝔈",Egrave:"È",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"𝔼",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"Ë",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"𝔉",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"𝔽",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"𝔊",Gg:"⋙",Gopf:"𝔾",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"Í",Icirc:"Î",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"Ì",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"⁣",InvisibleTimes:"⁢",Iogon:"Į",Iopf:"𝕀",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"Ï",Jcirc:"Ĵ",Jcy:"Й",Jfr:"𝔍",Jopf:"𝕁",Jscr:"𝒥",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"𝔎",Kopf:"𝕂",Kscr:"𝒦",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"𝔏",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"𝕃",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",MinusPlus:"∓",Mopf:"𝕄",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:` +`,Nfr:"𝔑",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"𝒩",Ntilde:"Ñ",Nu:"Ν",OElig:"Œ",Oacute:"Ó",Ocirc:"Ô",Ocy:"О",Odblac:"Ő",Ofr:"𝔒",Ograve:"Ò",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"𝕆",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"𝒪",Oslash:"Ø",Otilde:"Õ",Otimes:"⨷",Ouml:"Ö",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"𝔓",Phi:"Φ",Pi:"Π",PlusMinus:"±",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"𝒫",Psi:"Ψ",QUOT:'"',Qfr:"𝔔",Qopf:"ℚ",Qscr:"𝒬",RBarr:"⤐",REG:"®",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"𝔖",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"𝕊",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"𝒮",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"Þ",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:" ",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"𝔗",Therefore:"∴",Theta:"Θ",ThickSpace:"  ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"𝕋",TripleDot:"⃛",Tscr:"𝒯",Tstrok:"Ŧ",Uacute:"Ú",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"Û",Ucy:"У",Udblac:"Ű",Ufr:"𝔘",Ugrave:"Ù",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"𝕌",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"𝒰",Utilde:"Ũ",Uuml:"Ü",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",Vopf:"𝕍",Vscr:"𝒱",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"𝔚",Wopf:"𝕎",Wscr:"𝒲",Xfr:"𝔛",Xi:"Ξ",Xopf:"𝕏",Xscr:"𝒳",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"Ý",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"𝔜",Yopf:"𝕐",Yscr:"𝒴",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"​",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"𝒵",aacute:"á",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"â",acute:"´",acy:"а",aelig:"æ",af:"⁡",afr:"𝔞",agrave:"à",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",aopf:"𝕒",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"å",ascr:"𝒶",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",auml:"ä",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"¦",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"ç",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",cfr:"𝔠",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"®",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"𝕔",coprod:"∐",copy:"©",copysr:"℗",crarr:"↵",cross:"✗",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"°",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"é",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"ê",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",eg:"⪚",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"ð",euml:"ë",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",horbar:"―",hscr:"𝒽",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"í",ic:"⁣",icirc:"î",icy:"и",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"𝕚",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",itilde:"ĩ",iukcy:"і",iuml:"ï",jcirc:"ĵ",jcy:"й",jfr:"𝔧",jmath:"ȷ",jopf:"𝕛",jscr:"𝒿",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"𝔨",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"𝕜",kscr:"𝓀",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"«",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",mp:"∓",mscr:"𝓂",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"𝕟",not:"¬",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"ó",oast:"⊛",ocir:"⊚",ocirc:"ô",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"𝔬",ogon:"˛",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"ø",osol:"⊘",otilde:"õ",otimes:"⊗",otimesas:"⨶",ouml:"ö",ovbar:"⌽",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",pointint:"⨕",popf:"𝕡",pound:"£",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",psi:"ψ",puncsp:" ",qfr:"𝔮",qint:"⨌",qopf:"𝕢",qprime:"⁗",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"𝓇",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"­",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"þ",tilde:"˜",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"ú",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"û",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",ugrave:"ù",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"¨",uogon:"ų",uopf:"𝕦",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"𝓊",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",vprop:"∝",vrtri:"⊳",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"𝔴",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"¥",yfr:"𝔶",yicy:"ї",yopf:"𝕪",yscr:"𝓎",yucy:"ю",yuml:"ÿ",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"𝔷",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",zscr:"𝓏",zwj:"‍",zwnj:"‌"},x4e={}.hasOwnProperty;function pE(e){return x4e.call(ij,e)?ij[e]:!1}function lj(e,r){const n=Number.parseInt(e,r);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}const w4e=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function k4e(e){return e.replace(w4e,_4e)}function _4e(e,r,n){if(r)return r;if(n.charCodeAt(0)===35){const a=n.charCodeAt(1),i=a===120||a===88;return lj(n.slice(i?2:1),i?16:10)}return pE(n)||e}function E4e(){return{enter:{table:S4e,tableData:sj,tableHeader:sj,tableRow:T4e},exit:{codeText:R4e,table:C4e,tableData:hE,tableHeader:hE,tableRow:hE}}}function S4e(e){const r=e._align;this.enter({type:"table",align:r.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function C4e(e){this.exit(e),this.data.inTable=void 0}function T4e(e){this.enter({type:"tableRow",children:[]},e)}function hE(e){this.exit(e)}function sj(e){this.enter({type:"tableCell",children:[]},e)}function R4e(e){let r=this.resume();this.data.inTable&&(r=r.replace(/\\([\\|])/g,A4e));const n=this.stack[this.stack.length-1];n.type,n.value=r,this.exit(e)}function A4e(e,r){return r==="|"?r:e}function N4e(e){const r=e||{},n=r.tableCellPadding,o=r.tablePipeAlign,a=r.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:f,table:l,tableCell:c,tableRow:s}};function l(g,b,x,w){return u(d(g,x,w),g.align)}function s(g,b,x,w){const k=p(g,x,w),C=u([k]);return C.slice(0,C.indexOf(` +`))}function c(g,b,x,w){const k=x.enter("tableCell"),C=x.enter("phrasing"),_=x.containerPhrasing(g,{...w,before:i,after:i});return C(),k(),_}function u(g,b){return z2e(g,{align:b,alignDelimiters:o,padding:n,stringLength:a})}function d(g,b,x){const w=g.children;let k=-1;const C=[],_=b.enter("table");for(;++ka?0:a+r:r=r>a?a:r,n=n>0?n:0,o.length<1e4)l=Array.from(o),l.unshift(r,n),e.splice(...l);else for(n&&e.splice(r,n);i0?(wa(e,e.length,0,r),e):r}const uj={}.hasOwnProperty;function dj(e){const r={};let n=-1;for(;++n0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}function Vh(e){const r=[];let n=-1,o=0,a=0;for(;++n55295&&i<57344){const s=e.charCodeAt(n+1);i<56320&&s>56319&&s<57344?(l=String.fromCharCode(i,s),a=1):l="�"}else l=String.fromCharCode(i);l&&(r.push(e.slice(o,n),encodeURIComponent(l)),o=n+a+1,l=""),a&&(n+=a,a=0)}return r.join("")+e.slice(o)}function $3(e,r,n){const o=[];let a=-1;for(;++a1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[o][1].end},f={...e[n][1].start};xj(p,-c),xj(f,c),l={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[o][1].end}},s={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},i={type:c>1?"strongText":"emphasisText",start:{...e[o][1].end},end:{...e[n][1].start}},a={type:c>1?"strong":"emphasis",start:{...l.start},end:{...s.end}},e[o][1].end={...l.start},e[n][1].start={...s.end},u=[],e[o][1].end.offset-e[o][1].start.offset&&(u=ei(u,[["enter",e[o][1],r],["exit",e[o][1],r]])),u=ei(u,[["enter",a,r],["enter",l,r],["exit",l,r],["enter",i,r]]),u=ei(u,$3(r.parser.constructs.insideSpan.null,e.slice(o+1,n),r)),u=ei(u,[["exit",i,r],["enter",s,r],["exit",s,r],["exit",a,r]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=ei(u,[["enter",e[n][1],r],["exit",e[n][1],r]])):d=0,wa(e,o-1,n-o+3,u),n=o+u.length-d-2;break}}for(n=-1;++n0&&Yt(A)?Qt(e,C,"linePrefix",i+1)(A):C(A)}function C(A){return A===null||pt(A)?e.check(Ej,x,T)(A):(e.enter("codeFlowValue"),_(A))}function _(A){return A===null||pt(A)?(e.exit("codeFlowValue"),C(A)):(e.consume(A),_)}function T(A){return e.exit("codeFenced"),r(A)}function R(A,D,N){let P=0;return O;function O(q){return A.enter("lineEnding"),A.consume(q),A.exit("lineEnding"),B}function B(q){return A.enter("codeFencedFence"),Yt(q)?Qt(A,L,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(q):L(q)}function L(q){return q===s?(A.enter("codeFencedFenceSequence"),Y(q)):N(q)}function Y(q){return q===s?(P++,A.consume(q),Y):P>=l?(A.exit("codeFencedFenceSequence"),Yt(q)?Qt(A,M,"whitespace")(q):M(q)):N(q)}function M(q){return q===null||pt(q)?(A.exit("codeFencedFence"),D(q)):N(q)}}}function lke(e,r,n){const o=this;return a;function a(l){return l===null?n(l):(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),i)}function i(l){return o.parser.lazy[o.now().line]?n(l):r(l)}}const yE={name:"codeIndented",tokenize:cke},ske={partial:!0,tokenize:uke};function cke(e,r,n){const o=this;return a;function a(u){return e.enter("codeIndented"),Qt(e,i,"linePrefix",5)(u)}function i(u){const d=o.events[o.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?l(u):n(u)}function l(u){return u===null?c(u):pt(u)?e.attempt(ske,l,c)(u):(e.enter("codeFlowValue"),s(u))}function s(u){return u===null||pt(u)?(e.exit("codeFlowValue"),l(u)):(e.consume(u),s)}function c(u){return e.exit("codeIndented"),r(u)}}function uke(e,r,n){const o=this;return a;function a(l){return o.parser.lazy[o.now().line]?n(l):pt(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),a):Qt(e,i,"linePrefix",5)(l)}function i(l){const s=o.events[o.events.length-1];return s&&s[1].type==="linePrefix"&&s[2].sliceSerialize(s[1],!0).length>=4?r(l):pt(l)?a(l):n(l)}}const dke={name:"codeText",previous:hke,resolve:pke,tokenize:fke};function pke(e){let r=e.length-4,n=3,o,a;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[r][1].type==="lineEnding"||e[r][1].type==="space")){for(o=n;++o=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+r+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return rthis.left.length?this.right.slice(this.right.length-o+this.left.length,this.right.length-r+this.left.length).reverse():this.left.slice(r).concat(this.right.slice(this.right.length-o+this.left.length).reverse())}splice(r,n,o){const a=n||0;this.setCursor(Math.trunc(r));const i=this.right.splice(this.right.length-a,Number.POSITIVE_INFINITY);return o&&B1(this.left,o),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(r){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(r)}pushMany(r){this.setCursor(Number.POSITIVE_INFINITY),B1(this.left,r)}unshift(r){this.setCursor(0),this.right.push(r)}unshiftMany(r){this.setCursor(0),B1(this.right,r.reverse())}setCursor(r){if(!(r===this.left.length||r>this.left.length&&this.right.length===0||r<0&&this.left.length===0))if(r=4?r(l):e.interrupt(o.parser.constructs.flow,n,r)(l)}}function Tj(e,r,n,o,a,i,l,s,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(k){return k===60?(e.enter(o),e.enter(a),e.enter(i),e.consume(k),e.exit(i),f):k===null||k===32||k===41||R3(k)?n(k):(e.enter(o),e.enter(l),e.enter(s),e.enter("chunkString",{contentType:"string"}),x(k))}function f(k){return k===62?(e.enter(i),e.consume(k),e.exit(i),e.exit(a),e.exit(o),r):(e.enter(s),e.enter("chunkString",{contentType:"string"}),g(k))}function g(k){return k===62?(e.exit("chunkString"),e.exit(s),f(k)):k===null||k===60||pt(k)?n(k):(e.consume(k),k===92?b:g)}function b(k){return k===60||k===62||k===92?(e.consume(k),g):g(k)}function x(k){return!d&&(k===null||k===41||xr(k))?(e.exit("chunkString"),e.exit(s),e.exit(l),e.exit(o),r(k)):d999||g===null||g===91||g===93&&!c||g===94&&!s&&"_hiddenFootnoteSupport"in l.parser.constructs?n(g):g===93?(e.exit(i),e.enter(a),e.consume(g),e.exit(a),e.exit(o),r):pt(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(g))}function p(g){return g===null||g===91||g===93||pt(g)||s++>999?(e.exit("chunkString"),d(g)):(e.consume(g),c||(c=!Yt(g)),g===92?f:p)}function f(g){return g===91||g===92||g===93?(e.consume(g),s++,p):p(g)}}function Aj(e,r,n,o,a,i){let l;return s;function s(f){return f===34||f===39||f===40?(e.enter(o),e.enter(a),e.consume(f),e.exit(a),l=f===40?41:f,c):n(f)}function c(f){return f===l?(e.enter(a),e.consume(f),e.exit(a),e.exit(o),r):(e.enter(i),u(f))}function u(f){return f===l?(e.exit(i),c(l)):f===null?n(f):pt(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Qt(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===l||f===null||pt(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?p:d)}function p(f){return f===l||f===92?(e.consume(f),d):d(f)}}function F1(e,r){let n;return o;function o(a){return pt(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),n=!0,o):Yt(a)?Qt(e,o,n?"linePrefix":"lineSuffix")(a):r(a)}}const kke={name:"definition",tokenize:Eke},_ke={partial:!0,tokenize:Ske};function Eke(e,r,n){const o=this;let a;return i;function i(g){return e.enter("definition"),l(g)}function l(g){return Rj.call(o,e,s,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(g)}function s(g){return a=Ui(o.sliceSerialize(o.events[o.events.length-1][1]).slice(1,-1)),g===58?(e.enter("definitionMarker"),e.consume(g),e.exit("definitionMarker"),c):n(g)}function c(g){return xr(g)?F1(e,u)(g):u(g)}function u(g){return Tj(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(g)}function d(g){return e.attempt(_ke,p,p)(g)}function p(g){return Yt(g)?Qt(e,f,"whitespace")(g):f(g)}function f(g){return g===null||pt(g)?(e.exit("definition"),o.parser.defined.push(a),r(g)):n(g)}}function Ske(e,r,n){return o;function o(s){return xr(s)?F1(e,a)(s):n(s)}function a(s){return Aj(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(s)}function i(s){return Yt(s)?Qt(e,l,"whitespace")(s):l(s)}function l(s){return s===null||pt(s)?r(s):n(s)}}const Cke={name:"hardBreakEscape",tokenize:Tke};function Tke(e,r,n){return o;function o(i){return e.enter("hardBreakEscape"),e.consume(i),a}function a(i){return pt(i)?(e.exit("hardBreakEscape"),r(i)):n(i)}}const Rke={name:"headingAtx",resolve:Ake,tokenize:Nke};function Ake(e,r){let n=e.length-2,o=3,a,i;return e[o][1].type==="whitespace"&&(o+=2),n-2>o&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(o===n-1||n-4>o&&e[n-2][1].type==="whitespace")&&(n-=o+1===n?2:4),n>o&&(a={type:"atxHeadingText",start:e[o][1].start,end:e[n][1].end},i={type:"chunkText",start:e[o][1].start,end:e[n][1].end,contentType:"text"},wa(e,o,n-o+1,[["enter",a,r],["enter",i,r],["exit",i,r],["exit",a,r]])),e}function Nke(e,r,n){let o=0;return a;function a(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),l(d)}function l(d){return d===35&&o++<6?(e.consume(d),l):d===null||xr(d)?(e.exit("atxHeadingSequence"),s(d)):n(d)}function s(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||pt(d)?(e.exit("atxHeading"),r(d)):Yt(d)?Qt(e,s,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),s(d))}function u(d){return d===null||d===35||xr(d)?(e.exit("atxHeadingText"),s(d)):(e.consume(d),u)}}const Dke=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Nj=["pre","script","style","textarea"],$ke={concrete:!0,name:"htmlFlow",resolveTo:Mke,tokenize:Ike},Pke={partial:!0,tokenize:zke},Oke={partial:!0,tokenize:Lke};function Mke(e){let r=e.length;for(;r--&&!(e[r][0]==="enter"&&e[r][1].type==="htmlFlow"););return r>1&&e[r-2][1].type==="linePrefix"&&(e[r][1].start=e[r-2][1].start,e[r+1][1].start=e[r-2][1].start,e.splice(r-2,2)),e}function Ike(e,r,n){const o=this;let a,i,l,s,c;return u;function u(z){return d(z)}function d(z){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(z),p}function p(z){return z===33?(e.consume(z),f):z===47?(e.consume(z),i=!0,x):z===63?(e.consume(z),a=3,o.interrupt?r:F):Fo(z)?(e.consume(z),l=String.fromCharCode(z),w):n(z)}function f(z){return z===45?(e.consume(z),a=2,g):z===91?(e.consume(z),a=5,s=0,b):Fo(z)?(e.consume(z),a=4,o.interrupt?r:F):n(z)}function g(z){return z===45?(e.consume(z),o.interrupt?r:F):n(z)}function b(z){const W="CDATA[";return z===W.charCodeAt(s++)?(e.consume(z),s===W.length?o.interrupt?r:L:b):n(z)}function x(z){return Fo(z)?(e.consume(z),l=String.fromCharCode(z),w):n(z)}function w(z){if(z===null||z===47||z===62||xr(z)){const W=z===47,X=l.toLowerCase();return!W&&!i&&Nj.includes(X)?(a=1,o.interrupt?r(z):L(z)):Dke.includes(l.toLowerCase())?(a=6,W?(e.consume(z),k):o.interrupt?r(z):L(z)):(a=7,o.interrupt&&!o.parser.lazy[o.now().line]?n(z):i?C(z):_(z))}return z===45||Co(z)?(e.consume(z),l+=String.fromCharCode(z),w):n(z)}function k(z){return z===62?(e.consume(z),o.interrupt?r:L):n(z)}function C(z){return Yt(z)?(e.consume(z),C):O(z)}function _(z){return z===47?(e.consume(z),O):z===58||z===95||Fo(z)?(e.consume(z),T):Yt(z)?(e.consume(z),_):O(z)}function T(z){return z===45||z===46||z===58||z===95||Co(z)?(e.consume(z),T):R(z)}function R(z){return z===61?(e.consume(z),A):Yt(z)?(e.consume(z),R):_(z)}function A(z){return z===null||z===60||z===61||z===62||z===96?n(z):z===34||z===39?(e.consume(z),c=z,D):Yt(z)?(e.consume(z),A):N(z)}function D(z){return z===c?(e.consume(z),c=null,P):z===null||pt(z)?n(z):(e.consume(z),D)}function N(z){return z===null||z===34||z===39||z===47||z===60||z===61||z===62||z===96||xr(z)?R(z):(e.consume(z),N)}function P(z){return z===47||z===62||Yt(z)?_(z):n(z)}function O(z){return z===62?(e.consume(z),B):n(z)}function B(z){return z===null||pt(z)?L(z):Yt(z)?(e.consume(z),B):n(z)}function L(z){return z===45&&a===2?(e.consume(z),I):z===60&&a===1?(e.consume(z),U):z===62&&a===4?(e.consume(z),J):z===63&&a===3?(e.consume(z),F):z===93&&a===5?(e.consume(z),G):pt(z)&&(a===6||a===7)?(e.exit("htmlFlowData"),e.check(Pke,Q,Y)(z)):z===null||pt(z)?(e.exit("htmlFlowData"),Y(z)):(e.consume(z),L)}function Y(z){return e.check(Oke,M,Q)(z)}function M(z){return e.enter("lineEnding"),e.consume(z),e.exit("lineEnding"),q}function q(z){return z===null||pt(z)?Y(z):(e.enter("htmlFlowData"),L(z))}function I(z){return z===45?(e.consume(z),F):L(z)}function U(z){return z===47?(e.consume(z),l="",V):L(z)}function V(z){if(z===62){const W=l.toLowerCase();return Nj.includes(W)?(e.consume(z),J):L(z)}return Fo(z)&&l.length<8?(e.consume(z),l+=String.fromCharCode(z),V):L(z)}function G(z){return z===93?(e.consume(z),F):L(z)}function F(z){return z===62?(e.consume(z),J):z===45&&a===2?(e.consume(z),F):L(z)}function J(z){return z===null||pt(z)?(e.exit("htmlFlowData"),Q(z)):(e.consume(z),J)}function Q(z){return e.exit("htmlFlow"),r(z)}}function Lke(e,r,n){const o=this;return a;function a(l){return pt(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),i):n(l)}function i(l){return o.parser.lazy[o.now().line]?n(l):r(l)}}function zke(e,r,n){return o;function o(a){return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),e.attempt(j1,r,n)}}const jke={name:"htmlText",tokenize:Bke};function Bke(e,r,n){const o=this;let a,i,l;return s;function s(F){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(F),c}function c(F){return F===33?(e.consume(F),u):F===47?(e.consume(F),R):F===63?(e.consume(F),_):Fo(F)?(e.consume(F),N):n(F)}function u(F){return F===45?(e.consume(F),d):F===91?(e.consume(F),i=0,b):Fo(F)?(e.consume(F),C):n(F)}function d(F){return F===45?(e.consume(F),g):n(F)}function p(F){return F===null?n(F):F===45?(e.consume(F),f):pt(F)?(l=p,U(F)):(e.consume(F),p)}function f(F){return F===45?(e.consume(F),g):p(F)}function g(F){return F===62?I(F):F===45?f(F):p(F)}function b(F){const J="CDATA[";return F===J.charCodeAt(i++)?(e.consume(F),i===J.length?x:b):n(F)}function x(F){return F===null?n(F):F===93?(e.consume(F),w):pt(F)?(l=x,U(F)):(e.consume(F),x)}function w(F){return F===93?(e.consume(F),k):x(F)}function k(F){return F===62?I(F):F===93?(e.consume(F),k):x(F)}function C(F){return F===null||F===62?I(F):pt(F)?(l=C,U(F)):(e.consume(F),C)}function _(F){return F===null?n(F):F===63?(e.consume(F),T):pt(F)?(l=_,U(F)):(e.consume(F),_)}function T(F){return F===62?I(F):_(F)}function R(F){return Fo(F)?(e.consume(F),A):n(F)}function A(F){return F===45||Co(F)?(e.consume(F),A):D(F)}function D(F){return pt(F)?(l=D,U(F)):Yt(F)?(e.consume(F),D):I(F)}function N(F){return F===45||Co(F)?(e.consume(F),N):F===47||F===62||xr(F)?P(F):n(F)}function P(F){return F===47?(e.consume(F),I):F===58||F===95||Fo(F)?(e.consume(F),O):pt(F)?(l=P,U(F)):Yt(F)?(e.consume(F),P):I(F)}function O(F){return F===45||F===46||F===58||F===95||Co(F)?(e.consume(F),O):B(F)}function B(F){return F===61?(e.consume(F),L):pt(F)?(l=B,U(F)):Yt(F)?(e.consume(F),B):P(F)}function L(F){return F===null||F===60||F===61||F===62||F===96?n(F):F===34||F===39?(e.consume(F),a=F,Y):pt(F)?(l=L,U(F)):Yt(F)?(e.consume(F),L):(e.consume(F),M)}function Y(F){return F===a?(e.consume(F),a=void 0,q):F===null?n(F):pt(F)?(l=Y,U(F)):(e.consume(F),Y)}function M(F){return F===null||F===34||F===39||F===60||F===61||F===96?n(F):F===47||F===62||xr(F)?P(F):(e.consume(F),M)}function q(F){return F===47||F===62||xr(F)?P(F):n(F)}function I(F){return F===62?(e.consume(F),e.exit("htmlTextData"),e.exit("htmlText"),r):n(F)}function U(F){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(F),e.exit("lineEnding"),V}function V(F){return Yt(F)?Qt(e,G,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(F):G(F)}function G(F){return e.enter("htmlTextData"),l(F)}}const bE={name:"labelEnd",resolveAll:qke,resolveTo:Vke,tokenize:Yke},Fke={tokenize:Wke},Hke={tokenize:Gke},Uke={tokenize:Xke};function qke(e){let r=-1;const n=[];for(;++r=3&&(u===null||pt(u))?(e.exit("thematicBreak"),r(u)):n(u)}function c(u){return u===a?(e.consume(u),o++,c):(e.exit("thematicBreakSequence"),Yt(u)?Qt(e,s,"whitespace")(u):s(u))}}const Ko={continuation:{tokenize:a5e},exit:l5e,name:"list",tokenize:o5e},r5e={partial:!0,tokenize:s5e},n5e={partial:!0,tokenize:i5e};function o5e(e,r,n){const o=this,a=o.events[o.events.length-1];let i=a&&a[1].type==="linePrefix"?a[2].sliceSerialize(a[1],!0).length:0,l=0;return s;function s(g){const b=o.containerState.type||(g===42||g===43||g===45?"listUnordered":"listOrdered");if(b==="listUnordered"?!o.containerState.marker||g===o.containerState.marker:iE(g)){if(o.containerState.type||(o.containerState.type=b,e.enter(b,{_container:!0})),b==="listUnordered")return e.enter("listItemPrefix"),g===42||g===45?e.check(P3,n,u)(g):u(g);if(!o.interrupt||g===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(g)}return n(g)}function c(g){return iE(g)&&++l<10?(e.consume(g),c):(!o.interrupt||l<2)&&(o.containerState.marker?g===o.containerState.marker:g===41||g===46)?(e.exit("listItemValue"),u(g)):n(g)}function u(g){return e.enter("listItemMarker"),e.consume(g),e.exit("listItemMarker"),o.containerState.marker=o.containerState.marker||g,e.check(j1,o.interrupt?n:d,e.attempt(r5e,f,p))}function d(g){return o.containerState.initialBlankLine=!0,i++,f(g)}function p(g){return Yt(g)?(e.enter("listItemPrefixWhitespace"),e.consume(g),e.exit("listItemPrefixWhitespace"),f):n(g)}function f(g){return o.containerState.size=i+o.sliceSerialize(e.exit("listItemPrefix"),!0).length,r(g)}}function a5e(e,r,n){const o=this;return o.containerState._closeFlow=void 0,e.check(j1,a,i);function a(s){return o.containerState.furtherBlankLines=o.containerState.furtherBlankLines||o.containerState.initialBlankLine,Qt(e,r,"listItemIndent",o.containerState.size+1)(s)}function i(s){return o.containerState.furtherBlankLines||!Yt(s)?(o.containerState.furtherBlankLines=void 0,o.containerState.initialBlankLine=void 0,l(s)):(o.containerState.furtherBlankLines=void 0,o.containerState.initialBlankLine=void 0,e.attempt(n5e,r,l)(s))}function l(s){return o.containerState._closeFlow=!0,o.interrupt=void 0,Qt(e,e.attempt(Ko,r,n),"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s)}}function i5e(e,r,n){const o=this;return Qt(e,a,"listItemIndent",o.containerState.size+1);function a(i){const l=o.events[o.events.length-1];return l&&l[1].type==="listItemIndent"&&l[2].sliceSerialize(l[1],!0).length===o.containerState.size?r(i):n(i)}}function l5e(e){e.exit(this.containerState.type)}function s5e(e,r,n){const o=this;return Qt(e,a,"listItemPrefixWhitespace",o.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function a(i){const l=o.events[o.events.length-1];return!Yt(i)&&l&&l[1].type==="listItemPrefixWhitespace"?r(i):n(i)}}const Dj={name:"setextUnderline",resolveTo:c5e,tokenize:u5e};function c5e(e,r){let n=e.length,o,a,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){o=n;break}e[n][1].type==="paragraph"&&(a=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const l={type:"setextHeading",start:{...e[o][1].start},end:{...e[e.length-1][1].end}};return e[a][1].type="setextHeadingText",i?(e.splice(a,0,["enter",l,r]),e.splice(i+1,0,["exit",e[o][1],r]),e[o][1].end={...e[i][1].end}):e[o][1]=l,e.push(["exit",l,r]),e}function u5e(e,r,n){const o=this;let a;return i;function i(u){let d=o.events.length,p;for(;d--;)if(o.events[d][1].type!=="lineEnding"&&o.events[d][1].type!=="linePrefix"&&o.events[d][1].type!=="content"){p=o.events[d][1].type==="paragraph";break}return!o.parser.lazy[o.now().line]&&(o.interrupt||p)?(e.enter("setextHeadingLine"),a=u,l(u)):n(u)}function l(u){return e.enter("setextHeadingLineSequence"),s(u)}function s(u){return u===a?(e.consume(u),s):(e.exit("setextHeadingLineSequence"),Yt(u)?Qt(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||pt(u)?(e.exit("setextHeadingLine"),r(u)):n(u)}}const d5e={tokenize:v5e,partial:!0};function p5e(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:g5e,continuation:{tokenize:y5e},exit:b5e}},text:{91:{name:"gfmFootnoteCall",tokenize:m5e},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:h5e,resolveTo:f5e}}}}function h5e(e,r,n){const o=this;let a=o.events.length;const i=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let l;for(;a--;){const c=o.events[a][1];if(c.type==="labelImage"){l=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return s;function s(c){if(!l||!l._balanced)return n(c);const u=Ui(o.sliceSerialize({start:l.end,end:o.now()}));return u.codePointAt(0)!==94||!i.includes(u.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),r(c))}}function f5e(e,r){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const o={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},a={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};a.end.column++,a.end.offset++,a.end._bufferIndex++;const i={type:"gfmFootnoteCallString",start:Object.assign({},a.end),end:Object.assign({},e[e.length-1][1].start)},l={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},s=[e[n+1],e[n+2],["enter",o,r],e[n+3],e[n+4],["enter",a,r],["exit",a,r],["enter",i,r],["enter",l,r],["exit",l,r],["exit",i,r],e[e.length-2],e[e.length-1],["exit",o,r]];return e.splice(n,e.length-n+1,...s),e}function m5e(e,r,n){const o=this,a=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let i=0,l;return s;function s(p){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),c}function c(p){return p!==94?n(p):(e.enter("gfmFootnoteCallMarker"),e.consume(p),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(p){if(i>999||p===93&&!l||p===null||p===91||xr(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return a.includes(Ui(o.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),r):n(p)}return xr(p)||(l=!0),i++,e.consume(p),p===92?d:u}function d(p){return p===91||p===92||p===93?(e.consume(p),i++,u):u(p)}}function g5e(e,r,n){const o=this,a=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let i,l=0,s;return c;function c(b){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionLabelMarker"),u}function u(b){return b===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",d):n(b)}function d(b){if(l>999||b===93&&!s||b===null||b===91||xr(b))return n(b);if(b===93){e.exit("chunkString");const x=e.exit("gfmFootnoteDefinitionLabelString");return i=Ui(o.sliceSerialize(x)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return xr(b)||(s=!0),l++,e.consume(b),b===92?p:d}function p(b){return b===91||b===92||b===93?(e.consume(b),l++,d):d(b)}function f(b){return b===58?(e.enter("definitionMarker"),e.consume(b),e.exit("definitionMarker"),a.includes(i)||a.push(i),Qt(e,g,"gfmFootnoteDefinitionWhitespace")):n(b)}function g(b){return r(b)}}function y5e(e,r,n){return e.check(j1,r,e.attempt(d5e,r,n))}function b5e(e){e.exit("gfmFootnoteDefinition")}function v5e(e,r,n){const o=this;return Qt(e,a,"gfmFootnoteDefinitionIndent",5);function a(i){const l=o.events[o.events.length-1];return l&&l[1].type==="gfmFootnoteDefinitionIndent"&&l[2].sliceSerialize(l[1],!0).length===4?r(i):n(i)}}function x5e(e){let n=(e||{}).singleTilde;const o={name:"strikethrough",tokenize:i,resolveAll:a};return n==null&&(n=!0),{text:{126:o},insideSpan:{null:[o]},attentionMarkers:{null:[126]}};function a(l,s){let c=-1;for(;++c1?c(b):(l.consume(b),p++,g);if(p<2&&!n)return c(b);const w=l.exit("strikethroughSequenceTemporary"),k=qh(b);return w._open=!k||k===2&&!!x,w._close=!x||x===2&&!!k,s(b)}}}class w5e{constructor(){this.map=[]}add(r,n,o){k5e(this,r,n,o)}consume(r){if(this.map.sort(function(i,l){return i[0]-l[0]}),this.map.length===0)return;let n=this.map.length;const o=[];for(;n>0;)n-=1,o.push(r.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),r.length=this.map[n][0];o.push(r.slice()),r.length=0;let a=o.pop();for(;a;){for(const i of a)r.push(i);a=o.pop()}this.map.length=0}}function k5e(e,r,n,o){let a=0;if(!(n===0&&o.length===0)){for(;a-1;){const M=o.events[B][1].type;if(M==="lineEnding"||M==="linePrefix")B--;else break}const L=B>-1?o.events[B][1].type:null,Y=L==="tableHead"||L==="tableRow"?A:c;return Y===A&&o.parser.lazy[o.now().line]?n(O):Y(O)}function c(O){return e.enter("tableHead"),e.enter("tableRow"),u(O)}function u(O){return O===124||(l=!0,i+=1),d(O)}function d(O){return O===null?n(O):pt(O)?i>1?(i=0,o.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(O),e.exit("lineEnding"),g):n(O):Yt(O)?Qt(e,d,"whitespace")(O):(i+=1,l&&(l=!1,a+=1),O===124?(e.enter("tableCellDivider"),e.consume(O),e.exit("tableCellDivider"),l=!0,d):(e.enter("data"),p(O)))}function p(O){return O===null||O===124||xr(O)?(e.exit("data"),d(O)):(e.consume(O),O===92?f:p)}function f(O){return O===92||O===124?(e.consume(O),p):p(O)}function g(O){return o.interrupt=!1,o.parser.lazy[o.now().line]?n(O):(e.enter("tableDelimiterRow"),l=!1,Yt(O)?Qt(e,b,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(O):b(O))}function b(O){return O===45||O===58?w(O):O===124?(l=!0,e.enter("tableCellDivider"),e.consume(O),e.exit("tableCellDivider"),x):R(O)}function x(O){return Yt(O)?Qt(e,w,"whitespace")(O):w(O)}function w(O){return O===58?(i+=1,l=!0,e.enter("tableDelimiterMarker"),e.consume(O),e.exit("tableDelimiterMarker"),k):O===45?(i+=1,k(O)):O===null||pt(O)?T(O):R(O)}function k(O){return O===45?(e.enter("tableDelimiterFiller"),C(O)):R(O)}function C(O){return O===45?(e.consume(O),C):O===58?(l=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(O),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(O))}function _(O){return Yt(O)?Qt(e,T,"whitespace")(O):T(O)}function T(O){return O===124?b(O):O===null||pt(O)?!l||a!==i?R(O):(e.exit("tableDelimiterRow"),e.exit("tableHead"),r(O)):R(O)}function R(O){return n(O)}function A(O){return e.enter("tableRow"),D(O)}function D(O){return O===124?(e.enter("tableCellDivider"),e.consume(O),e.exit("tableCellDivider"),D):O===null||pt(O)?(e.exit("tableRow"),r(O)):Yt(O)?Qt(e,D,"whitespace")(O):(e.enter("data"),N(O))}function N(O){return O===null||O===124||xr(O)?(e.exit("data"),D(O)):(e.consume(O),O===92?P:N)}function P(O){return O===92||O===124?(e.consume(O),N):N(O)}}function C5e(e,r){let n=-1,o=!0,a=0,i=[0,0,0,0],l=[0,0,0,0],s=!1,c=0,u,d,p;const f=new w5e;for(;++nn[2]+1){const b=n[2]+1,x=n[3]-n[2]-1;e.add(b,x,[])}}e.add(n[3]+1,0,[["exit",p,r]])}return a!==void 0&&(i.end=Object.assign({},Yh(r.events,a)),e.add(a,0,[["exit",i,r]]),i=void 0),i}function $j(e,r,n,o,a){const i=[],l=Yh(r.events,n);a&&(a.end=Object.assign({},l),i.push(["exit",a,r])),o.end=Object.assign({},l),i.push(["exit",o,r]),e.add(n+1,0,i)}function Yh(e,r){const n=e[r],o=n[0]==="enter"?"start":"end";return n[1][o]}const T5e={name:"tasklistCheck",tokenize:A5e};function R5e(){return{text:{91:T5e}}}function A5e(e,r,n){const o=this;return a;function a(c){return o.previous!==null||!o._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),i)}function i(c){return xr(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),l):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),l):n(c)}function l(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),s):n(c)}function s(c){return pt(c)?r(c):Yt(c)?e.check({tokenize:N5e},r,n)(c):n(c)}}function N5e(e,r,n){return Qt(e,o,"whitespace");function o(a){return a===null?n(a):r(a)}}function D5e(e){return dj([F4e(),p5e(),x5e(e),E5e(),R5e()])}const $5e={};function P5e(e){const r=this,n=e||$5e,o=r.data(),a=o.micromarkExtensions||(o.micromarkExtensions=[]),i=o.fromMarkdownExtensions||(o.fromMarkdownExtensions=[]),l=o.toMarkdownExtensions||(o.toMarkdownExtensions=[]);a.push(D5e(n)),i.push(M4e()),l.push(I4e(n))}const O5e={tokenize:M5e};function M5e(e){const r=e.attempt(this.parser.constructs.contentInitial,o,a);let n;return r;function o(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),Qt(e,r,"linePrefix")}function a(s){return e.enter("paragraph"),i(s)}function i(s){const c=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=c),n=c,l(s)}function l(s){if(s===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(s);return}return pt(s)?(e.consume(s),e.exit("chunkText"),i):(e.consume(s),l)}}const I5e={tokenize:L5e},Pj={tokenize:z5e};function L5e(e){const r=this,n=[];let o=0,a,i,l;return s;function s(_){if(ol))return;const D=r.events.length;let N=D,P,O;for(;N--;)if(r.events[N][0]==="exit"&&r.events[N][1].type==="chunkFlow"){if(P){O=r.events[N][1].end;break}P=!0}for(k(o),A=D;A_;){const R=n[T];r.containerState=R[1],R[0].exit.call(r,e)}n.length=_}function C(){a.write([null]),i=void 0,a=void 0,r.containerState._closeFlow=void 0}}function z5e(e,r,n){return Qt(e,e.attempt(this.parser.constructs.document,r,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}const j5e={tokenize:B5e};function B5e(e){const r=this,n=e.attempt(j1,o,e.attempt(this.parser.constructs.flowInitial,a,Qt(e,e.attempt(this.parser.constructs.flow,a,e.attempt(yke,a)),"linePrefix")));return n;function o(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),r.currentConstruct=void 0,n}function a(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),r.currentConstruct=void 0,n}}const F5e={resolveAll:Mj()},H5e=Oj("string"),U5e=Oj("text");function Oj(e){return{resolveAll:Mj(e==="text"?q5e:void 0),tokenize:r};function r(n){const o=this,a=this.parser.constructs[e],i=n.attempt(a,l,s);return l;function l(d){return u(d)?i(d):s(d)}function s(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),i(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=a[d];let f=-1;if(p)for(;++f-1){const s=l[0];typeof s=="string"?l[0]=s.slice(o):l.shift()}i>0&&l.push(e[a].slice(0,i))}return l}function G5e(e,r){let n=-1;const o=[];let a;for(;++n0){const Wr=rt.tokenStack[rt.tokenStack.length-1];(Wr[1]||Hj).call(rt,void 0,Wr[0])}for(we.position={start:Zc(_e.length>0?_e[0][1].start:{line:1,column:1,offset:0}),end:Zc(_e.length>0?_e[_e.length-2][1].end:{line:1,column:1,offset:0})},Dt=-1;++Dt1?"-"+s:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(l)}]};e.patch(r,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(r,u),e.applyData(r,u)}function l_e(e,r){const n={type:"element",tagName:"h"+r.depth,properties:{},children:e.all(r)};return e.patch(r,n),e.applyData(r,n)}function s_e(e,r){if(e.options.allowDangerousHtml){const n={type:"raw",value:r.value};return e.patch(r,n),e.applyData(r,n)}}function Uj(e,r){const n=r.referenceType;let o="]";if(n==="collapsed"?o+="[]":n==="full"&&(o+="["+(r.label||r.identifier)+"]"),r.type==="imageReference")return[{type:"text",value:"!["+r.alt+o}];const a=e.all(r),i=a[0];i&&i.type==="text"?i.value="["+i.value:a.unshift({type:"text",value:"["});const l=a[a.length-1];return l&&l.type==="text"?l.value+=o:a.push({type:"text",value:o}),a}function c_e(e,r){const n=String(r.identifier).toUpperCase(),o=e.definitionById.get(n);if(!o)return Uj(e,r);const a={src:Vh(o.url||""),alt:r.alt};o.title!==null&&o.title!==void 0&&(a.title=o.title);const i={type:"element",tagName:"img",properties:a,children:[]};return e.patch(r,i),e.applyData(r,i)}function u_e(e,r){const n={src:Vh(r.url)};r.alt!==null&&r.alt!==void 0&&(n.alt=r.alt),r.title!==null&&r.title!==void 0&&(n.title=r.title);const o={type:"element",tagName:"img",properties:n,children:[]};return e.patch(r,o),e.applyData(r,o)}function d_e(e,r){const n={type:"text",value:r.value.replace(/\r?\n|\r/g," ")};e.patch(r,n);const o={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(r,o),e.applyData(r,o)}function p_e(e,r){const n=String(r.identifier).toUpperCase(),o=e.definitionById.get(n);if(!o)return Uj(e,r);const a={href:Vh(o.url||"")};o.title!==null&&o.title!==void 0&&(a.title=o.title);const i={type:"element",tagName:"a",properties:a,children:e.all(r)};return e.patch(r,i),e.applyData(r,i)}function h_e(e,r){const n={href:Vh(r.url)};r.title!==null&&r.title!==void 0&&(n.title=r.title);const o={type:"element",tagName:"a",properties:n,children:e.all(r)};return e.patch(r,o),e.applyData(r,o)}function f_e(e,r,n){const o=e.all(r),a=n?m_e(n):qj(r),i={},l=[];if(typeof r.checked=="boolean"){const d=o[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},o.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:r.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let s=-1;for(;++s1}function g_e(e,r){const n={},o=e.all(r);let a=-1;for(typeof r.start=="number"&&r.start!==1&&(n.start=r.start);++a0){const l={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},s=zs(r.children[1]),c=k3(r.children[r.children.length-1]);s&&c&&(l.position={start:s,end:c}),a.push(l)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(a,!0)};return e.patch(r,i),e.applyData(r,i)}function w_e(e,r,n){const o=n?n.children:void 0,i=(o?o.indexOf(r):1)===0?"th":"td",l=n&&n.type==="table"?n.align:void 0,s=l?l.length:r.children.length;let c=-1;const u=[];for(;++c0,!0),o[0]),a=o.index+o[0].length,o=n.exec(r);return i.push(Wj(r.slice(a),a>0,!1)),i.join("")}function Wj(e,r,n){let o=0,a=e.length;if(r){let i=e.codePointAt(o);for(;i===Vj||i===Yj;)o++,i=e.codePointAt(o)}if(n){let i=e.codePointAt(a-1);for(;i===Vj||i===Yj;)a--,i=e.codePointAt(a-1)}return a>o?e.slice(o,a):""}function E_e(e,r){const n={type:"text",value:__e(String(r.value))};return e.patch(r,n),e.applyData(r,n)}function S_e(e,r){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(r,n),e.applyData(r,n)}const C_e={blockquote:t_e,break:r_e,code:n_e,delete:o_e,emphasis:a_e,footnoteReference:i_e,heading:l_e,html:s_e,imageReference:c_e,image:u_e,inlineCode:d_e,linkReference:p_e,link:h_e,listItem:f_e,list:g_e,paragraph:y_e,root:b_e,strong:v_e,table:x_e,tableCell:k_e,tableRow:w_e,text:E_e,thematicBreak:S_e,toml:M3,yaml:M3,definition:M3,footnoteDefinition:M3};function M3(){}function T_e(e,r){const n=[{type:"text",value:"↩"}];return r>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(r)}]}),n}function R_e(e,r){return"Back to reference "+(e+1)+(r>1?"-"+r:"")}function A_e(e){const r=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||T_e,o=e.options.footnoteBackLabel||R_e,a=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",l=e.options.footnoteLabelProperties||{className:["sr-only"]},s=[];let c=-1;for(;++c0&&b.push({type:"text",value:" "});let C=typeof n=="string"?n:n(c,g);typeof C=="string"&&(C={type:"text",value:C}),b.push({type:"element",tagName:"a",properties:{href:"#"+r+"fnref-"+f+(g>1?"-"+g:""),dataFootnoteBackref:"",ariaLabel:typeof o=="string"?o:o(c,g),className:["data-footnote-backref"]},children:Array.isArray(C)?C:[C]})}const w=d[d.length-1];if(w&&w.type==="element"&&w.tagName==="p"){const C=w.children[w.children.length-1];C&&C.type==="text"?C.value+=" ":w.children.push({type:"text",value:" "}),w.children.push(...b)}else d.push(...b);const k={type:"element",tagName:"li",properties:{id:r+"fn-"+f},children:e.wrap(d,!0)};e.patch(u,k),s.push(k)}if(s.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...xd(l),id:"footnote-label"},children:[{type:"text",value:a}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(s,!0)},{type:"text",value:` +`}]}}const wE={}.hasOwnProperty,N_e={};function D_e(e,r){const n=r||N_e,o=new Map,a=new Map,i=new Map,l={...C_e,...n.handlers},s={all:u,applyData:P_e,definitionById:o,footnoteById:a,footnoteCounts:i,footnoteOrder:[],handlers:l,one:c,options:n,patch:$_e,wrap:M_e};return eE(e,function(d){if(d.type==="definition"||d.type==="footnoteDefinition"){const p=d.type==="definition"?o:a,f=String(d.identifier).toUpperCase();p.has(f)||p.set(f,d)}}),s;function c(d,p){const f=d.type,g=s.handlers[f];if(wE.call(s.handlers,f)&&g)return g(s,d,p);if(s.options.passThrough&&s.options.passThrough.includes(f)){if("children"in d){const{children:x,...w}=d,k=xd(w);return k.children=s.all(d),k}return xd(d)}return(s.options.unknownHandler||O_e)(s,d,p)}function u(d){const p=[];if("children"in d){const f=d.children;let g=-1;for(;++g0&&n.push({type:"text",value:` +`}),n}function Gj(e){let r=0,n=e.charCodeAt(r);for(;n===9||n===32;)r++,n=e.charCodeAt(r);return e.slice(r)}function Xj(e,r){const n=D_e(e,r),o=n.one(e,void 0),a=A_e(n),i=Array.isArray(o)?{type:"root",children:o}:o||{type:"root",children:[]};return a&&i.children.push({type:"text",value:` +`},a),i}function I_e(e,r){return e&&"run"in e?async function(n,o){const a=Xj(n,{file:o,...r});await e.run(a,o)}:function(n,o){return Xj(n,{file:o,...e||r})}}function Kj(e){if(e)throw e}var kE,Zj;function L_e(){if(Zj)return kE;Zj=1;var e=Object.prototype.hasOwnProperty,r=Object.prototype.toString,n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,a=function(u){return typeof Array.isArray=="function"?Array.isArray(u):r.call(u)==="[object Array]"},i=function(u){if(!u||r.call(u)!=="[object Object]")return!1;var d=e.call(u,"constructor"),p=u.constructor&&u.constructor.prototype&&e.call(u.constructor.prototype,"isPrototypeOf");if(u.constructor&&!d&&!p)return!1;var f;for(f in u);return typeof f>"u"||e.call(u,f)},l=function(u,d){n&&d.name==="__proto__"?n(u,d.name,{enumerable:!0,configurable:!0,value:d.newValue,writable:!0}):u[d.name]=d.newValue},s=function(u,d){if(d==="__proto__")if(e.call(u,d)){if(o)return o(u,d).value}else return;return u[d]};return kE=function c(){var u,d,p,f,g,b,x=arguments[0],w=1,k=arguments.length,C=!1;for(typeof x=="boolean"&&(C=x,x=arguments[1]||{},w=2),(x==null||typeof x!="object"&&typeof x!="function")&&(x={});wl.length;let c;s&&l.push(a);try{c=e.apply(this,l)}catch(u){const d=u;if(s&&n)throw d;return a(d)}s||(c&&c.then&&typeof c.then=="function"?c.then(i,a):c instanceof Error?a(c):i(c))}function a(l,...s){n||(n=!0,r(l,...s))}function i(l){a(null,l)}}let Zo=class extends Error{constructor(r,n,o){super(),typeof n=="string"&&(o=n,n=void 0);let a="",i={},l=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof r=="string"?a=r:!i.cause&&r&&(l=!0,a=r.message,i.cause=r),!i.ruleId&&!i.source&&typeof o=="string"){const c=o.indexOf(":");c===-1?i.ruleId=o:(i.source=o.slice(0,c),i.ruleId=o.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const s=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=s?s.column:void 0,this.fatal=void 0,this.file,this.message=a,this.line=s?s.line:void 0,this.name=H1(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=l&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual,this.expected,this.note,this.url}};Zo.prototype.file="",Zo.prototype.name="",Zo.prototype.reason="",Zo.prototype.message="",Zo.prototype.stack="",Zo.prototype.column=void 0,Zo.prototype.line=void 0,Zo.prototype.ancestors=void 0,Zo.prototype.cause=void 0,Zo.prototype.fatal=void 0,Zo.prototype.place=void 0,Zo.prototype.ruleId=void 0,Zo.prototype.source=void 0;const Wl={basename:F_e,dirname:H_e,extname:U_e,join:q_e,sep:"/"};function F_e(e,r){if(r!==void 0&&typeof r!="string")throw new TypeError('"ext" argument must be a string');U1(e);let n=0,o=-1,a=e.length,i;if(r===void 0||r.length===0||r.length>e.length){for(;a--;)if(e.codePointAt(a)===47){if(i){n=a+1;break}}else o<0&&(i=!0,o=a+1);return o<0?"":e.slice(n,o)}if(r===e)return"";let l=-1,s=r.length-1;for(;a--;)if(e.codePointAt(a)===47){if(i){n=a+1;break}}else l<0&&(i=!0,l=a+1),s>-1&&(e.codePointAt(a)===r.codePointAt(s--)?s<0&&(o=a):(s=-1,o=l));return n===o?o=l:o<0&&(o=e.length),e.slice(n,o)}function H_e(e){if(U1(e),e.length===0)return".";let r=-1,n=e.length,o;for(;--n;)if(e.codePointAt(n)===47){if(o){r=n;break}}else o||(o=!0);return r<0?e.codePointAt(0)===47?"/":".":r===1&&e.codePointAt(0)===47?"//":e.slice(0,r)}function U_e(e){U1(e);let r=e.length,n=-1,o=0,a=-1,i=0,l;for(;r--;){const s=e.codePointAt(r);if(s===47){if(l){o=r+1;break}continue}n<0&&(l=!0,n=r+1),s===46?a<0?a=r:i!==1&&(i=1):a>-1&&(i=-1)}return a<0||n<0||i===0||i===1&&a===n-1&&a===o+1?"":e.slice(a,n)}function q_e(...e){let r=-1,n;for(;++r0&&e.codePointAt(e.length-1)===47&&(n+="/"),r?"/"+n:n}function Y_e(e,r){let n="",o=0,a=-1,i=0,l=-1,s,c;for(;++l<=e.length;){if(l2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",o=0):(n=n.slice(0,c),o=n.length-1-n.lastIndexOf("/")),a=l,i=0;continue}}else if(n.length>0){n="",o=0,a=l,i=0;continue}}r&&(n=n.length>0?n+"/..":"..",o=2)}else n.length>0?n+="/"+e.slice(a+1,l):n=e.slice(a+1,l),o=l-a-1;a=l,i=0}else s===46&&i>-1?i++:i=-1}return n}function U1(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const W_e={cwd:G_e};function G_e(){return"/"}function SE(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function X_e(e){if(typeof e=="string")e=new URL(e);else if(!SE(e)){const r=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw r.code="ERR_INVALID_ARG_TYPE",r}if(e.protocol!=="file:"){const r=new TypeError("The URL must be of scheme file");throw r.code="ERR_INVALID_URL_SCHEME",r}return K_e(e)}function K_e(e){if(e.hostname!==""){const o=new TypeError('File URL host must be "localhost" or empty on darwin');throw o.code="ERR_INVALID_FILE_URL_HOST",o}const r=e.pathname;let n=-1;for(;++n0){let[g,...b]=d;const x=o[f][1];EE(x)&&EE(g)&&(g=_E(!0,x,g)),o[f]=[u,g,...b]}}}};const r6e=new t6e().freeze();function AE(e,r){if(typeof r!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function NE(e,r){if(typeof r!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function DE(e,r){if(r)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Jj(e){if(!EE(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function eB(e,r,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+r+"` instead")}function I3(e){return n6e(e)?e:new Z_e(e)}function n6e(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function o6e(e){return typeof e=="string"||a6e(e)}function a6e(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}function i6e(){return r6e().use(e_e).use(P5e).use(I_e,{allowDangerousHtml:!0,clobberPrefix:"",tableCellPadding:!1,tight:!0}).use(zxe).use(Gxe).use(Qwe,{closeSelfClosing:!0,tightSelfClosing:!0})}function l6e(e){return String(i6e().processSync(e.trim())).trim()}function s6e(e){return D3(Bj(e),{includeHtml:!1,includeImageAlt:!1})}function c6e(...e){return ba(u6e,e)}function u6e(e,r){let n={...e};for(let[o,a]of Object.entries(n))r(a,o,e)&&delete n[o];return n}function q1(e){return c6e(e,r=>r===void 0)}const d6e=Symbol.for("text"),p6e=Symbol.for("html"),Gl="";class Kt{static _cache=new WeakMap;static memoize(r,n,o){return cr(r,n,()=>Kt.from(o))}static from(r){if(r==null||r===Kt.EMPTY)return Kt.EMPTY;if(r instanceof Kt)return r;if(typeof r=="string")return r.trim()===Gl?Kt.EMPTY:new Kt({txt:r});if("isEmpty"in r&&r.isEmpty||"md"in r&&r.md.trim()===Gl||"txt"in r&&r.txt.trim()===Gl)return Kt.EMPTY;const n=r,o=Kt._cache.get(n);if(o)return o;const a=new Kt(n);return Kt._cache.set(n,a),a}static EMPTY=new class extends Kt{isEmpty=!0;nonEmpty=!1;isMarkdown=!1;$source=null;constructor(){super({txt:Gl})}get text(){return null}get md(){return null}get html(){return null}};$source;isEmpty;nonEmpty;isMarkdown;constructor(r){this.isMarkdown=!1,typeof r=="string"?(this.$source={txt:r},this.isEmpty=r.trim()===Gl):(this.$source=r,this.isEmpty=!0,"md"in r?(this.isEmpty=r.md===Gl,this.isMarkdown=!0):this.isEmpty=r.txt===Gl),this.nonEmpty=!this.isEmpty}get text(){if(this.isEmpty||this.$source===null)return Gl;const r=this.$source;return"txt"in r?r.txt:cr(this,d6e,()=>s6e(r.md))}get md(){if(this.isEmpty||this.$source===null)return Gl;const r=this.$source;if("md"in r)return r.md;if("txt"in r)return r.txt;Xa(r)}get html(){if(this.isEmpty||this.$source===null)return Gl;const r=this.$source;return"txt"in r?r.txt:cr(this,p6e,()=>l6e(r.md))}equals(r){return this===r?!0:r instanceof Kt?this.isEmpty&&r.isEmpty?!0:this.isEmpty!==r.isEmpty||this.isMarkdown!==r.isMarkdown?!1:this.isMarkdown?this.$source?.md===r.$source?.md:this.$source?.txt===r.$source?.txt:!1}}function tB(e){return r=>!e(r)}function h6e(...e){return ba(f6e,e)}const f6e=(e,r)=>r.every(n=>n(e));function m6e(...e){return ba(g6e,e)}const g6e=(e,r)=>r.some(n=>n(e));function y6e(e){return e==null}function rB(e,r){return e[V1]===r}const V1="_stage",Y1="_type";function b6e(e){return Is(e.kind)&&!Is(e.element)}function v6e(e){return"tag"in e}function x6e(e){return"kind"in e}function w6e(e){return"participant"in e}function k6e(e){return"not"in e}function _6e(e){return"and"in e}function E6e(e){return"or"in e}function Ad(e){switch(!0){case w6e(e):{const r=e.participant,n=Ad(e.operator);return S6e(r,n)}case v6e(e):{if(qc(e.tag)||"eq"in e.tag){const n=qc(e.tag)?e.tag:e.tag.eq;return o=>Array.isArray(o.tags)&&o.tags.includes(n)}const r=e.tag.neq;return n=>!Array.isArray(n.tags)||!n.tags.includes(r)}case x6e(e):{if(qc(e.kind)||"eq"in e.kind){const n=qc(e.kind)?e.kind:e.kind.eq;return o=>o.kind===n}const r=e.kind.neq;return n=>y6e(n.kind)||n.kind!==r}case k6e(e):{const r=Ad(e.not);return tB(r)}case _6e(e):{const r=e.and.map(Ad);return h6e(r)}case E6e(e):{const r=e.or.map(Ad);return m6e(r)}default:Xa(e)}}function S6e(e,r){return n=>{if(!n.source||!n.target)return!1;switch(e){case"source":return r(n.source);case"target":return r(n.target)}}}var W1;(e=>{function r(c){return"model"in c&&!("project"in c)}e.isElementRef=r;function n(c){return"project"in c&&"model"in c}e.isImportRef=n;function o(c){if(qc(c))throw new Error(`Expected FqnRef, got: "${c}"`);if(n(c))return jI(c.project,c.model);if(r(c))return c.model;throw new Error("Expected FqnRef.ModelRef or FqnRef.ImportRef")}e.flatten=o;function a(c){return r(c)||n(c)}e.isModelRef=a;function i(c){return"deployment"in c&&"element"in c}e.isInsideInstanceRef=i;function l(c){return"deployment"in c&&!("element"in c)}e.isDeploymentElementRef=l;function s(c){return l(c)||i(c)}e.isDeploymentRef=s})(W1||(W1={}));function $E(e){return v1(e)&&e.includes(".")?e.slice(0,e.indexOf(".")+1):null}var Qc;(e=>{function r({x:s,y:c,width:u,height:d}){return{x:s+u/2,y:c+d/2}}e.center=r;function n(s){const{x1:c,y1:u,x2:d,y2:p}=PE.fromPoints(s);return{x:c,y:u,width:d-c,height:p-u}}e.fromPoints=n;function o(...s){if(nt(_h(s,1),"No boxes provided"),s.length===1)return s[0];let c=1/0,u=1/0,d=-1/0,p=-1/0;for(const f of s)c=Math.min(c,f.x),u=Math.min(u,f.y),d=Math.max(d,f.x+f.width),p=Math.max(p,f.y+f.height);return{x:c,y:u,width:d-c,height:p-u}}e.merge=o;function a(s){return{x1:s.x,y1:s.y,x2:s.x+s.width,y2:s.y+s.height}}e.toRectBox=a;function i(s,c){return c===0?s:{x:s.x-c,y:s.y-c,width:s.width+c*2,height:s.height+c*2}}e.expand=i;function l(s,c){return c===0?s:{x:s.x+c,y:s.y+c,width:s.width-c*2,height:s.height-c*2}}e.shrink=l})(Qc||(Qc={}));var PE;(e=>{function r({x1:i,y1:l,x2:s,y2:c}){return{x:(i+s)/2,y:(l+c)/2}}e.center=r;function n(i){nt(i.length>0,"At least one point is required");let l=1/0,s=1/0,c=-1/0,u=-1/0;for(const[d,p]of i)l=Math.min(l,d),s=Math.min(s,p),c=Math.max(c,d),u=Math.max(u,p);return{x1:l,y1:s,x2:c,y2:u}}e.fromPoints=n;function o(...i){nt(i.length>0,"No boxes provided");let l=1/0,s=1/0,c=-1/0,u=-1/0;for(const d of i)l=Math.min(l,d.x1),s=Math.min(s,d.y1),c=Math.max(c,d.x2),u=Math.max(u,d.y2);return{x1:l,y1:s,x2:c,y2:u}}e.merge=o;function a(i){return{x:i.x1,y:i.y1,width:i.x2-i.x1,height:i.y2-i.y1}}e.toBBox=a})(PE||(PE={}));function nB(e){const r=typeof e=="string"?e:e.color;return r.startsWith("#")||r.startsWith("rgb")}const oB={done:!1,hasNext:!1};function G1(e,...r){let n=e,o=r.map(i=>"lazy"in i?C6e(i):void 0),a=0;for(;ae.map(r),A6e=e=>(r,n,o)=>({done:!1,hasNext:!0,next:e(r,n,o)});function N6e(e,r,n){let o=e.get(r);return o||(o=n(r),e.set(r,o)),o}var OE={},lB;function D6e(){return lB||(lB=1,(function(e){e.intersection=function(){if(arguments.length<2)throw new Error("mnemonist/Set.intersection: needs at least two arguments.");var r=new Set,n=1/0,o=null,a,i,l=arguments.length;for(i=0;in.size)return!1;for(;a=o.next(),!a.done;)if(!n.has(a.value))return!1;return!0},e.isSuperset=function(r,n){return e.isSubset(n,r)},e.add=function(r,n){for(var o=n.values(),a;a=o.next(),!a.done;)r.add(a.value)},e.subtract=function(r,n){for(var o=n.values(),a;a=o.next(),!a.done;)r.delete(a.value)},e.intersect=function(r,n){for(var o=r.values(),a;a=o.next(),!a.done;)n.has(a.value)||r.delete(a.value)},e.disjunct=function(r,n){for(var o=r.values(),a,i=[];a=o.next(),!a.done;)n.has(a.value)&&i.push(a.value);for(o=n.values();a=o.next(),!a.done;)r.has(a.value)||r.add(a.value);for(var l=0,s=i.length;ln.size&&(o=r,r=n,n=o),r.size===0)return 0;if(r===n)return r.size;for(var a=r.values(),i,l=0;i=a.next(),!i.done;)n.has(i.value)&&l++;return l},e.unionSize=function(r,n){var o=e.intersectionSize(r,n);return r.size+n.size-o},e.jaccard=function(r,n){var o=e.intersectionSize(r,n);if(o===0)return 0;var a=r.size+n.size-o;return o/a},e.overlap=function(r,n){var o=e.intersectionSize(r,n);return o===0?0:o/Math.min(r.size,n.size)}})(OE)),OE}var $6e=D6e();function ME(...e){let r=new Set;for(const n of e)for(const o of n)r.add(o);return r}function Wh(e,...r){let n=new Set;if(e.size===0)return n;let o=_h(r,2)?$6e.intersection(...r):r[0];if(o.size===0)return n;for(const a of e)o.has(a)&&n.add(a);return n}function IE(e,r){if(e.size===0)return new Set;if(r.size===0)return new Set(e);let n=new Set;for(const o of e)r.has(o)||n.add(o);return n}function P6e(e,r){return e.size===r.size&&[...e].every(n=>r.has(n))}function O6e(e){let r=5381;const n=e.length;nt(n>0,"stringHash: empty string");for(let o=0;o>>0).toString(36)}const L3=e=>typeof e=="function";function Nd(e,r){const n=r??e;nt(L3(n));function*o(a){for(const i of a)n(i)&&(yield i)}return r?o(e):o}function X1(e,r){const n=r??e;nt(L3(n));function o(a){for(const i of a)if(n(i))return i}return r?o(e):o}function sB(e){return e?cB(e):cB}function cB(e){for(const r of e)return r}function M6e(e,r){const n=e;nt(L3(n));function*o(a){for(const i of a)yield n(i)}return o}function K1(e){return e?Array.from(e):r=>Array.from(r)}function I6e(e){return e?new Set(e):r=>new Set(r)}function L6e(e,r){const n=r??e;nt(L3(n));function o(a){for(const i of a)if(n(i))return!0;return!1}return r?o(e):o}function z6e(e,r){const n=e;nt(n>=0,"Count must be a non-negative number");function*o(a){let i=0;for(const l of a){if(i>=n)break;yield l,i++}}return a=>o(a)}function j6e(e,r){let n=Math.ceil(e),o=Math.floor(r);if(o{setTimeout(()=>{n(B6e)},r??100)})}function z3(e){const r=Vc([...e]),n=new Set(r),o=new Map(r.map(l=>[l._literalId,l])),a=new so(()=>null),i=r.reduce((l,s,c,u)=>(l.set(s,u.slice(c+1).filter($I(s)).map(d=>(n.delete(d),d)).reduce((d,p)=>(d.some(Un(p))||(d.push(p),a.set(p,s)),d),[])),l),new so(()=>[]));return{sorted:r,byId:l=>mt(o.get(l),`Element not found by id: ${l}`),root:n,parent:l=>a.get(l),children:l=>i.get(l),flatten:()=>new Set([...n,...r.reduce((l,s)=>{const c=i.get(s);return c.length===0?(l.push(s),l):(c.length>1&&l.push(...c),l)},[])])}}const LE=(e,r)=>e.size>2&&r.size!==e.size?new Set(Vc([...z3(e).flatten(),...r])):e.size>1?new Set(Vc([...e])):e;function uB(e,r,n){const o=c=>r.has(c);let a=new Set([e]);const i={incomers:new Set,subjects:new Set([e]),outgoers:new Set};let l=new Set(n.incoming.flatMap(c=>{if(i.subjects.add(c.target),i.incomers.add(c.source),a.add(c.target),c.target!==e){let p=c.target.parent;for(;p&&p!==e;)a.add(p),p=p.parent}let u=c.source;const d=[];for(;d.push(u),!(o(u)||!u.parent);)u=u.parent;return d})),s=new Set(n.outgoing.flatMap(c=>{if(i.subjects.add(c.source),i.outgoers.add(c.target),a.add(c.source),c.source!==e){let p=c.source.parent;for(;p&&p!==e;)a.add(p),p=p.parent}let u=c.target;const d=[];for(;d.push(u),!(o(u)||!u.parent);)u=u.parent;return d}));return{incomers:LE(l,i.incomers),incoming:new Set(n.incoming),subjects:LE(a,i.subjects),outgoing:new Set(n.outgoing),outgoers:LE(s,i.outgoers)}}function dB(e,r,n,o="global"){const a=n?r.findView(n):null;if(o==="view")return nt(a,'Scope view id is required when scope is "view"'),H6e(e,a,r);const i=r.element(e),l=I6e(i.ascendingSiblings());return uB(i,l,{incoming:[...i.incoming()],outgoing:[...i.outgoing()]})}function H6e(e,r,n){const o=n.element(e);let a={incoming:K1(Nd(o.incoming(),s=>r.includesRelation(s.id))),outgoing:K1(Nd(o.outgoing(),s=>r.includesRelation(s.id)))};const i=$I(o),l=new Set([...o.ascendingSiblings(),...G1(r.elements(),M6e(s=>s.element),Nd(s=>s!==o&&i(s)))]);return uB(o,l,a)}var pB;(e=>{e.isInside=r=>n=>Un(r,n.source.id)&&Un(r,n.target.id),e.isDirectedBetween=(r,n)=>o=>(o.source.id===r||Un(r,o.source.id))&&(o.target.id===n||Un(n,o.target.id)),e.isAnyBetween=(r,n)=>{const o=(0,e.isDirectedBetween)(r,n),a=(0,e.isDirectedBetween)(n,r);return i=>o(i)||a(i)},e.isIncoming=r=>n=>(n.target.id===r||Un(r,n.target.id))&&!Un(r,n.source.id),e.isOutgoing=r=>n=>(n.source.id===r||Un(r,n.source.id))&&!Un(r,n.target.id),e.isAnyInOut=r=>{const n=(0,e.isIncoming)(r),o=(0,e.isOutgoing)(r);return a=>n(a)||o(a)}})(pB||(pB={}));const U6e=Symbol.for("nodejs.util.inspect.custom");function q6e(e,r){let n=r.length-e.length;if(n===1){let[o,...a]=r;return G1(o,{lazy:e,lazyArgs:a})}if(n===0){let o={lazy:e,lazyArgs:r};return Object.assign(a=>G1(a,o),o)}throw Error("Wrong number of arguments")}function Gh(e){return e===""||e===void 0?!0:Array.isArray(e)?e.length===0:Object.keys(e).length===0}function V6e(...e){return ba(Y6e,e)}const Y6e=e=>e.length===1?e[0]:void 0;function zE(...e){return q6e(W6e,e)}function W6e(){let e=new Set;return r=>e.has(r)?oB:(e.add(r),{done:!1,hasNext:!0,next:r})}class hB{get style(){return cr(this,"style",()=>q1({shape:this.$model.$styles.defaults.shape,color:this.$model.$styles.defaults.color,border:this.$model.$styles.defaults.border,opacity:this.$model.$styles.defaults.opacity,size:this.$model.$styles.defaults.size,padding:this.$model.$styles.defaults.padding,textSize:this.$model.$styles.defaults.text,...this.$node.style}))}get name(){return g1(this.id)}get shape(){return this.style.shape}get color(){return this.style.color}get summary(){return Kt.memoize(this,"summary",i3(this.$node))}get description(){return Kt.memoize(this,"description",l3(this.$node))}get technology(){return this.$node.technology??null}get links(){return this.$node.links??[]}ancestors(){return this.$model.ancestors(this)}commonAncestor(r){const n=b1(this.id,r.id);return n?this.$model.node(n):null}siblings(){return this.$model.siblings(this)}isSibling(r){return this.parent===r.parent}*ascendingSiblings(){yield*this.siblings();for(const r of this.ancestors())yield*r.siblings()}*descendingSiblings(){for(const r of[...this.ancestors()].reverse())yield*r.siblings();yield*this.siblings()}incoming(r="all"){return this.$model.incoming(this,r)}outgoing(r="all"){return this.$model.outgoing(this,r)}*incomers(r="all"){const n=new Set;for(const o of this.incoming(r))n.has(o.source.id)||(n.add(o.source.id),yield o.source)}*outgoers(r="all"){const n=new Set;for(const o of this.outgoing(r))n.has(o.target.id)||(n.add(o.target.id),yield o.target)}*views(){for(const r of this.$model.views())r._type==="deployment"&&r.includesDeployment(this.id)&&(yield r)}isDeploymentNode(){return!1}isInstance(){return!1}get allOutgoing(){return cr(this,Symbol.for("allOutgoing"),()=>Jc.from(new Set(this.outgoingModelRelationships()),new Set(this.outgoing())))}get allIncoming(){return cr(this,Symbol.for("allIncoming"),()=>Jc.from(new Set(this.incomingModelRelationships()),new Set(this.incoming())))}hasMetadata(){return!!this.$node.metadata&&!Gh(this.$node.metadata)}getMetadata(r){return r?this.$node.metadata?.[r]:this.$node.metadata??{}}isTagged(r){return this.tags.includes(r)}}class fB extends hB{constructor(r,n){super(),this.$model=r,this.$node=n,this.id=n.id,this._literalId=n.id,this.title=n.title,this.hierarchyLevel=o3(n.id)}id;_literalId;title;hierarchyLevel;get parent(){return this.$model.parent(this)}get kind(){return this.$node.kind}get tags(){return cr(this,Symbol.for("tags"),()=>zE([...this.$node.tags??[],...this.$model.$model.specification.deployments[this.kind]?.tags??[]]))}children(){return this.$model.children(this)}descendants(r="desc"){return this.$model.descendants(this,r)}isDeploymentNode(){return!0}*instances(){for(const r of this.descendants("desc"))r.isInstance()&&(yield r)}onlyOneInstance(){const r=this.children();if(r.size!==1)return null;const n=V6e([...r]);return n?.isInstance()?n:null}_relationshipsFromInstances=null;relationshipsFromInstances(){if(this._relationshipsFromInstances)return this._relationshipsFromInstances;const{outgoing:r,incoming:n}=this._relationshipsFromInstances={outgoing:new Set,incoming:new Set};for(const o of this.instances()){for(const a of o.element.outgoing())r.add(a);for(const a of o.element.incoming())n.add(a)}return this._relationshipsFromInstances}outgoingModelRelationships(){return this.relationshipsFromInstances().outgoing.values()}incomingModelRelationships(){return this.relationshipsFromInstances().incoming.values()}internalModelRelationships(){const{outgoing:r,incoming:n}=this.relationshipsFromInstances();return Wh(n,r)}}class mB extends hB{constructor(r,n,o){super(),this.$model=r,this.$instance=n,this.element=o,this.id=n.id,this._literalId=n.id,this.title=n.title??o.title,this.hierarchyLevel=o3(n.id)}id;_literalId;title;hierarchyLevel;get $node(){return this.$instance}get parent(){return mt(this.$model.parent(this),`Parent of ${this.id} not found`)}get style(){return cr(this,"style",()=>q1({shape:this.$model.$styles.defaults.shape,color:this.$model.$styles.defaults.color,border:this.$model.$styles.defaults.border,opacity:this.$model.$styles.defaults.opacity,size:this.$model.$styles.defaults.size,padding:this.$model.$styles.defaults.padding,textSize:this.$model.$styles.defaults.text,...this.element.$element.style,...this.$instance.style}))}get tags(){return cr(this,Symbol.for("tags"),()=>zE([...this.$instance.tags??[],...this.element.tags]))}get kind(){return this.element.kind}get summary(){return Kt.memoize(this,"summary",i3(this.$instance)??i3(this.element.$element))}get description(){return Kt.memoize(this,"description",l3(this.$instance)??l3(this.element.$element))}get technology(){return this.$instance.technology??this.element.technology??null}get links(){return this.$instance.links??this.element.links}isInstance(){return!0}outgoingModelRelationships(){return this.element.outgoing()}incomingModelRelationships(){return this.element.incoming()}*views(){for(const r of this.$model.views())if(r._type==="deployment"){if(r.includesDeployment(this.id)){yield r;continue}r.includesDeployment(this.parent.id)&&this.parent.onlyOneInstance()&&(yield r)}}}class G6e{constructor(r,n){this.instance=r,this.element=n}get id(){return this.instance.id}get _literalId(){return this.instance.id}get style(){return cr(this,"style ",()=>({shape:this.element.shape,color:this.element.color,...this.element.$element.style}))}get shape(){return this.element.shape}get color(){return this.element.color}get title(){return this.element.title}get summary(){return this.element.summary}get description(){return this.element.description}get technology(){return this.element.technology}isDeploymentNode(){return!1}isInstance(){return!1}}class X6e{constructor(r,n){this.$model=r,this.$relationship=n,this.source=r.deploymentRef(n.source),this.target=r.deploymentRef(n.target);const o=b1(this.source.id,this.target.id);this.boundary=o?this.$model.node(o):null}boundary;source;target;get id(){return this.$relationship.id}get expression(){return`${this.source.id} -> ${this.target.id}`}get title(){return Is(this.$relationship.title)?this.$relationship.title:null}get technology(){return this.$relationship.technology??null}get description(){return Kt.memoize(this,"description",this.$relationship.description)}get tags(){return this.$relationship.tags??[]}get kind(){return this.$relationship.kind??null}get navigateTo(){return this.$relationship.navigateTo?this.$model.$model.view(this.$relationship.navigateTo):null}get links(){return this.$relationship.links??[]}get color(){return this.$relationship.color??this.$model.$styles.defaults.relationship.color}get line(){return this.$relationship.line??this.$model.$styles.defaults.relationship.line}get head(){return this.$relationship.head??this.$model.$styles.defaults.relationship.arrow}get tail(){return this.$relationship.tail}*views(){for(const r of this.$model.views())r.includesRelation(this.id)&&(yield r)}isDeploymentRelation(){return!0}isModelRelation(){return!1}hasMetadata(){return!!this.$relationship.metadata&&!Gh(this.$relationship.metadata)}getMetadata(r){return r?this.$relationship.metadata?.[r]:this.$relationship.metadata??{}}isTagged(r){return this.tags.includes(r)}}class Jc{constructor(r=new Set,n=new Set){this.model=r,this.deployment=n}static empty(){return new Jc}static from(r,n){return new Jc(new Set(r),new Set(n))}get isEmpty(){return this.model.size===0&&this.deployment.size===0}get nonEmpty(){return this.model.size>0||this.deployment.size>0}get size(){return this.model.size+this.deployment.size}intersect(r){return Jc.from(Wh(this.model,r.model),Wh(this.deployment,r.deployment))}difference(r){return Jc.from(IE(this.model,r.model),IE(this.deployment,r.deployment))}union(r){return Jc.from(ME(this.model,r.model),ME(this.deployment,r.deployment))}}function gB(e,r){return n=>e.source===n.source&&e.target===n.target}function jE(e,r,n="directed"){if(e===r)return[];if(DI(e,r))return[];const o=Wh(e.allOutgoing,r.allIncoming),a=o.size>0?new ti(e,r,o):null;if(n==="directed")return a?[a]:[];const i=Wh(e.allIncoming,r.allOutgoing),l=i.size>0?new ti(r,e,i):null;return a&&l?[a,l]:a?[a]:l?[l]:[]}function yB(e,r,n="both"){if(e.allIncoming.size===0&&e.allOutgoing.size===0)return[];const o=[],a=[];for(const i of r)if(e!==i)for(const l of jE(e,i,n))l.source===e?o.push(l):a.push(l);return[...o,...a]}function K6e(e){return[...e].reduce((r,n,o,a)=>(o===a.length-1||r.push(...yB(n,a.slice(o+1),"both")),r),[])}const Z6e={__proto__:null,findConnection:jE,findConnectionsBetween:yB,findConnectionsWithin:K6e};class ti{constructor(r,n,o=new Set){this.source=r,this.target=n,this.relations=o,this.id=O6e(`model:${r.id}:${n.id}`)}id;_boundary;get boundary(){return this._boundary??=this.source.commonAncestor(this.target)}get expression(){return`${this.source.id} -> ${this.target.id}`}get isDirect(){return this.nonEmpty()&&!this.isImplicit}get isImplicit(){return this.nonEmpty()&&L6e(this.relations,tB(gB(this)))}get directRelations(){return new Set(Nd(this.relations,gB(this)))}nonEmpty(){return this.relations.size>0}mergeWith(r){return nt(this.source.id===r.source.id,"Cannot merge connections with different sources"),nt(this.target.id===r.target.id,"Cannot merge connections with different targets"),new ti(this.source,this.target,ME(this.relations,r.relations))}difference(r){return new ti(this.source,this.target,IE(this.relations,r.relations))}intersect(r){return nt(r instanceof ti,"Cannot intersect connection with different type"),new ti(this.source,this.target,Wh(this.relations,r.relations))}equals(r){nt(r instanceof ti,"Cannot merge connection with different type");const n=r;return this.id===n.id&&this.source.id===n.source.id&&this.target.id===n.target.id&&P6e(this.relations,n.relations)}update(r){return new ti(this.source,this.target,r)}[U6e](r,n,o){const a=this.toString();return Object.defineProperty(a,"constructor",{value:ti,enumerable:!1}),a}toString(){return[this.expression,this.relations.size?" relations:":" relations: [ ]",...[...this.relations].map(r=>" "+r.expression)].join(` +`)}reversed(r=!1){if(!r)return new ti(this.target,this.source);const[n]=jE(this.target,this.source,"directed");return n??new ti(this.target,this.source,new Set)}}const bB={asc:(e,r)=>e>r,desc:(e,r)=>ee(i,a)}function BE(e,r,...n){let o=typeof e=="function"?e:e[0],a=typeof e=="function"?"asc":e[1],{[a]:i}=bB,l=r===void 0?void 0:BE(r,...n);return(s,c)=>{let u=o(s),d=o(c);return i(u,d)?1:i(d,u)?-1:l?.(s,c)??0}}function J6e(e){if(vB(e))return!0;if(typeof e!="object"||!Array.isArray(e))return!1;let[r,n,...o]=e;return vB(r)&&typeof n=="string"&&n in bB&&o.length===0}const vB=e=>typeof e=="function"&&e.length===1;function xB(...e){return ba(Object.entries,e)}function eEe(...e){return ba(tEe,e)}function tEe(e,r){if(e===r||Object.is(e,r))return!0;if(typeof e!="object"||!e||typeof r!="object"||!r)return!1;if(e instanceof Map&&r instanceof Map)return rEe(e,r);if(e instanceof Set&&r instanceof Set)return nEe(e,r);let n=Object.keys(e);if(n.length!==Object.keys(r).length)return!1;for(let o of n){if(!Object.hasOwn(r,o))return!1;let{[o]:a}=e,{[o]:i}=r;if(a!==i||!Object.is(a,i))return!1}return!0}function rEe(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e){let a=r.get(n);if(o!==a||!Object.is(o,a))return!1}return!0}function nEe(e,r){if(e.size!==r.size)return!1;for(let n of e)if(!r.has(n))return!1;return!0}function oEe(...e){return ba(aEe,e)}const aEe=e=>e.at(-1);function iEe(e,...r){return typeof e=="string"||typeof e=="number"||typeof e=="symbol"?n=>wB(n,e,...r):wB(e,...r)}function wB(e,...r){let n=e;for(let o of r){if(n==null)return;n=n[o]}return n}function FE(...e){return ba(lEe,e)}function lEe(e,r){let n=[...e];return n.sort(r),n}function sEe(...e){return Q6e(cEe,e)}const cEe=(e,r)=>[...e].sort(r);function kB(e,r,n){return typeof r=="number"||r===void 0?o=>o.split(e,r):e.split(r,n)}function j3(...e){return ba(Object.values,e)}class B3{constructor(r,n){this.$model=r,this.$element=n,this.id=this.$element.id,this._literalId=this.$element.id;const[o,a]=Qye(this.id);o?(this.imported={from:o,fqn:a},this.hierarchyLevel=o3(a)):(this.imported=null,this.hierarchyLevel=o3(this.id))}id;_literalId;hierarchyLevel;imported;get name(){return g1(this.id)}get parent(){return this.$model.parent(this)}get kind(){return this.$element.kind}get shape(){return this.style.shape}get color(){return this.style.color}get icon(){return this.style.icon??null}get tags(){return cr(this,Symbol.for("tags"),()=>zE([...this.$element.tags??[],...this.$model.specification.elements[this.$element.kind]?.tags??[]]))}get title(){return this.$element.title}get hasSummary(){return!!this.$element.summary&&!!this.$element.description&&!eEe(this.$element.summary,this.$element.description)}get summary(){return Kt.memoize(this,"summary",i3(this.$element))}get description(){return Kt.memoize(this,"description",l3(this.$element))}get technology(){return this.$element.technology??null}get links(){return this.$element.links??[]}get defaultView(){return cr(this,Symbol.for("defaultView"),()=>sB(this.scopedViews())??null)}get isRoot(){return this.parent===null}get style(){return cr(this,"style",()=>q1({shape:this.$model.$styles.defaults.shape,color:this.$model.$styles.defaults.color,border:this.$model.$styles.defaults.border,opacity:this.$model.$styles.defaults.opacity,size:this.$model.$styles.defaults.size,padding:this.$model.$styles.defaults.padding,textSize:this.$model.$styles.defaults.text,...this.$element.style}))}isAncestorOf(r){return Un(this,r)}isDescendantOf(r){return Un(r,this)}ancestors(){return this.$model.ancestors(this)}commonAncestor(r){const n=b1(this.id,r.id);return n?this.$model.element(n):null}children(){return this.$model.children(this)}descendants(r){return r?PI([...this.$model.descendants(this)],r)[Symbol.iterator]():this.$model.descendants(this)}siblings(){return this.$model.siblings(this)}*ascendingSiblings(){yield*this.siblings();for(const r of this.ancestors())yield*r.siblings()}*descendingSiblings(){for(const r of[...this.ancestors()].reverse())yield*r.siblings();yield*this.siblings()}incoming(r="all"){return this.$model.incoming(this,r)}*incomers(r="all"){const n=new Set;for(const o of this.incoming(r))n.has(o.source.id)||(n.add(o.source.id),yield o.source)}outgoing(r="all"){return this.$model.outgoing(this,r)}*outgoers(r="all"){const n=new Set;for(const o of this.outgoing(r))n.has(o.target.id)||(n.add(o.target.id),yield o.target)}get allOutgoing(){return cr(this,Symbol.for("allOutgoing"),()=>new Set(this.outgoing()))}get allIncoming(){return cr(this,Symbol.for("allIncoming"),()=>new Set(this.incoming()))}views(){return cr(this,Symbol.for("views"),()=>{const r=new Set;for(const n of this.$model.views())n.includesElement(this.id)&&r.add(n);return r})}scopedViews(){return cr(this,Symbol.for("scopedViews"),()=>{const r=new Set;for(const n of this.$model.views())n.isScopedElementView()&&n.viewOf.id===this.id&&r.add(n);return r})}isDeployed(){return Is(sB(this.deployments()))}deployments(){return this.$model.deployment.instancesOf(this)}hasMetadata(){return!!this.$element.metadata&&!Gh(this.$element.metadata)}getMetadata(r){return r?this.$element.metadata?.[r]:this.$element.metadata??{}}isTagged(r){return this.tags.includes(r)}}const hr=e=>typeof e=="string"?e:e.id,ka="/",HE=e=>{if(nt(!e.includes(` +`),"View title cannot contain newlines"),e.includes(ka)){const r=e.split(ka).map(n=>n.trim()).filter(n=>n.length>0);return _h(r,1)?r:[""]}return[e.trim()]},F3=e=>HE(e).join(ka),uEe=e=>{const r=HE(e);return _h(r,2)?r.slice(0,-1).join(ka):null},dEe=e=>e.includes(ka)?HE(e).pop()??e:e.trim();class pEe{constructor(r){this.$model=r;const n=this.$deployments=r.$data.deployments,o=j3(n.elements);for(const a of Vc(o)){const i=this.addElement(a);for(const l of i.tags)this.#s.get(l).add(i);i.isInstance()&&this.#a.get(i.element.id).add(i)}for(const a of j3(n.relations)){const i=this.addRelation(a);for(const l of i.tags)this.#s.get(l).add(i)}}#e=new Map;#t=new Map;#r=new so(()=>new Set);#a=new so(()=>new Set);#i=new Set;#n=new Map;#o=new so(()=>new Set);#l=new so(()=>new Set);#c=new so(()=>new Set);#s=new so(()=>new Set);#u=new Map;$deployments;get $styles(){return this.$model.$styles}element(r){if(r instanceof fB||r instanceof mB)return r;const n=hr(r);return mt(this.#e.get(n),`Element ${n} not found`)}findElement(r){return this.#e.get(r)??null}node(r){const n=this.element(r);return nt(n.isDeploymentNode(),`Element ${n.id} is not a deployment node`),n}findNode(r){const n=this.findElement(r);return n?(nt(n.isDeploymentNode(),`Element ${n?.id} is not a deployment node`),n):null}instance(r){const n=this.element(r);return nt(n.isInstance(),`Element ${n.id} is not a deployed instance`),n}findInstance(r){const n=this.findElement(r);return n?(nt(n.isInstance(),`Element ${n?.id} is not a deployed instance`),n):null}roots(){return this.#i.values()}elements(){return this.#e.values()}*nodes(){for(const r of this.#e.values())r.isDeploymentNode()&&(yield r)}*nodesOfKind(r){for(const n of this.#e.values())n.isDeploymentNode()&&n.kind===r&&(yield n)}*instances(){for(const r of this.#e.values())r.isInstance()&&(yield r)}*instancesOf(r){const n=hr(r),o=this.#a.get(n);o&&(yield*o)}deploymentRef(r){if(W1.isInsideInstanceRef(r)){const{deployment:n,element:o}=r;return N6e(this.#u,`${n}@${o}`,()=>new G6e(this.instance(n),this.$model.element(o)))}return this.element(r.deployment)}relationships(){return this.#n.values()}relationship(r){return mt(this.#n.get(hr(r)),`DeploymentRelationModel ${r} not found`)}findRelationship(r){return this.#n.get(r)??null}*views(){for(const r of this.$model.views())r.isDeploymentView()&&(yield r)}parent(r){const n=hr(r);return this.#t.get(n)||null}children(r){const n=hr(r);return this.#r.get(n)}*siblings(r){const n=hr(r),o=this.parent(r)?.children()??this.roots();for(const a of o)a.id!==n&&(yield a)}*ancestors(r){let n=hr(r),o;for(;o=this.#t.get(n);)yield o,n=o.id}*descendants(r,n="desc"){for(const o of this.children(r))n==="asc"?(yield o,yield*this.descendants(o.id)):(yield*this.descendants(o.id),yield o)}*incoming(r,n="all"){const o=hr(r);for(const a of this.#o.get(o))switch(!0){case n==="all":case(n==="direct"&&a.target.id===o):case(n==="to-descendants"&&a.target.id!==o):yield a;break}}*outgoing(r,n="all"){const o=hr(r);for(const a of this.#l.get(o))switch(!0){case n==="all":case(n==="direct"&&a.source.id===o):case(n==="from-descendants"&&a.source.id!==o):yield a;break}}addElement(r){if(this.#e.has(r.id))throw new Error(`Element ${r.id} already exists`);const n=b6e(r)?new fB(this,Object.freeze(r)):new mB(this,Object.freeze(r),this.$model.element(r.element));this.#e.set(n.id,n);const o=n3(n.id);return o?(nt(this.#e.has(o),`Parent ${o} of ${n.id} not found`),this.#t.set(n.id,this.node(o)),this.#r.get(o).add(n)):(nt(n.isDeploymentNode(),`Root element ${n.id} is not a deployment node`),this.#i.add(n)),n}addRelation(r){if(this.#n.has(r.id))throw new Error(`Relation ${r.id} already exists`);const n=new X6e(this,Object.freeze(r));this.#n.set(n.id,n),this.#o.get(n.target.id).add(n),this.#l.get(n.source.id).add(n);const o=n.boundary?.id??null;if(o)for(const a of[o,...bd(o)])this.#c.get(a).add(n);for(const a of bd(n.source.id)){if(a===o)break;this.#l.get(a).add(n)}for(const a of bd(n.target.id)){if(a===o)break;this.#o.get(a).add(n)}return n}}class _B{constructor(r,n){this.model=r,this.$relationship=n,this.source=r.element(W1.flatten(n.source)),this.target=r.element(W1.flatten(n.target));const o=b1(this.source.id,this.target.id);this.boundary=o?this.model.element(o):null}source;target;boundary;get id(){return this.$relationship.id}get expression(){return`${this.source.id} -> ${this.target.id}`}get title(){return Is(this.$relationship.title)?this.$relationship.title:null}get technology(){return Is(this.$relationship.technology)?this.$relationship.technology:null}get description(){return Kt.memoize(this,"description",this.$relationship.description)}get navigateTo(){return this.$relationship.navigateTo?this.model.view(this.$relationship.navigateTo):null}get tags(){return this.$relationship.tags??[]}get kind(){return this.$relationship.kind??null}get links(){return this.$relationship.links??[]}get color(){return this.$relationship.color??this.model.$styles.defaults.relationship.color}get line(){return this.$relationship.line??this.model.$styles.defaults.relationship.line}get head(){return this.$relationship.head??this.model.$styles.defaults.relationship.arrow}get tail(){return this.$relationship.tail}*views(){for(const r of this.model.views())r.includesRelation(this.id)&&(yield r)}isDeploymentRelation(){return!1}isModelRelation(){return!0}hasMetadata(){return!!this.$relationship.metadata&&!Gh(this.$relationship.metadata)}getMetadata(r){return r?this.$relationship.metadata?.[r]:this.$relationship.metadata??{}}isTagged(r){return this.tags.includes(r)}}class hEe{constructor(r,n,o,a){this.view=r,this.$edge=n,this.source=o,this.target=a,this.#e=n}#e;get id(){return this.#e.id}get parent(){return this.#e.parent?this.view.node(this.#e.parent):null}get label(){return this.#e.label??null}get description(){return Kt.memoize(this,"description",this.#e.description)}get technology(){return this.#e.technology??null}hasParent(){return this.#e.parent!==null}get tags(){return this.#e.tags??[]}get stepNumber(){return this.isStep()?BI(this.id):null}get navigateTo(){return this.#e.navigateTo?this.view.$model.view(this.#e.navigateTo):null}get color(){return this.#e.color}get line(){return this.#e.line??this.view.$model.$styles.defaults.relationship.line}get head(){return this.#e.head??this.view.$model.$styles.defaults.relationship.arrow}get tail(){return this.#e.tail}isStep(){return v1(this.id)}*relationships(r){for(const n of this.#e.relations)if(r){const o=this.view.$model.findRelationship(n,r);o&&(yield o)}else yield this.view.$model.relationship(n)}includesRelation(r){const n=typeof r=="string"?r:r.id;return this.#e.relations.includes(n)}isTagged(r){return this.tags.includes(r)}}class fEe{constructor(r,n){this.$view=r,this.$node=n,this.#e=n}#e;get id(){return this.#e.id}get title(){return this.#e.title}get kind(){return this.#e.kind}get description(){return Kt.memoize(this,"description",this.#e.description)}get technology(){return this.#e.technology??null}get parent(){return this.#e.parent?this.$view.node(this.#e.parent):null}get element(){const r=this.#e.modelRef;return r?this.$view.$model.element(r):null}get deployment(){const r=this.#e.deploymentRef;return r?this.$view.$model.deployment.element(r):null}get shape(){return this.#e.shape}get color(){return this.#e.color}get icon(){return this.#e.icon??null}get tags(){return this.#e.tags}get links(){return this.#e.links??[]}get navigateTo(){return this.#e.navigateTo?this.$view.$model.view(this.#e.navigateTo):null}get style(){return this.#e.style}children(){return cr(this,"children",()=>new Set(this.#e.children.map(r=>this.$view.node(r))))}*ancestors(){let r=this.parent;for(;r;)yield r,r=r.parent}*siblings(){const r=this.parent?.children()??this.$view.roots();for(const n of r)n.id!==this.id&&(yield n)}*incoming(r="all"){for(const n of this.#e.inEdges){const o=this.$view.edge(n);switch(!0){case r==="all":case(r==="direct"&&o.target.id===this.id):case(r==="to-descendants"&&o.target.id!==this.id):yield o;break}}}*incomers(r="all"){const n=new Set;for(const o of this.incoming(r))n.has(o.source.id)||(n.add(o.source.id),yield o.source)}*outgoing(r="all"){for(const n of this.#e.outEdges){const o=this.$view.edge(n);switch(!0){case r==="all":case(r==="direct"&&o.source.id===this.id):case(r==="from-descendants"&&o.source.id!==this.id):yield o;break}}}*outgoers(r="all"){const n=new Set;for(const o of this.outgoing(r))n.has(o.target.id)||(n.add(o.target.id),yield o.target)}isDiagramNode(){return"width"in this.#e&&"height"in this.#e}hasChildren(){return this.#e.children.length>0}hasParent(){return this.#e.parent!==null}hasElement(){return Is(this.#e.modelRef)}hasDeployment(){return Is(this.#e.deploymentRef)}hasDeployedInstance(){return this.hasElement()&&this.hasDeployment()}isGroup(){return Kye(this.#e)}isTagged(r){return this.tags.includes(r)}}class UE{Aux;#e=new Set;#t=new Map;#r=new Map;#a=new Set;#i=new Set;#n=new Set;#o=new so(r=>new Set);$view;$model;title;folder;viewPath;constructor(r,n,o){this.$model=r,this.$view=n,this.folder=o;for(const a of n.nodes){const i=new fEe(this,Object.freeze(a));this.#t.set(a.id,i),a.parent||this.#e.add(i),i.hasDeployment()&&this.#i.add(i.deployment.id),i.hasElement()&&this.#a.add(i.element.id);for(const l of i.tags)this.#o.get(l).add(i)}for(const a of n.edges){const i=new hEe(this,Object.freeze(a),this.node(a.source),this.node(a.target));for(const l of i.tags)this.#o.get(l).add(i);for(const l of a.relations)this.#n.add(l);this.#r.set(a.id,i)}this.title=this.$view.title?dEe(this.$view.title):null,this.viewPath=this.$view.title?F3(this.$view.title):this.$view.id}get _type(){return this.$view[Y1]}get id(){return this.$view.id}get titleOrId(){return this.title??this.viewOf?.title??this.id}get titleOrUntitled(){return this.title??"Untitled"}get breadcrumbs(){return cr(this,"breadcrumbs",()=>this.folder.isRoot?[this]:[...this.folder.breadcrumbs,this])}get description(){return Kt.memoize(this,"description",this.$view.description)}get tags(){return this.$view.tags??[]}get links(){return this.$view.links??[]}get viewOf(){if(this.isElementView()){const r=this.$view.viewOf;return r?this.$model.element(r):null}return null}get mode(){if(this.isDynamicView())return this.$view.variant??"diagram";throw new Error("View is not dynamic")}get includedTags(){return[...this.#o.keys()]}roots(){return this.#e.values()}*compounds(){for(const r of this.#t.values())r.hasChildren()&&(yield r)}node(r){const n=hr(r);return mt(this.#t.get(n),`Node ${n} not found in view ${this.$view.id}`)}findNode(r){return this.#t.get(hr(r))??null}findNodeWithElement(r){const n=hr(r);return X1(this.#t.values(),o=>o.hasElement()&&o.element.id===n)??null}nodes(){return this.#t.values()}edge(r){const n=hr(r);return mt(this.#r.get(n),`Edge ${n} not found in view ${this.$view.id}`)}findEdge(r){return this.#r.get(hr(r))??null}edges(){return this.#r.values()}*edgesWithRelation(r){for(const n of this.#r.values())n.includesRelation(r)&&(yield n)}*elements(){for(const r of this.#t.values())r.hasElement()&&(yield r)}isTagged(r){return this.tags.includes(r)}includesElement(r){return this.#a.has(hr(r))}includesDeployment(r){return this.#i.has(hr(r))}includesRelation(r){return this.#n.has(hr(r))}isComputed(){return this.$view[V1]==="computed"}isDiagram(){return this.$view[V1]==="layouted"}isElementView(){return this.$view[Y1]==="element"}isScopedElementView(){return this.$view[Y1]==="element"&&Is(this.$view.viewOf)}isDeploymentView(){return this.$view[Y1]==="deployment"}isDynamicView(){return this.$view[Y1]==="dynamic"}}class H3{$model;path;title;isRoot;parentPath;defaultViewId;constructor(r,n,o){this.$model=r,this.path=n.join("/"),this.isRoot=this.path==="",this.title=oEe(n),this.isRoot?this.parentPath=void 0:this.parentPath=n.slice(0,-1).join("/"),this.defaultViewId=o}get defaultView(){return this.defaultViewId?this.$model.view(this.defaultViewId):null}get breadcrumbs(){return nt(!this.isRoot,"Root view folder has no breadcrumbs"),cr(this,"breadcrumbs",()=>{const r=this.parent;return r?r.isRoot?[r,this]:[...r.breadcrumbs,this]:[this]})}get parent(){return nt(!this.isRoot,"Root view folder has no parent"),Gh(this.parentPath)?null:this.$model.viewFolder(this.parentPath)}get children(){return this.$model.viewFolderItems(this.path)}get folders(){return cr(this,"folders",()=>{const r=[];for(const n of this.children)n instanceof H3&&r.push(n);return r})}get views(){return cr(this,"views",()=>{const r=[];for(const n of this.children)n instanceof UE&&r.push(n);return r})}}class Dd{Aux;_elements=new Map;_parents=new Map;_children=new so(()=>new Set);_rootElements=new Set;_relations=new Map;_incoming=new so(()=>new Set);_outgoing=new so(()=>new Set);_internal=new so(()=>new Set);_views=new Map;_rootViewFolder;_viewFolders=new Map;_viewFolderItems=new so(()=>new Set);_allTags=new so(()=>new Set);static fromParsed(r){return new Dd(r).asParsed}static create(r){return new Dd(r)}static fromDump(r){const{_stage:n="layouted",projectId:o="unknown",project:a,globals:i,imports:l,deployments:s,views:c,relations:u,elements:d,specification:p}=r;return new Dd({[V1]:n,projectId:o,project:a,globals:{predicates:i?.predicates??{},dynamicPredicates:i?.dynamicPredicates??{},styles:i?.styles??{}},imports:l??{},deployments:{elements:s?.elements??{},relations:s?.relations??{}},views:c??{},relations:u??{},elements:d??{},specification:p})}deployment;$data;constructor(r){this.$data=r;for(const[,n]of xB(r.elements)){const o=this.addElement(n);for(const a of o.tags)this._allTags.get(a).add(o)}for(const[n,o]of xB(r.imports??{}))for(const a of Vc(o)){const i=this.addImportedElement(n,a);for(const l of i.tags)this._allTags.get(l).add(i)}for(const n of j3(r.relations)){const o=this.addRelation(n);for(const a of o.tags)this._allTags.get(a).add(o)}if(this.deployment=new pEe(this),rB(r,"computed")||rB(r,"layouted")){const n=NI(ka),o=G1(j3(r.views),iB(i=>({view:i,path:F3(i.title??i.id),folderPath:i.title&&uEe(i.title)||""})),FE((i,l)=>n(i.folderPath,l.folderPath))),a=i=>{let l=this._viewFolders.get(i);if(!l){const s=kB(i,ka);nt(_h(s,1),`View group path "${i}" must have at least one element`);let c;i===""?c=o.find(u=>u.view.id==="index"):c=o.find(u=>u.path===i),l=new H3(this,s,c?.view.id),this._viewFolders.set(i,l)}return l};this._rootViewFolder=a("");for(const{folderPath:i}of o)this._viewFolders.has(i)||kB(i,ka).reduce((l,s)=>{const c=l.join(ka),u=Gh(c)?s:c+ka+s,d=a(u);return this._viewFolderItems.get(c).add(d),l.push(s),l},[]);for(const{view:i,folderPath:l}of o){const s=new UE(this,i,a(l));this._viewFolderItems.get(l).add(s),this._views.set(i.id,s);for(const c of s.tags)this._allTags.get(c).add(s)}}else this._rootViewFolder=new H3(this,[""],void 0),this._viewFolders.set(this._rootViewFolder.path,this._rootViewFolder)}get asParsed(){return this}get asComputed(){return this}get asLayouted(){return this}get $styles(){return cr(this,"styles",()=>TI.from(this.$data.project.styles,this.$data.specification.customColors?{theme:{colors:this.$data.specification.customColors}}:void 0))}isParsed(){return this.stage==="parsed"}isLayouted(){return this.stage==="layouted"}isComputed(){return this.stage==="computed"}get $model(){return this.$data}get stage(){return this.$data[V1]}get projectId(){return this.$data.projectId??"default"}get project(){return this.$data.project??cr(this,Symbol.for("project"),()=>({id:this.projectId}))}get specification(){return this.$data.specification}get globals(){return cr(this,Symbol.for("globals"),()=>({predicates:{...this.$data.globals?.predicates},dynamicPredicates:{...this.$data.globals?.dynamicPredicates},styles:{...this.$data.globals?.styles}}))}element(r){if(r instanceof B3)return r;const n=hr(r);return mt(this._elements.get(n),`Element ${n} not found`)}findElement(r){return this._elements.get(hr(r))??null}roots(){return this._rootElements.values()}elements(){return this._elements.values()}relationships(){return this._relations.values()}relationship(r,n){if(n==="deployment")return this.deployment.relationship(r);const o=hr(r);let a=this._relations.get(o)??null;return a||n==="model"?mt(a,`Model relation ${o} not found`):mt(this.deployment.findRelationship(o),`No model/deployment relation ${o} not found`)}findRelationship(r,n){if(n==="deployment")return this.deployment.findRelationship(r);let o=this._relations.get(hr(r))??null;return o||n==="model"?o:this.deployment.findRelationship(r)}views(){return this._views.values()}view(r){const n=hr(r);return mt(this._views.get(n),`View ${n} not found`)}findView(r){return this._views.get(r)??null}viewFolder(r){return mt(this._viewFolders.get(r),`View folder ${r} not found`)}get rootViewFolder(){return this._rootViewFolder}get hasViewFolders(){return this._viewFolders.size>1}viewFolderItems(r){return nt(this._viewFolders.has(r),`View folder ${r} not found`),this._viewFolderItems.get(r)}parent(r){const n=hr(r);return this._parents.get(n)||null}children(r){const n=hr(r);return this._children.get(n)}*siblings(r){const n=hr(r),o=this._parents.get(n),a=o?this._children.get(o.id).values():this.roots();for(const i of a)i.id!==n&&(yield i)}*ancestors(r){let n=hr(r),o;for(;o=this._parents.get(n);)yield o,n=o.id}*descendants(r){for(const n of this.children(r))yield n,yield*this.descendants(n.id)}*incoming(r,n="all"){const o=hr(r);for(const a of this._incoming.get(o))switch(!0){case n==="all":case(n==="direct"&&a.target.id===o):case(n==="to-descendants"&&a.target.id!==o):yield a;break}}*outgoing(r,n="all"){const o=hr(r);for(const a of this._outgoing.get(o))switch(!0){case n==="all":case(n==="direct"&&a.source.id===o):case(n==="from-descendants"&&a.source.id!==o):yield a;break}}get tags(){return cr(this,"tags",()=>FE([...this._allTags.keys()],r3))}get tagsSortedByUsage(){return cr(this,"tagsSortedByUsage",()=>G1([...this._allTags.entries()],iB(([r,n])=>({tag:r,count:n.size,tagged:n})),FE((r,n)=>r3(r.tag,n.tag)),sEe([iEe("count"),"desc"])))}findByTag(r,n){return Nd(this._allTags.get(r),o=>n==="elements"?o instanceof B3:n==="views"?o instanceof UE:n==="relationships"?o instanceof _B:!0)}*elementsOfKind(r){for(const n of this._elements.values())n.kind===r&&(yield n)}*elementsWhere(r){const n=Ad(r);for(const o of this._elements.values())n(o)&&(yield o)}*relationshipsWhere(r){const n=Ad(r);for(const o of this._relations.values())n(o)&&(yield o)}addElement(r){if(this._elements.has(r.id))throw new Error(`Element ${r.id} already exists`);const n=new B3(this,Object.freeze(r));this._elements.set(n.id,n);const o=n3(n.id);return o?(nt(this._elements.has(o),`Parent ${o} of ${n.id} not found`),this._parents.set(n.id,this.element(o)),this._children.get(o).add(n)):this._rootElements.add(n),n}addImportedElement(r,n){nt(!Zye(n.id),"Imported element already has global FQN");const o=jI(r,n.id);if(this._elements.has(o))throw new Error(`Element ${o} already exists`);const a=new B3(this,Object.freeze({...n,id:o}));this._elements.set(a.id,a);let i=n3(a.id);for(;i;){if(i.includes(".")&&this._elements.has(i))return this._parents.set(a.id,this.element(i)),this._children.get(i).add(a),a;i=n3(i)}return this._rootElements.add(a),a}addRelation(r){if(this._relations.has(r.id))throw new Error(`Relation ${r.id} already exists`);const n=new _B(this,Object.freeze(r)),{source:o,target:a}=n;this._relations.set(n.id,n),this._incoming.get(a.id).add(n),this._outgoing.get(o.id).add(n);const i=b1(o.id,a.id);if(i)for(const l of[i,...bd(i)])this._internal.get(l).add(n);for(const l of bd(o.id)){if(l===i)break;this._outgoing.get(l).add(n)}for(const l of bd(a.id)){if(l===i)break;this._incoming.get(l).add(n)}return n}}(e=>{e.EMPTY=e.create({_stage:"computed",projectId:"default",project:{id:"default"},specification:{elements:{},relationships:{},deployments:{},tags:{}},globals:{predicates:{},dynamicPredicates:{},styles:{}},deployments:{elements:{},relations:{}},elements:{},relations:{},views:{},imports:{}})})(Dd||(Dd={}));function U3(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var mEe=e=>typeof e=="object"&&e!==null;function $d(e){return Object.fromEntries(Object.entries(e??{}).filter(([r,n])=>n!==void 0))}var gEe=e=>e==="base";function yEe(e){return e.slice().filter(r=>!gEe(r))}function EB(e){return String.fromCharCode(e+(e>25?39:97))}function bEe(e){let r="",n;for(n=Math.abs(e);n>52;n=n/52|0)r=EB(n%52)+r;return EB(n%52)+r}function vEe(e,r){let n=r.length;for(;n;)e=e*33^r.charCodeAt(--n);return e}function xEe(e){return bEe(vEe(5381,e)>>>0)}var SB=/\s*!(important)?/i;function wEe(e){return typeof e=="string"?SB.test(e):!1}function kEe(e){return typeof e=="string"?e.replace(SB,"").trim():e}function qE(e){return typeof e=="string"?e.replaceAll(" ","_"):e}var co=e=>{const r=new Map;return(...n)=>{const o=JSON.stringify(n);if(r.has(o))return r.get(o);const a=e(...n);return r.set(o,a),a}},_Ee=new Set(["__proto__","constructor","prototype"]);function VE(...e){return e.reduce((r,n)=>(n&&Object.keys(n).forEach(o=>{if(_Ee.has(o))return;const a=r[o],i=n[o];U3(a)&&U3(i)?r[o]=VE(a,i):r[o]=i}),r),{})}var EEe=e=>e!=null;function YE(e,r,n={}){const{stop:o,getKey:a}=n;function i(l,s=[]){if(mEe(l)){const c={};for(const[u,d]of Object.entries(l)){const p=a?.(u,d)??u,f=[...s,p];if(o?.(l,f))return r(l,s);const g=i(d,f);EEe(g)&&(c[p]=g)}return c}return r(l,s)}return i(e)}function SEe(e,r){return Array.isArray(e)?e.map(n=>r(n)):U3(e)?YE(e,n=>r(n)):r(e)}function CEe(e,r){return e.reduce((n,o,a)=>{const i=r[a];return o!=null&&(n[i]=o),n},{})}function CB(e,r,n=!0){const{utility:o,conditions:a}=r,{hasShorthand:i,resolveShorthand:l}=o;return YE(e,s=>Array.isArray(s)?CEe(s,a.breakpoints.keys):s,{stop:s=>Array.isArray(s),getKey:n?s=>i?l(s):s:void 0})}var TEe={shift:e=>e,finalize:e=>e,breakpoints:{keys:[]}},REe=e=>typeof e=="string"?e.replaceAll(/[\n\s]+/g," "):e;function TB(e){const{utility:r,hash:n,conditions:o=TEe}=e,a=l=>[r.prefix,l].filter(Boolean).join("-"),i=(l,s)=>{let c;if(n){const u=[...o.finalize(l),s];c=a(r.toHash(u,xEe))}else c=[...o.finalize(l),a(s)].join(":");return c};return co(({base:l,...s}={})=>{const c=Object.assign(s,l),u=CB(c,e),d=new Set;return YE(u,(p,f)=>{if(p==null)return;const g=wEe(p),[b,...x]=o.shift(f),w=yEe(x),k=r.transform(b,kEe(REe(p)));let C=i(w,k.className);g&&(C=`${C}!`),d.add(C)}),Array.from(d).join(" ")})}function AEe(...e){return e.flat().filter(r=>U3(r)&&Object.keys($d(r)).length>0)}function NEe(e){function r(a){const i=AEe(...a);return i.length===1?i:i.map(l=>CB(l,e))}function n(...a){return VE(...r(a))}function o(...a){return Object.assign({},...r(a))}return{mergeCss:co(n),assignCss:o}}var DEe=/([A-Z])/g,$Ee=/^ms-/,PEe=co(e=>e.startsWith("--")?e:e.replace(DEe,"-$1").replace($Ee,"-ms-").toLowerCase()),OEe=["min","max","clamp","calc"],MEe=new RegExp(`^(${OEe.join("|")})\\(.*\\)`),IEe=e=>typeof e=="string"&&MEe.test(e),LEe="cm,mm,Q,in,pc,pt,px,em,ex,ch,rem,lh,rlh,vw,vh,vmin,vmax,vb,vi,svw,svh,lvw,lvh,dvw,dvh,cqw,cqh,cqi,cqb,cqmin,cqmax,%",zEe=`(?:${LEe.split(",").join("|")})`,jEe=new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${zEe}$`),BEe=e=>typeof e=="string"&&jEe.test(e),FEe=e=>typeof e=="string"&&/^var\(--.+\)$/.test(e),Z1={map:SEe,isCssFunction:IEe,isCssVar:FEe,isCssUnit:BEe},Q1=(e,r)=>{if(!e?.defaultValues)return r;const n=typeof e.defaultValues=="function"?e.defaultValues(r):e.defaultValues;return Object.assign({},n,$d(r))},HEe=(e={})=>{const r=o=>({className:[e.className,o].filter(Boolean).join("__"),base:e.base?.[o]??{},variants:{},defaultVariants:e.defaultVariants??{},compoundVariants:e.compoundVariants?WE(e.compoundVariants,o):[]}),n=(e.slots??[]).map(o=>[o,r(o)]);for(const[o,a]of Object.entries(e.variants??{}))for(const[i,l]of Object.entries(a))n.forEach(([s,c])=>{c.variants[o]??={},c.variants[o][i]=l[s]??{}});return Object.fromEntries(n)},WE=(e,r)=>e.filter(n=>n.css[r]).map(n=>({...n,css:n.css[r]}));function Yn(e,...r){const n=Object.getOwnPropertyDescriptors(e),o=Object.keys(n),a=l=>{const s={};for(let c=0;ca(Array.isArray(l)?l:o.filter(l));return r.map(i).concat(a(o))}var GE=(...e)=>{const r=e.reduce((n,o)=>(o&&o.forEach(a=>n.add(a)),n),new Set([]));return Array.from(r)},RB=["htmlSize","htmlTranslate","htmlWidth","htmlHeight"];function UEe(e){return RB.includes(e)?e.replace("html","").toLowerCase():e}function XE(e){return Object.fromEntries(Object.entries(e).map(([r,n])=>[UEe(r),n]))}XE.keys=RB;const qEe="_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_noscript,_invertedColors,_shapeSizeXs,_shapeSizeSm,_shapeSizeMd,_shapeSizeLg,_shapeSizeXl,_shapeRectangle,_shapePerson,_shapeBrowser,_shapeMobile,_shapeCylinder,_shapeStorage,_shapeQueue,_notDisabled,_reduceGraphics,_reduceGraphicsOnPan,_noReduceGraphics,_whenPanning,_smallZoom,_compoundTransparent,_edgeActive,_whenHovered,_whenSelected,_whenDimmed,_whenFocused,_p3,_srgb,_rec2020,xs,xsOnly,xsDown,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,xsToSm,xsToMd,xsToLg,xsToXl,smToMd,smToLg,smToXl,mdToLg,mdToXl,lgToXl,@/xs,@/sm,@/md,@/lg,@likec4-root/xs,@likec4-root/sm,@likec4-root/md,@likec4-root/lg,@likec4-dialog/xs,@likec4-dialog/sm,@likec4-dialog/md,@likec4-dialog/lg,base",AB=new Set(qEe.split(",")),VEe=/^@|&|&$/;function NB(e){return AB.has(e)||VEe.test(e)}const YEe=/^_/,WEe=/&|@/;function DB(e){return e.map(r=>AB.has(r)?r.replace(YEe,""):WEe.test(r)?`[${qE(r.trim())}]`:r)}function $B(e){return e.sort((r,n)=>{const o=NB(r),a=NB(n);return o&&!a?1:!o&&a?-1:0})}const GEe="aspectRatio:asp,boxDecorationBreak:bx-db,zIndex:z,boxSizing:bx-s,objectPosition:obj-p,objectFit:obj-f,overscrollBehavior:ovs-b,overscrollBehaviorX:ovs-bx,overscrollBehaviorY:ovs-by,position:pos/1,top:top,left:left,inset:inset,insetInline:inset-x/insetX,insetBlock:inset-y/insetY,insetBlockEnd:inset-be,insetBlockStart:inset-bs,insetInlineEnd:inset-e/insetEnd/end,insetInlineStart:inset-s/insetStart/start,right:right,bottom:bottom,float:float,visibility:vis,display:d,hideFrom:hide,hideBelow:show,flexBasis:flex-b,flex:flex,flexDirection:flex-d/flexDir,flexGrow:flex-g,flexShrink:flex-sh,gridTemplateColumns:grid-tc,gridTemplateRows:grid-tr,gridColumn:grid-c,gridRow:grid-r,gridColumnStart:grid-cs,gridColumnEnd:grid-ce,gridAutoFlow:grid-af,gridAutoColumns:grid-ac,gridAutoRows:grid-ar,gap:gap,gridGap:grid-g,gridRowGap:grid-rg,gridColumnGap:grid-cg,rowGap:rg,columnGap:cg,justifyContent:jc,alignContent:ac,alignItems:ai,alignSelf:as,padding:p/1,paddingLeft:pl/1,paddingRight:pr/1,paddingTop:pt/1,paddingBottom:pb/1,paddingBlock:py/1/paddingY,paddingBlockEnd:pbe,paddingBlockStart:pbs,paddingInline:px/paddingX/1,paddingInlineEnd:pe/1/paddingEnd,paddingInlineStart:ps/1/paddingStart,marginLeft:ml/1,marginRight:mr/1,marginTop:mt/1,marginBottom:mb/1,margin:m/1,marginBlock:my/1/marginY,marginBlockEnd:mbe,marginBlockStart:mbs,marginInline:mx/1/marginX,marginInlineEnd:me/1/marginEnd,marginInlineStart:ms/1/marginStart,spaceX:sx,spaceY:sy,outlineWidth:ring-w/ringWidth,outlineColor:ring-c/ringColor,outline:ring/1,outlineOffset:ring-o/ringOffset,focusRing:focus-ring,focusVisibleRing:focus-v-ring,focusRingColor:focus-ring-c,focusRingOffset:focus-ring-o,focusRingWidth:focus-ring-w,focusRingStyle:focus-ring-s,divideX:dvd-x,divideY:dvd-y,divideColor:dvd-c,divideStyle:dvd-s,width:w/1,inlineSize:w-is,minWidth:min-w/minW,minInlineSize:min-w-is,maxWidth:max-w/maxW,maxInlineSize:max-w-is,height:h/1,blockSize:h-bs,minHeight:min-h/minH,minBlockSize:min-h-bs,maxHeight:max-h/maxH,maxBlockSize:max-b,boxSize:size,color:c,fontFamily:ff,fontSize:fs,fontSizeAdjust:fs-a,fontPalette:fp,fontKerning:fk,fontFeatureSettings:ff-s,fontWeight:fw,fontSmoothing:fsmt,fontVariant:fv,fontVariantAlternates:fv-alt,fontVariantCaps:fv-caps,fontVariationSettings:fv-s,fontVariantNumeric:fv-num,letterSpacing:ls,lineHeight:lh,textAlign:ta,textDecoration:td,textDecorationColor:td-c,textEmphasisColor:te-c,textDecorationStyle:td-s,textDecorationThickness:td-t,textUnderlineOffset:tu-o,textTransform:tt,textIndent:ti,textShadow:tsh,textShadowColor:tsh-c/textShadowColor,textOverflow:tov,verticalAlign:va,wordBreak:wb,textWrap:tw,truncate:trunc,lineClamp:lc,listStyleType:li-t,listStylePosition:li-pos,listStyleImage:li-img,listStyle:li-s,backgroundPosition:bg-p/bgPosition,backgroundPositionX:bg-p-x/bgPositionX,backgroundPositionY:bg-p-y/bgPositionY,backgroundAttachment:bg-a/bgAttachment,backgroundClip:bg-cp/bgClip,background:bg/1,backgroundColor:bg-c/bgColor,backgroundOrigin:bg-o/bgOrigin,backgroundImage:bg-i/bgImage,backgroundRepeat:bg-r/bgRepeat,backgroundBlendMode:bg-bm/bgBlendMode,backgroundSize:bg-s/bgSize,backgroundGradient:bg-grad/bgGradient,backgroundLinear:bg-linear/bgLinear,backgroundRadial:bg-radial/bgRadial,backgroundConic:bg-conic/bgConic,textGradient:txt-grad,gradientFromPosition:grad-from-pos,gradientToPosition:grad-to-pos,gradientFrom:grad-from,gradientTo:grad-to,gradientVia:grad-via,gradientViaPosition:grad-via-pos,borderRadius:bdr/rounded,borderTopLeftRadius:bdr-tl/roundedTopLeft,borderTopRightRadius:bdr-tr/roundedTopRight,borderBottomRightRadius:bdr-br/roundedBottomRight,borderBottomLeftRadius:bdr-bl/roundedBottomLeft,borderTopRadius:bdr-t/roundedTop,borderRightRadius:bdr-r/roundedRight,borderBottomRadius:bdr-b/roundedBottom,borderLeftRadius:bdr-l/roundedLeft,borderStartStartRadius:bdr-ss/roundedStartStart,borderStartEndRadius:bdr-se/roundedStartEnd,borderStartRadius:bdr-s/roundedStart,borderEndStartRadius:bdr-es/roundedEndStart,borderEndEndRadius:bdr-ee/roundedEndEnd,borderEndRadius:bdr-e/roundedEnd,border:bd,borderWidth:bd-w,borderTopWidth:bd-t-w,borderLeftWidth:bd-l-w,borderRightWidth:bd-r-w,borderBottomWidth:bd-b-w,borderBlockStartWidth:bd-bs-w,borderBlockEndWidth:bd-be-w,borderColor:bd-c,borderInline:bd-x/borderX,borderInlineWidth:bd-x-w/borderXWidth,borderInlineColor:bd-x-c/borderXColor,borderBlock:bd-y/borderY,borderBlockWidth:bd-y-w/borderYWidth,borderBlockColor:bd-y-c/borderYColor,borderLeft:bd-l,borderLeftColor:bd-l-c,borderInlineStart:bd-s/borderStart,borderInlineStartWidth:bd-s-w/borderStartWidth,borderInlineStartColor:bd-s-c/borderStartColor,borderRight:bd-r,borderRightColor:bd-r-c,borderInlineEnd:bd-e/borderEnd,borderInlineEndWidth:bd-e-w/borderEndWidth,borderInlineEndColor:bd-e-c/borderEndColor,borderTop:bd-t,borderTopColor:bd-t-c,borderBottom:bd-b,borderBottomColor:bd-b-c,borderBlockEnd:bd-be,borderBlockEndColor:bd-be-c,borderBlockStart:bd-bs,borderBlockStartColor:bd-bs-c,opacity:op,boxShadow:bx-sh/shadow,boxShadowColor:bx-sh-c/shadowColor,mixBlendMode:mix-bm,filter:filter,brightness:brightness,contrast:contrast,grayscale:grayscale,hueRotate:hue-rotate,invert:invert,saturate:saturate,sepia:sepia,dropShadow:drop-shadow,blur:blur,backdropFilter:bkdp,backdropBlur:bkdp-blur,backdropBrightness:bkdp-brightness,backdropContrast:bkdp-contrast,backdropGrayscale:bkdp-grayscale,backdropHueRotate:bkdp-hue-rotate,backdropInvert:bkdp-invert,backdropOpacity:bkdp-opacity,backdropSaturate:bkdp-saturate,backdropSepia:bkdp-sepia,borderCollapse:bd-cl,borderSpacing:bd-sp,borderSpacingX:bd-sx,borderSpacingY:bd-sy,tableLayout:tbl,transitionTimingFunction:trs-tmf,transitionDelay:trs-dly,transitionDuration:trs-dur,transitionProperty:trs-prop,transition:transition,animation:anim,animationName:anim-n,animationTimingFunction:anim-tmf,animationDuration:anim-dur,animationDelay:anim-dly,animationPlayState:anim-ps,animationComposition:anim-comp,animationFillMode:anim-fm,animationDirection:anim-dir,animationIterationCount:anim-ic,animationRange:anim-r,animationState:anim-s,animationRangeStart:anim-rs,animationRangeEnd:anim-re,animationTimeline:anim-tl,transformOrigin:trf-o,transformBox:trf-b,transformStyle:trf-s,transform:trf,rotate:rotate,rotateX:rotate-x,rotateY:rotate-y,rotateZ:rotate-z,scale:scale,scaleX:scale-x,scaleY:scale-y,translate:translate,translateX:translate-x/x,translateY:translate-y/y,translateZ:translate-z/z,accentColor:ac-c,caretColor:ca-c,scrollBehavior:scr-bhv,scrollbar:scr-bar,scrollbarColor:scr-bar-c,scrollbarGutter:scr-bar-g,scrollbarWidth:scr-bar-w,scrollMargin:scr-m,scrollMarginLeft:scr-ml,scrollMarginRight:scr-mr,scrollMarginTop:scr-mt,scrollMarginBottom:scr-mb,scrollMarginBlock:scr-my/scrollMarginY,scrollMarginBlockEnd:scr-mbe,scrollMarginBlockStart:scr-mbt,scrollMarginInline:scr-mx/scrollMarginX,scrollMarginInlineEnd:scr-me,scrollMarginInlineStart:scr-ms,scrollPadding:scr-p,scrollPaddingBlock:scr-py/scrollPaddingY,scrollPaddingBlockStart:scr-pbs,scrollPaddingBlockEnd:scr-pbe,scrollPaddingInline:scr-px/scrollPaddingX,scrollPaddingInlineEnd:scr-pe,scrollPaddingInlineStart:scr-ps,scrollPaddingLeft:scr-pl,scrollPaddingRight:scr-pr,scrollPaddingTop:scr-pt,scrollPaddingBottom:scr-pb,scrollSnapAlign:scr-sa,scrollSnapStop:scrs-s,scrollSnapType:scrs-t,scrollSnapStrictness:scrs-strt,scrollSnapMargin:scrs-m,scrollSnapMarginTop:scrs-mt,scrollSnapMarginBottom:scrs-mb,scrollSnapMarginLeft:scrs-ml,scrollSnapMarginRight:scrs-mr,scrollSnapCoordinate:scrs-c,scrollSnapDestination:scrs-d,scrollSnapPointsX:scrs-px,scrollSnapPointsY:scrs-py,scrollSnapTypeX:scrs-tx,scrollSnapTypeY:scrs-ty,scrollTimeline:scrtl,scrollTimelineAxis:scrtl-a,scrollTimelineName:scrtl-n,touchAction:tch-a,userSelect:us,overflow:ov,overflowWrap:ov-wrap,overflowX:ov-x,overflowY:ov-y,overflowAnchor:ov-a,overflowBlock:ov-b,overflowInline:ov-i,overflowClipBox:ovcp-bx,overflowClipMargin:ovcp-m,overscrollBehaviorBlock:ovs-bb,overscrollBehaviorInline:ovs-bi,fill:fill,stroke:stk,strokeWidth:stk-w,strokeDasharray:stk-dsh,strokeDashoffset:stk-do,strokeLinecap:stk-lc,strokeLinejoin:stk-lj,strokeMiterlimit:stk-ml,strokeOpacity:stk-op,srOnly:sr,debug:debug,appearance:ap,backfaceVisibility:bfv,clipPath:cp-path,hyphens:hy,mask:msk,maskImage:msk-i,maskSize:msk-s,textSizeAdjust:txt-adj,container:cq,containerName:cq-n,containerType:cq-t,cursor:cursor,textStyle:textStyle,layerStyle:layerStyle,animationStyle:animationStyle",PB=new Map,OB=new Map;GEe.split(",").forEach(e=>{const[r,n]=e.split(":"),[o,...a]=n.split("/");PB.set(r,o),a.length&&a.forEach(i=>{OB.set(i==="1"?o:i,r)})});const MB=e=>OB.get(e)||e,IB={conditions:{shift:$B,finalize:DB,breakpoints:{keys:["base","xs","sm","md","lg","xl"]}},utility:{transform:(e,r)=>{const n=MB(e);return{className:`${PB.get(n)||PEe(n)}_${qE(r)}`}},hasShorthand:!0,toHash:(e,r)=>r(e.join(":")),resolveShorthand:MB}},XEe=TB(IB),ye=(...e)=>XEe(Pd(...e));ye.raw=(...e)=>Pd(...e);const{mergeCss:Pd}=NEe(IB);function Je(){let e="",r=0,n;for(;r({base:{},variants:{},defaultVariants:{},compoundVariants:[],...e});function J1(e){const{base:r,variants:n,defaultVariants:o,compoundVariants:a}=LB(e),i=f=>({...o,...$d(f)});function l(f={}){const g=i(f);let b={...r};for(const[w,k]of Object.entries(g))n[w]?.[k]&&(b=Pd(b,n[w][k]));const x=KE(a,g);return Pd(b,x)}function s(f){const g=LB(f.config),b=GE(f.variantKeys,Object.keys(n));return J1({base:Pd(r,g.base),variants:Object.fromEntries(b.map(x=>[x,Pd(n[x],g.variants[x])])),defaultVariants:VE(o,g.defaultVariants),compoundVariants:[...a,...g.compoundVariants]})}function c(f){return ye(l(f))}const u=Object.keys(n);function d(f){return Yn(f,u)}const p=Object.fromEntries(Object.entries(n).map(([f,g])=>[f,Object.keys(g)]));return Object.assign(co(c),{__cva__:!0,variantMap:p,variantKeys:u,raw:l,config:e,merge:s,splitVariantProps:d,getVariantProps:i})}function KE(e,r){let n={};return e.forEach(o=>{Object.entries(o).every(([a,i])=>a==="css"?!0:(Array.isArray(i)?i:[i]).some(l=>r[a]===l))&&(n=Pd(n,o.css))}),n}function KEe(e,r,n,o){if(r.length>0&&typeof n?.[o]=="object")throw new Error(`[recipe:${e}:${o}] Conditions are not supported when using compound variants.`)}function ZEe(e){const r=Object.entries(HEe(e)).map(([p,f])=>[p,J1(f)]),n=e.defaultVariants??{},o=r.reduce((p,[f,g])=>(e.className&&(p[f]=g.config.className),p),{});function a(p){const f=r.map(([g,b])=>[g,Je(b(p),o[g])]);return Object.fromEntries(f)}function i(p){const f=r.map(([g,b])=>[g,b.raw(p)]);return Object.fromEntries(f)}const l=e.variants??{},s=Object.keys(l);function c(p){return Yn(p,s)}const u=p=>({...n,...$d(p)}),d=Object.fromEntries(Object.entries(l).map(([p,f])=>[p,Object.keys(f)]));return Object.assign(co(a),{__cva__:!1,raw:i,config:e,variantMap:d,variantKeys:s,classNameMap:o,splitVariantProps:c,getVariantProps:u})}/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */var QEe={outline:{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"},filled:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"}};/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const yt=(e,r,n,o)=>{const a=E.forwardRef(({color:i="currentColor",size:l=24,stroke:s=2,title:c,className:u,children:d,...p},f)=>E.createElement("svg",{ref:f,...QEe[e],width:l,height:l,className:["tabler-icon",`tabler-icon-${r}`,u].join(" "),...e==="filled"?{fill:i}:{strokeWidth:s,stroke:i},...p},[c&&E.createElement("title",{key:"svg-title"},c),...o.map(([g,b])=>E.createElement(g,b)),...Array.isArray(d)?d:[d]]));return a.displayName=`${n}`,a};/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const JEe=[["path",{d:"M12 6m-7 0a7 3 0 1 0 14 0a7 3 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M5 6v12c0 1.657 3.134 3 7 3s7 -1.343 7 -3v-12",key:"svg-1"}]],zB=yt("outline","cylinder","Cylinder",JEe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const e8e=[["path",{d:"M21 14.008v-5.018a1.98 1.98 0 0 0 -1 -1.717l-4 -2.008a2.016 2.016 0 0 0 -2 0l-10 5.008c-.619 .355 -1 1.01 -1 1.718v5.018c0 .709 .381 1.363 1 1.717l4 2.008a2.016 2.016 0 0 0 2 0l10 -5.008c.619 -.355 1 -1.01 1 -1.718z",key:"svg-0"}],["path",{d:"M9 21v-7.5",key:"svg-1"}],["path",{d:"M9 13.5l11.5 -5.5",key:"svg-2"}],["path",{d:"M3.5 11l5.5 2.5",key:"svg-3"}]],t8e=yt("outline","rectangular-prism","RectangularPrism",e8e);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const r8e=[["path",{d:"M3 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z",key:"svg-0"}],["path",{d:"M10 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z",key:"svg-1"}],["path",{d:"M17 15m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z",key:"svg-2"}],["path",{d:"M5 11v-3a3 3 0 0 1 3 -3h8a3 3 0 0 1 3 3v3",key:"svg-3"}],["path",{d:"M16.5 8.5l2.5 2.5l2.5 -2.5",key:"svg-4"}]],n8e=yt("outline","reorder","Reorder",r8e);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const o8e=[["path",{d:"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",key:"svg-0"}],["path",{d:"M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2",key:"svg-1"}]],a8e=yt("outline","user","User",o8e);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const i8e=[["path",{d:"M6 5a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2v-14z",key:"svg-0"}],["path",{d:"M11 4h2",key:"svg-1"}],["path",{d:"M12 17v.01",key:"svg-2"}]],l8e=yt("outline","device-mobile","DeviceMobile",i8e);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const s8e=[["path",{d:"M4 8h16",key:"svg-0"}],["path",{d:"M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z",key:"svg-1"}],["path",{d:"M8 4v4",key:"svg-2"}]],c8e=yt("outline","browser","Browser",s8e),ZE=E.createContext(null);function u8e({value:e,children:r}){return E.useContext(ZE)?y.jsx(y.Fragment,{children:r}):y.jsx(ZE.Provider,{value:e,children:r})}function q3({element:e,className:r,style:n}){const o=E.useContext(ZE);if(!e||!e.icon||e.icon==="none")return null;let a;return e.icon.startsWith("http://")||e.icon.startsWith("https://")?a=y.jsx("img",{src:e.icon,alt:e.title}):o&&(a=y.jsx(o,{node:e})),a?y.jsx("div",{className:Je(r,"likec4-element-icon"),"data-likec4-icon":e.icon,style:n,children:a}):null}const d8e={browser:c8e,cylinder:zB,mobile:l8e,person:a8e,queue:n8e,rectangle:t8e,storage:zB};function p8e({element:e,className:r}){const n=y.jsx(q3,{element:e,className:r});if(n)return n;const o=d8e[e.shape];return y.jsx("div",{className:Je(r,"likec4-shape-icon"),children:y.jsx(o,{})})}function Xh(e){const r=E.useRef(e);return r.current=e,E.useMemo(()=>Object.freeze({get current(){return r.current}}),[])}function jB(e){const r=Xh(e);E.useEffect(()=>()=>{r.current()},[])}function V3(e,r,n,o=0){const a=E.useRef(void 0),i=E.useRef(void 0),l=E.useRef(e),s=E.useRef(void 0),c=()=>{a.current&&(clearTimeout(a.current),a.current=void 0),i.current&&(clearTimeout(i.current),i.current=void 0)};return jB(c),E.useEffect(()=>{l.current=e},r),E.useMemo(()=>{const u=()=>{if(c(),!s.current)return;const p=s.current;s.current=void 0,l.current.apply(p.this,p.args)},d=function(...p){a.current&&clearTimeout(a.current),s.current={args:p,this:this},a.current=setTimeout(u,n),o>0&&!i.current&&(i.current=setTimeout(u,o))};return Object.defineProperties(d,{length:{value:e.length},name:{value:`${e.name||"anonymous"}__debounced__${n}`}}),d},[n,o,...r])}const h8e=()=>{},Y3=typeof globalThis<"u"&&typeof navigator<"u"&&typeof document<"u";function f8e(e){const r=Xh(e),n=E.useRef(0),o=E.useCallback(()=>{Y3&&n.current&&(cancelAnimationFrame(n.current),n.current=0)},[]);return jB(o),[E.useMemo(()=>{const a=(...i)=>{Y3&&(o(),n.current=requestAnimationFrame(()=>{r.current(...i),n.current=0}))};return Object.defineProperties(a,{length:{value:e.length},name:{value:`${e.name||"anonymous"}__raf`}}),a},[]),o]}const m8e=(e,r)=>{if(e===r)return!0;if(e.length!==r.length)return!1;for(const[n,o]of e.entries())if(o!==r[n])return!1;return!0};function BB(e,r,n=m8e,o=E.useEffect,...a){const i=E.useRef(void 0);(i.current===void 0||Y3&&!n(i.current,r))&&(i.current=r),o(e,i.current,...a)}function g8e(e,r,n,o=0){E.useEffect(V3(e,r,n,o),r)}function FB(){const e=E.useRef(!0);return E.useEffect(()=>{e.current=!1},[]),e.current}const QE=Y3?E.useLayoutEffect:E.useEffect;function y8e(e){E.useEffect(()=>{e()},[])}function HB(e,r){const[n,o]=f8e(e);E.useEffect(()=>(n(),o),r)}const b8e=e=>(e+1)%Number.MAX_SAFE_INTEGER;function v8e(){const[,e]=E.useState(0);return E.useCallback(()=>{e(b8e)},[])}function UB(e,r){const n=FB();E.useEffect(n?h8e:e,r)}const x8e=e=>{e&&clearTimeout(e)};function W3(e,r){const n=Xh(e),o=Xh(r),a=E.useRef(null),i=E.useCallback(()=>{x8e(a.current)},[]),l=E.useCallback(()=>{o.current!==void 0&&(i(),a.current=setTimeout(()=>{n.current()},o.current))},[]);return E.useEffect(()=>(l(),i),[r]),[i,l]}const qB=(e,r,n)=>{const o=E.useRef(void 0);return(o.current===void 0||!n(o.current,r))&&(o.current=r),E.useMemo(e,o.current)};function an(e){if(typeof e=="string"||typeof e=="number")return""+e;let r="";if(Array.isArray(e))for(let n=0,o;n{}};function G3(){for(var e=0,r=arguments.length,n={},o;e=0&&(o=n.slice(a+1),n=n.slice(0,a)),n&&!r.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:o}})}X3.prototype=G3.prototype={constructor:X3,on:function(e,r){var n=this._,o=k8e(e+"",n),a,i=-1,l=o.length;if(arguments.length<2){for(;++i0)for(var n=new Array(a),o=0,a,i;o=0&&(r=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),YB.hasOwnProperty(r)?{space:YB[r],local:e}:e}function E8e(e){return function(){var r=this.ownerDocument,n=this.namespaceURI;return n===JE&&r.documentElement.namespaceURI===JE?r.createElement(e):r.createElementNS(n,e)}}function S8e(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function WB(e){var r=K3(e);return(r.local?S8e:E8e)(r)}function C8e(){}function e8(e){return e==null?C8e:function(){return this.querySelector(e)}}function T8e(e){typeof e!="function"&&(e=e8(e));for(var r=this._groups,n=r.length,o=new Array(n),a=0;a=_&&(_=C+1);!(R=w[_])&&++_=0;)(l=o[a])&&(i&&l.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(l,i),i=l);return this}function Q8e(e){e||(e=J8e);function r(p,f){return p&&f?e(p.__data__,f.__data__):!p-!f}for(var n=this._groups,o=n.length,a=new Array(o),i=0;ir?1:e>=r?0:NaN}function e9e(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function t9e(){return Array.from(this)}function r9e(){for(var e=this._groups,r=0,n=e.length;r1?this.each((r==null?h9e:typeof r=="function"?m9e:f9e)(e,r,n??"")):Kh(this.node(),e)}function Kh(e,r){return e.style.getPropertyValue(r)||QB(e).getComputedStyle(e,null).getPropertyValue(r)}function y9e(e){return function(){delete this[e]}}function b9e(e,r){return function(){this[e]=r}}function v9e(e,r){return function(){var n=r.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function x9e(e,r){return arguments.length>1?this.each((r==null?y9e:typeof r=="function"?v9e:b9e)(e,r)):this.node()[e]}function JB(e){return e.trim().split(/^|\s+/)}function t8(e){return e.classList||new eF(e)}function eF(e){this._node=e,this._names=JB(e.getAttribute("class")||"")}eF.prototype={add:function(e){var r=this._names.indexOf(e);r<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var r=this._names.indexOf(e);r>=0&&(this._names.splice(r,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function tF(e,r){for(var n=t8(e),o=-1,a=r.length;++o=0&&(n=r.slice(o+1),r=r.slice(0,o)),{type:r,name:n}})}function G9e(e){return function(){var r=this.__on;if(r){for(var n=0,o=-1,a=r.length,i;n()=>e;function n8(e,{sourceEvent:r,subject:n,target:o,identifier:a,active:i,x:l,y:s,dx:c,dy:u,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:r,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:a,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:l,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:d}})}n8.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function o7e(e){return!e.ctrlKey&&!e.button}function a7e(){return this.parentNode}function i7e(e,r){return r??{x:e.x,y:e.y}}function l7e(){return navigator.maxTouchPoints||"ontouchstart"in this}function lF(){var e=o7e,r=a7e,n=i7e,o=l7e,a={},i=G3("start","drag","end"),l=0,s,c,u,d,p=0;function f(T){T.on("mousedown.drag",g).filter(o).on("touchstart.drag",w).on("touchmove.drag",k,n7e).on("touchend.drag touchcancel.drag",C).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(T,R){if(!(d||!e.call(this,T,R))){var A=_(this,r.call(this,T,R),T,R,"mouse");A&&(Ea(T.view).on("mousemove.drag",b,t0).on("mouseup.drag",x,t0),aF(T.view),r8(T),u=!1,s=T.clientX,c=T.clientY,A("start",T))}}function b(T){if(Zh(T),!u){var R=T.clientX-s,A=T.clientY-c;u=R*R+A*A>p}a.mouse("drag",T)}function x(T){Ea(T.view).on("mousemove.drag mouseup.drag",null),iF(T.view,u),Zh(T),a.mouse("end",T)}function w(T,R){if(e.call(this,T,R)){var A=T.changedTouches,D=r.call(this,T,R),N=A.length,P,O;for(P=0;P>8&15|r>>4&240,r>>4&15|r&240,(r&15)<<4|r&15,1):n===8?ex(r>>24&255,r>>16&255,r>>8&255,(r&255)/255):n===4?ex(r>>12&15|r>>8&240,r>>8&15|r>>4&240,r>>4&15|r&240,((r&15)<<4|r&15)/255):null):(r=c7e.exec(e))?new Qo(r[1],r[2],r[3],1):(r=u7e.exec(e))?new Qo(r[1]*255/100,r[2]*255/100,r[3]*255/100,1):(r=d7e.exec(e))?ex(r[1],r[2],r[3],r[4]):(r=p7e.exec(e))?ex(r[1]*255/100,r[2]*255/100,r[3]*255/100,r[4]):(r=h7e.exec(e))?mF(r[1],r[2]/100,r[3]/100,1):(r=f7e.exec(e))?mF(r[1],r[2]/100,r[3]/100,r[4]):cF.hasOwnProperty(e)?pF(cF[e]):e==="transparent"?new Qo(NaN,NaN,NaN,0):null}function pF(e){return new Qo(e>>16&255,e>>8&255,e&255,1)}function ex(e,r,n,o){return o<=0&&(e=r=n=NaN),new Qo(e,r,n,o)}function y7e(e){return e instanceof r0||(e=Od(e)),e?(e=e.rgb(),new Qo(e.r,e.g,e.b,e.opacity)):new Qo}function a8(e,r,n,o){return arguments.length===1?y7e(e):new Qo(e,r,n,o??1)}function Qo(e,r,n,o){this.r=+e,this.g=+r,this.b=+n,this.opacity=+o}o8(Qo,a8,sF(r0,{brighter(e){return e=e==null?J3:Math.pow(J3,e),new Qo(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?n0:Math.pow(n0,e),new Qo(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Qo(Md(this.r),Md(this.g),Md(this.b),tx(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:hF,formatHex:hF,formatHex8:b7e,formatRgb:fF,toString:fF}));function hF(){return`#${Id(this.r)}${Id(this.g)}${Id(this.b)}`}function b7e(){return`#${Id(this.r)}${Id(this.g)}${Id(this.b)}${Id((isNaN(this.opacity)?1:this.opacity)*255)}`}function fF(){const e=tx(this.opacity);return`${e===1?"rgb(":"rgba("}${Md(this.r)}, ${Md(this.g)}, ${Md(this.b)}${e===1?")":`, ${e})`}`}function tx(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Md(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Id(e){return e=Md(e),(e<16?"0":"")+e.toString(16)}function mF(e,r,n,o){return o<=0?e=r=n=NaN:n<=0||n>=1?e=r=NaN:r<=0&&(e=NaN),new Vi(e,r,n,o)}function gF(e){if(e instanceof Vi)return new Vi(e.h,e.s,e.l,e.opacity);if(e instanceof r0||(e=Od(e)),!e)return new Vi;if(e instanceof Vi)return e;e=e.rgb();var r=e.r/255,n=e.g/255,o=e.b/255,a=Math.min(r,n,o),i=Math.max(r,n,o),l=NaN,s=i-a,c=(i+a)/2;return s?(r===i?l=(n-o)/s+(n0&&c<1?0:l,new Vi(l,s,c,e.opacity)}function v7e(e,r,n,o){return arguments.length===1?gF(e):new Vi(e,r,n,o??1)}function Vi(e,r,n,o){this.h=+e,this.s=+r,this.l=+n,this.opacity=+o}o8(Vi,v7e,sF(r0,{brighter(e){return e=e==null?J3:Math.pow(J3,e),new Vi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?n0:Math.pow(n0,e),new Vi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,r=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*r,a=2*n-o;return new Qo(i8(e>=240?e-240:e+120,a,o),i8(e,a,o),i8(e<120?e+240:e-120,a,o),this.opacity)},clamp(){return new Vi(yF(this.h),rx(this.s),rx(this.l),tx(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(){const e=tx(this.opacity);return`${e===1?"hsl(":"hsla("}${yF(this.h)}, ${rx(this.s)*100}%, ${rx(this.l)*100}%${e===1?")":`, ${e})`}`}}));function yF(e){return e=(e||0)%360,e<0?e+360:e}function rx(e){return Math.max(0,Math.min(1,e||0))}function i8(e,r,n){return(e<60?r+(n-r)*e/60:e<180?n:e<240?r+(n-r)*(240-e)/60:r)*255}const l8=e=>()=>e;function x7e(e,r){return function(n){return e+n*r}}function w7e(e,r,n){return e=Math.pow(e,n),r=Math.pow(r,n)-e,n=1/n,function(o){return Math.pow(e+o*r,n)}}function k7e(e){return(e=+e)==1?bF:function(r,n){return n-r?w7e(r,n,e):l8(isNaN(r)?n:r)}}function bF(e,r){var n=r-e;return n?x7e(e,n):l8(isNaN(e)?r:e)}const nx=(function e(r){var n=k7e(r);function o(a,i){var l=n((a=a8(a)).r,(i=a8(i)).r),s=n(a.g,i.g),c=n(a.b,i.b),u=bF(a.opacity,i.opacity);return function(d){return a.r=l(d),a.g=s(d),a.b=c(d),a.opacity=u(d),a+""}}return o.gamma=e,o})(1);function _7e(e,r){r||(r=[]);var n=e?Math.min(r.length,e.length):0,o=r.slice(),a;return function(i){for(a=0;an&&(i=r.slice(n,i),s[l]?s[l]+=i:s[++l]=i),(o=o[0])===(a=a[0])?s[l]?s[l]+=a:s[++l]=a:(s[++l]=null,c.push({i:l,x:Kl(o,a)})),n=c8.lastIndex;return n180?d+=360:d-u>180&&(u+=360),f.push({i:p.push(a(p)+"rotate(",null,o)-2,x:Kl(u,d)})):d&&p.push(a(p)+"rotate("+d+o)}function s(u,d,p,f){u!==d?f.push({i:p.push(a(p)+"skewX(",null,o)-2,x:Kl(u,d)}):d&&p.push(a(p)+"skewX("+d+o)}function c(u,d,p,f,g,b){if(u!==p||d!==f){var x=g.push(a(g)+"scale(",null,",",null,")");b.push({i:x-4,x:Kl(u,p)},{i:x-2,x:Kl(d,f)})}else(p!==1||f!==1)&&g.push(a(g)+"scale("+p+","+f+")")}return function(u,d){var p=[],f=[];return u=e(u),d=e(d),i(u.translateX,u.translateY,d.translateX,d.translateY,p,f),l(u.rotate,d.rotate,p,f),s(u.skewX,d.skewX,p,f),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,p,f),u=d=null,function(g){for(var b=-1,x=f.length,w;++b=0&&e._call.call(void 0,r),e=e._next;--Jh}function RF(){Ld=(lx=c0.now())+sx,Jh=i0=0;try{z7e()}finally{Jh=0,B7e(),Ld=0}}function j7e(){var e=c0.now(),r=e-lx;r>SF&&(sx-=r,lx=e)}function B7e(){for(var e,r=ix,n,o=1/0;r;)r._call?(o>r._time&&(o=r._time),e=r,r=r._next):(n=r._next,r._next=null,r=e?e._next=n:ix=n);s0=e,d8(o)}function d8(e){if(!Jh){i0&&(i0=clearTimeout(i0));var r=e-Ld;r>24?(e<1/0&&(i0=setTimeout(RF,e-c0.now()-sx)),l0&&(l0=clearInterval(l0))):(l0||(lx=c0.now(),l0=setInterval(j7e,SF)),Jh=1,CF(RF))}}function AF(e,r,n){var o=new cx;return r=r==null?0:+r,o.restart(a=>{o.stop(),e(a+r)},r,n),o}var F7e=G3("start","end","cancel","interrupt"),H7e=[],NF=0,DF=1,p8=2,ux=3,$F=4,h8=5,dx=6;function px(e,r,n,o,a,i){var l=e.__transition;if(!l)e.__transition={};else if(n in l)return;U7e(e,n,{name:r,index:o,group:a,on:F7e,tween:H7e,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:NF})}function f8(e,r){var n=Yi(e,r);if(n.state>NF)throw new Error("too late; already scheduled");return n}function Zl(e,r){var n=Yi(e,r);if(n.state>ux)throw new Error("too late; already running");return n}function Yi(e,r){var n=e.__transition;if(!n||!(n=n[r]))throw new Error("transition not found");return n}function U7e(e,r,n){var o=e.__transition,a;o[r]=n,n.timer=TF(i,0,n.time);function i(u){n.state=DF,n.timer.restart(l,n.delay,n.time),n.delay<=u&&l(u-n.delay)}function l(u){var d,p,f,g;if(n.state!==DF)return c();for(d in o)if(g=o[d],g.name===n.name){if(g.state===ux)return AF(l);g.state===$F?(g.state=dx,g.timer.stop(),g.on.call("interrupt",e,e.__data__,g.index,g.group),delete o[d]):+dp8&&o.state=0&&(r=r.slice(0,n)),!r||r==="start"})}function vSe(e,r,n){var o,a,i=bSe(r)?f8:Zl;return function(){var l=i(this,e),s=l.on;s!==o&&(a=(o=s).copy()).on(r,n),l.on=a}}function xSe(e,r){var n=this._id;return arguments.length<2?Yi(this.node(),n).on.on(e):this.each(vSe(n,e,r))}function wSe(e){return function(){var r=this.parentNode;for(var n in this.__transition)if(+n!==e)return;r&&r.removeChild(this)}}function kSe(){return this.on("end.remove",wSe(this._id))}function _Se(e){var r=this._name,n=this._id;typeof e!="function"&&(e=e8(e));for(var o=this._groups,a=o.length,i=new Array(a),l=0;l()=>e;function GSe(e,{sourceEvent:r,target:n,transform:o,dispatch:a}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:r,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:a}})}function Hs(e,r,n){this.k=e,this.x=r,this.y=n}Hs.prototype={constructor:Hs,scale:function(e){return e===1?this:new Hs(this.k*e,this.x,this.y)},translate:function(e,r){return e===0&r===0?this:new Hs(this.k,this.x+this.k*e,this.y+this.k*r)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var mx=new Hs(1,0,0);IF.prototype=Hs.prototype;function IF(e){for(;!e.__zoom;)if(!(e=e.parentNode))return mx;return e.__zoom}function g8(e){e.stopImmediatePropagation()}function u0(e){e.preventDefault(),e.stopImmediatePropagation()}function XSe(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function KSe(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function LF(){return this.__zoom||mx}function ZSe(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function QSe(){return navigator.maxTouchPoints||"ontouchstart"in this}function JSe(e,r,n){var o=e.invertX(r[0][0])-n[0][0],a=e.invertX(r[1][0])-n[1][0],i=e.invertY(r[0][1])-n[0][1],l=e.invertY(r[1][1])-n[1][1];return e.translate(a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a),l>i?(i+l)/2:Math.min(0,i)||Math.max(0,l))}function zF(){var e=XSe,r=KSe,n=JSe,o=ZSe,a=QSe,i=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],s=250,c=ax,u=G3("start","zoom","end"),d,p,f,g=500,b=150,x=0,w=10;function k(M){M.property("__zoom",LF).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",P).on("dblclick.zoom",O).filter(a).on("touchstart.zoom",B).on("touchmove.zoom",L).on("touchend.zoom touchcancel.zoom",Y).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}k.transform=function(M,q,I,U){var V=M.selection?M.selection():M;V.property("__zoom",LF),M!==V?R(M,q,I,U):V.interrupt().each(function(){A(this,arguments).event(U).start().zoom(null,typeof q=="function"?q.apply(this,arguments):q).end()})},k.scaleBy=function(M,q,I,U){k.scaleTo(M,function(){var V=this.__zoom.k,G=typeof q=="function"?q.apply(this,arguments):q;return V*G},I,U)},k.scaleTo=function(M,q,I,U){k.transform(M,function(){var V=r.apply(this,arguments),G=this.__zoom,F=I==null?T(V):typeof I=="function"?I.apply(this,arguments):I,J=G.invert(F),Q=typeof q=="function"?q.apply(this,arguments):q;return n(_(C(G,Q),F,J),V,l)},I,U)},k.translateBy=function(M,q,I,U){k.transform(M,function(){return n(this.__zoom.translate(typeof q=="function"?q.apply(this,arguments):q,typeof I=="function"?I.apply(this,arguments):I),r.apply(this,arguments),l)},null,U)},k.translateTo=function(M,q,I,U,V){k.transform(M,function(){var G=r.apply(this,arguments),F=this.__zoom,J=U==null?T(G):typeof U=="function"?U.apply(this,arguments):U;return n(mx.translate(J[0],J[1]).scale(F.k).translate(typeof q=="function"?-q.apply(this,arguments):-q,typeof I=="function"?-I.apply(this,arguments):-I),G,l)},U,V)};function C(M,q){return q=Math.max(i[0],Math.min(i[1],q)),q===M.k?M:new Hs(q,M.x,M.y)}function _(M,q,I){var U=q[0]-I[0]*M.k,V=q[1]-I[1]*M.k;return U===M.x&&V===M.y?M:new Hs(M.k,U,V)}function T(M){return[(+M[0][0]+ +M[1][0])/2,(+M[0][1]+ +M[1][1])/2]}function R(M,q,I,U){M.on("start.zoom",function(){A(this,arguments).event(U).start()}).on("interrupt.zoom end.zoom",function(){A(this,arguments).event(U).end()}).tween("zoom",function(){var V=this,G=arguments,F=A(V,G).event(U),J=r.apply(V,G),Q=I==null?T(J):typeof I=="function"?I.apply(V,G):I,z=Math.max(J[1][0]-J[0][0],J[1][1]-J[0][1]),W=V.__zoom,X=typeof q=="function"?q.apply(V,G):q,Z=c(W.invert(Q).concat(z/W.k),X.invert(Q).concat(z/X.k));return function(oe){if(oe===1)oe=X;else{var ee=Z(oe),re=z/ee[2];oe=new Hs(re,Q[0]-ee[0]*re,Q[1]-ee[1]*re)}F.zoom(null,oe)}})}function A(M,q,I){return!I&&M.__zooming||new D(M,q)}function D(M,q){this.that=M,this.args=q,this.active=0,this.sourceEvent=null,this.extent=r.apply(M,q),this.taps=0}D.prototype={event:function(M){return M&&(this.sourceEvent=M),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(M,q){return this.mouse&&M!=="mouse"&&(this.mouse[1]=q.invert(this.mouse[0])),this.touch0&&M!=="touch"&&(this.touch0[1]=q.invert(this.touch0[0])),this.touch1&&M!=="touch"&&(this.touch1[1]=q.invert(this.touch1[0])),this.that.__zoom=q,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(M){var q=Ea(this.that).datum();u.call(M,this.that,new GSe(M,{sourceEvent:this.sourceEvent,target:k,transform:this.that.__zoom,dispatch:u}),q)}};function N(M,...q){if(!e.apply(this,arguments))return;var I=A(this,q).event(M),U=this.__zoom,V=Math.max(i[0],Math.min(i[1],U.k*Math.pow(2,o.apply(this,arguments)))),G=qi(M);if(I.wheel)(I.mouse[0][0]!==G[0]||I.mouse[0][1]!==G[1])&&(I.mouse[1]=U.invert(I.mouse[0]=G)),clearTimeout(I.wheel);else{if(U.k===V)return;I.mouse=[G,U.invert(G)],hx(this),I.start()}u0(M),I.wheel=setTimeout(F,b),I.zoom("mouse",n(_(C(U,V),I.mouse[0],I.mouse[1]),I.extent,l));function F(){I.wheel=null,I.end()}}function P(M,...q){if(f||!e.apply(this,arguments))return;var I=M.currentTarget,U=A(this,q,!0).event(M),V=Ea(M.view).on("mousemove.zoom",Q,!0).on("mouseup.zoom",z,!0),G=qi(M,I),F=M.clientX,J=M.clientY;aF(M.view),g8(M),U.mouse=[G,this.__zoom.invert(G)],hx(this),U.start();function Q(W){if(u0(W),!U.moved){var X=W.clientX-F,Z=W.clientY-J;U.moved=X*X+Z*Z>x}U.event(W).zoom("mouse",n(_(U.that.__zoom,U.mouse[0]=qi(W,I),U.mouse[1]),U.extent,l))}function z(W){V.on("mousemove.zoom mouseup.zoom",null),iF(W.view,U.moved),u0(W),U.event(W).end()}}function O(M,...q){if(e.apply(this,arguments)){var I=this.__zoom,U=qi(M.changedTouches?M.changedTouches[0]:M,this),V=I.invert(U),G=I.k*(M.shiftKey?.5:2),F=n(_(C(I,G),U,V),r.apply(this,q),l);u0(M),s>0?Ea(this).transition().duration(s).call(R,F,U,M):Ea(this).call(k.transform,F,U,M)}}function B(M,...q){if(e.apply(this,arguments)){var I=M.touches,U=I.length,V=A(this,q,M.changedTouches.length===U).event(M),G,F,J,Q;for(g8(M),F=0;F"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:r,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:o}", edge id: ${r}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},d0=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],jF=["Enter"," ","Escape"],BF={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:r,y:n})=>`Moved selected node ${e}. New position, x: ${r}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var ef;(function(e){e.Strict="strict",e.Loose="loose"})(ef||(ef={}));var zd;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(zd||(zd={}));var p0;(function(e){e.Partial="partial",e.Full="full"})(p0||(p0={}));const FF={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null};var eu;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(eu||(eu={}));var gx;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(gx||(gx={}));var tt;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(tt||(tt={}));const HF={[tt.Left]:tt.Right,[tt.Right]:tt.Left,[tt.Top]:tt.Bottom,[tt.Bottom]:tt.Top};function UF(e){return e===null?null:e?"valid":"invalid"}const qF=e=>"id"in e&&"source"in e&&"target"in e,eCe=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),y8=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),h0=(e,r=[0,0])=>{const{width:n,height:o}=Wn(e),a=e.origin??r,i=n*a[0],l=o*a[1];return{x:e.position.x-i,y:e.position.y-l}},VF=(e,r={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((o,a)=>{const i=typeof a=="string";let l=!r.nodeLookup&&!i?a:void 0;r.nodeLookup&&(l=i?r.nodeLookup.get(a):y8(a)?a:r.nodeLookup.get(a.id));const s=l?bx(l,r.nodeOrigin):{x:0,y:0,x2:0,y2:0};return yx(o,s)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return f0(n)},tf=(e,r={})=>{if(e.size===0)return{x:0,y:0,width:0,height:0};let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0};return e.forEach(o=>{if(r.filter===void 0||r.filter(o)){const a=bx(o);n=yx(n,a)}}),f0(n)},b8=(e,r,[n,o,a]=[0,0,1],i=!1,l=!1)=>{const s={...y0(r,[n,o,a]),width:r.width/a,height:r.height/a},c=[];for(const u of e.values()){const{measured:d,selectable:p=!0,hidden:f=!1}=u;if(l&&!p||f)continue;const g=d.width??u.width??u.initialWidth??null,b=d.height??u.height??u.initialHeight??null,x=m0(s,Bd(u)),w=(g??0)*(b??0),k=i&&x>0;(!u.internals.handleBounds||k||x>=w||u.dragging)&&c.push(u)}return c},tCe=(e,r)=>{const n=new Set;return e.forEach(o=>{n.add(o.id)}),r.filter(o=>n.has(o.source)||n.has(o.target))};function rCe(e,r){const n=new Map,o=r?.nodes?new Set(r.nodes.map(a=>a.id)):null;return e.forEach(a=>{a.measured.width&&a.measured.height&&(r?.includeHiddenNodes||!a.hidden)&&(!o||o.has(a.id))&&n.set(a.id,a)}),n}async function nCe({nodes:e,width:r,height:n,panZoom:o,minZoom:a,maxZoom:i},l){if(e.size===0)return Promise.resolve(!0);const s=rCe(e,l),c=tf(s),u=tu(c,r,n,l?.minZoom??a,l?.maxZoom??i,l?.padding??.1);return await o.setViewport(u,{duration:l?.duration,ease:l?.ease,interpolate:l?.interpolate}),Promise.resolve(!0)}function YF({nodeId:e,nextPosition:r,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:a,onError:i}){const l=n.get(e),s=l.parentId?n.get(l.parentId):void 0,{x:c,y:u}=s?s.internals.positionAbsolute:{x:0,y:0},d=l.origin??o;let p=l.extent||a;if(l.extent==="parent"&&!l.expandParent)if(!s)i?.("005",Ql.error005());else{const g=s.measured.width,b=s.measured.height;g&&b&&(p=[[c,u],[c+g,u+b]])}else s&&af(l.extent)&&(p=[[l.extent[0][0]+c,l.extent[0][1]+u],[l.extent[1][0]+c,l.extent[1][1]+u]]);const f=af(p)?jd(r,p,l.measured):r;return(l.measured.width===void 0||l.measured.height===void 0)&&i?.("015",Ql.error015()),{position:{x:f.x-c+(l.measured.width??0)*d[0],y:f.y-u+(l.measured.height??0)*d[1]},positionAbsolute:f}}async function oCe({nodesToRemove:e=[],edgesToRemove:r=[],nodes:n,edges:o,onBeforeDelete:a}){const i=new Set(e.map(p=>p.id)),l=[];for(const p of n){if(p.deletable===!1)continue;const f=i.has(p.id),g=!f&&p.parentId&&l.find(b=>b.id===p.parentId);(f||g)&&l.push(p)}const s=new Set(r.map(p=>p.id)),c=o.filter(p=>p.deletable!==!1),u=tCe(l,c);for(const p of c)s.has(p.id)&&!u.find(f=>f.id===p.id)&&u.push(p);if(!a)return{edges:u,nodes:l};const d=await a({nodes:l,edges:u});return typeof d=="boolean"?d?{edges:u,nodes:l}:{edges:[],nodes:[]}:d}const rf=(e,r=0,n=1)=>Math.min(Math.max(e,r),n),jd=(e={x:0,y:0},r,n)=>({x:rf(e.x,r[0][0],r[1][0]-(n?.width??0)),y:rf(e.y,r[0][1],r[1][1]-(n?.height??0))});function WF(e,r,n){const{width:o,height:a}=Wn(n),{x:i,y:l}=n.internals.positionAbsolute;return jd(e,[[i,l],[i+o,l+a]],r)}const GF=(e,r,n)=>en?-rf(Math.abs(e-n),1,r)/r:0,XF=(e,r,n=15,o=40)=>{const a=GF(e.x,o,r.width-o)*n,i=GF(e.y,o,r.height-o)*n;return[a,i]},yx=(e,r)=>({x:Math.min(e.x,r.x),y:Math.min(e.y,r.y),x2:Math.max(e.x2,r.x2),y2:Math.max(e.y2,r.y2)}),v8=({x:e,y:r,width:n,height:o})=>({x:e,y:r,x2:e+n,y2:r+o}),f0=({x:e,y:r,x2:n,y2:o})=>({x:e,y:r,width:n-e,height:o-r}),Bd=(e,r=[0,0])=>{const{x:n,y:o}=y8(e)?e.internals.positionAbsolute:h0(e,r);return{x:n,y:o,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},bx=(e,r=[0,0])=>{const{x:n,y:o}=y8(e)?e.internals.positionAbsolute:h0(e,r);return{x:n,y:o,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:o+(e.measured?.height??e.height??e.initialHeight??0)}},vx=(e,r)=>f0(yx(v8(e),v8(r))),m0=(e,r)=>{const n=Math.max(0,Math.min(e.x+e.width,r.x+r.width)-Math.max(e.x,r.x)),o=Math.max(0,Math.min(e.y+e.height,r.y+r.height)-Math.max(e.y,r.y));return Math.ceil(n*o)},KF=e=>Wi(e.width)&&Wi(e.height)&&Wi(e.x)&&Wi(e.y),Wi=e=>!isNaN(e)&&isFinite(e),aCe=(e,r)=>{},g0=(e,r=[1,1])=>({x:r[0]*Math.round(e.x/r[0]),y:r[1]*Math.round(e.y/r[1])}),y0=({x:e,y:r},[n,o,a],i=!1,l=[1,1])=>{const s={x:(e-n)/a,y:(r-o)/a};return i?g0(s,l):s},xx=({x:e,y:r},[n,o,a])=>({x:e*a+n,y:r*a+o});function nf(e,r){if(typeof e=="number")return Math.floor((r-r/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(r*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function iCe(e,r,n){if(typeof e=="string"||typeof e=="number"){const o=nf(e,n),a=nf(e,r);return{top:o,right:a,bottom:o,left:a,x:a*2,y:o*2}}if(typeof e=="object"){const o=nf(e.top??e.y??0,n),a=nf(e.bottom??e.y??0,n),i=nf(e.left??e.x??0,r),l=nf(e.right??e.x??0,r);return{top:o,right:l,bottom:a,left:i,x:i+l,y:o+a}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function lCe(e,r,n,o,a,i){const{x:l,y:s}=xx(e,[r,n,o]),{x:c,y:u}=xx({x:e.x+e.width,y:e.y+e.height},[r,n,o]),d=a-c,p=i-u;return{left:Math.floor(l),top:Math.floor(s),right:Math.floor(d),bottom:Math.floor(p)}}const tu=(e,r,n,o,a,i)=>{const l=iCe(i,r,n),s=(r-l.x)/e.width,c=(n-l.y)/e.height,u=Math.min(s,c),d=rf(u,o,a),p=e.x+e.width/2,f=e.y+e.height/2,g=r/2-p*d,b=n/2-f*d,x=lCe(e,g,b,d,r,n),w={left:Math.min(x.left-l.left,0),top:Math.min(x.top-l.top,0),right:Math.min(x.right-l.right,0),bottom:Math.min(x.bottom-l.bottom,0)};return{x:g-w.left+w.right,y:b-w.top+w.bottom,zoom:d}},of=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function af(e){return e!=null&&e!=="parent"}function Wn(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ZF(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function QF(e,r={width:0,height:0},n,o,a){const i={...e},l=o.get(n);if(l){const s=l.origin||a;i.x+=l.internals.positionAbsolute.x-(r.width??0)*s[0],i.y+=l.internals.positionAbsolute.y-(r.height??0)*s[1]}return i}function JF(e,r){if(e.size!==r.size)return!1;for(const n of e)if(!r.has(n))return!1;return!0}function sCe(){let e,r;return{promise:new Promise((n,o)=>{e=n,r=o}),resolve:e,reject:r}}function cCe(e){return{...BF,...e||{}}}function b0(e,{snapGrid:r=[0,0],snapToGrid:n=!1,transform:o,containerBounds:a}){const{x:i,y:l}=Gi(e),s=y0({x:i-(a?.left??0),y:l-(a?.top??0)},o),{x:c,y:u}=n?g0(s,r):s;return{xSnapped:c,ySnapped:u,...s}}const x8=e=>({width:e.offsetWidth,height:e.offsetHeight}),eH=e=>e?.getRootNode?.()||window?.document,uCe=["INPUT","SELECT","TEXTAREA"];function tH(e){const r=e.composedPath?.()?.[0]||e.target;return r?.nodeType!==1?!1:uCe.includes(r.nodeName)||r.hasAttribute("contenteditable")||!!r.closest(".nokey")}const rH=e=>"clientX"in e,Gi=(e,r)=>{const n=rH(e),o=n?e.clientX:e.touches?.[0].clientX,a=n?e.clientY:e.touches?.[0].clientY;return{x:o-(r?.left??0),y:a-(r?.top??0)}},nH=(e,r,n,o,a)=>{const i=r.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(l=>{const s=l.getBoundingClientRect();return{id:l.getAttribute("data-handleid"),type:e,nodeId:a,position:l.getAttribute("data-handlepos"),x:(s.left-n.left)/o,y:(s.top-n.top)/o,...x8(l)}})};function oH({sourceX:e,sourceY:r,targetX:n,targetY:o,sourceControlX:a,sourceControlY:i,targetControlX:l,targetControlY:s}){const c=e*.125+a*.375+l*.375+n*.125,u=r*.125+i*.375+s*.375+o*.125,d=Math.abs(c-e),p=Math.abs(u-r);return[c,u,d,p]}function wx(e,r){return e>=0?.5*e:r*25*Math.sqrt(-e)}function aH({pos:e,x1:r,y1:n,x2:o,y2:a,c:i}){switch(e){case tt.Left:return[r-wx(r-o,i),n];case tt.Right:return[r+wx(o-r,i),n];case tt.Top:return[r,n-wx(n-a,i)];case tt.Bottom:return[r,n+wx(a-n,i)]}}function kx({sourceX:e,sourceY:r,sourcePosition:n=tt.Bottom,targetX:o,targetY:a,targetPosition:i=tt.Top,curvature:l=.25}){const[s,c]=aH({pos:n,x1:e,y1:r,x2:o,y2:a,c:l}),[u,d]=aH({pos:i,x1:o,y1:a,x2:e,y2:r,c:l}),[p,f,g,b]=oH({sourceX:e,sourceY:r,targetX:o,targetY:a,sourceControlX:s,sourceControlY:c,targetControlX:u,targetControlY:d});return[`M${e},${r} C${s},${c} ${u},${d} ${o},${a}`,p,f,g,b]}function iH({sourceX:e,sourceY:r,targetX:n,targetY:o}){const a=Math.abs(n-e)/2,i=n0}const hCe=({source:e,sourceHandle:r,target:n,targetHandle:o})=>`xy-edge__${e}${r||""}-${n}${o||""}`,fCe=(e,r)=>r.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),mCe=(e,r)=>{if(!e.source||!e.target)return r;let n;return qF(e)?n={...e}:n={...e,id:hCe(e)},fCe(n,r)?r:(n.sourceHandle===null&&delete n.sourceHandle,n.targetHandle===null&&delete n.targetHandle,r.concat(n))};function lH({sourceX:e,sourceY:r,targetX:n,targetY:o}){const[a,i,l,s]=iH({sourceX:e,sourceY:r,targetX:n,targetY:o});return[`M ${e},${r}L ${n},${o}`,a,i,l,s]}const sH={[tt.Left]:{x:-1,y:0},[tt.Right]:{x:1,y:0},[tt.Top]:{x:0,y:-1},[tt.Bottom]:{x:0,y:1}},gCe=({source:e,sourcePosition:r=tt.Bottom,target:n})=>r===tt.Left||r===tt.Right?e.xMath.sqrt(Math.pow(r.x-e.x,2)+Math.pow(r.y-e.y,2));function yCe({source:e,sourcePosition:r=tt.Bottom,target:n,targetPosition:o=tt.Top,center:a,offset:i,stepPosition:l}){const s=sH[r],c=sH[o],u={x:e.x+s.x*i,y:e.y+s.y*i},d={x:n.x+c.x*i,y:n.y+c.y*i},p=gCe({source:u,sourcePosition:r,target:d}),f=p.x!==0?"x":"y",g=p[f];let b=[],x,w;const k={x:0,y:0},C={x:0,y:0},[,,_,T]=iH({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f==="x"?(x=a.x??u.x+(d.x-u.x)*l,w=a.y??(u.y+d.y)/2):(x=a.x??(u.x+d.x)/2,w=a.y??u.y+(d.y-u.y)*l);const R=[{x,y:u.y},{x,y:d.y}],A=[{x:u.x,y:w},{x:d.x,y:w}];s[f]===g?b=f==="x"?R:A:b=f==="x"?A:R}else{const R=[{x:u.x,y:d.y}],A=[{x:d.x,y:u.y}];if(f==="x"?b=s.x===g?A:R:b=s.y===g?R:A,r===o){const B=Math.abs(e[f]-n[f]);if(B<=i){const L=Math.min(i-1,i-B);s[f]===g?k[f]=(u[f]>e[f]?-1:1)*L:C[f]=(d[f]>n[f]?-1:1)*L}}if(r!==o){const B=f==="x"?"y":"x",L=s[f]===c[B],Y=u[B]>d[B],M=u[B]=O?(x=(D.x+N.x)/2,w=b[0].y):(x=b[0].x,w=(D.y+N.y)/2)}return[[e,{x:u.x+k.x,y:u.y+k.y},...b,{x:d.x+C.x,y:d.y+C.y},n],x,w,_,T]}function bCe(e,r,n,o){const a=Math.min(cH(e,r)/2,cH(r,n)/2,o),{x:i,y:l}=r;if(e.x===i&&i===n.x||e.y===l&&l===n.y)return`L${i} ${l}`;if(e.y===l){const u=e.x{let _="";return C>0&&Cn.id===r):e[0])||null}function w8(e,r){return e?typeof e=="string"?e:`${r?`${r}__`:""}${Object.keys(e).sort().map(n=>`${n}=${e[n]}`).join("&")}`:""}function vCe(e,{id:r,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:a}){const i=new Set;return e.reduce((l,s)=>([s.markerStart||o,s.markerEnd||a].forEach(c=>{if(c&&typeof c=="object"){const u=w8(c,r);i.has(u)||(l.push({id:u,color:c.color||n,...c}),i.add(u))}}),l),[]).sort((l,s)=>l.id.localeCompare(s.id))}function xCe(e,r,n,o,a){let i=.5;a==="start"?i=0:a==="end"&&(i=1);let l=[(e.x+e.width*i)*r.zoom+r.x,e.y*r.zoom+r.y-o],s=[-100*i,-100];switch(n){case tt.Right:l=[(e.x+e.width)*r.zoom+r.x+o,(e.y+e.height*i)*r.zoom+r.y],s=[0,-100*i];break;case tt.Bottom:l[1]=(e.y+e.height)*r.zoom+r.y+o,s[1]=0;break;case tt.Left:l=[e.x*r.zoom+r.x-o,(e.y+e.height*i)*r.zoom+r.y],s=[-100,-100*i];break}return`translate(${l[0]}px, ${l[1]}px) translate(${s[0]}%, ${s[1]}%)`}const k8={nodeOrigin:[0,0],nodeExtent:d0,elevateNodesOnSelect:!0,defaults:{}},wCe={...k8,checkEquality:!0};function _8(e,r){const n={...e};for(const o in r)r[o]!==void 0&&(n[o]=r[o]);return n}function kCe(e,r,n){const o=_8(k8,n);for(const a of e.values())if(a.parentId)S8(a,e,r,o);else{const i=h0(a,o.nodeOrigin),l=af(a.extent)?a.extent:o.nodeExtent,s=jd(i,l,Wn(a));a.internals.positionAbsolute=s}}function _Ce(e,r){if(!e.handles)return e.measured?r?.internals.handleBounds:void 0;const n=[],o=[];for(const a of e.handles){const i={id:a.id,width:a.width??1,height:a.height??1,nodeId:e.id,x:a.x,y:a.y,position:a.position,type:a.type};a.type==="source"?n.push(i):a.type==="target"&&o.push(i)}return{source:n,target:o}}function E8(e,r,n,o){const a=_8(wCe,o);let i=e.length>0;const l=new Map(r),s=a?.elevateNodesOnSelect?1e3:0;r.clear(),n.clear();for(const c of e){let u=l.get(c.id);if(a.checkEquality&&c===u?.internals.userNode)r.set(c.id,u);else{const d=h0(c,a.nodeOrigin),p=af(c.extent)?c.extent:a.nodeExtent,f=jd(d,p,Wn(c));u={...a.defaults,...c,measured:{width:c.measured?.width,height:c.measured?.height},internals:{positionAbsolute:f,handleBounds:_Ce(c,u),z:fH(c,s),userNode:c}},r.set(c.id,u)}(u.measured===void 0||u.measured.width===void 0||u.measured.height===void 0)&&!u.hidden&&(i=!1),c.parentId&&S8(u,r,n,o)}return i}function ECe(e,r){if(!e.parentId)return;const n=r.get(e.parentId);n?n.set(e.id,e):r.set(e.parentId,new Map([[e.id,e]]))}function S8(e,r,n,o){const{elevateNodesOnSelect:a,nodeOrigin:i,nodeExtent:l}=_8(k8,o),s=e.parentId,c=r.get(s);if(!c){console.warn(`Parent node ${s} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}ECe(e,n);const u=a?1e3:0,{x:d,y:p,z:f}=SCe(e,c,i,l,u),{positionAbsolute:g}=e.internals,b=d!==g.x||p!==g.y;(b||f!==e.internals.z)&&r.set(e.id,{...e,internals:{...e.internals,positionAbsolute:b?{x:d,y:p}:g,z:f}})}function fH(e,r){return(Wi(e.zIndex)?e.zIndex:0)+(e.selected?r:0)}function SCe(e,r,n,o,a){const{x:i,y:l}=r.internals.positionAbsolute,s=Wn(e),c=h0(e,n),u=af(e.extent)?jd(c,e.extent,s):c;let d=jd({x:i+u.x,y:l+u.y},o,s);e.extent==="parent"&&(d=WF(d,s,r));const p=fH(e,a),f=r.internals.z??0;return{x:d.x,y:d.y,z:f>=p?f+1:p}}function C8(e,r,n,o=[0,0]){const a=[],i=new Map;for(const l of e){const s=r.get(l.parentId);if(!s)continue;const c=i.get(l.parentId)?.expandedRect??Bd(s),u=vx(c,l.rect);i.set(l.parentId,{expandedRect:u,parent:s})}return i.size>0&&i.forEach(({expandedRect:l,parent:s},c)=>{const u=s.internals.positionAbsolute,d=Wn(s),p=s.origin??o,f=l.x0||g>0||w||k)&&(a.push({id:c,type:"position",position:{x:s.position.x-f+w,y:s.position.y-g+k}}),n.get(c)?.forEach(C=>{e.some(_=>_.id===C.id)||a.push({id:C.id,type:"position",position:{x:C.position.x+f,y:C.position.y+g}})})),(d.width0){const f=C8(p,r,n,a);c.push(...f)}return{changes:c,updatedInternals:s}}async function TCe({delta:e,panZoom:r,transform:n,translateExtent:o,width:a,height:i}){if(!r||!e.x&&!e.y)return Promise.resolve(!1);const l=await r.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[a,i]],o),s=!!l&&(l.x!==n[0]||l.y!==n[1]||l.k!==n[2]);return Promise.resolve(s)}function mH(e,r,n,o,a,i){let l=a;const s=o.get(l)||new Map;o.set(l,s.set(n,r)),l=`${a}-${e}`;const c=o.get(l)||new Map;if(o.set(l,c.set(n,r)),i){l=`${a}-${e}-${i}`;const u=o.get(l)||new Map;o.set(l,u.set(n,r))}}function gH(e,r,n){e.clear(),r.clear();for(const o of n){const{source:a,target:i,sourceHandle:l=null,targetHandle:s=null}=o,c={edgeId:o.id,source:a,target:i,sourceHandle:l,targetHandle:s},u=`${a}-${l}--${i}-${s}`,d=`${i}-${s}--${a}-${l}`;mH("source",c,d,e,a,l),mH("target",c,u,e,i,s),r.set(o.id,o)}}function yH(e,r){if(!e.parentId)return!1;const n=r.get(e.parentId);return n?n.selected?!0:yH(n,r):!1}function bH(e,r,n){let o=e;do{if(o?.matches?.(r))return!0;if(o===n)return!1;o=o?.parentElement}while(o);return!1}function RCe(e,r,n,o){const a=new Map;for(const[i,l]of e)if((l.selected||l.id===o)&&(!l.parentId||!yH(l,e))&&(l.draggable||r&&typeof l.draggable>"u")){const s=e.get(i);s&&a.set(i,{id:i,position:s.position||{x:0,y:0},distance:{x:n.x-s.internals.positionAbsolute.x,y:n.y-s.internals.positionAbsolute.y},extent:s.extent,parentId:s.parentId,origin:s.origin,expandParent:s.expandParent,internals:{positionAbsolute:s.internals.positionAbsolute||{x:0,y:0}},measured:{width:s.measured.width??0,height:s.measured.height??0}})}return a}function T8({nodeId:e,dragItems:r,nodeLookup:n,dragging:o=!0}){const a=[];for(const[l,s]of r){const c=n.get(l)?.internals.userNode;c&&a.push({...c,position:s.position,dragging:o})}if(!e)return[a[0],a];const i=n.get(e)?.internals.userNode;return[i?{...i,position:r.get(e)?.position||i.position,dragging:o}:a[0],a]}function ACe({dragItems:e,snapGrid:r,x:n,y:o}){const a=e.values().next().value;if(!a)return null;const i={x:n-a.distance.x,y:o-a.distance.y},l=g0(i,r);return{x:l.x-i.x,y:l.y-i.y}}function NCe({onNodeMouseDown:e,getStoreItems:r,onDragStart:n,onDrag:o,onDragStop:a}){let i={x:null,y:null},l=0,s=new Map,c=!1,u={x:0,y:0},d=null,p=!1,f=null,g=!1,b=!1,x=null;function w({noDragClassName:C,handleSelector:_,domNode:T,isSelectable:R,nodeId:A,nodeClickDistance:D=0}){f=Ea(T);function N({x:L,y:Y}){const{nodeLookup:M,nodeExtent:q,snapGrid:I,snapToGrid:U,nodeOrigin:V,onNodeDrag:G,onSelectionDrag:F,onError:J,updateNodePositions:Q}=r();i={x:L,y:Y};let z=!1;const W=s.size>1,X=W&&q?v8(tf(s)):null,Z=W&&U?ACe({dragItems:s,snapGrid:I,x:L,y:Y}):null;for(const[oe,ee]of s){if(!M.has(oe))continue;let re={x:L-ee.distance.x,y:Y-ee.distance.y};U&&(re=Z?{x:Math.round(re.x+Z.x),y:Math.round(re.y+Z.y)}:g0(re,I));let pe=null;if(W&&q&&!ee.extent&&X){const{positionAbsolute:de}=ee.internals,be=de.x-X.x+q[0][0],Me=de.x+ee.measured.width-X.x2+q[1][0],Xe=de.y-X.y+q[0][1],Ge=de.y+ee.measured.height-X.y2+q[1][1];pe=[[be,Xe],[Me,Ge]]}const{position:Ce,positionAbsolute:ce}=YF({nodeId:oe,nextPosition:re,nodeLookup:M,nodeExtent:pe||q,nodeOrigin:V,onError:J});z=z||ee.position.x!==Ce.x||ee.position.y!==Ce.y,ee.position=Ce,ee.internals.positionAbsolute=ce}if(b=b||z,!!z&&(Q(s,!0),x&&(o||G||!A&&F))){const[oe,ee]=T8({nodeId:A,dragItems:s,nodeLookup:M});o?.(x,s,oe,ee),G?.(x,oe,ee),A||F?.(x,ee)}}async function P(){if(!d)return;const{transform:L,panBy:Y,autoPanSpeed:M,autoPanOnNodeDrag:q}=r();if(!q){c=!1,cancelAnimationFrame(l);return}const[I,U]=XF(u,d,M);(I!==0||U!==0)&&(i.x=(i.x??0)-I/L[2],i.y=(i.y??0)-U/L[2],await Y({x:I,y:U})&&N(i)),l=requestAnimationFrame(P)}function O(L){const{nodeLookup:Y,multiSelectionActive:M,nodesDraggable:q,transform:I,snapGrid:U,snapToGrid:V,selectNodesOnDrag:G,onNodeDragStart:F,onSelectionDragStart:J,unselectNodesAndEdges:Q}=r();p=!0,(!G||!R)&&!M&&A&&(Y.get(A)?.selected||Q()),R&&G&&A&&e?.(A);const z=b0(L.sourceEvent,{transform:I,snapGrid:U,snapToGrid:V,containerBounds:d});if(i=z,s=RCe(Y,q,z,A),s.size>0&&(n||F||!A&&J)){const[W,X]=T8({nodeId:A,dragItems:s,nodeLookup:Y});n?.(L.sourceEvent,s,W,X),F?.(L.sourceEvent,W,X),A||J?.(L.sourceEvent,X)}}const B=lF().clickDistance(D).on("start",L=>{const{domNode:Y,nodeDragThreshold:M,transform:q,snapGrid:I,snapToGrid:U}=r();d=Y?.getBoundingClientRect()||null,g=!1,b=!1,x=L.sourceEvent,M===0&&O(L),i=b0(L.sourceEvent,{transform:q,snapGrid:I,snapToGrid:U,containerBounds:d}),u=Gi(L.sourceEvent,d)}).on("drag",L=>{const{autoPanOnNodeDrag:Y,transform:M,snapGrid:q,snapToGrid:I,nodeDragThreshold:U,nodeLookup:V}=r(),G=b0(L.sourceEvent,{transform:M,snapGrid:q,snapToGrid:I,containerBounds:d});if(x=L.sourceEvent,(L.sourceEvent.type==="touchmove"&&L.sourceEvent.touches.length>1||A&&!V.has(A))&&(g=!0),!g){if(!c&&Y&&p&&(c=!0,P()),!p){const F=Gi(L.sourceEvent,d),J=F.x-u.x,Q=F.y-u.y;Math.sqrt(J*J+Q*Q)>U&&O(L)}(i.x!==G.xSnapped||i.y!==G.ySnapped)&&s&&p&&(u=Gi(L.sourceEvent,d),N(G))}}).on("end",L=>{if(!(!p||g)&&(c=!1,p=!1,cancelAnimationFrame(l),s.size>0)){const{nodeLookup:Y,updateNodePositions:M,onNodeDragStop:q,onSelectionDragStop:I}=r();if(b&&(M(s,!1),b=!1),a||q||!A&&I){const[U,V]=T8({nodeId:A,dragItems:s,nodeLookup:Y,dragging:!1});a?.(L.sourceEvent,s,U,V),q?.(L.sourceEvent,U,V),A||I?.(L.sourceEvent,V)}}}).filter(L=>{const Y=L.target;return!L.button&&(!C||!bH(Y,`.${C}`,T))&&(!_||bH(Y,_,T))});f.call(B)}function k(){f?.on(".drag",null)}return{update:w,destroy:k}}function DCe(e,r,n){const o=[],a={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of r.values())m0(a,Bd(i))>0&&o.push(i);return o}const $Ce=250;function PCe(e,r,n,o){let a=[],i=1/0;const l=DCe(e,n,r+$Ce);for(const s of l){const c=[...s.internals.handleBounds?.source??[],...s.internals.handleBounds?.target??[]];for(const u of c){if(o.nodeId===u.nodeId&&o.type===u.type&&o.id===u.id)continue;const{x:d,y:p}=v0(s,u,u.position,!0),f=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(p-e.y,2));f>r||(f1){const s=o.type==="source"?"target":"source";return a.find(c=>c.type===s)??a[0]}return a[0]}function vH(e,r,n,o,a,i=!1){const l=o.get(e);if(!l)return null;const s=a==="strict"?l.internals.handleBounds?.[r]:[...l.internals.handleBounds?.source??[],...l.internals.handleBounds?.target??[]],c=(n?s?.find(u=>u.id===n):s?.[0])??null;return c&&i?{...c,...v0(l,c,c.position,!0)}:c}function xH(e,r){return e||(r?.classList.contains("target")?"target":r?.classList.contains("source")?"source":null)}function OCe(e,r){let n=null;return r?n=!0:e&&!r&&(n=!1),n}const wH=()=>!0;function MCe(e,{connectionMode:r,connectionRadius:n,handleId:o,nodeId:a,edgeUpdaterType:i,isTarget:l,domNode:s,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:p,panBy:f,cancelConnection:g,onConnectStart:b,onConnect:x,onConnectEnd:w,isValidConnection:k=wH,onReconnectEnd:C,updateConnection:_,getTransform:T,getFromHandle:R,autoPanSpeed:A,dragThreshold:D=1,handleDomNode:N}){const P=eH(e.target);let O=0,B;const{x:L,y:Y}=Gi(e),M=xH(i,N),q=s?.getBoundingClientRect();let I=!1;if(!q||!M)return;const U=vH(a,M,o,c,r);if(!U)return;let V=Gi(e,q),G=!1,F=null,J=!1,Q=null;function z(){if(!d||!q)return;const[pe,Ce]=XF(V,q,A);f({x:pe,y:Ce}),O=requestAnimationFrame(z)}const W={...U,nodeId:a,type:M,position:U.position},X=c.get(a);let Z={inProgress:!0,isValid:null,from:v0(X,W,tt.Left,!0),fromHandle:W,fromPosition:W.position,fromNode:X,to:V,toHandle:null,toPosition:HF[W.position],toNode:null};function oe(){I=!0,_(Z),b?.(e,{nodeId:a,handleId:o,handleType:M})}D===0&&oe();function ee(pe){if(!I){const{x:be,y:Me}=Gi(pe),Xe=be-L,Ge=Me-Y;if(!(Xe*Xe+Ge*Ge>D*D))return;oe()}if(!R()||!W){re(pe);return}const Ce=T();V=Gi(pe,q),B=PCe(y0(V,Ce,!1,[1,1]),n,c,W),G||(z(),G=!0);const ce=kH(pe,{handle:B,connectionMode:r,fromNodeId:a,fromHandleId:o,fromType:l?"target":"source",isValidConnection:k,doc:P,lib:u,flowId:p,nodeLookup:c});Q=ce.handleDomNode,F=ce.connection,J=OCe(!!B,ce.isValid);const de={...Z,isValid:J,to:ce.toHandle&&J?xx({x:ce.toHandle.x,y:ce.toHandle.y},Ce):V,toHandle:ce.toHandle,toPosition:J&&ce.toHandle?ce.toHandle.position:HF[W.position],toNode:ce.toHandle?c.get(ce.toHandle.nodeId):null};J&&B&&Z.toHandle&&de.toHandle&&Z.toHandle.type===de.toHandle.type&&Z.toHandle.nodeId===de.toHandle.nodeId&&Z.toHandle.id===de.toHandle.id&&Z.to.x===de.to.x&&Z.to.y===de.to.y||(_(de),Z=de)}function re(pe){if(!("touches"in pe&&pe.touches.length>0)){if(I){(B||Q)&&F&&J&&x?.(F);const{inProgress:Ce,...ce}=Z,de={...ce,toPosition:Z.toHandle?Z.toPosition:null};w?.(pe,de),i&&C?.(pe,de)}g(),cancelAnimationFrame(O),G=!1,J=!1,F=null,Q=null,P.removeEventListener("mousemove",ee),P.removeEventListener("mouseup",re),P.removeEventListener("touchmove",ee),P.removeEventListener("touchend",re)}}P.addEventListener("mousemove",ee),P.addEventListener("mouseup",re),P.addEventListener("touchmove",ee),P.addEventListener("touchend",re)}function kH(e,{handle:r,connectionMode:n,fromNodeId:o,fromHandleId:a,fromType:i,doc:l,lib:s,flowId:c,isValidConnection:u=wH,nodeLookup:d}){const p=i==="target",f=r?l.querySelector(`.${s}-flow__handle[data-id="${c}-${r?.nodeId}-${r?.id}-${r?.type}"]`):null,{x:g,y:b}=Gi(e),x=l.elementFromPoint(g,b),w=x?.classList.contains(`${s}-flow__handle`)?x:f,k={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const C=xH(void 0,w),_=w.getAttribute("data-nodeid"),T=w.getAttribute("data-handleid"),R=w.classList.contains("connectable"),A=w.classList.contains("connectableend");if(!_||!C)return k;const D={source:p?_:o,sourceHandle:p?T:a,target:p?o:_,targetHandle:p?a:T};k.connection=D;const N=R&&A&&(n===ef.Strict?p&&C==="source"||!p&&C==="target":_!==o||T!==a);k.isValid=N&&u(D),k.toHandle=vH(_,C,T,d,n,!0)}return k}const R8={onPointerDown:MCe,isValid:kH};function ICe({domNode:e,panZoom:r,getTransform:n,getViewScale:o}){const a=Ea(e);function i({translateExtent:s,width:c,height:u,zoomStep:d=1,pannable:p=!0,zoomable:f=!0,inversePan:g=!1}){const b=_=>{if(_.sourceEvent.type!=="wheel"||!r)return;const T=n(),R=_.sourceEvent.ctrlKey&&of()?10:1,A=-_.sourceEvent.deltaY*(_.sourceEvent.deltaMode===1?.05:_.sourceEvent.deltaMode?1:.002)*d,D=T[2]*Math.pow(2,A*R);r.scaleTo(D)};let x=[0,0];const w=_=>{(_.sourceEvent.type==="mousedown"||_.sourceEvent.type==="touchstart")&&(x=[_.sourceEvent.clientX??_.sourceEvent.touches[0].clientX,_.sourceEvent.clientY??_.sourceEvent.touches[0].clientY])},k=_=>{const T=n();if(_.sourceEvent.type!=="mousemove"&&_.sourceEvent.type!=="touchmove"||!r)return;const R=[_.sourceEvent.clientX??_.sourceEvent.touches[0].clientX,_.sourceEvent.clientY??_.sourceEvent.touches[0].clientY],A=[R[0]-x[0],R[1]-x[1]];x=R;const D=o()*Math.max(T[2],Math.log(T[2]))*(g?-1:1),N={x:T[0]-A[0]*D,y:T[1]-A[1]*D},P=[[0,0],[c,u]];r.setViewportConstrained({x:N.x,y:N.y,zoom:T[2]},P,s)},C=zF().on("start",w).on("zoom",p?k:null).on("zoom.wheel",f?b:null);a.call(C,{})}function l(){a.on("zoom",null)}return{update:i,destroy:l,pointer:qi}}const LCe=(e,r)=>e.x!==r.x||e.y!==r.y||e.zoom!==r.k,Ex=e=>({x:e.x,y:e.y,zoom:e.k}),A8=({x:e,y:r,zoom:n})=>mx.translate(e,r).scale(n),lf=(e,r)=>e.target.closest(`.${r}`),_H=(e,r)=>r===2&&Array.isArray(e)&&e.includes(2),zCe=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,N8=(e,r=0,n=zCe,o=()=>{})=>{const a=typeof r=="number"&&r>0;return a||o(),a?e.transition().duration(r).ease(n).on("end",o):e},EH=e=>{const r=e.ctrlKey&&of()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*r};function jCe({zoomPanValues:e,noWheelClassName:r,d3Selection:n,d3Zoom:o,panOnScrollMode:a,panOnScrollSpeed:i,zoomOnPinch:l,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(lf(d,r))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const p=n.property("__zoom").k||1;if(d.ctrlKey&&l){const w=qi(d),k=EH(d),C=p*Math.pow(2,k);o.scaleTo(n,C,w,d);return}const f=d.deltaMode===1?20:1;let g=a===zd.Vertical?0:d.deltaX*f,b=a===zd.Horizontal?0:d.deltaY*f;!of()&&d.shiftKey&&a!==zd.Vertical&&(g=d.deltaY*f,b=0),o.translateBy(n,-(g/p)*i,-(b/p)*i,{internal:!0});const x=Ex(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling||(e.isPanScrolling=!0,s?.(d,x)),e.isPanScrolling&&(c?.(d,x),e.panScrollTimeout=setTimeout(()=>{u?.(d,x),e.isPanScrolling=!1},150))}}function BCe({noWheelClassName:e,preventScrolling:r,d3ZoomHandler:n}){return function(o,a){const i=o.type==="wheel",l=!r&&i&&!o.ctrlKey,s=lf(o,e);if(o.ctrlKey&&i&&s&&o.preventDefault(),l||s)return null;o.preventDefault(),n.call(this,o,a)}}function FCe({zoomPanValues:e,onDraggingChange:r,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const a=Ex(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=a,o.sourceEvent?.type==="mousedown"&&r(!0),n&&n?.(o.sourceEvent,a)}}function HCe({zoomPanValues:e,panOnDrag:r,onPaneContextMenu:n,onTransformChange:o,onPanZoom:a}){return i=>{e.usedRightMouseButton=!!(n&&_H(r,e.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),a&&!i.sourceEvent?.internal&&a?.(i.sourceEvent,Ex(i.transform))}}function UCe({zoomPanValues:e,panOnDrag:r,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:a,onPaneContextMenu:i}){return l=>{if(!l.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,i&&_H(r,e.mouseButton??0)&&!e.usedRightMouseButton&&l.sourceEvent&&i(l.sourceEvent),e.usedRightMouseButton=!1,o(!1),a&&LCe(e.prevViewport,l.transform))){const s=Ex(l.transform);e.prevViewport=s,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{a?.(l.sourceEvent,s)},n?150:0)}}}function qCe({zoomActivationKeyPressed:e,zoomOnScroll:r,zoomOnPinch:n,panOnDrag:o,panOnScroll:a,zoomOnDoubleClick:i,userSelectionActive:l,noWheelClassName:s,noPanClassName:c,lib:u,connectionInProgress:d}){return p=>{const f=e||r,g=n&&p.ctrlKey,b=p.type==="wheel";if(p.button===1&&p.type==="mousedown"&&(lf(p,`${u}-flow__node`)||lf(p,`${u}-flow__edge`)))return!0;if(!o&&!f&&!a&&!i&&!n||l||d&&!b||lf(p,s)&&b||lf(p,c)&&(!b||a&&b&&!e)||!n&&p.ctrlKey&&b)return!1;if(!n&&p.type==="touchstart"&&p.touches?.length>1)return p.preventDefault(),!1;if(!f&&!a&&!g&&b||!o&&(p.type==="mousedown"||p.type==="touchstart")||Array.isArray(o)&&!o.includes(p.button)&&p.type==="mousedown")return!1;const x=Array.isArray(o)&&o.includes(p.button)||!p.button||p.button<=1;return(!p.ctrlKey||b)&&x}}function VCe({domNode:e,minZoom:r,maxZoom:n,paneClickDistance:o,translateExtent:a,viewport:i,onPanZoom:l,onPanZoomStart:s,onPanZoomEnd:c,onDraggingChange:u}){const d={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},p=e.getBoundingClientRect(),f=zF().clickDistance(!Wi(o)||o<0?0:o).scaleExtent([r,n]).translateExtent(a),g=Ea(e).call(f);_({x:i.x,y:i.y,zoom:rf(i.zoom,r,n)},[[0,0],[p.width,p.height]],a);const b=g.on("wheel.zoom"),x=g.on("dblclick.zoom");f.wheelDelta(EH);function w(L,Y){return g?new Promise(M=>{f?.interpolate(Y?.interpolate==="linear"?a0:ax).transform(N8(g,Y?.duration,Y?.ease,()=>M(!0)),L)}):Promise.resolve(!1)}function k({noWheelClassName:L,noPanClassName:Y,onPaneContextMenu:M,userSelectionActive:q,panOnScroll:I,panOnDrag:U,panOnScrollMode:V,panOnScrollSpeed:G,preventScrolling:F,zoomOnPinch:J,zoomOnScroll:Q,zoomOnDoubleClick:z,zoomActivationKeyPressed:W,lib:X,onTransformChange:Z,connectionInProgress:oe}){q&&!d.isZoomingOrPanning&&C();const ee=I&&!W&&!q?jCe({zoomPanValues:d,noWheelClassName:L,d3Selection:g,d3Zoom:f,panOnScrollMode:V,panOnScrollSpeed:G,zoomOnPinch:J,onPanZoomStart:s,onPanZoom:l,onPanZoomEnd:c}):BCe({noWheelClassName:L,preventScrolling:F,d3ZoomHandler:b});if(g.on("wheel.zoom",ee,{passive:!1}),!q){const pe=FCe({zoomPanValues:d,onDraggingChange:u,onPanZoomStart:s});f.on("start",pe);const Ce=HCe({zoomPanValues:d,panOnDrag:U,onPaneContextMenu:!!M,onPanZoom:l,onTransformChange:Z});f.on("zoom",Ce);const ce=UCe({zoomPanValues:d,panOnDrag:U,panOnScroll:I,onPaneContextMenu:M,onPanZoomEnd:c,onDraggingChange:u});f.on("end",ce)}const re=qCe({zoomActivationKeyPressed:W,panOnDrag:U,zoomOnScroll:Q,panOnScroll:I,zoomOnDoubleClick:z,zoomOnPinch:J,userSelectionActive:q,noPanClassName:Y,noWheelClassName:L,lib:X,connectionInProgress:oe});f.filter(re),z?g.on("dblclick.zoom",x):g.on("dblclick.zoom",null)}function C(){f.on("zoom",null)}async function _(L,Y,M){const q=A8(L),I=f?.constrain()(q,Y,M);return I&&await w(I),new Promise(U=>U(I))}async function T(L,Y){const M=A8(L);return await w(M,Y),new Promise(q=>q(M))}function R(L){if(g){const Y=A8(L),M=g.property("__zoom");(M.k!==L.zoom||M.x!==L.x||M.y!==L.y)&&f?.transform(g,Y,null,{sync:!0})}}function A(){const L=g?IF(g.node()):{x:0,y:0,k:1};return{x:L.x,y:L.y,zoom:L.k}}function D(L,Y){return g?new Promise(M=>{f?.interpolate(Y?.interpolate==="linear"?a0:ax).scaleTo(N8(g,Y?.duration,Y?.ease,()=>M(!0)),L)}):Promise.resolve(!1)}function N(L,Y){return g?new Promise(M=>{f?.interpolate(Y?.interpolate==="linear"?a0:ax).scaleBy(N8(g,Y?.duration,Y?.ease,()=>M(!0)),L)}):Promise.resolve(!1)}function P(L){f?.scaleExtent(L)}function O(L){f?.translateExtent(L)}function B(L){const Y=!Wi(L)||L<0?0:L;f?.clickDistance(Y)}return{update:k,destroy:C,setViewport:T,setViewportConstrained:_,getViewport:A,scaleTo:D,scaleBy:N,setScaleExtent:P,setTranslateExtent:O,syncViewport:R,setClickDistance:B}}var sf;(function(e){e.Line="line",e.Handle="handle"})(sf||(sf={}));function YCe({width:e,prevWidth:r,height:n,prevHeight:o,affectsX:a,affectsY:i}){const l=e-r,s=n-o,c=[l>0?1:l<0?-1:0,s>0?1:s<0?-1:0];return l&&a&&(c[0]=c[0]*-1),s&&i&&(c[1]=c[1]*-1),c}function WCe(e){const r=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),o=e.includes("left"),a=e.includes("top");return{isHorizontal:r,isVertical:n,affectsX:o,affectsY:a}}function ru(e,r){return Math.max(0,r-e)}function nu(e,r){return Math.max(0,e-r)}function Sx(e,r,n){return Math.max(0,r-e,e-n)}function SH(e,r){return e?!r:r}function GCe(e,r,n,o,a,i,l,s){let{affectsX:c,affectsY:u}=r;const{isHorizontal:d,isVertical:p}=r,f=d&&p,{xSnapped:g,ySnapped:b}=n,{minWidth:x,maxWidth:w,minHeight:k,maxHeight:C}=o,{x:_,y:T,width:R,height:A,aspectRatio:D}=e;let N=Math.floor(d?g-e.pointerX:0),P=Math.floor(p?b-e.pointerY:0);const O=R+(c?-N:N),B=A+(u?-P:P),L=-i[0]*R,Y=-i[1]*A;let M=Sx(O,x,w),q=Sx(B,k,C);if(l){let V=0,G=0;c&&N<0?V=ru(_+N+L,l[0][0]):!c&&N>0&&(V=nu(_+O+L,l[1][0])),u&&P<0?G=ru(T+P+Y,l[0][1]):!u&&P>0&&(G=nu(T+B+Y,l[1][1])),M=Math.max(M,V),q=Math.max(q,G)}if(s){let V=0,G=0;c&&N>0?V=nu(_+N,s[0][0]):!c&&N<0&&(V=ru(_+O,s[1][0])),u&&P>0?G=nu(T+P,s[0][1]):!u&&P<0&&(G=ru(T+B,s[1][1])),M=Math.max(M,V),q=Math.max(q,G)}if(a){if(d){const V=Sx(O/D,k,C)*D;if(M=Math.max(M,V),l){let G=0;!c&&!u||c&&!u&&f?G=nu(T+Y+O/D,l[1][1])*D:G=ru(T+Y+(c?N:-N)/D,l[0][1])*D,M=Math.max(M,G)}if(s){let G=0;!c&&!u||c&&!u&&f?G=ru(T+O/D,s[1][1])*D:G=nu(T+(c?N:-N)/D,s[0][1])*D,M=Math.max(M,G)}}if(p){const V=Sx(B*D,x,w)/D;if(q=Math.max(q,V),l){let G=0;!c&&!u||u&&!c&&f?G=nu(_+B*D+L,l[1][0])/D:G=ru(_+(u?P:-P)*D+L,l[0][0])/D,q=Math.max(q,G)}if(s){let G=0;!c&&!u||u&&!c&&f?G=ru(_+B*D,s[1][0])/D:G=nu(_+(u?P:-P)*D,s[0][0])/D,q=Math.max(q,G)}}}P=P+(P<0?q:-q),N=N+(N<0?M:-M),a&&(f?O>B*D?P=(SH(c,u)?-N:N)/D:N=(SH(c,u)?-P:P)*D:d?(P=N/D,u=c):(N=P*D,c=u));const I=c?_+N:_,U=u?T+P:T;return{width:R+(c?-N:N),height:A+(u?-P:P),x:i[0]*N*(c?-1:1)+I,y:i[1]*P*(u?-1:1)+U}}const CH={width:0,height:0,x:0,y:0},XCe={...CH,pointerX:0,pointerY:0,aspectRatio:1};function KCe(e){return[[0,0],[e.measured.width,e.measured.height]]}function ZCe(e,r,n){const o=r.position.x+e.position.x,a=r.position.y+e.position.y,i=e.measured.width??0,l=e.measured.height??0,s=n[0]*i,c=n[1]*l;return[[o-s,a-c],[o+i-s,a+l-c]]}function QCe({domNode:e,nodeId:r,getStoreItems:n,onChange:o,onEnd:a}){const i=Ea(e);function l({controlPosition:c,boundaries:u,keepAspectRatio:d,resizeDirection:p,onResizeStart:f,onResize:g,onResizeEnd:b,shouldResize:x}){let w={...CH},k={...XCe};const C=WCe(c);let _,T=null,R=[],A,D,N,P=!1;const O=lF().on("start",B=>{const{nodeLookup:L,transform:Y,snapGrid:M,snapToGrid:q,nodeOrigin:I,paneDomNode:U}=n();if(_=L.get(r),!_)return;T=U?.getBoundingClientRect()??null;const{xSnapped:V,ySnapped:G}=b0(B.sourceEvent,{transform:Y,snapGrid:M,snapToGrid:q,containerBounds:T});w={width:_.measured.width??0,height:_.measured.height??0,x:_.position.x??0,y:_.position.y??0},k={...w,pointerX:V,pointerY:G,aspectRatio:w.width/w.height},A=void 0,_.parentId&&(_.extent==="parent"||_.expandParent)&&(A=L.get(_.parentId),D=A&&_.extent==="parent"?KCe(A):void 0),R=[],N=void 0;for(const[F,J]of L)if(J.parentId===r&&(R.push({id:F,position:{...J.position},extent:J.extent}),J.extent==="parent"||J.expandParent)){const Q=ZCe(J,_,J.origin??I);N?N=[[Math.min(Q[0][0],N[0][0]),Math.min(Q[0][1],N[0][1])],[Math.max(Q[1][0],N[1][0]),Math.max(Q[1][1],N[1][1])]]:N=Q}f?.(B,{...w})}).on("drag",B=>{const{transform:L,snapGrid:Y,snapToGrid:M,nodeOrigin:q}=n(),I=b0(B.sourceEvent,{transform:L,snapGrid:Y,snapToGrid:M,containerBounds:T}),U=[];if(!_)return;const{x:V,y:G,width:F,height:J}=w,Q={},z=_.origin??q,{width:W,height:X,x:Z,y:oe}=GCe(k,C,I,u,d,z,D,N),ee=W!==F,re=X!==J,pe=Z!==V&&ee,Ce=oe!==G&&re;if(!pe&&!Ce&&!ee&&!re)return;if((pe||Ce||z[0]===1||z[1]===1)&&(Q.x=pe?Z:w.x,Q.y=Ce?oe:w.y,w.x=Q.x,w.y=Q.y,R.length>0)){const be=Z-V,Me=oe-G;for(const Xe of R)Xe.position={x:Xe.position.x-be+z[0]*(W-F),y:Xe.position.y-Me+z[1]*(X-J)},U.push(Xe)}if((ee||re)&&(Q.width=ee&&(!p||p==="horizontal")?W:w.width,Q.height=re&&(!p||p==="vertical")?X:w.height,w.width=Q.width,w.height=Q.height),A&&_.expandParent){const be=z[0]*(Q.width??0);Q.x&&Q.x{P&&(b?.(B,{...w}),a?.({...w}),P=!1)});i.call(O)}function s(){i.on(".drag",null)}return{update:l,destroy:s}}function D8(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var TH={exports:{}},$8={},RH={exports:{}},P8={};/** + * @license React + * use-sync-external-store-shim.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var AH;function JCe(){if(AH)return P8;AH=1;var e=Xr;function r(p,f){return p===f&&(p!==0||1/p===1/f)||p!==p&&f!==f}var n=typeof Object.is=="function"?Object.is:r,o=e.useState,a=e.useEffect,i=e.useLayoutEffect,l=e.useDebugValue;function s(p,f){var g=f(),b=o({inst:{value:g,getSnapshot:f}}),x=b[0].inst,w=b[1];return i(function(){x.value=g,x.getSnapshot=f,c(x)&&w({inst:x})},[p,g,f]),a(function(){return c(x)&&w({inst:x}),p(function(){c(x)&&w({inst:x})})},[p]),l(g),g}function c(p){var f=p.getSnapshot;p=p.value;try{var g=f();return!n(p,g)}catch{return!0}}function u(p,f){return f()}var d=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:s;return P8.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:d,P8}var NH;function DH(){return NH||(NH=1,RH.exports=JCe()),RH.exports}/** + * @license React + * use-sync-external-store-shim/with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var $H;function eTe(){if($H)return $8;$H=1;var e=Xr,r=DH();function n(u,d){return u===d&&(u!==0||1/u===1/d)||u!==u&&d!==d}var o=typeof Object.is=="function"?Object.is:n,a=r.useSyncExternalStore,i=e.useRef,l=e.useEffect,s=e.useMemo,c=e.useDebugValue;return $8.useSyncExternalStoreWithSelector=function(u,d,p,f,g){var b=i(null);if(b.current===null){var x={hasValue:!1,value:null};b.current=x}else x=b.current;b=s(function(){function k(A){if(!C){if(C=!0,_=A,A=f(A),g!==void 0&&x.hasValue){var D=x.value;if(g(D,A))return T=D}return T=A}if(D=T,o(_,A))return D;var N=f(A);return g!==void 0&&g(D,N)?(_=A,D):(_=A,T=N)}var C=!1,_,T,R=p===void 0?null:p;return[function(){return k(d())},R===null?void 0:function(){return k(R())}]},[d,p,f,g]);var w=a(u,b[0],b[1]);return l(function(){x.hasValue=!0,x.value=w},[w]),c(w),w},$8}var PH;function tTe(){return PH||(PH=1,TH.exports=eTe()),TH.exports}var OH=tTe();const rTe=D8(OH),nTe={},MH=e=>{let r;const n=new Set,o=(s,c)=>{const u=typeof s=="function"?s(r):s;if(!Object.is(u,r)){const d=r;r=c??(typeof u!="object"||u===null)?u:Object.assign({},r,u),n.forEach(p=>p(r,d))}},a=()=>r,i={setState:o,getState:a,getInitialState:()=>l,subscribe:s=>(n.add(s),()=>n.delete(s)),destroy:()=>{(nTe?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},l=r=e(o,a,i);return i},oTe=e=>e?MH(e):MH,{useDebugValue:aTe}=Xr,{useSyncExternalStoreWithSelector:iTe}=rTe,lTe=e=>e;function IH(e,r=lTe,n){const o=iTe(e.subscribe,e.getState,e.getServerState||e.getInitialState,r,n);return aTe(o),o}const LH=(e,r)=>{const n=oTe(e),o=(a,i=r)=>IH(n,a,i);return Object.assign(o,n),o},sTe=(e,r)=>e?LH(e,r):LH;function Ar(e,r){if(Object.is(e,r))return!0;if(typeof e!="object"||e===null||typeof r!="object"||r===null)return!1;if(e instanceof Map&&r instanceof Map){if(e.size!==r.size)return!1;for(const[o,a]of e)if(!Object.is(a,r.get(o)))return!1;return!0}if(e instanceof Set&&r instanceof Set){if(e.size!==r.size)return!1;for(const o of e)if(!r.has(o))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(r).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(r,o)||!Object.is(e[o],r[o]))return!1;return!0}const Cx=E.createContext(null),cTe=Cx.Provider,zH=Ql.error001();function Rt(e,r){const n=E.useContext(Cx);if(n===null)throw new Error(zH);return IH(n,e,r)}function fr(){const e=E.useContext(Cx);if(e===null)throw new Error(zH);return E.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const jH={display:"none"},uTe={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},BH="react-flow__node-desc",FH="react-flow__edge-desc",dTe="react-flow__aria-live",pTe=e=>e.ariaLiveMessage,hTe=e=>e.ariaLabelConfig;function fTe({rfId:e}){const r=Rt(pTe);return y.jsx("div",{id:`${dTe}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:uTe,children:r})}function mTe({rfId:e,disableKeyboardA11y:r}){const n=Rt(hTe);return y.jsxs(y.Fragment,{children:[y.jsx("div",{id:`${BH}-${e}`,style:jH,children:r?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),y.jsx("div",{id:`${FH}-${e}`,style:jH,children:n["edge.a11yDescription.default"]}),!r&&y.jsx(fTe,{rfId:e})]})}const ou=E.forwardRef(({position:e="top-left",children:r,className:n,style:o,...a},i)=>{const l=`${e}`.split("-");return y.jsx("div",{className:an(["react-flow__panel",n,...l]),style:o,ref:i,...a,children:r})});ou.displayName="Panel";function gTe({proOptions:e,position:r="bottom-right"}){return e?.hideAttribution?null:y.jsx(ou,{position:r,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:y.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const yTe=e=>{const r=[],n=[];for(const[,o]of e.nodeLookup)o.selected&&r.push(o.internals.userNode);for(const[,o]of e.edgeLookup)o.selected&&n.push(o);return{selectedNodes:r,selectedEdges:n}},Tx=e=>e.id;function bTe(e,r){return Ar(e.selectedNodes.map(Tx),r.selectedNodes.map(Tx))&&Ar(e.selectedEdges.map(Tx),r.selectedEdges.map(Tx))}function vTe({onSelectionChange:e}){const r=fr(),{selectedNodes:n,selectedEdges:o}=Rt(yTe,bTe);return E.useEffect(()=>{const a={nodes:n,edges:o};e?.(a),r.getState().onSelectionChangeHandlers.forEach(i=>i(a))},[n,o,e]),null}const xTe=e=>!!e.onSelectionChangeHandlers;function wTe({onSelectionChange:e}){const r=Rt(xTe);return e||r?y.jsx(vTe,{onSelectionChange:e}):null}const HH=[0,0],kTe={x:0,y:0,zoom:1},_Te=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","paneClickDistance","ariaLabelConfig"],UH=[..._Te,"rfId"],ETe=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setPaneClickDistance:e.setPaneClickDistance}),qH={translateExtent:d0,nodeOrigin:HH,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1",paneClickDistance:0};function STe(e){const{setNodes:r,setEdges:n,setMinZoom:o,setMaxZoom:a,setTranslateExtent:i,setNodeExtent:l,reset:s,setDefaultNodesAndEdges:c,setPaneClickDistance:u}=Rt(ETe,Ar),d=fr();E.useEffect(()=>(c(e.defaultNodes,e.defaultEdges),()=>{p.current=qH,s()}),[]);const p=E.useRef(qH);return E.useEffect(()=>{for(const f of UH){const g=e[f],b=p.current[f];g!==b&&(typeof e[f]>"u"||(f==="nodes"?r(g):f==="edges"?n(g):f==="minZoom"?o(g):f==="maxZoom"?a(g):f==="translateExtent"?i(g):f==="nodeExtent"?l(g):f==="paneClickDistance"?u(g):f==="ariaLabelConfig"?d.setState({ariaLabelConfig:cCe(g)}):f==="fitView"?d.setState({fitViewQueued:g}):f==="fitViewOptions"?d.setState({fitViewOptions:g}):d.setState({[f]:g})))}p.current=e},UH.map(f=>e[f])),null}function VH(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function CTe(e){const[r,n]=E.useState(e==="system"?null:e);return E.useEffect(()=>{if(e!=="system"){n(e);return}const o=VH(),a=()=>n(o?.matches?"dark":"light");return a(),o?.addEventListener("change",a),()=>{o?.removeEventListener("change",a)}},[e]),r!==null?r:VH()?.matches?"dark":"light"}const YH=typeof document<"u"?document:null;function x0(e=null,r={target:YH,actInsideInputWithModifier:!0}){const[n,o]=E.useState(!1),a=E.useRef(!1),i=E.useRef(new Set([])),[l,s]=E.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(d=>typeof d=="string").map(d=>d.replace("+",` +`).replace(` + +`,` ++`).split(` +`)),u=c.reduce((d,p)=>d.concat(...p),[]);return[c,u]}return[[],[]]},[e]);return E.useEffect(()=>{const c=r?.target??YH,u=r?.actInsideInputWithModifier??!0;if(e!==null){const d=g=>{if(a.current=g.ctrlKey||g.metaKey||g.shiftKey||g.altKey,(!a.current||a.current&&!u)&&tH(g))return!1;const b=GH(g.code,s);if(i.current.add(g[b]),WH(l,i.current,!1)){const x=g.composedPath?.()?.[0]||g.target,w=x?.nodeName==="BUTTON"||x?.nodeName==="A";r.preventDefault!==!1&&(a.current||!w)&&g.preventDefault(),o(!0)}},p=g=>{const b=GH(g.code,s);WH(l,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(g[b]),g.key==="Meta"&&i.current.clear(),a.current=!1},f=()=>{i.current.clear(),o(!1)};return c?.addEventListener("keydown",d),c?.addEventListener("keyup",p),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{c?.removeEventListener("keydown",d),c?.removeEventListener("keyup",p),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,o]),n}function WH(e,r,n){return e.filter(o=>n||o.length===r.size).some(o=>o.every(a=>r.has(a)))}function GH(e,r){return r.includes(e)?"code":"key"}const TTe=()=>{const e=fr();return E.useMemo(()=>({zoomIn:r=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:r?.duration}):Promise.resolve(!1)},zoomOut:r=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:r?.duration}):Promise.resolve(!1)},zoomTo:(r,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(r,{duration:n?.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(r,n)=>{const{transform:[o,a,i],panZoom:l}=e.getState();return l?(await l.setViewport({x:r.x??o,y:r.y??a,zoom:r.zoom??i},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[r,n,o]=e.getState().transform;return{x:r,y:n,zoom:o}},setCenter:async(r,n,o)=>e.getState().setCenter(r,n,o),fitBounds:async(r,n)=>{const{width:o,height:a,minZoom:i,maxZoom:l,panZoom:s}=e.getState(),c=tu(r,o,a,i,l,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(r,n={})=>{const{transform:o,snapGrid:a,snapToGrid:i,domNode:l}=e.getState();if(!l)return r;const{x:s,y:c}=l.getBoundingClientRect(),u={x:r.x-s,y:r.y-c},d=n.snapGrid??a,p=n.snapToGrid??i;return y0(u,o,p,d)},flowToScreenPosition:r=>{const{transform:n,domNode:o}=e.getState();if(!o)return r;const{x:a,y:i}=o.getBoundingClientRect(),l=xx(r,n);return{x:l.x+a,y:l.y+i}}}),[])};function XH(e,r){const n=[],o=new Map,a=[];for(const i of e)if(i.type==="add"){a.push(i);continue}else if(i.type==="remove"||i.type==="replace")o.set(i.id,[i]);else{const l=o.get(i.id);l?l.push(i):o.set(i.id,[i])}for(const i of r){const l=o.get(i.id);if(!l){n.push(i);continue}if(l[0].type==="remove")continue;if(l[0].type==="replace"){n.push({...l[0].item});continue}const s={...i};for(const c of l)RTe(c,s);n.push(s)}return a.length&&a.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function RTe(e,r){switch(e.type){case"select":{r.selected=e.selected;break}case"position":{typeof e.position<"u"&&(r.position=e.position),typeof e.dragging<"u"&&(r.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(r.measured??={},r.measured.width=e.dimensions.width,r.measured.height=e.dimensions.height,e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(r.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(r.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(r.resizing=e.resizing);break}}}function Rx(e,r){return XH(e,r)}function Ax(e,r){return XH(e,r)}function Fd(e,r){return{id:e,type:"select",selected:r}}function cf(e,r=new Set,n=!1){const o=[];for(const[a,i]of e){const l=r.has(a);!(i.selected===void 0&&!l)&&i.selected!==l&&(n&&(i.selected=l),o.push(Fd(i.id,l)))}return o}function KH({items:e=[],lookup:r}){const n=[],o=new Map(e.map(a=>[a.id,a]));for(const[a,i]of e.entries()){const l=r.get(i.id),s=l?.internals?.userNode??l;s!==void 0&&s!==i&&n.push({id:i.id,item:i,type:"replace"}),s===void 0&&n.push({item:i,type:"add",index:a})}for(const[a]of r)o.get(a)===void 0&&n.push({id:a,type:"remove"});return n}function ZH(e){return{id:e.id,type:"remove"}}const QH=e=>eCe(e),ATe=e=>qF(e);function JH(e){return E.forwardRef(e)}const NTe=typeof window<"u"?E.useLayoutEffect:E.useEffect;function eU(e){const[r,n]=E.useState(BigInt(0)),[o]=E.useState(()=>DTe(()=>n(a=>a+BigInt(1))));return NTe(()=>{const a=o.get();a.length&&(e(a),o.reset())},[r]),o}function DTe(e){let r=[];return{get:()=>r,reset:()=>{r=[]},push:n=>{r.push(n),e()}}}const tU=E.createContext(null);function $Te({children:e}){const r=fr(),n=E.useCallback(s=>{const{nodes:c=[],setNodes:u,hasDefaultNodes:d,onNodesChange:p,nodeLookup:f,fitViewQueued:g}=r.getState();let b=c;for(const w of s)b=typeof w=="function"?w(b):w;const x=KH({items:b,lookup:f});d&&u(b),x.length>0?p?.(x):g&&window.requestAnimationFrame(()=>{const{fitViewQueued:w,nodes:k,setNodes:C}=r.getState();w&&C(k)})},[]),o=eU(n),a=E.useCallback(s=>{const{edges:c=[],setEdges:u,hasDefaultEdges:d,onEdgesChange:p,edgeLookup:f}=r.getState();let g=c;for(const b of s)g=typeof b=="function"?b(g):b;d?u(g):p&&p(KH({items:g,lookup:f}))},[]),i=eU(a),l=E.useMemo(()=>({nodeQueue:o,edgeQueue:i}),[]);return y.jsx(tU.Provider,{value:l,children:e})}function PTe(){const e=E.useContext(tU);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const OTe=e=>!!e.panZoom;function uf(){const e=TTe(),r=fr(),n=PTe(),o=Rt(OTe),a=E.useMemo(()=>{const i=p=>r.getState().nodeLookup.get(p),l=p=>{n.nodeQueue.push(p)},s=p=>{n.edgeQueue.push(p)},c=p=>{const{nodeLookup:f,nodeOrigin:g}=r.getState(),b=QH(p)?p:f.get(p.id),x=b.parentId?QF(b.position,b.measured,b.parentId,f,g):b.position,w={...b,position:x,width:b.measured?.width??b.width,height:b.measured?.height??b.height};return Bd(w)},u=(p,f,g={replace:!1})=>{l(b=>b.map(x=>{if(x.id===p){const w=typeof f=="function"?f(x):f;return g.replace&&QH(w)?w:{...x,...w}}return x}))},d=(p,f,g={replace:!1})=>{s(b=>b.map(x=>{if(x.id===p){const w=typeof f=="function"?f(x):f;return g.replace&&ATe(w)?w:{...x,...w}}return x}))};return{getNodes:()=>r.getState().nodes.map(p=>({...p})),getNode:p=>i(p)?.internals.userNode,getInternalNode:i,getEdges:()=>{const{edges:p=[]}=r.getState();return p.map(f=>({...f}))},getEdge:p=>r.getState().edgeLookup.get(p),setNodes:l,setEdges:s,addNodes:p=>{const f=Array.isArray(p)?p:[p];n.nodeQueue.push(g=>[...g,...f])},addEdges:p=>{const f=Array.isArray(p)?p:[p];n.edgeQueue.push(g=>[...g,...f])},toObject:()=>{const{nodes:p=[],edges:f=[],transform:g}=r.getState(),[b,x,w]=g;return{nodes:p.map(k=>({...k})),edges:f.map(k=>({...k})),viewport:{x:b,y:x,zoom:w}}},deleteElements:async({nodes:p=[],edges:f=[]})=>{const{nodes:g,edges:b,onNodesDelete:x,onEdgesDelete:w,triggerNodeChanges:k,triggerEdgeChanges:C,onDelete:_,onBeforeDelete:T}=r.getState(),{nodes:R,edges:A}=await oCe({nodesToRemove:p,edgesToRemove:f,nodes:g,edges:b,onBeforeDelete:T}),D=A.length>0,N=R.length>0;if(D){const P=A.map(ZH);w?.(A),C(P)}if(N){const P=R.map(ZH);x?.(R),k(P)}return(N||D)&&_?.({nodes:R,edges:A}),{deletedNodes:R,deletedEdges:A}},getIntersectingNodes:(p,f=!0,g)=>{const b=KF(p),x=b?p:c(p),w=g!==void 0;return x?(g||r.getState().nodes).filter(k=>{const C=r.getState().nodeLookup.get(k.id);if(C&&!b&&(k.id===p.id||!C.internals.positionAbsolute))return!1;const _=Bd(w?k:C),T=m0(_,x);return f&&T>0||T>=_.width*_.height||T>=x.width*x.height}):[]},isNodeIntersecting:(p,f,g=!0)=>{const b=KF(p)?p:c(p);if(!b)return!1;const x=m0(b,f);return g&&x>0||x>=f.width*f.height||x>=b.width*b.height},updateNode:u,updateNodeData:(p,f,g={replace:!1})=>{u(p,b=>{const x=typeof f=="function"?f(b):f;return g.replace?{...b,data:x}:{...b,data:{...b.data,...x}}},g)},updateEdge:d,updateEdgeData:(p,f,g={replace:!1})=>{d(p,b=>{const x=typeof f=="function"?f(b):f;return g.replace?{...b,data:x}:{...b,data:{...b.data,...x}}},g)},getNodesBounds:p=>{const{nodeLookup:f,nodeOrigin:g}=r.getState();return VF(p,{nodeLookup:f,nodeOrigin:g})},getHandleConnections:({type:p,id:f,nodeId:g})=>Array.from(r.getState().connectionLookup.get(`${g}-${p}${f?`-${f}`:""}`)?.values()??[]),getNodeConnections:({type:p,handleId:f,nodeId:g})=>Array.from(r.getState().connectionLookup.get(`${g}${p?f?`-${p}-${f}`:`-${p}`:""}`)?.values()??[]),fitView:async p=>{const f=r.getState().fitViewResolver??sCe();return r.setState({fitViewQueued:!0,fitViewOptions:p,fitViewResolver:f}),n.nodeQueue.push(g=>[...g]),f.promise}}},[]);return E.useMemo(()=>({...a,...e,viewportInitialized:o}),[o])}const rU=e=>e.selected,MTe=typeof window<"u"?window:void 0;function ITe({deleteKeyCode:e,multiSelectionKeyCode:r}){const n=fr(),{deleteElements:o}=uf(),a=x0(e,{actInsideInputWithModifier:!1}),i=x0(r,{target:MTe});E.useEffect(()=>{if(a){const{edges:l,nodes:s}=n.getState();o({nodes:s.filter(rU),edges:l.filter(rU)}),n.setState({nodesSelectionActive:!1})}},[a]),E.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function LTe(e){const r=fr();E.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const o=x8(e.current);(o.height===0||o.width===0)&&r.getState().onError?.("004",Ql.error004()),r.setState({width:o.width||500,height:o.height||500})};if(e.current){n(),window.addEventListener("resize",n);const o=new ResizeObserver(()=>n());return o.observe(e.current),()=>{window.removeEventListener("resize",n),o&&e.current&&o.unobserve(e.current)}}},[])}const Nx={position:"absolute",width:"100%",height:"100%",top:0,left:0},zTe=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function jTe({onPaneContextMenu:e,zoomOnScroll:r=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:a=.5,panOnScrollMode:i=zd.Free,zoomOnDoubleClick:l=!0,panOnDrag:s=!0,defaultViewport:c,translateExtent:u,minZoom:d,maxZoom:p,zoomActivationKeyCode:f,preventScrolling:g=!0,children:b,noWheelClassName:x,noPanClassName:w,onViewportChange:k,isControlledViewport:C,paneClickDistance:_}){const T=fr(),R=E.useRef(null),{userSelectionActive:A,lib:D,connectionInProgress:N}=Rt(zTe,Ar),P=x0(f),O=E.useRef();LTe(R);const B=E.useCallback(L=>{k?.({x:L[0],y:L[1],zoom:L[2]}),C||T.setState({transform:L})},[k,C]);return E.useEffect(()=>{if(R.current){O.current=VCe({domNode:R.current,minZoom:d,maxZoom:p,translateExtent:u,viewport:c,paneClickDistance:_,onDraggingChange:q=>T.setState({paneDragging:q}),onPanZoomStart:(q,I)=>{const{onViewportChangeStart:U,onMoveStart:V}=T.getState();V?.(q,I),U?.(I)},onPanZoom:(q,I)=>{const{onViewportChange:U,onMove:V}=T.getState();V?.(q,I),U?.(I)},onPanZoomEnd:(q,I)=>{const{onViewportChangeEnd:U,onMoveEnd:V}=T.getState();V?.(q,I),U?.(I)}});const{x:L,y:Y,zoom:M}=O.current.getViewport();return T.setState({panZoom:O.current,transform:[L,Y,M],domNode:R.current.closest(".react-flow")}),()=>{O.current?.destroy()}}},[]),E.useEffect(()=>{O.current?.update({onPaneContextMenu:e,zoomOnScroll:r,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:a,panOnScrollMode:i,zoomOnDoubleClick:l,panOnDrag:s,zoomActivationKeyPressed:P,preventScrolling:g,noPanClassName:w,userSelectionActive:A,noWheelClassName:x,lib:D,onTransformChange:B,connectionInProgress:N})},[e,r,n,o,a,i,l,s,P,g,w,A,x,D,B,N]),y.jsx("div",{className:"react-flow__renderer",ref:R,style:Nx,children:b})}const BTe=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function FTe(){const{userSelectionActive:e,userSelectionRect:r}=Rt(BTe,Ar);return e&&r?y.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:r.width,height:r.height,transform:`translate(${r.x}px, ${r.y}px)`}}):null}const O8=(e,r)=>n=>{n.target===r.current&&e?.(n)},HTe=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function UTe({isSelecting:e,selectionKeyPressed:r,selectionMode:n=p0.Full,panOnDrag:o,selectionOnDrag:a,onSelectionStart:i,onSelectionEnd:l,onPaneClick:s,onPaneContextMenu:c,onPaneScroll:u,onPaneMouseEnter:d,onPaneMouseMove:p,onPaneMouseLeave:f,children:g}){const b=fr(),{userSelectionActive:x,elementsSelectable:w,dragging:k,connectionInProgress:C}=Rt(HTe,Ar),_=w&&(e||x),T=E.useRef(null),R=E.useRef(),A=E.useRef(new Set),D=E.useRef(new Set),N=E.useRef(!1),P=E.useRef(!1),O=U=>{if(N.current||C){N.current=!1;return}s?.(U),b.getState().resetSelectedElements(),b.setState({nodesSelectionActive:!1})},B=U=>{if(Array.isArray(o)&&o?.includes(2)){U.preventDefault();return}c?.(U)},L=u?U=>u(U):void 0,Y=U=>{const{resetSelectedElements:V,domNode:G}=b.getState();if(R.current=G?.getBoundingClientRect(),!w||!e||U.button!==0||U.target!==T.current||!R.current)return;U.target?.setPointerCapture?.(U.pointerId),P.current=!0,N.current=!1;const{x:F,y:J}=Gi(U.nativeEvent,R.current);V(),b.setState({userSelectionRect:{width:0,height:0,startX:F,startY:J,x:F,y:J}}),i?.(U)},M=U=>{const{userSelectionRect:V,transform:G,nodeLookup:F,edgeLookup:J,connectionLookup:Q,triggerNodeChanges:z,triggerEdgeChanges:W,defaultEdgeOptions:X}=b.getState();if(!R.current||!V)return;N.current=!0;const{x:Z,y:oe}=Gi(U.nativeEvent,R.current),{startX:ee,startY:re}=V,pe={startX:ee,startY:re,x:Zbe.id)),D.current=new Set;const de=X?.selectable??!0;for(const be of A.current){const Me=Q.get(be);if(Me)for(const{edgeId:Xe}of Me.values()){const Ge=J.get(Xe);Ge&&(Ge.selectable??de)&&D.current.add(Xe)}}if(!JF(Ce,A.current)){const be=cf(F,A.current,!0);z(be)}if(!JF(ce,D.current)){const be=cf(J,D.current);W(be)}b.setState({userSelectionRect:pe,userSelectionActive:!0,nodesSelectionActive:!1})},q=U=>{if(U.button!==0||!P.current)return;U.target?.releasePointerCapture?.(U.pointerId);const{userSelectionRect:V}=b.getState();!x&&V&&U.target===T.current&&O?.(U),b.setState({userSelectionActive:!1,userSelectionRect:null,nodesSelectionActive:A.current.size>0}),l?.(U),(r||a)&&(N.current=!1),P.current=!1},I=o===!0||Array.isArray(o)&&o.includes(0);return y.jsxs("div",{className:an(["react-flow__pane",{draggable:I,dragging:k,selection:e}]),onClick:_?void 0:O8(O,T),onContextMenu:O8(B,T),onWheel:O8(L,T),onPointerEnter:_?void 0:d,onPointerDown:_?Y:p,onPointerMove:_?M:p,onPointerUp:_?q:void 0,onPointerLeave:f,ref:T,style:Nx,children:[g,y.jsx(FTe,{})]})}function M8({id:e,store:r,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:a,unselectNodesAndEdges:i,multiSelectionActive:l,nodeLookup:s,onError:c}=r.getState(),u=s.get(e);if(!u){c?.("012",Ql.error012(e));return}r.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&l)&&(i({nodes:[u],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):a([e])}function nU({nodeRef:e,disabled:r=!1,noDragClassName:n,handleSelector:o,nodeId:a,isSelectable:i,nodeClickDistance:l}){const s=fr(),[c,u]=E.useState(!1),d=E.useRef();return E.useEffect(()=>{d.current=NCe({getStoreItems:()=>s.getState(),onNodeMouseDown:p=>{M8({id:p,store:s,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),E.useEffect(()=>{if(r)d.current?.destroy();else if(e.current)return d.current?.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:i,nodeId:a,nodeClickDistance:l}),()=>{d.current?.destroy()}},[n,o,r,i,e,a]),c}const qTe=e=>r=>r.selected&&(r.draggable||e&&typeof r.draggable>"u");function oU(){const e=fr();return E.useCallback(r=>{const{nodeExtent:n,snapToGrid:o,snapGrid:a,nodesDraggable:i,onError:l,updateNodePositions:s,nodeLookup:c,nodeOrigin:u}=e.getState(),d=new Map,p=qTe(i),f=o?a[0]:5,g=o?a[1]:5,b=r.direction.x*f*r.factor,x=r.direction.y*g*r.factor;for(const[,w]of c){if(!p(w))continue;let k={x:w.internals.positionAbsolute.x+b,y:w.internals.positionAbsolute.y+x};o&&(k=g0(k,a));const{position:C,positionAbsolute:_}=YF({nodeId:w.id,nextPosition:k,nodeLookup:c,nodeExtent:n,nodeOrigin:u,onError:l});w.position=C,w.internals.positionAbsolute=_,d.set(w.id,w)}s(d)},[])}const I8=E.createContext(null),VTe=I8.Provider;I8.Consumer;const L8=()=>E.useContext(I8),YTe=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),WTe=(e,r,n)=>o=>{const{connectionClickStartHandle:a,connectionMode:i,connection:l}=o,{fromHandle:s,toHandle:c,isValid:u}=l,d=c?.nodeId===e&&c?.id===r&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===r&&s?.type===n,connectingTo:d,clickConnecting:a?.nodeId===e&&a?.id===r&&a?.type===n,isPossibleEndHandle:i===ef.Strict?s?.type!==n:e!==s?.nodeId||r!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!a,valid:d&&u}};function GTe({type:e="source",position:r=tt.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:a=!0,isConnectableEnd:i=!0,id:l,onConnect:s,children:c,className:u,onMouseDown:d,onTouchStart:p,...f},g){const b=l||null,x=e==="target",w=fr(),k=L8(),{connectOnClick:C,noPanClassName:_,rfId:T}=Rt(YTe,Ar),{connectingFrom:R,connectingTo:A,clickConnecting:D,isPossibleEndHandle:N,connectionInProcess:P,clickConnectionInProcess:O,valid:B}=Rt(WTe(k,b,e),Ar);k||w.getState().onError?.("010",Ql.error010());const L=q=>{const{defaultEdgeOptions:I,onConnect:U,hasDefaultEdges:V}=w.getState(),G={...I,...q};if(V){const{edges:F,setEdges:J}=w.getState();J(mCe(G,F))}U?.(G),s?.(G)},Y=q=>{if(!k)return;const I=rH(q.nativeEvent);if(a&&(I&&q.button===0||!I)){const U=w.getState();R8.onPointerDown(q.nativeEvent,{handleDomNode:q.currentTarget,autoPanOnConnect:U.autoPanOnConnect,connectionMode:U.connectionMode,connectionRadius:U.connectionRadius,domNode:U.domNode,nodeLookup:U.nodeLookup,lib:U.lib,isTarget:x,handleId:b,nodeId:k,flowId:U.rfId,panBy:U.panBy,cancelConnection:U.cancelConnection,onConnectStart:U.onConnectStart,onConnectEnd:U.onConnectEnd,updateConnection:U.updateConnection,onConnect:L,isValidConnection:n||U.isValidConnection,getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:U.autoPanSpeed,dragThreshold:U.connectionDragThreshold})}I?d?.(q):p?.(q)},M=q=>{const{onClickConnectStart:I,onClickConnectEnd:U,connectionClickStartHandle:V,connectionMode:G,isValidConnection:F,lib:J,rfId:Q,nodeLookup:z,connection:W}=w.getState();if(!k||!V&&!a)return;if(!V){I?.(q.nativeEvent,{nodeId:k,handleId:b,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:k,type:e,id:b}});return}const X=eH(q.target),Z=n||F,{connection:oe,isValid:ee}=R8.isValid(q.nativeEvent,{handle:{nodeId:k,id:b,type:e},connectionMode:G,fromNodeId:V.nodeId,fromHandleId:V.id||null,fromType:V.type,isValidConnection:Z,flowId:Q,doc:X,lib:J,nodeLookup:z});ee&&oe&&L(oe);const re=structuredClone(W);delete re.inProgress,re.toPosition=re.toHandle?re.toHandle.position:null,U?.(q,re),w.setState({connectionClickStartHandle:null})};return y.jsx("div",{"data-handleid":b,"data-nodeid":k,"data-handlepos":r,"data-id":`${T}-${k}-${b}-${e}`,className:an(["react-flow__handle",`react-flow__handle-${r}`,"nodrag",_,u,{source:!x,target:x,connectable:o,connectablestart:a,connectableend:i,clickconnecting:D,connectingfrom:R,connectingto:A,valid:B,connectionindicator:o&&(!P||N)&&(P||O?i:a)}]),onMouseDown:Y,onTouchStart:Y,onClick:C?M:void 0,ref:g,...f,children:c})}const uo=E.memo(JH(GTe));function XTe({data:e,isConnectable:r,sourcePosition:n=tt.Bottom}){return y.jsxs(y.Fragment,{children:[e?.label,y.jsx(uo,{type:"source",position:n,isConnectable:r})]})}function KTe({data:e,isConnectable:r,targetPosition:n=tt.Top,sourcePosition:o=tt.Bottom}){return y.jsxs(y.Fragment,{children:[y.jsx(uo,{type:"target",position:n,isConnectable:r}),e?.label,y.jsx(uo,{type:"source",position:o,isConnectable:r})]})}function ZTe(){return null}function QTe({data:e,isConnectable:r,targetPosition:n=tt.Top}){return y.jsxs(y.Fragment,{children:[y.jsx(uo,{type:"target",position:n,isConnectable:r}),e?.label]})}const Dx={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},aU={input:XTe,default:KTe,output:QTe,group:ZTe};function JTe(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}const eRe=e=>{const{width:r,height:n,x:o,y:a}=tf(e.nodeLookup,{filter:i=>!!i.selected});return{width:Wi(r)?r:null,height:Wi(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${a}px)`}};function tRe({onSelectionContextMenu:e,noPanClassName:r,disableKeyboardA11y:n}){const o=fr(),{width:a,height:i,transformString:l,userSelectionActive:s}=Rt(eRe,Ar),c=oU(),u=E.useRef(null);if(E.useEffect(()=>{n||u.current?.focus({preventScroll:!0})},[n]),nU({nodeRef:u}),s||!a||!i)return null;const d=e?f=>{const g=o.getState().nodes.filter(b=>b.selected);e(f,g)}:void 0,p=f=>{Object.prototype.hasOwnProperty.call(Dx,f.key)&&(f.preventDefault(),c({direction:Dx[f.key],factor:f.shiftKey?4:1}))};return y.jsx("div",{className:an(["react-flow__nodesselection","react-flow__container",r]),style:{transform:l},children:y.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:p,style:{width:a,height:i}})})}const iU=typeof window<"u"?window:void 0,rRe=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function lU({children:e,onPaneClick:r,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:a,onPaneContextMenu:i,onPaneScroll:l,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:u,selectionOnDrag:d,selectionMode:p,onSelectionStart:f,onSelectionEnd:g,multiSelectionKeyCode:b,panActivationKeyCode:x,zoomActivationKeyCode:w,elementsSelectable:k,zoomOnScroll:C,zoomOnPinch:_,panOnScroll:T,panOnScrollSpeed:R,panOnScrollMode:A,zoomOnDoubleClick:D,panOnDrag:N,defaultViewport:P,translateExtent:O,minZoom:B,maxZoom:L,preventScrolling:Y,onSelectionContextMenu:M,noWheelClassName:q,noPanClassName:I,disableKeyboardA11y:U,onViewportChange:V,isControlledViewport:G}){const{nodesSelectionActive:F,userSelectionActive:J}=Rt(rRe),Q=x0(u,{target:iU}),z=x0(x,{target:iU}),W=z||N,X=z||T,Z=d&&W!==!0,oe=Q||J||Z;return ITe({deleteKeyCode:c,multiSelectionKeyCode:b}),y.jsx(jTe,{onPaneContextMenu:i,elementsSelectable:k,zoomOnScroll:C,zoomOnPinch:_,panOnScroll:X,panOnScrollSpeed:R,panOnScrollMode:A,zoomOnDoubleClick:D,panOnDrag:!Q&&W,defaultViewport:P,translateExtent:O,minZoom:B,maxZoom:L,zoomActivationKeyCode:w,preventScrolling:Y,noWheelClassName:q,noPanClassName:I,onViewportChange:V,isControlledViewport:G,paneClickDistance:s,children:y.jsxs(UTe,{onSelectionStart:f,onSelectionEnd:g,onPaneClick:r,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:a,onPaneContextMenu:i,onPaneScroll:l,panOnDrag:W,isSelecting:!!oe,selectionMode:p,selectionKeyPressed:Q,selectionOnDrag:Z,children:[e,F&&y.jsx(tRe,{onSelectionContextMenu:M,noPanClassName:I,disableKeyboardA11y:U})]})})}lU.displayName="FlowRenderer";const nRe=E.memo(lU),oRe=e=>r=>e?b8(r.nodeLookup,{x:0,y:0,width:r.width,height:r.height},r.transform,!0).map(n=>n.id):Array.from(r.nodeLookup.keys());function aRe(e){return Rt(E.useCallback(oRe(e),[e]),Ar)}const iRe=e=>e.updateNodeInternals;function lRe(){const e=Rt(iRe),[r]=E.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const o=new Map;n.forEach(a=>{const i=a.target.getAttribute("data-id");o.set(i,{id:i,nodeElement:a.target,force:!0})}),e(o)}));return E.useEffect(()=>()=>{r?.disconnect()},[r]),r}function sRe({node:e,nodeType:r,hasDimensions:n,resizeObserver:o}){const a=fr(),i=E.useRef(null),l=E.useRef(null),s=E.useRef(e.sourcePosition),c=E.useRef(e.targetPosition),u=E.useRef(r),d=n&&!!e.internals.handleBounds;return E.useEffect(()=>{i.current&&!e.hidden&&(!d||l.current!==i.current)&&(l.current&&o?.unobserve(l.current),o?.observe(i.current),l.current=i.current)},[d,e.hidden]),E.useEffect(()=>()=>{l.current&&(o?.unobserve(l.current),l.current=null)},[]),E.useEffect(()=>{if(i.current){const p=u.current!==r,f=s.current!==e.sourcePosition,g=c.current!==e.targetPosition;(p||f||g)&&(u.current=r,s.current=e.sourcePosition,c.current=e.targetPosition,a.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,r,e.sourcePosition,e.targetPosition]),i}function cRe({id:e,onClick:r,onMouseEnter:n,onMouseMove:o,onMouseLeave:a,onContextMenu:i,onDoubleClick:l,nodesDraggable:s,elementsSelectable:c,nodesConnectable:u,nodesFocusable:d,resizeObserver:p,noDragClassName:f,noPanClassName:g,disableKeyboardA11y:b,rfId:x,nodeTypes:w,nodeClickDistance:k,onError:C}){const{node:_,internals:T,isParent:R}=Rt(ee=>{const re=ee.nodeLookup.get(e),pe=ee.parentLookup.has(e);return{node:re,internals:re.internals,isParent:pe}},Ar);let A=_.type||"default",D=w?.[A]||aU[A];D===void 0&&(C?.("003",Ql.error003(A)),A="default",D=w?.default||aU.default);const N=!!(_.draggable||s&&typeof _.draggable>"u"),P=!!(_.selectable||c&&typeof _.selectable>"u"),O=!!(_.connectable||u&&typeof _.connectable>"u"),B=!!(_.focusable||d&&typeof _.focusable>"u"),L=fr(),Y=ZF(_),M=sRe({node:_,nodeType:A,hasDimensions:Y,resizeObserver:p}),q=nU({nodeRef:M,disabled:_.hidden||!N,noDragClassName:f,handleSelector:_.dragHandle,nodeId:e,isSelectable:P,nodeClickDistance:k}),I=oU();if(_.hidden)return null;const U=Wn(_),V=JTe(_),G=P||N||r||n||o||a,F=n?ee=>n(ee,{...T.userNode}):void 0,J=o?ee=>o(ee,{...T.userNode}):void 0,Q=a?ee=>a(ee,{...T.userNode}):void 0,z=i?ee=>i(ee,{...T.userNode}):void 0,W=l?ee=>l(ee,{...T.userNode}):void 0,X=ee=>{const{selectNodesOnDrag:re,nodeDragThreshold:pe}=L.getState();P&&(!re||!N||pe>0)&&M8({id:e,store:L,nodeRef:M}),r&&r(ee,{...T.userNode})},Z=ee=>{if(!(tH(ee.nativeEvent)||b)){if(jF.includes(ee.key)&&P){const re=ee.key==="Escape";M8({id:e,store:L,unselect:re,nodeRef:M})}else if(N&&_.selected&&Object.prototype.hasOwnProperty.call(Dx,ee.key)){ee.preventDefault();const{ariaLabelConfig:re}=L.getState();L.setState({ariaLiveMessage:re["node.a11yDescription.ariaLiveMessage"]({direction:ee.key.replace("Arrow","").toLowerCase(),x:~~T.positionAbsolute.x,y:~~T.positionAbsolute.y})}),I({direction:Dx[ee.key],factor:ee.shiftKey?4:1})}}},oe=()=>{if(b||!M.current?.matches(":focus-visible"))return;const{transform:ee,width:re,height:pe,autoPanOnNodeFocus:Ce,setCenter:ce}=L.getState();Ce&&(b8(new Map([[e,_]]),{x:0,y:0,width:re,height:pe},ee,!0).length>0||ce(_.position.x+U.width/2,_.position.y+U.height/2,{zoom:ee[2]}))};return y.jsx("div",{className:an(["react-flow__node",`react-flow__node-${A}`,{[g]:N},_.className,{selected:_.selected,selectable:P,parent:R,draggable:N,dragging:q}]),ref:M,style:{zIndex:T.z,transform:`translate(${T.positionAbsolute.x}px,${T.positionAbsolute.y}px)`,pointerEvents:G?"all":"none",visibility:Y?"visible":"hidden",..._.style,...V},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:F,onMouseMove:J,onMouseLeave:Q,onContextMenu:z,onClick:X,onDoubleClick:W,onKeyDown:B?Z:void 0,tabIndex:B?0:void 0,onFocus:B?oe:void 0,role:_.ariaRole??(B?"group":void 0),"aria-roledescription":"node","aria-describedby":b?void 0:`${BH}-${x}`,"aria-label":_.ariaLabel,..._.domAttributes,children:y.jsx(VTe,{value:e,children:y.jsx(D,{id:e,data:_.data,type:A,positionAbsoluteX:T.positionAbsolute.x,positionAbsoluteY:T.positionAbsolute.y,selected:_.selected??!1,selectable:P,draggable:N,deletable:_.deletable??!0,isConnectable:O,sourcePosition:_.sourcePosition,targetPosition:_.targetPosition,dragging:q,dragHandle:_.dragHandle,zIndex:T.z,parentId:_.parentId,...U})})})}const uRe=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function sU(e){const{nodesDraggable:r,nodesConnectable:n,nodesFocusable:o,elementsSelectable:a,onError:i}=Rt(uRe,Ar),l=aRe(e.onlyRenderVisibleElements),s=lRe();return y.jsx("div",{className:"react-flow__nodes",style:Nx,children:l.map(c=>y.jsx(cRe,{id:c,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:s,nodesDraggable:r,nodesConnectable:n,nodesFocusable:o,elementsSelectable:a,nodeClickDistance:e.nodeClickDistance,onError:i},c))})}sU.displayName="NodeRenderer";const dRe=E.memo(sU);function pRe(e){return Rt(E.useCallback(r=>{if(!e)return r.edges.map(o=>o.id);const n=[];if(r.width&&r.height)for(const o of r.edges){const a=r.nodeLookup.get(o.source),i=r.nodeLookup.get(o.target);a&&i&&pCe({sourceNode:a,targetNode:i,width:r.width,height:r.height,transform:r.transform})&&n.push(o.id)}return n},[e]),Ar)}const hRe=({color:e="none",strokeWidth:r=1})=>{const n={strokeWidth:r,...e&&{stroke:e}};return y.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},fRe=({color:e="none",strokeWidth:r=1})=>{const n={strokeWidth:r,...e&&{stroke:e,fill:e}};return y.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},cU={[gx.Arrow]:hRe,[gx.ArrowClosed]:fRe};function mRe(e){const r=fr();return E.useMemo(()=>Object.prototype.hasOwnProperty.call(cU,e)?cU[e]:(r.getState().onError?.("009",Ql.error009(e)),null),[e])}const gRe=({id:e,type:r,color:n,width:o=12.5,height:a=12.5,markerUnits:i="strokeWidth",strokeWidth:l,orient:s="auto-start-reverse"})=>{const c=mRe(r);return c?y.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:s,refX:"0",refY:"0",children:y.jsx(c,{color:n,strokeWidth:l})}):null},uU=({defaultColor:e,rfId:r})=>{const n=Rt(i=>i.edges),o=Rt(i=>i.defaultEdgeOptions),a=E.useMemo(()=>vCe(n,{id:r,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,r,e]);return a.length?y.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:y.jsx("defs",{children:a.map(i=>y.jsx(gRe,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};uU.displayName="MarkerDefinitions";var yRe=E.memo(uU);function dU({x:e,y:r,label:n,labelStyle:o,labelShowBg:a=!0,labelBgStyle:i,labelBgPadding:l=[2,4],labelBgBorderRadius:s=2,children:c,className:u,...d}){const[p,f]=E.useState({x:1,y:0,width:0,height:0}),g=an(["react-flow__edge-textwrapper",u]),b=E.useRef(null);return E.useEffect(()=>{if(b.current){const x=b.current.getBBox();f({x:x.x,y:x.y,width:x.width,height:x.height})}},[n]),n?y.jsxs("g",{transform:`translate(${e-p.width/2} ${r-p.height/2})`,className:g,visibility:p.width?"visible":"hidden",...d,children:[a&&y.jsx("rect",{width:p.width+2*l[0],x:-l[0],y:-l[1],height:p.height+2*l[1],className:"react-flow__edge-textbg",style:i,rx:s,ry:s}),y.jsx("text",{className:"react-flow__edge-text",y:p.height/2,dy:"0.3em",ref:b,style:o,children:n}),c]}):null}dU.displayName="EdgeText";const bRe=E.memo(dU);function $x({path:e,labelX:r,labelY:n,label:o,labelStyle:a,labelShowBg:i,labelBgStyle:l,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:u=20,...d}){return y.jsxs(y.Fragment,{children:[y.jsx("path",{...d,d:e,fill:"none",className:an(["react-flow__edge-path",d.className])}),u?y.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}):null,o&&Wi(r)&&Wi(n)?y.jsx(bRe,{x:r,y:n,label:o,labelStyle:a,labelShowBg:i,labelBgStyle:l,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function pU({pos:e,x1:r,y1:n,x2:o,y2:a}){return e===tt.Left||e===tt.Right?[.5*(r+o),n]:[r,.5*(n+a)]}function hU({sourceX:e,sourceY:r,sourcePosition:n=tt.Bottom,targetX:o,targetY:a,targetPosition:i=tt.Top}){const[l,s]=pU({pos:n,x1:e,y1:r,x2:o,y2:a}),[c,u]=pU({pos:i,x1:o,y1:a,x2:e,y2:r}),[d,p,f,g]=oH({sourceX:e,sourceY:r,targetX:o,targetY:a,sourceControlX:l,sourceControlY:s,targetControlX:c,targetControlY:u});return[`M${e},${r} C${l},${s} ${c},${u} ${o},${a}`,d,p,f,g]}function fU(e){return E.memo(({id:r,sourceX:n,sourceY:o,targetX:a,targetY:i,sourcePosition:l,targetPosition:s,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:g,style:b,markerEnd:x,markerStart:w,interactionWidth:k})=>{const[C,_,T]=hU({sourceX:n,sourceY:o,sourcePosition:l,targetX:a,targetY:i,targetPosition:s}),R=e.isInternal?void 0:r;return y.jsx($x,{id:R,path:C,labelX:_,labelY:T,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:g,style:b,markerEnd:x,markerStart:w,interactionWidth:k})})}const vRe=fU({isInternal:!1}),mU=fU({isInternal:!0});vRe.displayName="SimpleBezierEdge",mU.displayName="SimpleBezierEdgeInternal";function gU(e){return E.memo(({id:r,sourceX:n,sourceY:o,targetX:a,targetY:i,label:l,labelStyle:s,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:p,style:f,sourcePosition:g=tt.Bottom,targetPosition:b=tt.Top,markerEnd:x,markerStart:w,pathOptions:k,interactionWidth:C})=>{const[_,T,R]=_x({sourceX:n,sourceY:o,sourcePosition:g,targetX:a,targetY:i,targetPosition:b,borderRadius:k?.borderRadius,offset:k?.offset,stepPosition:k?.stepPosition}),A=e.isInternal?void 0:r;return y.jsx($x,{id:A,path:_,labelX:T,labelY:R,label:l,labelStyle:s,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:p,style:f,markerEnd:x,markerStart:w,interactionWidth:C})})}const yU=gU({isInternal:!1}),bU=gU({isInternal:!0});yU.displayName="SmoothStepEdge",bU.displayName="SmoothStepEdgeInternal";function vU(e){return E.memo(({id:r,...n})=>{const o=e.isInternal?void 0:r;return y.jsx(yU,{...n,id:o,pathOptions:E.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const xRe=vU({isInternal:!1}),xU=vU({isInternal:!0});xRe.displayName="StepEdge",xU.displayName="StepEdgeInternal";function wU(e){return E.memo(({id:r,sourceX:n,sourceY:o,targetX:a,targetY:i,label:l,labelStyle:s,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:p,style:f,markerEnd:g,markerStart:b,interactionWidth:x})=>{const[w,k,C]=lH({sourceX:n,sourceY:o,targetX:a,targetY:i}),_=e.isInternal?void 0:r;return y.jsx($x,{id:_,path:w,labelX:k,labelY:C,label:l,labelStyle:s,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:p,style:f,markerEnd:g,markerStart:b,interactionWidth:x})})}const wRe=wU({isInternal:!1}),kU=wU({isInternal:!0});wRe.displayName="StraightEdge",kU.displayName="StraightEdgeInternal";function _U(e){return E.memo(({id:r,sourceX:n,sourceY:o,targetX:a,targetY:i,sourcePosition:l=tt.Bottom,targetPosition:s=tt.Top,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:g,style:b,markerEnd:x,markerStart:w,pathOptions:k,interactionWidth:C})=>{const[_,T,R]=kx({sourceX:n,sourceY:o,sourcePosition:l,targetX:a,targetY:i,targetPosition:s,curvature:k?.curvature}),A=e.isInternal?void 0:r;return y.jsx($x,{id:A,path:_,labelX:T,labelY:R,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:g,style:b,markerEnd:x,markerStart:w,interactionWidth:C})})}const kRe=_U({isInternal:!1}),EU=_U({isInternal:!0});kRe.displayName="BezierEdge",EU.displayName="BezierEdgeInternal";const SU={default:EU,straight:kU,step:xU,smoothstep:bU,simplebezier:mU},CU={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},_Re=(e,r,n)=>n===tt.Left?e-r:n===tt.Right?e+r:e,ERe=(e,r,n)=>n===tt.Top?e-r:n===tt.Bottom?e+r:e,TU="react-flow__edgeupdater";function RU({position:e,centerX:r,centerY:n,radius:o=10,onMouseDown:a,onMouseEnter:i,onMouseOut:l,type:s}){return y.jsx("circle",{onMouseDown:a,onMouseEnter:i,onMouseOut:l,className:an([TU,`${TU}-${s}`]),cx:_Re(r,o,e),cy:ERe(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function SRe({isReconnectable:e,reconnectRadius:r,edge:n,sourceX:o,sourceY:a,targetX:i,targetY:l,sourcePosition:s,targetPosition:c,onReconnect:u,onReconnectStart:d,onReconnectEnd:p,setReconnecting:f,setUpdateHover:g}){const b=fr(),x=(T,R)=>{if(T.button!==0)return;const{autoPanOnConnect:A,domNode:D,isValidConnection:N,connectionMode:P,connectionRadius:O,lib:B,onConnectStart:L,onConnectEnd:Y,cancelConnection:M,nodeLookup:q,rfId:I,panBy:U,updateConnection:V}=b.getState(),G=R.type==="target",F=(z,W)=>{f(!1),p?.(z,n,R.type,W)},J=z=>u?.(n,z),Q=(z,W)=>{f(!0),d?.(T,n,R.type),L?.(z,W)};R8.onPointerDown(T.nativeEvent,{autoPanOnConnect:A,connectionMode:P,connectionRadius:O,domNode:D,handleId:R.id,nodeId:R.nodeId,nodeLookup:q,isTarget:G,edgeUpdaterType:R.type,lib:B,flowId:I,cancelConnection:M,panBy:U,isValidConnection:N,onConnect:J,onConnectStart:Q,onConnectEnd:Y,onReconnectEnd:F,updateConnection:V,getTransform:()=>b.getState().transform,getFromHandle:()=>b.getState().connection.fromHandle,dragThreshold:b.getState().connectionDragThreshold,handleDomNode:T.currentTarget})},w=T=>x(T,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),k=T=>x(T,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),C=()=>g(!0),_=()=>g(!1);return y.jsxs(y.Fragment,{children:[(e===!0||e==="source")&&y.jsx(RU,{position:s,centerX:o,centerY:a,radius:r,onMouseDown:w,onMouseEnter:C,onMouseOut:_,type:"source"}),(e===!0||e==="target")&&y.jsx(RU,{position:c,centerX:i,centerY:l,radius:r,onMouseDown:k,onMouseEnter:C,onMouseOut:_,type:"target"})]})}function CRe({id:e,edgesFocusable:r,edgesReconnectable:n,elementsSelectable:o,onClick:a,onDoubleClick:i,onContextMenu:l,onMouseEnter:s,onMouseMove:c,onMouseLeave:u,reconnectRadius:d,onReconnect:p,onReconnectStart:f,onReconnectEnd:g,rfId:b,edgeTypes:x,noPanClassName:w,onError:k,disableKeyboardA11y:C}){let _=Rt(ce=>ce.edgeLookup.get(e));const T=Rt(ce=>ce.defaultEdgeOptions);_=T?{...T,..._}:_;let R=_.type||"default",A=x?.[R]||SU[R];A===void 0&&(k?.("011",Ql.error011(R)),R="default",A=x?.default||SU.default);const D=!!(_.focusable||r&&typeof _.focusable>"u"),N=typeof p<"u"&&(_.reconnectable||n&&typeof _.reconnectable>"u"),P=!!(_.selectable||o&&typeof _.selectable>"u"),O=E.useRef(null),[B,L]=E.useState(!1),[Y,M]=E.useState(!1),q=fr(),{zIndex:I,sourceX:U,sourceY:V,targetX:G,targetY:F,sourcePosition:J,targetPosition:Q}=Rt(E.useCallback(ce=>{const de=ce.nodeLookup.get(_.source),be=ce.nodeLookup.get(_.target);if(!de||!be)return{zIndex:_.zIndex,...CU};const Me=dH({id:e,sourceNode:de,targetNode:be,sourceHandle:_.sourceHandle||null,targetHandle:_.targetHandle||null,connectionMode:ce.connectionMode,onError:k});return{zIndex:dCe({selected:_.selected,zIndex:_.zIndex,sourceNode:de,targetNode:be,elevateOnSelect:ce.elevateEdgesOnSelect}),...Me||CU}},[_.source,_.target,_.sourceHandle,_.targetHandle,_.selected,_.zIndex]),Ar),z=E.useMemo(()=>_.markerStart?`url('#${w8(_.markerStart,b)}')`:void 0,[_.markerStart,b]),W=E.useMemo(()=>_.markerEnd?`url('#${w8(_.markerEnd,b)}')`:void 0,[_.markerEnd,b]);if(_.hidden||U===null||V===null||G===null||F===null)return null;const X=ce=>{const{addSelectedEdges:de,unselectNodesAndEdges:be,multiSelectionActive:Me}=q.getState();P&&(q.setState({nodesSelectionActive:!1}),_.selected&&Me?(be({nodes:[],edges:[_]}),O.current?.blur()):de([e])),a&&a(ce,_)},Z=i?ce=>{i(ce,{..._})}:void 0,oe=l?ce=>{l(ce,{..._})}:void 0,ee=s?ce=>{s(ce,{..._})}:void 0,re=c?ce=>{c(ce,{..._})}:void 0,pe=u?ce=>{u(ce,{..._})}:void 0,Ce=ce=>{if(!C&&jF.includes(ce.key)&&P){const{unselectNodesAndEdges:de,addSelectedEdges:be}=q.getState();ce.key==="Escape"?(O.current?.blur(),de({edges:[_]})):be([e])}};return y.jsx("svg",{style:{zIndex:I},children:y.jsxs("g",{className:an(["react-flow__edge",`react-flow__edge-${R}`,_.className,w,{selected:_.selected,animated:_.animated,inactive:!P&&!a,updating:B,selectable:P}]),onClick:X,onDoubleClick:Z,onContextMenu:oe,onMouseEnter:ee,onMouseMove:re,onMouseLeave:pe,onKeyDown:D?Ce:void 0,tabIndex:D?0:void 0,role:_.ariaRole??(D?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":_.ariaLabel===null?void 0:_.ariaLabel||`Edge from ${_.source} to ${_.target}`,"aria-describedby":D?`${FH}-${b}`:void 0,ref:O,..._.domAttributes,children:[!Y&&y.jsx(A,{id:e,source:_.source,target:_.target,type:_.type,selected:_.selected,animated:_.animated,selectable:P,deletable:_.deletable??!0,label:_.label,labelStyle:_.labelStyle,labelShowBg:_.labelShowBg,labelBgStyle:_.labelBgStyle,labelBgPadding:_.labelBgPadding,labelBgBorderRadius:_.labelBgBorderRadius,sourceX:U,sourceY:V,targetX:G,targetY:F,sourcePosition:J,targetPosition:Q,data:_.data,style:_.style,sourceHandleId:_.sourceHandle,targetHandleId:_.targetHandle,markerStart:z,markerEnd:W,pathOptions:"pathOptions"in _?_.pathOptions:void 0,interactionWidth:_.interactionWidth}),N&&y.jsx(SRe,{edge:_,isReconnectable:N,reconnectRadius:d,onReconnect:p,onReconnectStart:f,onReconnectEnd:g,sourceX:U,sourceY:V,targetX:G,targetY:F,sourcePosition:J,targetPosition:Q,setUpdateHover:L,setReconnecting:M})]})})}const TRe=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function AU({defaultMarkerColor:e,onlyRenderVisibleElements:r,rfId:n,edgeTypes:o,noPanClassName:a,onReconnect:i,onEdgeContextMenu:l,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:u,onEdgeClick:d,reconnectRadius:p,onEdgeDoubleClick:f,onReconnectStart:g,onReconnectEnd:b,disableKeyboardA11y:x}){const{edgesFocusable:w,edgesReconnectable:k,elementsSelectable:C,onError:_}=Rt(TRe,Ar),T=pRe(r);return y.jsxs("div",{className:"react-flow__edges",children:[y.jsx(yRe,{defaultColor:e,rfId:n}),T.map(R=>y.jsx(CRe,{id:R,edgesFocusable:w,edgesReconnectable:k,elementsSelectable:C,noPanClassName:a,onReconnect:i,onContextMenu:l,onMouseEnter:s,onMouseMove:c,onMouseLeave:u,onClick:d,reconnectRadius:p,onDoubleClick:f,onReconnectStart:g,onReconnectEnd:b,rfId:n,onError:_,edgeTypes:o,disableKeyboardA11y:x},R))]})}AU.displayName="EdgeRenderer";const RRe=E.memo(AU),ARe=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function NRe({children:e}){const r=Rt(ARe);return y.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:r},children:e})}function DRe(e){const r=uf(),n=E.useRef(!1);E.useEffect(()=>{!n.current&&r.viewportInitialized&&e&&(setTimeout(()=>e(r),1),n.current=!0)},[e,r.viewportInitialized])}const $Re=e=>e.panZoom?.syncViewport;function PRe(e){const r=Rt($Re),n=fr();return E.useEffect(()=>{e&&(r?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,r]),null}function ORe(e){return e.connection.inProgress?{...e.connection,to:y0(e.connection.to,e.transform)}:{...e.connection}}function MRe(e){return ORe}function IRe(e){const r=MRe();return Rt(r,Ar)}const LRe=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function zRe({containerStyle:e,style:r,type:n,component:o}){const{nodesConnectable:a,width:i,height:l,isValid:s,inProgress:c}=Rt(LRe,Ar);return i&&a&&c?y.jsx("svg",{style:e,width:i,height:l,className:"react-flow__connectionline react-flow__container",children:y.jsx("g",{className:an(["react-flow__connection",UF(s)]),children:y.jsx(NU,{style:r,type:n,CustomComponent:o,isValid:s})})}):null}const NU=({style:e,type:r=eu.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:a,from:i,fromNode:l,fromHandle:s,fromPosition:c,to:u,toNode:d,toHandle:p,toPosition:f}=IRe();if(!a)return;if(n)return y.jsx(n,{connectionLineType:r,connectionLineStyle:e,fromNode:l,fromHandle:s,fromX:i.x,fromY:i.y,toX:u.x,toY:u.y,fromPosition:c,toPosition:f,connectionStatus:UF(o),toNode:d,toHandle:p});let g="";const b={sourceX:i.x,sourceY:i.y,sourcePosition:c,targetX:u.x,targetY:u.y,targetPosition:f};switch(r){case eu.Bezier:[g]=kx(b);break;case eu.SimpleBezier:[g]=hU(b);break;case eu.Step:[g]=_x({...b,borderRadius:0});break;case eu.SmoothStep:[g]=_x(b);break;default:[g]=lH(b)}return y.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};NU.displayName="ConnectionLine";const jRe={};function DU(e=jRe){E.useRef(e),fr(),E.useEffect(()=>{},[e])}function BRe(){fr(),E.useRef(!1),E.useEffect(()=>{},[])}function $U({nodeTypes:e,edgeTypes:r,onInit:n,onNodeClick:o,onEdgeClick:a,onNodeDoubleClick:i,onEdgeDoubleClick:l,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:u,onNodeContextMenu:d,onSelectionContextMenu:p,onSelectionStart:f,onSelectionEnd:g,connectionLineType:b,connectionLineStyle:x,connectionLineComponent:w,connectionLineContainerStyle:k,selectionKeyCode:C,selectionOnDrag:_,selectionMode:T,multiSelectionKeyCode:R,panActivationKeyCode:A,zoomActivationKeyCode:D,deleteKeyCode:N,onlyRenderVisibleElements:P,elementsSelectable:O,defaultViewport:B,translateExtent:L,minZoom:Y,maxZoom:M,preventScrolling:q,defaultMarkerColor:I,zoomOnScroll:U,zoomOnPinch:V,panOnScroll:G,panOnScrollSpeed:F,panOnScrollMode:J,zoomOnDoubleClick:Q,panOnDrag:z,onPaneClick:W,onPaneMouseEnter:X,onPaneMouseMove:Z,onPaneMouseLeave:oe,onPaneScroll:ee,onPaneContextMenu:re,paneClickDistance:pe,nodeClickDistance:Ce,onEdgeContextMenu:ce,onEdgeMouseEnter:de,onEdgeMouseMove:be,onEdgeMouseLeave:Me,reconnectRadius:Xe,onReconnect:Ge,onReconnectStart:_t,onReconnectEnd:Qe,noDragClassName:St,noWheelClassName:Ke,noPanClassName:We,disableKeyboardA11y:st,nodeExtent:Et,rfId:$n,viewport:_e,onViewportChange:we}){return DU(e),DU(r),BRe(),DRe(n),PRe(_e),y.jsx(nRe,{onPaneClick:W,onPaneMouseEnter:X,onPaneMouseMove:Z,onPaneMouseLeave:oe,onPaneContextMenu:re,onPaneScroll:ee,paneClickDistance:pe,deleteKeyCode:N,selectionKeyCode:C,selectionOnDrag:_,selectionMode:T,onSelectionStart:f,onSelectionEnd:g,multiSelectionKeyCode:R,panActivationKeyCode:A,zoomActivationKeyCode:D,elementsSelectable:O,zoomOnScroll:U,zoomOnPinch:V,zoomOnDoubleClick:Q,panOnScroll:G,panOnScrollSpeed:F,panOnScrollMode:J,panOnDrag:z,defaultViewport:B,translateExtent:L,minZoom:Y,maxZoom:M,onSelectionContextMenu:p,preventScrolling:q,noDragClassName:St,noWheelClassName:Ke,noPanClassName:We,disableKeyboardA11y:st,onViewportChange:we,isControlledViewport:!!_e,children:y.jsxs(NRe,{children:[y.jsx(RRe,{edgeTypes:r,onEdgeClick:a,onEdgeDoubleClick:l,onReconnect:Ge,onReconnectStart:_t,onReconnectEnd:Qe,onlyRenderVisibleElements:P,onEdgeContextMenu:ce,onEdgeMouseEnter:de,onEdgeMouseMove:be,onEdgeMouseLeave:Me,reconnectRadius:Xe,defaultMarkerColor:I,noPanClassName:We,disableKeyboardA11y:st,rfId:$n}),y.jsx(zRe,{style:x,type:b,component:w,containerStyle:k}),y.jsx("div",{className:"react-flow__edgelabel-renderer"}),y.jsx(dRe,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:i,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:u,onNodeContextMenu:d,nodeClickDistance:Ce,onlyRenderVisibleElements:P,noPanClassName:We,noDragClassName:St,disableKeyboardA11y:st,nodeExtent:Et,rfId:$n}),y.jsx("div",{className:"react-flow__viewport-portal"})]})})}$U.displayName="GraphView";const FRe=E.memo($U),PU=({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,width:a,height:i,fitView:l,fitViewOptions:s,minZoom:c=.5,maxZoom:u=2,nodeOrigin:d,nodeExtent:p}={})=>{const f=new Map,g=new Map,b=new Map,x=new Map,w=o??r??[],k=n??e??[],C=d??[0,0],_=p??d0;gH(b,x,w);const T=E8(k,f,g,{nodeOrigin:C,nodeExtent:_,elevateNodesOnSelect:!1});let R=[0,0,1];if(l&&a&&i){const A=tf(f,{filter:O=>!!((O.width||O.initialWidth)&&(O.height||O.initialHeight))}),{x:D,y:N,zoom:P}=tu(A,a,i,c,u,s?.padding??.1);R=[D,N,P]}return{rfId:"1",width:a??0,height:i??0,transform:R,nodes:k,nodesInitialized:T,nodeLookup:f,parentLookup:g,edges:w,edgeLookup:x,connectionLookup:b,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:o!==void 0,panZoom:null,minZoom:c,maxZoom:u,translateExtent:d0,nodeExtent:_,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:ef.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:C,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!1,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:l??!1,fitViewOptions:s,fitViewResolver:null,connection:{...FF},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:aCe,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:BF}},HRe=({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,width:a,height:i,fitView:l,fitViewOptions:s,minZoom:c,maxZoom:u,nodeOrigin:d,nodeExtent:p})=>sTe((f,g)=>{async function b(){const{nodeLookup:x,panZoom:w,fitViewOptions:k,fitViewResolver:C,width:_,height:T,minZoom:R,maxZoom:A}=g();w&&(await nCe({nodes:x,width:_,height:T,panZoom:w,minZoom:R,maxZoom:A},k),C?.resolve(!0),f({fitViewResolver:null}))}return{...PU({nodes:e,edges:r,width:a,height:i,fitView:l,fitViewOptions:s,minZoom:c,maxZoom:u,nodeOrigin:d,nodeExtent:p,defaultNodes:n,defaultEdges:o}),setNodes:x=>{const{nodeLookup:w,parentLookup:k,nodeOrigin:C,elevateNodesOnSelect:_,fitViewQueued:T}=g(),R=E8(x,w,k,{nodeOrigin:C,nodeExtent:p,elevateNodesOnSelect:_,checkEquality:!0});T&&R?(b(),f({nodes:x,nodesInitialized:R,fitViewQueued:!1,fitViewOptions:void 0})):f({nodes:x,nodesInitialized:R})},setEdges:x=>{const{connectionLookup:w,edgeLookup:k}=g();gH(w,k,x),f({edges:x})},setDefaultNodesAndEdges:(x,w)=>{if(x){const{setNodes:k}=g();k(x),f({hasDefaultNodes:!0})}if(w){const{setEdges:k}=g();k(w),f({hasDefaultEdges:!0})}},updateNodeInternals:x=>{const{triggerNodeChanges:w,nodeLookup:k,parentLookup:C,domNode:_,nodeOrigin:T,nodeExtent:R,debug:A,fitViewQueued:D}=g(),{changes:N,updatedInternals:P}=CCe(x,k,C,_,T,R);P&&(kCe(k,C,{nodeOrigin:T,nodeExtent:R}),D?(b(),f({fitViewQueued:!1,fitViewOptions:void 0})):f({}),N?.length>0&&(A&&console.log("React Flow: trigger node changes",N),w?.(N)))},updateNodePositions:(x,w=!1)=>{const k=[],C=[],{nodeLookup:_,triggerNodeChanges:T}=g();for(const[R,A]of x){const D=_.get(R),N=!!(D?.expandParent&&D?.parentId&&A?.position),P={id:R,type:"position",position:N?{x:Math.max(0,A.position.x),y:Math.max(0,A.position.y)}:A.position,dragging:w};N&&D.parentId&&k.push({id:R,parentId:D.parentId,rect:{...A.internals.positionAbsolute,width:A.measured.width??0,height:A.measured.height??0}}),C.push(P)}if(k.length>0){const{parentLookup:R,nodeOrigin:A}=g(),D=C8(k,_,R,A);C.push(...D)}T(C)},triggerNodeChanges:x=>{const{onNodesChange:w,setNodes:k,nodes:C,hasDefaultNodes:_,debug:T}=g();if(x?.length){if(_){const R=Rx(x,C);k(R)}T&&console.log("React Flow: trigger node changes",x),w?.(x)}},triggerEdgeChanges:x=>{const{onEdgesChange:w,setEdges:k,edges:C,hasDefaultEdges:_,debug:T}=g();if(x?.length){if(_){const R=Ax(x,C);k(R)}T&&console.log("React Flow: trigger edge changes",x),w?.(x)}},addSelectedNodes:x=>{const{multiSelectionActive:w,edgeLookup:k,nodeLookup:C,triggerNodeChanges:_,triggerEdgeChanges:T}=g();if(w){const R=x.map(A=>Fd(A,!0));_(R);return}_(cf(C,new Set([...x]),!0)),T(cf(k))},addSelectedEdges:x=>{const{multiSelectionActive:w,edgeLookup:k,nodeLookup:C,triggerNodeChanges:_,triggerEdgeChanges:T}=g();if(w){const R=x.map(A=>Fd(A,!0));T(R);return}T(cf(k,new Set([...x]))),_(cf(C,new Set,!0))},unselectNodesAndEdges:({nodes:x,edges:w}={})=>{const{edges:k,nodes:C,nodeLookup:_,triggerNodeChanges:T,triggerEdgeChanges:R}=g(),A=x||C,D=w||k,N=A.map(O=>{const B=_.get(O.id);return B&&(B.selected=!1),Fd(O.id,!1)}),P=D.map(O=>Fd(O.id,!1));T(N),R(P)},setMinZoom:x=>{const{panZoom:w,maxZoom:k}=g();w?.setScaleExtent([x,k]),f({minZoom:x})},setMaxZoom:x=>{const{panZoom:w,minZoom:k}=g();w?.setScaleExtent([k,x]),f({maxZoom:x})},setTranslateExtent:x=>{g().panZoom?.setTranslateExtent(x),f({translateExtent:x})},setPaneClickDistance:x=>{g().panZoom?.setClickDistance(x)},resetSelectedElements:()=>{const{edges:x,nodes:w,triggerNodeChanges:k,triggerEdgeChanges:C,elementsSelectable:_}=g();if(!_)return;const T=w.reduce((A,D)=>D.selected?[...A,Fd(D.id,!1)]:A,[]),R=x.reduce((A,D)=>D.selected?[...A,Fd(D.id,!1)]:A,[]);k(T),C(R)},setNodeExtent:x=>{const{nodes:w,nodeLookup:k,parentLookup:C,nodeOrigin:_,elevateNodesOnSelect:T,nodeExtent:R}=g();x[0][0]===R[0][0]&&x[0][1]===R[0][1]&&x[1][0]===R[1][0]&&x[1][1]===R[1][1]||(E8(w,k,C,{nodeOrigin:_,nodeExtent:x,elevateNodesOnSelect:T,checkEquality:!1}),f({nodeExtent:x}))},panBy:x=>{const{transform:w,width:k,height:C,panZoom:_,translateExtent:T}=g();return TCe({delta:x,panZoom:_,transform:w,translateExtent:T,width:k,height:C})},setCenter:async(x,w,k)=>{const{width:C,height:_,maxZoom:T,panZoom:R}=g();if(!R)return Promise.resolve(!1);const A=typeof k?.zoom<"u"?k.zoom:T;return await R.setViewport({x:C/2-x*A,y:_/2-w*A,zoom:A},{duration:k?.duration,ease:k?.ease,interpolate:k?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{f({connection:{...FF}})},updateConnection:x=>{f({connection:x})},reset:()=>f({...PU()})}},Object.is);function Px({initialNodes:e,initialEdges:r,defaultNodes:n,defaultEdges:o,initialWidth:a,initialHeight:i,initialMinZoom:l,initialMaxZoom:s,initialFitViewOptions:c,fitView:u,nodeOrigin:d,nodeExtent:p,children:f}){const[g]=E.useState(()=>HRe({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,width:a,height:i,fitView:u,minZoom:l,maxZoom:s,fitViewOptions:c,nodeOrigin:d,nodeExtent:p}));return y.jsx(cTe,{value:g,children:y.jsx($Te,{children:f})})}function URe({children:e,nodes:r,edges:n,defaultNodes:o,defaultEdges:a,width:i,height:l,fitView:s,fitViewOptions:c,minZoom:u,maxZoom:d,nodeOrigin:p,nodeExtent:f}){return E.useContext(Cx)?y.jsx(y.Fragment,{children:e}):y.jsx(Px,{initialNodes:r,initialEdges:n,defaultNodes:o,defaultEdges:a,initialWidth:i,initialHeight:l,fitView:s,initialFitViewOptions:c,initialMinZoom:u,initialMaxZoom:d,nodeOrigin:p,nodeExtent:f,children:e})}const qRe={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function VRe({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,className:a,nodeTypes:i,edgeTypes:l,onNodeClick:s,onEdgeClick:c,onInit:u,onMove:d,onMoveStart:p,onMoveEnd:f,onConnect:g,onConnectStart:b,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:k,onNodeMouseEnter:C,onNodeMouseMove:_,onNodeMouseLeave:T,onNodeContextMenu:R,onNodeDoubleClick:A,onNodeDragStart:D,onNodeDrag:N,onNodeDragStop:P,onNodesDelete:O,onEdgesDelete:B,onDelete:L,onSelectionChange:Y,onSelectionDragStart:M,onSelectionDrag:q,onSelectionDragStop:I,onSelectionContextMenu:U,onSelectionStart:V,onSelectionEnd:G,onBeforeDelete:F,connectionMode:J,connectionLineType:Q=eu.Bezier,connectionLineStyle:z,connectionLineComponent:W,connectionLineContainerStyle:X,deleteKeyCode:Z="Backspace",selectionKeyCode:oe="Shift",selectionOnDrag:ee=!1,selectionMode:re=p0.Full,panActivationKeyCode:pe="Space",multiSelectionKeyCode:Ce=of()?"Meta":"Control",zoomActivationKeyCode:ce=of()?"Meta":"Control",snapToGrid:de,snapGrid:be,onlyRenderVisibleElements:Me=!1,selectNodesOnDrag:Xe,nodesDraggable:Ge,autoPanOnNodeFocus:_t,nodesConnectable:Qe,nodesFocusable:St,nodeOrigin:Ke=HH,edgesFocusable:We,edgesReconnectable:st,elementsSelectable:Et=!0,defaultViewport:$n=kTe,minZoom:_e=.5,maxZoom:we=2,translateExtent:rt=d0,preventScrolling:at=!0,nodeExtent:Dt,defaultMarkerColor:Wr="#b1b1b7",zoomOnScroll:$t=!0,zoomOnPinch:Tr=!0,panOnScroll:vo=!1,panOnScrollSpeed:Pn=.5,panOnScrollMode:Fr=zd.Free,zoomOnDoubleClick:no=!0,panOnDrag:ur=!0,onPaneClick:ha,onPaneMouseEnter:_s,onPaneMouseMove:Qp,onPaneMouseLeave:Cc,onPaneScroll:Ub,onPaneContextMenu:Sg,paneClickDistance:Hu=0,nodeClickDistance:Jp=0,children:eh,onReconnect:Cg,onReconnectStart:qb,onReconnectEnd:Ti,onEdgeContextMenu:On,onEdgeDoubleClick:oo,onEdgeMouseEnter:Es,onEdgeMouseMove:th,onEdgeMouseLeave:Vb,reconnectRadius:Yb=10,onNodesChange:Tg,onEdgesChange:Tc,noDragClassName:rh="nodrag",noWheelClassName:Ss="nowheel",noPanClassName:Ri="nopan",fitView:zl,fitViewOptions:Ai,connectOnClick:tn,attributionPosition:Rg,proOptions:Ag,defaultEdgeOptions:jl,elevateNodesOnSelect:Cs,elevateEdgesOnSelect:Wb,disableKeyboardA11y:Uu=!1,autoPanOnConnect:Ng,autoPanOnNodeDrag:Gb,autoPanSpeed:qu,connectionRadius:Vu,isValidConnection:Fa,onError:nh,style:Dg,id:Ni,nodeDragThreshold:oh,connectionDragThreshold:ah,viewport:Xb,onViewportChange:$g,width:Lo,height:Pg,colorMode:Kb="light",debug:Yu,onScroll:Wu,ariaLabelConfig:Gu,...Zb},zo){const Bl=Ni||"1",Og=CTe(Kb),ih=E.useCallback(Di=>{Di.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Wu?.(Di)},[Wu]);return y.jsx("div",{"data-testid":"rf__wrapper",...Zb,onScroll:ih,style:{...Dg,...qRe},ref:zo,className:an(["react-flow",a,Og]),id:Ni,role:"application",children:y.jsxs(URe,{nodes:e,edges:r,width:Lo,height:Pg,fitView:zl,fitViewOptions:Ai,minZoom:_e,maxZoom:we,nodeOrigin:Ke,nodeExtent:Dt,children:[y.jsx(FRe,{onInit:u,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:C,onNodeMouseMove:_,onNodeMouseLeave:T,onNodeContextMenu:R,onNodeDoubleClick:A,nodeTypes:i,edgeTypes:l,connectionLineType:Q,connectionLineStyle:z,connectionLineComponent:W,connectionLineContainerStyle:X,selectionKeyCode:oe,selectionOnDrag:ee,selectionMode:re,deleteKeyCode:Z,multiSelectionKeyCode:Ce,panActivationKeyCode:pe,zoomActivationKeyCode:ce,onlyRenderVisibleElements:Me,defaultViewport:$n,translateExtent:rt,minZoom:_e,maxZoom:we,preventScrolling:at,zoomOnScroll:$t,zoomOnPinch:Tr,zoomOnDoubleClick:no,panOnScroll:vo,panOnScrollSpeed:Pn,panOnScrollMode:Fr,panOnDrag:ur,onPaneClick:ha,onPaneMouseEnter:_s,onPaneMouseMove:Qp,onPaneMouseLeave:Cc,onPaneScroll:Ub,onPaneContextMenu:Sg,paneClickDistance:Hu,nodeClickDistance:Jp,onSelectionContextMenu:U,onSelectionStart:V,onSelectionEnd:G,onReconnect:Cg,onReconnectStart:qb,onReconnectEnd:Ti,onEdgeContextMenu:On,onEdgeDoubleClick:oo,onEdgeMouseEnter:Es,onEdgeMouseMove:th,onEdgeMouseLeave:Vb,reconnectRadius:Yb,defaultMarkerColor:Wr,noDragClassName:rh,noWheelClassName:Ss,noPanClassName:Ri,rfId:Bl,disableKeyboardA11y:Uu,nodeExtent:Dt,viewport:Xb,onViewportChange:$g}),y.jsx(STe,{nodes:e,edges:r,defaultNodes:n,defaultEdges:o,onConnect:g,onConnectStart:b,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:k,nodesDraggable:Ge,autoPanOnNodeFocus:_t,nodesConnectable:Qe,nodesFocusable:St,edgesFocusable:We,edgesReconnectable:st,elementsSelectable:Et,elevateNodesOnSelect:Cs,elevateEdgesOnSelect:Wb,minZoom:_e,maxZoom:we,nodeExtent:Dt,onNodesChange:Tg,onEdgesChange:Tc,snapToGrid:de,snapGrid:be,connectionMode:J,translateExtent:rt,connectOnClick:tn,defaultEdgeOptions:jl,fitView:zl,fitViewOptions:Ai,onNodesDelete:O,onEdgesDelete:B,onDelete:L,onNodeDragStart:D,onNodeDrag:N,onNodeDragStop:P,onSelectionDrag:q,onSelectionDragStart:M,onSelectionDragStop:I,onMove:d,onMoveStart:p,onMoveEnd:f,noPanClassName:Ri,nodeOrigin:Ke,rfId:Bl,autoPanOnConnect:Ng,autoPanOnNodeDrag:Gb,autoPanSpeed:qu,onError:nh,connectionRadius:Vu,isValidConnection:Fa,selectNodesOnDrag:Xe,nodeDragThreshold:oh,connectionDragThreshold:ah,onBeforeDelete:F,paneClickDistance:Hu,debug:Yu,ariaLabelConfig:Gu}),y.jsx(wTe,{onSelectionChange:Y}),eh,y.jsx(gTe,{proOptions:Ag,position:Rg}),y.jsx(mTe,{rfId:Bl,disableKeyboardA11y:Uu})]})})}var YRe=JH(VRe);const WRe=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");function OU({children:e}){const r=Rt(WRe);return r?ji.createPortal(e,r):null}function GRe(e){return Rt(E.useCallback(r=>r.nodeLookup.get(e),[e]),Ar)}function XRe({dimensions:e,lineWidth:r,variant:n,className:o}){return y.jsx("path",{strokeWidth:r,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:an(["react-flow__background-pattern",n,o])})}function KRe({radius:e,className:r}){return y.jsx("circle",{cx:e,cy:e,r:e,className:an(["react-flow__background-pattern","dots",r])})}var Xi;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Xi||(Xi={}));const ZRe={[Xi.Dots]:1,[Xi.Lines]:1,[Xi.Cross]:6},QRe=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function MU({id:e,variant:r=Xi.Dots,gap:n=20,size:o,lineWidth:a=1,offset:i=0,color:l,bgColor:s,style:c,className:u,patternClassName:d}){const p=E.useRef(null),{transform:f,patternId:g}=Rt(QRe,Ar),b=o||ZRe[r],x=r===Xi.Dots,w=r===Xi.Cross,k=Array.isArray(n)?n:[n,n],C=[k[0]*f[2]||1,k[1]*f[2]||1],_=b*f[2],T=Array.isArray(i)?i:[i,i],R=w?[_,_]:C,A=[T[0]*f[2]||1+R[0]/2,T[1]*f[2]||1+R[1]/2],D=`${g}${e||""}`;return y.jsxs("svg",{className:an(["react-flow__background",u]),style:{...c,...Nx,"--xy-background-color-props":s,"--xy-background-pattern-color-props":l},ref:p,"data-testid":"rf__background",children:[y.jsx("pattern",{id:D,x:f[0]%C[0],y:f[1]%C[1],width:C[0],height:C[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${A[0]},-${A[1]})`,children:x?y.jsx(KRe,{radius:_/2,className:d}):y.jsx(XRe,{dimensions:R,lineWidth:a,variant:r,className:d})}),y.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${D})`})]})}MU.displayName="Background";const IU=E.memo(MU);function JRe(){return y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:y.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function eAe(){return y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:y.jsx("path",{d:"M0 0h32v4.2H0z"})})}function tAe(){return y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:y.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function rAe(){return y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:y.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function nAe(){return y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:y.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Ox({children:e,className:r,...n}){return y.jsx("button",{type:"button",className:an(["react-flow__controls-button",r]),...n,children:e})}const oAe=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function LU({style:e,showZoom:r=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:a,onZoomIn:i,onZoomOut:l,onFitView:s,onInteractiveChange:c,className:u,children:d,position:p="bottom-left",orientation:f="vertical","aria-label":g}){const b=fr(),{isInteractive:x,minZoomReached:w,maxZoomReached:k,ariaLabelConfig:C}=Rt(oAe,Ar),{zoomIn:_,zoomOut:T,fitView:R}=uf(),A=()=>{_(),i?.()},D=()=>{T(),l?.()},N=()=>{R(a),s?.()},P=()=>{b.setState({nodesDraggable:!x,nodesConnectable:!x,elementsSelectable:!x}),c?.(!x)};return y.jsxs(ou,{className:an(["react-flow__controls",f==="horizontal"?"horizontal":"vertical",u]),position:p,style:e,"data-testid":"rf__controls","aria-label":g??C["controls.ariaLabel"],children:[r&&y.jsxs(y.Fragment,{children:[y.jsx(Ox,{onClick:A,className:"react-flow__controls-zoomin",title:C["controls.zoomIn.ariaLabel"],"aria-label":C["controls.zoomIn.ariaLabel"],disabled:k,children:y.jsx(JRe,{})}),y.jsx(Ox,{onClick:D,className:"react-flow__controls-zoomout",title:C["controls.zoomOut.ariaLabel"],"aria-label":C["controls.zoomOut.ariaLabel"],disabled:w,children:y.jsx(eAe,{})})]}),n&&y.jsx(Ox,{className:"react-flow__controls-fitview",onClick:N,title:C["controls.fitView.ariaLabel"],"aria-label":C["controls.fitView.ariaLabel"],children:y.jsx(tAe,{})}),o&&y.jsx(Ox,{className:"react-flow__controls-interactive",onClick:P,title:C["controls.interactive.ariaLabel"],"aria-label":C["controls.interactive.ariaLabel"],children:x?y.jsx(nAe,{}):y.jsx(rAe,{})}),d]})}LU.displayName="Controls",E.memo(LU);function aAe({id:e,x:r,y:n,width:o,height:a,style:i,color:l,strokeColor:s,strokeWidth:c,className:u,borderRadius:d,shapeRendering:p,selected:f,onClick:g}){const{background:b,backgroundColor:x}=i||{},w=l||b||x;return y.jsx("rect",{className:an(["react-flow__minimap-node",{selected:f},u]),x:r,y:n,rx:d,ry:d,width:o,height:a,style:{fill:w,stroke:s,strokeWidth:c},shapeRendering:p,onClick:g?k=>g(k,e):void 0})}const iAe=E.memo(aAe),lAe=e=>e.nodes.map(r=>r.id),z8=e=>e instanceof Function?e:()=>e;function sAe({nodeStrokeColor:e,nodeColor:r,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:a,nodeComponent:i=iAe,onClick:l}){const s=Rt(lAe,Ar),c=z8(r),u=z8(e),d=z8(n),p=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return y.jsx(y.Fragment,{children:s.map(f=>y.jsx(uAe,{id:f,nodeColorFunc:c,nodeStrokeColorFunc:u,nodeClassNameFunc:d,nodeBorderRadius:o,nodeStrokeWidth:a,NodeComponent:i,onClick:l,shapeRendering:p},f))})}function cAe({id:e,nodeColorFunc:r,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:a,nodeStrokeWidth:i,shapeRendering:l,NodeComponent:s,onClick:c}){const{node:u,x:d,y:p,width:f,height:g}=Rt(b=>{const{internals:x}=b.nodeLookup.get(e),w=x.userNode,{x:k,y:C}=x.positionAbsolute,{width:_,height:T}=Wn(w);return{node:w,x:k,y:C,width:_,height:T}},Ar);return!u||u.hidden||!ZF(u)?null:y.jsx(s,{x:d,y:p,width:f,height:g,style:u.style,selected:!!u.selected,className:o(u),color:r(u),borderRadius:a,strokeColor:n(u),strokeWidth:i,shapeRendering:l,onClick:c,id:u.id})}const uAe=E.memo(cAe);var dAe=E.memo(sAe);const pAe=200,hAe=150,fAe=e=>!e.hidden,mAe=e=>{const r={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:r,boundingRect:e.nodeLookup.size>0?vx(tf(e.nodeLookup,{filter:fAe}),r):r,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},gAe="react-flow__minimap-desc";function zU({style:e,className:r,nodeStrokeColor:n,nodeColor:o,nodeClassName:a="",nodeBorderRadius:i=5,nodeStrokeWidth:l,nodeComponent:s,bgColor:c,maskColor:u,maskStrokeColor:d,maskStrokeWidth:p,position:f="bottom-right",onClick:g,onNodeClick:b,pannable:x=!1,zoomable:w=!1,ariaLabel:k,inversePan:C,zoomStep:_=1,offsetScale:T=5}){const R=fr(),A=E.useRef(null),{boundingRect:D,viewBB:N,rfId:P,panZoom:O,translateExtent:B,flowWidth:L,flowHeight:Y,ariaLabelConfig:M}=Rt(mAe,Ar),q=e?.width??pAe,I=e?.height??hAe,U=D.width/q,V=D.height/I,G=Math.max(U,V),F=G*q,J=G*I,Q=T*G,z=D.x-(F-D.width)/2-Q,W=D.y-(J-D.height)/2-Q,X=F+Q*2,Z=J+Q*2,oe=`${gAe}-${P}`,ee=E.useRef(0),re=E.useRef();ee.current=G,E.useEffect(()=>{if(A.current&&O)return re.current=ICe({domNode:A.current,panZoom:O,getTransform:()=>R.getState().transform,getViewScale:()=>ee.current}),()=>{re.current?.destroy()}},[O]),E.useEffect(()=>{re.current?.update({translateExtent:B,width:L,height:Y,inversePan:C,pannable:x,zoomStep:_,zoomable:w})},[x,w,C,_,B,L,Y]);const pe=g?de=>{const[be,Me]=re.current?.pointer(de)||[0,0];g(de,{x:be,y:Me})}:void 0,Ce=b?E.useCallback((de,be)=>{const Me=R.getState().nodeLookup.get(be).internals.userNode;b(de,Me)},[]):void 0,ce=k??M["minimap.ariaLabel"];return y.jsx(ou,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-background-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof p=="number"?p*G:void 0,"--xy-minimap-node-background-color-props":typeof o=="string"?o:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof l=="number"?l:void 0},className:an(["react-flow__minimap",r]),"data-testid":"rf__minimap",children:y.jsxs("svg",{width:q,height:I,viewBox:`${z} ${W} ${X} ${Z}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":oe,ref:A,onClick:pe,children:[ce&&y.jsx("title",{id:oe,children:ce}),y.jsx(dAe,{onClick:Ce,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:a,nodeStrokeWidth:l,nodeComponent:s}),y.jsx("path",{className:"react-flow__minimap-mask",d:`M${z-Q},${W-Q}h${X+Q*2}v${Z+Q*2}h${-X-Q*2}z + M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}zU.displayName="MiniMap",E.memo(zU);const yAe=e=>r=>e?`${Math.max(1/r.transform[2],1)}`:void 0,bAe={[sf.Line]:"right",[sf.Handle]:"bottom-right"};function vAe({nodeId:e,position:r,variant:n=sf.Handle,className:o,style:a=void 0,children:i,color:l,minWidth:s=10,minHeight:c=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:p=!1,resizeDirection:f,autoScale:g=!0,shouldResize:b,onResizeStart:x,onResize:w,onResizeEnd:k}){const C=L8(),_=typeof e=="string"?e:C,T=fr(),R=E.useRef(null),A=n===sf.Handle,D=Rt(E.useCallback(yAe(A&&g),[A,g]),Ar),N=E.useRef(null),P=r??bAe[n];E.useEffect(()=>{if(!(!R.current||!_))return N.current||(N.current=QCe({domNode:R.current,nodeId:_,getStoreItems:()=>{const{nodeLookup:B,transform:L,snapGrid:Y,snapToGrid:M,nodeOrigin:q,domNode:I}=T.getState();return{nodeLookup:B,transform:L,snapGrid:Y,snapToGrid:M,nodeOrigin:q,paneDomNode:I}},onChange:(B,L)=>{const{triggerNodeChanges:Y,nodeLookup:M,parentLookup:q,nodeOrigin:I}=T.getState(),U=[],V={x:B.x,y:B.y},G=M.get(_);if(G&&G.expandParent&&G.parentId){const F=G.origin??I,J=B.width??G.measured.width??0,Q=B.height??G.measured.height??0,z={id:G.id,parentId:G.parentId,rect:{width:J,height:Q,...QF({x:B.x??G.position.x,y:B.y??G.position.y},{width:J,height:Q},G.parentId,M,F)}},W=C8([z],M,q,I);U.push(...W),V.x=B.x?Math.max(F[0]*J,B.x):void 0,V.y=B.y?Math.max(F[1]*Q,B.y):void 0}if(V.x!==void 0&&V.y!==void 0){const F={id:_,type:"position",position:{...V}};U.push(F)}if(B.width!==void 0&&B.height!==void 0){const F={id:_,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:B.width,height:B.height}};U.push(F)}for(const F of L){const J={...F,type:"position"};U.push(J)}Y(U)},onEnd:({width:B,height:L})=>{const Y={id:_,type:"dimensions",resizing:!1,dimensions:{width:B,height:L}};T.getState().triggerNodeChanges([Y])}})),N.current.update({controlPosition:P,boundaries:{minWidth:s,minHeight:c,maxWidth:u,maxHeight:d},keepAspectRatio:p,resizeDirection:f,onResizeStart:x,onResize:w,onResizeEnd:k,shouldResize:b}),()=>{N.current?.destroy()}},[P,s,c,u,d,p,x,w,k,b]);const O=P.split("-");return y.jsx("div",{className:an(["react-flow__resize-control","nodrag",...O,n,o]),ref:R,style:{...a,scale:D,...l&&{[A?"backgroundColor":"borderColor"]:l}},children:i})}E.memo(vAe);const xAe=e=>e.domNode?.querySelector(".react-flow__renderer");function wAe({children:e}){const r=Rt(xAe);return r?ji.createPortal(e,r):null}const kAe=(e,r)=>e?.internals.positionAbsolute.x!==r?.internals.positionAbsolute.x||e?.internals.positionAbsolute.y!==r?.internals.positionAbsolute.y||e?.measured.width!==r?.measured.width||e?.measured.height!==r?.measured.height||e?.selected!==r?.selected||e?.internals.z!==r?.internals.z,_Ae=(e,r)=>{if(e.size!==r.size)return!1;for(const[n,o]of e)if(kAe(o,r.get(n)))return!1;return!0},EAe=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2],selectedNodesCount:e.nodes.filter(r=>r.selected).length});function jU({nodeId:e,children:r,className:n,style:o,isVisible:a,position:i=tt.Top,offset:l=10,align:s="center",...c}){const u=L8(),d=E.useCallback(T=>(Array.isArray(e)?e:[e||u||""]).reduce((R,A)=>{const D=T.nodeLookup.get(A);return D&&R.set(D.id,D),R},new Map),[e,u]),p=Rt(d,_Ae),{x:f,y:g,zoom:b,selectedNodesCount:x}=Rt(EAe,Ar);if(!(typeof a=="boolean"?a:p.size===1&&p.values().next().value?.selected&&x===1)||!p.size)return null;const w=tf(p),k=Array.from(p.values()),C=Math.max(...k.map(T=>T.internals.z+1)),_={position:"absolute",transform:xCe(w,{x:f,y:g,zoom:b},i,l,s),zIndex:C,...o};return y.jsx(wAe,{children:y.jsx("div",{style:_,className:an(["react-flow__node-toolbar",n]),...c,"data-id":k.reduce((T,R)=>`${T}${R.id} `,"").trim(),children:r})})}var SAe=Object.getOwnPropertyNames,CAe=Object.getOwnPropertySymbols,TAe=Object.prototype.hasOwnProperty;function BU(e,r){return function(n,o,a){return e(n,o,a)&&r(n,o,a)}}function Mx(e){return function(r,n,o){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,o);var a=o.cache,i=a.get(r),l=a.get(n);if(i&&l)return i===n&&l===r;a.set(r,n),a.set(n,r);var s=e(r,n,o);return a.delete(r),a.delete(n),s}}function FU(e){return SAe(e).concat(CAe(e))}var RAe=Object.hasOwn||(function(e,r){return TAe.call(e,r)});function Hd(e,r){return e===r||!e&&!r&&e!==e&&r!==r}var AAe="__v",NAe="__o",DAe="_owner",HU=Object.getOwnPropertyDescriptor,UU=Object.keys;function $Ae(e,r,n){var o=e.length;if(r.length!==o)return!1;for(;o-- >0;)if(!n.equals(e[o],r[o],o,o,e,r,n))return!1;return!0}function PAe(e,r){return Hd(e.getTime(),r.getTime())}function OAe(e,r){return e.name===r.name&&e.message===r.message&&e.cause===r.cause&&e.stack===r.stack}function MAe(e,r){return e===r}function qU(e,r,n){var o=e.size;if(o!==r.size)return!1;if(!o)return!0;for(var a=new Array(o),i=e.entries(),l,s,c=0;(l=i.next())&&!l.done;){for(var u=r.entries(),d=!1,p=0;(s=u.next())&&!s.done;){if(a[p]){p++;continue}var f=l.value,g=s.value;if(n.equals(f[0],g[0],c,p,e,r,n)&&n.equals(f[1],g[1],f[0],g[0],e,r,n)){d=a[p]=!0;break}p++}if(!d)return!1;c++}return!0}var IAe=Hd;function LAe(e,r,n){var o=UU(e),a=o.length;if(UU(r).length!==a)return!1;for(;a-- >0;)if(!YU(e,r,n,o[a]))return!1;return!0}function w0(e,r,n){var o=FU(e),a=o.length;if(FU(r).length!==a)return!1;for(var i,l,s;a-- >0;)if(i=o[a],!YU(e,r,n,i)||(l=HU(e,i),s=HU(r,i),(l||s)&&(!l||!s||l.configurable!==s.configurable||l.enumerable!==s.enumerable||l.writable!==s.writable)))return!1;return!0}function zAe(e,r){return Hd(e.valueOf(),r.valueOf())}function jAe(e,r){return e.source===r.source&&e.flags===r.flags}function VU(e,r,n){var o=e.size;if(o!==r.size)return!1;if(!o)return!0;for(var a=new Array(o),i=e.values(),l,s;(l=i.next())&&!l.done;){for(var c=r.values(),u=!1,d=0;(s=c.next())&&!s.done;){if(!a[d]&&n.equals(l.value,s.value,l.value,s.value,e,r,n)){u=a[d]=!0;break}d++}if(!u)return!1}return!0}function BAe(e,r){var n=e.length;if(r.length!==n)return!1;for(;n-- >0;)if(e[n]!==r[n])return!1;return!0}function FAe(e,r){return e.hostname===r.hostname&&e.pathname===r.pathname&&e.protocol===r.protocol&&e.port===r.port&&e.hash===r.hash&&e.username===r.username&&e.password===r.password}function YU(e,r,n,o){return(o===DAe||o===NAe||o===AAe)&&(e.$$typeof||r.$$typeof)?!0:RAe(r,o)&&n.equals(e[o],r[o],o,o,e,r,n)}var HAe="[object Arguments]",UAe="[object Boolean]",qAe="[object Date]",VAe="[object Error]",YAe="[object Map]",WAe="[object Number]",GAe="[object Object]",XAe="[object RegExp]",KAe="[object Set]",ZAe="[object String]",QAe="[object URL]",JAe=Array.isArray,WU=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,GU=Object.assign,eNe=Object.prototype.toString.call.bind(Object.prototype.toString);function tNe(e){var r=e.areArraysEqual,n=e.areDatesEqual,o=e.areErrorsEqual,a=e.areFunctionsEqual,i=e.areMapsEqual,l=e.areNumbersEqual,s=e.areObjectsEqual,c=e.arePrimitiveWrappersEqual,u=e.areRegExpsEqual,d=e.areSetsEqual,p=e.areTypedArraysEqual,f=e.areUrlsEqual;return function(g,b,x){if(g===b)return!0;if(g==null||b==null)return!1;var w=typeof g;if(w!==typeof b)return!1;if(w!=="object")return w==="number"?l(g,b,x):w==="function"?a(g,b,x):!1;var k=g.constructor;if(k!==b.constructor)return!1;if(k===Object)return s(g,b,x);if(JAe(g))return r(g,b,x);if(WU!=null&&WU(g))return p(g,b,x);if(k===Date)return n(g,b,x);if(k===RegExp)return u(g,b,x);if(k===Map)return i(g,b,x);if(k===Set)return d(g,b,x);var C=eNe(g);return C===qAe?n(g,b,x):C===XAe?u(g,b,x):C===YAe?i(g,b,x):C===KAe?d(g,b,x):C===GAe?typeof g.then!="function"&&typeof b.then!="function"&&s(g,b,x):C===QAe?f(g,b,x):C===VAe?o(g,b,x):C===HAe?s(g,b,x):C===UAe||C===WAe||C===ZAe?c(g,b,x):!1}}function rNe(e){var r=e.circular,n=e.createCustomConfig,o=e.strict,a={areArraysEqual:o?w0:$Ae,areDatesEqual:PAe,areErrorsEqual:OAe,areFunctionsEqual:MAe,areMapsEqual:o?BU(qU,w0):qU,areNumbersEqual:IAe,areObjectsEqual:o?w0:LAe,arePrimitiveWrappersEqual:zAe,areRegExpsEqual:jAe,areSetsEqual:o?BU(VU,w0):VU,areTypedArraysEqual:o?w0:BAe,areUrlsEqual:FAe};if(n&&(a=GU({},a,n(a))),r){var i=Mx(a.areArraysEqual),l=Mx(a.areMapsEqual),s=Mx(a.areObjectsEqual),c=Mx(a.areSetsEqual);a=GU({},a,{areArraysEqual:i,areMapsEqual:l,areObjectsEqual:s,areSetsEqual:c})}return a}function nNe(e){return function(r,n,o,a,i,l,s){return e(r,n,s)}}function oNe(e){var r=e.circular,n=e.comparator,o=e.createState,a=e.equals,i=e.strict;if(o)return function(s,c){var u=o(),d=u.cache,p=d===void 0?r?new WeakMap:void 0:d,f=u.meta;return n(s,c,{cache:p,equals:a,meta:f,strict:i})};if(r)return function(s,c){return n(s,c,{cache:new WeakMap,equals:a,meta:void 0,strict:i})};var l={cache:void 0,equals:a,meta:void 0,strict:i};return function(s,c){return n(s,c,l)}}var ut=au();au({strict:!0}),au({circular:!0}),au({circular:!0,strict:!0});var Gn=au({createInternalComparator:function(){return Hd}});au({strict:!0,createInternalComparator:function(){return Hd}}),au({circular:!0,createInternalComparator:function(){return Hd}}),au({circular:!0,createInternalComparator:function(){return Hd},strict:!0});function au(e){e===void 0&&(e={});var r=e.circular,n=r===void 0?!1:r,o=e.createInternalComparator,a=e.createState,i=e.strict,l=i===void 0?!1:i,s=rNe(e),c=tNe(s),u=o?o(c):nNe(c);return oNe({circular:n,comparator:c,createState:a,equals:u,strict:l})}function aNe(e,r,n){let o=a=>e(a,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function lr(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return aNe(e,r,n);throw Error("Wrong number of arguments")}const iNe=e=>(r,n)=>{if(n===0)return e(r);if(!Number.isInteger(n))throw TypeError(`precision must be an integer: ${n.toString()}`);if(n>15||n<-15)throw RangeError("precision must be between -15 and 15");if(Number.isNaN(r)||!Number.isFinite(r))return e(r);let o=XU(r,n),a=e(o);return XU(a,-n)};function XU(e,r){let[n,o]=e.toString().split("e"),a=(o===void 0?0:Number.parseInt(o,10))+r,i=`${n}e${a.toString()}`;return Number.parseFloat(i)}function lNe(...e){return lr(iNe(Math.ceil),e)}function Ki(...e){return lr(sNe,e)}const sNe=(e,{min:r,max:n})=>r!==void 0&&en?n:e;function cNe(...e){return lr(uNe,e)}const uNe=(e,r)=>[...e,...r],Ix={done:!1,hasNext:!1};function yn(e,...r){let n=e,o=r.map(i=>"lazy"in i?dNe(i):void 0),a=0;for(;ayn(a,o),o)}throw Error("Wrong number of arguments")}function To(...e){return lr(fNe,e)}const fNe=(e,r)=>e.length>=r,ZU={asc:(e,r)=>e>r,desc:(e,r)=>ee(i,a)}function j8(e,r,...n){let o=typeof e=="function"?e:e[0],a=typeof e=="function"?"asc":e[1],{[a]:i}=ZU,l=r===void 0?void 0:j8(r,...n);return(s,c)=>{let u=o(s),d=o(c);return i(u,d)?1:i(d,u)?-1:l?.(s,c)??0}}function gNe(e){if(QU(e))return!0;if(typeof e!="object"||!Array.isArray(e))return!1;let[r,n,...o]=e;return QU(r)&&typeof n=="string"&&n in ZU&&o.length===0}const QU=e=>typeof e=="function"&&e.length===1;function B8(...e){return lr(Object.entries,e)}function df(...e){return lr(yNe,e,bNe)}const yNe=(e,r)=>e.filter(r),bNe=e=>(r,n,o)=>e(r,n,o)?{done:!1,hasNext:!0,next:r}:Ix,JU=e=>Object.assign(e,{single:!0});function Lx(...e){return lr(vNe,e,JU(xNe))}const vNe=(e,r)=>e.find(r),xNe=e=>(r,n,o)=>e(r,n,o)?{done:!0,hasNext:!0,next:r}:Ix;function pf(...e){return lr(wNe,e,JU(kNe))}const wNe=([e])=>e,kNe=()=>_Ne,_Ne=e=>({hasNext:!0,next:e,done:!0});function ENe(...e){return lr(SNe,e,CNe)}const SNe=(e,r)=>e.flatMap(r),CNe=e=>(r,n,o)=>{let a=e(r,n,o);return Array.isArray(a)?{done:!1,hasNext:!0,hasMany:!0,next:a}:{done:!1,hasNext:!0,next:a}};function TNe(...e){return lr(RNe,e)}function RNe(e,r){for(let[n,o]of Object.entries(e))r(o,n,e);return e}function ANe(...e){return lr(NNe,e)}const NNe=(e,r)=>{let n=Object.create(null);for(let o=0;otypeof e=="function";function LNe(e){return e!==null}function tq(e){return e!=null}function rq(e){return e==null}function nq(e){return typeof e=="number"&&!Number.isNaN(e)}function U8(e){if(typeof e!="object"||!e)return!1;let r=Object.getPrototypeOf(e);return r===null||r===Object.prototype}function q8(e){return typeof e=="string"}function Sa(e){return!!e}function oq(...e){return lr(zNe,e)}const zNe=(e,r)=>e.join(r);function V8(...e){return lr(Object.keys,e)}function Ud(...e){return lr(jNe,e)}const jNe=e=>e.at(-1);function Ro(...e){return lr(BNe,e,FNe)}const BNe=(e,r)=>e.map(r),FNe=e=>(r,n,o)=>({done:!1,hasNext:!0,next:e(r,n,o)});function E0(...e){return lr(HNe,e)}function HNe(e,r){let n={};for(let[o,a]of e.entries()){let[i,l]=r(a,o,e);n[i]=l}return n}function UNe(...e){return lr(qNe,e)}function qNe(e,r){let n={};for(let[o,a]of Object.entries(e))n[o]=r(a,o,e);return n}function aq(...e){return lr(iq,e)}function iq(e,r){let n={...e,...r};for(let o in r){if(!(o in e))continue;let{[o]:a}=e;if(!U8(a))continue;let{[o]:i}=r;U8(i)&&(n[o]=iq(a,i))}return n}function qd(...e){return lr(VNe,e)}function VNe(e,r){if(!To(r,1))return{...e};if(!To(r,2)){let{[r[0]]:o,...a}=e;return a}let n={...e};for(let o of r)delete n[o];return n}function zx(...e){return lr(YNe,e)}const YNe=e=>e.length===1?e[0]:void 0;function lq(...e){return lr(WNe,e)}const WNe=(e,r)=>{let n=[[],[]];for(let[o,a]of e.entries())r(a,o,e)?n[0].push(a):n[1].push(a);return n};function sq(...e){return lr(GNe,e)}function GNe(e,r){let n={};for(let o of r)o in e&&(n[o]=e[o]);return n}function XNe(...e){return lr(KNe,e)}function KNe(e,r){let n={};for(let[o,a]of Object.entries(e))r(a,o,e)&&(n[o]=a);return n}function Ca(e,...r){return typeof e=="string"||typeof e=="number"||typeof e=="symbol"?n=>cq(n,e,...r):cq(e,...r)}function cq(e,...r){let n=e;for(let o of r){if(n==null)return;n=n[o]}return n}function ZNe(...e){return lr(QNe,e)}function QNe(e,r){let n=[];for(let o=e;oe.reduce(r,n);function eDe(...e){return lr(tDe,e)}function tDe(e){return[...e].reverse()}function rDe(...e){return lr(nDe,e)}function nDe(e,r){let n=[...e];return n.sort(r),n}function jx(...e){return mNe(oDe,e)}const oDe=(e,r)=>[...e].sort(r);function uq(...e){return lr(aDe,e)}function aDe(e,r){return r(e),e}function Y8(...e){return hNe(iDe,e)}function iDe(){let e=new Set;return r=>e.has(r)?Ix:(e.add(r),{done:!1,hasNext:!0,next:r})}let Zi=[],lu=0;const Bx=4;let lDe=e=>{let r=[],n={get(){return n.lc||n.listen(()=>{})(),n.value},lc:0,listen(o){return n.lc=r.push(o),()=>{for(let i=lu+Bx;i"u")return EDe;var r=SDe(e),n=document.documentElement.clientWidth,o=window.innerWidth;return{left:r[0],top:r[1],right:r[2],gap:Math.max(0,o-n+r[2]-r[0])}},TDe=mq(),ff="data-scroll-locked",RDe=function(e,r,n,o){var a=e.left,i=e.top,l=e.right,s=e.gap;return n===void 0&&(n="margin"),` + .`.concat(cDe,` { + overflow: hidden `).concat(o,`; + padding-right: `).concat(s,"px ").concat(o,`; + } + body[`).concat(ff,`] { + overflow: hidden `).concat(o,`; + overscroll-behavior: contain; + `).concat([r&&"position: relative ".concat(o,";"),n==="margin"&&` + padding-left: `.concat(a,`px; + padding-top: `).concat(i,`px; + padding-right: `).concat(l,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(s,"px ").concat(o,`; + `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(o,";")].filter(Boolean).join(""),` + } + + .`).concat(Fx,` { + right: `).concat(s,"px ").concat(o,`; + } + + .`).concat(Hx,` { + margin-right: `).concat(s,"px ").concat(o,`; + } + + .`).concat(Fx," .").concat(Fx,` { + right: 0 `).concat(o,`; + } + + .`).concat(Hx," .").concat(Hx,` { + margin-right: 0 `).concat(o,`; + } + + body[`).concat(ff,`] { + `).concat(uDe,": ").concat(s,`px; + } +`)},gq=function(){var e=parseInt(document.body.getAttribute(ff)||"0",10);return isFinite(e)?e:0},ADe=function(){E.useEffect(function(){return document.body.setAttribute(ff,(gq()+1).toString()),function(){var e=gq()-1;e<=0?document.body.removeAttribute(ff):document.body.setAttribute(ff,e.toString())}},[])},NDe=function(e){var r=e.noRelative,n=e.noImportant,o=e.gapMode,a=o===void 0?"margin":o;ADe();var i=E.useMemo(function(){return CDe(a)},[a]);return E.createElement(TDe,{styles:RDe(i,!r,a,n?"":"!important")})},K8=!1;if(typeof window<"u")try{var qx=Object.defineProperty({},"passive",{get:function(){return K8=!0,!0}});window.addEventListener("test",qx,qx),window.removeEventListener("test",qx,qx)}catch{K8=!1}var mf=K8?{passive:!1}:!1,DDe=function(e){return e.tagName==="TEXTAREA"},yq=function(e,r){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[r]!=="hidden"&&!(n.overflowY===n.overflowX&&!DDe(e)&&n[r]==="visible")},$De=function(e){return yq(e,"overflowY")},PDe=function(e){return yq(e,"overflowX")},bq=function(e,r){var n=r.ownerDocument,o=r;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var a=vq(e,o);if(a){var i=xq(e,o),l=i[1],s=i[2];if(l>s)return!0}o=o.parentNode}while(o&&o!==n.body);return!1},ODe=function(e){var r=e.scrollTop,n=e.scrollHeight,o=e.clientHeight;return[r,n,o]},MDe=function(e){var r=e.scrollLeft,n=e.scrollWidth,o=e.clientWidth;return[r,n,o]},vq=function(e,r){return e==="v"?$De(r):PDe(r)},xq=function(e,r){return e==="v"?ODe(r):MDe(r)},IDe=function(e,r){return e==="h"&&r==="rtl"?-1:1},LDe=function(e,r,n,o,a){var i=IDe(e,window.getComputedStyle(r).direction),l=i*o,s=n.target,c=r.contains(s),u=!1,d=l>0,p=0,f=0;do{if(!s)break;var g=xq(e,s),b=g[0],x=g[1],w=g[2],k=x-w-i*b;(b||k)&&vq(e,s)&&(p+=k,f+=b);var C=s.parentNode;s=C&&C.nodeType===Node.DOCUMENT_FRAGMENT_NODE?C.host:C}while(!c&&s!==document.body||c&&(r.contains(s)||r===s));return(d&&Math.abs(p)<1||!d&&Math.abs(f)<1)&&(u=!0),u},Vx=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},wq=function(e){return[e.deltaX,e.deltaY]},kq=function(e){return e&&"current"in e?e.current:e},zDe=function(e,r){return e[0]===r[0]&&e[1]===r[1]},jDe=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},BDe=0,gf=[];function FDe(e){var r=E.useRef([]),n=E.useRef([0,0]),o=E.useRef(),a=E.useState(BDe++)[0],i=E.useState(mq)[0],l=E.useRef(e);E.useEffect(function(){l.current=e},[e]),E.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var x=sDe([e.lockRef.current],(e.shards||[]).map(kq)).filter(Boolean);return x.forEach(function(w){return w.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),x.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var s=E.useCallback(function(x,w){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!l.current.allowPinchZoom;var k=Vx(x),C=n.current,_="deltaX"in x?x.deltaX:C[0]-k[0],T="deltaY"in x?x.deltaY:C[1]-k[1],R,A=x.target,D=Math.abs(_)>Math.abs(T)?"h":"v";if("touches"in x&&D==="h"&&A.type==="range")return!1;var N=bq(D,A);if(!N)return!0;if(N?R=D:(R=D==="v"?"h":"v",N=bq(D,A)),!N)return!1;if(!o.current&&"changedTouches"in x&&(_||T)&&(o.current=R),!R)return!0;var P=o.current||R;return LDe(P,w,x,P==="h"?_:T)},[]),c=E.useCallback(function(x){var w=x;if(!(!gf.length||gf[gf.length-1]!==i)){var k="deltaY"in w?wq(w):Vx(w),C=r.current.filter(function(R){return R.name===w.type&&(R.target===w.target||w.target===R.shadowParent)&&zDe(R.delta,k)})[0];if(C&&C.should){w.cancelable&&w.preventDefault();return}if(!C){var _=(l.current.shards||[]).map(kq).filter(Boolean).filter(function(R){return R.contains(w.target)}),T=_.length>0?s(w,_[0]):!l.current.noIsolation;T&&w.cancelable&&w.preventDefault()}}},[]),u=E.useCallback(function(x,w,k,C){var _={name:x,delta:w,target:k,should:C,shadowParent:HDe(k)};r.current.push(_),setTimeout(function(){r.current=r.current.filter(function(T){return T!==_})},1)},[]),d=E.useCallback(function(x){n.current=Vx(x),o.current=void 0},[]),p=E.useCallback(function(x){u(x.type,wq(x),x.target,s(x,e.lockRef.current))},[]),f=E.useCallback(function(x){u(x.type,Vx(x),x.target,s(x,e.lockRef.current))},[]);E.useEffect(function(){return gf.push(i),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:f}),document.addEventListener("wheel",c,mf),document.addEventListener("touchmove",c,mf),document.addEventListener("touchstart",d,mf),function(){gf=gf.filter(function(x){return x!==i}),document.removeEventListener("wheel",c,mf),document.removeEventListener("touchmove",c,mf),document.removeEventListener("touchstart",d,mf)}},[]);var g=e.removeScrollBar,b=e.inert;return E.createElement(E.Fragment,null,b?E.createElement(i,{styles:jDe(a)}):null,g?E.createElement(NDe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function HDe(e){for(var r=null;e!==null;)e instanceof ShadowRoot&&(r=e.host,e=e.host),e=e.parentNode;return r}const UDe=yDe(fq,FDe);var S0=E.forwardRef(function(e,r){return E.createElement(Ux,Jl({},e,{ref:r,sideCar:UDe}))});S0.classNames=Ux.classNames;function Ao(e){return Object.keys(e)}function Z8(e){return e&&typeof e=="object"&&!Array.isArray(e)}function Q8(e,r){const n={...e},o=r;return Z8(e)&&Z8(r)&&Object.keys(r).forEach(a=>{Z8(o[a])&&a in e?n[a]=Q8(n[a],o[a]):n[a]=o[a]}),n}function qDe(e){return e.replace(/[A-Z]/g,r=>`-${r.toLowerCase()}`)}function VDe(e){return typeof e!="string"||!e.includes("var(--mantine-scale)")?e:e.match(/^calc\((.*?)\)$/)?.[1].split("*")[0].trim()}function J8(e){const r=VDe(e);return typeof r=="number"?r:typeof r=="string"?r.includes("calc")||r.includes("var")?r:r.includes("px")?Number(r.replace("px","")):r.includes("rem")?Number(r.replace("rem",""))*16:r.includes("em")?Number(r.replace("em",""))*16:Number(r):NaN}function _q(e){return e==="0rem"?"0rem":`calc(${e} * var(--mantine-scale))`}function Eq(e,{shouldScale:r=!1}={}){function n(o){if(o===0||o==="0")return`0${e}`;if(typeof o=="number"){const a=`${o/16}${e}`;return r?_q(a):a}if(typeof o=="string"){if(o===""||o.startsWith("calc(")||o.startsWith("clamp(")||o.includes("rgba("))return o;if(o.includes(","))return o.split(",").map(i=>n(i)).join(",");if(o.includes(" "))return o.split(" ").map(i=>n(i)).join(" ");const a=o.replace("px","");if(!Number.isNaN(Number(a))){const i=`${Number(a)/16}${e}`;return r?_q(i):i}}return o}return n}const Ae=Eq("rem",{shouldScale:!0}),Sq=Eq("em");function yf(e){return Object.keys(e).reduce((r,n)=>(e[n]!==void 0&&(r[n]=e[n]),r),{})}function Cq(e){if(typeof e=="number")return!0;if(typeof e=="string"){if(e.startsWith("calc(")||e.startsWith("var(")||e.includes(" ")&&e.trim()!=="")return!0;const r=/^[+-]?[0-9]+(\.[0-9]+)?(px|em|rem|ex|ch|lh|rlh|vw|vh|vmin|vmax|vb|vi|svw|svh|lvw|lvh|dvw|dvh|cm|mm|in|pt|pc|q|cqw|cqh|cqi|cqb|cqmin|cqmax|%)?$/;return e.trim().split(/\s+/).every(n=>r.test(n))}return!1}function Qi(e){return Array.isArray(e)||e===null?!1:typeof e=="object"?e.type!==E.Fragment:!1}function ri(e){const r=E.createContext(null);return[({children:n,value:o})=>y.jsx(r.Provider,{value:o,children:n}),()=>{const n=E.useContext(r);if(n===null)throw new Error(e);return n}]}function C0(e=null){const r=E.createContext(e);return[({children:n,value:o})=>y.jsx(r.Provider,{value:o,children:n}),()=>E.useContext(r)]}function Tq(e,r){return n=>{if(typeof n!="string"||n.trim().length===0)throw new Error(r);return`${e}-${n}`}}function bf(e,r){let n=e;for(;(n=n.parentElement)&&!n.matches(r););return n}function YDe(e,r,n){for(let o=e-1;o>=0;o-=1)if(!r[o].disabled)return o;if(n){for(let o=r.length-1;o>-1;o-=1)if(!r[o].disabled)return o}return e}function WDe(e,r,n){for(let o=e+1;o{n?.(s);const c=Array.from(bf(s.currentTarget,e)?.querySelectorAll(r)||[]).filter(b=>GDe(s.currentTarget,b,e)),u=c.findIndex(b=>s.currentTarget===b),d=WDe(u,c,o),p=YDe(u,c,o),f=i==="rtl"?p:d,g=i==="rtl"?d:p;switch(s.key){case"ArrowRight":{l==="horizontal"&&(s.stopPropagation(),s.preventDefault(),c[f].focus(),a&&c[f].click());break}case"ArrowLeft":{l==="horizontal"&&(s.stopPropagation(),s.preventDefault(),c[g].focus(),a&&c[g].click());break}case"ArrowUp":{l==="vertical"&&(s.stopPropagation(),s.preventDefault(),c[p].focus(),a&&c[p].click());break}case"ArrowDown":{l==="vertical"&&(s.stopPropagation(),s.preventDefault(),c[d].focus(),a&&c[d].click());break}case"Home":{s.stopPropagation(),s.preventDefault(),!c[0].disabled&&c[0].focus();break}case"End":{s.stopPropagation(),s.preventDefault();const b=c.length-1;!c[b].disabled&&c[b].focus();break}}}}const XDe={app:100,modal:200,popover:300,overlay:400,max:9999};function Yx(e){return XDe[e]}const Rq=()=>{};function KDe(e,r={active:!0}){return typeof e!="function"||!r.active?r.onKeyDown||Rq:n=>{n.key==="Escape"&&(e(n),r.onTrigger?.())}}function sr(e,r="size",n=!0){if(e!==void 0)return Cq(e)?n?Ae(e):e:`var(--${r}-${e})`}function Us(e){return sr(e,"mantine-spacing")}function bn(e){return e===void 0?"var(--mantine-radius-default)":sr(e,"mantine-radius")}function No(e){return sr(e,"mantine-font-size")}function ZDe(e){return sr(e,"mantine-line-height",!1)}function Aq(e){if(e)return sr(e,"mantine-shadow",!1)}function vn(e,r){return n=>{e?.(n),r?.(n)}}function QDe(e,r){return e in r?J8(r[e]):J8(e)}function Nq(e,r){const n=e.map(o=>({value:o,px:QDe(o,r)}));return n.sort((o,a)=>o.px-a.px),n}function R0(e){return typeof e=="object"&&e!==null?"base"in e?e.base:void 0:e}function JDe(e,r,n){return n?Array.from(bf(n,r)?.querySelectorAll(e)||[]).findIndex(o=>o===n):null}function su(e,r,n){return r===void 0&&n===void 0?e:r!==void 0&&n===void 0?Math.max(e,r):Math.min(r===void 0&&n!==void 0?e:Math.max(e,r),n)}function e9(e="mantine-"){return`${e}${Math.random().toString(36).slice(2,11)}`}function e$e(e,r){if(e===r||Number.isNaN(e)&&Number.isNaN(r))return!0;if(!(e instanceof Object)||!(r instanceof Object))return!1;const n=Object.keys(e),{length:o}=n;if(o!==Object.keys(r).length)return!1;for(let a=0;a{r.current=e}),E.useMemo(()=>((...n)=>r.current?.(...n)),[])}function vf(e,r){const{delay:n,flushOnUnmount:o,leading:a}=typeof r=="number"?{delay:r,flushOnUnmount:!1,leading:!1}:r,i=it(e),l=E.useRef(0),s=E.useMemo(()=>{const c=Object.assign((...u)=>{window.clearTimeout(l.current);const d=c._isFirstCall;c._isFirstCall=!1;function p(){window.clearTimeout(l.current),l.current=0,c._isFirstCall=!0}if(a&&d){i(...u);const b=()=>{p()},x=()=>{l.current!==0&&(p(),i(...u))},w=()=>{p()};c.flush=x,c.cancel=w,l.current=window.setTimeout(b,n);return}if(a&&!d){const b=()=>{l.current!==0&&(p(),i(...u))},x=()=>{p()};c.flush=b,c.cancel=x;const w=()=>{p()};l.current=window.setTimeout(w,n);return}const f=()=>{l.current!==0&&(p(),i(...u))},g=()=>{p()};c.flush=f,c.cancel=g,l.current=window.setTimeout(f,n)},{flush:()=>{},cancel:()=>{},_isFirstCall:!0});return c},[i,n,a]);return E.useEffect(()=>()=>{o?s.flush():s.cancel()},[s,o]),s}const t$e=["mousedown","touchstart"];function Dq(e,r,n){const o=E.useRef(null),a=r||t$e;return E.useEffect(()=>{const i=l=>{const{target:s}=l??{};if(Array.isArray(n)){const c=!document.body.contains(s)&&s.tagName!=="HTML";n.every(u=>!!u&&!l.composedPath().includes(u))&&!c&&e()}else o.current&&!o.current.contains(s)&&e()};return a.forEach(l=>document.addEventListener(l,i)),()=>{a.forEach(l=>document.removeEventListener(l,i))}},[o,e,n]),o}function r$e(e={timeout:2e3}){const[r,n]=E.useState(null),[o,a]=E.useState(!1),[i,l]=E.useState(null),s=c=>{window.clearTimeout(i),l(window.setTimeout(()=>a(!1),e.timeout)),a(c)};return{copy:c=>{"clipboard"in navigator?navigator.clipboard.writeText(c).then(()=>s(!0)).catch(u=>n(u)):n(new Error("useClipboard: navigator.clipboard is not supported"))},reset:()=>{a(!1),n(null),window.clearTimeout(i)},error:r,copied:o}}function n$e(e,r){try{return e.addEventListener("change",r),()=>e.removeEventListener("change",r)}catch{return e.addListener(r),()=>e.removeListener(r)}}function o$e(e,r){return typeof window<"u"&&"matchMedia"in window?window.matchMedia(e).matches:!1}function $q(e,r,{getInitialValueInEffect:n}={getInitialValueInEffect:!0}){const[o,a]=E.useState(n?r:o$e(e));return E.useEffect(()=>{try{const i=window.matchMedia(e);return a(i.matches),n$e(i,l=>a(l.matches))}catch{return}},[e]),o||!1}function Pq(e,r){return $q("(prefers-color-scheme: dark)",e==="dark",r)?"dark":"light"}function a$e(e,r,n={leading:!1}){const[o,a]=E.useState(e),i=E.useRef(null),l=E.useRef(!0),s=()=>window.clearTimeout(i.current);E.useEffect(()=>s,[]);const c=E.useCallback(u=>{s(),l.current&&n.leading?a(u):i.current=window.setTimeout(()=>{l.current=!0,a(u)},r),l.current=!1},[n.leading]);return[o,c]}function t9(e,r,n={leading:!1}){const[o,a]=E.useState(e),i=E.useRef(!1),l=E.useRef(null),s=E.useRef(!1),c=E.useCallback(()=>window.clearTimeout(l.current),[]);return E.useEffect(()=>{i.current&&(!s.current&&n.leading?(s.current=!0,a(e)):(c(),l.current=window.setTimeout(()=>{s.current=!1,a(e)},r)))},[e,n.leading,r]),E.useEffect(()=>(i.current=!0,c),[]),[o,c]}const A0=typeof document<"u"?E.useLayoutEffect:E.useEffect;function Vd(e,r){const n=E.useRef(!1);E.useEffect(()=>()=>{n.current=!1},[]),E.useEffect(()=>{if(n.current)return e();n.current=!0},r)}function i$e({opened:e,shouldReturnFocus:r=!0}){const n=E.useRef(null),o=()=>{n.current&&"focus"in n.current&&typeof n.current.focus=="function"&&n.current?.focus({preventScroll:!0})};return Vd(()=>{let a=-1;const i=l=>{l.key==="Tab"&&window.clearTimeout(a)};return document.addEventListener("keydown",i),e?n.current=document.activeElement:r&&(a=window.setTimeout(o,10)),()=>{window.clearTimeout(a),document.removeEventListener("keydown",i)}},[e,r]),o}const l$e=/input|select|textarea|button|object/,Oq="a, input, select, textarea, button, object, [tabindex]";function s$e(e){return e.style.display==="none"}function c$e(e){if(e.getAttribute("aria-hidden")||e.getAttribute("hidden")||e.getAttribute("type")==="hidden")return!1;let r=e;for(;r&&!(r===document.body||r.nodeType===11);){if(s$e(r))return!1;r=r.parentNode}return!0}function Mq(e){let r=e.getAttribute("tabindex");return r===null&&(r=void 0),parseInt(r,10)}function r9(e){const r=e.nodeName.toLowerCase(),n=!Number.isNaN(Mq(e));return(l$e.test(r)&&!e.disabled||e instanceof HTMLAnchorElement&&e.href||n)&&c$e(e)}function Iq(e){const r=Mq(e);return(Number.isNaN(r)||r>=0)&&r9(e)}function u$e(e){return Array.from(e.querySelectorAll(Oq)).filter(Iq)}function d$e(e,r){const n=u$e(e);if(!n.length){r.preventDefault();return}const o=n[r.shiftKey?0:n.length-1],a=e.getRootNode();let i=o===a.activeElement||e===a.activeElement;const l=a.activeElement;if(l.tagName==="INPUT"&&l.getAttribute("type")==="radio"&&(i=n.filter(c=>c.getAttribute("type")==="radio"&&c.getAttribute("name")===l.getAttribute("name")).includes(o)),!i)return;r.preventDefault();const s=n[r.shiftKey?n.length-1:0];s&&s.focus()}function Lq(e=!0){const r=E.useRef(null),n=a=>{let i=a.querySelector("[data-autofocus]");if(!i){const l=Array.from(a.querySelectorAll(Oq));i=l.find(Iq)||l.find(r9)||null,!i&&r9(a)&&(i=a)}i&&i.focus({preventScroll:!0})},o=E.useCallback(a=>{e&&a!==null&&r.current!==a&&(a?(setTimeout(()=>{a.getRootNode()&&n(a)}),r.current=a):r.current=null)},[e]);return E.useEffect(()=>{if(!e)return;r.current&&setTimeout(()=>n(r.current));const a=i=>{i.key==="Tab"&&r.current&&d$e(r.current,i)};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[e]),o}const p$e=Xr.useId||(()=>{});function h$e(){const e=p$e();return e?`mantine-${e.replace(/:/g,"")}`:""}function Ta(e){const r=h$e(),[n,o]=E.useState(r);return A0(()=>{o(e9())},[]),typeof e=="string"?e:typeof window>"u"?r:n}function xf(e,r,n){E.useEffect(()=>(window.addEventListener(e,r,n),()=>window.removeEventListener(e,r,n)),[e,r])}function f$e(e,r="use-local-storage"){try{return JSON.stringify(e)}catch{throw new Error(`@mantine/hooks ${r}: Failed to serialize the value`)}}function m$e(e){try{return e&&JSON.parse(e)}catch{return e}}function g$e(e){return{getItem:r=>{try{return window[e].getItem(r)}catch{return console.warn("use-local-storage: Failed to get value from storage, localStorage is blocked"),null}},setItem:(r,n)=>{try{window[e].setItem(r,n)}catch{console.warn("use-local-storage: Failed to set value to storage, localStorage is blocked")}},removeItem:r=>{try{window[e].removeItem(r)}catch{console.warn("use-local-storage: Failed to remove value from storage, localStorage is blocked")}}}}function zq(e,r){const n=e==="localStorage"?"mantine-local-storage":"mantine-session-storage",{getItem:o,setItem:a,removeItem:i}=g$e(e);return function({key:l,defaultValue:s,getInitialValueInEffect:c=!0,sync:u=!0,deserialize:d=m$e,serialize:p=f=>f$e(f,r)}){const f=E.useCallback(k=>{let C;try{C=typeof window>"u"||!(e in window)||window[e]===null||!!k}catch{C=!0}if(C)return s;const _=o(l);return _!==null?d(_):s},[l,s]),[g,b]=E.useState(f(c)),x=E.useCallback(k=>{k instanceof Function?b(C=>{const _=k(C);return a(l,p(_)),queueMicrotask(()=>{window.dispatchEvent(new CustomEvent(n,{detail:{key:l,value:k(C)}}))}),_}):(a(l,p(k)),window.dispatchEvent(new CustomEvent(n,{detail:{key:l,value:k}})),b(k))},[l]),w=E.useCallback(()=>{i(l),window.dispatchEvent(new CustomEvent(n,{detail:{key:l,value:s}}))},[]);return xf("storage",k=>{u&&k.storageArea===window[e]&&k.key===l&&b(d(k.newValue??void 0))}),xf(n,k=>{u&&k.detail.key===l&&b(k.detail.value)}),E.useEffect(()=>{s!==void 0&&g===void 0&&x(s)},[s,g,x]),E.useEffect(()=>{const k=f();k!==void 0&&x(k)},[l]),[g===void 0?s:g,x,w]}}function y$e(e){return zq("localStorage","use-local-storage")(e)}function b$e(e){return zq("sessionStorage","use-session-storage")(e)}function n9(e,r){if(typeof e=="function")return e(r);typeof e=="object"&&e!==null&&"current"in e&&(e.current=r)}function jq(...e){const r=new Map;return n=>{if(e.forEach(o=>{const a=n9(o,n);a&&r.set(o,a)}),r.size>0)return()=>{e.forEach(o=>{const a=r.get(o);a&&typeof a=="function"?a():n9(o,null)}),r.clear()}}}function Nr(...e){return E.useCallback(jq(...e),e)}function v$e(e){return{x:su(e.x,0,1),y:su(e.y,0,1)}}function Bq(e,r,n="ltr"){const o=E.useRef(!1),a=E.useRef(!1),i=E.useRef(0),[l,s]=E.useState(!1),c=E.useRef(null);return E.useEffect(()=>{o.current=!0},[]),{ref:E.useCallback(u=>{if(c.current&&(c.current(),c.current=null),!u)return;const d=({x:_,y:T})=>{cancelAnimationFrame(i.current),i.current=requestAnimationFrame(()=>{if(o.current&&u){u.style.userSelect="none";const R=u.getBoundingClientRect();if(R.width&&R.height){const A=su((_-R.left)/R.width,0,1);e({x:n==="ltr"?A:1-A,y:su((T-R.top)/R.height,0,1)})}}})},p=()=>{document.addEventListener("mousemove",w),document.addEventListener("mouseup",b),document.addEventListener("touchmove",C,{passive:!1}),document.addEventListener("touchend",b)},f=()=>{document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",b),document.removeEventListener("touchmove",C),document.removeEventListener("touchend",b)},g=()=>{!a.current&&o.current&&(a.current=!0,typeof r?.onScrubStart=="function"&&r.onScrubStart(),s(!0),p())},b=()=>{a.current&&o.current&&(a.current=!1,s(!1),f(),setTimeout(()=>{typeof r?.onScrubEnd=="function"&&r.onScrubEnd()},0))},x=_=>{g(),_.preventDefault(),w(_)},w=_=>d({x:_.clientX,y:_.clientY}),k=_=>{_.cancelable&&_.preventDefault(),g(),C(_)},C=_=>{_.cancelable&&_.preventDefault(),d({x:_.changedTouches[0].clientX,y:_.changedTouches[0].clientY})};u.addEventListener("mousedown",x),u.addEventListener("touchstart",k,{passive:!1}),c.current=()=>{u.removeEventListener("mousedown",x),u.removeEventListener("touchstart",k)}},[n,e]),active:l}}function qs({value:e,defaultValue:r,finalValue:n,onChange:o=()=>{}}){const[a,i]=E.useState(r!==void 0?r:n);return e!==void 0?[e,o,!0]:[a,(s,...c)=>{i(s),o?.(s,...c)},!1]}function Fq(e,r){return $q("(prefers-reduced-motion: reduce)",e,r)}function x$e(e,r){if(!e||!r)return!1;if(e===r)return!0;if(e.length!==r.length)return!1;for(let n=0;n{r({width:window.innerWidth||0,height:window.innerHeight||0})},[]);return xf("resize",n,Hq),xf("orientationchange",n,Hq),E.useEffect(n,[]),e}const E$e={" ":"space",ArrowLeft:"arrowleft",ArrowRight:"arrowright",ArrowUp:"arrowup",ArrowDown:"arrowdown",Escape:"escape",Esc:"escape",esc:"escape",Enter:"enter",Tab:"tab",Backspace:"backspace",Delete:"delete",Insert:"insert",Home:"home",End:"end",PageUp:"pageup",PageDown:"pagedown","+":"plus","-":"minus","*":"asterisk","/":"slash"};function Wx(e){const r=e.replace("Key","").toLowerCase();return E$e[e]||r}function S$e(e){const r=e.toLowerCase().split("+").map(i=>i.trim()),n={alt:r.includes("alt"),ctrl:r.includes("ctrl"),meta:r.includes("meta"),mod:r.includes("mod"),shift:r.includes("shift"),plus:r.includes("[plus]")},o=["alt","ctrl","meta","shift","mod"],a=r.find(i=>!o.includes(i));return{...n,key:a==="[plus]"?"+":a}}function C$e(e,r,n){const{alt:o,ctrl:a,meta:i,mod:l,shift:s,key:c}=e,{altKey:u,ctrlKey:d,metaKey:p,shiftKey:f,key:g,code:b}=r;if(o!==u)return!1;if(l){if(!d&&!p)return!1}else if(a!==d||i!==p)return!1;return s!==f?!1:!!(c&&(n?Wx(b)===Wx(c):Wx(g??b)===Wx(c)))}function Uq(e,r){return n=>C$e(S$e(e),n,r)}function o9(e){return r=>{const n="nativeEvent"in r?r.nativeEvent:r;e.forEach(([o,a,i={preventDefault:!0,usePhysicalKeys:!1}])=>{Uq(o,i.usePhysicalKeys)(n)&&(i.preventDefault&&r.preventDefault(),a(n))})}}function T$e(e,r,n=!1){return e.target instanceof HTMLElement?(n||!e.target.isContentEditable)&&!r.includes(e.target.tagName):!0}function R$e(e,r=["INPUT","TEXTAREA","SELECT"],n=!1){E.useEffect(()=>{const o=a=>{e.forEach(([i,l,s={preventDefault:!0,usePhysicalKeys:!1}])=>{Uq(i,s.usePhysicalKeys)(a)&&T$e(a,r,n)&&(s.preventDefault&&a.preventDefault(),l(a))})};return document.documentElement.addEventListener("keydown",o),()=>document.documentElement.removeEventListener("keydown",o)},[e])}function a9(){const[e,r]=E.useState(!1),n=E.useRef(null),o=E.useCallback(()=>{r(!0)},[]),a=E.useCallback(()=>{r(!1)},[]);return{ref:E.useCallback(i=>{n.current&&(n.current.removeEventListener("mouseenter",o),n.current.removeEventListener("mouseleave",a)),i&&(i.addEventListener("mouseenter",o),i.addEventListener("mouseleave",a)),n.current=i},[o,a]),hovered:e}}function A$e(e=!1,r={}){const[n,o]=E.useState(e),a=E.useCallback(()=>{o(s=>s||(r.onOpen?.(),!0))},[r.onOpen]),i=E.useCallback(()=>{o(s=>s&&(r.onClose?.(),!1))},[r.onClose]),l=E.useCallback(()=>{n?i():a()},[i,a,n]);return[n,{open:a,close:i,toggle:l}]}function N$e(e){return e.currentTarget instanceof HTMLElement&&e.relatedTarget instanceof HTMLElement?e.currentTarget.contains(e.relatedTarget):!1}function D$e({onBlur:e,onFocus:r}={}){const[n,o]=E.useState(!1),a=E.useRef(!1),i=E.useRef(null),l=E.useCallback(d=>{o(d),a.current=d},[]),s=E.useCallback(d=>{a.current||(l(!0),r?.(d))},[r]),c=E.useCallback(d=>{a.current&&!N$e(d)&&(l(!1),e?.(d))},[e]),u=E.useCallback(d=>{d&&(i.current&&(i.current.removeEventListener("focusin",s),i.current.removeEventListener("focusout",c)),d.addEventListener("focusin",s),d.addEventListener("focusout",c))},[s,c]);return E.useEffect(()=>()=>{i.current&&(i.current.removeEventListener("focusin",s),i.current.removeEventListener("focusout",c))},[]),{ref:u,focused:n}}function qq(e,r,n={autoInvoke:!1}){const o=E.useRef(null),a=E.useCallback((...l)=>{o.current||(o.current=window.setTimeout(()=>{e(l),o.current=null},r))},[r]),i=E.useCallback(()=>{o.current&&(window.clearTimeout(o.current),o.current=null)},[]);return E.useEffect(()=>(n.autoInvoke&&a(),i),[i,a]),{start:a,clear:i}}function Vq(e,r,n){const o=E.useRef(null),a=E.useRef(null);return E.useEffect(()=>{const i=typeof n=="function"?n():n;return(i||a.current)&&(o.current=new MutationObserver(e),o.current.observe(i||a.current,r)),()=>{o.current?.disconnect()}},[e,r]),a}function $$e(){const[e,r]=E.useState(!1);return E.useEffect(()=>r(!0),[]),e}function Yq(e){const[r,n]=E.useState({history:[e],current:0}),o=E.useCallback(c=>n(u=>{const d=[...u.history.slice(0,u.current+1),c];return{history:d,current:d.length-1}}),[]),a=E.useCallback((c=1)=>n(u=>({history:u.history,current:Math.max(0,u.current-c)})),[]),i=E.useCallback((c=1)=>n(u=>({history:u.history,current:Math.min(u.history.length-1,u.current+c)})),[]),l=E.useCallback(()=>{n({history:[e],current:0})},[e]),s=E.useMemo(()=>({back:a,forward:i,reset:l,set:o}),[a,i,l,o]);return[r.history[r.current],s,r]}function P$e(e,r){const n=it(e),o=E.useRef(null),a=E.useRef(null),i=E.useRef(!0),l=E.useRef(r),s=E.useRef(-1),c=()=>window.clearTimeout(s.current),u=E.useCallback((...f)=>{n(...f),o.current=f,a.current=f,i.current=!1},[n]),d=E.useCallback(()=>{o.current&&o.current!==a.current?(u(...o.current),s.current=window.setTimeout(d,l.current)):i.current=!0},[u]),p=E.useCallback((...f)=>{i.current?(u(...f),s.current=window.setTimeout(d,l.current)):o.current=f},[u,d]);return E.useEffect(()=>{l.current=r},[r]),[p,c]}function O$e(e,r){return P$e(e,r)[0]}function M$e(){return typeof process<"u"&&process.env?"production":"development"}function Wq(e){const r=new Map;return(...n)=>{const o=JSON.stringify(n);if(r.has(o))return r.get(o);const a=e(...n);return r.set(o,a),a}}function Gq(e,r){return r.length===0?e:r.reduce((n,o)=>Math.abs(o-e){Object.entries(n).forEach(([o,a])=>{r[o]?r[o]=Ji(r[o],a):r[o]=a})}),r}function Xx({theme:e,classNames:r,props:n,stylesCtx:o}){const a=(Array.isArray(r)?r:[r]).map(i=>typeof i=="function"?i(e,n,o):i||I$e);return L$e(a)}function Kx({theme:e,styles:r,props:n,stylesCtx:o}){return(Array.isArray(r)?r:[r]).reduce((a,i)=>typeof i=="function"?{...a,...i(e,n,o)}:{...a,...i},{})}const Zx=E.createContext(null);function cu(){const e=E.useContext(Zx);if(!e)throw new Error("[@mantine/core] MantineProvider was not found in tree");return e}function z$e(){return cu().cssVariablesResolver}function j$e(){return cu().classNamesPrefix}function Yd(){return cu().getStyleNonce}function B$e(){return cu().withStaticClasses}function F$e(){return cu().headless}function H$e(){return cu().stylesTransform?.sx}function U$e(){return cu().stylesTransform?.styles}function Qx(){return cu().env||"default"}function q$e(e){return/^#?([0-9A-F]{3}){1,2}([0-9A-F]{2})?$/i.test(e)}function V$e(e){let r=e.replace("#","");if(r.length===3){const l=r.split("");r=[l[0],l[0],l[1],l[1],l[2],l[2]].join("")}if(r.length===8){const l=parseInt(r.slice(6,8),16)/255;return{r:parseInt(r.slice(0,2),16),g:parseInt(r.slice(2,4),16),b:parseInt(r.slice(4,6),16),a:l}}const n=parseInt(r,16),o=n>>16&255,a=n>>8&255,i=n&255;return{r:o,g:a,b:i,a:1}}function Y$e(e){const[r,n,o,a]=e.replace(/[^0-9,./]/g,"").split(/[/,]/).map(Number);return{r,g:n,b:o,a:a===void 0?1:a}}function W$e(e){const r=/^hsla?\(\s*(\d+)\s*,\s*(\d+%)\s*,\s*(\d+%)\s*(,\s*(0?\.\d+|\d+(\.\d+)?))?\s*\)$/i,n=e.match(r);if(!n)return{r:0,g:0,b:0,a:1};const o=parseInt(n[1],10),a=parseInt(n[2],10)/100,i=parseInt(n[3],10)/100,l=n[5]?parseFloat(n[5]):void 0,s=(1-Math.abs(2*i-1))*a,c=o/60,u=s*(1-Math.abs(c%2-1)),d=i-s/2;let p,f,g;return c>=0&&c<1?(p=s,f=u,g=0):c>=1&&c<2?(p=u,f=s,g=0):c>=2&&c<3?(p=0,f=s,g=u):c>=3&&c<4?(p=0,f=u,g=s):c>=4&&c<5?(p=u,f=0,g=s):(p=s,f=0,g=u),{r:Math.round((p+d)*255),g:Math.round((f+d)*255),b:Math.round((g+d)*255),a:l||1}}function i9(e){return q$e(e)?V$e(e):e.startsWith("rgb")?Y$e(e):e.startsWith("hsl")?W$e(e):{r:0,g:0,b:0,a:1}}function Jx(e,r){if(e.startsWith("var("))return`color-mix(in srgb, ${e}, black ${r*100}%)`;const{r:n,g:o,b:a,a:i}=i9(e),l=1-r,s=c=>Math.round(c*l);return`rgba(${s(n)}, ${s(o)}, ${s(a)}, ${i})`}function N0(e,r){return typeof e.primaryShade=="number"?e.primaryShade:r==="dark"?e.primaryShade.dark:e.primaryShade.light}function l9(e){return e<=.03928?e/12.92:((e+.055)/1.055)**2.4}function G$e(e){const r=e.match(/oklch\((.*?)%\s/);return r?parseFloat(r[1]):null}function X$e(e){if(e.startsWith("oklch("))return(G$e(e)||0)/100;const{r,g:n,b:o}=i9(e),a=r/255,i=n/255,l=o/255,s=l9(a),c=l9(i),u=l9(l);return .2126*s+.7152*c+.0722*u}function D0(e,r=.179){return e.startsWith("var(")?!1:X$e(e)>r}function uu({color:e,theme:r,colorScheme:n}){if(typeof e!="string")throw new Error(`[@mantine/core] Failed to parse color. Expected color to be a string, instead got ${typeof e}`);if(e==="bright")return{color:e,value:n==="dark"?r.white:r.black,shade:void 0,isThemeColor:!1,isLight:D0(n==="dark"?r.white:r.black,r.luminanceThreshold),variable:"--mantine-color-bright"};if(e==="dimmed")return{color:e,value:n==="dark"?r.colors.dark[2]:r.colors.gray[7],shade:void 0,isThemeColor:!1,isLight:D0(n==="dark"?r.colors.dark[2]:r.colors.gray[6],r.luminanceThreshold),variable:"--mantine-color-dimmed"};if(e==="white"||e==="black")return{color:e,value:e==="white"?r.white:r.black,shade:void 0,isThemeColor:!1,isLight:D0(e==="white"?r.white:r.black,r.luminanceThreshold),variable:`--mantine-color-${e}`};const[o,a]=e.split("."),i=a?Number(a):void 0,l=o in r.colors;if(l){const s=i!==void 0?r.colors[o][i]:r.colors[o][N0(r,n||"light")];return{color:o,value:s,shade:i,isThemeColor:l,isLight:D0(s,r.luminanceThreshold),variable:a?`--mantine-color-${o}-${i}`:`--mantine-color-${o}-filled`}}return{color:e,value:e,isThemeColor:l,isLight:D0(e,r.luminanceThreshold),shade:i,variable:void 0}}function Jo(e,r){const n=uu({color:e||r.primaryColor,theme:r});return n.variable?`var(${n.variable})`:e}function s9(e,r){const n={from:e?.from||r.defaultGradient.from,to:e?.to||r.defaultGradient.to,deg:e?.deg??r.defaultGradient.deg??0},o=Jo(n.from,r),a=Jo(n.to,r);return`linear-gradient(${n.deg}deg, ${o} 0%, ${a} 100%)`}function es(e,r){if(typeof e!="string"||r>1||r<0)return"rgba(0, 0, 0, 1)";if(e.startsWith("var(")){const i=(1-r)*100;return`color-mix(in srgb, ${e}, transparent ${i}%)`}if(e.startsWith("oklch"))return e.includes("/")?e.replace(/\/\s*[\d.]+\s*\)/,`/ ${r})`):e.replace(")",` / ${r})`);const{r:n,g:o,b:a}=i9(e);return`rgba(${n}, ${o}, ${a}, ${r})`}const wf=es,K$e=({color:e,theme:r,variant:n,gradient:o,autoContrast:a})=>{const i=uu({color:e,theme:r}),l=typeof a=="boolean"?a:r.autoContrast;if(n==="none")return{background:"transparent",hover:"transparent",color:"inherit",border:"none"};if(n==="filled"){const s=l&&i.isLight?"var(--mantine-color-black)":"var(--mantine-color-white)";return i.isThemeColor?i.shade===void 0?{background:`var(--mantine-color-${e}-filled)`,hover:`var(--mantine-color-${e}-filled-hover)`,color:s,border:`${Ae(1)} solid transparent`}:{background:`var(--mantine-color-${i.color}-${i.shade})`,hover:`var(--mantine-color-${i.color}-${i.shade===9?8:i.shade+1})`,color:s,border:`${Ae(1)} solid transparent`}:{background:e,hover:Jx(e,.1),color:s,border:`${Ae(1)} solid transparent`}}if(n==="light"){if(i.isThemeColor){if(i.shade===void 0)return{background:`var(--mantine-color-${e}-light)`,hover:`var(--mantine-color-${e}-light-hover)`,color:`var(--mantine-color-${e}-light-color)`,border:`${Ae(1)} solid transparent`};const s=r.colors[i.color][i.shade];return{background:es(s,.1),hover:es(s,.12),color:`var(--mantine-color-${i.color}-${Math.min(i.shade,6)})`,border:`${Ae(1)} solid transparent`}}return{background:es(e,.1),hover:es(e,.12),color:e,border:`${Ae(1)} solid transparent`}}if(n==="outline")return i.isThemeColor?i.shade===void 0?{background:"transparent",hover:`var(--mantine-color-${e}-outline-hover)`,color:`var(--mantine-color-${e}-outline)`,border:`${Ae(1)} solid var(--mantine-color-${e}-outline)`}:{background:"transparent",hover:es(r.colors[i.color][i.shade],.05),color:`var(--mantine-color-${i.color}-${i.shade})`,border:`${Ae(1)} solid var(--mantine-color-${i.color}-${i.shade})`}:{background:"transparent",hover:es(e,.05),color:e,border:`${Ae(1)} solid ${e}`};if(n==="subtle"){if(i.isThemeColor){if(i.shade===void 0)return{background:"transparent",hover:`var(--mantine-color-${e}-light-hover)`,color:`var(--mantine-color-${e}-light-color)`,border:`${Ae(1)} solid transparent`};const s=r.colors[i.color][i.shade];return{background:"transparent",hover:es(s,.12),color:`var(--mantine-color-${i.color}-${Math.min(i.shade,6)})`,border:`${Ae(1)} solid transparent`}}return{background:"transparent",hover:es(e,.12),color:e,border:`${Ae(1)} solid transparent`}}return n==="transparent"?i.isThemeColor?i.shade===void 0?{background:"transparent",hover:"transparent",color:`var(--mantine-color-${e}-light-color)`,border:`${Ae(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:`var(--mantine-color-${i.color}-${Math.min(i.shade,6)})`,border:`${Ae(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:e,border:`${Ae(1)} solid transparent`}:n==="white"?i.isThemeColor?i.shade===void 0?{background:"var(--mantine-color-white)",hover:Jx(r.white,.01),color:`var(--mantine-color-${e}-filled)`,border:`${Ae(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:Jx(r.white,.01),color:`var(--mantine-color-${i.color}-${i.shade})`,border:`${Ae(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:Jx(r.white,.01),color:e,border:`${Ae(1)} solid transparent`}:n==="gradient"?{background:s9(o,r),hover:s9(o,r),color:"var(--mantine-color-white)",border:"none"}:n==="default"?{background:"var(--mantine-color-default)",hover:"var(--mantine-color-default-hover)",color:"var(--mantine-color-default-color)",border:`${Ae(1)} solid var(--mantine-color-default-border)`}:{}},Z$e={dark:["#C9C9C9","#b8b8b8","#828282","#696969","#424242","#3b3b3b","#2e2e2e","#242424","#1f1f1f","#141414"],gray:["#f8f9fa","#f1f3f5","#e9ecef","#dee2e6","#ced4da","#adb5bd","#868e96","#495057","#343a40","#212529"],red:["#fff5f5","#ffe3e3","#ffc9c9","#ffa8a8","#ff8787","#ff6b6b","#fa5252","#f03e3e","#e03131","#c92a2a"],pink:["#fff0f6","#ffdeeb","#fcc2d7","#faa2c1","#f783ac","#f06595","#e64980","#d6336c","#c2255c","#a61e4d"],grape:["#f8f0fc","#f3d9fa","#eebefa","#e599f7","#da77f2","#cc5de8","#be4bdb","#ae3ec9","#9c36b5","#862e9c"],violet:["#f3f0ff","#e5dbff","#d0bfff","#b197fc","#9775fa","#845ef7","#7950f2","#7048e8","#6741d9","#5f3dc4"],indigo:["#edf2ff","#dbe4ff","#bac8ff","#91a7ff","#748ffc","#5c7cfa","#4c6ef5","#4263eb","#3b5bdb","#364fc7"],blue:["#e7f5ff","#d0ebff","#a5d8ff","#74c0fc","#4dabf7","#339af0","#228be6","#1c7ed6","#1971c2","#1864ab"],cyan:["#e3fafc","#c5f6fa","#99e9f2","#66d9e8","#3bc9db","#22b8cf","#15aabf","#1098ad","#0c8599","#0b7285"],teal:["#e6fcf5","#c3fae8","#96f2d7","#63e6be","#38d9a9","#20c997","#12b886","#0ca678","#099268","#087f5b"],green:["#ebfbee","#d3f9d8","#b2f2bb","#8ce99a","#69db7c","#51cf66","#40c057","#37b24d","#2f9e44","#2b8a3e"],lime:["#f4fce3","#e9fac8","#d8f5a2","#c0eb75","#a9e34b","#94d82d","#82c91e","#74b816","#66a80f","#5c940d"],yellow:["#fff9db","#fff3bf","#ffec99","#ffe066","#ffd43b","#fcc419","#fab005","#f59f00","#f08c00","#e67700"],orange:["#fff4e6","#ffe8cc","#ffd8a8","#ffc078","#ffa94d","#ff922b","#fd7e14","#f76707","#e8590c","#d9480f"]},Kq="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji",c9={scale:1,fontSmoothing:!0,focusRing:"auto",white:"#fff",black:"#000",colors:Z$e,primaryShade:{light:6,dark:8},primaryColor:"blue",variantColorResolver:K$e,autoContrast:!1,luminanceThreshold:.3,fontFamily:Kq,fontFamilyMonospace:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace",respectReducedMotion:!1,cursorType:"default",defaultGradient:{from:"blue",to:"cyan",deg:45},defaultRadius:"sm",activeClassName:"mantine-active",focusClassName:"",headings:{fontFamily:Kq,fontWeight:"700",textWrap:"wrap",sizes:{h1:{fontSize:Ae(34),lineHeight:"1.3"},h2:{fontSize:Ae(26),lineHeight:"1.35"},h3:{fontSize:Ae(22),lineHeight:"1.4"},h4:{fontSize:Ae(18),lineHeight:"1.45"},h5:{fontSize:Ae(16),lineHeight:"1.5"},h6:{fontSize:Ae(14),lineHeight:"1.5"}}},fontSizes:{xs:Ae(12),sm:Ae(14),md:Ae(16),lg:Ae(18),xl:Ae(20)},lineHeights:{xs:"1.4",sm:"1.45",md:"1.55",lg:"1.6",xl:"1.65"},radius:{xs:Ae(2),sm:Ae(4),md:Ae(8),lg:Ae(16),xl:Ae(32)},spacing:{xs:Ae(10),sm:Ae(12),md:Ae(16),lg:Ae(20),xl:Ae(32)},breakpoints:{xs:"36em",sm:"48em",md:"62em",lg:"75em",xl:"88em"},shadows:{xs:`0 ${Ae(1)} ${Ae(3)} rgba(0, 0, 0, 0.05), 0 ${Ae(1)} ${Ae(2)} rgba(0, 0, 0, 0.1)`,sm:`0 ${Ae(1)} ${Ae(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${Ae(10)} ${Ae(15)} ${Ae(-5)}, rgba(0, 0, 0, 0.04) 0 ${Ae(7)} ${Ae(7)} ${Ae(-5)}`,md:`0 ${Ae(1)} ${Ae(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${Ae(20)} ${Ae(25)} ${Ae(-5)}, rgba(0, 0, 0, 0.04) 0 ${Ae(10)} ${Ae(10)} ${Ae(-5)}`,lg:`0 ${Ae(1)} ${Ae(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${Ae(28)} ${Ae(23)} ${Ae(-7)}, rgba(0, 0, 0, 0.04) 0 ${Ae(12)} ${Ae(12)} ${Ae(-7)}`,xl:`0 ${Ae(1)} ${Ae(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${Ae(36)} ${Ae(28)} ${Ae(-7)}, rgba(0, 0, 0, 0.04) 0 ${Ae(17)} ${Ae(17)} ${Ae(-7)}`},other:{},components:{}};function Zq(e){return e==="auto"||e==="dark"||e==="light"}function Q$e({key:e="mantine-color-scheme-value"}={}){let r;return{get:n=>{if(typeof window>"u")return n;try{const o=window.localStorage.getItem(e);return Zq(o)?o:n}catch{return n}},set:n=>{try{window.localStorage.setItem(e,n)}catch(o){console.warn("[@mantine/core] Local storage color scheme manager was unable to save color scheme.",o)}},subscribe:n=>{r=o=>{o.storageArea===window.localStorage&&o.key===e&&Zq(o.newValue)&&n(o.newValue)},window.addEventListener("storage",r)},unsubscribe:()=>{window.removeEventListener("storage",r)},clear:()=>{window.localStorage.removeItem(e)}}}const J$e="[@mantine/core] MantineProvider: Invalid theme.primaryColor, it accepts only key of theme.colors, learn more – https://mantine.dev/theming/colors/#primary-color",Qq="[@mantine/core] MantineProvider: Invalid theme.primaryShade, it accepts only 0-9 integers or an object { light: 0-9, dark: 0-9 }";function u9(e){return e<0||e>9?!1:parseInt(e.toString(),10)===e}function Jq(e){if(!(e.primaryColor in e.colors))throw new Error(J$e);if(typeof e.primaryShade=="object"&&(!u9(e.primaryShade.dark)||!u9(e.primaryShade.light)))throw new Error(Qq);if(typeof e.primaryShade=="number"&&!u9(e.primaryShade))throw new Error(Qq)}function ePe(e,r){if(!r)return Jq(e),e;const n=Q8(e,r);return r.fontFamily&&!r.headings?.fontFamily&&(n.headings.fontFamily=r.fontFamily),Jq(n),n}const d9=E.createContext(null),tPe=()=>E.useContext(d9)||c9;function po(){const e=E.useContext(d9);if(!e)throw new Error("@mantine/core: MantineProvider was not found in component tree, make sure you have it in your app");return e}function eV({theme:e,children:r,inherit:n=!0}){const o=tPe(),a=E.useMemo(()=>ePe(n?o:c9,e),[e,o,n]);return y.jsx(d9.Provider,{value:a,children:r})}eV.displayName="@mantine/core/MantineThemeProvider";function rPe(){const e=po(),r=Yd(),n=Ao(e.breakpoints).reduce((o,a)=>{const i=e.breakpoints[a].includes("px"),l=J8(e.breakpoints[a]),s=i?`${l-.1}px`:Sq(l-.1),c=i?`${l}px`:Sq(l);return`${o}@media (max-width: ${s}) {.mantine-visible-from-${a} {display: none !important;}}@media (min-width: ${c}) {.mantine-hidden-from-${a} {display: none !important;}}`},"");return y.jsx("style",{"data-mantine-styles":"classes",nonce:r?.(),dangerouslySetInnerHTML:{__html:n}})}function p9(e){return Object.entries(e).map(([r,n])=>`${r}: ${n};`).join("")}function h9(e,r){return(Array.isArray(e)?e:[e]).reduce((n,o)=>`${o}{${n}}`,r)}function nPe(e,r){const n=p9(e.variables),o=n?h9(r,n):"",a=p9(e.dark),i=p9(e.light),l=a?h9(r===":host"?`${r}([data-mantine-color-scheme="dark"])`:`${r}[data-mantine-color-scheme="dark"]`,a):"",s=i?h9(r===":host"?`${r}([data-mantine-color-scheme="light"])`:`${r}[data-mantine-color-scheme="light"]`,i):"";return`${o} + +${l} + +${s}`}function f9({color:e,theme:r,autoContrast:n}){return(typeof n=="boolean"?n:r.autoContrast)&&uu({color:e||r.primaryColor,theme:r}).isLight?"var(--mantine-color-black)":"var(--mantine-color-white)"}function tV(e,r){return f9({color:e.colors[e.primaryColor][N0(e,r)],theme:e,autoContrast:null})}function ew({theme:e,color:r,colorScheme:n,name:o=r,withColorValues:a=!0}){if(!e.colors[r])return{};if(n==="light"){const s=N0(e,"light"),c={[`--mantine-color-${o}-text`]:`var(--mantine-color-${o}-filled)`,[`--mantine-color-${o}-filled`]:`var(--mantine-color-${o}-${s})`,[`--mantine-color-${o}-filled-hover`]:`var(--mantine-color-${o}-${s===9?8:s+1})`,[`--mantine-color-${o}-light`]:wf(e.colors[r][s],.1),[`--mantine-color-${o}-light-hover`]:wf(e.colors[r][s],.12),[`--mantine-color-${o}-light-color`]:`var(--mantine-color-${o}-${s})`,[`--mantine-color-${o}-outline`]:`var(--mantine-color-${o}-${s})`,[`--mantine-color-${o}-outline-hover`]:wf(e.colors[r][s],.05)};return a?{[`--mantine-color-${o}-0`]:e.colors[r][0],[`--mantine-color-${o}-1`]:e.colors[r][1],[`--mantine-color-${o}-2`]:e.colors[r][2],[`--mantine-color-${o}-3`]:e.colors[r][3],[`--mantine-color-${o}-4`]:e.colors[r][4],[`--mantine-color-${o}-5`]:e.colors[r][5],[`--mantine-color-${o}-6`]:e.colors[r][6],[`--mantine-color-${o}-7`]:e.colors[r][7],[`--mantine-color-${o}-8`]:e.colors[r][8],[`--mantine-color-${o}-9`]:e.colors[r][9],...c}:c}const i=N0(e,"dark"),l={[`--mantine-color-${o}-text`]:`var(--mantine-color-${o}-4)`,[`--mantine-color-${o}-filled`]:`var(--mantine-color-${o}-${i})`,[`--mantine-color-${o}-filled-hover`]:`var(--mantine-color-${o}-${i===9?8:i+1})`,[`--mantine-color-${o}-light`]:wf(e.colors[r][Math.max(0,i-2)],.15),[`--mantine-color-${o}-light-hover`]:wf(e.colors[r][Math.max(0,i-2)],.2),[`--mantine-color-${o}-light-color`]:`var(--mantine-color-${o}-${Math.max(i-5,0)})`,[`--mantine-color-${o}-outline`]:`var(--mantine-color-${o}-${Math.max(i-4,0)})`,[`--mantine-color-${o}-outline-hover`]:wf(e.colors[r][Math.max(i-4,0)],.05)};return a?{[`--mantine-color-${o}-0`]:e.colors[r][0],[`--mantine-color-${o}-1`]:e.colors[r][1],[`--mantine-color-${o}-2`]:e.colors[r][2],[`--mantine-color-${o}-3`]:e.colors[r][3],[`--mantine-color-${o}-4`]:e.colors[r][4],[`--mantine-color-${o}-5`]:e.colors[r][5],[`--mantine-color-${o}-6`]:e.colors[r][6],[`--mantine-color-${o}-7`]:e.colors[r][7],[`--mantine-color-${o}-8`]:e.colors[r][8],[`--mantine-color-${o}-9`]:e.colors[r][9],...l}:l}function oPe(e){return!!e&&typeof e=="object"&&"mantine-virtual-color"in e}function kf(e,r,n){Ao(r).forEach(o=>Object.assign(e,{[`--mantine-${n}-${o}`]:r[o]}))}const rV=e=>{const r=N0(e,"light"),n=e.defaultRadius in e.radius?e.radius[e.defaultRadius]:Ae(e.defaultRadius),o={variables:{"--mantine-z-index-app":"100","--mantine-z-index-modal":"200","--mantine-z-index-popover":"300","--mantine-z-index-overlay":"400","--mantine-z-index-max":"9999","--mantine-scale":e.scale.toString(),"--mantine-cursor-type":e.cursorType,"--mantine-webkit-font-smoothing":e.fontSmoothing?"antialiased":"unset","--mantine-moz-font-smoothing":e.fontSmoothing?"grayscale":"unset","--mantine-color-white":e.white,"--mantine-color-black":e.black,"--mantine-line-height":e.lineHeights.md,"--mantine-font-family":e.fontFamily,"--mantine-font-family-monospace":e.fontFamilyMonospace,"--mantine-font-family-headings":e.headings.fontFamily,"--mantine-heading-font-weight":e.headings.fontWeight,"--mantine-heading-text-wrap":e.headings.textWrap,"--mantine-radius-default":n,"--mantine-primary-color-filled":`var(--mantine-color-${e.primaryColor}-filled)`,"--mantine-primary-color-filled-hover":`var(--mantine-color-${e.primaryColor}-filled-hover)`,"--mantine-primary-color-light":`var(--mantine-color-${e.primaryColor}-light)`,"--mantine-primary-color-light-hover":`var(--mantine-color-${e.primaryColor}-light-hover)`,"--mantine-primary-color-light-color":`var(--mantine-color-${e.primaryColor}-light-color)`},light:{"--mantine-color-scheme":"light","--mantine-primary-color-contrast":tV(e,"light"),"--mantine-color-bright":"var(--mantine-color-black)","--mantine-color-text":e.black,"--mantine-color-body":e.white,"--mantine-color-error":"var(--mantine-color-red-6)","--mantine-color-placeholder":"var(--mantine-color-gray-5)","--mantine-color-anchor":`var(--mantine-color-${e.primaryColor}-${r})`,"--mantine-color-default":"var(--mantine-color-white)","--mantine-color-default-hover":"var(--mantine-color-gray-0)","--mantine-color-default-color":"var(--mantine-color-black)","--mantine-color-default-border":"var(--mantine-color-gray-4)","--mantine-color-dimmed":"var(--mantine-color-gray-6)","--mantine-color-disabled":"var(--mantine-color-gray-2)","--mantine-color-disabled-color":"var(--mantine-color-gray-5)","--mantine-color-disabled-border":"var(--mantine-color-gray-3)"},dark:{"--mantine-color-scheme":"dark","--mantine-primary-color-contrast":tV(e,"dark"),"--mantine-color-bright":"var(--mantine-color-white)","--mantine-color-text":"var(--mantine-color-dark-0)","--mantine-color-body":"var(--mantine-color-dark-7)","--mantine-color-error":"var(--mantine-color-red-8)","--mantine-color-placeholder":"var(--mantine-color-dark-3)","--mantine-color-anchor":`var(--mantine-color-${e.primaryColor}-4)`,"--mantine-color-default":"var(--mantine-color-dark-6)","--mantine-color-default-hover":"var(--mantine-color-dark-5)","--mantine-color-default-color":"var(--mantine-color-white)","--mantine-color-default-border":"var(--mantine-color-dark-4)","--mantine-color-dimmed":"var(--mantine-color-dark-2)","--mantine-color-disabled":"var(--mantine-color-dark-6)","--mantine-color-disabled-color":"var(--mantine-color-dark-3)","--mantine-color-disabled-border":"var(--mantine-color-dark-4)"}};kf(o.variables,e.breakpoints,"breakpoint"),kf(o.variables,e.spacing,"spacing"),kf(o.variables,e.fontSizes,"font-size"),kf(o.variables,e.lineHeights,"line-height"),kf(o.variables,e.shadows,"shadow"),kf(o.variables,e.radius,"radius"),e.colors[e.primaryColor].forEach((i,l)=>{o.variables[`--mantine-primary-color-${l}`]=`var(--mantine-color-${e.primaryColor}-${l})`}),Ao(e.colors).forEach(i=>{const l=e.colors[i];if(oPe(l)){Object.assign(o.light,ew({theme:e,name:l.name,color:l.light,colorScheme:"light",withColorValues:!0})),Object.assign(o.dark,ew({theme:e,name:l.name,color:l.dark,colorScheme:"dark",withColorValues:!0}));return}l.forEach((s,c)=>{o.variables[`--mantine-color-${i}-${c}`]=s}),Object.assign(o.light,ew({theme:e,color:i,colorScheme:"light",withColorValues:!1})),Object.assign(o.dark,ew({theme:e,color:i,colorScheme:"dark",withColorValues:!1}))});const a=e.headings.sizes;return Ao(a).forEach(i=>{o.variables[`--mantine-${i}-font-size`]=a[i].fontSize,o.variables[`--mantine-${i}-line-height`]=a[i].lineHeight,o.variables[`--mantine-${i}-font-weight`]=a[i].fontWeight||e.headings.fontWeight}),o};function aPe({theme:e,generator:r}){const n=rV(e),o=r?.(e);return o?Q8(n,o):n}const m9=rV(c9);function iPe(e){const r={variables:{},light:{},dark:{}};return Ao(e.variables).forEach(n=>{m9.variables[n]!==e.variables[n]&&(r.variables[n]=e.variables[n])}),Ao(e.light).forEach(n=>{m9.light[n]!==e.light[n]&&(r.light[n]=e.light[n])}),Ao(e.dark).forEach(n=>{m9.dark[n]!==e.dark[n]&&(r.dark[n]=e.dark[n])}),r}function lPe(e){return` + ${e}[data-mantine-color-scheme="dark"] { --mantine-color-scheme: dark; } + ${e}[data-mantine-color-scheme="light"] { --mantine-color-scheme: light; } +`}function nV({cssVariablesSelector:e,deduplicateCssVariables:r}){const n=po(),o=Yd(),a=z$e(),i=aPe({theme:n,generator:a}),l=e===":root"&&r,s=l?iPe(i):i,c=nPe(s,e);return c?y.jsx("style",{"data-mantine-styles":!0,nonce:o?.(),dangerouslySetInnerHTML:{__html:`${c}${l?"":lPe(e)}`}}):null}nV.displayName="@mantine/CssVariables";function _f(e,r){const n=typeof window<"u"&&"matchMedia"in window&&window.matchMedia("(prefers-color-scheme: dark)")?.matches,o=e!=="auto"?e:n?"dark":"light";r()?.setAttribute("data-mantine-color-scheme",o)}function sPe({manager:e,defaultColorScheme:r,getRootElement:n,forceColorScheme:o}){const a=E.useRef(null),[i,l]=E.useState(()=>e.get(r)),s=o||i,c=E.useCallback(d=>{o||(_f(d,n),l(d),e.set(d))},[e.set,s,o]),u=E.useCallback(()=>{l(r),_f(r,n),e.clear()},[e.clear,r]);return E.useEffect(()=>(e.subscribe(c),e.unsubscribe),[e.subscribe,e.unsubscribe]),A0(()=>{_f(e.get(r),n)},[]),E.useEffect(()=>{if(o)return _f(o,n),()=>{};o===void 0&&_f(i,n),typeof window<"u"&&"matchMedia"in window&&(a.current=window.matchMedia("(prefers-color-scheme: dark)"));const d=p=>{i==="auto"&&_f(p.matches?"dark":"light",n)};return a.current?.addEventListener("change",d),()=>a.current?.removeEventListener("change",d)},[i,o]),{colorScheme:s,setColorScheme:c,clearColorScheme:u}}function cPe({respectReducedMotion:e,getRootElement:r}){A0(()=>{e&&r()?.setAttribute("data-respect-reduced-motion","true")},[e])}function g9({theme:e,children:r,getStyleNonce:n,withStaticClasses:o=!0,withGlobalClasses:a=!0,deduplicateCssVariables:i=!0,withCssVariables:l=!0,cssVariablesSelector:s=":root",classNamesPrefix:c="mantine",colorSchemeManager:u=Q$e(),defaultColorScheme:d="light",getRootElement:p=()=>document.documentElement,cssVariablesResolver:f,forceColorScheme:g,stylesTransform:b,env:x}){const{colorScheme:w,setColorScheme:k,clearColorScheme:C}=sPe({defaultColorScheme:d,forceColorScheme:g,manager:u,getRootElement:p});return cPe({respectReducedMotion:e?.respectReducedMotion||!1,getRootElement:p}),y.jsx(Zx.Provider,{value:{colorScheme:w,setColorScheme:k,clearColorScheme:C,getRootElement:p,classNamesPrefix:c,getStyleNonce:n,cssVariablesResolver:f,cssVariablesSelector:s,withStaticClasses:o,stylesTransform:b,env:x},children:y.jsxs(eV,{theme:e,children:[l&&y.jsx(nV,{cssVariablesSelector:s,deduplicateCssVariables:i}),a&&y.jsx(rPe,{}),r]})})}g9.displayName="@mantine/core/MantineProvider";function y9({classNames:e,styles:r,props:n,stylesCtx:o}){const a=po();return{resolvedClassNames:Xx({theme:a,classNames:e,props:n,stylesCtx:o||void 0}),resolvedStyles:Kx({theme:a,styles:r,props:n,stylesCtx:o||void 0})}}const uPe={always:"mantine-focus-always",auto:"mantine-focus-auto",never:"mantine-focus-never"};function dPe({theme:e,options:r,unstyled:n}){return Ji(r?.focusable&&!n&&(e.focusClassName||uPe[e.focusRing]),r?.active&&!n&&e.activeClassName)}function pPe({selector:e,stylesCtx:r,options:n,props:o,theme:a}){return Xx({theme:a,classNames:n?.classNames,props:n?.props||o,stylesCtx:r})[e]}function oV({selector:e,stylesCtx:r,theme:n,classNames:o,props:a}){return Xx({theme:n,classNames:o,props:a,stylesCtx:r})[e]}function hPe({rootSelector:e,selector:r,className:n}){return e===r?n:void 0}function fPe({selector:e,classes:r,unstyled:n}){return n?void 0:r[e]}function mPe({themeName:e,classNamesPrefix:r,selector:n,withStaticClass:o}){return o===!1?[]:e.map(a=>`${r}-${a}-${n}`)}function gPe({themeName:e,theme:r,selector:n,props:o,stylesCtx:a}){return e.map(i=>Xx({theme:r,classNames:r.components[i]?.classNames,props:o,stylesCtx:a})?.[n])}function yPe({options:e,classes:r,selector:n,unstyled:o}){return e?.variant&&!o?r[`${n}--${e.variant}`]:void 0}function bPe({theme:e,options:r,themeName:n,selector:o,classNamesPrefix:a,classNames:i,classes:l,unstyled:s,className:c,rootSelector:u,props:d,stylesCtx:p,withStaticClasses:f,headless:g,transformedStyles:b}){return Ji(dPe({theme:e,options:r,unstyled:s||g}),gPe({theme:e,themeName:n,selector:o,props:d,stylesCtx:p}),yPe({options:r,classes:l,selector:o,unstyled:s}),oV({selector:o,stylesCtx:p,theme:e,classNames:i,props:d}),oV({selector:o,stylesCtx:p,theme:e,classNames:b,props:d}),pPe({selector:o,stylesCtx:p,options:r,props:d,theme:e}),hPe({rootSelector:u,selector:o,className:c}),fPe({selector:o,classes:l,unstyled:s||g}),f&&!g&&mPe({themeName:n,classNamesPrefix:a,selector:o,withStaticClass:r?.withStaticClass}),r?.className)}function vPe({theme:e,themeName:r,props:n,stylesCtx:o,selector:a}){return r.map(i=>Kx({theme:e,styles:e.components[i]?.styles,props:n,stylesCtx:o})[a]).reduce((i,l)=>({...i,...l}),{})}function b9({style:e,theme:r}){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,...b9({style:o,theme:r})}),{}):typeof e=="function"?e(r):e??{}}function xPe(e){return e.reduce((r,n)=>(n&&Object.keys(n).forEach(o=>{r[o]={...r[o],...yf(n[o])}}),r),{})}function wPe({vars:e,varsResolver:r,theme:n,props:o,stylesCtx:a,selector:i,themeName:l,headless:s}){return xPe([s?{}:r?.(n,o,a),...l.map(c=>n.components?.[c]?.vars?.(n,o,a)),e?.(n,o,a)])?.[i]}function kPe({theme:e,themeName:r,selector:n,options:o,props:a,stylesCtx:i,rootSelector:l,styles:s,style:c,vars:u,varsResolver:d,headless:p,withStylesTransform:f}){return{...!f&&vPe({theme:e,themeName:r,props:a,stylesCtx:i,selector:n}),...!f&&Kx({theme:e,styles:s,props:a,stylesCtx:i})[n],...!f&&Kx({theme:e,styles:o?.styles,props:o?.props||a,stylesCtx:i})[n],...wPe({theme:e,props:a,stylesCtx:i,vars:u,varsResolver:d,selector:n,themeName:r,headless:p}),...l===n?b9({style:c,theme:e}):null,...b9({style:o?.style,theme:e})}}function _Pe({props:e,stylesCtx:r,themeName:n}){const o=po(),a=U$e()?.();return{getTransformedStyles:i=>a?[...i.map(l=>a(l,{props:e,theme:o,ctx:r})),...n.map(l=>a(o.components[l]?.styles,{props:e,theme:o,ctx:r}))].filter(Boolean):[],withStylesTransform:!!a}}function bt({name:e,classes:r,props:n,stylesCtx:o,className:a,style:i,rootSelector:l="root",unstyled:s,classNames:c,styles:u,vars:d,varsResolver:p,attributes:f}){const g=po(),b=j$e(),x=B$e(),w=F$e(),k=(Array.isArray(e)?e:[e]).filter(T=>T),{withStylesTransform:C,getTransformedStyles:_}=_Pe({props:n,stylesCtx:o,themeName:k});return(T,R)=>({className:bPe({theme:g,options:R,themeName:k,selector:T,classNamesPrefix:b,classNames:c,classes:r,unstyled:s,className:a,rootSelector:l,props:n,stylesCtx:o,withStaticClasses:x,headless:w,transformedStyles:_([R?.styles,u])}),style:kPe({theme:g,themeName:k,selector:T,options:R,props:n,stylesCtx:o,rootSelector:l,styles:u,style:i,vars:d,varsResolver:p,headless:w,withStylesTransform:C}),...f?.[T]})}function EPe(e,r){return typeof e=="boolean"?e:r.autoContrast}function aV(e){const r=document.createElement("style");return r.setAttribute("data-mantine-styles","inline"),r.innerHTML="*, *::before, *::after {transition: none !important;}",r.setAttribute("data-mantine-disable-transition","true"),e&&r.setAttribute("nonce",e),document.head.appendChild(r),()=>document.querySelectorAll("[data-mantine-disable-transition]").forEach(n=>n.remove())}function SPe({keepTransitions:e}={}){const r=E.useRef(Rq),n=E.useRef(-1),o=E.useContext(Zx),a=Yd(),i=E.useRef(a?.());if(!o)throw new Error("[@mantine/core] MantineProvider was not found in tree");const l=p=>{o.setColorScheme(p),r.current=e?()=>{}:aV(i.current),window.clearTimeout(n.current),n.current=window.setTimeout(()=>{r.current?.()},10)},s=()=>{o.clearColorScheme(),r.current=e?()=>{}:aV(i.current),window.clearTimeout(n.current),n.current=window.setTimeout(()=>{r.current?.()},10)},c=Pq("light",{getInitialValueInEffect:!1}),u=o.colorScheme==="auto"?c:o.colorScheme,d=E.useCallback(()=>l(u==="light"?"dark":"light"),[l,u]);return E.useEffect(()=>()=>{r.current?.(),window.clearTimeout(n.current)},[]),{colorScheme:o.colorScheme,setColorScheme:l,clearColorScheme:s,toggleColorScheme:d}}function ze(e,r,n){const o=po(),a=o.components[e]?.defaultProps,i=typeof a=="function"?a(o):a;return{...r,...i,...yf(n)}}function v9(e){return Ao(e).reduce((r,n)=>e[n]!==void 0?`${r}${qDe(n)}:${e[n]};`:r,"").trim()}function CPe({selector:e,styles:r,media:n,container:o}){const a=r?v9(r):"",i=Array.isArray(n)?n.map(s=>`@media${s.query}{${e}{${v9(s.styles)}}}`):[],l=Array.isArray(o)?o.map(s=>`@container ${s.query}{${e}{${v9(s.styles)}}}`):[];return`${a?`${e}{${a}}`:""}${i.join("")}${l.join("")}`.trim()}function tw(e){const r=Yd();return y.jsx("style",{"data-mantine-styles":"inline",nonce:r?.(),dangerouslySetInnerHTML:{__html:CPe(e)}})}function iV(e){const{m:r,mx:n,my:o,mt:a,mb:i,ml:l,mr:s,me:c,ms:u,p:d,px:p,py:f,pt:g,pb:b,pl:x,pr:w,pe:k,ps:C,bd:_,bdrs:T,bg:R,c:A,opacity:D,ff:N,fz:P,fw:O,lts:B,ta:L,lh:Y,fs:M,tt:q,td:I,w:U,miw:V,maw:G,h:F,mih:J,mah:Q,bgsz:z,bgp:W,bgr:X,bga:Z,pos:oe,top:ee,left:re,bottom:pe,right:Ce,inset:ce,display:de,flex:be,hiddenFrom:Me,visibleFrom:Xe,lightHidden:Ge,darkHidden:_t,sx:Qe,...St}=e;return{styleProps:yf({m:r,mx:n,my:o,mt:a,mb:i,ml:l,mr:s,me:c,ms:u,p:d,px:p,py:f,pt:g,pb:b,pl:x,pr:w,pe:k,ps:C,bd:_,bg:R,c:A,opacity:D,ff:N,fz:P,fw:O,lts:B,ta:L,lh:Y,fs:M,tt:q,td:I,w:U,miw:V,maw:G,h:F,mih:J,mah:Q,bgsz:z,bgp:W,bgr:X,bga:Z,pos:oe,top:ee,left:re,bottom:pe,right:Ce,inset:ce,display:de,flex:be,bdrs:T,hiddenFrom:Me,visibleFrom:Xe,lightHidden:Ge,darkHidden:_t,sx:Qe}),rest:St}}const TPe={m:{type:"spacing",property:"margin"},mt:{type:"spacing",property:"marginTop"},mb:{type:"spacing",property:"marginBottom"},ml:{type:"spacing",property:"marginLeft"},mr:{type:"spacing",property:"marginRight"},ms:{type:"spacing",property:"marginInlineStart"},me:{type:"spacing",property:"marginInlineEnd"},mx:{type:"spacing",property:"marginInline"},my:{type:"spacing",property:"marginBlock"},p:{type:"spacing",property:"padding"},pt:{type:"spacing",property:"paddingTop"},pb:{type:"spacing",property:"paddingBottom"},pl:{type:"spacing",property:"paddingLeft"},pr:{type:"spacing",property:"paddingRight"},ps:{type:"spacing",property:"paddingInlineStart"},pe:{type:"spacing",property:"paddingInlineEnd"},px:{type:"spacing",property:"paddingInline"},py:{type:"spacing",property:"paddingBlock"},bd:{type:"border",property:"border"},bdrs:{type:"radius",property:"borderRadius"},bg:{type:"color",property:"background"},c:{type:"textColor",property:"color"},opacity:{type:"identity",property:"opacity"},ff:{type:"fontFamily",property:"fontFamily"},fz:{type:"fontSize",property:"fontSize"},fw:{type:"identity",property:"fontWeight"},lts:{type:"size",property:"letterSpacing"},ta:{type:"identity",property:"textAlign"},lh:{type:"lineHeight",property:"lineHeight"},fs:{type:"identity",property:"fontStyle"},tt:{type:"identity",property:"textTransform"},td:{type:"identity",property:"textDecoration"},w:{type:"spacing",property:"width"},miw:{type:"spacing",property:"minWidth"},maw:{type:"spacing",property:"maxWidth"},h:{type:"spacing",property:"height"},mih:{type:"spacing",property:"minHeight"},mah:{type:"spacing",property:"maxHeight"},bgsz:{type:"size",property:"backgroundSize"},bgp:{type:"identity",property:"backgroundPosition"},bgr:{type:"identity",property:"backgroundRepeat"},bga:{type:"identity",property:"backgroundAttachment"},pos:{type:"identity",property:"position"},top:{type:"size",property:"top"},left:{type:"size",property:"left"},bottom:{type:"size",property:"bottom"},right:{type:"size",property:"right"},inset:{type:"size",property:"inset"},display:{type:"identity",property:"display"},flex:{type:"identity",property:"flex"}};function x9(e,r){const n=uu({color:e,theme:r});return n.color==="dimmed"?"var(--mantine-color-dimmed)":n.color==="bright"?"var(--mantine-color-bright)":n.variable?`var(${n.variable})`:n.color}function RPe(e,r){const n=uu({color:e,theme:r});return n.isThemeColor&&n.shade===void 0?`var(--mantine-color-${n.color}-text)`:x9(e,r)}function APe(e,r){if(typeof e=="number")return Ae(e);if(typeof e=="string"){const[n,o,...a]=e.split(" ").filter(l=>l.trim()!=="");let i=`${Ae(n)}`;return o&&(i+=` ${o}`),a.length>0&&(i+=` ${x9(a.join(" "),r)}`),i.trim()}return e}const lV={text:"var(--mantine-font-family)",mono:"var(--mantine-font-family-monospace)",monospace:"var(--mantine-font-family-monospace)",heading:"var(--mantine-font-family-headings)",headings:"var(--mantine-font-family-headings)"};function NPe(e){return typeof e=="string"&&e in lV?lV[e]:e}const DPe=["h1","h2","h3","h4","h5","h6"];function $Pe(e,r){return typeof e=="string"&&e in r.fontSizes?`var(--mantine-font-size-${e})`:typeof e=="string"&&DPe.includes(e)?`var(--mantine-${e}-font-size)`:typeof e=="number"||typeof e=="string"?Ae(e):e}function PPe(e){return e}const OPe=["h1","h2","h3","h4","h5","h6"];function MPe(e,r){return typeof e=="string"&&e in r.lineHeights?`var(--mantine-line-height-${e})`:typeof e=="string"&&OPe.includes(e)?`var(--mantine-${e}-line-height)`:e}function IPe(e,r){return typeof e=="string"&&e in r.radius?`var(--mantine-radius-${e})`:typeof e=="number"||typeof e=="string"?Ae(e):e}function LPe(e){return typeof e=="number"?Ae(e):e}function zPe(e,r){if(typeof e=="number")return Ae(e);if(typeof e=="string"){const n=e.replace("-","");if(!(n in r.spacing))return Ae(e);const o=`--mantine-spacing-${n}`;return e.startsWith("-")?`calc(var(${o}) * -1)`:`var(${o})`}return e}const w9={color:x9,textColor:RPe,fontSize:$Pe,spacing:zPe,radius:IPe,identity:PPe,size:LPe,lineHeight:MPe,fontFamily:NPe,border:APe};function sV(e){return e.replace("(min-width: ","").replace("em)","")}function jPe({media:e,...r}){const n=Object.keys(e).sort((o,a)=>Number(sV(o))-Number(sV(a))).map(o=>({query:o,styles:e[o]}));return{...r,media:n}}function BPe(e){if(typeof e!="object"||e===null)return!1;const r=Object.keys(e);return!(r.length===1&&r[0]==="base")}function FPe(e){return typeof e=="object"&&e!==null?"base"in e?e.base:void 0:e}function HPe(e){return typeof e=="object"&&e!==null?Ao(e).filter(r=>r!=="base"):[]}function UPe(e,r){return typeof e=="object"&&e!==null&&r in e?e[r]:e}function cV({styleProps:e,data:r,theme:n}){return jPe(Ao(e).reduce((o,a)=>{if(a==="hiddenFrom"||a==="visibleFrom"||a==="sx")return o;const i=r[a],l=Array.isArray(i.property)?i.property:[i.property],s=FPe(e[a]);if(!BPe(e[a]))return l.forEach(u=>{o.inlineStyles[u]=w9[i.type](s,n)}),o;o.hasResponsiveStyles=!0;const c=HPe(e[a]);return l.forEach(u=>{s!=null&&(o.styles[u]=w9[i.type](s,n)),c.forEach(d=>{const p=`(min-width: ${n.breakpoints[d]})`;o.media[p]={...o.media[p],[u]:w9[i.type](UPe(e[a],d),n)}})}),o},{hasResponsiveStyles:!1,styles:{},inlineStyles:{},media:{}}))}function rw(){return`__m__-${E.useId().replace(/[:«»]/g,"")}`}function k9(e,r){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,...k9(o,r)}),{}):typeof e=="function"?e(r):e??{}}function uV(e){return e.startsWith("data-")?e:`data-${e}`}function qPe(e){return Object.keys(e).reduce((r,n)=>{const o=e[n];return o===void 0||o===""||o===!1||o===null||(r[uV(n)]=e[n]),r},{})}function dV(e){return e?typeof e=="string"?{[uV(e)]:!0}:Array.isArray(e)?[...e].reduce((r,n)=>({...r,...dV(n)}),{}):qPe(e):null}function _9(e,r){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,..._9(o,r)}),{}):typeof e=="function"?e(r):e??{}}function VPe({theme:e,style:r,vars:n,styleProps:o}){const a=_9(r,e),i=_9(n,e);return{...a,...i,...o}}const pV=E.forwardRef(({component:e,style:r,__vars:n,className:o,variant:a,mod:i,size:l,hiddenFrom:s,visibleFrom:c,lightHidden:u,darkHidden:d,renderRoot:p,__size:f,...g},b)=>{const x=po(),w=e||"div",{styleProps:k,rest:C}=iV(g),_=H$e()?.()?.(k.sx),T=rw(),R=cV({styleProps:k,theme:x,data:TPe}),A={ref:b,style:VPe({theme:x,style:r,vars:n,styleProps:R.inlineStyles}),className:Ji(o,_,{[T]:R.hasResponsiveStyles,"mantine-light-hidden":u,"mantine-dark-hidden":d,[`mantine-hidden-from-${s}`]:s,[`mantine-visible-from-${c}`]:c}),"data-variant":a,"data-size":Cq(l)?void 0:l||void 0,size:f,...dV(i),...C};return y.jsxs(y.Fragment,{children:[R.hasResponsiveStyles&&y.jsx(tw,{selector:`.${T}`,styles:R.styles,media:R.media}),typeof p=="function"?p(A):y.jsx(w,{...A})]})});pV.displayName="@mantine/core/Box";const Se=pV;function hV(e){return e}function YPe(e){const r=e;return n=>{const o=E.forwardRef((a,i)=>y.jsx(r,{...n,...a,ref:i}));return o.extend=r.extend,o.displayName=`WithProps(${r.displayName})`,o}}function lt(e){const r=E.forwardRef(e);return r.extend=hV,r.withProps=n=>{const o=E.forwardRef((a,i)=>y.jsx(r,{...n,...a,ref:i}));return o.extend=r.extend,o.displayName=`WithProps(${r.displayName})`,o},r}function Xn(e){const r=E.forwardRef(e);return r.withProps=n=>{const o=E.forwardRef((a,i)=>y.jsx(r,{...n,...a,ref:i}));return o.extend=r.extend,o.displayName=`WithProps(${r.displayName})`,o},r.extend=hV,r}const WPe=E.createContext({dir:"ltr",toggleDirection:()=>{},setDirection:()=>{}});function du(){return E.useContext(WPe)}function GPe(e){if(!e||typeof e=="string")return 0;const r=e/36;return Math.round((4+15*r**.25+r/5)*10)}function E9(e){return e?.current?e.current.scrollHeight:"auto"}const nw=typeof window<"u"&&window.requestAnimationFrame,fV=0,XPe=e=>({height:0,overflow:"hidden",...e?{}:{display:"none"}});function KPe({transitionDuration:e,transitionTimingFunction:r="ease",onTransitionEnd:n=()=>{},opened:o,keepMounted:a=!1}){const i=E.useRef(null),l=XPe(a),[s,c]=E.useState(o?{}:l),u=b=>{ji.flushSync(()=>c(b))},d=b=>{u(x=>({...x,...b}))};function p(b){const x=e||GPe(b);return{transition:`height ${x}ms ${r}, opacity ${x}ms ${r}`}}Vd(()=>{typeof nw=="function"&&nw(o?()=>{d({willChange:"height",display:"block",overflow:"hidden"}),nw(()=>{const b=E9(i);d({...p(b),height:b})})}:()=>{const b=E9(i);d({...p(b),willChange:"height",height:b}),nw(()=>d({height:fV,overflow:"hidden"}))})},[o]);const f=b=>{if(!(b.target!==i.current||b.propertyName!=="height"))if(o){const x=E9(i);x===s.height?u({}):d({height:x}),n()}else s.height===fV&&(u(l),n())};function g({style:b={},refKey:x="ref",...w}={}){const k=w[x],C={"aria-hidden":!o,...w,[x]:jq(i,k),onTransitionEnd:f,style:{boxSizing:"border-box",...b,...s}};return Xr.version.startsWith("18")?o||(C.inert=""):C.inert=!o,C}return g}const ZPe={transitionDuration:200,transitionTimingFunction:"ease",animateOpacity:!0},mV=lt((e,r)=>{const{children:n,in:o,transitionDuration:a,transitionTimingFunction:i,style:l,onTransitionEnd:s,animateOpacity:c,keepMounted:u,...d}=ze("Collapse",ZPe,e),p=po(),f=Fq(),g=p.respectReducedMotion&&f?0:a,b=KPe({opened:o,transitionDuration:g,transitionTimingFunction:i,onTransitionEnd:s,keepMounted:u});return g===0?o?y.jsx(Se,{...d,children:n}):null:y.jsx(Se,{...b({style:{opacity:o||!c?1:0,transition:c?`opacity ${g}ms ${i}`:"none",...k9(l,p)},ref:r,...d}),children:n})});mV.displayName="@mantine/core/Collapse";function ow(){return typeof window<"u"}function Ef(e){return gV(e)?(e.nodeName||"").toLowerCase():"#document"}function ea(e){var r;return(e==null||(r=e.ownerDocument)==null?void 0:r.defaultView)||window}function ts(e){var r;return(r=(gV(e)?e.ownerDocument:e.document)||window.document)==null?void 0:r.documentElement}function gV(e){return ow()?e instanceof Node||e instanceof ea(e).Node:!1}function Dr(e){return ow()?e instanceof Element||e instanceof ea(e).Element:!1}function Ra(e){return ow()?e instanceof HTMLElement||e instanceof ea(e).HTMLElement:!1}function S9(e){return!ow()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof ea(e).ShadowRoot}const QPe=new Set(["inline","contents"]);function $0(e){const{overflow:r,overflowX:n,overflowY:o,display:a}=ni(e);return/auto|scroll|overlay|hidden|clip/.test(r+o+n)&&!QPe.has(a)}const JPe=new Set(["table","td","th"]);function eOe(e){return JPe.has(Ef(e))}const tOe=[":popover-open",":modal"];function aw(e){return tOe.some(r=>{try{return e.matches(r)}catch{return!1}})}const rOe=["transform","translate","scale","rotate","perspective"],nOe=["transform","translate","scale","rotate","perspective","filter"],oOe=["paint","layout","strict","content"];function C9(e){const r=iw(),n=Dr(e)?ni(e):e;return rOe.some(o=>n[o]?n[o]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!r&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!r&&(n.filter?n.filter!=="none":!1)||nOe.some(o=>(n.willChange||"").includes(o))||oOe.some(o=>(n.contain||"").includes(o))}function aOe(e){let r=Ys(e);for(;Ra(r)&&!Vs(r);){if(C9(r))return r;if(aw(r))return null;r=Ys(r)}return null}function iw(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const iOe=new Set(["html","body","#document"]);function Vs(e){return iOe.has(Ef(e))}function ni(e){return ea(e).getComputedStyle(e)}function lw(e){return Dr(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ys(e){if(Ef(e)==="html")return e;const r=e.assignedSlot||e.parentNode||S9(e)&&e.host||ts(e);return S9(r)?r.host:r}function yV(e){const r=Ys(e);return Vs(r)?e.ownerDocument?e.ownerDocument.body:e.body:Ra(r)&&$0(r)?r:yV(r)}function Ws(e,r,n){var o;r===void 0&&(r=[]),n===void 0&&(n=!0);const a=yV(e),i=a===((o=e.ownerDocument)==null?void 0:o.body),l=ea(a);if(i){const s=T9(l);return r.concat(l,l.visualViewport||[],$0(a)?a:[],s&&n?Ws(s):[])}return r.concat(a,Ws(a,[],n))}function T9(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}const bV=["top","right","bottom","left"],vV=["start","end"],xV=bV.reduce((e,r)=>e.concat(r,r+"-"+vV[0],r+"-"+vV[1]),[]),el=Math.min,Do=Math.max,sw=Math.round,cw=Math.floor,rs=e=>({x:e,y:e}),lOe={left:"right",right:"left",bottom:"top",top:"bottom"},sOe={start:"end",end:"start"};function R9(e,r,n){return Do(e,el(r,n))}function tl(e,r){return typeof e=="function"?e(r):e}function Aa(e){return e.split("-")[0]}function rl(e){return e.split("-")[1]}function A9(e){return e==="x"?"y":"x"}function N9(e){return e==="y"?"height":"width"}const cOe=new Set(["top","bottom"]);function nl(e){return cOe.has(Aa(e))?"y":"x"}function D9(e){return A9(nl(e))}function wV(e,r,n){n===void 0&&(n=!1);const o=rl(e),a=D9(e),i=N9(a);let l=a==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return r.reference[i]>r.floating[i]&&(l=dw(l)),[l,dw(l)]}function uOe(e){const r=dw(e);return[uw(e),r,uw(r)]}function uw(e){return e.replace(/start|end/g,r=>sOe[r])}const kV=["left","right"],_V=["right","left"],dOe=["top","bottom"],pOe=["bottom","top"];function hOe(e,r,n){switch(e){case"top":case"bottom":return n?r?_V:kV:r?kV:_V;case"left":case"right":return r?dOe:pOe;default:return[]}}function fOe(e,r,n,o){const a=rl(e);let i=hOe(Aa(e),n==="start",o);return a&&(i=i.map(l=>l+"-"+a),r&&(i=i.concat(i.map(uw)))),i}function dw(e){return e.replace(/left|right|bottom|top/g,r=>lOe[r])}function mOe(e){return{top:0,right:0,bottom:0,left:0,...e}}function $9(e){return typeof e!="number"?mOe(e):{top:e,right:e,bottom:e,left:e}}function Sf(e){const{x:r,y:n,width:o,height:a}=e;return{width:o,height:a,top:n,left:r,right:r+o,bottom:n+a,x:r,y:n}}function gOe(){const e=navigator.userAgentData;return e!=null&&e.platform?e.platform:navigator.platform}function yOe(){const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(r=>{let{brand:n,version:o}=r;return n+"/"+o}).join(" "):navigator.userAgent}function bOe(){return/apple/i.test(navigator.vendor)}function vOe(){return gOe().toLowerCase().startsWith("mac")&&!navigator.maxTouchPoints}function xOe(){return yOe().includes("jsdom/")}const EV="data-floating-ui-focusable",wOe="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";function SV(e){let r=e.activeElement;for(;((n=r)==null||(n=n.shadowRoot)==null?void 0:n.activeElement)!=null;){var n;r=r.shadowRoot.activeElement}return r}function P0(e,r){if(!e||!r)return!1;const n=r.getRootNode==null?void 0:r.getRootNode();if(e.contains(r))return!0;if(n&&S9(n)){let o=r;for(;o;){if(e===o)return!0;o=o.parentNode||o.host}}return!1}function Cf(e){return"composedPath"in e?e.composedPath()[0]:e.target}function P9(e,r){if(r==null)return!1;if("composedPath"in e)return e.composedPath().includes(r);const n=e;return n.target!=null&&r.contains(n.target)}function kOe(e){return e.matches("html,body")}function Wd(e){return e?.ownerDocument||document}function _Oe(e){return Ra(e)&&e.matches(wOe)}function EOe(e){if(!e||xOe())return!0;try{return e.matches(":focus-visible")}catch{return!0}}function SOe(e){return e?e.hasAttribute(EV)?e:e.querySelector("["+EV+"]")||e:null}function pw(e,r,n){return n===void 0&&(n=!0),e.filter(o=>{var a;return o.parentId===r&&(!n||((a=o.context)==null?void 0:a.open))}).flatMap(o=>[o,...pw(e,o.id,n)])}function COe(e){return"nativeEvent"in e}function O9(e,r){const n=["mouse","pen"];return n.push("",void 0),n.includes(e)}var TOe=typeof document<"u",ROe=function(){},ns=TOe?E.useLayoutEffect:ROe;const AOe={...qv};function hw(e){const r=E.useRef(e);return ns(()=>{r.current=e}),r}const NOe=AOe.useInsertionEffect,DOe=NOe||(e=>e());function os(e){const r=E.useRef(()=>{});return DOe(()=>{r.current=e}),E.useCallback(function(){for(var n=arguments.length,o=new Array(n),a=0;a{const{placement:o="bottom",strategy:a="absolute",middleware:i=[],platform:l}=n,s=i.filter(Boolean),c=await(l.isRTL==null?void 0:l.isRTL(r));let u=await l.getElementRects({reference:e,floating:r,strategy:a}),{x:d,y:p}=CV(u,o,c),f=o,g={},b=0;for(let x=0;x({name:"arrow",options:e,async fn(r){const{x:n,y:o,placement:a,rects:i,platform:l,elements:s,middlewareData:c}=r,{element:u,padding:d=0}=tl(e,r)||{};if(u==null)return{};const p=$9(d),f={x:n,y:o},g=D9(a),b=N9(g),x=await l.getDimensions(u),w=g==="y",k=w?"top":"left",C=w?"bottom":"right",_=w?"clientHeight":"clientWidth",T=i.reference[b]+i.reference[g]-f[g]-i.floating[b],R=f[g]-i.reference[g],A=await(l.getOffsetParent==null?void 0:l.getOffsetParent(u));let D=A?A[_]:0;(!D||!await(l.isElement==null?void 0:l.isElement(A)))&&(D=s.floating[_]||i.floating[b]);const N=T/2-R/2,P=D/2-x[b]/2-1,O=el(p[k],P),B=el(p[C],P),L=O,Y=D-x[b]-B,M=D/2-x[b]/2+N,q=R9(L,M,Y),I=!c.arrow&&rl(a)!=null&&M!==q&&i.reference[b]/2-(Mrl(o)===e),...n.filter(o=>rl(o)!==e)]:n.filter(o=>Aa(o)===o)).filter(o=>e?rl(o)===e||(r?uw(o)!==o:!1):!0)}const MOe=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(r){var n,o,a;const{rects:i,middlewareData:l,placement:s,platform:c,elements:u}=r,{crossAxis:d=!1,alignment:p,allowedPlacements:f=xV,autoAlignment:g=!0,...b}=tl(e,r),x=p!==void 0||f===xV?OOe(p||null,g,f):f,w=await Tf(r,b),k=((n=l.autoPlacement)==null?void 0:n.index)||0,C=x[k];if(C==null)return{};const _=wV(C,i,await(c.isRTL==null?void 0:c.isRTL(u.floating)));if(s!==C)return{reset:{placement:x[0]}};const T=[w[Aa(C)],w[_[0]],w[_[1]]],R=[...((o=l.autoPlacement)==null?void 0:o.overflows)||[],{placement:C,overflows:T}],A=x[k+1];if(A)return{data:{index:k+1,overflows:R},reset:{placement:A}};const D=R.map(P=>{const O=rl(P.placement);return[P.placement,O&&d?P.overflows.slice(0,2).reduce((B,L)=>B+L,0):P.overflows[0],P.overflows]}).sort((P,O)=>P[1]-O[1]),N=((a=D.filter(P=>P[2].slice(0,rl(P[0])?2:3).every(O=>O<=0))[0])==null?void 0:a[0])||D[0][0];return N!==s?{data:{index:k+1,overflows:R},reset:{placement:N}}:{}}}},IOe=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(r){var n,o;const{placement:a,middlewareData:i,rects:l,initialPlacement:s,platform:c,elements:u}=r,{mainAxis:d=!0,crossAxis:p=!0,fallbackPlacements:f,fallbackStrategy:g="bestFit",fallbackAxisSideDirection:b="none",flipAlignment:x=!0,...w}=tl(e,r);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const k=Aa(a),C=nl(s),_=Aa(s)===s,T=await(c.isRTL==null?void 0:c.isRTL(u.floating)),R=f||(_||!x?[dw(s)]:uOe(s)),A=b!=="none";!f&&A&&R.push(...fOe(s,x,b,T));const D=[s,...R],N=await Tf(r,w),P=[];let O=((o=i.flip)==null?void 0:o.overflows)||[];if(d&&P.push(N[k]),p){const M=wV(a,l,T);P.push(N[M[0]],N[M[1]])}if(O=[...O,{placement:a,overflows:P}],!P.every(M=>M<=0)){var B,L;const M=(((B=i.flip)==null?void 0:B.index)||0)+1,q=D[M];if(q&&(!(p==="alignment"&&C!==nl(q))||O.every(U=>nl(U.placement)===C?U.overflows[0]>0:!0)))return{data:{index:M,overflows:O},reset:{placement:q}};let I=(L=O.filter(U=>U.overflows[0]<=0).sort((U,V)=>U.overflows[1]-V.overflows[1])[0])==null?void 0:L.placement;if(!I)switch(g){case"bestFit":{var Y;const U=(Y=O.filter(V=>{if(A){const G=nl(V.placement);return G===C||G==="y"}return!0}).map(V=>[V.placement,V.overflows.filter(G=>G>0).reduce((G,F)=>G+F,0)]).sort((V,G)=>V[1]-G[1])[0])==null?void 0:Y[0];U&&(I=U);break}case"initialPlacement":I=s;break}if(a!==I)return{reset:{placement:I}}}return{}}}};function TV(e,r){return{top:e.top-r.height,right:e.right-r.width,bottom:e.bottom-r.height,left:e.left-r.width}}function RV(e){return bV.some(r=>e[r]>=0)}const LOe=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(r){const{rects:n}=r,{strategy:o="referenceHidden",...a}=tl(e,r);switch(o){case"referenceHidden":{const i=await Tf(r,{...a,elementContext:"reference"}),l=TV(i,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:RV(l)}}}case"escaped":{const i=await Tf(r,{...a,altBoundary:!0}),l=TV(i,n.floating);return{data:{escapedOffsets:l,escaped:RV(l)}}}default:return{}}}}};function AV(e){const r=el(...e.map(i=>i.left)),n=el(...e.map(i=>i.top)),o=Do(...e.map(i=>i.right)),a=Do(...e.map(i=>i.bottom));return{x:r,y:n,width:o-r,height:a-n}}function zOe(e){const r=e.slice().sort((a,i)=>a.y-i.y),n=[];let o=null;for(let a=0;ao.height/2?n.push([i]):n[n.length-1].push(i),o=i}return n.map(a=>Sf(AV(a)))}const jOe=function(e){return e===void 0&&(e={}),{name:"inline",options:e,async fn(r){const{placement:n,elements:o,rects:a,platform:i,strategy:l}=r,{padding:s=2,x:c,y:u}=tl(e,r),d=Array.from(await(i.getClientRects==null?void 0:i.getClientRects(o.reference))||[]),p=zOe(d),f=Sf(AV(d)),g=$9(s);function b(){if(p.length===2&&p[0].left>p[1].right&&c!=null&&u!=null)return p.find(w=>c>w.left-g.left&&cw.top-g.top&&u=2){if(nl(n)==="y"){const O=p[0],B=p[p.length-1],L=Aa(n)==="top",Y=O.top,M=B.bottom,q=L?O.left:B.left,I=L?O.right:B.right,U=I-q,V=M-Y;return{top:Y,bottom:M,left:q,right:I,width:U,height:V,x:q,y:Y}}const w=Aa(n)==="left",k=Do(...p.map(O=>O.right)),C=el(...p.map(O=>O.left)),_=p.filter(O=>w?O.left===C:O.right===k),T=_[0].top,R=_[_.length-1].bottom,A=C,D=k,N=D-A,P=R-T;return{top:T,bottom:R,left:A,right:D,width:N,height:P,x:A,y:T}}return f}const x=await i.getElementRects({reference:{getBoundingClientRect:b},floating:o.floating,strategy:l});return a.reference.x!==x.reference.x||a.reference.y!==x.reference.y||a.reference.width!==x.reference.width||a.reference.height!==x.reference.height?{reset:{rects:x}}:{}}}},NV=new Set(["left","top"]);async function BOe(e,r){const{placement:n,platform:o,elements:a}=e,i=await(o.isRTL==null?void 0:o.isRTL(a.floating)),l=Aa(n),s=rl(n),c=nl(n)==="y",u=NV.has(l)?-1:1,d=i&&c?-1:1,p=tl(r,e);let{mainAxis:f,crossAxis:g,alignmentAxis:b}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return s&&typeof b=="number"&&(g=s==="end"?b*-1:b),c?{x:g*d,y:f*u}:{x:f*u,y:g*d}}const FOe=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(r){var n,o;const{x:a,y:i,placement:l,middlewareData:s}=r,c=await BOe(r,e);return l===((n=s.offset)==null?void 0:n.placement)&&(o=s.arrow)!=null&&o.alignmentOffset?{}:{x:a+c.x,y:i+c.y,data:{...c,placement:l}}}}},HOe=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(r){const{x:n,y:o,placement:a}=r,{mainAxis:i=!0,crossAxis:l=!1,limiter:s={fn:w=>{let{x:k,y:C}=w;return{x:k,y:C}}},...c}=tl(e,r),u={x:n,y:o},d=await Tf(r,c),p=nl(Aa(a)),f=A9(p);let g=u[f],b=u[p];if(i){const w=f==="y"?"top":"left",k=f==="y"?"bottom":"right",C=g+d[w],_=g-d[k];g=R9(C,g,_)}if(l){const w=p==="y"?"top":"left",k=p==="y"?"bottom":"right",C=b+d[w],_=b-d[k];b=R9(C,b,_)}const x=s.fn({...r,[f]:g,[p]:b});return{...x,data:{x:x.x-n,y:x.y-o,enabled:{[f]:i,[p]:l}}}}}},UOe=function(e){return e===void 0&&(e={}),{options:e,fn(r){const{x:n,y:o,placement:a,rects:i,middlewareData:l}=r,{offset:s=0,mainAxis:c=!0,crossAxis:u=!0}=tl(e,r),d={x:n,y:o},p=nl(a),f=A9(p);let g=d[f],b=d[p];const x=tl(s,r),w=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(c){const _=f==="y"?"height":"width",T=i.reference[f]-i.floating[_]+w.mainAxis,R=i.reference[f]+i.reference[_]-w.mainAxis;gR&&(g=R)}if(u){var k,C;const _=f==="y"?"width":"height",T=NV.has(Aa(a)),R=i.reference[p]-i.floating[_]+(T&&((k=l.offset)==null?void 0:k[p])||0)+(T?0:w.crossAxis),A=i.reference[p]+i.reference[_]+(T?0:((C=l.offset)==null?void 0:C[p])||0)-(T?w.crossAxis:0);bA&&(b=A)}return{[f]:g,[p]:b}}}},qOe=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(r){var n,o;const{placement:a,rects:i,platform:l,elements:s}=r,{apply:c=()=>{},...u}=tl(e,r),d=await Tf(r,u),p=Aa(a),f=rl(a),g=nl(a)==="y",{width:b,height:x}=i.floating;let w,k;p==="top"||p==="bottom"?(w=p,k=f===(await(l.isRTL==null?void 0:l.isRTL(s.floating))?"start":"end")?"left":"right"):(k=p,w=f==="end"?"top":"bottom");const C=x-d.top-d.bottom,_=b-d.left-d.right,T=el(x-d[w],C),R=el(b-d[k],_),A=!r.middlewareData.shift;let D=T,N=R;if((n=r.middlewareData.shift)!=null&&n.enabled.x&&(N=_),(o=r.middlewareData.shift)!=null&&o.enabled.y&&(D=C),A&&!f){const O=Do(d.left,0),B=Do(d.right,0),L=Do(d.top,0),Y=Do(d.bottom,0);g?N=b-2*(O!==0||B!==0?O+B:Do(d.left,d.right)):D=x-2*(L!==0||Y!==0?L+Y:Do(d.top,d.bottom))}await c({...r,availableWidth:N,availableHeight:D});const P=await l.getDimensions(s.floating);return b!==P.width||x!==P.height?{reset:{rects:!0}}:{}}}};function DV(e){const r=ni(e);let n=parseFloat(r.width)||0,o=parseFloat(r.height)||0;const a=Ra(e),i=a?e.offsetWidth:n,l=a?e.offsetHeight:o,s=sw(n)!==i||sw(o)!==l;return s&&(n=i,o=l),{width:n,height:o,$:s}}function M9(e){return Dr(e)?e:e.contextElement}function Rf(e){const r=M9(e);if(!Ra(r))return rs(1);const n=r.getBoundingClientRect(),{width:o,height:a,$:i}=DV(r);let l=(i?sw(n.width):n.width)/o,s=(i?sw(n.height):n.height)/a;return(!l||!Number.isFinite(l))&&(l=1),(!s||!Number.isFinite(s))&&(s=1),{x:l,y:s}}const VOe=rs(0);function $V(e){const r=ea(e);return!iw()||!r.visualViewport?VOe:{x:r.visualViewport.offsetLeft,y:r.visualViewport.offsetTop}}function YOe(e,r,n){return r===void 0&&(r=!1),!n||r&&n!==ea(e)?!1:r}function Gd(e,r,n,o){r===void 0&&(r=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),i=M9(e);let l=rs(1);r&&(o?Dr(o)&&(l=Rf(o)):l=Rf(e));const s=YOe(i,n,o)?$V(i):rs(0);let c=(a.left+s.x)/l.x,u=(a.top+s.y)/l.y,d=a.width/l.x,p=a.height/l.y;if(i){const f=ea(i),g=o&&Dr(o)?ea(o):o;let b=f,x=T9(b);for(;x&&o&&g!==b;){const w=Rf(x),k=x.getBoundingClientRect(),C=ni(x),_=k.left+(x.clientLeft+parseFloat(C.paddingLeft))*w.x,T=k.top+(x.clientTop+parseFloat(C.paddingTop))*w.y;c*=w.x,u*=w.y,d*=w.x,p*=w.y,c+=_,u+=T,b=ea(x),x=T9(b)}}return Sf({width:d,height:p,x:c,y:u})}function fw(e,r){const n=lw(e).scrollLeft;return r?r.left+n:Gd(ts(e)).left+n}function PV(e,r){const n=e.getBoundingClientRect(),o=n.left+r.scrollLeft-fw(e,n),a=n.top+r.scrollTop;return{x:o,y:a}}function WOe(e){let{elements:r,rect:n,offsetParent:o,strategy:a}=e;const i=a==="fixed",l=ts(o),s=r?aw(r.floating):!1;if(o===l||s&&i)return n;let c={scrollLeft:0,scrollTop:0},u=rs(1);const d=rs(0),p=Ra(o);if((p||!p&&!i)&&((Ef(o)!=="body"||$0(l))&&(c=lw(o)),Ra(o))){const g=Gd(o);u=Rf(o),d.x=g.x+o.clientLeft,d.y=g.y+o.clientTop}const f=l&&!p&&!i?PV(l,c):rs(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-c.scrollLeft*u.x+d.x+f.x,y:n.y*u.y-c.scrollTop*u.y+d.y+f.y}}function GOe(e){return Array.from(e.getClientRects())}function XOe(e){const r=ts(e),n=lw(e),o=e.ownerDocument.body,a=Do(r.scrollWidth,r.clientWidth,o.scrollWidth,o.clientWidth),i=Do(r.scrollHeight,r.clientHeight,o.scrollHeight,o.clientHeight);let l=-n.scrollLeft+fw(e);const s=-n.scrollTop;return ni(o).direction==="rtl"&&(l+=Do(r.clientWidth,o.clientWidth)-a),{width:a,height:i,x:l,y:s}}const OV=25;function KOe(e,r){const n=ea(e),o=ts(e),a=n.visualViewport;let i=o.clientWidth,l=o.clientHeight,s=0,c=0;if(a){i=a.width,l=a.height;const d=iw();(!d||d&&r==="fixed")&&(s=a.offsetLeft,c=a.offsetTop)}const u=fw(o);if(u<=0){const d=o.ownerDocument,p=d.body,f=getComputedStyle(p),g=d.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,b=Math.abs(o.clientWidth-p.clientWidth-g);b<=OV&&(i-=b)}else u<=OV&&(i+=u);return{width:i,height:l,x:s,y:c}}const ZOe=new Set(["absolute","fixed"]);function QOe(e,r){const n=Gd(e,!0,r==="fixed"),o=n.top+e.clientTop,a=n.left+e.clientLeft,i=Ra(e)?Rf(e):rs(1),l=e.clientWidth*i.x,s=e.clientHeight*i.y,c=a*i.x,u=o*i.y;return{width:l,height:s,x:c,y:u}}function MV(e,r,n){let o;if(r==="viewport")o=KOe(e,n);else if(r==="document")o=XOe(ts(e));else if(Dr(r))o=QOe(r,n);else{const a=$V(e);o={x:r.x-a.x,y:r.y-a.y,width:r.width,height:r.height}}return Sf(o)}function IV(e,r){const n=Ys(e);return n===r||!Dr(n)||Vs(n)?!1:ni(n).position==="fixed"||IV(n,r)}function JOe(e,r){const n=r.get(e);if(n)return n;let o=Ws(e,[],!1).filter(s=>Dr(s)&&Ef(s)!=="body"),a=null;const i=ni(e).position==="fixed";let l=i?Ys(e):e;for(;Dr(l)&&!Vs(l);){const s=ni(l),c=C9(l);!c&&s.position==="fixed"&&(a=null),(i?!c&&!a:!c&&s.position==="static"&&a&&ZOe.has(a.position)||$0(l)&&!c&&IV(e,l))?o=o.filter(u=>u!==l):a=s,l=Ys(l)}return r.set(e,o),o}function eMe(e){let{element:r,boundary:n,rootBoundary:o,strategy:a}=e;const i=[...n==="clippingAncestors"?aw(r)?[]:JOe(r,this._c):[].concat(n),o],l=i[0],s=i.reduce((c,u)=>{const d=MV(r,u,a);return c.top=Do(d.top,c.top),c.right=el(d.right,c.right),c.bottom=el(d.bottom,c.bottom),c.left=Do(d.left,c.left),c},MV(r,l,a));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function tMe(e){const{width:r,height:n}=DV(e);return{width:r,height:n}}function rMe(e,r,n){const o=Ra(r),a=ts(r),i=n==="fixed",l=Gd(e,!0,i,r);let s={scrollLeft:0,scrollTop:0};const c=rs(0);function u(){c.x=fw(a)}if(o||!o&&!i)if((Ef(r)!=="body"||$0(a))&&(s=lw(r)),o){const g=Gd(r,!0,i,r);c.x=g.x+r.clientLeft,c.y=g.y+r.clientTop}else a&&u();i&&!o&&a&&u();const d=a&&!o&&!i?PV(a,s):rs(0),p=l.left+s.scrollLeft-c.x-d.x,f=l.top+s.scrollTop-c.y-d.y;return{x:p,y:f,width:l.width,height:l.height}}function I9(e){return ni(e).position==="static"}function LV(e,r){if(!Ra(e)||ni(e).position==="fixed")return null;if(r)return r(e);let n=e.offsetParent;return ts(e)===n&&(n=n.ownerDocument.body),n}function zV(e,r){const n=ea(e);if(aw(e))return n;if(!Ra(e)){let a=Ys(e);for(;a&&!Vs(a);){if(Dr(a)&&!I9(a))return a;a=Ys(a)}return n}let o=LV(e,r);for(;o&&eOe(o)&&I9(o);)o=LV(o,r);return o&&Vs(o)&&I9(o)&&!C9(o)?n:o||aOe(e)||n}const nMe=async function(e){const r=this.getOffsetParent||zV,n=this.getDimensions,o=await n(e.floating);return{reference:rMe(e.reference,await r(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function oMe(e){return ni(e).direction==="rtl"}const aMe={convertOffsetParentRelativeRectToViewportRelativeRect:WOe,getDocumentElement:ts,getClippingRect:eMe,getOffsetParent:zV,getElementRects:nMe,getClientRects:GOe,getDimensions:tMe,getScale:Rf,isElement:Dr,isRTL:oMe};function jV(e,r){return e.x===r.x&&e.y===r.y&&e.width===r.width&&e.height===r.height}function iMe(e,r){let n=null,o;const a=ts(e);function i(){var s;clearTimeout(o),(s=n)==null||s.disconnect(),n=null}function l(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),i();const u=e.getBoundingClientRect(),{left:d,top:p,width:f,height:g}=u;if(s||r(),!f||!g)return;const b=cw(p),x=cw(a.clientWidth-(d+f)),w=cw(a.clientHeight-(p+g)),k=cw(d),C={rootMargin:-b+"px "+-x+"px "+-w+"px "+-k+"px",threshold:Do(0,el(1,c))||1};let _=!0;function T(R){const A=R[0].intersectionRatio;if(A!==c){if(!_)return l();A?l(!1,A):o=setTimeout(()=>{l(!1,1e-7)},1e3)}A===1&&!jV(u,e.getBoundingClientRect())&&l(),_=!1}try{n=new IntersectionObserver(T,{...C,root:a.ownerDocument})}catch{n=new IntersectionObserver(T,C)}n.observe(e)}return l(!0),i}function mw(e,r,n,o){o===void 0&&(o={});const{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:c=!1}=o,u=M9(e),d=a||i?[...u?Ws(u):[],...Ws(r)]:[];d.forEach(k=>{a&&k.addEventListener("scroll",n,{passive:!0}),i&&k.addEventListener("resize",n)});const p=u&&s?iMe(u,n):null;let f=-1,g=null;l&&(g=new ResizeObserver(k=>{let[C]=k;C&&C.target===u&&g&&(g.unobserve(r),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var _;(_=g)==null||_.observe(r)})),n()}),u&&!c&&g.observe(u),g.observe(r));let b,x=c?Gd(e):null;c&&w();function w(){const k=Gd(e);x&&!jV(x,k)&&n(),x=k,b=requestAnimationFrame(w)}return n(),()=>{var k;d.forEach(C=>{a&&C.removeEventListener("scroll",n),i&&C.removeEventListener("resize",n)}),p?.(),(k=g)==null||k.disconnect(),g=null,c&&cancelAnimationFrame(b)}}const BV=FOe,lMe=MOe,sMe=HOe,cMe=IOe,FV=qOe,HV=LOe,UV=POe,uMe=jOe,dMe=UOe,qV=(e,r,n)=>{const o=new Map,a={platform:aMe,...n},i={...a.platform,_c:o};return $Oe(e,r,{...a,platform:i})};var pMe=typeof document<"u",hMe=function(){},gw=pMe?E.useLayoutEffect:hMe;function yw(e,r){if(e===r)return!0;if(typeof e!=typeof r)return!1;if(typeof e=="function"&&e.toString()===r.toString())return!0;let n,o,a;if(e&&r&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==r.length)return!1;for(o=n;o--!==0;)if(!yw(e[o],r[o]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(r,a[o]))return!1;for(o=n;o--!==0;){const i=a[o];if(!(i==="_owner"&&e.$$typeof)&&!yw(e[i],r[i]))return!1}return!0}return e!==e&&r!==r}function VV(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function YV(e,r){const n=VV(e);return Math.round(r*n)/n}function L9(e){const r=E.useRef(e);return gw(()=>{r.current=e}),r}function fMe(e){e===void 0&&(e={});const{placement:r="bottom",strategy:n="absolute",middleware:o=[],platform:a,elements:{reference:i,floating:l}={},transform:s=!0,whileElementsMounted:c,open:u}=e,[d,p]=E.useState({x:0,y:0,strategy:n,placement:r,middlewareData:{},isPositioned:!1}),[f,g]=E.useState(o);yw(f,o)||g(o);const[b,x]=E.useState(null),[w,k]=E.useState(null),C=E.useCallback(V=>{V!==A.current&&(A.current=V,x(V))},[]),_=E.useCallback(V=>{V!==D.current&&(D.current=V,k(V))},[]),T=i||b,R=l||w,A=E.useRef(null),D=E.useRef(null),N=E.useRef(d),P=c!=null,O=L9(c),B=L9(a),L=L9(u),Y=E.useCallback(()=>{if(!A.current||!D.current)return;const V={placement:r,strategy:n,middleware:f};B.current&&(V.platform=B.current),qV(A.current,D.current,V).then(G=>{const F={...G,isPositioned:L.current!==!1};M.current&&!yw(N.current,F)&&(N.current=F,ji.flushSync(()=>{p(F)}))})},[f,r,n,B,L]);gw(()=>{u===!1&&N.current.isPositioned&&(N.current.isPositioned=!1,p(V=>({...V,isPositioned:!1})))},[u]);const M=E.useRef(!1);gw(()=>(M.current=!0,()=>{M.current=!1}),[]),gw(()=>{if(T&&(A.current=T),R&&(D.current=R),T&&R){if(O.current)return O.current(T,R,Y);Y()}},[T,R,Y,O,P]);const q=E.useMemo(()=>({reference:A,floating:D,setReference:C,setFloating:_}),[C,_]),I=E.useMemo(()=>({reference:T,floating:R}),[T,R]),U=E.useMemo(()=>{const V={position:n,left:0,top:0};if(!I.floating)return V;const G=YV(I.floating,d.x),F=YV(I.floating,d.y);return s?{...V,transform:"translate("+G+"px, "+F+"px)",...VV(I.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:G,top:F}},[n,s,I.floating,d.x,d.y]);return E.useMemo(()=>({...d,update:Y,refs:q,elements:I,floatingStyles:U}),[d,Y,q,I,U])}const mMe=e=>{function r(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:o,padding:a}=typeof e=="function"?e(n):e;return o&&r(o)?o.current!=null?UV({element:o.current,padding:a}).fn(n):{}:o?UV({element:o,padding:a}).fn(n):{}}}},WV=(e,r)=>({...BV(e),options:[e,r]}),z9=(e,r)=>({...sMe(e),options:[e,r]}),GV=(e,r)=>({...dMe(e),options:[e,r]}),bw=(e,r)=>({...cMe(e),options:[e,r]}),gMe=(e,r)=>({...FV(e),options:[e,r]}),yMe=(e,r)=>({...HV(e),options:[e,r]}),O0=(e,r)=>({...uMe(e),options:[e,r]}),XV=(e,r)=>({...mMe(e),options:[e,r]});function KV(e){const r=E.useRef(void 0),n=E.useCallback(o=>{const a=e.map(i=>{if(i!=null){if(typeof i=="function"){const l=i,s=l(o);return typeof s=="function"?s:()=>{l(null)}}return i.current=o,()=>{i.current=null}}});return()=>{a.forEach(i=>i?.())}},e);return E.useMemo(()=>e.every(o=>o==null)?null:o=>{r.current&&(r.current(),r.current=void 0),o!=null&&(r.current=n(o))},e)}const bMe="data-floating-ui-focusable",ZV="active",QV="selected",vMe={...qv};let JV=!1,xMe=0;const eY=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+xMe++;function wMe(){const[e,r]=E.useState(()=>JV?eY():void 0);return ns(()=>{e==null&&r(eY())},[]),E.useEffect(()=>{JV=!0},[]),e}const kMe=vMe.useId,tY=kMe||wMe;function _Me(){const e=new Map;return{emit(r,n){var o;(o=e.get(r))==null||o.forEach(a=>a(n))},on(r,n){e.has(r)||e.set(r,new Set),e.get(r).add(n)},off(r,n){var o;(o=e.get(r))==null||o.delete(n)}}}const EMe=E.createContext(null),SMe=E.createContext(null),j9=()=>{var e;return((e=E.useContext(EMe))==null?void 0:e.id)||null},B9=()=>E.useContext(SMe);function F9(e){return"data-floating-ui-"+e}function oi(e){e.current!==-1&&(clearTimeout(e.current),e.current=-1)}const rY=F9("safe-polygon");function vw(e,r,n){if(n&&!O9(n))return 0;if(typeof e=="number")return e;if(typeof e=="function"){const o=e();return typeof o=="number"?o:o?.[r]}return e?.[r]}function H9(e){return typeof e=="function"?e():e}function nY(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,dataRef:a,events:i,elements:l}=e,{enabled:s=!0,delay:c=0,handleClose:u=null,mouseOnly:d=!1,restMs:p=0,move:f=!0}=r,g=B9(),b=j9(),x=hw(u),w=hw(c),k=hw(n),C=hw(p),_=E.useRef(),T=E.useRef(-1),R=E.useRef(),A=E.useRef(-1),D=E.useRef(!0),N=E.useRef(!1),P=E.useRef(()=>{}),O=E.useRef(!1),B=os(()=>{var U;const V=(U=a.current.openEvent)==null?void 0:U.type;return V?.includes("mouse")&&V!=="mousedown"});E.useEffect(()=>{if(!s)return;function U(V){let{open:G}=V;G||(oi(T),oi(A),D.current=!0,O.current=!1)}return i.on("openchange",U),()=>{i.off("openchange",U)}},[s,i]),E.useEffect(()=>{if(!s||!x.current||!n)return;function U(G){B()&&o(!1,G,"hover")}const V=Wd(l.floating).documentElement;return V.addEventListener("mouseleave",U),()=>{V.removeEventListener("mouseleave",U)}},[l.floating,n,o,s,x,B]);const L=E.useCallback(function(U,V,G){V===void 0&&(V=!0),G===void 0&&(G="hover");const F=vw(w.current,"close",_.current);F&&!R.current?(oi(T),T.current=window.setTimeout(()=>o(!1,U,G),F)):V&&(oi(T),o(!1,U,G))},[w,o]),Y=os(()=>{P.current(),R.current=void 0}),M=os(()=>{if(N.current){const U=Wd(l.floating).body;U.style.pointerEvents="",U.removeAttribute(rY),N.current=!1}}),q=os(()=>a.current.openEvent?["click","mousedown"].includes(a.current.openEvent.type):!1);E.useEffect(()=>{if(!s)return;function U(Q){if(oi(T),D.current=!1,d&&!O9(_.current)||H9(C.current)>0&&!vw(w.current,"open"))return;const z=vw(w.current,"open",_.current);z?T.current=window.setTimeout(()=>{k.current||o(!0,Q,"hover")},z):n||o(!0,Q,"hover")}function V(Q){if(q()){M();return}P.current();const z=Wd(l.floating);if(oi(A),O.current=!1,x.current&&a.current.floatingContext){n||oi(T),R.current=x.current({...a.current.floatingContext,tree:g,x:Q.clientX,y:Q.clientY,onClose(){M(),Y(),q()||L(Q,!0,"safe-polygon")}});const W=R.current;z.addEventListener("mousemove",W),P.current=()=>{z.removeEventListener("mousemove",W)};return}(_.current!=="touch"||!P0(l.floating,Q.relatedTarget))&&L(Q)}function G(Q){q()||a.current.floatingContext&&(x.current==null||x.current({...a.current.floatingContext,tree:g,x:Q.clientX,y:Q.clientY,onClose(){M(),Y(),q()||L(Q)}})(Q))}function F(){oi(T)}function J(Q){q()||L(Q,!1)}if(Dr(l.domReference)){const Q=l.domReference,z=l.floating;return n&&Q.addEventListener("mouseleave",G),f&&Q.addEventListener("mousemove",U,{once:!0}),Q.addEventListener("mouseenter",U),Q.addEventListener("mouseleave",V),z&&(z.addEventListener("mouseleave",G),z.addEventListener("mouseenter",F),z.addEventListener("mouseleave",J)),()=>{n&&Q.removeEventListener("mouseleave",G),f&&Q.removeEventListener("mousemove",U),Q.removeEventListener("mouseenter",U),Q.removeEventListener("mouseleave",V),z&&(z.removeEventListener("mouseleave",G),z.removeEventListener("mouseenter",F),z.removeEventListener("mouseleave",J))}}},[l,s,e,d,f,L,Y,M,o,n,k,g,w,x,a,q,C]),ns(()=>{var U;if(s&&n&&(U=x.current)!=null&&(U=U.__options)!=null&&U.blockPointerEvents&&B()){N.current=!0;const G=l.floating;if(Dr(l.domReference)&&G){var V;const F=Wd(l.floating).body;F.setAttribute(rY,"");const J=l.domReference,Q=g==null||(V=g.nodesRef.current.find(z=>z.id===b))==null||(V=V.context)==null?void 0:V.elements.floating;return Q&&(Q.style.pointerEvents=""),F.style.pointerEvents="none",J.style.pointerEvents="auto",G.style.pointerEvents="auto",()=>{F.style.pointerEvents="",J.style.pointerEvents="",G.style.pointerEvents=""}}}},[s,n,b,l,g,x,B]),ns(()=>{n||(_.current=void 0,O.current=!1,Y(),M())},[n,Y,M]),E.useEffect(()=>()=>{Y(),oi(T),oi(A),M()},[s,l.domReference,Y,M]);const I=E.useMemo(()=>{function U(V){_.current=V.pointerType}return{onPointerDown:U,onPointerEnter:U,onMouseMove(V){const{nativeEvent:G}=V;function F(){!D.current&&!k.current&&o(!0,G,"hover")}d&&!O9(_.current)||n||H9(C.current)===0||O.current&&V.movementX**2+V.movementY**2<2||(oi(A),_.current==="touch"?F():(O.current=!0,A.current=window.setTimeout(F,H9(C.current))))}}},[d,o,n,k,C]);return E.useMemo(()=>s?{reference:I}:{},[s,I])}const U9=()=>{},oY=E.createContext({delay:0,initialDelay:0,timeoutMs:0,currentId:null,setCurrentId:U9,setState:U9,isInstantPhase:!1}),CMe=()=>E.useContext(oY);function aY(e){const{children:r,delay:n,timeoutMs:o=0}=e,[a,i]=E.useReducer((c,u)=>({...c,...u}),{delay:n,timeoutMs:o,initialDelay:n,currentId:null,isInstantPhase:!1}),l=E.useRef(null),s=E.useCallback(c=>{i({currentId:c})},[]);return ns(()=>{a.currentId?l.current===null?l.current=a.currentId:a.isInstantPhase||i({isInstantPhase:!0}):(a.isInstantPhase&&i({isInstantPhase:!1}),l.current=null)},[a.currentId,a.isInstantPhase]),y.jsx(oY.Provider,{value:E.useMemo(()=>({...a,setState:i,setCurrentId:s}),[a,s]),children:r})}function iY(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,floatingId:a}=e,{id:i,enabled:l=!0}=r,s=i??a,c=CMe(),{currentId:u,setCurrentId:d,initialDelay:p,setState:f,timeoutMs:g}=c;return ns(()=>{l&&u&&(f({delay:{open:1,close:vw(p,"close")}}),u!==s&&o(!1))},[l,s,o,f,u,p]),ns(()=>{function b(){o(!1),f({delay:p,currentId:null})}if(l&&u&&!n&&u===s){if(g){const x=window.setTimeout(b,g);return()=>{clearTimeout(x)}}b()}},[l,n,f,u,s,o,p,g]),ns(()=>{l&&(d===U9||!n||d(s))},[l,n,d,s]),c}const TMe={pointerdown:"onPointerDown",mousedown:"onMouseDown",click:"onClick"},RMe={pointerdown:"onPointerDownCapture",mousedown:"onMouseDownCapture",click:"onClickCapture"},lY=e=>{var r,n;return{escapeKey:typeof e=="boolean"?e:(r=e?.escapeKey)!=null?r:!1,outsidePress:typeof e=="boolean"?e:(n=e?.outsidePress)!=null?n:!0}};function sY(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,elements:a,dataRef:i}=e,{enabled:l=!0,escapeKey:s=!0,outsidePress:c=!0,outsidePressEvent:u="pointerdown",referencePress:d=!1,referencePressEvent:p="pointerdown",ancestorScroll:f=!1,bubbles:g,capture:b}=r,x=B9(),w=os(typeof c=="function"?c:()=>!1),k=typeof c=="function"?w:c,C=E.useRef(!1),{escapeKey:_,outsidePress:T}=lY(g),{escapeKey:R,outsidePress:A}=lY(b),D=E.useRef(!1),N=os(M=>{var q;if(!n||!l||!s||M.key!=="Escape"||D.current)return;const I=(q=i.current.floatingContext)==null?void 0:q.nodeId,U=x?pw(x.nodesRef.current,I):[];if(!_&&(M.stopPropagation(),U.length>0)){let V=!0;if(U.forEach(G=>{var F;if((F=G.context)!=null&&F.open&&!G.context.dataRef.current.__escapeKeyBubbles){V=!1;return}}),!V)return}o(!1,COe(M)?M.nativeEvent:M,"escape-key")}),P=os(M=>{var q;const I=()=>{var U;N(M),(U=Cf(M))==null||U.removeEventListener("keydown",I)};(q=Cf(M))==null||q.addEventListener("keydown",I)}),O=os(M=>{var q;const I=i.current.insideReactTree;i.current.insideReactTree=!1;const U=C.current;if(C.current=!1,u==="click"&&U||I||typeof k=="function"&&!k(M))return;const V=Cf(M),G="["+F9("inert")+"]",F=Wd(a.floating).querySelectorAll(G);let J=Dr(V)?V:null;for(;J&&!Vs(J);){const X=Ys(J);if(Vs(X)||!Dr(X))break;J=X}if(F.length&&Dr(V)&&!kOe(V)&&!P0(V,a.floating)&&Array.from(F).every(X=>!P0(J,X)))return;if(Ra(V)&&Y){const X=Vs(V),Z=ni(V),oe=/auto|scroll/,ee=X||oe.test(Z.overflowX),re=X||oe.test(Z.overflowY),pe=ee&&V.clientWidth>0&&V.scrollWidth>V.clientWidth,Ce=re&&V.clientHeight>0&&V.scrollHeight>V.clientHeight,ce=Z.direction==="rtl",de=Ce&&(ce?M.offsetX<=V.offsetWidth-V.clientWidth:M.offsetX>V.clientWidth),be=pe&&M.offsetY>V.clientHeight;if(de||be)return}const Q=(q=i.current.floatingContext)==null?void 0:q.nodeId,z=x&&pw(x.nodesRef.current,Q).some(X=>{var Z;return P9(M,(Z=X.context)==null?void 0:Z.elements.floating)});if(P9(M,a.floating)||P9(M,a.domReference)||z)return;const W=x?pw(x.nodesRef.current,Q):[];if(W.length>0){let X=!0;if(W.forEach(Z=>{var oe;if((oe=Z.context)!=null&&oe.open&&!Z.context.dataRef.current.__outsidePressBubbles){X=!1;return}}),!X)return}o(!1,M,"outside-press")}),B=os(M=>{var q;const I=()=>{var U;O(M),(U=Cf(M))==null||U.removeEventListener(u,I)};(q=Cf(M))==null||q.addEventListener(u,I)});E.useEffect(()=>{if(!n||!l)return;i.current.__escapeKeyBubbles=_,i.current.__outsidePressBubbles=T;let M=-1;function q(F){o(!1,F,"ancestor-scroll")}function I(){window.clearTimeout(M),D.current=!0}function U(){M=window.setTimeout(()=>{D.current=!1},iw()?5:0)}const V=Wd(a.floating);s&&(V.addEventListener("keydown",R?P:N,R),V.addEventListener("compositionstart",I),V.addEventListener("compositionend",U)),k&&V.addEventListener(u,A?B:O,A);let G=[];return f&&(Dr(a.domReference)&&(G=Ws(a.domReference)),Dr(a.floating)&&(G=G.concat(Ws(a.floating))),!Dr(a.reference)&&a.reference&&a.reference.contextElement&&(G=G.concat(Ws(a.reference.contextElement)))),G=G.filter(F=>{var J;return F!==((J=V.defaultView)==null?void 0:J.visualViewport)}),G.forEach(F=>{F.addEventListener("scroll",q,{passive:!0})}),()=>{s&&(V.removeEventListener("keydown",R?P:N,R),V.removeEventListener("compositionstart",I),V.removeEventListener("compositionend",U)),k&&V.removeEventListener(u,A?B:O,A),G.forEach(F=>{F.removeEventListener("scroll",q)}),window.clearTimeout(M)}},[i,a,s,k,u,n,o,f,l,_,T,N,R,P,O,A,B]),E.useEffect(()=>{i.current.insideReactTree=!1},[i,k,u]);const L=E.useMemo(()=>({onKeyDown:N,...d&&{[TMe[p]]:M=>{o(!1,M.nativeEvent,"reference-press")},...p!=="click"&&{onClick(M){o(!1,M.nativeEvent,"reference-press")}}}}),[N,o,d,p]),Y=E.useMemo(()=>({onKeyDown:N,onMouseDown(){C.current=!0},onMouseUp(){C.current=!0},[RMe[u]]:()=>{i.current.insideReactTree=!0}}),[N,u,i]);return E.useMemo(()=>l?{reference:L,floating:Y}:{},[l,L,Y])}function AMe(e){const{open:r=!1,onOpenChange:n,elements:o}=e,a=tY(),i=E.useRef({}),[l]=E.useState(()=>_Me()),s=j9()!=null,[c,u]=E.useState(o.reference),d=os((g,b,x)=>{i.current.openEvent=g?b:void 0,l.emit("openchange",{open:g,event:b,reason:x,nested:s}),n?.(g,b,x)}),p=E.useMemo(()=>({setPositionReference:u}),[]),f=E.useMemo(()=>({reference:c||o.reference||null,floating:o.floating||null,domReference:o.reference}),[c,o.reference,o.floating]);return E.useMemo(()=>({dataRef:i,open:r,onOpenChange:d,elements:f,events:l,floatingId:a,refs:p}),[r,d,f,l,a,p])}function xw(e){e===void 0&&(e={});const{nodeId:r}=e,n=AMe({...e,elements:{reference:null,floating:null,...e.elements}}),o=e.rootContext||n,a=o.elements,[i,l]=E.useState(null),[s,c]=E.useState(null),u=a?.domReference||i,d=E.useRef(null),p=B9();ns(()=>{u&&(d.current=u)},[u]);const f=fMe({...e,elements:{...a,...s&&{reference:s}}}),g=E.useCallback(C=>{const _=Dr(C)?{getBoundingClientRect:()=>C.getBoundingClientRect(),getClientRects:()=>C.getClientRects(),contextElement:C}:C;c(_),f.refs.setReference(_)},[f.refs]),b=E.useCallback(C=>{(Dr(C)||C===null)&&(d.current=C,l(C)),(Dr(f.refs.reference.current)||f.refs.reference.current===null||C!==null&&!Dr(C))&&f.refs.setReference(C)},[f.refs]),x=E.useMemo(()=>({...f.refs,setReference:b,setPositionReference:g,domReference:d}),[f.refs,b,g]),w=E.useMemo(()=>({...f.elements,domReference:u}),[f.elements,u]),k=E.useMemo(()=>({...f,...o,refs:x,elements:w,nodeId:r}),[f,x,w,r,o]);return ns(()=>{o.dataRef.current.floatingContext=k;const C=p?.nodesRef.current.find(_=>_.id===r);C&&(C.context=k)}),E.useMemo(()=>({...f,context:k,refs:x,elements:w}),[f,x,w,k])}function q9(){return vOe()&&bOe()}function NMe(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,events:a,dataRef:i,elements:l}=e,{enabled:s=!0,visibleOnly:c=!0}=r,u=E.useRef(!1),d=E.useRef(-1),p=E.useRef(!0);E.useEffect(()=>{if(!s)return;const g=ea(l.domReference);function b(){!n&&Ra(l.domReference)&&l.domReference===SV(Wd(l.domReference))&&(u.current=!0)}function x(){p.current=!0}function w(){p.current=!1}return g.addEventListener("blur",b),q9()&&(g.addEventListener("keydown",x,!0),g.addEventListener("pointerdown",w,!0)),()=>{g.removeEventListener("blur",b),q9()&&(g.removeEventListener("keydown",x,!0),g.removeEventListener("pointerdown",w,!0))}},[l.domReference,n,s]),E.useEffect(()=>{if(!s)return;function g(b){let{reason:x}=b;(x==="reference-press"||x==="escape-key")&&(u.current=!0)}return a.on("openchange",g),()=>{a.off("openchange",g)}},[a,s]),E.useEffect(()=>()=>{oi(d)},[]);const f=E.useMemo(()=>({onMouseLeave(){u.current=!1},onFocus(g){if(u.current)return;const b=Cf(g.nativeEvent);if(c&&Dr(b)){if(q9()&&!g.relatedTarget){if(!p.current&&!_Oe(b))return}else if(!EOe(b))return}o(!0,g.nativeEvent,"focus")},onBlur(g){u.current=!1;const b=g.relatedTarget,x=g.nativeEvent,w=Dr(b)&&b.hasAttribute(F9("focus-guard"))&&b.getAttribute("data-type")==="outside";d.current=window.setTimeout(()=>{var k;const C=SV(l.domReference?l.domReference.ownerDocument:document);!b&&C===l.domReference||P0((k=i.current.floatingContext)==null?void 0:k.refs.floating.current,C)||P0(l.domReference,C)||w||o(!1,x,"focus")})}}),[i,l.domReference,o,c]);return E.useMemo(()=>s?{reference:f}:{},[s,f])}function V9(e,r,n){const o=new Map,a=n==="item";let i=e;if(a&&e){const{[ZV]:l,[QV]:s,...c}=e;i=c}return{...n==="floating"&&{tabIndex:-1,[bMe]:""},...i,...r.map(l=>{const s=l?l[n]:null;return typeof s=="function"?e?s(e):null:s}).concat(e).reduce((l,s)=>(s&&Object.entries(s).forEach(c=>{let[u,d]=c;if(!(a&&[ZV,QV].includes(u)))if(u.indexOf("on")===0){if(o.has(u)||o.set(u,[]),typeof d=="function"){var p;(p=o.get(u))==null||p.push(d),l[u]=function(){for(var f,g=arguments.length,b=new Array(g),x=0;xw(...b)).find(w=>w!==void 0)}}}else l[u]=d}),l),{})}}function cY(e){e===void 0&&(e=[]);const r=e.map(s=>s?.reference),n=e.map(s=>s?.floating),o=e.map(s=>s?.item),a=E.useCallback(s=>V9(s,e,"reference"),r),i=E.useCallback(s=>V9(s,e,"floating"),n),l=E.useCallback(s=>V9(s,e,"item"),o);return E.useMemo(()=>({getReferenceProps:a,getFloatingProps:i,getItemProps:l}),[a,i,l])}const DMe=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);function uY(e,r){var n,o;r===void 0&&(r={});const{open:a,elements:i,floatingId:l}=e,{enabled:s=!0,role:c="dialog"}=r,u=tY(),d=((n=i.domReference)==null?void 0:n.id)||u,p=E.useMemo(()=>{var k;return((k=SOe(i.floating))==null?void 0:k.id)||l},[i.floating,l]),f=(o=DMe.get(c))!=null?o:c,g=j9()!=null,b=E.useMemo(()=>f==="tooltip"||c==="label"?{["aria-"+(c==="label"?"labelledby":"describedby")]:a?p:void 0}:{"aria-expanded":a?"true":"false","aria-haspopup":f==="alertdialog"?"dialog":f,"aria-controls":a?p:void 0,...f==="listbox"&&{role:"combobox"},...f==="menu"&&{id:d},...f==="menu"&&g&&{role:"menuitem"},...c==="select"&&{"aria-autocomplete":"none"},...c==="combobox"&&{"aria-autocomplete":"list"}},[f,p,g,a,d,c]),x=E.useMemo(()=>{const k={id:p,...f&&{role:f}};return f==="tooltip"||c==="label"?k:{...k,...f==="menu"&&{"aria-labelledby":d}}},[f,p,d,c]),w=E.useCallback(k=>{let{active:C,selected:_}=k;const T={role:"option",...C&&{id:p+"-fui-option"}};switch(c){case"select":case"combobox":return{...T,"aria-selected":_}}return{}},[p,c]);return E.useMemo(()=>s?{reference:b,floating:x,item:w}:{},[s,b,x,w])}const[$Me,ai]=ri("ScrollArea.Root component was not found in tree");function Af(e,r){const n=it(r);A0(()=>{let o=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(o),o=window.requestAnimationFrame(n)});return a.observe(e),()=>{window.cancelAnimationFrame(o),a.unobserve(e)}}},[e,n])}const PMe=E.forwardRef((e,r)=>{const{style:n,...o}=e,a=ai(),[i,l]=E.useState(0),[s,c]=E.useState(0),u=!!(i&&s);return Af(a.scrollbarX,()=>{const d=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(d),c(d)}),Af(a.scrollbarY,()=>{const d=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(d),l(d)}),u?y.jsx("div",{...o,ref:r,style:{...n,width:i,height:s}}):null}),OMe=E.forwardRef((e,r)=>{const n=ai(),o=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&o?y.jsx(PMe,{...e,ref:r}):null}),MMe={scrollHideDelay:1e3,type:"hover"},dY=E.forwardRef((e,r)=>{const{type:n,scrollHideDelay:o,scrollbars:a,getStyles:i,...l}=ze("ScrollAreaRoot",MMe,e),[s,c]=E.useState(null),[u,d]=E.useState(null),[p,f]=E.useState(null),[g,b]=E.useState(null),[x,w]=E.useState(null),[k,C]=E.useState(0),[_,T]=E.useState(0),[R,A]=E.useState(!1),[D,N]=E.useState(!1),P=Nr(r,O=>c(O));return y.jsx($Me,{value:{type:n,scrollHideDelay:o,scrollArea:s,viewport:u,onViewportChange:d,content:p,onContentChange:f,scrollbarX:g,onScrollbarXChange:b,scrollbarXEnabled:R,onScrollbarXEnabledChange:A,scrollbarY:x,onScrollbarYChange:w,scrollbarYEnabled:D,onScrollbarYEnabledChange:N,onCornerWidthChange:C,onCornerHeightChange:T,getStyles:i},children:y.jsx(Se,{...l,ref:P,__vars:{"--sa-corner-width":a!=="xy"?"0px":`${k}px`,"--sa-corner-height":a!=="xy"?"0px":`${_}px`}})})});dY.displayName="@mantine/core/ScrollAreaRoot";function pY(e,r){const n=e/r;return Number.isNaN(n)?0:n}function ww(e){const r=pY(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,o=(e.scrollbar.size-n)*r;return Math.max(o,18)}function hY(e,r){return n=>{if(e[0]===e[1]||r[0]===r[1])return r[0];const o=(r[1]-r[0])/(e[1]-e[0]);return r[0]+o*(n-e[0])}}function IMe(e,[r,n]){return Math.min(n,Math.max(r,e))}function fY(e,r,n="ltr"){const o=ww(r),a=r.scrollbar.paddingStart+r.scrollbar.paddingEnd,i=r.scrollbar.size-a,l=r.content-r.viewport,s=i-o,c=n==="ltr"?[0,l]:[l*-1,0],u=IMe(e,c);return hY([0,l],[0,s])(u)}function LMe(e,r,n,o="ltr"){const a=ww(n),i=a/2,l=r||i,s=a-l,c=n.scrollbar.paddingStart+l,u=n.scrollbar.size-n.scrollbar.paddingEnd-s,d=n.content-n.viewport,p=o==="ltr"?[0,d]:[d*-1,0];return hY([c,u],p)(e)}function mY(e,r){return e>0&&e{e?.(o),(n===!1||!o.defaultPrevented)&&r?.(o)}}const[zMe,gY]=ri("ScrollAreaScrollbar was not found in tree"),yY=E.forwardRef((e,r)=>{const{sizes:n,hasThumb:o,onThumbChange:a,onThumbPointerUp:i,onThumbPointerDown:l,onThumbPositionChange:s,onDragScroll:c,onWheelScroll:u,onResize:d,...p}=e,f=ai(),[g,b]=E.useState(null),x=Nr(r,N=>b(N)),w=E.useRef(null),k=E.useRef(""),{viewport:C}=f,_=n.content-n.viewport,T=it(u),R=it(s),A=vf(d,10),D=N=>{if(w.current){const P=N.clientX-w.current.left,O=N.clientY-w.current.top;c({x:P,y:O})}};return E.useEffect(()=>{const N=P=>{const O=P.target;g?.contains(O)&&T(P,_)};return document.addEventListener("wheel",N,{passive:!1}),()=>document.removeEventListener("wheel",N,{passive:!1})},[C,g,_,T]),E.useEffect(R,[n,R]),Af(g,A),Af(f.content,A),y.jsx(zMe,{value:{scrollbar:g,hasThumb:o,onThumbChange:it(a),onThumbPointerUp:it(i),onThumbPositionChange:R,onThumbPointerDown:it(l)},children:y.jsx("div",{...p,ref:x,"data-mantine-scrollbar":!0,style:{position:"absolute",...p.style},onPointerDown:Xd(e.onPointerDown,N=>{N.preventDefault(),N.button===0&&(N.target.setPointerCapture(N.pointerId),w.current=g.getBoundingClientRect(),k.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",D(N))}),onPointerMove:Xd(e.onPointerMove,D),onPointerUp:Xd(e.onPointerUp,N=>{const P=N.target;P.hasPointerCapture(N.pointerId)&&(N.preventDefault(),P.releasePointerCapture(N.pointerId))}),onLostPointerCapture:()=>{document.body.style.webkitUserSelect=k.current,w.current=null}})})}),bY=E.forwardRef((e,r)=>{const{sizes:n,onSizesChange:o,style:a,...i}=e,l=ai(),[s,c]=E.useState(),u=E.useRef(null),d=Nr(r,u,l.onScrollbarXChange);return E.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),y.jsx(yY,{"data-orientation":"horizontal",...i,ref:d,sizes:n,style:{...a,"--sa-thumb-width":`${ww(n)}px`},onThumbPointerDown:p=>e.onThumbPointerDown(p.x),onDragScroll:p=>e.onDragScroll(p.x),onWheelScroll:(p,f)=>{if(l.viewport){const g=l.viewport.scrollLeft+p.deltaX;e.onWheelScroll(g),mY(g,f)&&p.preventDefault()}},onResize:()=>{u.current&&l.viewport&&s&&o({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:pu(s.paddingLeft),paddingEnd:pu(s.paddingRight)}})}})});bY.displayName="@mantine/core/ScrollAreaScrollbarX";const vY=E.forwardRef((e,r)=>{const{sizes:n,onSizesChange:o,style:a,...i}=e,l=ai(),[s,c]=E.useState(),u=E.useRef(null),d=Nr(r,u,l.onScrollbarYChange);return E.useEffect(()=>{u.current&&c(window.getComputedStyle(u.current))},[]),y.jsx(yY,{...i,"data-orientation":"vertical",ref:d,sizes:n,style:{"--sa-thumb-height":`${ww(n)}px`,...a},onThumbPointerDown:p=>e.onThumbPointerDown(p.y),onDragScroll:p=>e.onDragScroll(p.y),onWheelScroll:(p,f)=>{if(l.viewport){const g=l.viewport.scrollTop+p.deltaY;e.onWheelScroll(g),mY(g,f)&&p.preventDefault()}},onResize:()=>{u.current&&l.viewport&&s&&o({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:pu(s.paddingTop),paddingEnd:pu(s.paddingBottom)}})}})});vY.displayName="@mantine/core/ScrollAreaScrollbarY";const kw=E.forwardRef((e,r)=>{const{orientation:n="vertical",...o}=e,{dir:a}=du(),i=ai(),l=E.useRef(null),s=E.useRef(0),[c,u]=E.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=pY(c.viewport,c.content),p={...o,sizes:c,onSizesChange:u,hasThumb:d>0&&d<1,onThumbChange:g=>{l.current=g},onThumbPointerUp:()=>{s.current=0},onThumbPointerDown:g=>{s.current=g}},f=(g,b)=>LMe(g,s.current,c,b);return n==="horizontal"?y.jsx(bY,{...p,ref:r,onThumbPositionChange:()=>{if(i.viewport&&l.current){const g=i.viewport.scrollLeft,b=fY(g,c,a);l.current.style.transform=`translate3d(${b}px, 0, 0)`}},onWheelScroll:g=>{i.viewport&&(i.viewport.scrollLeft=g)},onDragScroll:g=>{i.viewport&&(i.viewport.scrollLeft=f(g,a))}}):n==="vertical"?y.jsx(vY,{...p,ref:r,onThumbPositionChange:()=>{if(i.viewport&&l.current){const g=i.viewport.scrollTop,b=fY(g,c);c.scrollbar.size===0?l.current.style.setProperty("--thumb-opacity","0"):l.current.style.setProperty("--thumb-opacity","1"),l.current.style.transform=`translate3d(0, ${b}px, 0)`}},onWheelScroll:g=>{i.viewport&&(i.viewport.scrollTop=g)},onDragScroll:g=>{i.viewport&&(i.viewport.scrollTop=f(g))}}):null});kw.displayName="@mantine/core/ScrollAreaScrollbarVisible";const Y9=E.forwardRef((e,r)=>{const n=ai(),{forceMount:o,...a}=e,[i,l]=E.useState(!1),s=e.orientation==="horizontal",c=vf(()=>{if(n.viewport){const u=n.viewport.offsetWidth{const{forceMount:n,...o}=e,a=ai(),[i,l]=E.useState(!1);return E.useEffect(()=>{const{scrollArea:s}=a;let c=0;if(s){const u=()=>{window.clearTimeout(c),l(!0)},d=()=>{c=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return s.addEventListener("pointerenter",u),s.addEventListener("pointerleave",d),()=>{window.clearTimeout(c),s.removeEventListener("pointerenter",u),s.removeEventListener("pointerleave",d)}}},[a.scrollArea,a.scrollHideDelay]),n||i?y.jsx(Y9,{"data-state":i?"visible":"hidden",...o,ref:r}):null});xY.displayName="@mantine/core/ScrollAreaScrollbarHover";const jMe=E.forwardRef((e,r)=>{const{forceMount:n,...o}=e,a=ai(),i=e.orientation==="horizontal",[l,s]=E.useState("hidden"),c=vf(()=>s("idle"),100);return E.useEffect(()=>{if(l==="idle"){const u=window.setTimeout(()=>s("hidden"),a.scrollHideDelay);return()=>window.clearTimeout(u)}},[l,a.scrollHideDelay]),E.useEffect(()=>{const{viewport:u}=a,d=i?"scrollLeft":"scrollTop";if(u){let p=u[d];const f=()=>{const g=u[d];p!==g&&(s("scrolling"),c()),p=g};return u.addEventListener("scroll",f),()=>u.removeEventListener("scroll",f)}},[a.viewport,i,c]),n||l!=="hidden"?y.jsx(kw,{"data-state":l==="hidden"?"hidden":"visible",...o,ref:r,onPointerEnter:Xd(e.onPointerEnter,()=>s("interacting")),onPointerLeave:Xd(e.onPointerLeave,()=>s("idle"))}):null}),W9=E.forwardRef((e,r)=>{const{forceMount:n,...o}=e,a=ai(),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:l}=a,s=e.orientation==="horizontal";return E.useEffect(()=>(s?i(!0):l(!0),()=>{s?i(!1):l(!1)}),[s,i,l]),a.type==="hover"?y.jsx(xY,{...o,ref:r,forceMount:n}):a.type==="scroll"?y.jsx(jMe,{...o,ref:r,forceMount:n}):a.type==="auto"?y.jsx(Y9,{...o,ref:r,forceMount:n}):a.type==="always"?y.jsx(kw,{...o,ref:r}):null});W9.displayName="@mantine/core/ScrollAreaScrollbar";function BMe(e,r=()=>{}){let n={left:e.scrollLeft,top:e.scrollTop},o=0;return(function a(){const i={left:e.scrollLeft,top:e.scrollTop},l=n.left!==i.left,s=n.top!==i.top;(l||s)&&r(),n=i,o=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(o)}const wY=E.forwardRef((e,r)=>{const{style:n,...o}=e,a=ai(),i=gY(),{onThumbPositionChange:l}=i,s=Nr(r,d=>i.onThumbChange(d)),c=E.useRef(void 0),u=vf(()=>{c.current&&(c.current(),c.current=void 0)},100);return E.useEffect(()=>{const{viewport:d}=a;if(d){const p=()=>{if(u(),!c.current){const f=BMe(d,l);c.current=f,l()}};return l(),d.addEventListener("scroll",p),()=>d.removeEventListener("scroll",p)}},[a.viewport,u,l]),y.jsx("div",{"data-state":i.hasThumb?"visible":"hidden",...o,ref:s,style:{width:"var(--sa-thumb-width)",height:"var(--sa-thumb-height)",...n},onPointerDownCapture:Xd(e.onPointerDownCapture,d=>{const p=d.target.getBoundingClientRect(),f=d.clientX-p.left,g=d.clientY-p.top;i.onThumbPointerDown({x:f,y:g})}),onPointerUp:Xd(e.onPointerUp,i.onThumbPointerUp)})});wY.displayName="@mantine/core/ScrollAreaThumb";const G9=E.forwardRef((e,r)=>{const{forceMount:n,...o}=e,a=gY();return n||a.hasThumb?y.jsx(wY,{ref:r,...o}):null});G9.displayName="@mantine/core/ScrollAreaThumb";const kY=E.forwardRef(({children:e,style:r,...n},o)=>{const a=ai(),i=Nr(o,a.onViewportChange);return y.jsx(Se,{...n,ref:i,style:{overflowX:a.scrollbarXEnabled?"scroll":"hidden",overflowY:a.scrollbarYEnabled?"scroll":"hidden",...r},children:y.jsx("div",{...a.getStyles("content"),ref:a.onContentChange,children:e})})});kY.displayName="@mantine/core/ScrollAreaViewport";var X9={root:"m_d57069b5",content:"m_b1336c6",viewport:"m_c0783ff9",viewportInner:"m_f8f631dd",scrollbar:"m_c44ba933",thumb:"m_d8b5e363",corner:"m_21657268"};const _Y={scrollHideDelay:1e3,type:"hover",scrollbars:"xy"},FMe=(e,{scrollbarSize:r,overscrollBehavior:n})=>({root:{"--scrollarea-scrollbar-size":Ae(r),"--scrollarea-over-scroll-behavior":n}}),ol=lt((e,r)=>{const n=ze("ScrollArea",_Y,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,scrollbarSize:c,vars:u,type:d,scrollHideDelay:p,viewportProps:f,viewportRef:g,onScrollPositionChange:b,children:x,offsetScrollbars:w,scrollbars:k,onBottomReached:C,onTopReached:_,overscrollBehavior:T,attributes:R,...A}=n,[D,N]=E.useState(!1),[P,O]=E.useState(!1),[B,L]=E.useState(!1),Y=bt({name:"ScrollArea",props:n,classes:X9,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:R,vars:u,varsResolver:FMe}),M=E.useRef(null),q=KV([g,M]);return E.useEffect(()=>{if(!M.current||w!=="present")return;const I=M.current,U=new ResizeObserver(()=>{const{scrollHeight:V,clientHeight:G,scrollWidth:F,clientWidth:J}=I;O(V>G),L(F>J)});return U.observe(I),()=>U.disconnect()},[M,w]),y.jsxs(dY,{getStyles:Y,type:d==="never"?"always":d,scrollHideDelay:p,ref:r,scrollbars:k,...Y("root"),...A,children:[y.jsx(kY,{...f,...Y("viewport",{style:f?.style}),ref:q,"data-offset-scrollbars":w===!0?"xy":w||void 0,"data-scrollbars":k||void 0,"data-horizontal-hidden":w==="present"&&!B?"true":void 0,"data-vertical-hidden":w==="present"&&!P?"true":void 0,onScroll:I=>{f?.onScroll?.(I),b?.({x:I.currentTarget.scrollLeft,y:I.currentTarget.scrollTop});const{scrollTop:U,scrollHeight:V,clientHeight:G}=I.currentTarget;U-(V-G)>=-.6&&C?.(),U===0&&_?.()},children:x}),(k==="xy"||k==="x")&&y.jsx(W9,{...Y("scrollbar"),orientation:"horizontal","data-hidden":d==="never"||w==="present"&&!B?!0:void 0,forceMount:!0,onMouseEnter:()=>N(!0),onMouseLeave:()=>N(!1),children:y.jsx(G9,{...Y("thumb")})}),(k==="xy"||k==="y")&&y.jsx(W9,{...Y("scrollbar"),orientation:"vertical","data-hidden":d==="never"||w==="present"&&!P?!0:void 0,forceMount:!0,onMouseEnter:()=>N(!0),onMouseLeave:()=>N(!1),children:y.jsx(G9,{...Y("thumb")})}),y.jsx(OMe,{...Y("corner"),"data-hovered":D||void 0,"data-hidden":d==="never"||void 0})]})});ol.displayName="@mantine/core/ScrollArea";const ta=lt((e,r)=>{const{children:n,classNames:o,styles:a,scrollbarSize:i,scrollHideDelay:l,type:s,dir:c,offsetScrollbars:u,viewportRef:d,onScrollPositionChange:p,unstyled:f,variant:g,viewportProps:b,scrollbars:x,style:w,vars:k,onBottomReached:C,onTopReached:_,onOverflowChange:T,...R}=ze("ScrollAreaAutosize",_Y,e),A=E.useRef(null),D=KV([d,A]),[N,P]=E.useState(!1),O=E.useRef(!1);return E.useEffect(()=>{if(!T)return;const B=A.current;if(!B)return;const L=()=>{const M=B.scrollHeight>B.clientHeight;M!==N&&(O.current?T?.(M):(O.current=!0,M&&T?.(!0)),P(M))};L();const Y=new ResizeObserver(L);return Y.observe(B),()=>Y.disconnect()},[T,N]),y.jsx(Se,{...R,ref:r,style:[{display:"flex",overflow:"hidden"},w],children:y.jsx(Se,{style:{display:"flex",flexDirection:"column",flex:1,overflow:"hidden",...x==="y"&&{minWidth:0},...x==="x"&&{minHeight:0},...x==="xy"&&{minWidth:0,minHeight:0},...x===!1&&{minWidth:0,minHeight:0}},children:y.jsx(ol,{classNames:o,styles:a,scrollHideDelay:l,scrollbarSize:i,type:s,dir:c,offsetScrollbars:u,viewportRef:D,onScrollPositionChange:p,unstyled:f,variant:g,viewportProps:b,vars:k,scrollbars:x,onBottomReached:C,onTopReached:_,"data-autosize":"true",children:n})})})});ol.classes=X9,ta.displayName="@mantine/core/ScrollAreaAutosize",ta.classes=X9,ol.Autosize=ta;var EY={root:"m_87cf2631"};const HMe={__staticSelector:"UnstyledButton"},$r=Xn((e,r)=>{const n=ze("UnstyledButton",HMe,e),{className:o,component:a="button",__staticSelector:i,unstyled:l,classNames:s,styles:c,style:u,attributes:d,...p}=n,f=bt({name:i,props:n,classes:EY,className:o,style:u,classNames:s,styles:c,unstyled:l,attributes:d});return y.jsx(Se,{...f("root",{focusable:!0}),component:a,ref:r,type:a==="button"?"button":void 0,...p})});$r.classes=EY,$r.displayName="@mantine/core/UnstyledButton";var SY={root:"m_515a97f8"};const _w=lt((e,r)=>{const n=ze("VisuallyHidden",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,attributes:u,...d}=n,p=bt({name:"VisuallyHidden",classes:SY,props:n,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:u});return y.jsx(Se,{component:"span",ref:r,...p("root"),...d})});_w.classes=SY,_w.displayName="@mantine/core/VisuallyHidden";var CY={root:"m_1b7284a3"};const UMe=(e,{radius:r,shadow:n})=>({root:{"--paper-radius":r===void 0?void 0:bn(r),"--paper-shadow":Aq(n)}}),Nf=Xn((e,r)=>{const n=ze("Paper",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,withBorder:c,vars:u,radius:d,shadow:p,variant:f,mod:g,attributes:b,...x}=n,w=bt({name:"Paper",props:n,classes:CY,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:b,vars:u,varsResolver:UMe});return y.jsx(Se,{ref:r,mod:[{"data-with-border":c},g],...w("root"),variant:f,...x})});Nf.classes=CY,Nf.displayName="@mantine/core/Paper";function TY(e,r,n,o){return e==="center"||o==="center"?{top:r}:e==="end"?{bottom:n}:e==="start"?{top:n}:{}}function RY(e,r,n,o,a){return e==="center"||o==="center"?{left:r}:e==="end"?{[a==="ltr"?"right":"left"]:n}:e==="start"?{[a==="ltr"?"left":"right"]:n}:{}}const qMe={bottom:"borderTopLeftRadius",left:"borderTopRightRadius",right:"borderBottomLeftRadius",top:"borderBottomRightRadius"};function VMe({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:a,arrowX:i,arrowY:l,dir:s}){const[c,u="center"]=e.split("-"),d={width:r,height:r,transform:"rotate(45deg)",position:"absolute",[qMe[c]]:o},p=-r/2;return c==="left"?{...d,...TY(u,l,n,a),right:p,borderLeftColor:"transparent",borderBottomColor:"transparent",clipPath:"polygon(100% 0, 0 0, 100% 100%)"}:c==="right"?{...d,...TY(u,l,n,a),left:p,borderRightColor:"transparent",borderTopColor:"transparent",clipPath:"polygon(0 100%, 0 0, 100% 100%)"}:c==="top"?{...d,...RY(u,i,n,a,s),bottom:p,borderTopColor:"transparent",borderLeftColor:"transparent",clipPath:"polygon(0 100%, 100% 100%, 100% 0)"}:c==="bottom"?{...d,...RY(u,i,n,a,s),top:p,borderBottomColor:"transparent",borderRightColor:"transparent",clipPath:"polygon(0 100%, 0 0, 100% 0)"}:{}}const Ew=E.forwardRef(({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:a,visible:i,arrowX:l,arrowY:s,style:c,...u},d)=>{const{dir:p}=du();return i?y.jsx("div",{...u,ref:d,style:{...c,...VMe({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:a,dir:p,arrowX:l,arrowY:s})}}):null});Ew.displayName="@mantine/core/FloatingArrow";function AY(e,r){if(e==="rtl"&&(r.includes("right")||r.includes("left"))){const[n,o]=r.split("-"),a=n==="right"?"left":"right";return o===void 0?a:`${a}-${o}`}return r}var NY={root:"m_9814e45f"};const YMe={zIndex:Yx("modal")},WMe=(e,{gradient:r,color:n,backgroundOpacity:o,blur:a,radius:i,zIndex:l})=>({root:{"--overlay-bg":r||(n!==void 0||o!==void 0)&&es(n||"#000",o??.6)||void 0,"--overlay-filter":a?`blur(${Ae(a)})`:void 0,"--overlay-radius":i===void 0?void 0:bn(i),"--overlay-z-index":l?.toString()}}),K9=Xn((e,r)=>{const n=ze("Overlay",YMe,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,fixed:u,center:d,children:p,radius:f,zIndex:g,gradient:b,blur:x,color:w,backgroundOpacity:k,mod:C,attributes:_,...T}=n,R=bt({name:"Overlay",props:n,classes:NY,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:_,vars:c,varsResolver:WMe});return y.jsx(Se,{ref:r,...R("root"),mod:[{center:d,fixed:u},C],...T,children:p})});K9.classes=NY,K9.displayName="@mantine/core/Overlay";function Z9(e){const r=document.createElement("div");return r.setAttribute("data-portal","true"),typeof e.className=="string"&&r.classList.add(...e.className.split(" ").filter(Boolean)),typeof e.style=="object"&&Object.assign(r.style,e.style),typeof e.id=="string"&&r.setAttribute("id",e.id),r}function GMe({target:e,reuseTargetNode:r,...n}){if(e)return typeof e=="string"?document.querySelector(e)||Z9(n):e;if(r){const o=document.querySelector("[data-mantine-shared-portal-node]");if(o)return o;const a=Z9(n);return a.setAttribute("data-mantine-shared-portal-node","true"),document.body.appendChild(a),a}return Z9(n)}const XMe={reuseTargetNode:!0},M0=lt((e,r)=>{const{children:n,target:o,reuseTargetNode:a,...i}=ze("Portal",XMe,e),[l,s]=E.useState(!1),c=E.useRef(null);return A0(()=>(s(!0),c.current=GMe({target:o,reuseTargetNode:a,...i}),n9(r,c.current),!o&&!a&&c.current&&document.body.appendChild(c.current),()=>{!o&&!a&&c.current&&document.body.removeChild(c.current)}),[o]),!l||!c.current?null:ji.createPortal(y.jsx(y.Fragment,{children:n}),c.current)});M0.displayName="@mantine/core/Portal";const Df=lt(({withinPortal:e=!0,children:r,...n},o)=>Qx()==="test"||!e?y.jsx(y.Fragment,{children:r}):y.jsx(M0,{ref:o,...n,children:r}));Df.displayName="@mantine/core/OptionalPortal";const I0=e=>({in:{opacity:1,transform:"scale(1)"},out:{opacity:0,transform:`scale(.9) translateY(${e==="bottom"?10:-10}px)`},transitionProperty:"transform, opacity"}),Sw={fade:{in:{opacity:1},out:{opacity:0},transitionProperty:"opacity"},"fade-up":{in:{opacity:1,transform:"translateY(0)"},out:{opacity:0,transform:"translateY(30px)"},transitionProperty:"opacity, transform"},"fade-down":{in:{opacity:1,transform:"translateY(0)"},out:{opacity:0,transform:"translateY(-30px)"},transitionProperty:"opacity, transform"},"fade-left":{in:{opacity:1,transform:"translateX(0)"},out:{opacity:0,transform:"translateX(30px)"},transitionProperty:"opacity, transform"},"fade-right":{in:{opacity:1,transform:"translateX(0)"},out:{opacity:0,transform:"translateX(-30px)"},transitionProperty:"opacity, transform"},scale:{in:{opacity:1,transform:"scale(1)"},out:{opacity:0,transform:"scale(0)"},common:{transformOrigin:"top"},transitionProperty:"transform, opacity"},"scale-y":{in:{opacity:1,transform:"scaleY(1)"},out:{opacity:0,transform:"scaleY(0)"},common:{transformOrigin:"top"},transitionProperty:"transform, opacity"},"scale-x":{in:{opacity:1,transform:"scaleX(1)"},out:{opacity:0,transform:"scaleX(0)"},common:{transformOrigin:"left"},transitionProperty:"transform, opacity"},"skew-up":{in:{opacity:1,transform:"translateY(0) skew(0deg, 0deg)"},out:{opacity:0,transform:"translateY(-20px) skew(-10deg, -5deg)"},common:{transformOrigin:"top"},transitionProperty:"transform, opacity"},"skew-down":{in:{opacity:1,transform:"translateY(0) skew(0deg, 0deg)"},out:{opacity:0,transform:"translateY(20px) skew(-10deg, -5deg)"},common:{transformOrigin:"bottom"},transitionProperty:"transform, opacity"},"rotate-left":{in:{opacity:1,transform:"translateY(0) rotate(0deg)"},out:{opacity:0,transform:"translateY(20px) rotate(-5deg)"},common:{transformOrigin:"bottom"},transitionProperty:"transform, opacity"},"rotate-right":{in:{opacity:1,transform:"translateY(0) rotate(0deg)"},out:{opacity:0,transform:"translateY(20px) rotate(5deg)"},common:{transformOrigin:"top"},transitionProperty:"transform, opacity"},"slide-down":{in:{opacity:1,transform:"translateY(0)"},out:{opacity:0,transform:"translateY(-100%)"},common:{transformOrigin:"top"},transitionProperty:"transform, opacity"},"slide-up":{in:{opacity:1,transform:"translateY(0)"},out:{opacity:0,transform:"translateY(100%)"},common:{transformOrigin:"bottom"},transitionProperty:"transform, opacity"},"slide-left":{in:{opacity:1,transform:"translateX(0)"},out:{opacity:0,transform:"translateX(100%)"},common:{transformOrigin:"left"},transitionProperty:"transform, opacity"},"slide-right":{in:{opacity:1,transform:"translateX(0)"},out:{opacity:0,transform:"translateX(-100%)"},common:{transformOrigin:"right"},transitionProperty:"transform, opacity"},pop:{...I0("bottom"),common:{transformOrigin:"center center"}},"pop-bottom-left":{...I0("bottom"),common:{transformOrigin:"bottom left"}},"pop-bottom-right":{...I0("bottom"),common:{transformOrigin:"bottom right"}},"pop-top-left":{...I0("top"),common:{transformOrigin:"top left"}},"pop-top-right":{...I0("top"),common:{transformOrigin:"top right"}}},DY={entering:"in",entered:"in",exiting:"out",exited:"out","pre-exiting":"out","pre-entering":"out"};function KMe({transition:e,state:r,duration:n,timingFunction:o}){const a={WebkitBackfaceVisibility:"hidden",willChange:"transform, opacity",transitionDuration:`${n}ms`,transitionTimingFunction:o};return typeof e=="string"?e in Sw?{transitionProperty:Sw[e].transitionProperty,...a,...Sw[e].common,...Sw[e][DY[r]]}:{}:{transitionProperty:e.transitionProperty,...a,...e.common,...e[DY[r]]}}function ZMe({duration:e,exitDuration:r,timingFunction:n,mounted:o,onEnter:a,onExit:i,onEntered:l,onExited:s,enterDelay:c,exitDelay:u}){const d=po(),p=Fq(),f=d.respectReducedMotion?p:!1,[g,b]=E.useState(f?0:e),[x,w]=E.useState(o?"entered":"exited"),k=E.useRef(-1),C=E.useRef(-1),_=E.useRef(-1);function T(){window.clearTimeout(k.current),window.clearTimeout(C.current),cancelAnimationFrame(_.current)}const R=D=>{T();const N=D?a:i,P=D?l:s,O=f?0:D?e:r;b(O),O===0?(typeof N=="function"&&N(),typeof P=="function"&&P(),w(D?"entered":"exited")):_.current=requestAnimationFrame(()=>{TM.flushSync(()=>{w(D?"pre-entering":"pre-exiting")}),_.current=requestAnimationFrame(()=>{typeof N=="function"&&N(),w(D?"entering":"exiting"),k.current=window.setTimeout(()=>{typeof P=="function"&&P(),w(D?"entered":"exited")},O)})})},A=D=>{if(T(),typeof(D?c:u)!="number"){R(D);return}C.current=window.setTimeout(()=>{R(D)},D?c:u)};return Vd(()=>{A(o)},[o]),E.useEffect(()=>()=>{T()},[]),{transitionDuration:g,transitionStatus:x,transitionTimingFunction:n||"ease"}}function hu({keepMounted:e,transition:r="fade",duration:n=250,exitDuration:o=n,mounted:a,children:i,timingFunction:l="ease",onExit:s,onEntered:c,onEnter:u,onExited:d,enterDelay:p,exitDelay:f}){const g=Qx(),{transitionDuration:b,transitionStatus:x,transitionTimingFunction:w}=ZMe({mounted:a,exitDuration:o,duration:n,timingFunction:l,onExit:s,onEntered:c,onEnter:u,onExited:d,enterDelay:p,exitDelay:f});return b===0||g==="test"?a?y.jsx(y.Fragment,{children:i({})}):e?i({display:"none"}):null:x==="exited"?e?i({display:"none"}):null:y.jsx(y.Fragment,{children:i(KMe({transition:r,duration:b,state:x,timingFunction:w}))})}hu.displayName="@mantine/core/Transition";const[QMe,$Y]=ri("Popover component was not found in the tree");function Cw({children:e,active:r=!0,refProp:n="ref",innerRef:o}){const a=Lq(r),i=Nr(a,o);return Qi(e)?E.cloneElement(e,{[n]:i}):e}function PY(e){return y.jsx(_w,{tabIndex:-1,"data-autofocus":!0,...e})}Cw.displayName="@mantine/core/FocusTrap",PY.displayName="@mantine/core/FocusTrapInitialFocus",Cw.InitialFocus=PY;var OY={dropdown:"m_38a85659",arrow:"m_a31dc6c1",overlay:"m_3d7bc908"};const Gs=lt((e,r)=>{const n=ze("PopoverDropdown",null,e),{className:o,style:a,vars:i,children:l,onKeyDownCapture:s,variant:c,classNames:u,styles:d,...p}=n,f=$Y(),g=i$e({opened:f.opened,shouldReturnFocus:f.returnFocus}),b=f.withRoles?{"aria-labelledby":f.getTargetId(),id:f.getDropdownId(),role:"dialog",tabIndex:-1}:{},x=Nr(r,f.floating);return f.disabled?null:y.jsx(Df,{...f.portalProps,withinPortal:f.withinPortal,children:y.jsx(hu,{mounted:f.opened,...f.transitionProps,transition:f.transitionProps?.transition||"fade",duration:f.transitionProps?.duration??150,keepMounted:f.keepMounted,exitDuration:typeof f.transitionProps?.exitDuration=="number"?f.transitionProps.exitDuration:f.transitionProps?.duration,children:w=>y.jsx(Cw,{active:f.trapFocus&&f.opened,innerRef:x,children:y.jsxs(Se,{...b,...p,variant:c,onKeyDownCapture:KDe(()=>{f.onClose?.(),f.onDismiss?.()},{active:f.closeOnEscape,onTrigger:g,onKeyDown:s}),"data-position":f.placement,"data-fixed":f.floatingStrategy==="fixed"||void 0,...f.getStyles("dropdown",{className:o,props:n,classNames:u,styles:d,style:[{...w,zIndex:f.zIndex,top:f.y??0,left:f.x??0,width:f.width==="target"?void 0:Ae(f.width),...f.referenceHidden?{display:"none"}:null},f.resolvedStyles.dropdown,d?.dropdown,a]}),children:[l,y.jsx(Ew,{ref:f.arrowRef,arrowX:f.arrowX,arrowY:f.arrowY,visible:f.withArrow,position:f.placement,arrowSize:f.arrowSize,arrowRadius:f.arrowRadius,arrowOffset:f.arrowOffset,arrowPosition:f.arrowPosition,...f.getStyles("arrow",{props:n,classNames:u,styles:d})})]})})})})});Gs.classes=OY,Gs.displayName="@mantine/core/PopoverDropdown";const JMe={refProp:"ref",popupType:"dialog"},fu=lt((e,r)=>{const{children:n,refProp:o,popupType:a,...i}=ze("PopoverTarget",JMe,e);if(!Qi(n))throw new Error("Popover.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported");const l=i,s=$Y(),c=Nr(s.reference,Gx(n),r),u=s.withRoles?{"aria-haspopup":a,"aria-expanded":s.opened,"aria-controls":s.getDropdownId(),id:s.getTargetId()}:{};return E.cloneElement(n,{...l,...u,...s.targetProps,className:Ji(s.targetProps.className,l.className,n.props.className),[o]:c,...s.controlled?null:{onClick:()=>{s.onToggle(),n.props.onClick?.()}}})});fu.displayName="@mantine/core/PopoverTarget";function eIe(e){if(e===void 0)return{shift:!0,flip:!0};const r={...e};return e.shift===void 0&&(r.shift=!0),e.flip===void 0&&(r.flip=!0),r}function tIe(e,r,n){const o=eIe(e.middlewares),a=[WV(e.offset),yMe()];return e.dropdownVisible&&n!=="test"&&e.preventPositionChangeWhenVisible&&(o.flip=!1),o.shift&&a.push(z9(typeof o.shift=="boolean"?{limiter:GV(),padding:5}:{limiter:GV(),padding:5,...o.shift})),o.flip&&a.push(typeof o.flip=="boolean"?bw():bw(o.flip)),o.inline&&a.push(typeof o.inline=="boolean"?O0():O0(o.inline)),a.push(XV({element:e.arrowRef,padding:e.arrowOffset})),(o.size||e.width==="target")&&a.push(gMe({...typeof o.size=="boolean"?{}:o.size,apply({rects:i,availableWidth:l,availableHeight:s,...c}){const u=r().refs.floating.current?.style??{};o.size&&(typeof o.size=="object"&&o.size.apply?o.size.apply({rects:i,availableWidth:l,availableHeight:s,...c}):Object.assign(u,{maxWidth:`${l}px`,maxHeight:`${s}px`})),e.width==="target"&&Object.assign(u,{width:`${i.reference.width}px`})}})),a}function rIe(e){const r=Qx(),[n,o]=qs({value:e.opened,defaultValue:e.defaultOpened,finalValue:!1,onChange:e.onChange}),a=E.useRef(n),i=()=>{n&&!e.disabled&&o(!1)},l=()=>{e.disabled||o(!n)},s=xw({strategy:e.strategy,placement:e.preventPositionChangeWhenVisible?e.positionRef.current:e.position,middleware:tIe(e,()=>s,r),whileElementsMounted:e.keepMounted?void 0:mw});return E.useEffect(()=>{if(!(!s.refs.reference.current||!s.refs.floating.current)&&n)return mw(s.refs.reference.current,s.refs.floating.current,s.update)},[n,s.update]),Vd(()=>{e.onPositionChange?.(s.placement),e.positionRef.current=s.placement},[s.placement,e.preventPositionChangeWhenVisible]),Vd(()=>{n!==a.current&&(n?e.onOpen?.():e.onClose?.()),a.current=n},[n,e.onClose,e.onOpen]),Vd(()=>{let c=-1;return n&&(c=window.setTimeout(()=>e.setDropdownVisible(!0),4)),()=>{window.clearTimeout(c)}},[n,e.position]),{floating:s,controlled:typeof e.opened=="boolean",opened:n,onClose:i,onToggle:l}}const nIe={position:"bottom",offset:8,positionDependencies:[],transitionProps:{transition:"fade",duration:150},middlewares:{flip:!0,shift:!0,inline:!1},arrowSize:7,arrowOffset:5,arrowRadius:0,arrowPosition:"side",closeOnClickOutside:!0,withinPortal:!0,closeOnEscape:!0,trapFocus:!1,withRoles:!0,returnFocus:!1,withOverlay:!1,hideDetached:!0,clickOutsideEvents:["mousedown","touchstart"],zIndex:Yx("popover"),__staticSelector:"Popover",width:"max-content"},oIe=(e,{radius:r,shadow:n})=>({dropdown:{"--popover-radius":r===void 0?void 0:bn(r),"--popover-shadow":Aq(n)}});function mr(e){const r=ze("Popover",nIe,e),{children:n,position:o,offset:a,onPositionChange:i,positionDependencies:l,opened:s,transitionProps:c,onExitTransitionEnd:u,onEnterTransitionEnd:d,width:p,middlewares:f,withArrow:g,arrowSize:b,arrowOffset:x,arrowRadius:w,arrowPosition:k,unstyled:C,classNames:_,styles:T,closeOnClickOutside:R,withinPortal:A,portalProps:D,closeOnEscape:N,clickOutsideEvents:P,trapFocus:O,onClose:B,onDismiss:L,onOpen:Y,onChange:M,zIndex:q,radius:I,shadow:U,id:V,defaultOpened:G,__staticSelector:F,withRoles:J,disabled:Q,returnFocus:z,variant:W,keepMounted:X,vars:Z,floatingStrategy:oe,withOverlay:ee,overlayProps:re,hideDetached:pe,attributes:Ce,preventPositionChangeWhenVisible:ce,...de}=r,be=bt({name:F,props:r,classes:OY,classNames:_,styles:T,unstyled:C,attributes:Ce,rootSelector:"dropdown",vars:Z,varsResolver:oIe}),{resolvedStyles:Me}=y9({classNames:_,styles:T,props:r}),[Xe,Ge]=E.useState(s??G??!1),_t=E.useRef(o),Qe=E.useRef(null),[St,Ke]=E.useState(null),[We,st]=E.useState(null),{dir:Et}=du(),$n=Qx(),_e=Ta(V),we=rIe({middlewares:f,width:p,position:AY(Et,o),offset:typeof a=="number"?a+(g?b/2:0):a,arrowRef:Qe,arrowOffset:x,onPositionChange:i,positionDependencies:l,opened:s,defaultOpened:G,onChange:M,onOpen:Y,onClose:B,onDismiss:L,strategy:oe,dropdownVisible:Xe,setDropdownVisible:Ge,positionRef:_t,disabled:Q,preventPositionChangeWhenVisible:ce,keepMounted:X});Dq(()=>{R&&(we.onClose(),L?.())},P,[St,We]);const rt=E.useCallback($t=>{Ke($t),we.floating.refs.setReference($t)},[we.floating.refs.setReference]),at=E.useCallback($t=>{st($t),we.floating.refs.setFloating($t)},[we.floating.refs.setFloating]),Dt=E.useCallback(()=>{c?.onExited?.(),u?.(),Ge(!1),_t.current=o},[c?.onExited,u]),Wr=E.useCallback(()=>{c?.onEntered?.(),d?.()},[c?.onEntered,d]);return y.jsxs(QMe,{value:{returnFocus:z,disabled:Q,controlled:we.controlled,reference:rt,floating:at,x:we.floating.x,y:we.floating.y,arrowX:we.floating?.middlewareData?.arrow?.x,arrowY:we.floating?.middlewareData?.arrow?.y,opened:we.opened,arrowRef:Qe,transitionProps:{...c,onExited:Dt,onEntered:Wr},width:p,withArrow:g,arrowSize:b,arrowOffset:x,arrowRadius:w,arrowPosition:k,placement:we.floating.placement,trapFocus:O,withinPortal:A,portalProps:D,zIndex:q,radius:I,shadow:U,closeOnEscape:N,onDismiss:L,onClose:we.onClose,onToggle:we.onToggle,getTargetId:()=>`${_e}-target`,getDropdownId:()=>`${_e}-dropdown`,withRoles:J,targetProps:de,__staticSelector:F,classNames:_,styles:T,unstyled:C,variant:W,keepMounted:X,getStyles:be,resolvedStyles:Me,floatingStrategy:oe,referenceHidden:pe&&$n!=="test"?we.floating.middlewareData.hide?.referenceHidden:!1},children:[n,ee&&y.jsx(hu,{transition:"fade",mounted:we.opened,duration:c?.duration||250,exitDuration:c?.exitDuration||250,children:$t=>y.jsx(Df,{withinPortal:A,children:y.jsx(K9,{...re,...be("overlay",{className:re?.className,style:[$t,re?.style]})})})})]})}mr.Target=fu,mr.Dropdown=Gs,mr.displayName="@mantine/core/Popover",mr.extend=e=>e;var al={root:"m_5ae2e3c",barsLoader:"m_7a2bd4cd",bar:"m_870bb79","bars-loader-animation":"m_5d2b3b9d",dotsLoader:"m_4e3f22d7",dot:"m_870c4af","loader-dots-animation":"m_aac34a1",ovalLoader:"m_b34414df","oval-loader-animation":"m_f8e89c4b"};const MY=E.forwardRef(({className:e,...r},n)=>y.jsxs(Se,{component:"span",className:Ji(al.barsLoader,e),...r,ref:n,children:[y.jsx("span",{className:al.bar}),y.jsx("span",{className:al.bar}),y.jsx("span",{className:al.bar})]}));MY.displayName="@mantine/core/Bars";const IY=E.forwardRef(({className:e,...r},n)=>y.jsxs(Se,{component:"span",className:Ji(al.dotsLoader,e),...r,ref:n,children:[y.jsx("span",{className:al.dot}),y.jsx("span",{className:al.dot}),y.jsx("span",{className:al.dot})]}));IY.displayName="@mantine/core/Dots";const LY=E.forwardRef(({className:e,...r},n)=>y.jsx(Se,{component:"span",className:Ji(al.ovalLoader,e),...r,ref:n}));LY.displayName="@mantine/core/Oval";const zY={bars:MY,oval:LY,dots:IY},aIe={loaders:zY,type:"oval"},iIe=(e,{size:r,color:n})=>({root:{"--loader-size":sr(r,"loader-size"),"--loader-color":n?Jo(n,e):void 0}}),$f=lt((e,r)=>{const n=ze("Loader",aIe,e),{size:o,color:a,type:i,vars:l,className:s,style:c,classNames:u,styles:d,unstyled:p,loaders:f,variant:g,children:b,attributes:x,...w}=n,k=bt({name:"Loader",props:n,classes:al,className:s,style:c,classNames:u,styles:d,unstyled:p,attributes:x,vars:l,varsResolver:iIe});return b?y.jsx(Se,{...k("root"),ref:r,...w,children:b}):y.jsx(Se,{...k("root"),ref:r,component:f[i],variant:g,size:o,...w})});$f.defaultLoaders=zY,$f.classes=al,$f.displayName="@mantine/core/Loader";var Pf={root:"m_8d3f4000",icon:"m_8d3afb97",loader:"m_302b9fb1",group:"m_1a0f1b21",groupSection:"m_437b6484"};const jY={orientation:"horizontal"},lIe=(e,{borderWidth:r})=>({group:{"--ai-border-width":Ae(r)}}),Tw=lt((e,r)=>{const n=ze("ActionIconGroup",jY,e),{className:o,style:a,classNames:i,styles:l,unstyled:s,orientation:c,vars:u,borderWidth:d,variant:p,mod:f,attributes:g,...b}=ze("ActionIconGroup",jY,e),x=bt({name:"ActionIconGroup",props:n,classes:Pf,className:o,style:a,classNames:i,styles:l,unstyled:s,attributes:g,vars:u,varsResolver:lIe,rootSelector:"group"});return y.jsx(Se,{...x("group"),ref:r,variant:p,mod:[{"data-orientation":c},f],role:"group",...b})});Tw.classes=Pf,Tw.displayName="@mantine/core/ActionIconGroup";const sIe=(e,{radius:r,color:n,gradient:o,variant:a,autoContrast:i,size:l})=>{const s=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:i});return{groupSection:{"--section-height":sr(l,"section-height"),"--section-padding-x":sr(l,"section-padding-x"),"--section-fz":No(l),"--section-radius":r===void 0?void 0:bn(r),"--section-bg":n||a?s.background:void 0,"--section-color":s.color,"--section-bd":n||a?s.border:void 0}}},Q9=lt((e,r)=>{const n=ze("ActionIconGroupSection",null,e),{className:o,style:a,classNames:i,styles:l,unstyled:s,vars:c,variant:u,gradient:d,radius:p,autoContrast:f,attributes:g,...b}=n,x=bt({name:"ActionIconGroupSection",props:n,classes:Pf,className:o,style:a,classNames:i,styles:l,unstyled:s,attributes:g,vars:c,varsResolver:sIe,rootSelector:"groupSection"});return y.jsx(Se,{...x("groupSection"),ref:r,variant:u,...b})});Q9.classes=Pf,Q9.displayName="@mantine/core/ActionIconGroupSection";const cIe=(e,{size:r,radius:n,variant:o,gradient:a,color:i,autoContrast:l})=>{const s=e.variantColorResolver({color:i||e.primaryColor,theme:e,gradient:a,variant:o||"filled",autoContrast:l});return{root:{"--ai-size":sr(r,"ai-size"),"--ai-radius":n===void 0?void 0:bn(n),"--ai-bg":i||o?s.background:void 0,"--ai-hover":i||o?s.hover:void 0,"--ai-hover-color":i||o?s.hoverColor:void 0,"--ai-color":s.color,"--ai-bd":i||o?s.border:void 0}}},or=Xn((e,r)=>{const n=ze("ActionIcon",null,e),{className:o,unstyled:a,variant:i,classNames:l,styles:s,style:c,loading:u,loaderProps:d,size:p,color:f,radius:g,__staticSelector:b,gradient:x,vars:w,children:k,disabled:C,"data-disabled":_,autoContrast:T,mod:R,attributes:A,...D}=n,N=bt({name:["ActionIcon",b],props:n,className:o,style:c,classes:Pf,classNames:l,styles:s,unstyled:a,attributes:A,vars:w,varsResolver:cIe});return y.jsxs($r,{...N("root",{active:!C&&!u&&!_}),...D,unstyled:a,variant:i,size:p,disabled:C||u,ref:r,mod:[{loading:u,disabled:C||_},R],children:[typeof u=="boolean"&&y.jsx(hu,{mounted:u,transition:"slide-down",duration:150,children:P=>y.jsx(Se,{component:"span",...N("loader",{style:P}),"aria-hidden":!0,children:y.jsx($f,{color:"var(--ai-color)",size:"calc(var(--ai-size) * 0.55)",...d})})}),y.jsx(Se,{component:"span",mod:{loading:u},...N("icon"),children:k})]})});or.classes=Pf,or.displayName="@mantine/core/ActionIcon",or.Group=Tw,or.GroupSection=Q9;const BY=E.forwardRef(({size:e="var(--cb-icon-size, 70%)",style:r,...n},o)=>y.jsx("svg",{viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{...r,width:e,height:e},ref:o,...n,children:y.jsx("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})}));BY.displayName="@mantine/core/CloseIcon";var FY={root:"m_86a44da5","root--subtle":"m_220c80f2"};const uIe={variant:"subtle"},dIe=(e,{size:r,radius:n,iconSize:o})=>({root:{"--cb-size":sr(r,"cb-size"),"--cb-radius":n===void 0?void 0:bn(n),"--cb-icon-size":Ae(o)}}),Kd=Xn((e,r)=>{const n=ze("CloseButton",uIe,e),{iconSize:o,children:a,vars:i,radius:l,className:s,classNames:c,style:u,styles:d,unstyled:p,"data-disabled":f,disabled:g,variant:b,icon:x,mod:w,attributes:k,__staticSelector:C,..._}=n,T=bt({name:C||"CloseButton",props:n,className:s,style:u,classes:FY,classNames:c,styles:d,unstyled:p,attributes:k,vars:i,varsResolver:dIe});return y.jsxs($r,{ref:r,..._,unstyled:p,variant:b,disabled:g,mod:[{disabled:g||f},w],...T("root",{variant:b,active:!g&&!f}),children:[x||y.jsx(BY,{}),a]})});Kd.classes=FY,Kd.displayName="@mantine/core/CloseButton";function pIe(e){return E.Children.toArray(e).filter(Boolean)}var HY={root:"m_4081bf90"};const hIe={preventGrowOverflow:!0,gap:"md",align:"center",justify:"flex-start",wrap:"wrap"},fIe=(e,{grow:r,preventGrowOverflow:n,gap:o,align:a,justify:i,wrap:l},{childWidth:s})=>({root:{"--group-child-width":r&&n?s:void 0,"--group-gap":Us(o),"--group-align":a,"--group-justify":i,"--group-wrap":l}}),Ur=lt((e,r)=>{const n=ze("Group",hIe,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,children:c,gap:u,align:d,justify:p,wrap:f,grow:g,preventGrowOverflow:b,vars:x,variant:w,__size:k,mod:C,attributes:_,...T}=n,R=pIe(c),A=R.length,D=Us(u??"md"),N={childWidth:`calc(${100/A}% - (${D} - ${D} / ${A}))`},P=bt({name:"Group",props:n,stylesCtx:N,className:a,style:i,classes:HY,classNames:o,styles:l,unstyled:s,attributes:_,vars:x,varsResolver:fIe});return y.jsx(Se,{...P("root"),ref:r,variant:w,mod:[{grow:g},C],size:k,...T,children:R})});Ur.classes=HY,Ur.displayName="@mantine/core/Group";const[mIe,gIe]=C0({size:"sm"}),UY=lt((e,r)=>{const n=ze("InputClearButton",null,e),{size:o,variant:a,vars:i,classNames:l,styles:s,...c}=n,u=gIe(),{resolvedClassNames:d,resolvedStyles:p}=y9({classNames:l,styles:s,props:n});return y.jsx(Kd,{variant:a||"transparent",ref:r,size:o||u?.size||"sm",classNames:d,styles:p,__staticSelector:"InputClearButton",style:{pointerEvents:"all",background:"var(--input-bg)",...c.style},...c})});UY.displayName="@mantine/core/InputClearButton";const yIe={xs:7,sm:8,md:10,lg:12,xl:15};function bIe({__clearable:e,__clearSection:r,rightSection:n,__defaultRightSection:o,size:a="sm"}){const i=e&&r;return i&&(n||o)?y.jsxs("div",{"data-combined-clear-section":!0,style:{display:"flex",gap:2,alignItems:"center",paddingInlineEnd:yIe[a]},children:[i,n||o]}):n||i||o}const[vIe,Rw]=C0({offsetBottom:!1,offsetTop:!1,describedBy:void 0,getStyles:null,inputId:void 0,labelId:void 0});var ii={wrapper:"m_6c018570",input:"m_8fb7ebe7",section:"m_82577fc2",placeholder:"m_88bacfd0",root:"m_46b77525",label:"m_8fdc1311",required:"m_78a94662",error:"m_8f816625",description:"m_fe47ce59"};const xIe=(e,{size:r})=>({description:{"--input-description-size":r===void 0?void 0:`calc(${No(r)} - ${Ae(2)})`}}),Aw=lt((e,r)=>{const n=ze("InputDescription",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,size:u,__staticSelector:d,__inheritStyles:p=!0,attributes:f,variant:g,...b}=ze("InputDescription",null,n),x=Rw(),w=bt({name:["InputWrapper",d],props:n,classes:ii,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:f,rootSelector:"description",vars:c,varsResolver:xIe}),k=p&&x?.getStyles||w;return y.jsx(Se,{component:"p",ref:r,variant:g,size:u,...k("description",x?.getStyles?{className:a,style:i}:void 0),...b})});Aw.classes=ii,Aw.displayName="@mantine/core/InputDescription";const wIe=(e,{size:r})=>({error:{"--input-error-size":r===void 0?void 0:`calc(${No(r)} - ${Ae(2)})`}}),Nw=lt((e,r)=>{const n=ze("InputError",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,size:u,attributes:d,__staticSelector:p,__inheritStyles:f=!0,variant:g,...b}=n,x=bt({name:["InputWrapper",p],props:n,classes:ii,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:d,rootSelector:"error",vars:c,varsResolver:wIe}),w=Rw(),k=f&&w?.getStyles||x;return y.jsx(Se,{component:"p",ref:r,variant:g,size:u,...k("error",w?.getStyles?{className:a,style:i}:void 0),...b})});Nw.classes=ii,Nw.displayName="@mantine/core/InputError";const qY={labelElement:"label"},kIe=(e,{size:r})=>({label:{"--input-label-size":No(r),"--input-asterisk-color":void 0}}),Dw=lt((e,r)=>{const n=ze("InputLabel",qY,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,labelElement:u,size:d,required:p,htmlFor:f,onMouseDown:g,children:b,__staticSelector:x,variant:w,mod:k,attributes:C,..._}=ze("InputLabel",qY,n),T=bt({name:["InputWrapper",x],props:n,classes:ii,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:C,rootSelector:"label",vars:c,varsResolver:kIe}),R=Rw(),A=R?.getStyles||T;return y.jsxs(Se,{...A("label",R?.getStyles?{className:a,style:i}:void 0),component:u,variant:w,size:d,ref:r,htmlFor:u==="label"?f:void 0,mod:[{required:p},k],onMouseDown:D=>{g?.(D),!D.defaultPrevented&&D.detail>1&&D.preventDefault()},..._,children:[b,p&&y.jsx("span",{...A("required"),"aria-hidden":!0,children:" *"})]})});Dw.classes=ii,Dw.displayName="@mantine/core/InputLabel";const J9=lt((e,r)=>{const n=ze("InputPlaceholder",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,__staticSelector:u,variant:d,error:p,mod:f,attributes:g,...b}=n,x=bt({name:["InputPlaceholder",u],props:n,classes:ii,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:g,rootSelector:"placeholder"});return y.jsx(Se,{...x("placeholder"),mod:[{error:!!p},f],component:"span",variant:d,ref:r,...b})});J9.classes=ii,J9.displayName="@mantine/core/InputPlaceholder";function _Ie(e,{hasDescription:r,hasError:n}){const o=e.findIndex(s=>s==="input"),a=e.slice(0,o),i=e.slice(o+1),l=r&&a.includes("description")||n&&a.includes("error");return{offsetBottom:r&&i.includes("description")||n&&i.includes("error"),offsetTop:l}}const EIe={labelElement:"label",inputContainer:e=>e,inputWrapperOrder:["label","description","input","error"]},SIe=(e,{size:r})=>({label:{"--input-label-size":No(r),"--input-asterisk-color":void 0},error:{"--input-error-size":r===void 0?void 0:`calc(${No(r)} - ${Ae(2)})`},description:{"--input-description-size":r===void 0?void 0:`calc(${No(r)} - ${Ae(2)})`}}),e7=lt((e,r)=>{const n=ze("InputWrapper",EIe,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,size:u,variant:d,__staticSelector:p,inputContainer:f,inputWrapperOrder:g,label:b,error:x,description:w,labelProps:k,descriptionProps:C,errorProps:_,labelElement:T,children:R,withAsterisk:A,id:D,required:N,__stylesApiProps:P,mod:O,attributes:B,...L}=n,Y=bt({name:["InputWrapper",p],props:P||n,classes:ii,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:B,vars:c,varsResolver:SIe}),M={size:u,variant:d,__staticSelector:p},q=Ta(D),I=typeof A=="boolean"?A:N,U=_?.id||`${q}-error`,V=C?.id||`${q}-description`,G=q,F=!!x&&typeof x!="boolean",J=!!w,Q=`${F?U:""} ${J?V:""}`,z=Q.trim().length>0?Q.trim():void 0,W=k?.id||`${q}-label`,X=b&&y.jsx(Dw,{labelElement:T,id:W,htmlFor:G,required:I,...M,...k,children:b},"label"),Z=J&&y.jsx(Aw,{...C,...M,size:C?.size||M.size,id:C?.id||V,children:w},"description"),oe=y.jsx(E.Fragment,{children:f(R)},"input"),ee=F&&E.createElement(Nw,{..._,...M,size:_?.size||M.size,key:"error",id:_?.id||U},x),re=g.map(pe=>{switch(pe){case"label":return X;case"input":return oe;case"description":return Z;case"error":return ee;default:return null}});return y.jsx(vIe,{value:{getStyles:Y,describedBy:z,inputId:G,labelId:W,..._Ie(g,{hasDescription:J,hasError:F})},children:y.jsx(Se,{ref:r,variant:d,size:u,mod:[{error:!!x},O],...Y("root"),...L,children:re})})});e7.classes=ii,e7.displayName="@mantine/core/InputWrapper";const CIe={variant:"default",leftSectionPointerEvents:"none",rightSectionPointerEvents:"none",withAria:!0,withErrorStyles:!0,size:"sm"},TIe=(e,r,n)=>({wrapper:{"--input-margin-top":n.offsetTop?"calc(var(--mantine-spacing-xs) / 2)":void 0,"--input-margin-bottom":n.offsetBottom?"calc(var(--mantine-spacing-xs) / 2)":void 0,"--input-height":sr(r.size,"input-height"),"--input-fz":No(r.size),"--input-radius":r.radius===void 0?void 0:bn(r.radius),"--input-left-section-width":r.leftSectionWidth!==void 0?Ae(r.leftSectionWidth):void 0,"--input-right-section-width":r.rightSectionWidth!==void 0?Ae(r.rightSectionWidth):void 0,"--input-padding-y":r.multiline?sr(r.size,"input-padding-y"):void 0,"--input-left-section-pointer-events":r.leftSectionPointerEvents,"--input-right-section-pointer-events":r.rightSectionPointerEvents}}),Na=Xn((e,r)=>{const n=ze("Input",CIe,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,required:c,__staticSelector:u,__stylesApiProps:d,size:p,wrapperProps:f,error:g,disabled:b,leftSection:x,leftSectionProps:w,leftSectionWidth:k,rightSection:C,rightSectionProps:_,rightSectionWidth:T,rightSectionPointerEvents:R,leftSectionPointerEvents:A,variant:D,vars:N,pointer:P,multiline:O,radius:B,id:L,withAria:Y,withErrorStyles:M,mod:q,inputSize:I,attributes:U,__clearSection:V,__clearable:G,__defaultRightSection:F,...J}=n,{styleProps:Q,rest:z}=iV(J),W=Rw(),X={offsetBottom:W?.offsetBottom,offsetTop:W?.offsetTop},Z=bt({name:["Input",u],props:d||n,classes:ii,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:U,stylesCtx:X,rootSelector:"wrapper",vars:N,varsResolver:TIe}),oe=Y?{required:c,disabled:b,"aria-invalid":!!g,"aria-describedby":W?.describedBy,id:W?.inputId||L}:{},ee=bIe({__clearable:G,__clearSection:V,rightSection:C,__defaultRightSection:F,size:p});return y.jsx(mIe,{value:{size:p||"sm"},children:y.jsxs(Se,{...Z("wrapper"),...Q,...f,mod:[{error:!!g&&M,pointer:P,disabled:b,multiline:O,"data-with-right-section":!!ee,"data-with-left-section":!!x},q],variant:D,size:p,children:[x&&y.jsx("div",{...w,"data-position":"left",...Z("section",{className:w?.className,style:w?.style}),children:x}),y.jsx(Se,{component:"input",...z,...oe,ref:r,required:c,mod:{disabled:b,error:!!g&&M},variant:D,__size:I,...Z("input")}),ee&&y.jsx("div",{..._,"data-position":"right",...Z("section",{className:_?.className,style:_?.style}),children:ee})]})})});Na.classes=ii,Na.Wrapper=e7,Na.Label=Dw,Na.Error=Nw,Na.Description=Aw,Na.Placeholder=J9,Na.ClearButton=UY,Na.displayName="@mantine/core/Input";const RIe={gap:{type:"spacing",property:"gap"},rowGap:{type:"spacing",property:"rowGap"},columnGap:{type:"spacing",property:"columnGap"},align:{type:"identity",property:"alignItems"},justify:{type:"identity",property:"justifyContent"},wrap:{type:"identity",property:"flexWrap"},direction:{type:"identity",property:"flexDirection"}};var VY={root:"m_8bffd616"};const Of=Xn((e,r)=>{const n=ze("Flex",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,gap:u,rowGap:d,columnGap:p,align:f,justify:g,wrap:b,direction:x,attributes:w,...k}=n,C=bt({name:"Flex",classes:VY,props:n,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:w,vars:c}),_=po(),T=rw(),R=cV({styleProps:{gap:u,rowGap:d,columnGap:p,align:f,justify:g,wrap:b,direction:x},theme:_,data:RIe});return y.jsxs(y.Fragment,{children:[R.hasResponsiveStyles&&y.jsx(tw,{selector:`.${T}`,styles:R.styles,media:R.media}),y.jsx(Se,{ref:r,...C("root",{className:T,style:yf(R.inlineStyles)}),...k})]})});Of.classes=VY,Of.displayName="@mantine/core/Flex";function AIe(e,r){if(!r||!e)return!1;let n=r.parentNode;for(;n!=null;){if(n===e)return!0;n=n.parentNode}return!1}function NIe({target:e,parent:r,ref:n,displayAfterTransitionEnd:o}){const a=E.useRef(-1),[i,l]=E.useState(!1),[s,c]=E.useState(typeof o=="boolean"?o:!1),u=()=>{if(!e||!r||!n.current)return;const g=e.getBoundingClientRect(),b=r.getBoundingClientRect(),x=window.getComputedStyle(e),w=window.getComputedStyle(r),k=pu(x.borderTopWidth)+pu(w.borderTopWidth),C=pu(x.borderLeftWidth)+pu(w.borderLeftWidth),_={top:g.top-b.top-k,left:g.left-b.left-C,width:g.width,height:g.height};n.current.style.transform=`translateY(${_.top}px) translateX(${_.left}px)`,n.current.style.width=`${_.width}px`,n.current.style.height=`${_.height}px`},d=()=>{window.clearTimeout(a.current),n.current&&(n.current.style.transitionDuration="0ms"),u(),a.current=window.setTimeout(()=>{n.current&&(n.current.style.transitionDuration="")},30)},p=E.useRef(null),f=E.useRef(null);return E.useEffect(()=>{if(u(),e)return p.current=new ResizeObserver(d),p.current.observe(e),r&&(f.current=new ResizeObserver(d),f.current.observe(r)),()=>{p.current?.disconnect(),f.current?.disconnect()}},[r,e]),E.useEffect(()=>{if(r){const g=b=>{AIe(b.target,r)&&(d(),c(!1))};return r.addEventListener("transitionend",g),()=>{r.removeEventListener("transitionend",g)}}},[r]),qq(()=>{M$e()!=="test"&&l(!0)},20,{autoInvoke:!0}),Vq(g=>{g.forEach(b=>{b.type==="attributes"&&b.attributeName==="dir"&&d()})},{attributes:!0,attributeFilter:["dir"]},()=>document.documentElement),{initialized:i,hidden:s}}var YY={root:"m_96b553a6"};const DIe=(e,{transitionDuration:r})=>({root:{"--transition-duration":typeof r=="number"?`${r}ms`:r}}),$w=lt((e,r)=>{const n=ze("FloatingIndicator",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,target:u,parent:d,transitionDuration:p,mod:f,displayAfterTransitionEnd:g,attributes:b,...x}=n,w=bt({name:"FloatingIndicator",classes:YY,props:n,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:b,vars:c,varsResolver:DIe}),k=E.useRef(null),{initialized:C,hidden:_}=NIe({target:u,parent:d,ref:k,displayAfterTransitionEnd:g}),T=Nr(r,k);return!u||!d?null:y.jsx(Se,{ref:T,mod:[{initialized:C,hidden:_},f],...w("root"),...x})});$w.displayName="@mantine/core/FloatingIndicator",$w.classes=YY;function WY({open:e,close:r,openDelay:n,closeDelay:o}){const a=E.useRef(-1),i=E.useRef(-1),l=()=>{window.clearTimeout(a.current),window.clearTimeout(i.current)},s=()=>{l(),n===0||n===void 0?e():a.current=window.setTimeout(e,n)},c=()=>{l(),o===0||o===void 0?r():i.current=window.setTimeout(r,o)};return E.useEffect(()=>l,[]),{openDropdown:s,closeDropdown:c}}function t7({style:e,size:r=16,...n}){return y.jsx("svg",{viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{...e,width:Ae(r),height:Ae(r),display:"block"},...n,children:y.jsx("path",{d:"M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})})}t7.displayName="@mantine/core/AccordionChevron";var GY={root:"m_66836ed3",wrapper:"m_a5d60502",body:"m_667c2793",title:"m_6a03f287",label:"m_698f4f23",icon:"m_667f2a6a",message:"m_7fa78076",closeButton:"m_87f54839"};const $Ie=(e,{radius:r,color:n,variant:o,autoContrast:a})=>{const i=e.variantColorResolver({color:n||e.primaryColor,theme:e,variant:o||"light",autoContrast:a});return{root:{"--alert-radius":r===void 0?void 0:bn(r),"--alert-bg":n||o?i.background:void 0,"--alert-color":i.color,"--alert-bd":n||o?i.border:void 0}}},Pw=lt((e,r)=>{const n=ze("Alert",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,radius:u,color:d,title:p,children:f,id:g,icon:b,withCloseButton:x,onClose:w,closeButtonLabel:k,variant:C,autoContrast:_,attributes:T,...R}=n,A=bt({name:"Alert",classes:GY,props:n,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:T,vars:c,varsResolver:$Ie}),D=Ta(g),N=p&&`${D}-title`||void 0,P=`${D}-body`;return y.jsx(Se,{id:D,...A("root",{variant:C}),variant:C,ref:r,...R,role:"alert","aria-describedby":P,"aria-labelledby":N,children:y.jsxs("div",{...A("wrapper"),children:[b&&y.jsx("div",{...A("icon"),children:b}),y.jsxs("div",{...A("body"),children:[p&&y.jsx("div",{...A("title"),"data-with-close-button":x||void 0,children:y.jsx("span",{id:N,...A("label"),children:p})}),f&&y.jsx("div",{id:P,...A("message"),"data-variant":C,children:f})]}),x&&y.jsx(Kd,{...A("closeButton"),onClick:w,variant:"transparent",size:16,iconSize:16,"aria-label":k,unstyled:s})]})})});Pw.classes=GY,Pw.displayName="@mantine/core/Alert";var XY={root:"m_b6d8b162"};function PIe(e){if(e==="start")return"start";if(e==="end"||e)return"end"}const OIe={inherit:!1},MIe=(e,{variant:r,lineClamp:n,gradient:o,size:a,color:i})=>({root:{"--text-fz":No(a),"--text-lh":ZDe(a),"--text-gradient":r==="gradient"?s9(o,e):void 0,"--text-line-clamp":typeof n=="number"?n.toString():void 0,"--text-color":i?Jo(i,e):void 0}}),wt=Xn((e,r)=>{const n=ze("Text",OIe,e),{lineClamp:o,truncate:a,inline:i,inherit:l,gradient:s,span:c,__staticSelector:u,vars:d,className:p,style:f,classNames:g,styles:b,unstyled:x,variant:w,mod:k,size:C,attributes:_,...T}=n,R=bt({name:["Text",u],props:n,classes:XY,className:p,style:f,classNames:g,styles:b,unstyled:x,attributes:_,vars:d,varsResolver:MIe});return y.jsx(Se,{...R("root",{focusable:!0}),ref:r,component:c?"span":"p",variant:w,mod:[{"data-truncate":PIe(a),"data-line-clamp":typeof o=="number","data-inline":i,"data-inherit":l},k],size:C,...T})});wt.classes=XY,wt.displayName="@mantine/core/Text";var KY={root:"m_849cf0da"};const IIe={underline:"hover"},r7=Xn((e,r)=>{const{underline:n,className:o,unstyled:a,mod:i,...l}=ze("Anchor",IIe,e);return y.jsx(wt,{component:"a",ref:r,className:Ji({[KY.root]:!a},o),...l,mod:[{underline:n},i],__staticSelector:"Anchor",unstyled:a})});r7.classes=KY,r7.displayName="@mantine/core/Anchor";var li={dropdown:"m_88b62a41",search:"m_985517d8",options:"m_b2821a6e",option:"m_92253aa5",empty:"m_2530cd1d",header:"m_858f94bd",footer:"m_82b967cb",group:"m_254f3e4f",groupLabel:"m_2bb2e9e5",chevron:"m_2943220b",optionsDropdownOption:"m_390b5f4",optionsDropdownCheckIcon:"m_8ee53fc2"};const LIe={error:null},zIe=(e,{size:r,color:n})=>({chevron:{"--combobox-chevron-size":sr(r,"combobox-chevron-size"),"--combobox-chevron-color":n?Jo(n,e):void 0}}),n7=lt((e,r)=>{const n=ze("ComboboxChevron",LIe,e),{size:o,error:a,style:i,className:l,classNames:s,styles:c,unstyled:u,vars:d,mod:p,...f}=n,g=bt({name:"ComboboxChevron",classes:li,props:n,style:i,className:l,classNames:s,styles:c,unstyled:u,vars:d,varsResolver:zIe,rootSelector:"chevron"});return y.jsx(Se,{component:"svg",...f,...g("chevron"),size:o,viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",mod:["combobox-chevron",{error:a},p],ref:r,children:y.jsx("path",{d:"M4.93179 5.43179C4.75605 5.60753 4.75605 5.89245 4.93179 6.06819C5.10753 6.24392 5.39245 6.24392 5.56819 6.06819L7.49999 4.13638L9.43179 6.06819C9.60753 6.24392 9.89245 6.24392 10.0682 6.06819C10.2439 5.89245 10.2439 5.60753 10.0682 5.43179L7.81819 3.18179C7.73379 3.0974 7.61933 3.04999 7.49999 3.04999C7.38064 3.04999 7.26618 3.0974 7.18179 3.18179L4.93179 5.43179ZM10.0682 9.56819C10.2439 9.39245 10.2439 9.10753 10.0682 8.93179C9.89245 8.75606 9.60753 8.75606 9.43179 8.93179L7.49999 10.8636L5.56819 8.93179C5.39245 8.75606 5.10753 8.75606 4.93179 8.93179C4.75605 9.10753 4.75605 9.39245 4.93179 9.56819L7.18179 11.8182C7.35753 11.9939 7.64245 11.9939 7.81819 11.8182L10.0682 9.56819Z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})})});n7.classes=li,n7.displayName="@mantine/core/ComboboxChevron";const[jIe,si]=ri("Combobox component was not found in tree"),ZY=E.forwardRef(({size:e,onMouseDown:r,onClick:n,onClear:o,...a},i)=>y.jsx(Na.ClearButton,{ref:i,tabIndex:-1,"aria-hidden":!0,...a,onMouseDown:l=>{l.preventDefault(),r?.(l)},onClick:l=>{o(),n?.(l)}}));ZY.displayName="@mantine/core/ComboboxClearButton";const Ow=lt((e,r)=>{const{classNames:n,styles:o,className:a,style:i,hidden:l,...s}=ze("ComboboxDropdown",null,e),c=si();return y.jsx(mr.Dropdown,{...s,ref:r,role:"presentation","data-hidden":l||void 0,...c.getStyles("dropdown",{className:a,style:i,classNames:n,styles:o})})});Ow.classes=li,Ow.displayName="@mantine/core/ComboboxDropdown";const BIe={refProp:"ref"},QY=lt((e,r)=>{const{children:n,refProp:o}=ze("ComboboxDropdownTarget",BIe,e);if(si(),!Qi(n))throw new Error("Combobox.DropdownTarget component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported");return y.jsx(mr.Target,{ref:r,refProp:o,children:n})});QY.displayName="@mantine/core/ComboboxDropdownTarget";const L0=lt((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:l,...s}=ze("ComboboxEmpty",null,e),c=si();return y.jsx(Se,{ref:r,...c.getStyles("empty",{className:o,classNames:n,styles:i,style:a}),...s})});L0.classes=li,L0.displayName="@mantine/core/ComboboxEmpty";function o7({onKeyDown:e,withKeyboardNavigation:r,withAriaAttributes:n,withExpandedAttribute:o,targetType:a,autoComplete:i}){const l=si(),[s,c]=E.useState(null),u=d=>{if(e?.(d),!l.readOnly&&r){if(d.nativeEvent.isComposing)return;if(d.nativeEvent.code==="ArrowDown"&&(d.preventDefault(),l.store.dropdownOpened?c(l.store.selectNextOption()):(l.store.openDropdown("keyboard"),c(l.store.selectActiveOption()),l.store.updateSelectedOptionIndex("selected",{scrollIntoView:!0}))),d.nativeEvent.code==="ArrowUp"&&(d.preventDefault(),l.store.dropdownOpened?c(l.store.selectPreviousOption()):(l.store.openDropdown("keyboard"),c(l.store.selectActiveOption()),l.store.updateSelectedOptionIndex("selected",{scrollIntoView:!0}))),d.nativeEvent.code==="Enter"||d.nativeEvent.code==="NumpadEnter"){if(d.nativeEvent.keyCode===229)return;const p=l.store.getSelectedOptionIndex();l.store.dropdownOpened&&p!==-1?(d.preventDefault(),l.store.clickSelectedOption()):a==="button"&&(d.preventDefault(),l.store.openDropdown("keyboard"))}d.key==="Escape"&&l.store.closeDropdown("keyboard"),d.nativeEvent.code==="Space"&&a==="button"&&(d.preventDefault(),l.store.toggleDropdown("keyboard"))}};return{...n?{"aria-haspopup":"listbox","aria-expanded":o?!!(l.store.listId&&l.store.dropdownOpened):void 0,"aria-controls":l.store.dropdownOpened&&l.store.listId?l.store.listId:void 0,"aria-activedescendant":l.store.dropdownOpened&&s||void 0,autoComplete:i,"data-expanded":l.store.dropdownOpened||void 0,"data-mantine-stop-propagation":l.store.dropdownOpened||void 0}:{},onKeyDown:u}}const FIe={refProp:"ref",targetType:"input",withKeyboardNavigation:!0,withAriaAttributes:!0,withExpandedAttribute:!1,autoComplete:"off"},JY=lt((e,r)=>{const{children:n,refProp:o,withKeyboardNavigation:a,withAriaAttributes:i,withExpandedAttribute:l,targetType:s,autoComplete:c,...u}=ze("ComboboxEventsTarget",FIe,e);if(!Qi(n))throw new Error("Combobox.EventsTarget component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported");const d=si(),p=o7({targetType:s,withAriaAttributes:i,withKeyboardNavigation:a,withExpandedAttribute:l,onKeyDown:n.props.onKeyDown,autoComplete:c});return E.cloneElement(n,{...p,...u,[o]:Nr(r,d.store.targetRef,Gx(n))})});JY.displayName="@mantine/core/ComboboxEventsTarget";const a7=lt((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:l,...s}=ze("ComboboxFooter",null,e),c=si();return y.jsx(Se,{ref:r,...c.getStyles("footer",{className:o,classNames:n,style:a,styles:i}),...s,onMouseDown:u=>{u.preventDefault()}})});a7.classes=li,a7.displayName="@mantine/core/ComboboxFooter";const i7=lt((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:l,children:s,label:c,id:u,...d}=ze("ComboboxGroup",null,e),p=si(),f=Ta(u);return y.jsxs(Se,{ref:r,role:"group","aria-labelledby":c?f:void 0,...p.getStyles("group",{className:o,classNames:n,style:a,styles:i}),...d,children:[c&&y.jsx("div",{id:f,...p.getStyles("groupLabel",{classNames:n,styles:i}),children:c}),s]})});i7.classes=li,i7.displayName="@mantine/core/ComboboxGroup";const l7=lt((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:l,...s}=ze("ComboboxHeader",null,e),c=si();return y.jsx(Se,{ref:r,...c.getStyles("header",{className:o,classNames:n,style:a,styles:i}),...s,onMouseDown:u=>{u.preventDefault()}})});l7.classes=li,l7.displayName="@mantine/core/ComboboxHeader";function eW({value:e,valuesDivider:r=",",...n}){return y.jsx("input",{type:"hidden",value:Array.isArray(e)?e.join(r):e||"",...n})}eW.displayName="@mantine/core/ComboboxHiddenInput";const z0=lt((e,r)=>{const n=ze("ComboboxOption",null,e),{classNames:o,className:a,style:i,styles:l,vars:s,onClick:c,id:u,active:d,onMouseDown:p,onMouseOver:f,disabled:g,selected:b,mod:x,...w}=n,k=si(),C=E.useId(),_=u||C;return y.jsx(Se,{...k.getStyles("option",{className:a,classNames:o,styles:l,style:i}),...w,ref:r,id:_,mod:["combobox-option",{"combobox-active":d,"combobox-disabled":g,"combobox-selected":b},x],role:"option",onClick:T=>{g?T.preventDefault():(k.onOptionSubmit?.(n.value,n),c?.(T))},onMouseDown:T=>{T.preventDefault(),p?.(T)},onMouseOver:T=>{k.resetSelectionOnOptionHover&&k.store.resetSelectedOption(),f?.(T)}})});z0.classes=li,z0.displayName="@mantine/core/ComboboxOption";const Mw=lt((e,r)=>{const n=ze("ComboboxOptions",null,e),{classNames:o,className:a,style:i,styles:l,id:s,onMouseDown:c,labelledBy:u,...d}=n,p=si(),f=Ta(s);return E.useEffect(()=>{p.store.setListId(f)},[f]),y.jsx(Se,{ref:r,...p.getStyles("options",{className:a,style:i,classNames:o,styles:l}),...d,id:f,role:"listbox","aria-labelledby":u,onMouseDown:g=>{g.preventDefault(),c?.(g)}})});Mw.classes=li,Mw.displayName="@mantine/core/ComboboxOptions";const HIe={withAriaAttributes:!0,withKeyboardNavigation:!0},s7=lt((e,r)=>{const n=ze("ComboboxSearch",HIe,e),{classNames:o,styles:a,unstyled:i,vars:l,withAriaAttributes:s,onKeyDown:c,withKeyboardNavigation:u,size:d,...p}=n,f=si(),g=f.getStyles("search"),b=o7({targetType:"input",withAriaAttributes:s,withKeyboardNavigation:u,withExpandedAttribute:!1,onKeyDown:c,autoComplete:"off"});return y.jsx(Na,{ref:Nr(r,f.store.searchRef),classNames:[{input:g.className},o],styles:[{input:g.style},a],size:d||f.size,...b,...p,__staticSelector:"Combobox"})});s7.classes=li,s7.displayName="@mantine/core/ComboboxSearch";const UIe={refProp:"ref",targetType:"input",withKeyboardNavigation:!0,withAriaAttributes:!0,withExpandedAttribute:!1,autoComplete:"off"},c7=lt((e,r)=>{const{children:n,refProp:o,withKeyboardNavigation:a,withAriaAttributes:i,withExpandedAttribute:l,targetType:s,autoComplete:c,...u}=ze("ComboboxTarget",UIe,e);if(!Qi(n))throw new Error("Combobox.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported");const d=si(),p=o7({targetType:s,withAriaAttributes:i,withKeyboardNavigation:a,withExpandedAttribute:l,onKeyDown:n.props.onKeyDown,autoComplete:c}),f=E.cloneElement(n,{...p,...u});return y.jsx(mr.Target,{ref:Nr(r,d.store.targetRef),children:f})});c7.displayName="@mantine/core/ComboboxTarget";function qIe(e,r,n){for(let o=e-1;o>=0;o-=1)if(!r[o].hasAttribute("data-combobox-disabled"))return o;if(n){for(let o=r.length-1;o>-1;o-=1)if(!r[o].hasAttribute("data-combobox-disabled"))return o}return e}function VIe(e,r,n){for(let o=e+1;o{s||(c(!0),a?.(I))},[c,a,s]),k=E.useCallback((I="unknown")=>{s&&(c(!1),o?.(I))},[c,o,s]),C=E.useCallback((I="unknown")=>{s?k(I):w(I)},[k,w,s]),_=E.useCallback(()=>{const I=document.querySelector(`#${u.current} [data-combobox-selected]`);I?.removeAttribute("data-combobox-selected"),I?.removeAttribute("aria-selected")},[]),T=E.useCallback(I=>{const U=document.getElementById(u.current)?.querySelectorAll("[data-combobox-option]");if(!U)return null;const V=I>=U.length?0:I<0?U.length-1:I;return d.current=V,U?.[V]&&!U[V].hasAttribute("data-combobox-disabled")?(_(),U[V].setAttribute("data-combobox-selected","true"),U[V].setAttribute("aria-selected","true"),U[V].scrollIntoView({block:"nearest",behavior:l}),U[V].id):null},[l,_]),R=E.useCallback(()=>{const I=document.querySelector(`#${u.current} [data-combobox-active]`);if(I){const U=document.querySelectorAll(`#${u.current} [data-combobox-option]`),V=Array.from(U).findIndex(G=>G===I);return T(V)}return T(0)},[T]),A=E.useCallback(()=>T(VIe(d.current,document.querySelectorAll(`#${u.current} [data-combobox-option]`),i)),[T,i]),D=E.useCallback(()=>T(qIe(d.current,document.querySelectorAll(`#${u.current} [data-combobox-option]`),i)),[T,i]),N=E.useCallback(()=>T(YIe(document.querySelectorAll(`#${u.current} [data-combobox-option]`))),[T]),P=E.useCallback((I="selected",U)=>{x.current=window.setTimeout(()=>{const V=document.querySelectorAll(`#${u.current} [data-combobox-option]`),G=Array.from(V).findIndex(F=>F.hasAttribute(`data-combobox-${I}`));d.current=G,U?.scrollIntoView&&V[G]?.scrollIntoView({block:"nearest",behavior:l})},0)},[]),O=E.useCallback(()=>{d.current=-1,_()},[_]),B=E.useCallback(()=>{document.querySelectorAll(`#${u.current} [data-combobox-option]`)?.[d.current]?.click()},[]),L=E.useCallback(I=>{u.current=I},[]),Y=E.useCallback(()=>{g.current=window.setTimeout(()=>p.current?.focus(),0)},[]),M=E.useCallback(()=>{b.current=window.setTimeout(()=>f.current?.focus(),0)},[]),q=E.useCallback(()=>d.current,[]);return E.useEffect(()=>()=>{window.clearTimeout(g.current),window.clearTimeout(b.current),window.clearTimeout(x.current)},[]),{dropdownOpened:s,openDropdown:w,closeDropdown:k,toggleDropdown:C,selectedOptionIndex:d.current,getSelectedOptionIndex:q,selectOption:T,selectFirstOption:N,selectActiveOption:R,selectNextOption:A,selectPreviousOption:D,resetSelectedOption:O,updateSelectedOptionIndex:P,listId:u.current,setListId:L,clickSelectedOption:B,searchRef:p,focusSearchInput:Y,targetRef:f,focusTarget:M}}const WIe={keepMounted:!0,withinPortal:!0,resetSelectionOnOptionHover:!1,width:"target",transitionProps:{transition:"fade",duration:0},size:"sm"},GIe=(e,{size:r,dropdownPadding:n})=>({options:{"--combobox-option-fz":No(r),"--combobox-option-padding":sr(r,"combobox-option-padding")},dropdown:{"--combobox-padding":n===void 0?void 0:Ae(n),"--combobox-option-fz":No(r),"--combobox-option-padding":sr(r,"combobox-option-padding")}});function Kn(e){const r=ze("Combobox",WIe,e),{classNames:n,styles:o,unstyled:a,children:i,store:l,vars:s,onOptionSubmit:c,onClose:u,size:d,dropdownPadding:p,resetSelectionOnOptionHover:f,__staticSelector:g,readOnly:b,attributes:x,...w}=r,k=tW(),C=l||k,_=bt({name:g||"Combobox",classes:li,props:r,classNames:n,styles:o,unstyled:a,attributes:x,vars:s,varsResolver:GIe}),T=()=>{u?.(),C.closeDropdown()};return y.jsx(jIe,{value:{getStyles:_,store:C,onOptionSubmit:c,size:d,resetSelectionOnOptionHover:f,readOnly:b},children:y.jsx(mr,{opened:C.dropdownOpened,preventPositionChangeWhenVisible:!0,...w,onChange:R=>!R&&T(),withRoles:!1,unstyled:a,children:i})})}const XIe=e=>e;Kn.extend=XIe,Kn.classes=li,Kn.displayName="@mantine/core/Combobox",Kn.Target=c7,Kn.Dropdown=Ow,Kn.Options=Mw,Kn.Option=z0,Kn.Search=s7,Kn.Empty=L0,Kn.Chevron=n7,Kn.Footer=a7,Kn.Header=l7,Kn.EventsTarget=JY,Kn.DropdownTarget=QY,Kn.Group=i7,Kn.ClearButton=ZY,Kn.HiddenInput=eW;function rW({size:e,style:r,...n}){const o=e!==void 0?{width:Ae(e),height:Ae(e),...r}:r;return y.jsx("svg",{viewBox:"0 0 10 7",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:o,"aria-hidden":!0,...n,children:y.jsx("path",{d:"M4 4.586L1.707 2.293A1 1 0 1 0 .293 3.707l3 3a.997.997 0 0 0 1.414 0l5-5A1 1 0 1 0 8.293.293L4 4.586z",fill:"currentColor",fillRule:"evenodd",clipRule:"evenodd"})})}var nW={root:"m_347db0ec","root--dot":"m_fbd81e3d",label:"m_5add502a",section:"m_91fdda9b"};const KIe=(e,{radius:r,color:n,gradient:o,variant:a,size:i,autoContrast:l})=>{const s=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:l});return{root:{"--badge-height":sr(i,"badge-height"),"--badge-padding-x":sr(i,"badge-padding-x"),"--badge-fz":sr(i,"badge-fz"),"--badge-radius":r===void 0?void 0:bn(r),"--badge-bg":n||a?s.background:void 0,"--badge-color":n||a?s.color:void 0,"--badge-bd":n||a?s.border:void 0,"--badge-dot-color":a==="dot"?Jo(n,e):void 0}}},Xs=Xn((e,r)=>{const n=ze("Badge",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,radius:u,color:d,gradient:p,leftSection:f,rightSection:g,children:b,variant:x,fullWidth:w,autoContrast:k,circle:C,mod:_,attributes:T,...R}=n,A=bt({name:"Badge",props:n,classes:nW,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:T,vars:c,varsResolver:KIe});return y.jsxs(Se,{variant:x,mod:[{block:w,circle:C,"with-right-section":!!g,"with-left-section":!!f},_],...A("root",{variant:x}),ref:r,...R,children:[f&&y.jsx("span",{...A("section"),"data-position":"left",children:f}),y.jsx("span",{...A("label"),children:b}),g&&y.jsx("span",{...A("section"),"data-position":"right",children:g})]})});Xs.classes=nW,Xs.displayName="@mantine/core/Badge";var oW={root:"m_8b3717df",breadcrumb:"m_f678d540",separator:"m_3b8f2208"};const ZIe={separator:"/"},QIe=(e,{separatorMargin:r})=>({root:{"--bc-separator-margin":Us(r)}}),Iw=lt((e,r)=>{const n=ze("Breadcrumbs",ZIe,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,children:u,separator:d,separatorMargin:p,attributes:f,...g}=n,b=bt({name:"Breadcrumbs",classes:oW,props:n,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:f,vars:c,varsResolver:QIe}),x=E.Children.toArray(u).reduce((w,k,C,_)=>{const T=Qi(k)?E.cloneElement(k,{...b("breadcrumb",{className:k.props?.className}),key:C}):E.createElement("div",{...b("breadcrumb"),key:C},k);return w.push(T),C!==_.length-1&&w.push(E.createElement(Se,{...b("separator"),key:`separator-${C}`},d)),w},[]);return y.jsx(Se,{ref:r,...b("root"),...g,children:x})});Iw.classes=oW,Iw.displayName="@mantine/core/Breadcrumbs";var Mf={root:"m_77c9d27d",inner:"m_80f1301b",label:"m_811560b9",section:"m_a74036a",loader:"m_a25b86ee",group:"m_80d6d844",groupSection:"m_70be2a01"};const aW={orientation:"horizontal"},JIe=(e,{borderWidth:r})=>({group:{"--button-border-width":Ae(r)}}),u7=lt((e,r)=>{const n=ze("ButtonGroup",aW,e),{className:o,style:a,classNames:i,styles:l,unstyled:s,orientation:c,vars:u,borderWidth:d,variant:p,mod:f,attributes:g,...b}=ze("ButtonGroup",aW,e),x=bt({name:"ButtonGroup",props:n,classes:Mf,className:o,style:a,classNames:i,styles:l,unstyled:s,attributes:g,vars:u,varsResolver:JIe,rootSelector:"group"});return y.jsx(Se,{...x("group"),ref:r,variant:p,mod:[{"data-orientation":c},f],role:"group",...b})});u7.classes=Mf,u7.displayName="@mantine/core/ButtonGroup";const eLe=(e,{radius:r,color:n,gradient:o,variant:a,autoContrast:i,size:l})=>{const s=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:i});return{groupSection:{"--section-height":sr(l,"section-height"),"--section-padding-x":sr(l,"section-padding-x"),"--section-fz":l?.includes("compact")?No(l.replace("compact-","")):No(l),"--section-radius":r===void 0?void 0:bn(r),"--section-bg":n||a?s.background:void 0,"--section-color":s.color,"--section-bd":n||a?s.border:void 0}}},d7=lt((e,r)=>{const n=ze("ButtonGroupSection",null,e),{className:o,style:a,classNames:i,styles:l,unstyled:s,vars:c,variant:u,gradient:d,radius:p,autoContrast:f,attributes:g,...b}=n,x=bt({name:"ButtonGroupSection",props:n,classes:Mf,className:o,style:a,classNames:i,styles:l,unstyled:s,attributes:g,vars:c,varsResolver:eLe,rootSelector:"groupSection"});return y.jsx(Se,{...x("groupSection"),ref:r,variant:u,...b})});d7.classes=Mf,d7.displayName="@mantine/core/ButtonGroupSection";const tLe={in:{opacity:1,transform:`translate(-50%, calc(-50% + ${Ae(1)}))`},out:{opacity:0,transform:"translate(-50%, -200%)"},common:{transformOrigin:"center"},transitionProperty:"transform, opacity"},rLe=(e,{radius:r,color:n,gradient:o,variant:a,size:i,justify:l,autoContrast:s})=>{const c=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:s});return{root:{"--button-justify":l,"--button-height":sr(i,"button-height"),"--button-padding-x":sr(i,"button-padding-x"),"--button-fz":i?.includes("compact")?No(i.replace("compact-","")):No(i),"--button-radius":r===void 0?void 0:bn(r),"--button-bg":n||a?c.background:void 0,"--button-hover":n||a?c.hover:void 0,"--button-color":c.color,"--button-bd":n||a?c.border:void 0,"--button-hover-color":n||a?c.hoverColor:void 0}}},Zn=Xn((e,r)=>{const n=ze("Button",null,e),{style:o,vars:a,className:i,color:l,disabled:s,children:c,leftSection:u,rightSection:d,fullWidth:p,variant:f,radius:g,loading:b,loaderProps:x,gradient:w,classNames:k,styles:C,unstyled:_,"data-disabled":T,autoContrast:R,mod:A,attributes:D,...N}=n,P=bt({name:"Button",props:n,classes:Mf,className:i,style:o,classNames:k,styles:C,unstyled:_,attributes:D,vars:a,varsResolver:rLe}),O=!!u,B=!!d;return y.jsxs($r,{ref:r,...P("root",{active:!s&&!b&&!T}),unstyled:_,variant:f,disabled:s||b,mod:[{disabled:s||T,loading:b,block:p,"with-left-section":O,"with-right-section":B},A],...N,children:[typeof b=="boolean"&&y.jsx(hu,{mounted:b,transition:tLe,duration:150,children:L=>y.jsx(Se,{component:"span",...P("loader",{style:L}),"aria-hidden":!0,children:y.jsx($f,{color:"var(--button-color)",size:"calc(var(--button-height) / 1.8)",...x})})}),y.jsxs("span",{...P("inner"),children:[u&&y.jsx(Se,{component:"span",...P("section"),mod:{position:"left"},children:u}),y.jsx(Se,{component:"span",mod:{loading:b},...P("label"),children:c}),d&&y.jsx(Se,{component:"span",...P("section"),mod:{position:"right"},children:d})]})]})});Zn.classes=Mf,Zn.displayName="@mantine/core/Button",Zn.Group=u7,Zn.GroupSection=d7;const[nLe,oLe]=ri("Card component was not found in tree");var p7={root:"m_e615b15f",section:"m_599a2148"};const Lw=Xn((e,r)=>{const n=ze("CardSection",null,e),{classNames:o,className:a,style:i,styles:l,vars:s,withBorder:c,inheritPadding:u,mod:d,...p}=n,f=oLe();return y.jsx(Se,{ref:r,mod:[{"with-border":c,"inherit-padding":u},d],...f.getStyles("section",{className:a,style:i,styles:l,classNames:o}),...p})});Lw.classes=p7,Lw.displayName="@mantine/core/CardSection";const aLe=(e,{padding:r})=>({root:{"--card-padding":Us(r)}}),zw=Xn((e,r)=>{const n=ze("Card",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,children:u,padding:d,attributes:p,...f}=n,g=bt({name:"Card",props:n,classes:p7,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:p,vars:c,varsResolver:aLe}),b=E.Children.toArray(u),x=b.map((w,k)=>typeof w=="object"&&w&&"type"in w&&w.type===Lw?E.cloneElement(w,{"data-first-section":k===0||void 0,"data-last-section":k===b.length-1||void 0}):w);return y.jsx(nLe,{value:{getStyles:g},children:y.jsx(Nf,{ref:r,unstyled:s,...g("root"),...f,children:x})})});zw.classes=p7,zw.displayName="@mantine/core/Card",zw.Section=Lw;var iW={root:"m_b183c0a2"};const iLe=(e,{color:r})=>({root:{"--code-bg":r?Jo(r,e):void 0}}),jw=lt((e,r)=>{const n=ze("Code",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,color:u,block:d,variant:p,mod:f,attributes:g,...b}=n,x=bt({name:"Code",props:n,classes:iW,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:g,vars:c,varsResolver:iLe});return y.jsx(Se,{component:d?"pre":"code",variant:p,ref:r,mod:[{block:d},f],...x("root"),...b,dir:"ltr"})});jw.classes=iW,jw.displayName="@mantine/core/Code";var lW={root:"m_de3d2490",colorOverlay:"m_862f3d1b",shadowOverlay:"m_98ae7f22",alphaOverlay:"m_95709ac0",childrenOverlay:"m_93e74e3"};const sW={withShadow:!0},lLe=(e,{radius:r,size:n})=>({root:{"--cs-radius":r===void 0?void 0:bn(r),"--cs-size":Ae(n)}}),j0=Xn((e,r)=>{const n=ze("ColorSwatch",sW,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,color:u,size:d,radius:p,withShadow:f,children:g,variant:b,attributes:x,...w}=ze("ColorSwatch",sW,n),k=bt({name:"ColorSwatch",props:n,classes:lW,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:x,vars:c,varsResolver:lLe});return y.jsxs(Se,{ref:r,variant:b,size:d,...k("root",{focusable:!0}),...w,children:[y.jsx("span",{...k("alphaOverlay")}),f&&y.jsx("span",{...k("shadowOverlay")}),y.jsx("span",{...k("colorOverlay",{style:{backgroundColor:u}})}),y.jsx("span",{...k("childrenOverlay"),children:g})]})});j0.classes=lW,j0.displayName="@mantine/core/ColorSwatch";const sLe={timeout:1e3};function cW(e){const{children:r,timeout:n,value:o,...a}=ze("CopyButton",sLe,e),i=r$e({timeout:n});return y.jsx(y.Fragment,{children:r({copy:()=>i.copy(o),copied:i.copied,...a})})}cW.displayName="@mantine/core/CopyButton";var uW={root:"m_3eebeb36",label:"m_9e365f20"};const cLe={orientation:"horizontal"},uLe=(e,{color:r,variant:n,size:o})=>({root:{"--divider-color":r?Jo(r,e):void 0,"--divider-border-style":n,"--divider-size":sr(o,"divider-size")}}),If=lt((e,r)=>{const n=ze("Divider",cLe,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,color:u,orientation:d,label:p,labelPosition:f,mod:g,attributes:b,...x}=n,w=bt({name:"Divider",classes:uW,props:n,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:b,vars:c,varsResolver:uLe});return y.jsx(Se,{ref:r,mod:[{orientation:d,"with-label":!!p},g],...w("root"),...x,role:"separator",children:p&&y.jsx(Se,{component:"span",mod:{position:f},...w("label"),children:p})})});If.classes=uW,If.displayName="@mantine/core/Divider";const[dW,pW]=ri("Grid component was not found in tree"),h7=(e,r)=>e==="content"?"auto":e==="auto"?"0rem":e?`${100/(r/e)}%`:void 0,hW=(e,r,n)=>n||e==="auto"?"100%":e==="content"?"unset":h7(e,r),fW=(e,r)=>{if(e)return e==="auto"||r?"1":"auto"},mW=(e,r)=>e===0?"0":e?`${100/(r/e)}%`:void 0;function dLe({span:e,order:r,offset:n,selector:o}){const a=po(),i=pW(),l=i.breakpoints||a.breakpoints,s=R0(e)===void 0?12:R0(e),c=yf({"--col-order":R0(r)?.toString(),"--col-flex-grow":fW(s,i.grow),"--col-flex-basis":h7(s,i.columns),"--col-width":s==="content"?"auto":void 0,"--col-max-width":hW(s,i.columns,i.grow),"--col-offset":mW(R0(n),i.columns)}),u=Ao(l).reduce((p,f)=>(p[f]||(p[f]={}),typeof r=="object"&&r[f]!==void 0&&(p[f]["--col-order"]=r[f]?.toString()),typeof e=="object"&&e[f]!==void 0&&(p[f]["--col-flex-grow"]=fW(e[f],i.grow),p[f]["--col-flex-basis"]=h7(e[f],i.columns),p[f]["--col-width"]=e[f]==="content"?"auto":void 0,p[f]["--col-max-width"]=hW(e[f],i.columns,i.grow)),typeof n=="object"&&n[f]!==void 0&&(p[f]["--col-offset"]=mW(n[f],i.columns)),p),{}),d=Nq(Ao(u),l).filter(p=>Ao(u[p.value]).length>0).map(p=>({query:i.type==="container"?`mantine-grid (min-width: ${l[p.value]})`:`(min-width: ${l[p.value]})`,styles:u[p.value]}));return y.jsx(tw,{styles:c,media:i.type==="container"?void 0:d,container:i.type==="container"?d:void 0,selector:o})}var f7={container:"m_8478a6da",root:"m_410352e9",inner:"m_dee7bd2f",col:"m_96bdd299"};const pLe={span:12},Zd=lt((e,r)=>{const n=ze("GridCol",pLe,e),{classNames:o,className:a,style:i,styles:l,vars:s,span:c,order:u,offset:d,...p}=n,f=pW(),g=rw();return y.jsxs(y.Fragment,{children:[y.jsx(dLe,{selector:`.${g}`,span:c,order:u,offset:d}),y.jsx(Se,{ref:r,...f.getStyles("col",{className:Ji(a,g),style:i,classNames:o,styles:l}),...p})]})});Zd.classes=f7,Zd.displayName="@mantine/core/GridCol";function gW({gutter:e,selector:r,breakpoints:n,type:o}){const a=po(),i=n||a.breakpoints,l=yf({"--grid-gutter":Us(R0(e))}),s=Ao(i).reduce((u,d)=>(u[d]||(u[d]={}),typeof e=="object"&&e[d]!==void 0&&(u[d]["--grid-gutter"]=Us(e[d])),u),{}),c=Nq(Ao(s),i).filter(u=>Ao(s[u.value]).length>0).map(u=>({query:o==="container"?`mantine-grid (min-width: ${i[u.value]})`:`(min-width: ${i[u.value]})`,styles:s[u.value]}));return y.jsx(tw,{styles:l,media:o==="container"?void 0:c,container:o==="container"?c:void 0,selector:r})}const hLe={gutter:"md",grow:!1,columns:12},fLe=(e,{justify:r,align:n,overflow:o})=>({root:{"--grid-justify":r,"--grid-align":n,"--grid-overflow":o}}),B0=lt((e,r)=>{const n=ze("Grid",hLe,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,grow:u,gutter:d,columns:p,align:f,justify:g,children:b,breakpoints:x,type:w,attributes:k,...C}=n,_=bt({name:"Grid",classes:f7,props:n,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:k,vars:c,varsResolver:fLe}),T=rw();return w==="container"&&x?y.jsxs(dW,{value:{getStyles:_,grow:u,columns:p,breakpoints:x,type:w},children:[y.jsx(gW,{selector:`.${T}`,...n}),y.jsx("div",{..._("container"),children:y.jsx(Se,{ref:r,..._("root",{className:T}),...C,children:y.jsx("div",{..._("inner"),children:b})})})]}):y.jsxs(dW,{value:{getStyles:_,grow:u,columns:p,breakpoints:x,type:w},children:[y.jsx(gW,{selector:`.${T}`,...n}),y.jsx(Se,{ref:r,..._("root",{className:T}),...C,children:y.jsx("div",{..._("inner"),children:b})})]})});B0.classes=f7,B0.displayName="@mantine/core/Grid",B0.Col=Zd;function yW({color:e,theme:r,defaultShade:n}){const o=uu({color:e,theme:r});return o.isThemeColor?o.shade===void 0?`var(--mantine-color-${o.color}-${n})`:`var(${o.variable})`:e}var bW={root:"m_bcb3f3c2"};const mLe={color:"yellow"},gLe=(e,{color:r})=>({root:{"--mark-bg-dark":yW({color:r,theme:e,defaultShade:5}),"--mark-bg-light":yW({color:r,theme:e,defaultShade:2})}}),m7=lt((e,r)=>{const n=ze("Mark",mLe,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,color:u,variant:d,attributes:p,...f}=n,g=bt({name:"Mark",props:n,className:a,style:i,classes:bW,classNames:o,styles:l,unstyled:s,attributes:p,vars:c,varsResolver:gLe});return y.jsx(Se,{component:"mark",ref:r,variant:d,...g("root"),...f})});m7.classes=bW,m7.displayName="@mantine/core/Mark";function vW(e){return e.replace(/[-[\]{}()*+?.,\\^$|#]/g,"\\$&")}function yLe(e,r){if(r==null)return[{chunk:e,highlighted:!1}];const n=Array.isArray(r)?r.map(vW):vW(r);if(!(Array.isArray(n)?n.filter(i=>i.trim().length>0).length>0:n.trim()!==""))return[{chunk:e,highlighted:!1}];const o=typeof n=="string"?n.trim():n.filter(i=>i.trim().length!==0).map(i=>i.trim()).sort((i,l)=>l.length-i.length).join("|"),a=new RegExp(`(${o})`,"gi");return e.split(a).map(i=>({chunk:i,highlighted:a.test(i)})).filter(({chunk:i})=>i)}const Ks=Xn((e,r)=>{const{unstyled:n,children:o,highlight:a,highlightStyles:i,color:l,...s}=ze("Highlight",null,e),c=yLe(o,a);return y.jsx(wt,{unstyled:n,ref:r,...s,__staticSelector:"Highlight",children:c.map(({chunk:u,highlighted:d},p)=>d?y.jsx(m7,{unstyled:n,color:l,style:i,"data-highlight":u,children:u},p):y.jsx("span",{children:u},p))})});Ks.classes=wt.classes,Ks.displayName="@mantine/core/Highlight";const[bLe,xW]=ri("HoverCard component was not found in the tree"),wW=E.createContext(!1),vLe=wW.Provider,g7=()=>E.useContext(wW);function y7(e){const{children:r,onMouseEnter:n,onMouseLeave:o,...a}=ze("HoverCardDropdown",null,e),i=xW();if(g7()&&i.getFloatingProps&&i.floating){const c=i.getFloatingProps();return y.jsx(mr.Dropdown,{ref:i.floating,...c,onMouseEnter:vn(n,c.onMouseEnter),onMouseLeave:vn(o,c.onMouseLeave),...a,children:r})}const l=vn(n,i.openDropdown),s=vn(o,i.closeDropdown);return y.jsx(mr.Dropdown,{onMouseEnter:l,onMouseLeave:s,...a,children:r})}y7.displayName="@mantine/core/HoverCardDropdown";const xLe={openDelay:0,closeDelay:0};function b7(e){const{openDelay:r,closeDelay:n,children:o}=ze("HoverCardGroup",xLe,e);return y.jsx(vLe,{value:!0,children:y.jsx(aY,{delay:{open:r,close:n},children:o})})}b7.displayName="@mantine/core/HoverCardGroup",b7.extend=e=>e;const wLe={refProp:"ref"},v7=E.forwardRef((e,r)=>{const{children:n,refProp:o,eventPropsWrapperName:a,...i}=ze("HoverCardTarget",wLe,e);if(!Qi(n))throw new Error("HoverCard.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported");const l=xW();if(g7()&&l.getReferenceProps&&l.reference){const d=l.getReferenceProps();return y.jsx(mr.Target,{refProp:o,ref:r,...i,children:E.cloneElement(n,a?{[a]:{...d,ref:l.reference}}:{...d,ref:l.reference})})}const s=vn(n.props.onMouseEnter,l.openDropdown),c=vn(n.props.onMouseLeave,l.closeDropdown),u={onMouseEnter:s,onMouseLeave:c};return y.jsx(mr.Target,{refProp:o,ref:r,...i,children:E.cloneElement(n,a?{[a]:u}:u)})});v7.displayName="@mantine/core/HoverCardTarget";function kLe(e){const[r,n]=E.useState(e.defaultOpened),o=typeof e.opened=="boolean"?e.opened:r,a=g7(),i=Ta(),l=E.useRef(-1),s=E.useRef(-1),c=E.useCallback(()=>{window.clearTimeout(l.current),window.clearTimeout(s.current)},[]),u=E.useCallback(C=>{n(C),C?(g(i),e.onOpen?.()):e.onClose?.()},[i,e.onOpen,e.onClose]),{context:d,refs:p}=xw({open:o,onOpenChange:u}),{delay:f,setCurrentId:g}=iY(d,{id:i}),{getReferenceProps:b,getFloatingProps:x}=cY([nY(d,{enabled:!0,delay:a?f:{open:e.openDelay,close:e.closeDelay}}),uY(d,{role:"dialog"}),sY(d,{enabled:a})]),w=E.useCallback(()=>{a||(c(),e.openDelay===0||e.openDelay===void 0?u(!0):l.current=window.setTimeout(()=>u(!0),e.openDelay))},[a,c,e.openDelay,u]),k=E.useCallback(()=>{a||(c(),e.closeDelay===0||e.closeDelay===void 0?u(!1):s.current=window.setTimeout(()=>u(!1),e.closeDelay))},[a,c,e.closeDelay,u]);return E.useEffect(()=>()=>c(),[c]),{opened:o,reference:p.setReference,floating:p.setFloating,getReferenceProps:b,getFloatingProps:x,openDropdown:w,closeDropdown:k}}const _Le={openDelay:0,closeDelay:150,initiallyOpened:!1};function Lf(e){const{children:r,onOpen:n,onClose:o,openDelay:a,closeDelay:i,initiallyOpened:l,...s}=ze("HoverCard",_Le,e),c=kLe({openDelay:a,closeDelay:i,defaultOpened:l,onOpen:n,onClose:o});return y.jsx(bLe,{value:{openDropdown:c.openDropdown,closeDropdown:c.closeDropdown,getReferenceProps:c.getReferenceProps,getFloatingProps:c.getFloatingProps,reference:c.reference,floating:c.floating},children:y.jsx(mr,{...s,opened:c.opened,__staticSelector:"HoverCard",children:r})})}Lf.displayName="@mantine/core/HoverCard",Lf.Target=v7,Lf.Dropdown=y7,Lf.Group=b7,Lf.extend=e=>e;var ELe=E.useLayoutEffect;const[SLe,mu]=ri("Menu component was not found in the tree");var gu={dropdown:"m_dc9b7c9f",label:"m_9bfac126",divider:"m_efdf90cb",item:"m_99ac2aa1",itemLabel:"m_5476e0d3",itemSection:"m_8b75e504",chevron:"m_b85b0bed"};const x7=lt((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:l,...s}=ze("MenuDivider",null,e),c=mu();return y.jsx(Se,{ref:r,...c.getStyles("divider",{className:o,style:a,styles:i,classNames:n}),...s})});x7.classes=gu,x7.displayName="@mantine/core/MenuDivider";const F0=lt((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:l,onMouseEnter:s,onMouseLeave:c,onKeyDown:u,children:d,...p}=ze("MenuDropdown",null,e),f=E.useRef(null),g=mu(),b=vn(u,k=>{(k.key==="ArrowUp"||k.key==="ArrowDown")&&(k.preventDefault(),f.current?.querySelectorAll("[data-menu-item]:not(:disabled)")[0]?.focus())}),x=vn(s,()=>(g.trigger==="hover"||g.trigger==="click-hover")&&g.openDropdown()),w=vn(c,()=>(g.trigger==="hover"||g.trigger==="click-hover")&&g.closeDropdown());return y.jsxs(mr.Dropdown,{...p,onMouseEnter:x,onMouseLeave:w,role:"menu","aria-orientation":"vertical",ref:Nr(r,f),...g.getStyles("dropdown",{className:o,style:a,styles:i,classNames:n,withStaticClass:!1}),tabIndex:-1,"data-menu-dropdown":!0,onKeyDown:b,children:[g.withInitialFocusPlaceholder&&y.jsx("div",{tabIndex:-1,"data-autofocus":!0,"data-mantine-stop-propagation":!0,style:{outline:0}}),d]})});F0.classes=gu,F0.displayName="@mantine/core/MenuDropdown";const[CLe,Bw]=C0(),H0=Xn((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:l,color:s,closeMenuOnClick:c,leftSection:u,rightSection:d,children:p,disabled:f,"data-disabled":g,...b}=ze("MenuItem",null,e),x=mu(),w=Bw(),k=po(),{dir:C}=du(),_=E.useRef(null),T=b,R=vn(T.onClick,()=>{g||(typeof c=="boolean"?c&&x.closeDropdownImmediately():x.closeOnItemClick&&x.closeDropdownImmediately())}),A=s?k.variantColorResolver({color:s,theme:k,variant:"light"}):void 0,D=s?uu({color:s,theme:k}):null,N=vn(T.onKeyDown,P=>{P.key==="ArrowLeft"&&w&&(w.close(),w.focusParentItem())});return y.jsxs($r,{onMouseDown:P=>P.preventDefault(),...b,unstyled:x.unstyled,tabIndex:x.menuItemTabIndex,...x.getStyles("item",{className:o,style:a,styles:i,classNames:n}),ref:Nr(_,r),role:"menuitem",disabled:f,"data-menu-item":!0,"data-disabled":f||g||void 0,"data-mantine-stop-propagation":!0,onClick:R,onKeyDown:T0({siblingSelector:"[data-menu-item]:not([data-disabled])",parentSelector:"[data-menu-dropdown]",activateOnFocus:!1,loop:x.loop,dir:C,orientation:"vertical",onKeyDown:N}),__vars:{"--menu-item-color":D?.isThemeColor&&D?.shade===void 0?`var(--mantine-color-${D.color}-6)`:A?.color,"--menu-item-hover":A?.hover},children:[u&&y.jsx("div",{...x.getStyles("itemSection",{styles:i,classNames:n}),"data-position":"left",children:u}),p&&y.jsx("div",{...x.getStyles("itemLabel",{styles:i,classNames:n}),children:p}),d&&y.jsx("div",{...x.getStyles("itemSection",{styles:i,classNames:n}),"data-position":"right",children:d})]})});H0.classes=gu,H0.displayName="@mantine/core/MenuItem";const w7=lt((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:l,...s}=ze("MenuLabel",null,e),c=mu();return y.jsx(Se,{ref:r,...c.getStyles("label",{className:o,style:a,styles:i,classNames:n}),...s})});w7.classes=gu,w7.displayName="@mantine/core/MenuLabel";const k7=lt((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:l,onMouseEnter:s,onMouseLeave:c,onKeyDown:u,children:d,...p}=ze("MenuSubDropdown",null,e),f=E.useRef(null),g=mu(),b=Bw(),x=vn(s,b?.open),w=vn(c,b?.close);return y.jsx(mr.Dropdown,{...p,onMouseEnter:x,onMouseLeave:w,role:"menu","aria-orientation":"vertical",ref:Nr(r,f),...g.getStyles("dropdown",{className:o,style:a,styles:i,classNames:n,withStaticClass:!1}),tabIndex:-1,"data-menu-dropdown":!0,children:d})});k7.classes=gu,k7.displayName="@mantine/core/MenuSubDropdown";const _7=Xn((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:l,color:s,leftSection:c,rightSection:u,children:d,disabled:p,"data-disabled":f,closeMenuOnClick:g,...b}=ze("MenuSubItem",null,e),x=mu(),w=Bw(),k=po(),{dir:C}=du(),_=E.useRef(null),T=b,R=s?k.variantColorResolver({color:s,theme:k,variant:"light"}):void 0,A=s?uu({color:s,theme:k}):null,D=vn(T.onKeyDown,B=>{B.key==="ArrowRight"&&(w?.open(),w?.focusFirstItem()),B.key==="ArrowLeft"&&w?.parentContext&&(w.parentContext.close(),w.parentContext.focusParentItem())}),N=vn(T.onClick,()=>{!f&&g&&x.closeDropdownImmediately()}),P=vn(T.onMouseEnter,w?.open),O=vn(T.onMouseLeave,w?.close);return y.jsxs($r,{onMouseDown:B=>B.preventDefault(),...b,unstyled:x.unstyled,tabIndex:x.menuItemTabIndex,...x.getStyles("item",{className:o,style:a,styles:i,classNames:n}),ref:Nr(_,r),role:"menuitem",disabled:p,"data-menu-item":!0,"data-sub-menu-item":!0,"data-disabled":p||f||void 0,"data-mantine-stop-propagation":!0,onMouseEnter:P,onMouseLeave:O,onClick:N,onKeyDown:T0({siblingSelector:"[data-menu-item]:not([data-disabled])",parentSelector:"[data-menu-dropdown]",activateOnFocus:!1,loop:x.loop,dir:C,orientation:"vertical",onKeyDown:D}),__vars:{"--menu-item-color":A?.isThemeColor&&A?.shade===void 0?`var(--mantine-color-${A.color}-6)`:R?.color,"--menu-item-hover":R?.hover},children:[c&&y.jsx("div",{...x.getStyles("itemSection",{styles:i,classNames:n}),"data-position":"left",children:c}),d&&y.jsx("div",{...x.getStyles("itemLabel",{styles:i,classNames:n}),children:d}),y.jsx("div",{...x.getStyles("itemSection",{styles:i,classNames:n}),"data-position":"right",children:u||y.jsx(t7,{...x.getStyles("chevron"),size:14})})]})});_7.classes=gu,_7.displayName="@mantine/core/MenuSubItem";function kW({children:e,refProp:r}){if(!Qi(e))throw new Error("Menu.Sub.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported");return mu(),y.jsx(mr.Target,{refProp:r,popupType:"menu",children:e})}kW.displayName="@mantine/core/MenuSubTarget";const TLe={offset:0,position:"right-start",transitionProps:{duration:0},middlewares:{shift:{crossAxis:!0}}};function zf(e){const{children:r,closeDelay:n,...o}=ze("MenuSub",TLe,e),a=Ta(),[i,{open:l,close:s}]=A$e(!1),c=Bw(),{openDropdown:u,closeDropdown:d}=WY({open:l,close:s,closeDelay:n,openDelay:0});return y.jsx(CLe,{value:{opened:i,close:d,open:u,focusFirstItem:()=>window.setTimeout(()=>{document.getElementById(`${a}-dropdown`)?.querySelectorAll("[data-menu-item]:not([data-disabled])")[0]?.focus()},16),focusParentItem:()=>window.setTimeout(()=>{document.getElementById(`${a}-target`)?.focus()},16),parentContext:c},children:y.jsx(mr,{opened:i,...o,withinPortal:!1,withArrow:!1,id:a,children:r})})}zf.extend=e=>e,zf.displayName="@mantine/core/MenuSub",zf.Target=kW,zf.Dropdown=k7,zf.Item=_7;const RLe={refProp:"ref"},Fw=E.forwardRef((e,r)=>{const{children:n,refProp:o,...a}=ze("MenuTarget",RLe,e);if(!Qi(n))throw new Error("Menu.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported");const i=mu(),l=n.props,s=vn(l.onClick,()=>{i.trigger==="click"?i.toggleDropdown():i.trigger==="click-hover"&&(i.setOpenedViaClick(!0),i.opened||i.openDropdown())}),c=vn(l.onMouseEnter,()=>(i.trigger==="hover"||i.trigger==="click-hover")&&i.openDropdown()),u=vn(l.onMouseLeave,()=>{(i.trigger==="hover"||i.trigger==="click-hover"&&!i.openedViaClick)&&i.closeDropdown()});return y.jsx(mr.Target,{refProp:o,popupType:"menu",ref:r,...a,children:E.cloneElement(n,{onClick:s,onMouseEnter:c,onMouseLeave:u,"data-expanded":i.opened?!0:void 0})})});Fw.displayName="@mantine/core/MenuTarget";const ALe={trapFocus:!0,closeOnItemClick:!0,withInitialFocusPlaceholder:!0,clickOutsideEvents:["mousedown","touchstart","keydown"],loop:!0,trigger:"click",openDelay:0,closeDelay:100,menuItemTabIndex:-1};function ho(e){const r=ze("Menu",ALe,e),{children:n,onOpen:o,onClose:a,opened:i,defaultOpened:l,trapFocus:s,onChange:c,closeOnItemClick:u,loop:d,closeOnEscape:p,trigger:f,openDelay:g,closeDelay:b,classNames:x,styles:w,unstyled:k,variant:C,vars:_,menuItemTabIndex:T,keepMounted:R,withInitialFocusPlaceholder:A,attributes:D,...N}=r,P=bt({name:"Menu",classes:gu,props:r,classNames:x,styles:w,unstyled:k,attributes:D}),[O,B]=qs({value:i,defaultValue:l,finalValue:!1,onChange:c}),[L,Y]=E.useState(!1),M=()=>{B(!1),Y(!1),O&&a?.()},q=()=>{B(!0),!O&&o?.()},I=()=>{O?M():q()},{openDropdown:U,closeDropdown:V}=WY({open:q,close:M,closeDelay:b,openDelay:g}),G=Q=>JDe("[data-menu-item]","[data-menu-dropdown]",Q),{resolvedClassNames:F,resolvedStyles:J}=y9({classNames:x,styles:w,props:r});return y.jsx(SLe,{value:{getStyles:P,opened:O,toggleDropdown:I,getItemIndex:G,openedViaClick:L,setOpenedViaClick:Y,closeOnItemClick:u,closeDropdown:f==="click"?M:V,openDropdown:f==="click"?q:U,closeDropdownImmediately:M,loop:d,trigger:f,unstyled:k,menuItemTabIndex:T,withInitialFocusPlaceholder:A},children:y.jsx(mr,{...N,opened:O,onChange:I,defaultOpened:l,trapFocus:R?!1:s,closeOnEscape:p,__staticSelector:"Menu",classNames:F,styles:J,unstyled:k,variant:C,keepMounted:R,children:n})})}ho.extend=e=>e,ho.withProps=YPe(ho),ho.classes=gu,ho.displayName="@mantine/core/Menu",ho.Item=H0,ho.Label=w7,ho.Dropdown=F0,ho.Target=Fw,ho.Divider=x7,ho.Sub=zf;const[D_t,_W]=C0(),[NLe,DLe]=C0();var Hw={root:"m_7cda1cd6","root--default":"m_44da308b","root--contrast":"m_e3a01f8",label:"m_1e0e6180",remove:"m_ae386778",group:"m_1dcfd90b"};const $Le=(e,{gap:r},{size:n})=>({group:{"--pg-gap":r!==void 0?sr(r):sr(n,"pg-gap")}}),E7=lt((e,r)=>{const n=ze("PillGroup",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,size:u,disabled:d,attributes:p,...f}=n,g=_W()?.size||u||void 0,b=bt({name:"PillGroup",classes:Hw,props:n,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:p,vars:c,varsResolver:$Le,stylesCtx:{size:g},rootSelector:"group"});return y.jsx(NLe,{value:{size:g,disabled:d},children:y.jsx(Se,{ref:r,size:g,...b("group"),...f})})});E7.classes=Hw,E7.displayName="@mantine/core/PillGroup";const PLe={variant:"default"},OLe=(e,{radius:r},{size:n})=>({root:{"--pill-fz":sr(n,"pill-fz"),"--pill-height":sr(n,"pill-height"),"--pill-radius":r===void 0?void 0:bn(r)}}),Uw=lt((e,r)=>{const n=ze("Pill",PLe,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,variant:u,children:d,withRemoveButton:p,onRemove:f,removeButtonProps:g,radius:b,size:x,disabled:w,mod:k,attributes:C,..._}=n,T=DLe(),R=_W(),A=x||T?.size||void 0,D=R?.variant==="filled"?"contrast":u||"default",N=bt({name:"Pill",classes:Hw,props:n,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:C,vars:c,varsResolver:OLe,stylesCtx:{size:A}});return y.jsxs(Se,{component:"span",ref:r,variant:D,size:A,...N("root",{variant:D}),mod:[{"with-remove":p&&!w,disabled:w||T?.disabled},k],..._,children:[y.jsx("span",{...N("label"),children:d}),p&&y.jsx(Kd,{variant:"transparent",radius:b,tabIndex:-1,"aria-hidden":!0,unstyled:s,...g,...N("remove",{className:g?.className,style:g?.style}),onMouseDown:P=>{P.preventDefault(),P.stopPropagation(),g?.onMouseDown?.(P)},onClick:P=>{P.stopPropagation(),f?.(),g?.onClick?.(P)}})]})});Uw.classes=Hw,Uw.displayName="@mantine/core/Pill",Uw.Group=E7;var EW={root:"m_f0824112",description:"m_57492dcc",section:"m_690090b5",label:"m_1f6ac4c4",body:"m_f07af9d2",children:"m_e17b862f",chevron:"m_1fd8a00b"};const MLe=(e,{variant:r,color:n,childrenOffset:o,autoContrast:a})=>{const i=e.variantColorResolver({color:n||e.primaryColor,theme:e,variant:r||"light",autoContrast:a});return{root:{"--nl-bg":n||r?i.background:void 0,"--nl-hover":n||r?i.hover:void 0,"--nl-color":n||r?i.color:void 0},children:{"--nl-offset":Us(o)}}},S7=Xn((e,r)=>{const n=ze("NavLink",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,opened:u,defaultOpened:d,onChange:p,children:f,active:g,disabled:b,leftSection:x,rightSection:w,label:k,description:C,disableRightSectionRotation:_,noWrap:T,childrenOffset:R,autoContrast:A,mod:D,attributes:N,...P}=n,O=bt({name:"NavLink",props:n,classes:EW,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:N,vars:c,varsResolver:MLe}),[B,L]=qs({value:u,defaultValue:d,finalValue:!1,onChange:p}),Y=!!f,M=q=>{P.onClick?.(q),Y&&(q.preventDefault(),L(!B))};return y.jsxs(y.Fragment,{children:[y.jsxs($r,{...O("root"),component:"a",ref:r,onClick:M,onKeyDown:q=>{P.onKeyDown?.(q),q.nativeEvent.code==="Space"&&Y&&(q.preventDefault(),L(!B))},unstyled:s,mod:[{disabled:b,active:g,expanded:B},D],...P,children:[x&&y.jsx(Se,{component:"span",...O("section"),mod:{position:"left"},children:x}),y.jsxs(Se,{...O("body"),mod:{"no-wrap":T},children:[y.jsx(Se,{component:"span",...O("label"),children:k}),y.jsx(Se,{component:"span",mod:{active:g},...O("description"),children:C})]}),(Y||w!==void 0)&&y.jsx(Se,{...O("section"),component:"span",mod:{rotate:B&&!_,position:"right"},children:Y?w!==void 0?w:y.jsx(t7,{...O("chevron")}):w})]}),Y&&y.jsx(mV,{in:B,...O("collapse"),children:y.jsx("div",{...O("children"),children:f})})]})});S7.classes=EW,S7.displayName="@mantine/core/NavLink";var SW={root:"m_a513464",icon:"m_a4ceffb",loader:"m_b0920b15",body:"m_a49ed24",title:"m_3feedf16",description:"m_3d733a3a",closeButton:"m_919a4d88"};const ILe={withCloseButton:!0},LLe=(e,{radius:r,color:n})=>({root:{"--notification-radius":r===void 0?void 0:bn(r),"--notification-color":n?Jo(n,e):void 0}}),qw=lt((e,r)=>{const n=ze("Notification",ILe,e),{className:o,color:a,radius:i,loading:l,withCloseButton:s,withBorder:c,title:u,icon:d,children:p,onClose:f,closeButtonProps:g,classNames:b,style:x,styles:w,unstyled:k,variant:C,vars:_,mod:T,loaderProps:R,role:A,attributes:D,...N}=n,P=bt({name:"Notification",classes:SW,props:n,className:o,style:x,classNames:b,styles:w,unstyled:k,attributes:D,vars:_,varsResolver:LLe});return y.jsxs(Se,{...P("root"),mod:[{"data-with-icon":!!d||l,"data-with-border":c},T],ref:r,variant:C,role:A||"alert",...N,children:[d&&!l&&y.jsx("div",{...P("icon"),children:d}),l&&y.jsx($f,{size:28,color:a,...R,...P("loader")}),y.jsxs("div",{...P("body"),children:[u&&y.jsx("div",{...P("title"),children:u}),y.jsx(Se,{...P("description"),mod:{"data-with-title":!!u},children:p})]}),s&&y.jsx(Kd,{iconSize:16,color:"gray",...g,unstyled:k,onClick:f,...P("closeButton")})]})});qw.classes=SW,qw.displayName="@mantine/core/Notification";const zLe={duration:100,transition:"fade"};function CW(e,r){return{...zLe,...r,...e}}function jLe({offset:e,position:r,defaultOpened:n}){const[o,a]=E.useState(n),i=E.useRef(null),{x:l,y:s,elements:c,refs:u,update:d,placement:p}=xw({placement:r,middleware:[z9({crossAxis:!0,padding:5,rootBoundary:"document"})]}),f=p.includes("right")?e:r.includes("left")?e*-1:0,g=p.includes("bottom")?e:r.includes("top")?e*-1:0,b=E.useCallback(({clientX:x,clientY:w})=>{u.setPositionReference({getBoundingClientRect(){return{width:0,height:0,x,y:w,left:x+f,top:w+g,right:x,bottom:w}}})},[c.reference]);return E.useEffect(()=>{if(u.floating.current){const x=i.current;x.addEventListener("mousemove",b);const w=Ws(u.floating.current);return w.forEach(k=>{k.addEventListener("scroll",d)}),()=>{x.removeEventListener("mousemove",b),w.forEach(k=>{k.removeEventListener("scroll",d)})}}},[c.reference,u.floating.current,d,b,o]),{handleMouseMove:b,x:l,y:s,opened:o,setOpened:a,boundaryRef:i,floating:u.setFloating}}var Vw={tooltip:"m_1b3c8819",arrow:"m_f898399f"};const BLe={refProp:"ref",withinPortal:!0,offset:10,position:"right",zIndex:Yx("popover")},FLe=(e,{radius:r,color:n})=>({tooltip:{"--tooltip-radius":r===void 0?void 0:bn(r),"--tooltip-bg":n?Jo(n,e):void 0,"--tooltip-color":n?"var(--mantine-color-white)":void 0}}),C7=lt((e,r)=>{const n=ze("TooltipFloating",BLe,e),{children:o,refProp:a,withinPortal:i,style:l,className:s,classNames:c,styles:u,unstyled:d,radius:p,color:f,label:g,offset:b,position:x,multiline:w,zIndex:k,disabled:C,defaultOpened:_,variant:T,vars:R,portalProps:A,attributes:D,...N}=n,P=po(),O=bt({name:"TooltipFloating",props:n,classes:Vw,className:s,style:l,classNames:c,styles:u,unstyled:d,attributes:D,rootSelector:"tooltip",vars:R,varsResolver:FLe}),{handleMouseMove:B,x:L,y:Y,opened:M,boundaryRef:q,floating:I,setOpened:U}=jLe({offset:b,position:x,defaultOpened:_});if(!Qi(o))throw new Error("[@mantine/core] Tooltip.Floating component children should be an element or a component that accepts ref, fragments, strings, numbers and other primitive values are not supported");const V=Nr(q,Gx(o),r),G=o.props,F=Q=>{G.onMouseEnter?.(Q),B(Q),U(!0)},J=Q=>{G.onMouseLeave?.(Q),U(!1)};return y.jsxs(y.Fragment,{children:[y.jsx(Df,{...A,withinPortal:i,children:y.jsx(Se,{...N,...O("tooltip",{style:{...k9(l,P),zIndex:k,display:!C&&M?"block":"none",top:(Y&&Math.round(Y))??"",left:(L&&Math.round(L))??""}}),variant:T,ref:I,mod:{multiline:w},children:g})}),E.cloneElement(o,{...G,[a]:V,onMouseEnter:F,onMouseLeave:J})]})});C7.classes=Vw,C7.displayName="@mantine/core/TooltipFloating";const TW=E.createContext(!1),HLe=TW.Provider,ULe=()=>E.useContext(TW),qLe={openDelay:0,closeDelay:0};function Qd(e){const{openDelay:r,closeDelay:n,children:o}=ze("TooltipGroup",qLe,e);return y.jsx(HLe,{value:!0,children:y.jsx(aY,{delay:{open:r,close:n},children:o})})}Qd.displayName="@mantine/core/TooltipGroup",Qd.extend=e=>e;function VLe(e){if(e===void 0)return{shift:!0,flip:!0};const r={...e};return e.shift===void 0&&(r.shift=!0),e.flip===void 0&&(r.flip=!0),r}function YLe(e){const r=VLe(e.middlewares),n=[WV(e.offset)];return r.shift&&n.push(z9(typeof r.shift=="boolean"?{padding:8}:{padding:8,...r.shift})),r.flip&&n.push(typeof r.flip=="boolean"?bw():bw(r.flip)),n.push(XV({element:e.arrowRef,padding:e.arrowOffset})),r.inline?n.push(typeof r.inline=="boolean"?O0():O0(r.inline)):e.inline&&n.push(O0()),n}function WLe(e){const[r,n]=E.useState(e.defaultOpened),o=typeof e.opened=="boolean"?e.opened:r,a=ULe(),i=Ta(),l=E.useCallback(T=>{n(T),T&&w(i)},[i]),{x:s,y:c,context:u,refs:d,placement:p,middlewareData:{arrow:{x:f,y:g}={}}}=xw({strategy:e.strategy,placement:e.position,open:o,onOpenChange:l,middleware:YLe(e),whileElementsMounted:mw}),{delay:b,currentId:x,setCurrentId:w}=iY(u,{id:i}),{getReferenceProps:k,getFloatingProps:C}=cY([nY(u,{enabled:e.events?.hover,delay:a?b:{open:e.openDelay,close:e.closeDelay},mouseOnly:!e.events?.touch}),NMe(u,{enabled:e.events?.focus,visibleOnly:!0}),uY(u,{role:"tooltip"}),sY(u,{enabled:typeof e.opened>"u"})]);Vd(()=>{e.onPositionChange?.(p)},[p]);const _=o&&x&&x!==i;return{x:s,y:c,arrowX:f,arrowY:g,reference:d.setReference,floating:d.setFloating,getFloatingProps:C,getReferenceProps:k,isGroupPhase:_,opened:o,placement:p}}const RW={position:"top",refProp:"ref",withinPortal:!0,arrowSize:4,arrowOffset:5,arrowRadius:0,arrowPosition:"side",offset:5,transitionProps:{duration:100,transition:"fade"},events:{hover:!0,focus:!1,touch:!1},zIndex:Yx("popover"),positionDependencies:[],middlewares:{flip:!0,shift:!0,inline:!1}},GLe=(e,{radius:r,color:n,variant:o,autoContrast:a})=>{const i=e.variantColorResolver({theme:e,color:n||e.primaryColor,autoContrast:a,variant:o||"filled"});return{tooltip:{"--tooltip-radius":r===void 0?void 0:bn(r),"--tooltip-bg":n?i.background:void 0,"--tooltip-color":n?i.color:void 0}}},fo=lt((e,r)=>{const n=ze("Tooltip",RW,e),{children:o,position:a,refProp:i,label:l,openDelay:s,closeDelay:c,onPositionChange:u,opened:d,defaultOpened:p,withinPortal:f,radius:g,color:b,classNames:x,styles:w,unstyled:k,style:C,className:_,withArrow:T,arrowSize:R,arrowOffset:A,arrowRadius:D,arrowPosition:N,offset:P,transitionProps:O,multiline:B,events:L,zIndex:Y,disabled:M,positionDependencies:q,onClick:I,onMouseEnter:U,onMouseLeave:V,inline:G,variant:F,keepMounted:J,vars:Q,portalProps:z,mod:W,floatingStrategy:X,middlewares:Z,autoContrast:oe,attributes:ee,target:re,...pe}=ze("Tooltip",RW,n),{dir:Ce}=du(),ce=E.useRef(null),de=WLe({position:AY(Ce,a),closeDelay:c,openDelay:s,onPositionChange:u,opened:d,defaultOpened:p,events:L,arrowRef:ce,arrowOffset:A,offset:typeof P=="number"?P+(T?R/2:0):P,positionDependencies:[...q,re??o],inline:G,strategy:X,middlewares:Z});E.useEffect(()=>{const Qe=re instanceof HTMLElement?re:typeof re=="string"?document.querySelector(re):re?.current||null;Qe&&de.reference(Qe)},[re,de]);const be=bt({name:"Tooltip",props:n,classes:Vw,className:_,style:C,classNames:x,styles:w,unstyled:k,attributes:ee,rootSelector:"tooltip",vars:Q,varsResolver:GLe});if(!re&&!Qi(o))return null;if(re){const Qe=CW(O,{duration:100,transition:"fade"});return y.jsx(y.Fragment,{children:y.jsx(Df,{...z,withinPortal:f,children:y.jsx(hu,{...Qe,keepMounted:J,mounted:!M&&!!de.opened,duration:de.isGroupPhase?10:Qe.duration,children:St=>y.jsxs(Se,{...pe,"data-fixed":X==="fixed"||void 0,variant:F,mod:[{multiline:B},W],...de.getFloatingProps({ref:de.floating,className:be("tooltip").className,style:{...be("tooltip").style,...St,zIndex:Y,top:de.y??0,left:de.x??0}}),children:[l,y.jsx(Ew,{ref:ce,arrowX:de.arrowX,arrowY:de.arrowY,visible:T,position:de.placement,arrowSize:R,arrowOffset:A,arrowRadius:D,arrowPosition:N,...be("arrow")})]})})})})}const Me=o,Xe=Me.props,Ge=Nr(de.reference,Gx(Me),r),_t=CW(O,{duration:100,transition:"fade"});return y.jsxs(y.Fragment,{children:[y.jsx(Df,{...z,withinPortal:f,children:y.jsx(hu,{..._t,keepMounted:J,mounted:!M&&!!de.opened,duration:de.isGroupPhase?10:_t.duration,children:Qe=>y.jsxs(Se,{...pe,"data-fixed":X==="fixed"||void 0,variant:F,mod:[{multiline:B},W],...de.getFloatingProps({ref:de.floating,className:be("tooltip").className,style:{...be("tooltip").style,...Qe,zIndex:Y,top:de.y??0,left:de.x??0}}),children:[l,y.jsx(Ew,{ref:ce,arrowX:de.arrowX,arrowY:de.arrowY,visible:T,position:de.placement,arrowSize:R,arrowOffset:A,arrowRadius:D,arrowPosition:N,...be("arrow")})]})})}),E.cloneElement(Me,de.getReferenceProps({onClick:I,onMouseEnter:U,onMouseLeave:V,onMouseMove:n.onMouseMove,onPointerDown:n.onPointerDown,onPointerEnter:n.onPointerEnter,className:Ji(_,Xe.className),...Xe,[i]:Ge}))]})});fo.classes=Vw,fo.displayName="@mantine/core/Tooltip",fo.Floating=C7,fo.Group=Qd;var AW={root:"m_cf365364",indicator:"m_9e182ccd",label:"m_1738fcb2",input:"m_1714d588",control:"m_69686b9b",innerLabel:"m_78882f40"};const XLe={withItemsBorders:!0},KLe=(e,{radius:r,color:n,transitionDuration:o,size:a,transitionTimingFunction:i})=>({root:{"--sc-radius":r===void 0?void 0:bn(r),"--sc-color":n?Jo(n,e):void 0,"--sc-shadow":n?void 0:"var(--mantine-shadow-xs)","--sc-transition-duration":o===void 0?void 0:`${o}ms`,"--sc-transition-timing-function":i,"--sc-padding":sr(a,"sc-padding"),"--sc-font-size":No(a)}}),U0=lt((e,r)=>{const n=ze("SegmentedControl",XLe,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,data:u,value:d,defaultValue:p,onChange:f,size:g,name:b,disabled:x,readOnly:w,fullWidth:k,orientation:C,radius:_,color:T,transitionDuration:R,transitionTimingFunction:A,variant:D,autoContrast:N,withItemsBorders:P,mod:O,attributes:B,...L}=n,Y=bt({name:"SegmentedControl",props:n,classes:AW,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:B,vars:c,varsResolver:KLe}),M=po(),q=u.map(re=>typeof re=="string"?{label:re,value:re}:re),I=$$e(),[U,V]=E.useState(e9()),[G,F]=E.useState(null),[J,Q]=E.useState({}),z=(re,pe)=>{J[pe]=re,Q(J)},[W,X]=qs({value:d,defaultValue:p,finalValue:Array.isArray(u)?q.find(re=>!re.disabled)?.value??u[0]?.value??null:null,onChange:f}),Z=Ta(b),oe=q.map(re=>E.createElement(Se,{...Y("control"),mod:{active:W===re.value,orientation:C},key:re.value},E.createElement("input",{...Y("input"),disabled:x||re.disabled,type:"radio",name:Z,value:re.value,id:`${Z}-${re.value}`,checked:W===re.value,onChange:()=>!w&&X(re.value),"data-focus-ring":M.focusRing,key:`${re.value}-input`}),E.createElement(Se,{component:"label",...Y("label"),mod:{active:W===re.value&&!(x||re.disabled),disabled:x||re.disabled,"read-only":w},htmlFor:`${Z}-${re.value}`,ref:pe=>z(pe,re.value),__vars:{"--sc-label-color":T!==void 0?f9({color:T,theme:M,autoContrast:N}):void 0},key:`${re.value}-label`},y.jsx("span",{...Y("innerLabel"),children:re.label})))),ee=Nr(r,re=>F(re));return k$e(()=>{V(e9())},[u.length]),u.length===0?null:y.jsxs(Se,{...Y("root"),variant:D,size:g,ref:ee,mod:[{"full-width":k,orientation:C,initialized:I,"with-items-borders":P},O],...L,role:"radiogroup","data-disabled":x,children:[typeof W=="string"&&y.jsx($w,{target:J[W],parent:G,component:"span",transitionDuration:"var(--sc-transition-duration)",...Y("indicator")},U),oe]})});U0.classes=AW,U0.displayName="@mantine/core/SegmentedControl";const[ZLe,Yw]=ri("SliderProvider was not found in tree"),NW=E.forwardRef(({size:e,disabled:r,variant:n,color:o,thumbSize:a,radius:i,...l},s)=>{const{getStyles:c}=Yw();return y.jsx(Se,{tabIndex:-1,variant:n,size:e,ref:s,...c("root"),...l})});NW.displayName="@mantine/core/SliderRoot";const DW=E.forwardRef(({max:e,min:r,value:n,position:o,label:a,dragging:i,onMouseDown:l,onKeyDownCapture:s,labelTransitionProps:c,labelAlwaysOn:u,thumbLabel:d,onFocus:p,onBlur:f,showLabelOnHover:g,isHovered:b,children:x=null,disabled:w},k)=>{const{getStyles:C}=Yw(),[_,T]=E.useState(!1),R=u||i||_||g&&b;return y.jsxs(Se,{tabIndex:0,role:"slider","aria-label":d,"aria-valuemax":e,"aria-valuemin":r,"aria-valuenow":n,ref:k,__vars:{"--slider-thumb-offset":`${o}%`},...C("thumb",{focusable:!0}),mod:{dragging:i,disabled:w},onFocus:A=>{T(!0),typeof p=="function"&&p(A)},onBlur:A=>{T(!1),typeof f=="function"&&f(A)},onTouchStart:l,onMouseDown:l,onKeyDownCapture:s,onClick:A=>A.stopPropagation(),children:[x,y.jsx(hu,{mounted:a!=null&&!!R,transition:"fade",duration:0,...c,children:A=>y.jsx("div",{...C("label",{style:A}),children:a})})]})});DW.displayName="@mantine/core/SliderThumb";function $W({value:e,min:r,max:n}){const o=(e-r)/(n-r)*100;return Math.min(Math.max(o,0),100)}function QLe({mark:e,offset:r,value:n,inverted:o=!1}){return o?typeof r=="number"&&e.value<=r||e.value>=n:typeof r=="number"?e.value>=r&&e.value<=n:e.value<=n}function PW({marks:e,min:r,max:n,disabled:o,value:a,offset:i,inverted:l}){const{getStyles:s}=Yw();if(!e)return null;const c=e.map((u,d)=>E.createElement(Se,{...s("markWrapper"),__vars:{"--mark-offset":`${$W({value:u.value,min:r,max:n})}%`},key:d},y.jsx(Se,{...s("mark"),mod:{filled:QLe({mark:u,value:a,offset:i,inverted:l}),disabled:o}}),u.label&&y.jsx("div",{...s("markLabel"),children:u.label})));return y.jsx("div",{children:c})}PW.displayName="@mantine/core/SliderMarks";function OW({filled:e,children:r,offset:n,disabled:o,marksOffset:a,inverted:i,containerProps:l,...s}){const{getStyles:c}=Yw();return y.jsx(Se,{...c("trackContainer"),mod:{disabled:o},...l,children:y.jsxs(Se,{...c("track"),mod:{inverted:i,disabled:o},children:[y.jsx(Se,{mod:{inverted:i,disabled:o},__vars:{"--slider-bar-width":`calc(${e}% + 2 * var(--slider-size))`,"--slider-bar-offset":`calc(${n}% - var(--slider-size))`},...c("bar")}),r,y.jsx(PW,{...s,offset:a,disabled:o,inverted:i})]})})}OW.displayName="@mantine/core/SliderTrack";function JLe({value:e,containerWidth:r,min:n,max:o,step:a,precision:i}){const l=(r?Math.min(Math.max(e,0),r)/r:e)*(o-n),s=(l!==0?Math.round(l/a)*a:0)+n,c=Math.max(s,n);return i!==void 0?Number(c.toFixed(i)):c}function Ww(e,r){return parseFloat(e.toFixed(r))}function eze(e){if(!e)return 0;const r=e.toString().split(".");return r.length>1?r[1].length:0}function T7(e,r){const n=[...r].sort((o,a)=>o.value-a.value).find(o=>o.value>e);return n?n.value:e}function R7(e,r){const n=[...r].sort((o,a)=>a.value-o.value).find(o=>o.valuen.value-o.value);return r.length>0?r[0].value:0}function IW(e){const r=[...e].sort((n,o)=>n.value-o.value);return r.length>0?r[r.length-1].value:100}var LW={root:"m_dd36362e",label:"m_c9357328",thumb:"m_c9a9a60a",trackContainer:"m_a8645c2",track:"m_c9ade57f",bar:"m_38aeed47",markWrapper:"m_b7b0423a",mark:"m_dd33bc19",markLabel:"m_68c77a5b"};const tze={radius:"xl",min:0,max:100,step:1,marks:[],label:e=>e,labelTransitionProps:{transition:"fade",duration:0},thumbLabel:"",showLabelOnHover:!0,scale:e=>e,size:"md"},rze=(e,{size:r,color:n,thumbSize:o,radius:a})=>({root:{"--slider-size":sr(r,"slider-size"),"--slider-color":n?Jo(n,e):void 0,"--slider-radius":a===void 0?void 0:bn(a),"--slider-thumb-size":o!==void 0?Ae(o):"calc(var(--slider-size) * 2)"}}),A7=lt((e,r)=>{const n=ze("Slider",tze,e),{classNames:o,styles:a,value:i,onChange:l,onChangeEnd:s,size:c,min:u,max:d,domain:p,step:f,precision:g,defaultValue:b,name:x,marks:w,label:k,labelTransitionProps:C,labelAlwaysOn:_,thumbLabel:T,showLabelOnHover:R,thumbChildren:A,disabled:D,unstyled:N,scale:P,inverted:O,className:B,style:L,vars:Y,hiddenInputProps:M,restrictToMarks:q,thumbProps:I,attributes:U,...V}=n,G=bt({name:"Slider",props:n,classes:LW,classNames:o,className:B,styles:a,style:L,attributes:U,vars:Y,varsResolver:rze,unstyled:N}),{dir:F}=du(),[J,Q]=E.useState(!1),[z,W]=qs({value:typeof i=="number"?su(i,u,d):i,defaultValue:typeof b=="number"?su(b,u,d):b,finalValue:su(0,u,d),onChange:l}),X=E.useRef(z),Z=E.useRef(s);E.useEffect(()=>{Z.current=s},[s]);const oe=E.useRef(null),ee=E.useRef(null),[re,pe]=p||[u,d],Ce=$W({value:z,min:re,max:pe}),ce=P(z),de=typeof k=="function"?k(ce):k,be=g??eze(f),Me=E.useCallback(({x:Ke})=>{if(!D){const We=JLe({value:Ke,min:re,max:pe,step:f,precision:be}),st=su(We,u,d);W(q&&w?.length?Gq(st,w.map(Et=>Et.value)):st),X.current=st}},[D,u,d,re,pe,f,be,W,w,q]),Xe=E.useCallback(()=>{if(!D&&Z.current){const Ke=q&&w?.length?Gq(X.current,w.map(We=>We.value)):X.current;Z.current(Ke)}},[D,w,q]),{ref:Ge,active:_t}=Bq(Me,{onScrubEnd:Xe},F),Qe=E.useCallback(Ke=>{!D&&Z.current&&Z.current(Ke)},[D]),St=Ke=>{if(!D)switch(Ke.key){case"ArrowUp":{if(Ke.preventDefault(),ee.current?.focus(),q&&w){const st=T7(z,w);W(st),Qe(st);break}const We=Ww(Math.min(Math.max(z+f,u),d),be);W(We),Qe(We);break}case"ArrowRight":{if(Ke.preventDefault(),ee.current?.focus(),q&&w){const st=F==="rtl"?R7(z,w):T7(z,w);W(st),Qe(st);break}const We=Ww(Math.min(Math.max(F==="rtl"?z-f:z+f,u),d),be);W(We),Qe(We);break}case"ArrowDown":{if(Ke.preventDefault(),ee.current?.focus(),q&&w){const st=R7(z,w);W(st),Qe(st);break}const We=Ww(Math.min(Math.max(z-f,u),d),be);W(We),Qe(We);break}case"ArrowLeft":{if(Ke.preventDefault(),ee.current?.focus(),q&&w){const st=F==="rtl"?T7(z,w):R7(z,w);W(st),Qe(st);break}const We=Ww(Math.min(Math.max(F==="rtl"?z+f:z-f,u),d),be);W(We),Qe(We);break}case"Home":{if(Ke.preventDefault(),ee.current?.focus(),q&&w){W(MW(w)),Qe(MW(w));break}W(u),Qe(u);break}case"End":{if(Ke.preventDefault(),ee.current?.focus(),q&&w){W(IW(w)),Qe(IW(w));break}W(d),Qe(d);break}}};return y.jsx(ZLe,{value:{getStyles:G},children:y.jsxs(NW,{...V,ref:Nr(r,oe),onKeyDownCapture:St,onMouseDownCapture:()=>oe.current?.focus(),size:c,disabled:D,children:[y.jsx(OW,{inverted:O,offset:0,filled:Ce,marks:w,min:re,max:pe,value:ce,disabled:D,containerProps:{ref:Ge,onMouseEnter:R?()=>Q(!0):void 0,onMouseLeave:R?()=>Q(!1):void 0},children:y.jsx(DW,{max:pe,min:re,value:ce,position:Ce,dragging:_t,label:de,ref:ee,labelTransitionProps:C,labelAlwaysOn:_,thumbLabel:T,showLabelOnHover:R,isHovered:J,disabled:D,...I,children:A})}),y.jsx("input",{type:"hidden",name:x,value:ce,...M})]})})});A7.classes=LW,A7.displayName="@mantine/core/Slider";const N7=lt((e,r)=>{const{w:n,h:o,miw:a,mih:i,...l}=ze("Space",null,e);return y.jsx(Se,{ref:r,...l,w:n,miw:a??n,h:o,mih:i??o})});N7.displayName="@mantine/core/Space";var zW={root:"m_6d731127"};const nze={gap:"md",align:"stretch",justify:"flex-start"},oze=(e,{gap:r,align:n,justify:o})=>({root:{"--stack-gap":Us(r),"--stack-align":n,"--stack-justify":o}}),ra=lt((e,r)=>{const n=ze("Stack",nze,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,align:u,justify:d,gap:p,variant:f,attributes:g,...b}=n,x=bt({name:"Stack",props:n,classes:zW,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:g,vars:c,varsResolver:oze});return y.jsx(Se,{ref:r,...x("root"),variant:f,...b})});ra.classes=zW,ra.displayName="@mantine/core/Stack";const[aze,D7]=ri("Tabs component was not found in the tree");var q0={root:"m_89d60db1","list--default":"m_576c9d4",list:"m_89d33d6d",tab:"m_4ec4dce6",panel:"m_b0c91715",tabSection:"m_fc420b1f",tabLabel:"m_42bbd1ae","tab--default":"m_539e827b","list--outline":"m_6772fbd5","tab--outline":"m_b59ab47c","tab--pills":"m_c3381914"};const V0=lt((e,r)=>{const n=ze("TabsList",null,e),{children:o,className:a,grow:i,justify:l,classNames:s,styles:c,style:u,mod:d,...p}=n,f=D7();return y.jsx(Se,{...p,...f.getStyles("list",{className:a,style:u,classNames:s,styles:c,props:n,variant:f.variant}),ref:r,role:"tablist",variant:f.variant,mod:[{grow:i,orientation:f.orientation,placement:f.orientation==="vertical"&&f.placement,inverted:f.inverted},d],"aria-orientation":f.orientation,__vars:{"--tabs-justify":l},children:o})});V0.classes=q0,V0.displayName="@mantine/core/TabsList";const Zs=lt((e,r)=>{const n=ze("TabsPanel",null,e),{children:o,className:a,value:i,classNames:l,styles:s,style:c,mod:u,keepMounted:d,...p}=n,f=D7(),g=f.value===i,b=f.keepMounted||d||g?o:null;return y.jsx(Se,{...f.getStyles("panel",{className:a,classNames:l,styles:s,style:[c,g?void 0:{display:"none"}],props:n}),ref:r,mod:[{orientation:f.orientation},u],role:"tabpanel",id:f.getPanelId(i),"aria-labelledby":f.getTabId(i),...p,children:b})});Zs.classes=q0,Zs.displayName="@mantine/core/TabsPanel";const jf=lt((e,r)=>{const n=ze("TabsTab",null,e),{className:o,children:a,rightSection:i,leftSection:l,value:s,onClick:c,onKeyDown:u,disabled:d,color:p,style:f,classNames:g,styles:b,vars:x,mod:w,tabIndex:k,...C}=n,_=po(),{dir:T}=du(),R=D7(),A=s===R.value,D=P=>{R.onChange(R.allowTabDeactivation&&s===R.value?null:s),c?.(P)},N={classNames:g,styles:b,props:n};return y.jsxs($r,{...C,...R.getStyles("tab",{className:o,style:f,variant:R.variant,...N}),disabled:d,unstyled:R.unstyled,variant:R.variant,mod:[{active:A,disabled:d,orientation:R.orientation,inverted:R.inverted,placement:R.orientation==="vertical"&&R.placement},w],ref:r,role:"tab",id:R.getTabId(s),"aria-selected":A,tabIndex:k!==void 0?k:A||R.value===null?0:-1,"aria-controls":R.getPanelId(s),onClick:D,__vars:{"--tabs-color":p?Jo(p,_):void 0},onKeyDown:T0({siblingSelector:'[role="tab"]',parentSelector:'[role="tablist"]',activateOnFocus:R.activateTabWithKeyboard,loop:R.loop,orientation:R.orientation||"horizontal",dir:T,onKeyDown:u}),children:[l&&y.jsx("span",{...R.getStyles("tabSection",N),"data-position":"left",children:l}),a&&y.jsx("span",{...R.getStyles("tabLabel",N),children:a}),i&&y.jsx("span",{...R.getStyles("tabSection",N),"data-position":"right",children:i})]})});jf.classes=q0,jf.displayName="@mantine/core/TabsTab";const jW="Tabs.Tab or Tabs.Panel component was rendered with invalid value or without value",ize={keepMounted:!0,orientation:"horizontal",loop:!0,activateTabWithKeyboard:!0,variant:"default",placement:"left"},lze=(e,{radius:r,color:n,autoContrast:o})=>({root:{"--tabs-radius":bn(r),"--tabs-color":Jo(n,e),"--tabs-text-color":EPe(o,e)?f9({color:n,theme:e,autoContrast:o}):void 0}}),Jd=lt((e,r)=>{const n=ze("Tabs",ize,e),{defaultValue:o,value:a,onChange:i,orientation:l,children:s,loop:c,id:u,activateTabWithKeyboard:d,allowTabDeactivation:p,variant:f,color:g,radius:b,inverted:x,placement:w,keepMounted:k,classNames:C,styles:_,unstyled:T,className:R,style:A,vars:D,autoContrast:N,mod:P,attributes:O,...B}=n,L=Ta(u),[Y,M]=qs({value:a,defaultValue:o,finalValue:null,onChange:i}),q=bt({name:"Tabs",props:n,classes:q0,className:R,style:A,classNames:C,styles:_,unstyled:T,attributes:O,vars:D,varsResolver:lze});return y.jsx(aze,{value:{placement:w,value:Y,orientation:l,id:L,loop:c,activateTabWithKeyboard:d,getTabId:Tq(`${L}-tab`,jW),getPanelId:Tq(`${L}-panel`,jW),onChange:M,allowTabDeactivation:p,variant:f,color:g,radius:b,inverted:x,keepMounted:k,unstyled:T,getStyles:q},children:y.jsx(Se,{ref:r,id:L,variant:f,mod:[{orientation:l,inverted:l==="horizontal"&&x,placement:l==="vertical"&&w},P],...q("root"),...B,children:s})})});Jd.classes=q0,Jd.displayName="@mantine/core/Tabs",Jd.Tab=jf,Jd.Panel=Zs,Jd.List=V0;var BW={root:"m_7341320d"};const sze=(e,{size:r,radius:n,variant:o,gradient:a,color:i,autoContrast:l})=>{const s=e.variantColorResolver({color:i||e.primaryColor,theme:e,gradient:a,variant:o||"filled",autoContrast:l});return{root:{"--ti-size":sr(r,"ti-size"),"--ti-radius":n===void 0?void 0:bn(n),"--ti-bg":i||o?s.background:void 0,"--ti-color":i||o?s.color:void 0,"--ti-bd":i||o?s.border:void 0}}},ci=lt((e,r)=>{const n=ze("ThemeIcon",null,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,autoContrast:u,attributes:d,...p}=n,f=bt({name:"ThemeIcon",classes:BW,props:n,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:d,vars:c,varsResolver:sze});return y.jsx(Se,{ref:r,...f("root"),...p})});ci.classes=BW,ci.displayName="@mantine/core/ThemeIcon";const cze=["h1","h2","h3","h4","h5","h6"],uze=["xs","sm","md","lg","xl"];function dze(e,r){const n=r!==void 0?r:`h${e}`;return cze.includes(n)?{fontSize:`var(--mantine-${n}-font-size)`,fontWeight:`var(--mantine-${n}-font-weight)`,lineHeight:`var(--mantine-${n}-line-height)`}:uze.includes(n)?{fontSize:`var(--mantine-font-size-${n})`,fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}:{fontSize:Ae(n),fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}}var FW={root:"m_8a5d1357"};const pze={order:1},hze=(e,{order:r,size:n,lineClamp:o,textWrap:a})=>{const i=dze(r||1,n);return{root:{"--title-fw":i.fontWeight,"--title-lh":i.lineHeight,"--title-fz":i.fontSize,"--title-line-clamp":typeof o=="number"?o.toString():void 0,"--title-text-wrap":a}}},ep=lt((e,r)=>{const n=ze("Title",pze,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,order:c,vars:u,size:d,variant:p,lineClamp:f,textWrap:g,mod:b,attributes:x,...w}=n,k=bt({name:"Title",props:n,classes:FW,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:x,vars:u,varsResolver:hze});return[1,2,3,4,5,6].includes(c)?y.jsx(Se,{...k("root"),component:`h${c}`,variant:p,ref:r,mod:[{order:c,"data-line-clamp":typeof f=="number"},b],size:d,...w}):null});ep.classes=FW,ep.displayName="@mantine/core/Title";function HW(e,r,n){if(!e||!r)return[];const o=n.indexOf(e),a=n.indexOf(r),i=Math.min(o,a),l=Math.max(o,a);return n.slice(i,l+1)}function $7({node:e,getStyles:r,rootIndex:n,controller:o,expandOnClick:a,selectOnClick:i,isSubtree:l,level:s=1,renderNode:c,flatValues:u,allowRangeSelection:d,expandOnSpace:p,checkOnSpace:f}){const g=E.useRef(null),b=(e.children||[]).map(_=>y.jsx($7,{node:_,flatValues:u,getStyles:r,rootIndex:void 0,level:s+1,controller:o,expandOnClick:a,isSubtree:!0,renderNode:c,selectOnClick:i,allowRangeSelection:d,expandOnSpace:p,checkOnSpace:f},_.value)),x=_=>{if(_.nativeEvent.code==="ArrowRight"&&(_.stopPropagation(),_.preventDefault(),o.expandedState[e.value]?_.currentTarget.querySelector("[role=treeitem]")?.focus():o.expand(e.value)),_.nativeEvent.code==="ArrowLeft"&&(_.stopPropagation(),_.preventDefault(),o.expandedState[e.value]&&(e.children||[]).length>0?o.collapse(e.value):l&&bf(_.currentTarget,"[role=treeitem]")?.focus()),_.nativeEvent.code==="ArrowDown"||_.nativeEvent.code==="ArrowUp"){const T=bf(_.currentTarget,"[data-tree-root]");if(!T)return;_.stopPropagation(),_.preventDefault();const R=Array.from(T.querySelectorAll("[role=treeitem]")),A=R.indexOf(_.currentTarget);if(A===-1)return;const D=_.nativeEvent.code==="ArrowDown"?A+1:A-1;if(R[D]?.focus(),_.shiftKey){const N=R[D];N&&o.setSelectedState(HW(o.anchorNode,N.dataset.value,u))}}_.nativeEvent.code==="Space"&&(p&&(_.stopPropagation(),_.preventDefault(),o.toggleExpanded(e.value)),f&&(_.stopPropagation(),_.preventDefault(),o.isNodeChecked(e.value)?o.uncheckNode(e.value):o.checkNode(e.value)))},w=_=>{_.stopPropagation(),d&&_.shiftKey&&o.anchorNode?(o.setSelectedState(HW(o.anchorNode,e.value,u)),g.current?.focus()):(a&&o.toggleExpanded(e.value),i&&o.select(e.value),g.current?.focus())},k=o.selectedState.includes(e.value),C={...r("label"),onClick:w,"data-selected":k||void 0,"data-value":e.value,"data-hovered":o.hoveredNode===e.value||void 0};return y.jsxs("li",{...r("node",{style:{"--label-offset":`calc(var(--level-offset) * ${s-1})`}}),role:"treeitem","aria-selected":k,"data-value":e.value,"data-selected":k||void 0,"data-hovered":o.hoveredNode===e.value||void 0,"data-level":s,tabIndex:n===0?0:-1,onKeyDown:x,ref:g,onMouseOver:_=>{_.stopPropagation(),o.setHoveredNode(e.value)},onMouseLeave:_=>{_.stopPropagation(),o.setHoveredNode(null)},children:[typeof c=="function"?c({node:e,level:s,selected:k,tree:o,expanded:o.expandedState[e.value]||!1,hasChildren:Array.isArray(e.children)&&e.children.length>0,elementProps:C}):y.jsx("div",{...C,children:e.label}),o.expandedState[e.value]&&b.length>0&&y.jsx(Se,{component:"ul",role:"group",...r("subtree"),"data-level":s,children:b})]})}$7.displayName="@mantine/core/TreeNode";function Gw(e,r,n=[]){const o=[];for(const a of e)if(Array.isArray(a.children)&&a.children.length>0){const i=Gw(a.children,r,n);if(i.currentTreeChecked.length===a.children.length){const l=i.currentTreeChecked.every(c=>c.checked),s={checked:l,indeterminate:!l,value:a.value,hasChildren:!0};o.push(s),n.push(s)}else if(i.currentTreeChecked.length>0){const l={checked:!1,indeterminate:!0,value:a.value,hasChildren:!0};o.push(l),n.push(l)}}else if(r.includes(a.value)){const i={checked:!0,indeterminate:!1,value:a.value,hasChildren:!1};o.push(i),n.push(i)}return{result:n,currentTreeChecked:o}}function UW(e,r){for(const n of r){if(n.value===e)return n;if(Array.isArray(n.children)){const o=UW(e,n.children);if(o)return o}}return null}function Xw(e,r,n=[]){const o=UW(e,r);return o?!Array.isArray(o.children)||o.children.length===0?[o.value]:(o.children.forEach(a=>{Array.isArray(a.children)&&a.children.length>0?Xw(a.value,r,n):n.push(a.value)}),n):n}function qW(e){return e.reduce((r,n)=>(Array.isArray(n.children)&&n.children.length>0?r.push(...qW(n.children)):r.push(n.value),r),[])}function fze(e,r,n){return n.length===0?!1:n.includes(e)?!0:Gw(r,n).result.some(o=>o.value===e&&o.checked)}const mze=Wq(fze);function gze(e,r,n){return n.length===0?!1:Gw(r,n).result.some(o=>o.value===e&&o.indeterminate)}const yze=Wq(gze);function VW(e,r,n,o={}){return r.forEach(a=>{o[a.value]=a.value in e?e[a.value]:a.value===n,Array.isArray(a.children)&&VW(e,a.children,n,o)}),o}function bze(e,r){const n=[];return e.forEach(o=>n.push(...Xw(o,r))),Array.from(new Set(n))}function Y0({initialSelectedState:e=[],initialCheckedState:r=[],initialExpandedState:n={},multiple:o=!1,onNodeCollapse:a,onNodeExpand:i}={}){const[l,s]=E.useState([]),[c,u]=E.useState(n),[d,p]=E.useState(e),[f,g]=E.useState(r),[b,x]=E.useState(null),[w,k]=E.useState(null),C=E.useCallback(I=>{u(U=>VW(U,I,d)),g(U=>bze(U,I)),s(I)},[d,f]),_=E.useCallback(I=>{u(U=>{const V={...U,[I]:!U[I]};return V[I]?i?.(I):a?.(I),V})},[a,i]),T=E.useCallback(I=>{u(U=>(U[I]!==!1&&a?.(I),{...U,[I]:!1}))},[a]),R=E.useCallback(I=>{u(U=>(U[I]!==!0&&i?.(I),{...U,[I]:!0}))},[i]),A=E.useCallback(()=>{u(I=>{const U={...I};return Object.keys(U).forEach(V=>{U[V]=!0}),U})},[]),D=E.useCallback(()=>{u(I=>{const U={...I};return Object.keys(U).forEach(V=>{U[V]=!1}),U})},[]),N=E.useCallback(I=>p(U=>o?U.includes(I)?(x(null),U.filter(V=>V!==I)):(x(I),[...U,I]):U.includes(I)?(x(null),[]):(x(I),[I])),[]),P=E.useCallback(I=>{x(I),p(U=>o?U.includes(I)?U:[...U,I]:[I])},[]),O=E.useCallback(I=>{b===I&&x(null),p(U=>U.filter(V=>V!==I))},[]),B=E.useCallback(()=>{p([]),x(null)},[]),L=E.useCallback(I=>{const U=Xw(I,l);g(V=>Array.from(new Set([...V,...U])))},[l]),Y=E.useCallback(I=>{const U=Xw(I,l);g(V=>V.filter(G=>!U.includes(G)))},[l]),M=E.useCallback(()=>{g(()=>qW(l))},[l]),q=E.useCallback(()=>{g([])},[]);return{multiple:o,expandedState:c,selectedState:d,checkedState:f,anchorNode:b,initialize:C,toggleExpanded:_,collapse:T,expand:R,expandAllNodes:A,collapseAllNodes:D,setExpandedState:u,checkNode:L,uncheckNode:Y,checkAllNodes:M,uncheckAllNodes:q,setCheckedState:g,toggleSelected:N,select:P,deselect:O,clearSelected:B,setSelectedState:p,hoveredNode:w,setHoveredNode:k,getCheckedNodes:()=>Gw(l,f).result,isNodeChecked:I=>mze(I,l,f),isNodeIndeterminate:I=>yze(I,l,f)}}var YW={root:"m_f698e191",subtree:"m_75f3ecf",node:"m_f6970eb1",label:"m_dc283425"};function WW(e){return e.reduce((r,n)=>(r.push(n.value),n.children&&r.push(...WW(n.children)),r),[])}const vze={expandOnClick:!0,allowRangeSelection:!0,expandOnSpace:!0},xze=(e,{levelOffset:r})=>({root:{"--level-offset":Us(r)}}),Bf=lt((e,r)=>{const n=ze("Tree",vze,e),{classNames:o,className:a,style:i,styles:l,unstyled:s,vars:c,data:u,expandOnClick:d,tree:p,renderNode:f,selectOnClick:g,clearSelectionOnOutsideClick:b,allowRangeSelection:x,expandOnSpace:w,levelOffset:k,checkOnSpace:C,attributes:_,...T}=n,R=Y0(),A=p||R,D=bt({name:"Tree",classes:YW,props:n,className:a,style:i,classNames:o,styles:l,unstyled:s,attributes:_,vars:c,varsResolver:xze}),N=Dq(()=>b&&A.clearSelected()),P=Nr(r,N),O=E.useMemo(()=>WW(u),[u]);E.useEffect(()=>{A.initialize(u)},[u]);const B=u.map((L,Y)=>y.jsx($7,{node:L,getStyles:D,rootIndex:Y,expandOnClick:d,selectOnClick:g,controller:A,renderNode:f,flatValues:O,allowRangeSelection:x,expandOnSpace:w,checkOnSpace:C},L.value));return y.jsx(Se,{component:"ul",ref:P,...D("root"),...T,role:"tree","aria-multiselectable":A.multiple,"data-tree-root":!0,children:B})});Bf.displayName="@mantine/core/Tree",Bf.classes=YW;const P7=E.createContext(null);function GW(){const e=E.useContext(P7);if(!e)throw new Error("useRootContainer must be used within a RootContainer");return e}function wze(){return GW().ref}function kze(){return GW().ref.current}const XW=E.createContext(null);function _ze(){const e=E.useContext(XW);return e===null&&console.warn("ReduceGraphicsMode is not provided"),e??!1}const[Eze,Sze]=ri("PanningAtomSafeCtx is not provided");function Cze({id:e,className:r,reduceGraphics:n=!1,children:o}){const[a,i]=E.useState(!1),l=E.useRef(null),s=E.useRef(null);s.current||(s.current=lDe(!1)),QE(()=>{i(!0)},[]),E.useEffect(()=>s.current?.subscribe(u=>{l.current?.setAttribute("data-likec4-diagram-panning",u?"true":"false")}),[]);const c=E.useMemo(()=>({id:e,ref:l}),[e,l]);return y.jsx(Eze,{value:s.current,children:y.jsx(XW.Provider,{value:n,children:y.jsx("div",{id:e,className:Je("likec4-root",r),ref:l,...n&&{"data-likec4-reduced-graphics":!0},children:a&&!!c.ref.current&&y.jsx(P7.Provider,{value:c,children:o})})})})}const W0=E.createContext(null),O7=E.createContext(null);function Tze({children:e}){return E.useContext(O7)?y.jsx(y.Fragment,{children:e}):null}function Rze(){return E.useContext(W0)}function Ho(){const e=E.useContext(W0);if(!e)throw new Error("LikeC4Model not found. Make sure you have LikeC4ModelProvider.");return e}function Aze(){const e=Ho(),[r,n]=E.useState(e.$data.specification);return E.useEffect(()=>{n(o=>ut(o,e.$data.specification)?o:e.$data.specification)},[e]),r}const KW=E.createContext({}),Nze=["yellow","orange","amber","tomato","red","ruby","crimson","pink","pink","purple","violet","indigo","blue","teal","grass","lime"],Dze=e=>{const r=e.color;if(nB(e))return` + --colors-likec4-tag-bg: ${r}; + --colors-likec4-tag-bg-hover: color-mix(in srgb, ${r}, var(--colors-likec4-mix-color) 20%); + `;if(!Nze.includes(r))return"";let n="12";return["mint","grass","lime","yellow","amber"].includes(r)&&(n="dark-2"),` + --colors-likec4-tag-border: var(--colors-${r}-8); + --colors-likec4-tag-bg: var(--colors-${r}-9); + --colors-likec4-tag-bg-hover: var(--colors-${r}-10); + --colors-likec4-tag-text: var(--colors-${r}-${n}); + `};function $ze(e,r){return!e||iu(e)?"":yn(B8(e),ENe(([n,o])=>[`:is(${r} [data-likec4-tag="${n}"]) {`,Dze(o),"}"]),oq(` +`))}function Pze({children:e,rootSelector:r}){const n=Aze().tags,o=$ze(n,r);return y.jsxs(KW.Provider,{value:n,children:[o!==""&&y.jsx(Oze,{stylesheet:o}),e]})}const Oze=E.memo(({stylesheet:e})=>{const r=Yd()?.();return y.jsx("style",{"data-likec4-tags":!0,type:"text/css",dangerouslySetInnerHTML:{__html:e},nonce:r})});function Mze(e){return E.useContext(KW)[e]??{color:"tomato"}}function ZW(){return Ta().replace("mantine-","likec4-")}var Ize="css,pos,insetX,insetY,insetEnd,end,insetStart,start,flexDir,p,pl,pr,pt,pb,py,paddingY,paddingX,px,pe,paddingEnd,ps,paddingStart,ml,mr,mt,mb,m,my,marginY,mx,marginX,me,marginEnd,ms,marginStart,ringWidth,ringColor,ring,ringOffset,w,minW,maxW,h,minH,maxH,textShadowColor,bgPosition,bgPositionX,bgPositionY,bgAttachment,bgClip,bg,bgColor,bgOrigin,bgImage,bgRepeat,bgBlendMode,bgSize,bgGradient,bgLinear,bgRadial,bgConic,rounded,roundedTopLeft,roundedTopRight,roundedBottomRight,roundedBottomLeft,roundedTop,roundedRight,roundedBottom,roundedLeft,roundedStartStart,roundedStartEnd,roundedStart,roundedEndStart,roundedEndEnd,roundedEnd,borderX,borderXWidth,borderXColor,borderY,borderYWidth,borderYColor,borderStart,borderStartWidth,borderStartColor,borderEnd,borderEndWidth,borderEndColor,shadow,shadowColor,x,y,z,scrollMarginY,scrollMarginX,scrollPaddingY,scrollPaddingX,aspectRatio,boxDecorationBreak,zIndex,boxSizing,objectPosition,objectFit,overscrollBehavior,overscrollBehaviorX,overscrollBehaviorY,position,top,left,inset,insetInline,insetBlock,insetBlockEnd,insetBlockStart,insetInlineEnd,insetInlineStart,right,bottom,float,visibility,display,hideFrom,hideBelow,flexBasis,flex,flexDirection,flexGrow,flexShrink,gridTemplateColumns,gridTemplateRows,gridColumn,gridRow,gridColumnStart,gridColumnEnd,gridAutoFlow,gridAutoColumns,gridAutoRows,gap,gridGap,gridRowGap,gridColumnGap,rowGap,columnGap,justifyContent,alignContent,alignItems,alignSelf,padding,paddingLeft,paddingRight,paddingTop,paddingBottom,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingInline,paddingInlineEnd,paddingInlineStart,marginLeft,marginRight,marginTop,marginBottom,margin,marginBlock,marginBlockEnd,marginBlockStart,marginInline,marginInlineEnd,marginInlineStart,spaceX,spaceY,outlineWidth,outlineColor,outline,outlineOffset,focusRing,focusVisibleRing,focusRingColor,focusRingOffset,focusRingWidth,focusRingStyle,divideX,divideY,divideColor,divideStyle,width,inlineSize,minWidth,minInlineSize,maxWidth,maxInlineSize,height,blockSize,minHeight,minBlockSize,maxHeight,maxBlockSize,boxSize,color,fontFamily,fontSize,fontSizeAdjust,fontPalette,fontKerning,fontFeatureSettings,fontWeight,fontSmoothing,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariationSettings,fontVariantNumeric,letterSpacing,lineHeight,textAlign,textDecoration,textDecorationColor,textEmphasisColor,textDecorationStyle,textDecorationThickness,textUnderlineOffset,textTransform,textIndent,textShadow,textOverflow,verticalAlign,wordBreak,textWrap,truncate,lineClamp,listStyleType,listStylePosition,listStyleImage,listStyle,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundAttachment,backgroundClip,background,backgroundColor,backgroundOrigin,backgroundImage,backgroundRepeat,backgroundBlendMode,backgroundSize,backgroundGradient,backgroundLinear,backgroundRadial,backgroundConic,textGradient,gradientFromPosition,gradientToPosition,gradientFrom,gradientTo,gradientVia,gradientViaPosition,borderRadius,borderTopLeftRadius,borderTopRightRadius,borderBottomRightRadius,borderBottomLeftRadius,borderTopRadius,borderRightRadius,borderBottomRadius,borderLeftRadius,borderStartStartRadius,borderStartEndRadius,borderStartRadius,borderEndStartRadius,borderEndEndRadius,borderEndRadius,border,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,borderBlockStartWidth,borderBlockEndWidth,borderColor,borderInline,borderInlineWidth,borderInlineColor,borderBlock,borderBlockWidth,borderBlockColor,borderLeft,borderLeftColor,borderInlineStart,borderInlineStartWidth,borderInlineStartColor,borderRight,borderRightColor,borderInlineEnd,borderInlineEndWidth,borderInlineEndColor,borderTop,borderTopColor,borderBottom,borderBottomColor,borderBlockEnd,borderBlockEndColor,borderBlockStart,borderBlockStartColor,opacity,boxShadow,boxShadowColor,mixBlendMode,filter,brightness,contrast,grayscale,hueRotate,invert,saturate,sepia,dropShadow,blur,backdropFilter,backdropBlur,backdropBrightness,backdropContrast,backdropGrayscale,backdropHueRotate,backdropInvert,backdropOpacity,backdropSaturate,backdropSepia,borderCollapse,borderSpacing,borderSpacingX,borderSpacingY,tableLayout,transitionTimingFunction,transitionDelay,transitionDuration,transitionProperty,transition,animation,animationName,animationTimingFunction,animationDuration,animationDelay,animationPlayState,animationComposition,animationFillMode,animationDirection,animationIterationCount,animationRange,animationState,animationRangeStart,animationRangeEnd,animationTimeline,transformOrigin,transformBox,transformStyle,transform,rotate,rotateX,rotateY,rotateZ,scale,scaleX,scaleY,translate,translateX,translateY,translateZ,accentColor,caretColor,scrollBehavior,scrollbar,scrollbarColor,scrollbarGutter,scrollbarWidth,scrollMargin,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollMarginBottom,scrollMarginBlock,scrollMarginBlockEnd,scrollMarginBlockStart,scrollMarginInline,scrollMarginInlineEnd,scrollMarginInlineStart,scrollPadding,scrollPaddingBlock,scrollPaddingBlockStart,scrollPaddingBlockEnd,scrollPaddingInline,scrollPaddingInlineEnd,scrollPaddingInlineStart,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollPaddingBottom,scrollSnapAlign,scrollSnapStop,scrollSnapType,scrollSnapStrictness,scrollSnapMargin,scrollSnapMarginTop,scrollSnapMarginBottom,scrollSnapMarginLeft,scrollSnapMarginRight,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,touchAction,userSelect,overflow,overflowWrap,overflowX,overflowY,overflowAnchor,overflowBlock,overflowInline,overflowClipBox,overflowClipMargin,overscrollBehaviorBlock,overscrollBehaviorInline,fill,stroke,strokeWidth,strokeDasharray,strokeDashoffset,strokeLinecap,strokeLinejoin,strokeMiterlimit,strokeOpacity,srOnly,debug,appearance,backfaceVisibility,clipPath,hyphens,mask,maskImage,maskSize,textSizeAdjust,container,containerName,containerType,cursor,colorPalette,_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_noscript,_invertedColors,_shapeSizeXs,_shapeSizeSm,_shapeSizeMd,_shapeSizeLg,_shapeSizeXl,_shapeRectangle,_shapePerson,_shapeBrowser,_shapeMobile,_shapeCylinder,_shapeStorage,_shapeQueue,_notDisabled,_reduceGraphics,_reduceGraphicsOnPan,_noReduceGraphics,_whenPanning,_smallZoom,_compoundTransparent,_edgeActive,_whenHovered,_whenSelected,_whenDimmed,_whenFocused,_p3,_srgb,_rec2020,xs,xsOnly,xsDown,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,xsToSm,xsToMd,xsToLg,xsToXl,smToMd,smToLg,smToXl,mdToLg,mdToXl,lgToXl,@/xs,@/sm,@/md,@/lg,@likec4-root/xs,@likec4-root/sm,@likec4-root/md,@likec4-root/lg,@likec4-dialog/xs,@likec4-dialog/sm,@likec4-dialog/md,@likec4-dialog/lg,textStyle,layerStyle,animationStyle",Lze=Ize.split(","),zze="WebkitAppearance,WebkitBorderBefore,WebkitBorderBeforeColor,WebkitBorderBeforeStyle,WebkitBorderBeforeWidth,WebkitBoxReflect,WebkitLineClamp,WebkitMask,WebkitMaskAttachment,WebkitMaskClip,WebkitMaskComposite,WebkitMaskImage,WebkitMaskOrigin,WebkitMaskPosition,WebkitMaskPositionX,WebkitMaskPositionY,WebkitMaskRepeat,WebkitMaskRepeatX,WebkitMaskRepeatY,WebkitMaskSize,WebkitOverflowScrolling,WebkitTapHighlightColor,WebkitTextFillColor,WebkitTextStroke,WebkitTextStrokeColor,WebkitTextStrokeWidth,WebkitTouchCallout,WebkitUserModify,WebkitUserSelect,accentColor,alignContent,alignItems,alignSelf,alignTracks,all,anchorName,anchorScope,animation,animationComposition,animationDelay,animationDirection,animationDuration,animationFillMode,animationIterationCount,animationName,animationPlayState,animationRange,animationRangeEnd,animationRangeStart,animationTimeline,animationTimingFunction,appearance,aspectRatio,backdropFilter,backfaceVisibility,background,backgroundAttachment,backgroundBlendMode,backgroundClip,backgroundColor,backgroundImage,backgroundOrigin,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundRepeat,backgroundSize,blockSize,border,borderBlock,borderBlockColor,borderBlockEnd,borderBlockEndColor,borderBlockEndStyle,borderBlockEndWidth,borderBlockStart,borderBlockStartColor,borderBlockStartStyle,borderBlockStartWidth,borderBlockStyle,borderBlockWidth,borderBottom,borderBottomColor,borderBottomLeftRadius,borderBottomRightRadius,borderBottomStyle,borderBottomWidth,borderCollapse,borderColor,borderEndEndRadius,borderEndStartRadius,borderImage,borderImageOutset,borderImageRepeat,borderImageSlice,borderImageSource,borderImageWidth,borderInline,borderInlineColor,borderInlineEnd,borderInlineEndColor,borderInlineEndStyle,borderInlineEndWidth,borderInlineStart,borderInlineStartColor,borderInlineStartStyle,borderInlineStartWidth,borderInlineStyle,borderInlineWidth,borderLeft,borderLeftColor,borderLeftStyle,borderLeftWidth,borderRadius,borderRight,borderRightColor,borderRightStyle,borderRightWidth,borderSpacing,borderStartEndRadius,borderStartStartRadius,borderStyle,borderTop,borderTopColor,borderTopLeftRadius,borderTopRightRadius,borderTopStyle,borderTopWidth,borderWidth,bottom,boxAlign,boxDecorationBreak,boxDirection,boxFlex,boxFlexGroup,boxLines,boxOrdinalGroup,boxOrient,boxPack,boxShadow,boxSizing,breakAfter,breakBefore,breakInside,captionSide,caret,caretColor,caretShape,clear,clip,clipPath,clipRule,color,colorInterpolationFilters,colorScheme,columnCount,columnFill,columnGap,columnRule,columnRuleColor,columnRuleStyle,columnRuleWidth,columnSpan,columnWidth,columns,contain,containIntrinsicBlockSize,containIntrinsicHeight,containIntrinsicInlineSize,containIntrinsicSize,containIntrinsicWidth,container,containerName,containerType,content,contentVisibility,counterIncrement,counterReset,counterSet,cursor,cx,cy,d,direction,display,dominantBaseline,emptyCells,fieldSizing,fill,fillOpacity,fillRule,filter,flex,flexBasis,flexDirection,flexFlow,flexGrow,flexShrink,flexWrap,float,floodColor,floodOpacity,font,fontFamily,fontFeatureSettings,fontKerning,fontLanguageOverride,fontOpticalSizing,fontPalette,fontSize,fontSizeAdjust,fontSmooth,fontStretch,fontStyle,fontSynthesis,fontSynthesisPosition,fontSynthesisSmallCaps,fontSynthesisStyle,fontSynthesisWeight,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariantEastAsian,fontVariantEmoji,fontVariantLigatures,fontVariantNumeric,fontVariantPosition,fontVariationSettings,fontWeight,forcedColorAdjust,gap,grid,gridArea,gridAutoColumns,gridAutoFlow,gridAutoRows,gridColumn,gridColumnEnd,gridColumnGap,gridColumnStart,gridGap,gridRow,gridRowEnd,gridRowGap,gridRowStart,gridTemplate,gridTemplateAreas,gridTemplateColumns,gridTemplateRows,hangingPunctuation,height,hyphenateCharacter,hyphenateLimitChars,hyphens,imageOrientation,imageRendering,imageResolution,imeMode,initialLetter,initialLetterAlign,inlineSize,inset,insetBlock,insetBlockEnd,insetBlockStart,insetInline,insetInlineEnd,insetInlineStart,interpolateSize,isolation,justifyContent,justifyItems,justifySelf,justifyTracks,left,letterSpacing,lightingColor,lineBreak,lineClamp,lineHeight,lineHeightStep,listStyle,listStyleImage,listStylePosition,listStyleType,margin,marginBlock,marginBlockEnd,marginBlockStart,marginBottom,marginInline,marginInlineEnd,marginInlineStart,marginLeft,marginRight,marginTop,marginTrim,marker,markerEnd,markerMid,markerStart,mask,maskBorder,maskBorderMode,maskBorderOutset,maskBorderRepeat,maskBorderSlice,maskBorderSource,maskBorderWidth,maskClip,maskComposite,maskImage,maskMode,maskOrigin,maskPosition,maskRepeat,maskSize,maskType,masonryAutoFlow,mathDepth,mathShift,mathStyle,maxBlockSize,maxHeight,maxInlineSize,maxLines,maxWidth,minBlockSize,minHeight,minInlineSize,minWidth,mixBlendMode,objectFit,objectPosition,offset,offsetAnchor,offsetDistance,offsetPath,offsetPosition,offsetRotate,opacity,order,orphans,outline,outlineColor,outlineOffset,outlineStyle,outlineWidth,overflow,overflowAnchor,overflowBlock,overflowClipBox,overflowClipMargin,overflowInline,overflowWrap,overflowX,overflowY,overlay,overscrollBehavior,overscrollBehaviorBlock,overscrollBehaviorInline,overscrollBehaviorX,overscrollBehaviorY,padding,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingBottom,paddingInline,paddingInlineEnd,paddingInlineStart,paddingLeft,paddingRight,paddingTop,page,pageBreakAfter,pageBreakBefore,pageBreakInside,paintOrder,perspective,perspectiveOrigin,placeContent,placeItems,placeSelf,pointerEvents,position,positionAnchor,positionArea,positionTry,positionTryFallbacks,positionTryOrder,positionVisibility,printColorAdjust,quotes,r,resize,right,rotate,rowGap,rubyAlign,rubyMerge,rubyPosition,rx,ry,scale,scrollBehavior,scrollMargin,scrollMarginBlock,scrollMarginBlockEnd,scrollMarginBlockStart,scrollMarginBottom,scrollMarginInline,scrollMarginInlineEnd,scrollMarginInlineStart,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollPadding,scrollPaddingBlock,scrollPaddingBlockEnd,scrollPaddingBlockStart,scrollPaddingBottom,scrollPaddingInline,scrollPaddingInlineEnd,scrollPaddingInlineStart,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollSnapAlign,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapStop,scrollSnapType,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,scrollbarColor,scrollbarGutter,scrollbarWidth,shapeImageThreshold,shapeMargin,shapeOutside,shapeRendering,stopColor,stopOpacity,stroke,strokeDasharray,strokeDashoffset,strokeLinecap,strokeLinejoin,strokeMiterlimit,strokeOpacity,strokeWidth,tabSize,tableLayout,textAlign,textAlignLast,textAnchor,textBox,textBoxEdge,textBoxTrim,textCombineUpright,textDecoration,textDecorationColor,textDecorationLine,textDecorationSkip,textDecorationSkipInk,textDecorationStyle,textDecorationThickness,textEmphasis,textEmphasisColor,textEmphasisPosition,textEmphasisStyle,textIndent,textJustify,textOrientation,textOverflow,textRendering,textShadow,textSizeAdjust,textSpacingTrim,textTransform,textUnderlineOffset,textUnderlinePosition,textWrap,textWrapMode,textWrapStyle,timelineScope,top,touchAction,transform,transformBox,transformOrigin,transformStyle,transition,transitionBehavior,transitionDelay,transitionDuration,transitionProperty,transitionTimingFunction,translate,unicodeBidi,userSelect,vectorEffect,verticalAlign,viewTimeline,viewTimelineAxis,viewTimelineInset,viewTimelineName,viewTransitionName,visibility,whiteSpace,whiteSpaceCollapse,widows,width,willChange,wordBreak,wordSpacing,wordWrap,writingMode,x,y,zIndex,zoom,alignmentBaseline,baselineShift,colorInterpolation,colorRendering,glyphOrientationVertical",jze=zze.split(",").concat(Lze),Bze=new Map(jze.map(e=>[e,!0])),Fze=/&|@/,QW=co(e=>Bze.has(e)||e.startsWith("--")||Fze.test(e));const Hze=(e,r)=>!r.includes(e)&&!QW(e),Uze=(e,r)=>e.__shouldForwardProps__&&r?n=>e.__shouldForwardProps__(n)&&r(n):r,qze=(e,r)=>{if(e&&!r)return e;if(!e&&r)return r;if(e.__cva__&&r.__cva__||e.__recipe__&&r.__recipe__)return e.merge(r);const n=new TypeError("Cannot merge cva with recipe. Please use either cva or recipe.");throw TypeError.captureStackTrace?.(n),n},Vze=e=>typeof e=="string"?e:e?.displayName||e?.name||"Component";function M7(e,r={},n={}){const o=r.__cva__||r.__recipe__?r:J1(r),a=n.shouldForwardProp||Hze,i=f=>n.forwardProps?.includes(f)?!0:a(f,o.variantKeys),l=Object.assign(n.dataAttr&&r.__name__?{"data-recipe":r.__name__}:{},n.defaultProps),s=qze(e.__cva__,o),c=Uze(e,i),u=e.__base__||e,d=E.forwardRef(function(f,g){const{as:b=u,unstyled:x,children:w,...k}=f,C=E.useMemo(()=>Object.assign({},l,k),[k]),[_,T,R,A,D]=E.useMemo(()=>Yn(C,XE.keys,c,s.variantKeys,QW),[C]);function N(){const{css:B,...L}=A,Y=s.__getCompoundVariantCss__?.(R);return Je(s(R,!1),ye(Y,L,B),C.className)}function P(){const{css:B,...L}=A,Y=s.raw(R);return Je(ye(Y,L,B),C.className)}const O=()=>{if(x){const{css:B,...L}=A;return Je(ye(L,B),C.className)}return r.__recipe__?N():P()};return E.createElement(b,{ref:g,...T,...D,...XE(_),className:O()},w??C.children)}),p=Vze(u);return d.displayName=`styled.${p}`,d.__cva__=s,d.__base__=u,d.__shouldForwardProps__=i,d}function Yze(){const e=new Map;return new Proxy(M7,{apply(r,n,o){return M7(...o)},get(r,n){return e.has(n)||e.set(n,M7(n)),e.get(n)}})}const Qs=Yze(),JW={transform(e){return e}},Wze=(e={})=>{const r=Q1(JW,e);return JW.transform(r,Z1)},qr=E.forwardRef(function(e,r){const[n,o]=Yn(e,[]),a=Wze(n),i={ref:r,...a,...o};return E.createElement(Qs.div,i)}),eG={transform(e){const{justify:r,gap:n,...o}=e;return{display:"flex",alignItems:"center",justifyContent:r,gap:n,flexDirection:"column",...o}},defaultValues:{alignItems:"stretch",gap:"sm"}},I7=(e={})=>{const r=Q1(eG,e);return eG.transform(r,Z1)},G0=e=>ye(I7(e));G0.raw=I7;const Ff=E.forwardRef(function(e,r){const[n,o]=Yn(e,["justify","gap"]),a=I7(n),i={ref:r,...a,...o};return E.createElement(Qs.div,i)}),tG={transform(e){const{justify:r,gap:n,...o}=e;return{display:"flex",alignItems:"center",justifyContent:r,gap:n,flexDirection:"row",...o}},defaultValues:{gap:"sm"}},L7=(e={})=>{const r=Q1(tG,e);return tG.transform(r,Z1)},Uo=e=>ye(L7(e));Uo.raw=L7;const xn=E.forwardRef(function(e,r){const[n,o]=Yn(e,["justify","gap"]),a=L7(n),i={ref:r,...a,...o};return E.createElement(Qs.div,i)}),rG={transform(e){return{position:"relative",maxWidth:"8xl",mx:"auto",px:{base:"4",md:"6",lg:"8"},...e}}},nG=(e={})=>{const r=Q1(rG,e);return rG.transform(r,Z1)},oG=e=>ye(nG(e));oG.raw=nG;const aG={transform(e,{map:r,isCssUnit:n,isCssVar:o}){const{inline:a,block:i,...l}=e,s=c=>n(c)||o(c)?c:`token(spacing.${c}, ${c})`;return{"--bleed-x":r(a,s),"--bleed-y":r(i,s),marginInline:"calc(var(--bleed-x, 0) * -1)",marginBlock:"calc(var(--bleed-y, 0) * -1)",...l}},defaultValues:{inline:"0",block:"0"}},iG=(e={})=>{const r=Q1(aG,e);return aG.transform(r,Z1)},lG=e=>ye(iG(e));lG.raw=iG;const Gze=E.createContext(null),z7={didCatch:!1,error:null};let j7=class extends E.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=z7}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(e!==null){for(var r,n,o=arguments.length,a=new Array(o),i=0;i0&&arguments[0]!==void 0?arguments[0]:[],r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return e.length!==r.length||e.some((n,o)=>!Object.is(n,r[o]))}/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const Kze=[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]],Hf=yt("outline","x","X",Kze);function B7({error:e,resetErrorBoundary:r}){const n=e instanceof Error?e.message:"Unknown error";return y.jsx(qr,{css:{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",padding:"0",backdropFilter:"blur(5px)",backgroundColor:{_dark:"[rgb(34 34 34 / 10%)]",_light:"[rgb(15 15 15/ 20%)]"},zIndex:1e3},children:y.jsxs(qw,{icon:y.jsx(Hf,{style:{width:16,height:16}}),styles:{icon:{alignSelf:"flex-start"}},color:"red",title:"Oops, something went wrong",p:"xl",withCloseButton:!1,children:[y.jsx(ta,{maw:"100%",mah:400,children:y.jsx(jw,{block:!0,children:n})}),y.jsx(Ur,{gap:"xs",mt:"xl",children:y.jsx(Zn,{color:"gray",size:"xs",variant:"light",onClick:()=>r(),children:"Reset"})})]})})}function sG(e){return y.jsx(j7,{FallbackComponent:B7,onError:(r,n)=>{console.error(r,n)},...e})}function Zze(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global}function Qze(){const e=Zze();if(e.__xstate__)return e.__xstate__}const Jze=e=>{if(typeof window>"u")return;const r=Qze();r&&r.register(e)};class cG{constructor(r){this._process=r,this._active=!1,this._current=null,this._last=null}start(){this._active=!0,this.flush()}clear(){this._current&&(this._current.next=null,this._last=this._current)}enqueue(r){const n={value:r,next:null};if(this._current){this._last.next=n,this._last=n;return}this._current=n,this._last=n,this._active&&this.flush()}flush(){for(;this._current;){const r=this._current;this._process(r.value),this._current=r.next}this._last=null}}const uG=".",eje="",dG="",tje="#",rje="*",pG="xstate.init",nje="xstate.error",X0="xstate.stop";function oje(e,r){return{type:`xstate.after.${e}.${r}`}}function F7(e,r){return{type:`xstate.done.state.${e}`,output:r}}function aje(e,r){return{type:`xstate.done.actor.${e}`,output:r,actorId:e}}function hG(e,r){return{type:`xstate.error.actor.${e}`,error:r,actorId:e}}function fG(e){return{type:pG,input:e}}function as(e){setTimeout(()=>{throw e})}const ije=typeof Symbol=="function"&&Symbol.observable||"@@observable";function mG(e,r){const n=gG(e),o=gG(r);return typeof o=="string"?typeof n=="string"?o===n:!1:typeof n=="string"?n in o:Object.keys(n).every(a=>a in o?mG(n[a],o[a]):!1)}function H7(e){if(vG(e))return e;const r=[];let n="";for(let o=0;otypeof r>"u"||typeof r=="string"?{target:r}:r)}function xG(e){if(!(e===void 0||e===eje))return Js(e)}function Kw(e,r,n){const o=typeof e=="object",a=o?e:void 0;return{next:(o?e.next:e)?.bind(a),error:(o?e.error:r)?.bind(a),complete:(o?e.complete:n)?.bind(a)}}function wG(e,r){return`${r}.${e}`}function q7(e,r){const n=r.match(/^xstate\.invoke\.(\d+)\.(.*)/);if(!n)return e.implementations.actors[r];const[,o,a]=n,i=e.getStateNodeById(a).config.invoke;return(Array.isArray(i)?i[o]:i).src}function kG(e,r){return`${e.sessionId}.${r}`}let cje=0;function uje(e,r){const n=new Map,o=new Map,a=new WeakMap,i=new Set,l={},{clock:s,logger:c}=r,u={schedule:(f,g,b,x,w=Math.random().toString(36).slice(2))=>{const k={source:f,target:g,event:b,delay:x,id:w,startedAt:Date.now()},C=kG(f,w);p._snapshot._scheduledEvents[C]=k;const _=s.setTimeout(()=>{delete l[C],delete p._snapshot._scheduledEvents[C],p._relay(f,g,b)},x);l[C]=_},cancel:(f,g)=>{const b=kG(f,g),x=l[b];delete l[b],delete p._snapshot._scheduledEvents[b],x!==void 0&&s.clearTimeout(x)},cancelAll:f=>{for(const g in p._snapshot._scheduledEvents){const b=p._snapshot._scheduledEvents[g];b.source===f&&u.cancel(f,b.id)}}},d=f=>{if(!i.size)return;const g={...f,rootId:e.sessionId};i.forEach(b=>b.next?.(g))},p={_snapshot:{_scheduledEvents:(r?.snapshot&&r.snapshot.scheduler)??{}},_bookId:()=>`x:${cje++}`,_register:(f,g)=>(n.set(f,g),f),_unregister:f=>{n.delete(f.sessionId);const g=a.get(f);g!==void 0&&(o.delete(g),a.delete(f))},get:f=>o.get(f),_set:(f,g)=>{const b=o.get(f);if(b&&b!==g)throw new Error(`Actor with system ID '${f}' already exists.`);o.set(f,g),a.set(g,f)},inspect:f=>{const g=Kw(f);return i.add(g),{unsubscribe(){i.delete(g)}}},_sendInspectionEvent:d,_relay:(f,g,b)=>{p._sendInspectionEvent({type:"@xstate.event",sourceRef:f,actorRef:g,event:b}),g._send(b)},scheduler:u,getSnapshot:()=>({_scheduledEvents:{...p._snapshot._scheduledEvents}}),start:()=>{const f=p._snapshot._scheduledEvents;p._snapshot._scheduledEvents={};for(const g in f){const{source:b,target:x,event:w,delay:k,id:C}=f[g];u.schedule(b,x,w,k,C)}},_clock:s,_logger:c};return p}let V7=!1;const Y7=1;let na=(function(e){return e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped",e})({});const dje={clock:{setTimeout:(e,r)=>setTimeout(e,r),clearTimeout:e=>clearTimeout(e)},logger:console.log.bind(console),devTools:!1};class pje{constructor(r,n){this.logic=r,this._snapshot=void 0,this.clock=void 0,this.options=void 0,this.id=void 0,this.mailbox=new cG(this._process.bind(this)),this.observers=new Set,this.eventListeners=new Map,this.logger=void 0,this._processingStatus=na.NotStarted,this._parent=void 0,this._syncSnapshot=void 0,this.ref=void 0,this._actorScope=void 0,this._systemId=void 0,this.sessionId=void 0,this.system=void 0,this._doneEvent=void 0,this.src=void 0,this._deferred=[];const o={...dje,...n},{clock:a,logger:i,parent:l,syncSnapshot:s,id:c,systemId:u,inspect:d}=o;this.system=l?l.system:uje(this,{clock:a,logger:i}),d&&!l&&this.system.inspect(Kw(d)),this.sessionId=this.system._bookId(),this.id=c??this.sessionId,this.logger=n?.logger??this.system._logger,this.clock=n?.clock??this.system._clock,this._parent=l,this._syncSnapshot=s,this.options=o,this.src=o.src??r,this.ref=this,this._actorScope={self:this,id:this.id,sessionId:this.sessionId,logger:this.logger,defer:p=>{this._deferred.push(p)},system:this.system,stopChild:p=>{if(p._parent!==this)throw new Error(`Cannot stop child actor ${p.id} of ${this.id} because it is not a child`);p._stop()},emit:p=>{const f=this.eventListeners.get(p.type),g=this.eventListeners.get("*");if(!f&&!g)return;const b=[...f?f.values():[],...g?g.values():[]];for(const x of b)try{x(p)}catch(w){as(w)}},actionExecutor:p=>{const f=()=>{if(this._actorScope.system._sendInspectionEvent({type:"@xstate.action",actorRef:this,action:{type:p.type,params:p.params}}),!p.exec)return;const g=V7;try{V7=!0,p.exec(p.info,p.params)}finally{V7=g}};this._processingStatus===na.Running?f():this._deferred.push(f)}},this.send=this.send.bind(this),this.system._sendInspectionEvent({type:"@xstate.actor",actorRef:this}),u&&(this._systemId=u,this.system._set(u,this)),this._initState(n?.snapshot??n?.state),u&&this._snapshot.status!=="active"&&this.system._unregister(this)}_initState(r){try{this._snapshot=r?this.logic.restoreSnapshot?this.logic.restoreSnapshot(r,this._actorScope):r:this.logic.getInitialSnapshot(this._actorScope,this.options?.input)}catch(n){this._snapshot={status:"error",output:void 0,error:n}}}update(r,n){this._snapshot=r;let o;for(;o=this._deferred.shift();)try{o()}catch(a){this._deferred.length=0,this._snapshot={...r,status:"error",error:a}}switch(this._snapshot.status){case"active":for(const a of this.observers)try{a.next?.(r)}catch(i){as(i)}break;case"done":for(const a of this.observers)try{a.next?.(r)}catch(i){as(i)}this._stopProcedure(),this._complete(),this._doneEvent=aje(this.id,this._snapshot.output),this._parent&&this.system._relay(this,this._parent,this._doneEvent);break;case"error":this._error(this._snapshot.error);break}this.system._sendInspectionEvent({type:"@xstate.snapshot",actorRef:this,event:n,snapshot:r})}subscribe(r,n,o){const a=Kw(r,n,o);if(this._processingStatus!==na.Stopped)this.observers.add(a);else switch(this._snapshot.status){case"done":try{a.complete?.()}catch(i){as(i)}break;case"error":{const i=this._snapshot.error;if(!a.error)as(i);else try{a.error(i)}catch(l){as(l)}break}}return{unsubscribe:()=>{this.observers.delete(a)}}}on(r,n){let o=this.eventListeners.get(r);o||(o=new Set,this.eventListeners.set(r,o));const a=n.bind(void 0);return o.add(a),{unsubscribe:()=>{o.delete(a)}}}start(){if(this._processingStatus===na.Running)return this;this._syncSnapshot&&this.subscribe({next:n=>{n.status==="active"&&this.system._relay(this,this._parent,{type:`xstate.snapshot.${this.id}`,snapshot:n})},error:()=>{}}),this.system._register(this.sessionId,this),this._systemId&&this.system._set(this._systemId,this),this._processingStatus=na.Running;const r=fG(this.options.input);switch(this.system._sendInspectionEvent({type:"@xstate.event",sourceRef:this._parent,actorRef:this,event:r}),this._snapshot.status){case"done":return this.update(this._snapshot,r),this;case"error":return this._error(this._snapshot.error),this}if(this._parent||this.system.start(),this.logic.start)try{this.logic.start(this._snapshot,this._actorScope)}catch(n){return this._snapshot={...this._snapshot,status:"error",error:n},this._error(n),this}return this.update(this._snapshot,r),this.options.devTools&&this.attachDevTools(),this.mailbox.start(),this}_process(r){let n,o;try{n=this.logic.transition(this._snapshot,r,this._actorScope)}catch(a){o={err:a}}if(o){const{err:a}=o;this._snapshot={...this._snapshot,status:"error",error:a},this._error(a);return}this.update(n,r),r.type===X0&&(this._stopProcedure(),this._complete())}_stop(){return this._processingStatus===na.Stopped?this:(this.mailbox.clear(),this._processingStatus===na.NotStarted?(this._processingStatus=na.Stopped,this):(this.mailbox.enqueue({type:X0}),this))}stop(){if(this._parent)throw new Error("A non-root actor cannot be stopped directly.");return this._stop()}_complete(){for(const r of this.observers)try{r.complete?.()}catch(n){as(n)}this.observers.clear()}_reportError(r){if(!this.observers.size){this._parent||as(r);return}let n=!1;for(const o of this.observers){const a=o.error;n||=!a;try{a?.(r)}catch(i){as(i)}}this.observers.clear(),n&&as(r)}_error(r){this._stopProcedure(),this._reportError(r),this._parent&&this.system._relay(this,this._parent,hG(this.id,r))}_stopProcedure(){return this._processingStatus!==na.Running?this:(this.system.scheduler.cancelAll(this),this.mailbox.clear(),this.mailbox=new cG(this._process.bind(this)),this._processingStatus=na.Stopped,this.system._unregister(this),this)}_send(r){this._processingStatus!==na.Stopped&&this.mailbox.enqueue(r)}send(r){this.system._relay(void 0,this,r)}attachDevTools(){const{devTools:r}=this.options;r&&(typeof r=="function"?r:Jze)(this)}toJSON(){return{xstate$$type:Y7,id:this.id}}getPersistedSnapshot(r){return this.logic.getPersistedSnapshot(this._snapshot,r)}[ije](){return this}getSnapshot(){return this._snapshot}}function qf(e,...[r]){return new pje(e,r)}function hje(e,r,n,o,{sendId:a}){const i=typeof a=="function"?a(n,o):a;return[r,{sendId:i},void 0]}function fje(e,r){e.defer(()=>{e.system.scheduler.cancel(e.self,r.sendId)})}function oa(e){function r(n,o){}return r.type="xstate.cancel",r.sendId=e,r.resolve=hje,r.execute=fje,r}function mje(e,r,n,o,{id:a,systemId:i,src:l,input:s,syncSnapshot:c}){const u=typeof l=="string"?q7(r.machine,l):l,d=typeof a=="function"?a(n):a;let p,f;return u&&(f=typeof s=="function"?s({context:r.context,event:n.event,self:e.self}):s,p=qf(u,{id:d,src:l,parent:e.self,syncSnapshot:c,systemId:i,input:f})),[np(r,{children:{...r.children,[d]:p}}),{id:a,systemId:i,actorRef:p,src:l,input:f},void 0]}function gje(e,{actorRef:r}){r&&e.defer(()=>{r._processingStatus!==na.Stopped&&r.start()})}function Vf(...[e,{id:r,systemId:n,input:o,syncSnapshot:a=!1}={}]){function i(l,s){}return i.type="xstate.spawnChild",i.id=r,i.systemId=n,i.src=e,i.input=o,i.syncSnapshot=a,i.resolve=mje,i.execute=gje,i}function yje(e,r,n,o,{actorRef:a}){const i=typeof a=="function"?a(n,o):a,l=typeof i=="string"?r.children[i]:i;let s=r.children;return l&&(s={...s},delete s[l.id]),[np(r,{children:s}),l,void 0]}function bje(e,r){if(r){if(e.system._unregister(r),r._processingStatus!==na.Running){e.stopChild(r);return}e.defer(()=>{e.stopChild(r)})}}function yu(e){function r(n,o){}return r.type="xstate.stopChild",r.actorRef=e,r.resolve=yje,r.execute=bje,r}function vje(e,{context:r,event:n},{guards:o}){return o.every(a=>Yf(a,r,n,e))}function Zw(e){function r(n,o){return!1}return r.check=vje,r.guards=e,r}function xje(e,{context:r,event:n},{guards:o}){return o.some(a=>Yf(a,r,n,e))}function _G(e){function r(n,o){return!1}return r.check=xje,r.guards=e,r}function Yf(e,r,n,o){const{machine:a}=o,i=typeof e=="function",l=i?e:a.implementations.guards[typeof e=="string"?e:e.type];if(!i&&!l)throw new Error(`Guard '${typeof e=="string"?e:e.type}' is not implemented.'.`);if(typeof l!="function")return Yf(l,r,n,o);const s={context:r,event:n},c=i||typeof e=="string"?void 0:"params"in e?typeof e.params=="function"?e.params({context:r,event:n}):e.params:void 0;return"check"in l?l.check(o,s,l):l(s,c)}const W7=e=>e.type==="atomic"||e.type==="final";function Wf(e){return Object.values(e.states).filter(r=>r.type!=="history")}function K0(e,r){const n=[];if(r===e)return n;let o=e.parent;for(;o&&o!==r;)n.push(o),o=o.parent;return n}function Qw(e){const r=new Set(e),n=SG(r);for(const o of r)if(o.type==="compound"&&(!n.get(o)||!n.get(o).length))RG(o).forEach(a=>r.add(a));else if(o.type==="parallel"){for(const a of Wf(o))if(a.type!=="history"&&!r.has(a)){const i=RG(a);for(const l of i)r.add(l)}}for(const o of r){let a=o.parent;for(;a;)r.add(a),a=a.parent}return r}function EG(e,r){const n=r.get(e);if(!n)return{};if(e.type==="compound"){const a=n[0];if(a){if(W7(a))return a.key}else return{}}const o={};for(const a of n)o[a.key]=EG(a,r);return o}function SG(e){const r=new Map;for(const n of e)r.has(n)||r.set(n,[]),n.parent&&(r.has(n.parent)||r.set(n.parent,[]),r.get(n.parent).push(n));return r}function CG(e,r){const n=Qw(r);return EG(e,SG(n))}function G7(e,r){return r.type==="compound"?Wf(r).some(n=>n.type==="final"&&e.has(n)):r.type==="parallel"?Wf(r).every(n=>G7(e,n)):r.type==="final"}const Jw=e=>e[0]===tje;function wje(e,r){return e.transitions.get(r)||[...e.transitions.keys()].filter(n=>{if(n===rje)return!0;if(!n.endsWith(".*"))return!1;const o=n.split("."),a=r.split(".");for(let i=0;io.length-n.length).flatMap(n=>e.transitions.get(n))}function kje(e){const r=e.config.after;if(!r)return[];const n=o=>{const a=oje(o,e.id),i=a.type;return e.entry.push(ln(a,{id:i,delay:o})),e.exit.push(oa(i)),i};return Object.keys(r).flatMap(o=>{const a=r[o],i=typeof a=="string"?{target:a}:a,l=Number.isNaN(+o)?o:+o,s=n(l);return Js(i).map(c=>({...c,event:s,delay:l}))}).map(o=>{const{delay:a}=o;return{...tp(e,o.event,o),delay:a}})}function tp(e,r,n){const o=xG(n.target),a=n.reenter??!1,i=Sje(e,o),l={...n,actions:Js(n.actions),guard:n.guard,target:i,source:e,reenter:a,eventType:r,toJSON:()=>({...l,source:`#${e.id}`,target:i?i.map(s=>`#${s.id}`):void 0})};return l}function _je(e){const r=new Map;if(e.config.on)for(const n of Object.keys(e.config.on)){if(n===dG)throw new Error('Null events ("") cannot be specified as a transition key. Use `always: { ... }` instead.');const o=e.config.on[n];r.set(n,Uf(o).map(a=>tp(e,n,a)))}if(e.config.onDone){const n=`xstate.done.state.${e.id}`;r.set(n,Uf(e.config.onDone).map(o=>tp(e,n,o)))}for(const n of e.invoke){if(n.onDone){const o=`xstate.done.actor.${n.id}`;r.set(o,Uf(n.onDone).map(a=>tp(e,o,a)))}if(n.onError){const o=`xstate.error.actor.${n.id}`;r.set(o,Uf(n.onError).map(a=>tp(e,o,a)))}if(n.onSnapshot){const o=`xstate.snapshot.${n.id}`;r.set(o,Uf(n.onSnapshot).map(a=>tp(e,o,a)))}}for(const n of e.after){let o=r.get(n.eventType);o||(o=[],r.set(n.eventType,o)),o.push(n)}return r}function Eje(e,r){const n=typeof r=="string"?e.states[r]:r?e.states[r.target]:void 0;if(!n&&r)throw new Error(`Initial state node "${r}" not found on parent state node #${e.id}`);const o={source:e,actions:!r||typeof r=="string"?[]:Js(r.actions),eventType:null,reenter:!1,target:n?[n]:[],toJSON:()=>({...o,source:`#${e.id}`,target:n?[`#${n.id}`]:[]})};return o}function Sje(e,r){if(r!==void 0)return r.map(n=>{if(typeof n!="string")return n;if(Jw(n))return e.machine.getStateNodeById(n);const o=n[0]===uG;if(o&&!e.parent)return e2(e,n.slice(1));const a=o?e.key+n:n;if(e.parent)try{return e2(e.parent,a)}catch(i){throw new Error(`Invalid transition definition for state node '${e.id}': +${i.message}`)}else throw new Error(`Invalid target: "${n}" is not a valid target from the root node. Did you mean ".${n}"?`)})}function TG(e){const r=xG(e.config.target);return r?{target:r.map(n=>typeof n=="string"?e2(e.parent,n):n)}:e.parent.initial}function rp(e){return e.type==="history"}function RG(e){const r=AG(e);for(const n of r)for(const o of K0(n,e))r.add(o);return r}function AG(e){const r=new Set;function n(o){if(!r.has(o)){if(r.add(o),o.type==="compound")n(o.initial.target[0]);else if(o.type==="parallel")for(const a of Wf(o))n(a)}}return n(e),r}function Gf(e,r){if(Jw(r))return e.machine.getStateNodeById(r);if(!e.states)throw new Error(`Unable to retrieve child state '${r}' from '${e.id}'; no child states exist.`);const n=e.states[r];if(!n)throw new Error(`Child state '${r}' does not exist on '${e.id}'`);return n}function e2(e,r){if(typeof r=="string"&&Jw(r))try{return e.machine.getStateNodeById(r)}catch{}const n=H7(r).slice();let o=e;for(;n.length;){const a=n.shift();if(!a.length)break;o=Gf(o,a)}return o}function t2(e,r){if(typeof r=="string"){const a=e.states[r];if(!a)throw new Error(`State '${r}' does not exist on '${e.id}'`);return[e,a]}const n=Object.keys(r),o=n.map(a=>Gf(e,a)).filter(Boolean);return[e.machine.root,e].concat(o,n.reduce((a,i)=>{const l=Gf(e,i);if(!l)return a;const s=t2(l,r[i]);return a.concat(s)},[]))}function Cje(e,r,n,o){const a=Gf(e,r).next(n,o);return!a||!a.length?e.next(n,o):a}function Tje(e,r,n,o){const a=Object.keys(r),i=Gf(e,a[0]),l=X7(i,r[a[0]],n,o);return!l||!l.length?e.next(n,o):l}function Rje(e,r,n,o){const a=[];for(const i of Object.keys(r)){const l=r[i];if(!l)continue;const s=Gf(e,i),c=X7(s,l,n,o);c&&a.push(...c)}return a.length?a:e.next(n,o)}function X7(e,r,n,o){return typeof r=="string"?Cje(e,r,n,o):Object.keys(r).length===1?Tje(e,r,n,o):Rje(e,r,n,o)}function Aje(e){return Object.keys(e.states).map(r=>e.states[r]).filter(r=>r.type==="history")}function bu(e,r){let n=e;for(;n.parent&&n.parent!==r;)n=n.parent;return n.parent===r}function Nje(e,r){const n=new Set(e),o=new Set(r);for(const a of n)if(o.has(a))return!0;for(const a of o)if(n.has(a))return!0;return!1}function NG(e,r,n){const o=new Set;for(const a of e){let i=!1;const l=new Set;for(const s of o)if(Nje(Z7([a],r,n),Z7([s],r,n)))if(bu(a.source,s.source))l.add(s);else{i=!0;break}if(!i){for(const s of l)o.delete(s);o.add(a)}}return Array.from(o)}function Dje(e){const[r,...n]=e;for(const o of K0(r,void 0))if(n.every(a=>bu(a,o)))return o}function K7(e,r){if(!e.target)return[];const n=new Set;for(const o of e.target)if(rp(o))if(r[o.id])for(const a of r[o.id])n.add(a);else for(const a of K7(TG(o),r))n.add(a);else n.add(o);return[...n]}function DG(e,r){const n=K7(e,r);if(!n)return;if(!e.reenter&&n.every(a=>a===e.source||bu(a,e.source)))return e.source;const o=Dje(n.concat(e.source));if(o)return o;if(!e.reenter)return e.source.machine.root}function Z7(e,r,n){const o=new Set;for(const a of e)if(a.target?.length){const i=DG(a,n);a.reenter&&a.source===i&&o.add(i);for(const l of r)bu(l,i)&&o.add(l)}return[...o]}function $je(e,r){if(e.length!==r.size)return!1;for(const n of e)if(!r.has(n))return!1;return!0}function Q7(e,r,n,o,a,i){if(!e.length)return r;const l=new Set(r._nodes);let s=r.historyValue;const c=NG(e,l,s);let u=r;a||([u,s]=Ije(u,o,n,c,l,s,i,n.actionExecutor)),u=Kf(u,o,n,c.flatMap(p=>p.actions),i,void 0),u=Oje(u,o,n,c,l,i,s,a);const d=[...l];u.status==="done"&&(u=Kf(u,o,n,d.sort((p,f)=>f.order-p.order).flatMap(p=>p.exit),i,void 0));try{return s===r.historyValue&&$je(r._nodes,l)?u:np(u,{_nodes:d,historyValue:s})}catch(p){throw p}}function Pje(e,r,n,o,a){if(o.output===void 0)return;const i=F7(a.id,a.output!==void 0&&a.parent?U7(a.output,e.context,r,n.self):void 0);return U7(o.output,e.context,i,n.self)}function Oje(e,r,n,o,a,i,l,s){let c=e;const u=new Set,d=new Set;Mje(o,l,d,u),s&&d.add(e.machine.root);const p=new Set;for(const f of[...u].sort((g,b)=>g.order-b.order)){a.add(f);const g=[];g.push(...f.entry);for(const b of f.invoke)g.push(Vf(b.src,{...b,syncSnapshot:!!b.onSnapshot}));if(d.has(f)){const b=f.initial.actions;g.push(...b)}if(c=Kf(c,r,n,g,i,f.invoke.map(b=>b.id)),f.type==="final"){const b=f.parent;let x=b?.type==="parallel"?b:b?.parent,w=x||f;for(b?.type==="compound"&&i.push(F7(b.id,f.output!==void 0?U7(f.output,c.context,r,n.self):void 0));x?.type==="parallel"&&!p.has(x)&&G7(a,x);)p.add(x),i.push(F7(x.id)),w=x,x=x.parent;if(x)continue;c=np(c,{status:"done",output:Pje(c,r,n,c.machine.root,w)})}}return c}function Mje(e,r,n,o){for(const a of e){const i=DG(a,r);for(const s of a.target||[])!rp(s)&&(a.source!==s||a.source!==i||a.reenter)&&(o.add(s),n.add(s)),Xf(s,r,n,o);const l=K7(a,r);for(const s of l){const c=K0(s,i);i?.type==="parallel"&&c.push(i),$G(o,r,n,c,!a.source.parent&&a.reenter?void 0:i)}}}function Xf(e,r,n,o){if(rp(e))if(r[e.id]){const a=r[e.id];for(const i of a)o.add(i),Xf(i,r,n,o);for(const i of a)J7(i,e.parent,o,r,n)}else{const a=TG(e);for(const i of a.target)o.add(i),a===e.parent?.initial&&n.add(e.parent),Xf(i,r,n,o);for(const i of a.target)J7(i,e.parent,o,r,n)}else if(e.type==="compound"){const[a]=e.initial.target;rp(a)||(o.add(a),n.add(a)),Xf(a,r,n,o),J7(a,e,o,r,n)}else if(e.type==="parallel")for(const a of Wf(e).filter(i=>!rp(i)))[...o].some(i=>bu(i,a))||(rp(a)||(o.add(a),n.add(a)),Xf(a,r,n,o))}function $G(e,r,n,o,a){for(const i of o)if((!a||bu(i,a))&&e.add(i),i.type==="parallel")for(const l of Wf(i).filter(s=>!rp(s)))[...e].some(s=>bu(s,l))||(e.add(l),Xf(l,r,n,e))}function J7(e,r,n,o,a){$G(n,o,a,K0(e,r))}function Ije(e,r,n,o,a,i,l,s){let c=e;const u=Z7(o,a,i);u.sort((p,f)=>f.order-p.order);let d;for(const p of u)for(const f of Aje(p)){let g;f.history==="deep"?g=b=>W7(b)&&bu(b,p):g=b=>b.parent===p,d??={...i},d[f.id]=Array.from(a).filter(g)}for(const p of u)c=Kf(c,r,n,[...p.exit,...p.invoke.map(f=>yu(f.id))],l,void 0),a.delete(p);return[c,d||i]}function Lje(e,r){return e.implementations.actions[r]}function PG(e,r,n,o,a,i){const{machine:l}=e;let s=e;for(const c of o){const u=typeof c=="function",d=u?c:Lje(l,typeof c=="string"?c:c.type),p={context:s.context,event:r,self:n.self,system:n.system},f=u||typeof c=="string"?void 0:"params"in c?typeof c.params=="function"?c.params({context:s.context,event:r}):c.params:void 0;if(!d||!("resolve"in d)){n.actionExecutor({type:typeof c=="string"?c:typeof c=="object"?c.type:c.name||"(anonymous)",info:p,params:f,exec:d});continue}const g=d,[b,x,w]=g.resolve(n,s,p,f,d,a);s=b,"retryResolve"in g&&i?.push([g,x]),"execute"in g&&n.actionExecutor({type:g.type,info:p,params:x,exec:g.execute.bind(null,n,x)}),w&&(s=PG(s,r,n,w,a,i))}return s}function Kf(e,r,n,o,a,i){const l=i?[]:void 0,s=PG(e,r,n,o,{internalQueue:a,deferredActorIds:i},l);return l?.forEach(([c,u])=>{c.retryResolve(n,s,u)}),s}function eS(e,r,n,o){let a=e;const i=[];function l(u,d,p){n.system._sendInspectionEvent({type:"@xstate.microstep",actorRef:n.self,event:d,snapshot:u,_transitions:p}),i.push(u)}if(r.type===X0)return a=np(OG(a,r,n),{status:"stopped"}),l(a,r,[]),{snapshot:a,microstates:i};let s=r;if(s.type!==pG){const u=s,d=sje(u),p=MG(u,a);if(d&&!p.length)return a=np(e,{status:"error",error:u.error}),l(a,u,[]),{snapshot:a,microstates:i};a=Q7(p,e,n,s,!1,o),l(a,u,p)}let c=!0;for(;a.status==="active";){let u=c?zje(a,s):[];const d=u.length?a:void 0;if(!u.length){if(!o.length)break;s=o.shift(),u=MG(s,a)}a=Q7(u,a,n,s,!1,o),c=a!==d,l(a,s,u)}return a.status!=="active"&&OG(a,s,n),{snapshot:a,microstates:i}}function OG(e,r,n){return Kf(e,r,n,Object.values(e.children).map(o=>yu(o)),[],void 0)}function MG(e,r){return r.machine.getTransitionData(r,e)}function zje(e,r){const n=new Set,o=e._nodes.filter(W7);for(const a of o)e:for(const i of[a].concat(K0(a,void 0)))if(i.always){for(const l of i.always)if(l.guard===void 0||Yf(l.guard,e.context,r,e)){n.add(l);break e}}return NG(Array.from(n),new Set(e._nodes),e.historyValue)}function jje(e,r){const n=Qw(t2(e,r));return CG(e,[...n])}function Bje(e){return!!e&&typeof e=="object"&&"machine"in e&&"value"in e}const Fje=function(e){return mG(e,this.value)},Hje=function(e){return this.tags.has(e)},Uje=function(e){const r=this.machine.getTransitionData(this,e);return!!r?.length&&r.some(n=>n.target!==void 0||n.actions.length)},qje=function(){const{_nodes:e,tags:r,machine:n,getMeta:o,toJSON:a,can:i,hasTag:l,matches:s,...c}=this;return{...c,tags:Array.from(r)}},Vje=function(){return this._nodes.reduce((e,r)=>(r.meta!==void 0&&(e[r.id]=r.meta),e),{})};function r2(e,r){return{status:e.status,output:e.output,error:e.error,machine:r,context:e.context,_nodes:e._nodes,value:CG(r.root,e._nodes),tags:new Set(e._nodes.flatMap(n=>n.tags)),children:e.children,historyValue:e.historyValue||{},matches:Fje,hasTag:Hje,can:Uje,getMeta:Vje,toJSON:qje}}function np(e,r={}){return r2({...e,...r},e.machine)}function Yje(e){if(typeof e!="object"||e===null)return{};const r={};for(const n in e){const o=e[n];Array.isArray(o)&&(r[n]=o.map(a=>({id:a.id})))}return r}function Wje(e,r){const{_nodes:n,tags:o,machine:a,children:i,context:l,can:s,hasTag:c,matches:u,getMeta:d,toJSON:p,...f}=e,g={};for(const b in i){const x=i[b];g[b]={snapshot:x.getPersistedSnapshot(r),src:x.src,systemId:x._systemId,syncSnapshot:x._syncSnapshot}}return{...f,context:IG(l),children:g,historyValue:Yje(f.historyValue)}}function IG(e){let r;for(const n in e){const o=e[n];if(o&&typeof o=="object")if("sessionId"in o&&"send"in o&&"ref"in o)r??=Array.isArray(e)?e.slice():{...e},r[n]={xstate$$type:Y7,id:o.id};else{const a=IG(o);a!==o&&(r??=Array.isArray(e)?e.slice():{...e},r[n]=a)}}return r??e}function Gje(e,r,n,o,{event:a,id:i,delay:l},{internalQueue:s}){const c=r.machine.implementations.delays;if(typeof a=="string")throw new Error(`Only event objects may be used with raise; use raise({ type: "${a}" }) instead`);const u=typeof a=="function"?a(n,o):a;let d;if(typeof l=="string"){const p=c&&c[l];d=typeof p=="function"?p(n,o):p}else d=typeof l=="function"?l(n,o):l;return typeof d!="number"&&s.push(u),[r,{event:u,id:i,delay:d},void 0]}function Xje(e,r){const{event:n,delay:o,id:a}=r;if(typeof o=="number"){e.defer(()=>{const i=e.self;e.system.scheduler.schedule(i,i,n,o,a)});return}}function ln(e,r){function n(o,a){}return n.type="xstate.raise",n.event=e,n.id=r?.id,n.delay=r?.delay,n.resolve=Gje,n.execute=Xje,n}const LG=new WeakMap;function zG(e){return{config:e,start:(r,n)=>{const{self:o,system:a,emit:i}=n,l={receivers:void 0,dispose:void 0};LG.set(o,l),l.dispose=e({input:r.input,system:a,self:o,sendBack:s=>{o.getSnapshot().status!=="stopped"&&o._parent&&a._relay(o,o._parent,s)},receive:s=>{l.receivers??=new Set,l.receivers.add(s)},emit:i})},transition:(r,n,o)=>{const a=LG.get(o.self);return n.type===X0?(r={...r,status:"stopped",error:void 0},a.dispose?.(),r):(a.receivers?.forEach(i=>i(n)),r)},getInitialSnapshot:(r,n)=>({status:"active",output:void 0,error:void 0,input:n}),getPersistedSnapshot:r=>r,restoreSnapshot:r=>r}}const jG="xstate.promise.resolve",BG="xstate.promise.reject",n2=new WeakMap;function Kje(e){return{config:e,transition:(r,n,o)=>{if(r.status!=="active")return r;switch(n.type){case jG:{const a=n.data;return{...r,status:"done",output:a,input:void 0}}case BG:return{...r,status:"error",error:n.data,input:void 0};case X0:return n2.get(o.self)?.abort(),{...r,status:"stopped",input:void 0};default:return r}},start:(r,{self:n,system:o,emit:a})=>{if(r.status!=="active")return;const i=new AbortController;n2.set(n,i),Promise.resolve(e({input:r.input,system:o,self:n,signal:i.signal,emit:a})).then(l=>{n.getSnapshot().status==="active"&&(n2.delete(n),o._relay(n,n,{type:jG,data:l}))},l=>{n.getSnapshot().status==="active"&&(n2.delete(n),o._relay(n,n,{type:BG,data:l}))})},getInitialSnapshot:(r,n)=>({status:"active",output:void 0,error:void 0,input:n}),getPersistedSnapshot:r=>r,restoreSnapshot:r=>r}}function Zje(e,{machine:r,context:n},o,a){const i=(l,s)=>{if(typeof l=="string"){const c=q7(r,l);if(!c)throw new Error(`Actor logic '${l}' not implemented in machine '${r.id}'`);const u=qf(c,{id:s?.id,parent:e.self,syncSnapshot:s?.syncSnapshot,input:typeof s?.input=="function"?s.input({context:n,event:o,self:e.self}):s?.input,src:l,systemId:s?.systemId});return a[u.id]=u,u}else return qf(l,{id:s?.id,parent:e.self,syncSnapshot:s?.syncSnapshot,input:s?.input,src:l,systemId:s?.systemId})};return(l,s)=>{const c=i(l,s);return a[c.id]=c,e.defer(()=>{c._processingStatus!==na.Stopped&&c.start()}),c}}function Qje(e,r,n,o,{assignment:a}){if(!r.context)throw new Error("Cannot assign to undefined `context`. Ensure that `context` is defined in the machine config.");const i={},l={context:r.context,event:n.event,spawn:Zje(e,r,n.event,i),self:e.self,system:e.system};let s={};if(typeof a=="function")s=a(l,o);else for(const u of Object.keys(a)){const d=a[u];s[u]=typeof d=="function"?d(l,o):d}const c=Object.assign({},r.context,s);return[np(r,{context:c,children:Object.keys(i).length?{...r.children,...i}:r.children}),void 0,void 0]}function et(e){function r(n,o){}return r.type="xstate.assign",r.assignment=e,r.resolve=Qje,r}const FG=new WeakMap;function Zf(e,r,n){let o=FG.get(e);return o?r in o||(o[r]=n()):(o={[r]:n()},FG.set(e,o)),o[r]}const Jje={},Z0=e=>typeof e=="string"?{type:e}:typeof e=="function"?"resolve"in e?{type:e.type}:{type:e.name}:e;class o2{constructor(r,n){if(this.config=r,this.key=void 0,this.id=void 0,this.type=void 0,this.path=void 0,this.states=void 0,this.history=void 0,this.entry=void 0,this.exit=void 0,this.parent=void 0,this.machine=void 0,this.meta=void 0,this.output=void 0,this.order=-1,this.description=void 0,this.tags=[],this.transitions=void 0,this.always=void 0,this.parent=n._parent,this.key=n._key,this.machine=n._machine,this.path=this.parent?this.parent.path.concat(this.key):[],this.id=this.config.id||[this.machine.id,...this.path].join(uG),this.type=this.config.type||(this.config.states&&Object.keys(this.config.states).length?"compound":this.config.history?"history":"atomic"),this.description=this.config.description,this.order=this.machine.idMap.size,this.machine.idMap.set(this.id,this),this.states=this.config.states?yG(this.config.states,(o,a)=>new o2(o,{_parent:this,_key:a,_machine:this.machine})):Jje,this.type==="compound"&&!this.config.initial)throw new Error(`No initial state specified for compound state node "#${this.id}". Try adding { initial: "${Object.keys(this.states)[0]}" } to the state config.`);this.history=this.config.history===!0?"shallow":this.config.history||!1,this.entry=Js(this.config.entry).slice(),this.exit=Js(this.config.exit).slice(),this.meta=this.config.meta,this.output=this.type==="final"||!this.parent?this.config.output:void 0,this.tags=Js(r.tags).slice()}_initialize(){this.transitions=_je(this),this.config.always&&(this.always=Uf(this.config.always).map(r=>tp(this,dG,r))),Object.keys(this.states).forEach(r=>{this.states[r]._initialize()})}get definition(){return{id:this.id,key:this.key,version:this.machine.version,type:this.type,initial:this.initial?{target:this.initial.target,source:this,actions:this.initial.actions.map(Z0),eventType:null,reenter:!1,toJSON:()=>({target:this.initial.target.map(r=>`#${r.id}`),source:`#${this.id}`,actions:this.initial.actions.map(Z0),eventType:null})}:void 0,history:this.history,states:yG(this.states,r=>r.definition),on:this.on,transitions:[...this.transitions.values()].flat().map(r=>({...r,actions:r.actions.map(Z0)})),entry:this.entry.map(Z0),exit:this.exit.map(Z0),meta:this.meta,order:this.order||-1,output:this.output,invoke:this.invoke,description:this.description,tags:this.tags}}toJSON(){return this.definition}get invoke(){return Zf(this,"invoke",()=>Js(this.config.invoke).map((r,n)=>{const{src:o,systemId:a}=r,i=r.id??wG(this.id,n),l=typeof o=="string"?o:`xstate.invoke.${wG(this.id,n)}`;return{...r,src:l,id:i,systemId:a,toJSON(){const{onDone:s,onError:c,...u}=r;return{...u,type:"xstate.invoke",src:l,id:i}}}}))}get on(){return Zf(this,"on",()=>[...this.transitions].flatMap(([r,n])=>n.map(o=>[r,o])).reduce((r,[n,o])=>(r[n]=r[n]||[],r[n].push(o),r),{}))}get after(){return Zf(this,"delayedTransitions",()=>kje(this))}get initial(){return Zf(this,"initial",()=>Eje(this,this.config.initial))}next(r,n){const o=n.type,a=[];let i;const l=Zf(this,`candidates-${o}`,()=>wje(this,o));for(const s of l){const{guard:c}=s,u=r.context;let d=!1;try{d=!c||Yf(c,u,n,r)}catch(p){const f=typeof c=="string"?c:typeof c=="object"?c.type:void 0;throw new Error(`Unable to evaluate guard ${f?`'${f}' `:""}in transition for event '${o}' in state node '${this.id}': +${p.message}`)}if(d){a.push(...s.actions),i=s;break}}return i?[i]:void 0}get events(){return Zf(this,"events",()=>{const{states:r}=this,n=new Set(this.ownEvents);if(r)for(const o of Object.keys(r)){const a=r[o];if(a.states)for(const i of a.events)n.add(`${i}`)}return Array.from(n)})}get ownEvents(){const r=new Set([...this.transitions.keys()].filter(n=>this.transitions.get(n).some(o=>!(!o.target&&!o.actions.length&&!o.reenter))));return Array.from(r)}}const eBe="#";class tS{constructor(r,n){this.config=r,this.version=void 0,this.schemas=void 0,this.implementations=void 0,this.__xstatenode=!0,this.idMap=new Map,this.root=void 0,this.id=void 0,this.states=void 0,this.events=void 0,this.id=r.id||"(machine)",this.implementations={actors:n?.actors??{},actions:n?.actions??{},delays:n?.delays??{},guards:n?.guards??{}},this.version=this.config.version,this.schemas=this.config.schemas,this.transition=this.transition.bind(this),this.getInitialSnapshot=this.getInitialSnapshot.bind(this),this.getPersistedSnapshot=this.getPersistedSnapshot.bind(this),this.restoreSnapshot=this.restoreSnapshot.bind(this),this.start=this.start.bind(this),this.root=new o2(r,{_key:this.id,_machine:this}),this.root._initialize(),this.states=this.root.states,this.events=this.root.events}provide(r){const{actions:n,guards:o,actors:a,delays:i}=this.implementations;return new tS(this.config,{actions:{...n,...r.actions},guards:{...o,...r.guards},actors:{...a,...r.actors},delays:{...i,...r.delays}})}resolveState(r){const n=jje(this.root,r.value),o=Qw(t2(this.root,n));return r2({_nodes:[...o],context:r.context||{},children:{},status:G7(o,this.root)?"done":r.status||"active",output:r.output,error:r.error,historyValue:r.historyValue},this)}transition(r,n,o){return eS(r,n,o,[]).snapshot}microstep(r,n,o){return eS(r,n,o,[]).microstates}getTransitionData(r,n){return X7(this.root,r.value,r,n)||[]}getPreInitialState(r,n,o){const{context:a}=this.config,i=r2({context:typeof a!="function"&&a?a:{},_nodes:[this.root],children:{},status:"active"},this);return typeof a=="function"?Kf(i,n,r,[et(({spawn:l,event:s,self:c})=>a({spawn:l,input:s.input,self:c}))],o,void 0):i}getInitialSnapshot(r,n){const o=fG(n),a=[],i=this.getPreInitialState(r,o,a),l=Q7([{target:[...AG(this.root)],source:this.root,reenter:!0,actions:[],eventType:null,toJSON:null}],i,r,o,!0,a),{snapshot:s}=eS(l,o,r,a);return s}start(r){Object.values(r.children).forEach(n=>{n.getSnapshot().status==="active"&&n.start()})}getStateNodeById(r){const n=H7(r),o=n.slice(1),a=Jw(n[0])?n[0].slice(eBe.length):n[0],i=this.idMap.get(a);if(!i)throw new Error(`Child state node '#${a}' does not exist on machine '${this.id}'`);return e2(i,o)}get definition(){return this.root.definition}toJSON(){return this.definition}getPersistedSnapshot(r,n){return Wje(r,n)}restoreSnapshot(r,n){const o={},a=r.children;Object.keys(a).forEach(p=>{const f=a[p],g=f.snapshot,b=f.src,x=typeof b=="string"?q7(this,b):b;if(!x)return;const w=qf(x,{id:p,parent:n.self,syncSnapshot:f.syncSnapshot,snapshot:g,src:b,systemId:f.systemId});o[p]=w});function i(p,f){if(f instanceof o2)return f;try{return p.machine.getStateNodeById(f.id)}catch{}}function l(p,f){if(!f||typeof f!="object")return{};const g={};for(const b in f){const x=f[b];for(const w of x){const k=i(p,w);k&&(g[b]??=[],g[b].push(k))}}return g}const s=l(this.root,r.historyValue),c=r2({...r,children:o,_nodes:Array.from(Qw(t2(this.root,r.value))),historyValue:s},this),u=new Set;function d(p,f){if(!u.has(p)){u.add(p);for(const g in p){const b=p[g];if(b&&typeof b=="object"){if("xstate$$type"in b&&b.xstate$$type===Y7){p[g]=f[b.id];continue}d(b,f)}}}}return d(c.context,o),c}}function tBe(e,r,n,o,{event:a}){const i=typeof a=="function"?a(n,o):a;return[r,{event:i},void 0]}function rBe(e,{event:r}){e.defer(()=>e.emit(r))}function ui(e){function r(n,o){}return r.type="xstate.emit",r.event=e,r.resolve=tBe,r.execute=rBe,r}let rS=(function(e){return e.Parent="#_parent",e.Internal="#_internal",e})({});function nBe(e,r,n,o,{to:a,event:i,id:l,delay:s},c){const u=r.machine.implementations.delays;if(typeof i=="string")throw new Error(`Only event objects may be used with sendTo; use sendTo({ type: "${i}" }) instead`);const d=typeof i=="function"?i(n,o):i;let p;if(typeof s=="string"){const b=u&&u[s];p=typeof b=="function"?b(n,o):b}else p=typeof s=="function"?s(n,o):s;const f=typeof a=="function"?a(n,o):a;let g;if(typeof f=="string"){if(f===rS.Parent?g=e.self._parent:f===rS.Internal?g=e.self:f.startsWith("#_")?g=r.children[f.slice(2)]:g=c.deferredActorIds?.includes(f)?f:r.children[f],!g)throw new Error(`Unable to send event to actor '${f}' from machine '${r.machine.id}'.`)}else g=f||e.self;return[r,{to:g,targetId:typeof f=="string"?f:void 0,event:d,id:l,delay:p},void 0]}function oBe(e,r,n){typeof n.to=="string"&&(n.to=r.children[n.to])}function aBe(e,r){e.defer(()=>{const{to:n,event:o,delay:a,id:i}=r;if(typeof a=="number"){e.system.scheduler.schedule(e.self,n,o,a,i);return}e.system._relay(e.self,n,o.type===nje?hG(e.self.id,o.data):o)})}function is(e,r,n){function o(a,i){}return o.type="xstate.sendTo",o.to=e,o.event=r,o.id=n?.id,o.delay=n?.delay,o.resolve=nBe,o.retryResolve=oBe,o.execute=aBe,o}function iBe(e,r){return is(rS.Parent,e,r)}function lBe(e,r,n,o,{collect:a}){const i=[],l=function(s){i.push(s)};return l.assign=(...s)=>{i.push(et(...s))},l.cancel=(...s)=>{i.push(oa(...s))},l.raise=(...s)=>{i.push(ln(...s))},l.sendTo=(...s)=>{i.push(is(...s))},l.sendParent=(...s)=>{i.push(iBe(...s))},l.spawnChild=(...s)=>{i.push(Vf(...s))},l.stopChild=(...s)=>{i.push(yu(...s))},l.emit=(...s)=>{i.push(ui(...s))},a({context:n.context,event:n.event,enqueue:l,check:s=>Yf(s,r.context,n.event,r),self:e.self,system:e.system},o),[r,void 0,i]}function sn(e){function r(n,o){}return r.type="xstate.enqueueActions",r.collect=e,r.resolve=lBe,r}function Ut(e,r){const n=Js(r);if(!n.includes(e.type)){const o=n.length===1?`type "${n[0]}"`:`one of types "${n.join('", "')}"`;throw new Error(`Expected event ${JSON.stringify(e)} to have ${o}`)}}function sBe(e,r){return new tS(e,r)}function ec({schemas:e,actors:r,actions:n,guards:o,delays:a}){return{createMachine:i=>sBe({...i,schemas:e},{actors:r,actions:n,guards:o,delays:a})}}DH();const HG=(e,r)=>{r(e);const n=e.getSnapshot().children;n&&Object.values(n).forEach(o=>{HG(o,r)})};function cBe(e){const r=[];HG(e,o=>{r.push([o,o.getSnapshot()]),o.observers=new Set});const n=e.system.getSnapshot?.();e.stop(),e.system._snapshot=n,r.forEach(([o,a])=>{o._processingStatus=0,o._snapshot=a})}function uBe(e,...[r]){let[[n,o],a]=E.useState(()=>{const i=qf(e,r);return[e.config,i]});if(e.config!==n){const i=qf(e,{...r,snapshot:o.getPersistedSnapshot({__unsafeAllowInlineActors:!0})});a([e.config,i]),o=i}return ELe(()=>{o.logic.implementations=e.implementations}),o}function nS(e,...[r,n]){const o=uBe(e,r);return E.useEffect(()=>{if(!n)return;const a=o.subscribe(Kw(n));return()=>{a.unsubscribe()}},[n]),E.useEffect(()=>(o.start(),()=>{cBe(o)}),[o]),o}function dBe(e,r){return e===r}function wn(e,r,n=dBe){const o=E.useCallback(i=>{if(!e)return()=>{};const{unsubscribe:l}=e.subscribe(i);return l},[e]),a=E.useCallback(()=>e?.getSnapshot(),[e]);return OH.useSyncExternalStoreWithSelector(o,a,a,r,n)}function tc(e){return{get overlaysActorRef(){return e.get("overlays")??null},get diagramActorRef(){return e.get("diagram")??null},get searchActorRef(){return e.get("search")??null}}}function Qf(e,r){return e.view.nodes.find(n=>n.id===r)??null}function oS(e,r){return e.view.edges.find(n=>n.id===r)??null}function pBe(e){const r=new Map,n=e.context.xynodes.reduce((o,a)=>{let i=a.position;if(a.parentId){const c=r.get(a.parentId)??{x:0,y:0};i={x:i.x+c.x,y:i.y+c.y}}if(r.set(a.id,i),a.hidden||a.data.dimmed)return o;const l=a.measured?.width??a.width??a.initialWidth,s=a.measured?.height??a.height??a.initialHeight;return o.minX=Math.min(o.minX,i.x),o.minY=Math.min(o.minY,i.y),o.maxX=Math.max(o.maxX,i.x+l),o.maxY=Math.max(o.maxY,i.y+s),o},{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0});return n.minX===1/0?{bounds:e.context.view.bounds}:{duration:350,bounds:{x:n.minX-10,y:n.minY-10,width:n.maxX-n.minX+20,height:n.maxY-n.minY+20}}}const hBe=32;function fBe(e){const r=mt(e.context.activeWalkthrough),n=mt(e.context.xyedges.find(c=>c.id===r.stepId)),o=e.context.xystore.getState(),a=mt(o.nodeLookup.get(n.source)),i=mt(o.nodeLookup.get(n.target)),l=VF([a,i],o);let s;if(r.parallelPrefix){const c=e.context.xynodes.find(u=>u.type==="seq-parallel"&&u.data.parallelPrefix===r.parallelPrefix);c&&(s={x:c.position.x,y:c.position.y,...Wn(c)})}return s??=mBe(n,o),s?s=Qc.merge(s,l):s=l,{duration:350,bounds:Qc.expand(s,hBe)}}function mBe(e,r){const n=r.nodeLookup.get(e.source),o=r.nodeLookup.get(e.target);if(!n||!o)return null;const a=dH({id:e.id,sourceNode:n,targetNode:o,sourceHandle:e.sourceHandle||null,targetHandle:e.targetHandle||null,connectionMode:r.connectionMode});return a?Qc.fromPoints([[a.sourceX,a.sourceY],[a.targetX,a.targetY]]):null}const aS=E.createContext(null);aS.displayName="DiagramActorSafeContext";const gBe=aS.Provider,Jf=()=>{const e=E.useContext(aS);if(e===null)throw new Error("DiagramActorRef is not provided");return e};function Wt(){const e=Jf();return E.useMemo(()=>({actor:e,send:r=>e.send(r),navigateTo:(r,n)=>{e.send({type:"navigate.to",viewId:r,...n&&{fromNode:n}})},navigate:r=>{e.send({type:`navigate.${r}`})},fitDiagram:(r=350)=>{e.send({type:"fitDiagram",duration:r})},openRelationshipsBrowser:r=>{e.send({type:"open.relationshipsBrowser",fqn:r})},openSource:r=>{e.send({type:"open.source",...r})},openElementDetails:(r,n)=>{e.send({type:"open.elementDetails",fqn:r,fromNode:n})},openRelationshipDetails:(...r)=>{r.length===1?e.send({type:"open.relationshipDetails",params:{edgeId:r[0]}}):e.send({type:"open.relationshipDetails",params:{source:r[0],target:r[1]}})},updateNodeData:(r,n)=>{e.send({type:"update.nodeData",nodeId:r,data:n})},updateEdgeData:(r,n)=>{e.send({type:"update.edgeData",edgeId:r,data:n})},scheduleSaveManualLayout:()=>{e.send({type:"saveManualLayout.schedule"})},cancelSaveManualLayout:()=>{const r=e.getSnapshot().children.syncLayout?.getSnapshot().value;return e.send({type:"saveManualLayout.cancel"}),r==="pending"||r==="paused"},align:r=>{e.send({type:"layout.align",mode:r})},resetEdgeControlPoints:()=>{e.send({type:"layout.resetEdgeControlPoints"})},focusNode:r=>{e.send({type:"focus.node",nodeId:r})},get currentView(){return e.getSnapshot().context.view},getSnapshot:()=>e.getSnapshot(),getContext:()=>e.getSnapshot().context,findDiagramNode:r=>Qf(e.getSnapshot().context,r),findEdge:r=>e.getSnapshot().context.xyedges.find(n=>n.data.id===r)??null,findDiagramEdge:r=>oS(e.getSnapshot().context,r),startWalkthrough:()=>{e.send({type:"walkthrough.start"})},walkthroughStep:(r="next")=>{e.send({type:"walkthrough.step",direction:r})},stopWalkthrough:()=>{e.send({type:"walkthrough.end"})},toggleFeature:(r,n)=>{e.send({type:"toggle.feature",feature:r,...n!==void 0&&{forceValue:n}})},highlightNotation:(r,n)=>{e.send({type:"notations.highlight",notation:r,...n&&{kind:n}})},unhighlightNotation:()=>{e.send({type:"notations.unhighlight"})},openSearch:r=>{e.send({type:"open.search",...r&&{search:r}})},switchDynamicViewVariant:r=>{e.send({type:"switch.dynamicViewVariant",variant:r})}}),[e])}function UG(e,r=Gn){const n=Jf();return wn(n,it(e),r)}function Da(e,r=Gn,n){const o=Jf(),a=E.useCallback(i=>e(i.context),n??[]);return wn(o,a,r)}function il(e,r){const n=Jf(),o=E.useRef(r);o.current=r,E.useEffect(()=>{const a=n.on(e,i=>{o.current(i)});return()=>{a.unsubscribe()}},[n])}const yBe=e=>e.children.overlays;function qG(){return UG(yBe,Object.is)}const bBe=e=>e.children.search??null;function vBe(){return UG(bBe,Object.is)}function iS(e,r){e.indexOf(r)===-1&&e.push(r)}function a2(e,r){const n=e.indexOf(r);n>-1&&e.splice(n,1)}const rc=(e,r,n)=>n>r?r:n{};const nc={},VG=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e);function YG(e){return typeof e=="object"&&e!==null}const WG=e=>/^0[^.\s]+$/u.test(e);function sS(e){let r;return()=>(r===void 0&&(r=e()),r)}const di=e=>e,xBe=(e,r)=>n=>r(e(n)),Q0=(...e)=>e.reduce(xBe),em=(e,r,n)=>{const o=r-e;return o===0?1:(n-e)/o};class cS{constructor(){this.subscriptions=[]}add(r){return iS(this.subscriptions,r),()=>a2(this.subscriptions,r)}notify(r,n,o){const a=this.subscriptions.length;if(a)if(a===1)this.subscriptions[0](r,n,o);else for(let i=0;ie*1e3,pi=e=>e/1e3;function GG(e,r){return r?e*(1e3/r):0}const wBe=(e,r,n)=>{const o=r-e;return((n-e)%o+o)%o+e},XG=(e,r,n)=>(((1-3*n+3*r)*e+(3*n-6*r))*e+3*r)*e,kBe=1e-7,_Be=12;function EBe(e,r,n,o,a){let i,l,s=0;do l=r+(n-r)/2,i=XG(l,o,a)-e,i>0?n=l:r=l;while(Math.abs(i)>kBe&&++s<_Be);return l}function J0(e,r,n,o){if(e===r&&n===o)return di;const a=i=>EBe(i,0,1,e,n);return i=>i===0||i===1?i:XG(a(i),r,o)}const KG=e=>r=>r<=.5?e(2*r)/2:(2-e(2*(1-r)))/2,ZG=e=>r=>1-e(1-r),QG=J0(.33,1.53,.69,.99),uS=ZG(QG),JG=KG(uS),eX=e=>(e*=2)<1?.5*uS(e):.5*(2-Math.pow(2,-10*(e-1))),dS=e=>1-Math.sin(Math.acos(e)),tX=ZG(dS),rX=KG(dS),SBe=J0(.42,0,1,1),CBe=J0(0,0,.58,1),nX=J0(.42,0,.58,1),oX=e=>Array.isArray(e)&&typeof e[0]!="number";function aX(e,r){return oX(e)?e[wBe(0,e.length,r)]:e}const iX=e=>Array.isArray(e)&&typeof e[0]=="number",TBe={linear:di,easeIn:SBe,easeInOut:nX,easeOut:CBe,circIn:dS,circInOut:rX,circOut:tX,backIn:uS,backInOut:JG,backOut:QG,anticipate:eX},RBe=e=>typeof e=="string",lX=e=>{if(iX(e)){lS(e.length===4);const[r,n,o,a]=e;return J0(r,n,o,a)}else if(RBe(e))return TBe[e];return e},i2=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function ABe(e,r){let n=new Set,o=new Set,a=!1,i=!1;const l=new WeakSet;let s={delta:0,timestamp:0,isProcessing:!1};function c(d){l.has(d)&&(u.schedule(d),e()),d(s)}const u={schedule:(d,p=!1,f=!1)=>{const g=f&&a?n:o;return p&&l.add(d),g.has(d)||g.add(d),d},cancel:d=>{o.delete(d),l.delete(d)},process:d=>{if(s=d,a){i=!0;return}a=!0,[n,o]=[o,n],n.forEach(c),n.clear(),a=!1,i&&(i=!1,u.process(d))}};return u}const NBe=40;function sX(e,r){let n=!1,o=!0;const a={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,l=i2.reduce((k,C)=>(k[C]=ABe(i),k),{}),{setup:s,read:c,resolveKeyframes:u,preUpdate:d,update:p,preRender:f,render:g,postRender:b}=l,x=()=>{const k=nc.useManualTiming?a.timestamp:performance.now();n=!1,nc.useManualTiming||(a.delta=o?1e3/60:Math.max(Math.min(k-a.timestamp,NBe),1)),a.timestamp=k,a.isProcessing=!0,s.process(a),c.process(a),u.process(a),d.process(a),p.process(a),f.process(a),g.process(a),b.process(a),a.isProcessing=!1,n&&r&&(o=!1,e(x))},w=()=>{n=!0,o=!0,a.isProcessing||e(x)};return{schedule:i2.reduce((k,C)=>{const _=l[C];return k[C]=(T,R=!1,A=!1)=>(n||w(),_.schedule(T,R,A)),k},{}),cancel:k=>{for(let C=0;C(l2===void 0&&aa.set(mo.isProcessing||nc.useManualTiming?mo.timestamp:performance.now()),l2),set:e=>{l2=e,queueMicrotask(DBe)}},cX=e=>r=>typeof r=="string"&&r.startsWith(e),hS=cX("--"),$Be=cX("var(--"),fS=e=>$Be(e)?PBe.test(e.split("/*")[0].trim()):!1,PBe=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,tm={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},ey={...tm,transform:e=>rc(0,1,e)},s2={...tm,default:1},ty=e=>Math.round(e*1e5)/1e5,mS=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function OBe(e){return e==null}const MBe=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,gS=(e,r)=>n=>!!(typeof n=="string"&&MBe.test(n)&&n.startsWith(e)||r&&!OBe(n)&&Object.prototype.hasOwnProperty.call(n,r)),uX=(e,r,n)=>o=>{if(typeof o!="string")return o;const[a,i,l,s]=o.match(mS);return{[e]:parseFloat(a),[r]:parseFloat(i),[n]:parseFloat(l),alpha:s!==void 0?parseFloat(s):1}},IBe=e=>rc(0,255,e),yS={...tm,transform:e=>Math.round(IBe(e))},op={test:gS("rgb","red"),parse:uX("red","green","blue"),transform:({red:e,green:r,blue:n,alpha:o=1})=>"rgba("+yS.transform(e)+", "+yS.transform(r)+", "+yS.transform(n)+", "+ty(ey.transform(o))+")"};function LBe(e){let r="",n="",o="",a="";return e.length>5?(r=e.substring(1,3),n=e.substring(3,5),o=e.substring(5,7),a=e.substring(7,9)):(r=e.substring(1,2),n=e.substring(2,3),o=e.substring(3,4),a=e.substring(4,5),r+=r,n+=n,o+=o,a+=a),{red:parseInt(r,16),green:parseInt(n,16),blue:parseInt(o,16),alpha:a?parseInt(a,16)/255:1}}const bS={test:gS("#"),parse:LBe,transform:op.transform},ry=e=>({test:r=>typeof r=="string"&&r.endsWith(e)&&r.split(" ").length===1,parse:parseFloat,transform:r=>`${r}${e}`}),xu=ry("deg"),ls=ry("%"),vt=ry("px"),zBe=ry("vh"),jBe=ry("vw"),dX={...ls,parse:e=>ls.parse(e)/100,transform:e=>ls.transform(e*100)},rm={test:gS("hsl","hue"),parse:uX("hue","saturation","lightness"),transform:({hue:e,saturation:r,lightness:n,alpha:o=1})=>"hsla("+Math.round(e)+", "+ls.transform(ty(r))+", "+ls.transform(ty(n))+", "+ty(ey.transform(o))+")"},kn={test:e=>op.test(e)||bS.test(e)||rm.test(e),parse:e=>op.test(e)?op.parse(e):rm.test(e)?rm.parse(e):bS.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?op.transform(e):rm.transform(e),getAnimatableNone:e=>{const r=kn.parse(e);return r.alpha=0,kn.transform(r)}},BBe=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function FBe(e){return isNaN(e)&&typeof e=="string"&&(e.match(mS)?.length||0)+(e.match(BBe)?.length||0)>0}const pX="number",hX="color",HBe="var",UBe="var(",fX="${}",qBe=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ny(e){const r=e.toString(),n=[],o={color:[],number:[],var:[]},a=[];let i=0;const l=r.replace(qBe,s=>(kn.test(s)?(o.color.push(i),a.push(hX),n.push(kn.parse(s))):s.startsWith(UBe)?(o.var.push(i),a.push(HBe),n.push(s)):(o.number.push(i),a.push(pX),n.push(parseFloat(s))),++i,fX)).split(fX);return{values:n,split:l,indexes:o,types:a}}function mX(e){return ny(e).values}function gX(e){const{split:r,types:n}=ny(e),o=r.length;return a=>{let i="";for(let l=0;ltypeof e=="number"?0:kn.test(e)?kn.getAnimatableNone(e):e;function YBe(e){const r=mX(e);return gX(e)(r.map(VBe))}const wu={test:FBe,parse:mX,createTransformer:gX,getAnimatableNone:YBe};function vS(e,r,n){return n<0&&(n+=1),n>1&&(n-=1),n<.16666666666666666?e+(r-e)*6*n:n<.5?r:n<.6666666666666666?e+(r-e)*(.6666666666666666-n)*6:e}function WBe({hue:e,saturation:r,lightness:n,alpha:o}){e/=360,r/=100,n/=100;let a=0,i=0,l=0;if(!r)a=i=l=n;else{const s=n<.5?n*(1+r):n+r-n*r,c=2*n-s;a=vS(c,s,e+.3333333333333333),i=vS(c,s,e),l=vS(c,s,e-.3333333333333333)}return{red:Math.round(a*255),green:Math.round(i*255),blue:Math.round(l*255),alpha:o}}function c2(e,r){return n=>n>0?r:e}const Ir=(e,r,n)=>e+(r-e)*n,xS=(e,r,n)=>{const o=e*e,a=n*(r*r-o)+o;return a<0?0:Math.sqrt(a)},GBe=[bS,op,rm],XBe=e=>GBe.find(r=>r.test(e));function yX(e){const r=XBe(e);if(!r)return!1;let n=r.parse(e);return r===rm&&(n=WBe(n)),n}const bX=(e,r)=>{const n=yX(e),o=yX(r);if(!n||!o)return c2(e,r);const a={...n};return i=>(a.red=xS(n.red,o.red,i),a.green=xS(n.green,o.green,i),a.blue=xS(n.blue,o.blue,i),a.alpha=Ir(n.alpha,o.alpha,i),op.transform(a))},wS=new Set(["none","hidden"]);function KBe(e,r){return wS.has(e)?n=>n<=0?e:r:n=>n>=1?r:e}function ZBe(e,r){return n=>Ir(e,r,n)}function kS(e){return typeof e=="number"?ZBe:typeof e=="string"?fS(e)?c2:kn.test(e)?bX:eFe:Array.isArray(e)?vX:typeof e=="object"?kn.test(e)?bX:QBe:c2}function vX(e,r){const n=[...e],o=n.length,a=e.map((i,l)=>kS(i)(i,r[l]));return i=>{for(let l=0;l{for(const i in o)n[i]=o[i](a);return n}}function JBe(e,r){const n=[],o={color:0,var:0,number:0};for(let a=0;a{const n=wu.createTransformer(r),o=ny(e),a=ny(r);return o.indexes.var.length===a.indexes.var.length&&o.indexes.color.length===a.indexes.color.length&&o.indexes.number.length>=a.indexes.number.length?wS.has(e)&&!a.values.length||wS.has(r)&&!o.values.length?KBe(e,r):Q0(vX(JBe(o,a),a.values),n):c2(e,r)};function xX(e,r,n){return typeof e=="number"&&typeof r=="number"&&typeof n=="number"?Ir(e,r,n):kS(e)(e,r)}const tFe=e=>{const r=({timestamp:n})=>e(n);return{start:(n=!0)=>Pr.update(r,n),stop:()=>vu(r),now:()=>mo.isProcessing?mo.timestamp:aa.now()}},wX=(e,r,n=10)=>{let o="";const a=Math.max(Math.round(r/n),2);for(let i=0;i=u2?1/0:r}function kX(e,r=100,n){const o=n({...e,keyframes:[0,r]}),a=Math.min(_S(o),u2);return{type:"keyframes",ease:i=>o.next(a*i).value/r,duration:pi(a)}}const rFe=5;function _X(e,r,n){const o=Math.max(r-rFe,0);return GG(n-e(o),r-o)}const Kr={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},ES=.001;function nFe({duration:e=Kr.duration,bounce:r=Kr.bounce,velocity:n=Kr.velocity,mass:o=Kr.mass}){let a,i,l=1-r;l=rc(Kr.minDamping,Kr.maxDamping,l),e=rc(Kr.minDuration,Kr.maxDuration,pi(e)),l<1?(a=u=>{const d=u*l,p=d*e,f=d-n,g=SS(u,l),b=Math.exp(-p);return ES-f/g*b},i=u=>{const d=u*l*e,p=d*n+n,f=Math.pow(l,2)*Math.pow(u,2)*e,g=Math.exp(-d),b=SS(Math.pow(u,2),l);return(-a(u)+ES>0?-1:1)*((p-f)*g)/b}):(a=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-ES+d*p},i=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const s=5/e,c=aFe(a,i,s);if(e=ll(e),isNaN(c))return{stiffness:Kr.stiffness,damping:Kr.damping,duration:e};{const u=Math.pow(c,2)*o;return{stiffness:u,damping:l*2*Math.sqrt(o*u),duration:e}}}const oFe=12;function aFe(e,r,n){let o=n;for(let a=1;ae[n]!==void 0)}function sFe(e){let r={velocity:Kr.velocity,stiffness:Kr.stiffness,damping:Kr.damping,mass:Kr.mass,isResolvedFromDuration:!1,...e};if(!EX(e,lFe)&&EX(e,iFe))if(e.visualDuration){const n=e.visualDuration,o=2*Math.PI/(n*1.2),a=o*o,i=2*rc(.05,1,1-(e.bounce||0))*Math.sqrt(a);r={...r,mass:Kr.mass,stiffness:a,damping:i}}else{const n=nFe(e);r={...r,...n,mass:Kr.mass},r.isResolvedFromDuration=!0}return r}function oy(e=Kr.visualDuration,r=Kr.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:r}:e;let{restSpeed:o,restDelta:a}=n;const i=n.keyframes[0],l=n.keyframes[n.keyframes.length-1],s={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:p,velocity:f,isResolvedFromDuration:g}=sFe({...n,velocity:-pi(n.velocity||0)}),b=f||0,x=u/(2*Math.sqrt(c*d)),w=l-i,k=pi(Math.sqrt(c/d)),C=Math.abs(w)<5;o||(o=C?Kr.restSpeed.granular:Kr.restSpeed.default),a||(a=C?Kr.restDelta.granular:Kr.restDelta.default);let _;if(x<1){const R=SS(k,x);_=A=>{const D=Math.exp(-x*k*A);return l-D*((b+x*k*w)/R*Math.sin(R*A)+w*Math.cos(R*A))}}else if(x===1)_=R=>l-Math.exp(-k*R)*(w+(b+k*w)*R);else{const R=k*Math.sqrt(x*x-1);_=A=>{const D=Math.exp(-x*k*A),N=Math.min(R*A,300);return l-D*((b+x*k*w)*Math.sinh(N)+R*w*Math.cosh(N))/R}}const T={calculatedDuration:g&&p||null,next:R=>{const A=_(R);if(g)s.done=R>=p;else{let D=R===0?b:0;x<1&&(D=R===0?ll(b):_X(_,R,A));const N=Math.abs(D)<=o,P=Math.abs(l-A)<=a;s.done=N&&P}return s.value=s.done?l:A,s},toString:()=>{const R=Math.min(_S(T),u2),A=wX(D=>T.next(R*D).value,R,30);return R+"ms "+A},toTransition:()=>{}};return T}oy.applyToOptions=e=>{const r=kX(e,100,oy);return e.ease=r.ease,e.duration=ll(r.duration),e.type="keyframes",e};function CS({keyframes:e,velocity:r=0,power:n=.8,timeConstant:o=325,bounceDamping:a=10,bounceStiffness:i=500,modifyTarget:l,min:s,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],f={done:!1,value:p},g=N=>s!==void 0&&Nc,b=N=>s===void 0?c:c===void 0||Math.abs(s-N)-x*Math.exp(-N/o),_=N=>k+C(N),T=N=>{const P=C(N),O=_(N);f.done=Math.abs(P)<=u,f.value=f.done?k:O};let R,A;const D=N=>{g(f.value)&&(R=N,A=oy({keyframes:[f.value,b(f.value)],velocity:_X(_,N,f.value),damping:a,stiffness:i,restDelta:u,restSpeed:d}))};return D(0),{calculatedDuration:null,next:N=>{let P=!1;return!A&&R===void 0&&(P=!0,T(N),D(N)),R!==void 0&&N>=R?A.next(N-R):(!P&&T(N),f)}}}function cFe(e,r,n){const o=[],a=n||nc.mix||xX,i=e.length-1;for(let l=0;lr[0];if(i===2&&r[0]===r[1])return()=>r[1];const l=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),r=[...r].reverse());const s=cFe(r,o,a),c=s.length,u=d=>{if(l&&d1)for(;pu(rc(e[0],e[i-1],d)):u}function SX(e,r){const n=e[e.length-1];for(let o=1;o<=r;o++){const a=em(0,r,o);e.push(Ir(n,1,a))}}function CX(e){const r=[0];return SX(r,e.length-1),r}function dFe(e,r){return e.map(n=>n*r)}function pFe(e,r){return e.map(()=>r||nX).splice(0,e.length-1)}function ay({duration:e=300,keyframes:r,times:n,ease:o="easeInOut"}){const a=oX(o)?o.map(lX):lX(o),i={done:!1,value:r[0]},l=dFe(n&&n.length===r.length?n:CX(r),e),s=uFe(l,r,{ease:Array.isArray(a)?a:pFe(r,a)});return{calculatedDuration:e,next:c=>(i.value=s(c),i.done=c>=e,i)}}const hFe=e=>e!==null;function TS(e,{repeat:r,repeatType:n="loop"},o,a=1){const i=e.filter(hFe),l=a<0||r&&n!=="loop"&&r%2===1?0:i.length-1;return!l||o===void 0?i[l]:o}const fFe={decay:CS,inertia:CS,tween:ay,keyframes:ay,spring:oy};function TX(e){typeof e.type=="string"&&(e.type=fFe[e.type])}class RS{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(r=>{this.resolve=r})}notifyFinished(){this.resolve()}then(r,n){return this.finished.then(r,n)}}const mFe=e=>e/100;class AS extends RS{constructor(r){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{const{motionValue:n}=this.options;n&&n.updatedAt!==aa.now()&&this.tick(aa.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=r,this.initAnimation(),this.play(),r.autoplay===!1&&this.pause()}initAnimation(){const{options:r}=this;TX(r);const{type:n=ay,repeat:o=0,repeatDelay:a=0,repeatType:i,velocity:l=0}=r;let{keyframes:s}=r;const c=n||ay;c!==ay&&typeof s[0]!="number"&&(this.mixKeyframes=Q0(mFe,xX(s[0],s[1])),s=[0,100]);const u=c({...r,keyframes:s});i==="mirror"&&(this.mirroredGenerator=c({...r,keyframes:[...s].reverse(),velocity:-l})),u.calculatedDuration===null&&(u.calculatedDuration=_S(u));const{calculatedDuration:d}=u;this.calculatedDuration=d,this.resolvedDuration=d+a,this.totalDuration=this.resolvedDuration*(o+1)-a,this.generator=u}updateTime(r){const n=Math.round(r-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(r,n=!1){const{generator:o,totalDuration:a,mixKeyframes:i,mirroredGenerator:l,resolvedDuration:s,calculatedDuration:c}=this;if(this.startTime===null)return o.next(0);const{delay:u=0,keyframes:d,repeat:p,repeatType:f,repeatDelay:g,type:b,onUpdate:x,finalKeyframe:w}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,r):this.speed<0&&(this.startTime=Math.min(r-a/this.speed,this.startTime)),n?this.currentTime=r:this.updateTime(r);const k=this.currentTime-u*(this.playbackSpeed>=0?1:-1),C=this.playbackSpeed>=0?k<0:k>a;this.currentTime=Math.max(k,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=a);let _=this.currentTime,T=o;if(p){const N=Math.min(this.currentTime,a)/s;let P=Math.floor(N),O=N%1;!O&&N>=1&&(O=1),O===1&&P--,P=Math.min(P,p+1),P%2&&(f==="reverse"?(O=1-O,g&&(O-=g/s)):f==="mirror"&&(T=l)),_=rc(0,1,O)*s}const R=C?{done:!1,value:d[0]}:T.next(_);i&&(R.value=i(R.value));let{done:A}=R;!C&&c!==null&&(A=this.playbackSpeed>=0?this.currentTime>=a:this.currentTime<=0);const D=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&A);return D&&b!==CS&&(R.value=TS(d,this.options,w,this.speed)),x&&x(R.value),D&&this.finish(),R}then(r,n){return this.finished.then(r,n)}get duration(){return pi(this.calculatedDuration)}get iterationDuration(){const{delay:r=0}=this.options||{};return this.duration+pi(r)}get time(){return pi(this.currentTime)}set time(r){r=ll(r),this.currentTime=r,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=r:this.driver&&(this.startTime=this.driver.now()-r/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(r){this.updateTime(aa.now());const n=this.playbackSpeed!==r;this.playbackSpeed=r,n&&(this.time=pi(this.currentTime))}play(){if(this.isStopped)return;const{driver:r=tFe,startTime:n}=this.options;this.driver||(this.driver=r(a=>this.tick(a))),this.options.onPlay?.();const o=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=o):this.holdTime!==null?this.startTime=o-this.holdTime:this.startTime||(this.startTime=n??o),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(aa.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(r){return this.startTime=0,this.tick(r,!0)}attachTimeline(r){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),r.observe(this)}}function gFe(e){for(let r=1;re*180/Math.PI,NS=e=>{const r=ap(Math.atan2(e[1],e[0]));return DS(r)},yFe={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:NS,rotateZ:NS,skewX:e=>ap(Math.atan(e[1])),skewY:e=>ap(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},DS=e=>(e=e%360,e<0&&(e+=360),e),RX=NS,AX=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),NX=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),bFe={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:AX,scaleY:NX,scale:e=>(AX(e)+NX(e))/2,rotateX:e=>DS(ap(Math.atan2(e[6],e[5]))),rotateY:e=>DS(ap(Math.atan2(-e[2],e[0]))),rotateZ:RX,rotate:RX,skewX:e=>ap(Math.atan(e[4])),skewY:e=>ap(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function $S(e){return e.includes("scale")?1:0}function PS(e,r){if(!e||e==="none")return $S(r);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let o,a;if(n)o=bFe,a=n;else{const s=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);o=yFe,a=s}if(!a)return $S(r);const i=o[r],l=a[1].split(",").map(xFe);return typeof i=="function"?i(l):l[i]}const vFe=(e,r)=>{const{transform:n="none"}=getComputedStyle(e);return PS(n,r)};function xFe(e){return parseFloat(e.trim())}const nm=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],om=new Set(nm),DX=e=>e===tm||e===vt,wFe=new Set(["x","y","z"]),kFe=nm.filter(e=>!wFe.has(e));function _Fe(e){const r=[];return kFe.forEach(n=>{const o=e.getValue(n);o!==void 0&&(r.push([n,o.get()]),o.set(n.startsWith("scale")?1:0))}),r}const ip={width:({x:e},{paddingLeft:r="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(r)-parseFloat(n),height:({y:e},{paddingTop:r="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(r)-parseFloat(n),top:(e,{top:r})=>parseFloat(r),left:(e,{left:r})=>parseFloat(r),bottom:({y:e},{top:r})=>parseFloat(r)+(e.max-e.min),right:({x:e},{left:r})=>parseFloat(r)+(e.max-e.min),x:(e,{transform:r})=>PS(r,"x"),y:(e,{transform:r})=>PS(r,"y")};ip.translateX=ip.x,ip.translateY=ip.y;const lp=new Set;let OS=!1,MS=!1,IS=!1;function $X(){if(MS){const e=Array.from(lp).filter(o=>o.needsMeasurement),r=new Set(e.map(o=>o.element)),n=new Map;r.forEach(o=>{const a=_Fe(o);a.length&&(n.set(o,a),o.render())}),e.forEach(o=>o.measureInitialState()),r.forEach(o=>{o.render();const a=n.get(o);a&&a.forEach(([i,l])=>{o.getValue(i)?.set(l)})}),e.forEach(o=>o.measureEndState()),e.forEach(o=>{o.suspendedScrollY!==void 0&&window.scrollTo(0,o.suspendedScrollY)})}MS=!1,OS=!1,lp.forEach(e=>e.complete(IS)),lp.clear()}function PX(){lp.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(MS=!0)})}function EFe(){IS=!0,PX(),$X(),IS=!1}class LS{constructor(r,n,o,a,i,l=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...r],this.onComplete=n,this.name=o,this.motionValue=a,this.element=i,this.isAsync=l}scheduleResolve(){this.state="scheduled",this.isAsync?(lp.add(this),OS||(OS=!0,Pr.read(PX),Pr.resolveKeyframes($X))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:r,name:n,element:o,motionValue:a}=this;if(r[0]===null){const i=a?.get(),l=r[r.length-1];if(i!==void 0)r[0]=i;else if(o&&n){const s=o.readValue(n,l);s!=null&&(r[0]=s)}r[0]===void 0&&(r[0]=l),a&&i===void 0&&a.set(r[0])}gFe(r)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(r=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,r),lp.delete(this)}cancel(){this.state==="scheduled"&&(lp.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const SFe=e=>e.startsWith("--");function CFe(e,r,n){SFe(r)?e.style.setProperty(r,n):e.style[r]=n}const TFe=sS(()=>window.ScrollTimeline!==void 0),RFe={};function AFe(e,r){const n=sS(e);return()=>RFe[r]??n()}const OX=AFe(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),iy=([e,r,n,o])=>`cubic-bezier(${e}, ${r}, ${n}, ${o})`,MX={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:iy([0,.65,.55,1]),circOut:iy([.55,0,1,.45]),backIn:iy([.31,.01,.66,-.59]),backOut:iy([.33,1.53,.69,.99])};function IX(e,r){if(e)return typeof e=="function"?OX()?wX(e,r):"ease-out":iX(e)?iy(e):Array.isArray(e)?e.map(n=>IX(n,r)||MX.easeOut):MX[e]}function NFe(e,r,n,{delay:o=0,duration:a=300,repeat:i=0,repeatType:l="loop",ease:s="easeOut",times:c}={},u=void 0){const d={[r]:n};c&&(d.offset=c);const p=IX(s,a);Array.isArray(p)&&(d.easing=p);const f={delay:o,duration:a,easing:Array.isArray(p)?"linear":p,fill:"both",iterations:i+1,direction:l==="reverse"?"alternate":"normal"};return u&&(f.pseudoElement=u),e.animate(d,f)}function zS(e){return typeof e=="function"&&"applyToOptions"in e}function DFe({type:e,...r}){return zS(e)&&OX()?e.applyToOptions(r):(r.duration??(r.duration=300),r.ease??(r.ease="easeOut"),r)}class $Fe extends RS{constructor(r){if(super(),this.finishedTime=null,this.isStopped=!1,!r)return;const{element:n,name:o,keyframes:a,pseudoElement:i,allowFlatten:l=!1,finalKeyframe:s,onComplete:c}=r;this.isPseudoElement=!!i,this.allowFlatten=l,this.options=r,lS(typeof r.type!="string");const u=DFe(r);this.animation=NFe(n,o,a,u,i),u.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!i){const d=TS(a,this.options,s,this.speed);this.updateMotionValue?this.updateMotionValue(d):CFe(n,o,d),this.animation.cancel()}c?.(),this.notifyFinished()}}play(){this.isStopped||(this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:r}=this;r==="idle"||r==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){this.isPseudoElement||this.animation.commitStyles?.()}get duration(){const r=this.animation.effect?.getComputedTiming?.().duration||0;return pi(Number(r))}get iterationDuration(){const{delay:r=0}=this.options||{};return this.duration+pi(r)}get time(){return pi(Number(this.animation.currentTime)||0)}set time(r){this.finishedTime=null,this.animation.currentTime=ll(r)}get speed(){return this.animation.playbackRate}set speed(r){r<0&&(this.finishedTime=null),this.animation.playbackRate=r}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return Number(this.animation.startTime)}set startTime(r){this.animation.startTime=r}attachTimeline({timeline:r,observe:n}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,r&&TFe()?(this.animation.timeline=r,di):n(this)}}const LX={anticipate:eX,backInOut:JG,circInOut:rX};function PFe(e){return e in LX}function OFe(e){typeof e.ease=="string"&&PFe(e.ease)&&(e.ease=LX[e.ease])}const zX=10;class MFe extends $Fe{constructor(r){OFe(r),TX(r),super(r),r.startTime&&(this.startTime=r.startTime),this.options=r}updateMotionValue(r){const{motionValue:n,onUpdate:o,onComplete:a,element:i,...l}=this.options;if(!n)return;if(r!==void 0){n.set(r);return}const s=new AS({...l,autoplay:!1}),c=ll(this.finishedTime??this.time);n.setWithVelocity(s.sample(c-zX).value,s.sample(c).value,zX),s.stop()}}const jX=(e,r)=>r==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(wu.test(e)||e==="0")&&!e.startsWith("url("));function IFe(e){const r=e[0];if(e.length===1)return!0;for(let n=0;nObject.hasOwnProperty.call(Element.prototype,"animate"));function BFe(e){const{motionValue:r,name:n,repeatDelay:o,repeatType:a,damping:i,type:l}=e;if(!(r?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:s,transformTemplate:c}=r.owner.getProps();return jFe()&&n&&zFe.has(n)&&(n!=="transform"||!c)&&!s&&!o&&a!=="mirror"&&i!==0&&l!=="inertia"}const FFe=40;class HFe extends RS{constructor({autoplay:r=!0,delay:n=0,type:o="keyframes",repeat:a=0,repeatDelay:i=0,repeatType:l="loop",keyframes:s,name:c,motionValue:u,element:d,...p}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=aa.now();const f={autoplay:r,delay:n,type:o,repeat:a,repeatDelay:i,repeatType:l,name:c,motionValue:u,element:d,...p},g=d?.KeyframeResolver||LS;this.keyframeResolver=new g(s,(b,x,w)=>this.onKeyframesResolved(b,x,f,!w),c,u,d),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(r,n,o,a){this.keyframeResolver=void 0;const{name:i,type:l,velocity:s,delay:c,isHandoff:u,onUpdate:d}=o;this.resolvedAt=aa.now(),LFe(r,i,l,s)||((nc.instantAnimations||!c)&&d?.(TS(r,o,n)),r[0]=r[r.length-1],jS(o),o.repeat=0);const p={startTime:a?this.resolvedAt?this.resolvedAt-this.createdAt>FFe?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...o,keyframes:r},f=!u&&BFe(p)?new MFe({...p,element:p.motionValue.owner.current}):new AS(p);f.finished.then(()=>this.notifyFinished()).catch(di),this.pendingTimeline&&(this.stopTimeline=f.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=f}get finished(){return this._animation?this.animation.finished:this._finished}then(r,n){return this.finished.finally(r).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),EFe()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(r){this.animation.time=r}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(r){this.animation.speed=r}get startTime(){return this.animation.startTime}attachTimeline(r){return this._animation?this.stopTimeline=this.animation.attachTimeline(r):this.pendingTimeline=r,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}class UFe{constructor(r){this.stop=()=>this.runAll("stop"),this.animations=r.filter(Boolean)}get finished(){return Promise.all(this.animations.map(r=>r.finished))}getAll(r){return this.animations[0][r]}setAll(r,n){for(let o=0;oo.attachTimeline(r));return()=>{n.forEach((o,a)=>{o&&o(),this.animations[a].stop()})}}get time(){return this.getAll("time")}set time(r){this.setAll("time",r)}get speed(){return this.getAll("speed")}set speed(r){this.setAll("speed",r)}get state(){return this.getAll("state")}get startTime(){return this.getAll("startTime")}get duration(){return BX(this.animations,"duration")}get iterationDuration(){return BX(this.animations,"iterationDuration")}runAll(r){this.animations.forEach(n=>n[r]())}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}function BX(e,r){let n=0;for(let o=0;on&&(n=a)}return n}class qFe extends UFe{then(r,n){return this.finished.finally(r).then(()=>{})}}const VFe=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function YFe(e){const r=VFe.exec(e);if(!r)return[,];const[,n,o,a]=r;return[`--${n??o}`,a]}function FX(e,r,n=1){const[o,a]=YFe(e);if(!o)return;const i=window.getComputedStyle(r).getPropertyValue(o);if(i){const l=i.trim();return VG(l)?parseFloat(l):l}return fS(a)?FX(a,r,n+1):a}function BS(e,r){return e?.[r]??e?.default??e}const HX=new Set(["width","height","top","left","right","bottom",...nm]),WFe={test:e=>e==="auto",parse:e=>e},UX=e=>r=>r.test(e),qX=[tm,vt,ls,xu,jBe,zBe,WFe],VX=e=>qX.find(UX(e));function GFe(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||WG(e):!0}const XFe=new Set(["brightness","contrast","saturate","opacity"]);function KFe(e){const[r,n]=e.slice(0,-1).split("(");if(r==="drop-shadow")return e;const[o]=n.match(mS)||[];if(!o)return e;const a=n.replace(o,"");let i=XFe.has(r)?1:0;return o!==n&&(i*=100),r+"("+i+a+")"}const ZFe=/\b([a-z-]*)\(.*?\)/gu,FS={...wu,getAnimatableNone:e=>{const r=e.match(ZFe);return r?r.map(KFe).join(" "):e}},YX={...tm,transform:Math.round},QFe={rotate:xu,rotateX:xu,rotateY:xu,rotateZ:xu,scale:s2,scaleX:s2,scaleY:s2,scaleZ:s2,skew:xu,skewX:xu,skewY:xu,distance:vt,translateX:vt,translateY:vt,translateZ:vt,x:vt,y:vt,z:vt,perspective:vt,transformPerspective:vt,opacity:ey,originX:dX,originY:dX,originZ:vt},HS={borderWidth:vt,borderTopWidth:vt,borderRightWidth:vt,borderBottomWidth:vt,borderLeftWidth:vt,borderRadius:vt,radius:vt,borderTopLeftRadius:vt,borderTopRightRadius:vt,borderBottomRightRadius:vt,borderBottomLeftRadius:vt,width:vt,maxWidth:vt,height:vt,maxHeight:vt,top:vt,right:vt,bottom:vt,left:vt,padding:vt,paddingTop:vt,paddingRight:vt,paddingBottom:vt,paddingLeft:vt,margin:vt,marginTop:vt,marginRight:vt,marginBottom:vt,marginLeft:vt,backgroundPositionX:vt,backgroundPositionY:vt,...QFe,zIndex:YX,fillOpacity:ey,strokeOpacity:ey,numOctaves:YX},JFe={...HS,color:kn,backgroundColor:kn,outlineColor:kn,fill:kn,stroke:kn,borderColor:kn,borderTopColor:kn,borderRightColor:kn,borderBottomColor:kn,borderLeftColor:kn,filter:FS,WebkitFilter:FS},WX=e=>JFe[e];function GX(e,r){let n=WX(e);return n!==FS&&(n=wu),n.getAnimatableNone?n.getAnimatableNone(r):void 0}const eHe=new Set(["auto","none","0"]);function tHe(e,r,n){let o=0,a;for(;o{r.getValue(s).set(c)}),this.resolveNoneKeyframes()}}function XX(e,r,n){if(e instanceof EventTarget)return[e];if(typeof e=="string"){let o=document;const a=n?.[e]??o.querySelectorAll(e);return a?Array.from(a):[]}return Array.from(e)}const KX=(e,r)=>r&&typeof e=="number"?r.transform(e):e;function ZX(e){return YG(e)&&"offsetHeight"in e}const QX=30,nHe=e=>!isNaN(parseFloat(e));class oHe{constructor(r,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=o=>{const a=aa.now();if(this.updatedAt!==a&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(o),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const i of this.dependents)i.dirty()},this.hasAnimated=!1,this.setCurrent(r),this.owner=n.owner}setCurrent(r){this.current=r,this.updatedAt=aa.now(),this.canTrackVelocity===null&&r!==void 0&&(this.canTrackVelocity=nHe(this.current))}setPrevFrameValue(r=this.current){this.prevFrameValue=r,this.prevUpdatedAt=this.updatedAt}onChange(r){return this.on("change",r)}on(r,n){this.events[r]||(this.events[r]=new cS);const o=this.events[r].add(n);return r==="change"?()=>{o(),Pr.read(()=>{this.events.change.getSize()||this.stop()})}:o}clearListeners(){for(const r in this.events)this.events[r].clear()}attach(r,n){this.passiveEffect=r,this.stopPassiveEffect=n}set(r){this.passiveEffect?this.passiveEffect(r,this.updateAndNotify):this.updateAndNotify(r)}setWithVelocity(r,n,o){this.set(n),this.prev=void 0,this.prevFrameValue=r,this.prevUpdatedAt=this.updatedAt-o}jump(r,n=!0){this.updateAndNotify(r),this.prev=r,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(r){this.dependents||(this.dependents=new Set),this.dependents.add(r)}removeDependent(r){this.dependents&&this.dependents.delete(r)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const r=aa.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||r-this.updatedAt>QX)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,QX);return GG(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(r){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=r(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function sp(e,r){return new oHe(e,r)}const{schedule:US}=sX(queueMicrotask,!1),sl={x:!1,y:!1};function JX(){return sl.x||sl.y}function aHe(e){return e==="x"||e==="y"?sl[e]?null:(sl[e]=!0,()=>{sl[e]=!1}):sl.x||sl.y?null:(sl.x=sl.y=!0,()=>{sl.x=sl.y=!1})}function eK(e,r){const n=XX(e),o=new AbortController,a={passive:!0,...r,signal:o.signal};return[n,a,()=>o.abort()]}function tK(e){return!(e.pointerType==="touch"||JX())}function iHe(e,r,n={}){const[o,a,i]=eK(e,n),l=s=>{if(!tK(s))return;const{target:c}=s,u=r(c,s);if(typeof u!="function"||!c)return;const d=p=>{tK(p)&&(u(p),c.removeEventListener("pointerleave",d))};c.addEventListener("pointerleave",d,a)};return o.forEach(s=>{s.addEventListener("pointerenter",l,a)}),i}const rK=(e,r)=>r?e===r?!0:rK(e,r.parentElement):!1,qS=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,lHe=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function sHe(e){return lHe.has(e.tagName)||e.tabIndex!==-1}const d2=new WeakSet;function nK(e){return r=>{r.key==="Enter"&&e(r)}}function VS(e,r){e.dispatchEvent(new PointerEvent("pointer"+r,{isPrimary:!0,bubbles:!0}))}const cHe=(e,r)=>{const n=e.currentTarget;if(!n)return;const o=nK(()=>{if(d2.has(n))return;VS(n,"down");const a=nK(()=>{VS(n,"up")}),i=()=>VS(n,"cancel");n.addEventListener("keyup",a,r),n.addEventListener("blur",i,r)});n.addEventListener("keydown",o,r),n.addEventListener("blur",()=>n.removeEventListener("keydown",o),r)};function oK(e){return qS(e)&&!JX()}function uHe(e,r,n={}){const[o,a,i]=eK(e,n),l=s=>{const c=s.currentTarget;if(!oK(s))return;d2.add(c);const u=r(c,s),d=(g,b)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),d2.has(c)&&d2.delete(c),oK(g)&&typeof u=="function"&&u(g,{success:b})},p=g=>{d(g,c===window||c===document||n.useGlobalTarget||rK(c,g.target))},f=g=>{d(g,!1)};window.addEventListener("pointerup",p,a),window.addEventListener("pointercancel",f,a)};return o.forEach(s=>{(n.useGlobalTarget?window:s).addEventListener("pointerdown",l,a),ZX(s)&&(s.addEventListener("focus",c=>cHe(c,a)),!sHe(s)&&!s.hasAttribute("tabindex")&&(s.tabIndex=0))}),i}function YS(e){return YG(e)&&"ownerSVGElement"in e}function aK(e){return YS(e)&&e.tagName==="svg"}const Qn=e=>!!(e&&e.getVelocity),dHe=[...qX,kn,wu],pHe=e=>dHe.find(UX(e));function WS(e){return typeof e=="object"&&!Array.isArray(e)}function iK(e,r,n,o){return typeof e=="string"&&WS(r)?XX(e,n,o):e instanceof NodeList?Array.from(e):Array.isArray(e)?e:[e]}function hHe(e,r,n){return e*(r+1)}function lK(e,r,n,o){return typeof r=="number"?r:r.startsWith("-")||r.startsWith("+")?Math.max(0,e+parseFloat(r)):r==="<"?n:r.startsWith("<")?Math.max(0,n+parseFloat(r.slice(1))):o.get(r)??e}function fHe(e,r,n){for(let o=0;or&&a.at{const P=xHe(T),{delay:O=0,times:B=CX(P),type:L="keyframes",repeat:Y,repeatType:M,repeatDelay:q=0,...I}=R;let{ease:U=r.ease||"easeOut",duration:V}=R;const G=typeof O=="function"?O(D,N):O,F=P.length,J=zS(L)?L:a?.[L||"keyframes"];if(F<=2&&J){let X=100;if(F===2&&_He(P)){const ee=P[1]-P[0];X=Math.abs(ee)}const Z={...I};V!==void 0&&(Z.duration=ll(V));const oe=kX(Z,X,J);U=oe.ease,V=oe.duration}V??(V=i);const Q=p+G;B.length===1&&B[0]===0&&(B[1]=1);const z=B.length-P.length;if(z>0&&SX(B,z),P.length===1&&P.unshift(null),Y){V=hHe(V,Y);const X=[...P],Z=[...B];U=Array.isArray(U)?[...U]:[U];const oe=[...U];for(let ee=0;ee{for(const x in g){const w=g[x];w.sort(yHe);const k=[],C=[],_=[];for(let R=0;Rtypeof e=="number",_He=e=>e.every(kHe),ly=new WeakMap,GS=e=>Array.isArray(e);function uK(e){const r=[{},{}];return e?.values.forEach((n,o)=>{r[0][o]=n.get(),r[1][o]=n.getVelocity()}),r}function XS(e,r,n,o){if(typeof r=="function"){const[a,i]=uK(o);r=r(n!==void 0?n:e.custom,a,i)}if(typeof r=="string"&&(r=e.variants&&e.variants[r]),typeof r=="function"){const[a,i]=uK(o);r=r(n!==void 0?n:e.custom,a,i)}return r}function am(e,r,n){const o=e.getProps();return XS(o,r,n!==void 0?n:o.custom,e)}function EHe(e,r,n){e.hasValue(r)?e.getValue(r).set(n):e.addValue(r,sp(n))}function SHe(e){return GS(e)?e[e.length-1]||0:e}function CHe(e,r){const n=am(e,r);let{transitionEnd:o={},transition:a={},...i}=n||{};i={...i,...o};for(const l in i){const s=SHe(i[l]);EHe(e,l,s)}}function THe(e){return!!(Qn(e)&&e.add)}function KS(e,r){const n=e.getValue("willChange");if(THe(n))return n.add(r);if(!n&&nc.WillChange){const o=new nc.WillChange("auto");e.addValue("willChange",o),o.add(r)}}const ZS=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),RHe="framerAppearId",dK="data-"+ZS(RHe);function pK(e){return e.props[dK]}const AHe=e=>e!==null;function NHe(e,{repeat:r,repeatType:n="loop"},o){const a=e.filter(AHe),i=r&&n!=="loop"&&r%2===1?0:a.length-1;return a[i]}const DHe={type:"spring",stiffness:500,damping:25,restSpeed:10},$He=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),PHe={type:"keyframes",duration:.8},OHe={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},MHe=(e,{keyframes:r})=>r.length>2?PHe:om.has(e)?e.startsWith("scale")?$He(r[1]):DHe:OHe;function IHe({when:e,delay:r,delayChildren:n,staggerChildren:o,staggerDirection:a,repeat:i,repeatType:l,repeatDelay:s,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const QS=(e,r,n,o={},a,i)=>l=>{const s=BS(o,e)||{},c=s.delay||o.delay||0;let{elapsed:u=0}=o;u=u-ll(c);const d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:r.getVelocity(),...s,delay:-u,onUpdate:f=>{r.set(f),s.onUpdate&&s.onUpdate(f)},onComplete:()=>{l(),s.onComplete&&s.onComplete()},name:e,motionValue:r,element:i?void 0:a};IHe(s)||Object.assign(d,MHe(e,d)),d.duration&&(d.duration=ll(d.duration)),d.repeatDelay&&(d.repeatDelay=ll(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(jS(d),d.delay===0&&(p=!0)),(nc.instantAnimations||nc.skipAnimations)&&(p=!0,jS(d),d.delay=0),d.allowFlatten=!s.type&&!s.ease,p&&!i&&r.get()!==void 0){const f=NHe(d.keyframes,s);if(f!==void 0){Pr.update(()=>{d.onUpdate(f),d.onComplete()});return}}return s.isSync?new AS(d):new HFe(d)};function LHe({protectedKeys:e,needsAnimating:r},n){const o=e.hasOwnProperty(n)&&r[n]!==!0;return r[n]=!1,o}function JS(e,r,{delay:n=0,transitionOverride:o,type:a}={}){let{transition:i=e.getDefaultTransition(),transitionEnd:l,...s}=r;o&&(i=o);const c=[],u=a&&e.animationState&&e.animationState.getState()[a];for(const d in s){const p=e.getValue(d,e.latestValues[d]??null),f=s[d];if(f===void 0||u&&LHe(u,d))continue;const g={delay:n,...BS(i||{},d)},b=p.get();if(b!==void 0&&!p.isAnimating&&!Array.isArray(f)&&f===b&&!g.velocity)continue;let x=!1;if(window.MotionHandoffAnimation){const k=pK(e);if(k){const C=window.MotionHandoffAnimation(k,d,Pr);C!==null&&(g.startTime=C,x=!0)}}KS(e,d),p.start(QS(d,p,f,e.shouldReduceMotion&&HX.has(d)?{type:!1}:g,e,x));const w=p.animation;w&&c.push(w)}return l&&Promise.all(c).then(()=>{Pr.update(()=>{l&&CHe(e,l)})}),c}function hK({top:e,left:r,right:n,bottom:o}){return{x:{min:r,max:n},y:{min:e,max:o}}}function zHe({x:e,y:r}){return{top:r.min,right:e.max,bottom:r.max,left:e.min}}function jHe(e,r){if(!r)return e;const n=r({x:e.left,y:e.top}),o=r({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:o.y,right:o.x}}function eC(e){return e===void 0||e===1}function tC({scale:e,scaleX:r,scaleY:n}){return!eC(e)||!eC(r)||!eC(n)}function cp(e){return tC(e)||fK(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function fK(e){return mK(e.x)||mK(e.y)}function mK(e){return e&&e!=="0%"}function p2(e,r,n){const o=e-n,a=r*o;return n+a}function gK(e,r,n,o,a){return a!==void 0&&(e=p2(e,a,o)),p2(e,n,o)+r}function rC(e,r=0,n=1,o,a){e.min=gK(e.min,r,n,o,a),e.max=gK(e.max,r,n,o,a)}function yK(e,{x:r,y:n}){rC(e.x,r.translate,r.scale,r.originPoint),rC(e.y,n.translate,n.scale,n.originPoint)}const bK=.999999999999,vK=1.0000000000001;function BHe(e,r,n,o=!1){const a=n.length;if(!a)return;r.x=r.y=1;let i,l;for(let s=0;sbK&&(r.x=1),r.ybK&&(r.y=1)}function im(e,r){e.min=e.min+r,e.max=e.max+r}function xK(e,r,n,o,a=.5){const i=Ir(e.min,e.max,a);rC(e,r,n,i,o)}function lm(e,r){xK(e.x,r.x,r.scaleX,r.scale,r.originX),xK(e.y,r.y,r.scaleY,r.scale,r.originY)}function wK(e,r){return hK(jHe(e.getBoundingClientRect(),r))}function FHe(e,r,n){const o=wK(e,n),{scroll:a}=r;return a&&(im(o.x,a.offset.x),im(o.y,a.offset.y)),o}const kK={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},sm={};for(const e in kK)sm[e]={isEnabled:r=>kK[e].some(n=>!!r[n])};const _K=()=>({translate:0,scale:1,origin:0,originPoint:0}),cm=()=>({x:_K(),y:_K()}),EK=()=>({min:0,max:0}),Zr=()=>({x:EK(),y:EK()}),nC=typeof window<"u",h2={current:null},oC={current:!1};function SK(){if(oC.current=!0,!!nC)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),r=()=>h2.current=e.matches;e.addEventListener("change",r),r()}else h2.current=!1}function f2(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function sy(e){return typeof e=="string"||Array.isArray(e)}const aC=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],iC=["initial",...aC];function m2(e){return f2(e.animate)||iC.some(r=>sy(e[r]))}function CK(e){return!!(m2(e)||e.variants)}function HHe(e,r,n){for(const o in r){const a=r[o],i=n[o];if(Qn(a))e.addValue(o,a);else if(Qn(i))e.addValue(o,sp(a,{owner:e}));else if(i!==a)if(e.hasValue(o)){const l=e.getValue(o);l.liveStyle===!0?l.jump(a):l.hasAnimated||l.set(a)}else{const l=e.getStaticValue(o);e.addValue(o,sp(l!==void 0?l:a,{owner:e}))}}for(const o in n)r[o]===void 0&&e.removeValue(o);return r}const TK=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class RK{scrapeMotionValuesFromProps(r,n,o){return{}}constructor({parent:r,props:n,presenceContext:o,reducedMotionConfig:a,blockInitialAnimation:i,visualState:l},s={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=LS,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const f=aa.now();this.renderScheduledAtthis.bindToMotionValue(o,n)),oC.current||SK(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:h2.current,this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),vu(this.notifyUpdate),vu(this.render),this.valueSubscriptions.forEach(r=>r()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const r in this.events)this.events[r].clear();for(const r in this.features){const n=this.features[r];n&&(n.unmount(),n.isMounted=!1)}this.current=null}addChild(r){this.children.add(r),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(r)}removeChild(r){this.children.delete(r),this.enteringChildren&&this.enteringChildren.delete(r)}bindToMotionValue(r,n){this.valueSubscriptions.has(r)&&this.valueSubscriptions.get(r)();const o=om.has(r);o&&this.onBindTransform&&this.onBindTransform();const a=n.on("change",l=>{this.latestValues[r]=l,this.props.onUpdate&&Pr.preRender(this.notifyUpdate),o&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let i;window.MotionCheckAppearSync&&(i=window.MotionCheckAppearSync(this,r,n)),this.valueSubscriptions.set(r,()=>{a(),i&&i(),n.owner&&n.stop()})}sortNodePosition(r){return!this.current||!this.sortInstanceNodePosition||this.type!==r.type?0:this.sortInstanceNodePosition(this.current,r.current)}updateFeatures(){let r="animation";for(r in sm){const n=sm[r];if(!n)continue;const{isEnabled:o,Feature:a}=n;if(!this.features[r]&&a&&o(this.props)&&(this.features[r]=new a(this)),this.features[r]){const i=this.features[r];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Zr()}getStaticValue(r){return this.latestValues[r]}setStaticValue(r,n){this.latestValues[r]=n}update(r,n){(r.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=r,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let o=0;on.variantChildren.delete(r)}addValue(r,n){const o=this.values.get(r);n!==o&&(o&&this.removeValue(r),this.bindToMotionValue(r,n),this.values.set(r,n),this.latestValues[r]=n.get())}removeValue(r){this.values.delete(r);const n=this.valueSubscriptions.get(r);n&&(n(),this.valueSubscriptions.delete(r)),delete this.latestValues[r],this.removeValueFromRenderState(r,this.renderState)}hasValue(r){return this.values.has(r)}getValue(r,n){if(this.props.values&&this.props.values[r])return this.props.values[r];let o=this.values.get(r);return o===void 0&&n!==void 0&&(o=sp(n===null?void 0:n,{owner:this}),this.addValue(r,o)),o}readValue(r,n){let o=this.latestValues[r]!==void 0||!this.current?this.latestValues[r]:this.getBaseTargetFromProps(this.props,r)??this.readValueFromInstance(this.current,r,this.options);return o!=null&&(typeof o=="string"&&(VG(o)||WG(o))?o=parseFloat(o):!pHe(o)&&wu.test(n)&&(o=GX(r,n)),this.setBaseTarget(r,Qn(o)?o.get():o)),Qn(o)?o.get():o}setBaseTarget(r,n){this.baseTarget[r]=n}getBaseTarget(r){const{initial:n}=this.props;let o;if(typeof n=="string"||typeof n=="object"){const i=XS(this.props,n,this.presenceContext?.custom);i&&(o=i[r])}if(n&&o!==void 0)return o;const a=this.getBaseTargetFromProps(this.props,r);return a!==void 0&&!Qn(a)?a:this.initialValues[r]!==void 0&&o===void 0?void 0:this.baseTarget[r]}on(r,n){return this.events[r]||(this.events[r]=new cS),this.events[r].add(n)}notify(r,...n){this.events[r]&&this.events[r].notify(...n)}scheduleRenderMicrotask(){US.render(this.render)}}class AK extends RK{constructor(){super(...arguments),this.KeyframeResolver=rHe}sortInstanceNodePosition(r,n){return r.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(r,n){return r.style?r.style[n]:void 0}removeValueFromRenderState(r,{vars:n,style:o}){delete n[r],delete o[r]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:r}=this.props;Qn(r)&&(this.childSubscription=r.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}const UHe={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},qHe=nm.length;function VHe(e,r,n){let o="",a=!0;for(let i=0;itypeof e=="string"&&e.toLowerCase()==="svg";function JHe(e,r,n,o){NK(e,r,void 0,o);for(const a in r.attrs)e.setAttribute(OK.has(a)?a:ZS(a),r.attrs[a])}function IK(e,r,n){const o=sC(e,r,n);for(const a in e)if(Qn(e[a])||Qn(r[a])){const i=nm.indexOf(a)!==-1?"attr"+a.charAt(0).toUpperCase()+a.substring(1):a;o[i]=e[a]}return o}class LK extends AK{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Zr}getBaseTargetFromProps(r,n){return r[n]}readValueFromInstance(r,n){if(om.has(n)){const o=WX(n);return o&&o.default||0}return n=OK.has(n)?n:ZS(n),r.getAttribute(n)}scrapeMotionValuesFromProps(r,n,o){return IK(r,n,o)}build(r,n,o){PK(r,n,this.isSVGTag,o.transformTemplate,o.style)}renderInstance(r,n,o,a){JHe(r,n,o,a)}mount(r){this.isSVGTag=MK(r.tagName),super.mount(r)}}function eUe(e){const r={presenceContext:null,props:{},visualState:{renderState:{transform:{},transformOrigin:{},style:{},vars:{},attrs:{}},latestValues:{}}},n=YS(e)&&!aK(e)?new LK(r):new $K(r);n.mount(e),ly.set(e,n)}function tUe(e){const r={presenceContext:null,props:{},visualState:{renderState:{output:{}},latestValues:{}}},n=new XHe(r);n.mount(e),ly.set(e,n)}function zK(e,r,n){const o=Qn(e)?e:sp(e);return o.start(QS("",o,r,n)),o.animation}function rUe(e,r){return Qn(e)||typeof e=="number"||typeof e=="string"&&!WS(r)}function jK(e,r,n,o){const a=[];if(rUe(e,r))a.push(zK(e,WS(r)&&r.default||r,n&&(n.default||n)));else{const i=iK(e,r,o),l=i.length;for(let s=0;s{o.push(...jK(l,a,i))}),o}function oUe(e){return Array.isArray(e)&&e.some(Array.isArray)}function aUe(e){function r(n,o,a){let i=[],l;if(oUe(n))i=nUe(n,o,e);else{const{onComplete:c,...u}=a||{};typeof c=="function"&&(l=c),i=jK(n,o,u,e)}const s=new qFe(i);return l&&s.finished.then(l),s}return r}const iUe=aUe();function lUe(e,r){const n=aa.now(),o=({timestamp:a})=>{const i=a-n;i>=r&&(vu(o),e(i-r))};return Pr.setup(o,!0),()=>vu(o)}const BK=(e,r)=>Math.abs(e-r);function sUe(e,r){const n=BK(e.x,r.x),o=BK(e.y,r.y);return Math.sqrt(n**2+o**2)}const uy=E.createContext({});function um(e){const r=E.useRef(null);return r.current===null&&(r.current=e()),r.current}const cC=nC?E.useLayoutEffect:E.useEffect,g2=E.createContext(null),up=E.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function FK(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function cUe(...e){return r=>{let n=!1;const o=e.map(a=>{const i=FK(a,r);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let a=0;a{const{width:u,height:d,top:p,left:f,right:g}=l.current;if(r||!i.current||!u||!d)return;const b=n==="left"?`left: ${f}`:`right: ${g}`;i.current.dataset.motionPopId=a;const x=document.createElement("style");s&&(x.nonce=s);const w=o??document.head;return w.appendChild(x),x.sheet&&x.sheet.insertRule(` + [data-motion-pop-id="${a}"] { + position: absolute !important; + width: ${u}px !important; + height: ${d}px !important; + ${b}px !important; + top: ${p}px !important; + } + `),()=>{w.contains(x)&&w.removeChild(x)}},[r]),y.jsx(dUe,{isPresent:r,childRef:i,sizeRef:l,children:E.cloneElement(e,{ref:c})})}const hUe=({children:e,initial:r,isPresent:n,onExitComplete:o,custom:a,presenceAffectsLayout:i,mode:l,anchorX:s,root:c})=>{const u=um(fUe),d=E.useId();let p=!0,f=E.useMemo(()=>(p=!1,{id:d,initial:r,isPresent:n,custom:a,onExitComplete:g=>{u.set(g,!0);for(const b of u.values())if(!b)return;o&&o()},register:g=>(u.set(g,!1),()=>u.delete(g))}),[n,u,o]);return i&&p&&(f={...f}),E.useMemo(()=>{u.forEach((g,b)=>u.set(b,!1))},[n]),E.useEffect(()=>{!n&&!u.size&&o&&o()},[n]),l==="popLayout"&&(e=y.jsx(pUe,{isPresent:n,anchorX:s,root:c,children:e})),y.jsx(g2.Provider,{value:f,children:e})};function fUe(){return new Map}function HK(e=!0){const r=E.useContext(g2);if(r===null)return[!0,null];const{isPresent:n,onExitComplete:o,register:a}=r,i=E.useId();E.useEffect(()=>{if(e)return a(i)},[e]);const l=E.useCallback(()=>e&&o&&o(i),[i,o,e]);return!n&&o?[!1,l]:[!0]}const y2=e=>e.key||"";function UK(e){const r=[];return E.Children.forEach(e,n=>{E.isValidElement(n)&&r.push(n)}),r}const $a=({children:e,custom:r,initial:n=!0,onExitComplete:o,presenceAffectsLayout:a=!0,mode:i="sync",propagate:l=!1,anchorX:s="left",root:c})=>{const[u,d]=HK(l),p=E.useMemo(()=>UK(e),[e]),f=l&&!u?[]:p.map(y2),g=E.useRef(!0),b=E.useRef(p),x=um(()=>new Map),[w,k]=E.useState(p),[C,_]=E.useState(p);cC(()=>{g.current=!1,b.current=p;for(let A=0;A{const D=y2(A),N=l&&!u?!1:p===C||f.includes(D),P=()=>{if(x.has(D))x.set(D,!0);else return;let O=!0;x.forEach(B=>{B||(O=!1)}),O&&(R?.(),_(b.current),l&&d?.(),o&&o())};return y.jsx(hUe,{isPresent:N,initial:!g.current||n?void 0:!1,custom:r,presenceAffectsLayout:a,mode:i,root:c,onExitComplete:N?void 0:P,anchorX:s,children:A},D)})})},mUe=E.createContext(null);function gUe(){const e=E.useRef(!1);return cC(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function yUe(){const e=gUe(),[r,n]=E.useState(0),o=E.useCallback(()=>{e.current&&n(r+1)},[r]);return[E.useCallback(()=>Pr.postRender(o),[o]),r]}const bUe=e=>!e.isLayoutDirty&&e.willUpdate(!1);function vUe(){const e=new Set,r=new WeakMap,n=()=>e.forEach(bUe);return{add:o=>{e.add(o),r.set(o,o.addEventListener("willUpdate",n))},remove:o=>{e.delete(o);const a=r.get(o);a&&(a(),r.delete(o)),n()},dirty:n}}const qK=e=>e===!0,xUe=e=>qK(e===!0)||e==="id",dm=({children:e,id:r,inherit:n=!0})=>{const o=E.useContext(uy),a=E.useContext(mUe),[i,l]=yUe(),s=E.useRef(null),c=o.id||a;s.current===null&&(xUe(n)&&c&&(r=r?c+"-"+r:c),s.current={id:r,group:qK(n)&&o.group||vUe()});const u=E.useMemo(()=>({...s.current,forceRender:i}),[l]);return y.jsx(uy.Provider,{value:u,children:e})},uC=E.createContext({strict:!1});function dC(e){for(const r in e)sm[r]={...sm[r],...e[r]}}function wUe({children:e,features:r,strict:n=!1}){const[,o]=E.useState(!pC(r)),a=E.useRef(void 0);if(!pC(r)){const{renderer:i,...l}=r;a.current=i,dC(l)}return E.useEffect(()=>{pC(r)&&r().then(({renderer:i,...l})=>{dC(l),a.current=i,o(!0)})},[]),y.jsx(uC.Provider,{value:{renderer:a.current,strict:n},children:e})}function pC(e){return typeof e=="function"}const kUe=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function b2(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||kUe.has(e)}let VK=e=>!b2(e);function YK(e){typeof e=="function"&&(VK=r=>r.startsWith("on")?!b2(r):e(r))}try{YK(require("@emotion/is-prop-valid").default)}catch{}function _Ue(e,r,n){const o={};for(const a in e)a==="values"&&typeof e.values=="object"||(VK(a)||n===!0&&b2(a)||!r&&!b2(a)||e.draggable&&a.startsWith("onDrag"))&&(o[a]=e[a]);return o}function EUe({children:e,isValidProp:r,...n}){r&&YK(r),n={...E.useContext(up),...n},n.isStatic=um(()=>n.isStatic);const o=E.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return y.jsx(up.Provider,{value:o,children:e})}const v2=E.createContext({});function SUe(e,r){if(m2(e)){const{initial:n,animate:o}=e;return{initial:n===!1||sy(n)?n:void 0,animate:sy(o)?o:void 0}}return e.inherit!==!1?r:{}}function CUe(e){const{initial:r,animate:n}=SUe(e,E.useContext(v2));return E.useMemo(()=>({initial:r,animate:n}),[WK(r),WK(n)])}function WK(e){return Array.isArray(e)?e.join(" "):e}const hC=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function GK(e,r,n){for(const o in r)!Qn(r[o])&&!DK(o,n)&&(e[o]=r[o])}function TUe({transformTemplate:e},r){return E.useMemo(()=>{const n=hC();return lC(n,r,e),Object.assign({},n.vars,n.style)},[r])}function RUe(e,r){const n=e.style||{},o={};return GK(o,n,e),Object.assign(o,TUe(e,r)),o}function AUe(e,r){const n={},o=RUe(e,r);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,o.userSelect=o.WebkitUserSelect=o.WebkitTouchCallout="none",o.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=o,n}const XK=()=>({...hC(),attrs:{}});function NUe(e,r,n,o){const a=E.useMemo(()=>{const i=XK();return PK(i,r,MK(o),e.transformTemplate,e.style),{...i.attrs,style:{...i.style}}},[r]);if(e.style){const i={};GK(i,e.style,e),a.style={...i,...a.style}}return a}const DUe=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function fC(e){return typeof e!="string"||e.includes("-")?!1:!!(DUe.indexOf(e)>-1||/[A-Z]/u.test(e))}function $Ue(e,r,n,{latestValues:o},a,i=!1){const l=(fC(e)?NUe:AUe)(r,o,a,e),s=_Ue(r,typeof e=="string",i),c=e!==E.Fragment?{...s,...l,ref:n}:{},{children:u}=r,d=E.useMemo(()=>Qn(u)?u.get():u,[u]);return E.createElement(e,{...c,children:d})}function x2(e){return Qn(e)?e.get():e}function PUe({scrapeMotionValuesFromProps:e,createRenderState:r},n,o,a){return{latestValues:OUe(n,o,a,e),renderState:r()}}function OUe(e,r,n,o){const a={},i=o(e,{});for(const f in i)a[f]=x2(i[f]);let{initial:l,animate:s}=e;const c=m2(e),u=CK(e);r&&u&&!c&&e.inherit!==!1&&(l===void 0&&(l=r.initial),s===void 0&&(s=r.animate));let d=n?n.initial===!1:!1;d=d||l===!1;const p=d?s:l;if(p&&typeof p!="boolean"&&!f2(p)){const f=Array.isArray(p)?p:[p];for(let g=0;g(r,n)=>{const o=E.useContext(v2),a=E.useContext(g2),i=()=>PUe(e,r,o,a);return n?i():um(i)},MUe=KK({scrapeMotionValuesFromProps:sC,createRenderState:hC}),IUe=KK({scrapeMotionValuesFromProps:IK,createRenderState:XK}),LUe=Symbol.for("motionComponentSymbol");function pm(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function zUe(e,r,n){return E.useCallback(o=>{o&&e.onMount&&e.onMount(o),r&&(o?r.mount(o):r.unmount()),n&&(typeof n=="function"?n(o):pm(n)&&(n.current=o))},[r])}const ZK=E.createContext({});function jUe(e,r,n,o,a){const{visualElement:i}=E.useContext(v2),l=E.useContext(uC),s=E.useContext(g2),c=E.useContext(up).reducedMotion,u=E.useRef(null);o=o||l.renderer,!u.current&&o&&(u.current=o(e,{visualState:r,parent:i,props:n,presenceContext:s,blockInitialAnimation:s?s.initial===!1:!1,reducedMotionConfig:c}));const d=u.current,p=E.useContext(ZK);d&&!d.projection&&a&&(d.type==="html"||d.type==="svg")&&BUe(u.current,n,a,p);const f=E.useRef(!1);E.useInsertionEffect(()=>{d&&f.current&&d.update(n,s)});const g=n[dK],b=E.useRef(!!g&&!window.MotionHandoffIsComplete?.(g)&&window.MotionHasOptimisedAnimation?.(g));return cC(()=>{d&&(f.current=!0,window.MotionIsMounted=!0,d.updateFeatures(),d.scheduleRenderMicrotask(),b.current&&d.animationState&&d.animationState.animateChanges())}),E.useEffect(()=>{d&&(!b.current&&d.animationState&&d.animationState.animateChanges(),b.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(g)}),b.current=!1),d.enteringChildren=void 0)}),d}function BUe(e,r,n,o){const{layoutId:a,layout:i,drag:l,dragConstraints:s,layoutScroll:c,layoutRoot:u,layoutCrossfade:d}=r;e.projection=new n(e.latestValues,r["data-framer-portal-id"]?void 0:QK(e.parent)),e.projection.setOptions({layoutId:a,layout:i,alwaysMeasureLayout:!!l||s&&pm(s),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:o,crossfade:d,layoutScroll:c,layoutRoot:u})}function QK(e){if(e)return e.options.allowProjection!==!1?e.projection:QK(e.parent)}function w2(e,{forwardMotionProps:r=!1}={},n,o){n&&dC(n);const a=fC(e)?IUe:MUe;function i(s,c){let u;const d={...E.useContext(up),...s,layoutId:FUe(s)},{isStatic:p}=d,f=CUe(s),g=a(s,p);if(!p&&nC){HUe();const b=UUe(d);u=b.MeasureLayout,f.visualElement=jUe(e,g,d,o,b.ProjectionNode)}return y.jsxs(v2.Provider,{value:f,children:[u&&f.visualElement?y.jsx(u,{visualElement:f.visualElement,...d}):null,$Ue(e,s,zUe(g,f.visualElement,c),g,p,r)]})}i.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const l=E.forwardRef(i);return l[LUe]=e,l}function FUe({layoutId:e}){const r=E.useContext(uy).id;return r&&e!==void 0?r+"-"+e:e}function HUe(e,r){E.useContext(uC).strict}function UUe(e){const{drag:r,layout:n}=sm;if(!r&&!n)return{};const o={...r,...n};return{MeasureLayout:r?.isEnabled(e)||n?.isEnabled(e)?o.MeasureLayout:void 0,ProjectionNode:o.ProjectionNode}}function qUe(e,r){if(typeof Proxy>"u")return w2;const n=new Map,o=(i,l)=>w2(i,l,e,r),a=(i,l)=>o(i,l);return new Proxy(a,{get:(i,l)=>l==="create"?o:(n.has(l)||n.set(l,w2(l,void 0,e,r)),n.get(l))})}const cl=qUe(),VUe=(e,r)=>fC(e)?new LK(r):new $K(r,{allowProjection:e!==E.Fragment});function JK(e,r,n,o=0,a=1){const i=Array.from(e).sort((c,u)=>c.sortNodePosition(u)).indexOf(r),l=e.size,s=(l-1)*o;return typeof n=="function"?n(i,l):a===1?i*o:s-i*o}function mC(e,r,n={}){const o=am(e,r,n.type==="exit"?e.presenceContext?.custom:void 0);let{transition:a=e.getDefaultTransition()||{}}=o||{};n.transitionOverride&&(a=n.transitionOverride);const i=o?()=>Promise.all(JS(e,o,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:u=0,staggerChildren:d,staggerDirection:p}=a;return YUe(e,r,c,u,d,p,n)}:()=>Promise.resolve(),{when:s}=a;if(s){const[c,u]=s==="beforeChildren"?[i,l]:[l,i];return c().then(()=>u())}else return Promise.all([i(),l(n.delay)])}function YUe(e,r,n=0,o=0,a=0,i=1,l){const s=[];for(const c of e.variantChildren)c.notify("AnimationStart",r),s.push(mC(c,r,{...l,delay:n+(typeof o=="function"?0:o)+JK(e.variantChildren,c,o,a,i)}).then(()=>c.notify("AnimationComplete",r)));return Promise.all(s)}function WUe(e,r,n={}){e.notify("AnimationStart",r);let o;if(Array.isArray(r)){const a=r.map(i=>mC(e,i,n));o=Promise.all(a)}else if(typeof r=="string")o=mC(e,r,n);else{const a=typeof r=="function"?am(e,r,n.custom):r;o=Promise.all(JS(e,a,n))}return o.then(()=>{e.notify("AnimationComplete",r)})}function eZ(e,r){if(!Array.isArray(r))return!1;const n=r.length;if(n!==e.length)return!1;for(let o=0;oPromise.all(r.map(({animation:n,options:o})=>WUe(e,n,o)))}function QUe(e){let r=ZUe(e),n=rZ(),o=!0;const a=c=>(u,d)=>{const p=am(e,d,c==="exit"?e.presenceContext?.custom:void 0);if(p){const{transition:f,transitionEnd:g,...b}=p;u={...u,...b,...g}}return u};function i(c){r=c(e)}function l(c){const{props:u}=e,d=tZ(e.parent)||{},p=[],f=new Set;let g={},b=1/0;for(let w=0;wb&&T,P=!1;const O=Array.isArray(_)?_:[_];let B=O.reduce(a(k),{});R===!1&&(B={});const{prevResolvedValues:L={}}=C,Y={...L,...B},M=I=>{N=!0,f.has(I)&&(P=!0,f.delete(I)),C.needsAnimating[I]=!0;const U=e.getValue(I);U&&(U.liveStyle=!1)};for(const I in Y){const U=B[I],V=L[I];if(g.hasOwnProperty(I))continue;let G=!1;GS(U)&&GS(V)?G=!eZ(U,V):G=U!==V,G?U!=null?M(I):f.add(I):U!==void 0&&f.has(I)?M(I):C.protectedKeys[I]=!0}C.prevProp=_,C.prevResolvedValues=B,C.isActive&&(g={...g,...B}),o&&e.blockInitialAnimation&&(N=!1);const q=A&&D;N&&(!q||P)&&p.push(...O.map(I=>{const U={type:k};if(typeof I=="string"&&o&&!q&&e.manuallyAnimateOnMount&&e.parent){const{parent:V}=e,G=am(V,I);if(V.enteringChildren&&G){const{delayChildren:F}=G.transition||{};U.delay=JK(V.enteringChildren,e,F)}}return{animation:I,options:U}}))}if(f.size){const w={};if(typeof u.initial!="boolean"){const k=am(e,Array.isArray(u.initial)?u.initial[0]:u.initial);k&&k.transition&&(w.transition=k.transition)}f.forEach(k=>{const C=e.getBaseTarget(k),_=e.getValue(k);_&&(_.liveStyle=!0),w[k]=C??null}),p.push({animation:w})}let x=!!p.length;return o&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(x=!1),o=!1,x?r(p):Promise.resolve()}function s(c,u){if(n[c].isActive===u)return Promise.resolve();e.variantChildren?.forEach(p=>p.animationState?.setActive(c,u)),n[c].isActive=u;const d=l(c);for(const p in n)n[p].protectedKeys={};return d}return{animateChanges:l,setActive:s,setAnimateFunction:i,getState:()=>n,reset:()=>{n=rZ(),o=!0}}}function JUe(e,r){return typeof r=="string"?r!==e:Array.isArray(r)?!eZ(r,e):!1}function dp(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function rZ(){return{animate:dp(!0),whileInView:dp(),whileHover:dp(),whileTap:dp(),whileDrag:dp(),whileFocus:dp(),exit:dp()}}class ku{constructor(r){this.isMounted=!1,this.node=r}update(){}}class eqe extends ku{constructor(r){super(r),r.animationState||(r.animationState=QUe(r))}updateAnimationControlsSubscription(){const{animate:r}=this.node.getProps();f2(r)&&(this.unmountControls=r.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:r}=this.node.getProps(),{animate:n}=this.node.prevProps||{};r!==n&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let tqe=0;class rqe extends ku{constructor(){super(...arguments),this.id=tqe++}update(){if(!this.node.presenceContext)return;const{isPresent:r,onExitComplete:n}=this.node.presenceContext,{isPresent:o}=this.node.prevPresenceContext||{};if(!this.node.animationState||r===o)return;const a=this.node.animationState.setActive("exit",!r);n&&!r&&a.then(()=>{n(this.id)})}mount(){const{register:r,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),r&&(this.unmount=r(this.id))}unmount(){}}const nqe={animation:{Feature:eqe},exit:{Feature:rqe}};function dy(e,r,n,o={passive:!0}){return e.addEventListener(r,n,o),()=>e.removeEventListener(r,n)}function py(e){return{point:{x:e.pageX,y:e.pageY}}}const oqe=e=>r=>qS(r)&&e(r,py(r));function hy(e,r,n,o){return dy(e,r,oqe(n),o)}const nZ=1e-4,aqe=1-nZ,iqe=1+nZ,oZ=.01,lqe=0-oZ,sqe=0+oZ;function qo(e){return e.max-e.min}function cqe(e,r,n){return Math.abs(e-r)<=n}function aZ(e,r,n,o=.5){e.origin=o,e.originPoint=Ir(r.min,r.max,e.origin),e.scale=qo(n)/qo(r),e.translate=Ir(n.min,n.max,e.origin)-e.originPoint,(e.scale>=aqe&&e.scale<=iqe||isNaN(e.scale))&&(e.scale=1),(e.translate>=lqe&&e.translate<=sqe||isNaN(e.translate))&&(e.translate=0)}function fy(e,r,n,o){aZ(e.x,r.x,n.x,o?o.originX:void 0),aZ(e.y,r.y,n.y,o?o.originY:void 0)}function iZ(e,r,n){e.min=n.min+r.min,e.max=e.min+qo(r)}function uqe(e,r,n){iZ(e.x,r.x,n.x),iZ(e.y,r.y,n.y)}function lZ(e,r,n){e.min=r.min-n.min,e.max=e.min+qo(r)}function my(e,r,n){lZ(e.x,r.x,n.x),lZ(e.y,r.y,n.y)}function hi(e){return[e("x"),e("y")]}const sZ=({current:e})=>e?e.ownerDocument.defaultView:null;class cZ{constructor(r,n,{transformPagePoint:o,contextWindow:a=window,dragSnapToOrigin:i=!1,distanceThreshold:l=3}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const f=yC(this.lastMoveEventInfo,this.history),g=this.startEvent!==null,b=sUe(f.offset,{x:0,y:0})>=this.distanceThreshold;if(!g&&!b)return;const{point:x}=f,{timestamp:w}=mo;this.history.push({...x,timestamp:w});const{onStart:k,onMove:C}=this.handlers;g||(k&&k(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),C&&C(this.lastMoveEvent,f)},this.handlePointerMove=(f,g)=>{this.lastMoveEvent=f,this.lastMoveEventInfo=gC(g,this.transformPagePoint),Pr.update(this.updatePoint,!0)},this.handlePointerUp=(f,g)=>{this.end();const{onEnd:b,onSessionEnd:x,resumeAnimation:w}=this.handlers;if(this.dragSnapToOrigin&&w&&w(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const k=yC(f.type==="pointercancel"?this.lastMoveEventInfo:gC(g,this.transformPagePoint),this.history);this.startEvent&&b&&b(f,k),x&&x(f,k)},!qS(r))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=o,this.distanceThreshold=l,this.contextWindow=a||window;const s=py(r),c=gC(s,this.transformPagePoint),{point:u}=c,{timestamp:d}=mo;this.history=[{...u,timestamp:d}];const{onSessionStart:p}=n;p&&p(r,yC(c,this.history)),this.removeListeners=Q0(hy(this.contextWindow,"pointermove",this.handlePointerMove),hy(this.contextWindow,"pointerup",this.handlePointerUp),hy(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(r){this.handlers=r}end(){this.removeListeners&&this.removeListeners(),vu(this.updatePoint)}}function gC(e,r){return r?{point:r(e.point)}:e}function uZ(e,r){return{x:e.x-r.x,y:e.y-r.y}}function yC({point:e},r){return{point:e,delta:uZ(e,dZ(r)),offset:uZ(e,dqe(r)),velocity:pqe(r,.1)}}function dqe(e){return e[0]}function dZ(e){return e[e.length-1]}function pqe(e,r){if(e.length<2)return{x:0,y:0};let n=e.length-1,o=null;const a=dZ(e);for(;n>=0&&(o=e[n],!(a.timestamp-o.timestamp>ll(r)));)n--;if(!o)return{x:0,y:0};const i=pi(a.timestamp-o.timestamp);if(i===0)return{x:0,y:0};const l={x:(a.x-o.x)/i,y:(a.y-o.y)/i};return l.x===1/0&&(l.x=0),l.y===1/0&&(l.y=0),l}function hqe(e,{min:r,max:n},o){return r!==void 0&&en&&(e=o?Ir(n,e,o.max):Math.min(e,n)),e}function pZ(e,r,n){return{min:r!==void 0?e.min+r:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function fqe(e,{top:r,left:n,bottom:o,right:a}){return{x:pZ(e.x,n,a),y:pZ(e.y,r,o)}}function hZ(e,r){let n=r.min-e.min,o=r.max-e.max;return r.max-r.mino?n=em(r.min,r.max-o,e.min):o>a&&(n=em(e.min,e.max-a,r.min)),rc(0,1,n)}function yqe(e,r){const n={};return r.min!==void 0&&(n.min=r.min-e.min),r.max!==void 0&&(n.max=r.max-e.min),n}const bC=.35;function bqe(e=bC){return e===!1?e=0:e===!0&&(e=bC),{x:fZ(e,"left","right"),y:fZ(e,"top","bottom")}}function fZ(e,r,n){return{min:mZ(e,r),max:mZ(e,n)}}function mZ(e,r){return typeof e=="number"?e:e[r]||0}const vqe=new WeakMap;class xqe{constructor(r){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Zr(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=r}start(r,{snapToCursor:n=!1,distanceThreshold:o}={}){const{presenceContext:a}=this.visualElement;if(a&&a.isPresent===!1)return;const i=p=>{const{dragSnapToOrigin:f}=this.getProps();f?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(py(p).point)},l=(p,f)=>{const{drag:g,dragPropagation:b,onDragStart:x}=this.getProps();if(g&&!b&&(this.openDragLock&&this.openDragLock(),this.openDragLock=aHe(g),!this.openDragLock))return;this.latestPointerEvent=p,this.latestPanInfo=f,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),hi(k=>{let C=this.getAxisMotionValue(k).get()||0;if(ls.test(C)){const{projection:_}=this.visualElement;if(_&&_.layout){const T=_.layout.layoutBox[k];T&&(C=qo(T)*(parseFloat(C)/100))}}this.originPoint[k]=C}),x&&Pr.postRender(()=>x(p,f)),KS(this.visualElement,"transform");const{animationState:w}=this.visualElement;w&&w.setActive("whileDrag",!0)},s=(p,f)=>{this.latestPointerEvent=p,this.latestPanInfo=f;const{dragPropagation:g,dragDirectionLock:b,onDirectionLock:x,onDrag:w}=this.getProps();if(!g&&!this.openDragLock)return;const{offset:k}=f;if(b&&this.currentDirection===null){this.currentDirection=wqe(k),this.currentDirection!==null&&x&&x(this.currentDirection);return}this.updateAxis("x",f.point,k),this.updateAxis("y",f.point,k),this.visualElement.render(),w&&w(p,f)},c=(p,f)=>{this.latestPointerEvent=p,this.latestPanInfo=f,this.stop(p,f),this.latestPointerEvent=null,this.latestPanInfo=null},u=()=>hi(p=>this.getAnimationState(p)==="paused"&&this.getAxisMotionValue(p).animation?.play()),{dragSnapToOrigin:d}=this.getProps();this.panSession=new cZ(r,{onSessionStart:i,onStart:l,onMove:s,onSessionEnd:c,resumeAnimation:u},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:d,distanceThreshold:o,contextWindow:sZ(this.visualElement)})}stop(r,n){const o=r||this.latestPointerEvent,a=n||this.latestPanInfo,i=this.isDragging;if(this.cancel(),!i||!a||!o)return;const{velocity:l}=a;this.startAnimation(l);const{onDragEnd:s}=this.getProps();s&&Pr.postRender(()=>s(o,a))}cancel(){this.isDragging=!1;const{projection:r,animationState:n}=this.visualElement;r&&(r.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:o}=this.getProps();!o&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(r,n,o){const{drag:a}=this.getProps();if(!o||!k2(r,a,this.currentDirection))return;const i=this.getAxisMotionValue(r);let l=this.originPoint[r]+o[r];this.constraints&&this.constraints[r]&&(l=hqe(l,this.constraints[r],this.elastic[r])),i.set(l)}resolveConstraints(){const{dragConstraints:r,dragElastic:n}=this.getProps(),o=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,a=this.constraints;r&&pm(r)?this.constraints||(this.constraints=this.resolveRefConstraints()):r&&o?this.constraints=fqe(o.layoutBox,r):this.constraints=!1,this.elastic=bqe(n),a!==this.constraints&&o&&this.constraints&&!this.hasMutatedConstraints&&hi(i=>{this.constraints!==!1&&this.getAxisMotionValue(i)&&(this.constraints[i]=yqe(o.layoutBox[i],this.constraints[i]))})}resolveRefConstraints(){const{dragConstraints:r,onMeasureDragConstraints:n}=this.getProps();if(!r||!pm(r))return!1;const o=r.current,{projection:a}=this.visualElement;if(!a||!a.layout)return!1;const i=FHe(o,a.root,this.visualElement.getTransformPagePoint());let l=mqe(a.layout.layoutBox,i);if(n){const s=n(zHe(l));this.hasMutatedConstraints=!!s,s&&(l=hK(s))}return l}startAnimation(r){const{drag:n,dragMomentum:o,dragElastic:a,dragTransition:i,dragSnapToOrigin:l,onDragTransitionEnd:s}=this.getProps(),c=this.constraints||{},u=hi(d=>{if(!k2(d,n,this.currentDirection))return;let p=c&&c[d]||{};l&&(p={min:0,max:0});const f=a?200:1e6,g=a?40:1e7,b={type:"inertia",velocity:o?r[d]:0,bounceStiffness:f,bounceDamping:g,timeConstant:750,restDelta:1,restSpeed:10,...i,...p};return this.startAxisValueAnimation(d,b)});return Promise.all(u).then(s)}startAxisValueAnimation(r,n){const o=this.getAxisMotionValue(r);return KS(this.visualElement,r),o.start(QS(r,o,0,n,this.visualElement,!1))}stopAnimation(){hi(r=>this.getAxisMotionValue(r).stop())}pauseAnimation(){hi(r=>this.getAxisMotionValue(r).animation?.pause())}getAnimationState(r){return this.getAxisMotionValue(r).animation?.state}getAxisMotionValue(r){const n=`_drag${r.toUpperCase()}`,o=this.visualElement.getProps();return o[n]||this.visualElement.getValue(r,(o.initial?o.initial[r]:void 0)||0)}snapToCursor(r){hi(n=>{const{drag:o}=this.getProps();if(!k2(n,o,this.currentDirection))return;const{projection:a}=this.visualElement,i=this.getAxisMotionValue(n);if(a&&a.layout){const{min:l,max:s}=a.layout.layoutBox[n];i.set(r[n]-Ir(l,s,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:r,dragConstraints:n}=this.getProps(),{projection:o}=this.visualElement;if(!pm(n)||!o||!this.constraints)return;this.stopAnimation();const a={x:0,y:0};hi(l=>{const s=this.getAxisMotionValue(l);if(s&&this.constraints!==!1){const c=s.get();a[l]=gqe({min:c,max:c},this.constraints[l])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",o.root&&o.root.updateScroll(),o.updateLayout(),this.resolveConstraints(),hi(l=>{if(!k2(l,r,null))return;const s=this.getAxisMotionValue(l),{min:c,max:u}=this.constraints[l];s.set(Ir(c,u,a[l]))})}addListeners(){if(!this.visualElement.current)return;vqe.set(this.visualElement,this);const r=this.visualElement.current,n=hy(r,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),o=()=>{const{dragConstraints:c}=this.getProps();pm(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:a}=this.visualElement,i=a.addEventListener("measure",o);a&&!a.layout&&(a.root&&a.root.updateScroll(),a.updateLayout()),Pr.read(o);const l=dy(window,"resize",()=>this.scalePositionWithinConstraints()),s=a.addEventListener("didUpdate",(({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(hi(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())}));return()=>{l(),n(),i(),s&&s()}}getProps(){const r=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:o=!1,dragPropagation:a=!1,dragConstraints:i=!1,dragElastic:l=bC,dragMomentum:s=!0}=r;return{...r,drag:n,dragDirectionLock:o,dragPropagation:a,dragConstraints:i,dragElastic:l,dragMomentum:s}}}function k2(e,r,n){return(r===!0||r===e)&&(n===null||n===e)}function wqe(e,r=10){let n=null;return Math.abs(e.y)>r?n="y":Math.abs(e.x)>r&&(n="x"),n}class kqe extends ku{constructor(r){super(r),this.removeGroupControls=di,this.removeListeners=di,this.controls=new xqe(r)}mount(){const{dragControls:r}=this.node.getProps();r&&(this.removeGroupControls=r.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||di}unmount(){this.removeGroupControls(),this.removeListeners()}}const gZ=e=>(r,n)=>{e&&Pr.postRender(()=>e(r,n))};class _qe extends ku{constructor(){super(...arguments),this.removePointerDownListener=di}onPointerDown(r){this.session=new cZ(r,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:sZ(this.node)})}createPanHandlers(){const{onPanSessionStart:r,onPanStart:n,onPan:o,onPanEnd:a}=this.node.getProps();return{onSessionStart:gZ(r),onStart:gZ(n),onMove:o,onEnd:(i,l)=>{delete this.session,a&&Pr.postRender(()=>a(i,l))}}}mount(){this.removePointerDownListener=hy(this.node.current,"pointerdown",r=>this.onPointerDown(r))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const _2={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function yZ(e,r){return r.max===r.min?0:e/(r.max-r.min)*100}const gy={correct:(e,r)=>{if(!r.target)return e;if(typeof e=="string")if(vt.test(e))e=parseFloat(e);else return e;const n=yZ(e,r.target.x),o=yZ(e,r.target.y);return`${n}% ${o}%`}},Eqe={correct:(e,{treeScale:r,projectionDelta:n})=>{const o=e,a=wu.parse(e);if(a.length>5)return o;const i=wu.createTransformer(e),l=typeof a[0]!="number"?1:0,s=n.x.scale*r.x,c=n.y.scale*r.y;a[0+l]/=s,a[1+l]/=c;const u=Ir(s,c,.5);return typeof a[2+l]=="number"&&(a[2+l]/=u),typeof a[3+l]=="number"&&(a[3+l]/=u),i(a)}};let vC=!1;class Sqe extends E.Component{componentDidMount(){const{visualElement:r,layoutGroup:n,switchLayoutGroup:o,layoutId:a}=this.props,{projection:i}=r;YHe(Cqe),i&&(n.group&&n.group.add(i),o&&o.register&&a&&o.register(i),vC&&i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),_2.hasEverUpdated=!0}getSnapshotBeforeUpdate(r){const{layoutDependency:n,visualElement:o,drag:a,isPresent:i}=this.props,{projection:l}=o;return l&&(l.isPresent=i,vC=!0,a||r.layoutDependency!==n||n===void 0||r.isPresent!==i?l.willUpdate():this.safeToRemove(),r.isPresent!==i&&(i?l.promote():l.relegate()||Pr.postRender(()=>{const s=l.getStack();(!s||!s.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:r}=this.props.visualElement;r&&(r.root.didUpdate(),US.postRender(()=>{!r.currentAnimation&&r.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:r,layoutGroup:n,switchLayoutGroup:o}=this.props,{projection:a}=r;vC=!0,a&&(a.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(a),o&&o.deregister&&o.deregister(a))}safeToRemove(){const{safeToRemove:r}=this.props;r&&r()}render(){return null}}function bZ(e){const[r,n]=HK(),o=E.useContext(uy);return y.jsx(Sqe,{...e,layoutGroup:o,switchLayoutGroup:E.useContext(ZK),isPresent:r,safeToRemove:n})}const Cqe={borderRadius:{...gy,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:gy,borderTopRightRadius:gy,borderBottomLeftRadius:gy,borderBottomRightRadius:gy,boxShadow:Eqe},Tqe=(e,r)=>e.depth-r.depth;class Rqe{constructor(){this.children=[],this.isDirty=!1}add(r){iS(this.children,r),this.isDirty=!0}remove(r){a2(this.children,r),this.isDirty=!0}forEach(r){this.isDirty&&this.children.sort(Tqe),this.isDirty=!1,this.children.forEach(r)}}const vZ=["TopLeft","TopRight","BottomLeft","BottomRight"],Aqe=vZ.length,xZ=e=>typeof e=="string"?parseFloat(e):e,wZ=e=>typeof e=="number"||vt.test(e);function Nqe(e,r,n,o,a,i){a?(e.opacity=Ir(0,n.opacity??1,Dqe(o)),e.opacityExit=Ir(r.opacity??1,0,$qe(o))):i&&(e.opacity=Ir(r.opacity??1,n.opacity??1,o));for(let l=0;lor?1:n(em(e,r,o))}function EZ(e,r){e.min=r.min,e.max=r.max}function fi(e,r){EZ(e.x,r.x),EZ(e.y,r.y)}function SZ(e,r){e.translate=r.translate,e.scale=r.scale,e.originPoint=r.originPoint,e.origin=r.origin}function CZ(e,r,n,o,a){return e-=r,e=p2(e,1/n,o),a!==void 0&&(e=p2(e,1/a,o)),e}function Pqe(e,r=0,n=1,o=.5,a,i=e,l=e){if(ls.test(r)&&(r=parseFloat(r),r=Ir(l.min,l.max,r/100)-l.min),typeof r!="number")return;let s=Ir(i.min,i.max,o);e===i&&(s-=r),e.min=CZ(e.min,r,n,s,a),e.max=CZ(e.max,r,n,s,a)}function TZ(e,r,[n,o,a],i,l){Pqe(e,r[n],r[o],r[a],r.scale,i,l)}const Oqe=["x","scaleX","originX"],Mqe=["y","scaleY","originY"];function RZ(e,r,n,o){TZ(e.x,r,Oqe,n?n.x:void 0,o?o.x:void 0),TZ(e.y,r,Mqe,n?n.y:void 0,o?o.y:void 0)}function AZ(e){return e.translate===0&&e.scale===1}function NZ(e){return AZ(e.x)&&AZ(e.y)}function DZ(e,r){return e.min===r.min&&e.max===r.max}function Iqe(e,r){return DZ(e.x,r.x)&&DZ(e.y,r.y)}function $Z(e,r){return Math.round(e.min)===Math.round(r.min)&&Math.round(e.max)===Math.round(r.max)}function PZ(e,r){return $Z(e.x,r.x)&&$Z(e.y,r.y)}function OZ(e){return qo(e.x)/qo(e.y)}function MZ(e,r){return e.translate===r.translate&&e.scale===r.scale&&e.originPoint===r.originPoint}class Lqe{constructor(){this.members=[]}add(r){iS(this.members,r),r.scheduleRender()}remove(r){if(a2(this.members,r),r===this.prevLead&&(this.prevLead=void 0),r===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(r){const n=this.members.findIndex(a=>r===a);if(n===0)return!1;let o;for(let a=n;a>=0;a--){const i=this.members[a];if(i.isPresent!==!1){o=i;break}}return o?(this.promote(o),!0):!1}promote(r,n){const o=this.lead;if(r!==o&&(this.prevLead=o,this.lead=r,r.show(),o)){o.instance&&o.scheduleRender(),r.scheduleRender(),r.resumeFrom=o,n&&(r.resumeFrom.preserveOpacity=!0),o.snapshot&&(r.snapshot=o.snapshot,r.snapshot.latestValues=o.animationValues||o.latestValues),r.root&&r.root.isUpdating&&(r.isLayoutDirty=!0);const{crossfade:a}=r.options;a===!1&&o.hide()}}exitAnimationComplete(){this.members.forEach(r=>{const{options:n,resumingFrom:o}=r;n.onExitComplete&&n.onExitComplete(),o&&o.options.onExitComplete&&o.options.onExitComplete()})}scheduleRender(){this.members.forEach(r=>{r.instance&&r.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function zqe(e,r,n){let o="";const a=e.x.translate/r.x,i=e.y.translate/r.y,l=n?.z||0;if((a||i||l)&&(o=`translate3d(${a}px, ${i}px, ${l}px) `),(r.x!==1||r.y!==1)&&(o+=`scale(${1/r.x}, ${1/r.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:f,skewX:g,skewY:b}=n;u&&(o=`perspective(${u}px) ${o}`),d&&(o+=`rotate(${d}deg) `),p&&(o+=`rotateX(${p}deg) `),f&&(o+=`rotateY(${f}deg) `),g&&(o+=`skewX(${g}deg) `),b&&(o+=`skewY(${b}deg) `)}const s=e.x.scale*r.x,c=e.y.scale*r.y;return(s!==1||c!==1)&&(o+=`scale(${s}, ${c})`),o||"none"}const xC=["","X","Y","Z"],jqe=1e3;let Bqe=0;function wC(e,r,n,o){const{latestValues:a}=r;a[e]&&(n[e]=a[e],r.setStaticValue(e,0),o&&(o[e]=0))}function IZ(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:r}=e.options;if(!r)return;const n=pK(r);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:a,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Pr,!(a||i))}const{parent:o}=e;o&&!o.hasCheckedOptimisedAppear&&IZ(o)}function LZ({attachResizeListener:e,defaultParent:r,measureScroll:n,checkIsScrollRoot:o,resetTransform:a}){return class{constructor(i={},l=r?.()){this.id=Bqe++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(Uqe),this.nodes.forEach(Wqe),this.nodes.forEach(Gqe),this.nodes.forEach(qqe)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=i,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let s=0;sthis.root.updateBlockedByResize=!1;Pr.read(()=>{d=window.innerWidth}),e(i,()=>{const f=window.innerWidth;f!==d&&(d=f,this.root.updateBlockedByResize=!0,u&&u(),u=lUe(p,250),_2.hasAnimatedSinceResize&&(_2.hasAnimatedSinceResize=!1,this.nodes.forEach(BZ)))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&c&&(l||s)&&this.addEventListener("didUpdate",({delta:u,hasLayoutChanged:d,hasRelativeLayoutChanged:p,layout:f})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const g=this.options.transition||c.getDefaultTransition()||Jqe,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=c.getProps(),w=!this.targetLayout||!PZ(this.targetLayout,f),k=!d&&p;if(this.options.layoutRoot||this.resumeFrom||k||d&&(w||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const C={...BS(g,"layout"),onPlay:b,onComplete:x};(c.shouldReduceMotion||this.options.layoutRoot)&&(C.delay=0,C.type=!1),this.startAnimation(C),this.setAnimationOrigin(u,k)}else d||BZ(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=f})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const i=this.getStack();i&&i.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),vu(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(Xqe),this.animationId++)}getTransformTemplate(){const{visualElement:i}=this.options;return i&&i.getProps().transformTemplate}willUpdate(i=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&IZ(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let u=0;u{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!qo(this.snapshot.measuredBox.x)&&!qo(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let s=0;s{const T=_/1e3;FZ(d.x,i.x,T),FZ(d.y,i.y,T),this.setTargetDelta(d),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(my(p,this.layout.layoutBox,this.relativeParent.layout.layoutBox),Zqe(this.relativeTarget,this.relativeTargetOrigin,p,T),C&&Iqe(this.relativeTarget,C)&&(this.isProjectionDirty=!1),C||(C=Zr()),fi(C,this.relativeTarget)),b&&(this.animationValues=u,Nqe(u,c,this.latestValues,T,k,w)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=T},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(i){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(vu(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Pr.update(()=>{_2.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=sp(0)),this.currentAnimation=zK(this.motionValue,[0,1e3],{...i,velocity:0,isSync:!0,onUpdate:l=>{this.mixTargetDelta(l),i.onUpdate&&i.onUpdate(l)},onStop:()=>{},onComplete:()=>{i.onComplete&&i.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const i=this.getStack();i&&i.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(jqe),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const i=this.getLead();let{targetWithTransforms:l,target:s,layout:c,latestValues:u}=i;if(!(!l||!s||!c)){if(this!==i&&this.layout&&c&&YZ(this.options.animationType,this.layout.layoutBox,c.layoutBox)){s=this.target||Zr();const d=qo(this.layout.layoutBox.x);s.x.min=i.target.x.min,s.x.max=s.x.min+d;const p=qo(this.layout.layoutBox.y);s.y.min=i.target.y.min,s.y.max=s.y.min+p}fi(l,s),lm(l,u),fy(this.projectionDeltaWithTransform,this.layoutCorrected,l,u)}}registerSharedNode(i,l){this.sharedNodes.has(i)||this.sharedNodes.set(i,new Lqe),this.sharedNodes.get(i).add(l);const s=l.options.initialPromotionConfig;l.promote({transition:s?s.transition:void 0,preserveFollowOpacity:s&&s.shouldPreserveFollowOpacity?s.shouldPreserveFollowOpacity(l):void 0})}isLead(){const i=this.getStack();return i?i.lead===this:!0}getLead(){const{layoutId:i}=this.options;return i?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:i}=this.options;return i?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:i}=this.options;if(i)return this.root.sharedNodes.get(i)}promote({needsReset:i,transition:l,preserveFollowOpacity:s}={}){const c=this.getStack();c&&c.promote(this,s),i&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const i=this.getStack();return i?i.relegate(this):!1}resetSkewAndRotation(){const{visualElement:i}=this.options;if(!i)return;let l=!1;const{latestValues:s}=i;if((s.z||s.rotate||s.rotateX||s.rotateY||s.rotateZ||s.skewX||s.skewY)&&(l=!0),!l)return;const c={};s.z&&wC("z",i,c,this.animationValues);for(let u=0;ui.currentAnimation?.stop()),this.root.nodes.forEach(zZ),this.root.sharedNodes.clear()}}}function Fqe(e){e.updateLayout()}function Hqe(e){const r=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&r&&e.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:o}=e.layout,{animationType:a}=e.options,i=r.source!==e.layout.source;a==="size"?hi(d=>{const p=i?r.measuredBox[d]:r.layoutBox[d],f=qo(p);p.min=n[d].min,p.max=p.min+f}):YZ(a,r.layoutBox,n)&&hi(d=>{const p=i?r.measuredBox[d]:r.layoutBox[d],f=qo(n[d]);p.max=p.min+f,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[d].max=e.relativeTarget[d].min+f)});const l=cm();fy(l,n,r.layoutBox);const s=cm();i?fy(s,e.applyTransform(o,!0),r.measuredBox):fy(s,n,r.layoutBox);const c=!NZ(l);let u=!1;if(!e.resumeFrom){const d=e.getClosestProjectingParent();if(d&&!d.resumeFrom){const{snapshot:p,layout:f}=d;if(p&&f){const g=Zr();my(g,r.layoutBox,p.layoutBox);const b=Zr();my(b,n,f.layoutBox),PZ(g,b)||(u=!0),d.options.layoutRoot&&(e.relativeTarget=b,e.relativeTargetOrigin=g,e.relativeParent=d)}}}e.notifyListeners("didUpdate",{layout:n,snapshot:r,delta:s,layoutDelta:l,hasLayoutChanged:c,hasRelativeLayoutChanged:u})}else if(e.isLead()){const{onExitComplete:n}=e.options;n&&n()}e.options.transition=void 0}function Uqe(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function qqe(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Vqe(e){e.clearSnapshot()}function zZ(e){e.clearMeasurements()}function jZ(e){e.isLayoutDirty=!1}function Yqe(e){const{visualElement:r}=e.options;r&&r.getProps().onBeforeLayoutMeasure&&r.notify("BeforeLayoutMeasure"),e.resetTransform()}function BZ(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Wqe(e){e.resolveTargetDelta()}function Gqe(e){e.calcProjection()}function Xqe(e){e.resetSkewAndRotation()}function Kqe(e){e.removeLeadSnapshot()}function FZ(e,r,n){e.translate=Ir(r.translate,0,n),e.scale=Ir(r.scale,1,n),e.origin=r.origin,e.originPoint=r.originPoint}function HZ(e,r,n,o){e.min=Ir(r.min,n.min,o),e.max=Ir(r.max,n.max,o)}function Zqe(e,r,n,o){HZ(e.x,r.x,n.x,o),HZ(e.y,r.y,n.y,o)}function Qqe(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const Jqe={duration:.45,ease:[.4,0,.1,1]},UZ=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),qZ=UZ("applewebkit/")&&!UZ("chrome/")?Math.round:di;function VZ(e){e.min=qZ(e.min),e.max=qZ(e.max)}function eVe(e){VZ(e.x),VZ(e.y)}function YZ(e,r,n){return e==="position"||e==="preserve-aspect"&&!cqe(OZ(r),OZ(n),.2)}function tVe(e){return e!==e.root&&e.scroll?.wasRoot}const rVe=LZ({attachResizeListener:(e,r)=>dy(e,"resize",r),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),kC={current:void 0},WZ=LZ({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!kC.current){const e=new rVe({});e.mount(window),e.setOptions({layoutScroll:!0}),kC.current=e}return kC.current},resetTransform:(e,r)=>{e.style.transform=r!==void 0?r:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),nVe={pan:{Feature:_qe},drag:{Feature:kqe,ProjectionNode:WZ,MeasureLayout:bZ}};function GZ(e,r,n){const{props:o}=e;e.animationState&&o.whileHover&&e.animationState.setActive("whileHover",n==="Start");const a="onHover"+n,i=o[a];i&&Pr.postRender(()=>i(r,py(r)))}class oVe extends ku{mount(){const{current:r}=this.node;r&&(this.unmount=iHe(r,(n,o)=>(GZ(this.node,o,"Start"),a=>GZ(this.node,a,"End"))))}unmount(){}}class aVe extends ku{constructor(){super(...arguments),this.isActive=!1}onFocus(){let r=!1;try{r=this.node.current.matches(":focus-visible")}catch{r=!0}!r||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Q0(dy(this.node.current,"focus",()=>this.onFocus()),dy(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function XZ(e,r,n){const{props:o}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&o.whileTap&&e.animationState.setActive("whileTap",n==="Start");const a="onTap"+(n==="End"?"":n),i=o[a];i&&Pr.postRender(()=>i(r,py(r)))}class iVe extends ku{mount(){const{current:r}=this.node;r&&(this.unmount=uHe(r,(n,o)=>(XZ(this.node,o,"Start"),(a,{success:i})=>XZ(this.node,a,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const _C=new WeakMap,EC=new WeakMap,lVe=e=>{const r=_C.get(e.target);r&&r(e)},sVe=e=>{e.forEach(lVe)};function cVe({root:e,...r}){const n=e||document;EC.has(n)||EC.set(n,{});const o=EC.get(n),a=JSON.stringify(r);return o[a]||(o[a]=new IntersectionObserver(sVe,{root:e,...r})),o[a]}function uVe(e,r,n){const o=cVe(r);return _C.set(e,n),o.observe(e),()=>{_C.delete(e),o.unobserve(e)}}const dVe={some:0,all:1};class pVe extends ku{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:r={}}=this.node.getProps(),{root:n,margin:o,amount:a="some",once:i}=r,l={root:n?n.current:void 0,rootMargin:o,threshold:typeof a=="number"?a:dVe[a]},s=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),f=u?d:p;f&&f(c)};return uVe(this.node.current,l,s)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:r,prevProps:n}=this.node;["amount","margin","root"].some(hVe(r,n))&&this.startObserver()}unmount(){}}function hVe({viewport:e={}},{viewport:r={}}={}){return n=>e[n]!==r[n]}const fVe={inView:{Feature:pVe},tap:{Feature:iVe},focus:{Feature:aVe},hover:{Feature:oVe}},mVe={layout:{ProjectionNode:WZ,MeasureLayout:bZ}},gVe={renderer:VUe,...nqe,...fVe},yVe={...gVe,...nVe,...mVe};function KZ(e){const r=um(()=>sp(e)),{isStatic:n}=E.useContext(up);if(n){const[,o]=E.useState(e);E.useEffect(()=>r.on("change",o),[])}return r}function bVe(){!oC.current&&SK();const[e]=E.useState(h2.current);return e}function ZZ(){const e=bVe(),{reducedMotion:r}=E.useContext(up);return r==="never"?!1:r==="always"?!0:e}class vVe{constructor(){this.componentControls=new Set}subscribe(r){return this.componentControls.add(r),()=>this.componentControls.delete(r)}start(r,n){this.componentControls.forEach(o=>{o.start(r.nativeEvent||r,n)})}cancel(){this.componentControls.forEach(r=>{r.cancel()})}stop(){this.componentControls.forEach(r=>{r.stop()})}}const xVe=()=>new vVe;function wVe(){return um(xVe)}const SC=E.createContext(null);SC.displayName="ElementDetailsActorContext";const kVe=()=>{const e=E.useContext(SC);if(e===null)throw new Error("ElementDetailsActorRef is not provided");return e},ul=(e,r,n)=>{const o=a=>({[e]:"__ignore__",...r,...$d(a)});return{recipeFn:(a,i=!0)=>{const l=TB({conditions:{shift:$B,finalize:DB,breakpoints:{keys:["base","xs","sm","md","lg","xl"]}},utility:{toHash:(c,u)=>u(c.join(":")),transform:(c,u)=>(KEe(e,n,a,c),u==="__ignore__"?{className:e}:(u=qE(u),{className:`${e}--${c}_${u}`}))}}),s=o(a);if(i){const c=KE(n,s);return Je(l(s),ye(c))}return l(s)},getVariantProps:o,__getCompoundVariantCss__:a=>KE(n,o(a))}},oc=(e,r)=>{if(e&&!r)return e;if(!e&&r)return r;const n=(...i)=>Je(e(...i),r(...i)),o=GE(e.variantKeys,r.variantKeys),a=o.reduce((i,l)=>(i[l]=GE(e.variantMap[l],r.variantMap[l]),i),{});return Object.assign(n,{__recipe__:!0,__name__:`${e.__name__} ${r.__name__}`,raw:i=>i,variantKeys:o,variantMap:a,splitVariantProps(i){return Yn(i,o)}})},CC=ul("action-btn",{size:"md",radius:"md",variant:"filled"},[]),QZ={variant:["transparent","filled"],size:["sm","md"],radius:["sm","md"]},JZ=Object.keys(QZ),E2=Object.assign(co(CC.recipeFn),{__recipe__:!0,__name__:"actionBtn",__getCompoundVariantCss__:CC.__getCompoundVariantCss__,raw:e=>e,variantKeys:JZ,variantMap:QZ,merge(e){return oc(this,e)},splitVariantProps(e){return Yn(e,JZ)},getVariantProps:CC.getVariantProps}),TC=ul("likec4-compound-node",{},[]),eQ={isTransparent:["false","true"],inverseColor:["true","false"],borderStyle:["solid","dashed","dotted","none"]},tQ=Object.keys(eQ),_Ve=Object.assign(co(TC.recipeFn),{__recipe__:!0,__name__:"compoundNode",__getCompoundVariantCss__:TC.__getCompoundVariantCss__,raw:e=>e,variantKeys:tQ,variantMap:eQ,merge(e){return oc(this,e)},splitVariantProps(e){return Yn(e,tQ)},getVariantProps:TC.getVariantProps}),RC=ul("likec4-edge-action-btn",{},[]),rQ={},nQ=Object.keys(rQ),EVe=Object.assign(co(RC.recipeFn),{__recipe__:!0,__name__:"edgeActionBtn",__getCompoundVariantCss__:RC.__getCompoundVariantCss__,raw:e=>e,variantKeys:nQ,variantMap:rQ,merge(e){return oc(this,e)},splitVariantProps(e){return Yn(e,nQ)},getVariantProps:RC.getVariantProps}),AC=ul("likec4-element-node-data",{},[]),oQ={},aQ=Object.keys(oQ),SVe=Object.assign(co(AC.recipeFn),{__recipe__:!0,__name__:"elementNodeData",__getCompoundVariantCss__:AC.__getCompoundVariantCss__,raw:e=>e,variantKeys:aQ,variantMap:oQ,merge(e){return oc(this,e)},splitVariantProps(e){return Yn(e,aQ)},getVariantProps:AC.getVariantProps}),NC=ul("likec4-element-shape",{},[]),iQ={shapetype:["html","svg"]},lQ=Object.keys(iQ),sQ=Object.assign(co(NC.recipeFn),{__recipe__:!0,__name__:"elementShapeRecipe",__getCompoundVariantCss__:NC.__getCompoundVariantCss__,raw:e=>e,variantKeys:lQ,variantMap:iQ,merge(e){return oc(this,e)},splitVariantProps(e){return Yn(e,lQ)},getVariantProps:NC.getVariantProps}),DC=ul("likec4-tag",{autoTextColor:!1},[]),cQ={autoTextColor:["false","true"]},uQ=Object.keys(cQ),CVe=Object.assign(co(DC.recipeFn),{__recipe__:!0,__name__:"likec4tag",__getCompoundVariantCss__:DC.__getCompoundVariantCss__,raw:e=>e,variantKeys:uQ,variantMap:cQ,merge(e){return oc(this,e)},splitVariantProps(e){return Yn(e,uQ)},getVariantProps:DC.getVariantProps}),$C=ul("likec4-markdown-block",{uselikec4palette:!1,value:"markdown"},[]),dQ={uselikec4palette:["true","false"],value:["markdown","plaintext"]},pQ=Object.keys(dQ),TVe=Object.assign(co($C.recipeFn),{__recipe__:!0,__name__:"markdownBlock",__getCompoundVariantCss__:$C.__getCompoundVariantCss__,raw:e=>e,variantKeys:pQ,variantMap:dQ,merge(e){return oc(this,e)},splitVariantProps(e){return Yn(e,pQ)},getVariantProps:$C.getVariantProps}),PC=ul("likec4-navigation-panel-icon",{variant:"default"},[]),hQ={variant:["default","filled"]},fQ=Object.keys(hQ),RVe=Object.assign(co(PC.recipeFn),{__recipe__:!0,__name__:"navigationPanelActionIcon",__getCompoundVariantCss__:PC.__getCompoundVariantCss__,raw:e=>e,variantKeys:fQ,variantMap:hQ,merge(e){return oc(this,e)},splitVariantProps(e){return Yn(e,fQ)},getVariantProps:PC.getVariantProps}),OC=ul("likec4-overlay",{fullscreen:!1,withBackdrop:!0},[]),mQ={fullscreen:["false","true"],withBackdrop:["false","true"]},gQ=Object.keys(mQ),AVe=Object.assign(co(OC.recipeFn),{__recipe__:!0,__name__:"overlay",__getCompoundVariantCss__:OC.__getCompoundVariantCss__,raw:e=>e,variantKeys:gQ,variantMap:mQ,merge(e){return oc(this,e)},splitVariantProps(e){return Yn(e,gQ)},getVariantProps:OC.getVariantProps}),yQ={isStepEdge:!1,cursor:"default"},NVe=[],DVe=[["root","likec4-edge-label__root"],["stepNumber","likec4-edge-label__stepNumber"],["labelContents","likec4-edge-label__labelContents"],["labelText","likec4-edge-label__labelText"],["labelTechnology","likec4-edge-label__labelTechnology"]],$Ve=DVe.map(([e,r])=>[e,ul(r,yQ,WE(NVe,e))]),PVe=co((e={})=>Object.fromEntries($Ve.map(([r,n])=>[r,n.recipeFn(e)]))),bQ=["cursor","isStepEdge"],OVe=e=>({...yQ,...$d(e)}),MVe=Object.assign(PVe,{__recipe__:!1,__name__:"edgeLabel",raw:e=>e,classNameMap:{},variantKeys:bQ,variantMap:{cursor:["pointer","default"],isStepEdge:["false","true"]},splitVariantProps(e){return Yn(e,bQ)},getVariantProps:OVe}),vQ={truncateLabel:!1},IVe=[],LVe=[["root","likec4-navlink__root"],["body","likec4-navlink__body"],["section","likec4-navlink__section"],["label","likec4-navlink__label"],["description","likec4-navlink__description"]],zVe=LVe.map(([e,r])=>[e,ul(r,vQ,WE(IVe,e))]),jVe=co((e={})=>Object.fromEntries(zVe.map(([r,n])=>[r,n.recipeFn(e)]))),xQ=["truncateLabel"],BVe=e=>({...vQ,...$d(e)}),FVe=Object.assign(jVe,{__recipe__:!1,__name__:"navigationLink",raw:e=>e,classNameMap:{},variantKeys:xQ,variantMap:{truncateLabel:["true","false"]},splitVariantProps(e){return Yn(e,xQ)},getVariantProps:BVe});function HVe(){return uf()}function MC(e,r){return Rt(it(e),Gn)}function IC(){return fr()}function wQ(e){return GRe(e)}const UVe=e=>Math.round(e.transform[2]*100)/100;function qVe(){return Rt(UVe)}const VVe=e=>e.transform[2]<.2;function YVe(){return Rt(VVe)}const{abs:yy,cos:ac,sin:hm,acos:WVe,atan2:by,sqrt:_u,pow:mi}=Math;function vy(e){return e<0?-mi(-e,.3333333333333333):mi(e,.3333333333333333)}const kQ=Math.PI,S2=2*kQ,Eu=kQ/2,GVe=1e-6,LC=Number.MAX_SAFE_INTEGER||9007199254740991,zC=Number.MIN_SAFE_INTEGER||-9007199254740991,XVe={x:0,y:0,z:0},Ye={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(e,r){const n=r(e);let o=n.x*n.x+n.y*n.y;return typeof n.z<"u"&&(o+=n.z*n.z),_u(o)},compute:function(e,r,n){if(e===0)return r[0].t=0,r[0];const o=r.length-1;if(e===1)return r[o].t=1,r[o];const a=1-e;let i=r;if(o===0)return r[0].t=e,r[0];if(o===1){const s={x:a*i[0].x+e*i[1].x,y:a*i[0].y+e*i[1].y,t:e};return n&&(s.z=a*i[0].z+e*i[1].z),s}if(o<4){let s=a*a,c=e*e,u,d,p,f=0;o===2?(i=[i[0],i[1],i[2],XVe],u=s,d=a*e*2,p=c):o===3&&(u=s*a,d=s*e*3,p=a*c*3,f=e*c);const g={x:u*i[0].x+d*i[1].x+p*i[2].x+f*i[3].x,y:u*i[0].y+d*i[1].y+p*i[2].y+f*i[3].y,t:e};return n&&(g.z=u*i[0].z+d*i[1].z+p*i[2].z+f*i[3].z),g}const l=JSON.parse(JSON.stringify(r));for(;l.length>1;){for(let s=0;s1;a--,i--){const l=[];for(let s=0,c;s"u")e=.5;else if(e===0||e===1)return e;const n=mi(e,r)+mi(1-e,r),o=n-1;return yy(o/n)},projectionratio:function(e,r){if(r!==2&&r!==3)return!1;if(typeof e>"u")e=.5;else if(e===0||e===1)return e;const n=mi(1-e,r),o=mi(e,r)+n;return n/o},lli8:function(e,r,n,o,a,i,l,s){const c=(e*o-r*n)*(a-l)-(e-n)*(a*s-i*l),u=(e*o-r*n)*(i-s)-(r-o)*(a*s-i*l),d=(e-n)*(i-s)-(r-o)*(a-l);return d==0?!1:{x:c/d,y:u/d}},lli4:function(e,r,n,o){const a=e.x,i=e.y,l=r.x,s=r.y,c=n.x,u=n.y,d=o.x,p=o.y;return Ye.lli8(a,i,l,s,c,u,d,p)},lli:function(e,r){return Ye.lli4(e,e.c,r,r.c)},makeline:function(e,r){return new Lr(e.x,e.y,(e.x+r.x)/2,(e.y+r.y)/2,r.x,r.y)},findbbox:function(e){let r=LC,n=LC,o=zC,a=zC;return e.forEach(function(i){const l=i.bbox();r>l.x.min&&(r=l.x.min),n>l.y.min&&(n=l.y.min),o0&&(d.c1=c,d.c2=u,d.s1=e,d.s2=n,i.push(d))})}),i},makeshape:function(e,r,n){const o=r.points.length,a=e.points.length,i=Ye.makeline(r.points[o-1],e.points[0]),l=Ye.makeline(e.points[a-1],r.points[0]),s={startcap:i,forward:e,back:r,endcap:l,bbox:Ye.findbbox([i,e,r,l])};return s.intersections=function(c){return Ye.shapeintersections(s,s.bbox,c,c.bbox,n)},s},getminmax:function(e,r,n){if(!n)return{min:0,max:0};let o=LC,a=zC,i,l;n.indexOf(0)===-1&&(n=[0].concat(n)),n.indexOf(1)===-1&&n.push(1);for(let s=0,c=n.length;sa&&(a=l[r]);return{min:o,mid:(o+a)/2,max:a,size:a-o}},align:function(e,r){const n=r.p1.x,o=r.p1.y,a=-by(r.p2.y-o,r.p2.x-n),i=function(l){return{x:(l.x-n)*ac(a)-(l.y-o)*hm(a),y:(l.x-n)*hm(a)+(l.y-o)*ac(a)}};return e.map(i)},roots:function(e,r){r=r||{p1:{x:0,y:0},p2:{x:1,y:0}};const n=e.length-1,o=Ye.align(e,r),a=function(D){return 0<=D&&D<=1};if(n===2){const D=o[0].y,N=o[1].y,P=o[2].y,O=D-2*N+P;if(O!==0){const B=-_u(N*N-D*P),L=-D+N,Y=-(B+L)/O,M=-(-B+L)/O;return[Y,M].filter(a)}else if(N!==P&&O===0)return[(2*N-P)/(2*N-2*P)].filter(a);return[]}const i=o[0].y,l=o[1].y,s=o[2].y,c=o[3].y;let u=-i+3*l-3*s+c,d=3*i-6*l+3*s,p=-3*i+3*l,f=i;if(Ye.approximately(u,0)){if(Ye.approximately(d,0))return Ye.approximately(p,0)?[]:[-f/p].filter(a);const D=_u(p*p-4*d*f),N=2*d;return[(D-p)/N,(-p-D)/N].filter(a)}d/=u,p/=u,f/=u;const g=(3*p-d*d)/3,b=g/3,x=(2*d*d*d-9*d*p+27*f)/27,w=x/2,k=w*w+b*b*b;let C,_,T,R,A;if(k<0){const D=-g/3,N=D*D*D,P=_u(N),O=-x/(2*P),B=O<-1?-1:O>1?1:O,L=WVe(B),Y=vy(P),M=2*Y;return T=M*ac(L/3)-d/3,R=M*ac((L+S2)/3)-d/3,A=M*ac((L+2*S2)/3)-d/3,[T,R,A].filter(a)}else{if(k===0)return C=w<0?vy(-w):-vy(w),T=2*C-d/3,R=-C-d/3,[T,R].filter(a);{const D=_u(k);return C=vy(-w+D),_=vy(w+D),[C-_-d/3].filter(a)}}},droots:function(e){if(e.length===3){const r=e[0],n=e[1],o=e[2],a=r-2*n+o;if(a!==0){const i=-_u(n*n-r*o),l=-r+n,s=-(i+l)/a,c=-(-i+l)/a;return[s,c]}else if(n!==o&&a===0)return[(2*n-o)/(2*(n-o))];return[]}if(e.length===2){const r=e[0],n=e[1];return r!==n?[r/(r-n)]:[]}return[]},curvature:function(e,r,n,o,a){let i,l,s,c,u=0,d=0;const p=Ye.compute(e,r),f=Ye.compute(e,n),g=p.x*p.x+p.y*p.y;if(o?(i=_u(mi(p.y*f.z-f.y*p.z,2)+mi(p.z*f.x-f.z*p.x,2)+mi(p.x*f.y-f.x*p.y,2)),l=mi(g+p.z*p.z,3/2)):(i=p.x*f.y-p.y*f.x,l=mi(g,3/2)),i===0||l===0)return{k:0,r:0};if(u=i/l,d=l/i,!a){const b=Ye.curvature(e-.001,r,n,o,!0).k,x=Ye.curvature(e+.001,r,n,o,!0).k;c=(x-u+(u-b))/2,s=(yy(x-u)+yy(u-b))/2}return{k:u,r:d,dk:c,adk:s}},inflections:function(e){if(e.length<4)return[];const r=Ye.align(e,{p1:e[0],p2:e.slice(-1)[0]}),n=r[2].x*r[1].y,o=r[3].x*r[1].y,a=r[1].x*r[2].y,i=r[3].x*r[2].y,l=18*(-3*n+2*o+3*a-i),s=18*(3*n-o-3*a),c=18*(a-n);if(Ye.approximately(l,0)){if(!Ye.approximately(s,0)){let f=-c/s;if(0<=f&&f<=1)return[f]}return[]}const u=2*l;if(Ye.approximately(u,0))return[];const d=s*s-4*l*c;if(d<0)return[];const p=Math.sqrt(d);return[(p-s)/u,-(s+p)/u].filter(function(f){return 0<=f&&f<=1})},bboxoverlap:function(e,r){const n=["x","y"],o=n.length;for(let a=0,i,l,s,c;a=c)return!1;return!0},expandbox:function(e,r){r.x.mine.x.max&&(e.x.max=r.x.max),r.y.max>e.y.max&&(e.y.max=r.y.max),r.z&&r.z.max>e.z.max&&(e.z.max=r.z.max),e.x.mid=(e.x.min+e.x.max)/2,e.y.mid=(e.y.min+e.y.max)/2,e.z&&(e.z.mid=(e.z.min+e.z.max)/2),e.x.size=e.x.max-e.x.min,e.y.size=e.y.max-e.y.min,e.z&&(e.z.size=e.z.max-e.z.min)},pairiteration:function(e,r,n){const o=e.bbox(),a=r.bbox(),i=1e5,l=n||.5;if(o.x.size+o.y.sizeA||A>D)&&(R+=S2),R>D&&(N=D,D=R,R=N)):D4){if(arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");a=!0}}else if(i!==6&&i!==8&&i!==9&&i!==12&&arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const l=this._3d=!a&&(i===9||i===12)||r&&r[0]&&typeof r[0].z<"u",s=this.points=[];for(let g=0,b=l?3:2;gg+wy(b.y),0)"u"&&(a=.5),a===0)return new Lr(n,n,o);if(a===1)return new Lr(r,n,n);const i=Lr.getABC(2,r,n,o,a);return new Lr(r,i.A,o)}static cubicFromPoints(r,n,o,a,i){typeof a>"u"&&(a=.5);const l=Lr.getABC(3,r,n,o,a);typeof i>"u"&&(i=Ye.dist(n,l.C));const s=i*(1-a)/a,c=Ye.dist(r,o),u=(o.x-r.x)/c,d=(o.y-r.y)/c,p=i*u,f=i*d,g=s*u,b=s*d,x={x:n.x-p,y:n.y-f},w={x:n.x+g,y:n.y+b},k=l.A,C={x:k.x+(x.x-k.x)/(1-a),y:k.y+(x.y-k.y)/(1-a)},_={x:k.x+(w.x-k.x)/a,y:k.y+(w.y-k.y)/a},T={x:r.x+(C.x-r.x)/a,y:r.y+(C.y-r.y)/a},R={x:o.x+(_.x-o.x)/(1-a),y:o.y+(_.y-o.y)/(1-a)};return new Lr(r,T,R,o)}static getUtils(){return Ye}getUtils(){return Lr.getUtils()}static get PolyBezier(){return xy}valueOf(){return this.toString()}toString(){return Ye.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const r=this.points,n=r[0].x,o=r[0].y,a=["M",n,o,this.order===2?"Q":"C"];for(let i=1,l=r.length;i0}length(){return Ye.length(this.derivative.bind(this))}static getABC(r=2,n,o,a,i=.5){const l=Ye.projectionratio(i,r),s=1-l,c={x:l*n.x+s*a.x,y:l*n.y+s*a.y},u=Ye.abcratio(i,r);return{A:{x:o.x+(o.x-c.x)/u,y:o.y+(o.y-c.y)/u},B:o,C:c,S:n,E:a}}getABC(r,n){n=n||this.get(r);let o=this.points[0],a=this.points[this.order];return Lr.getABC(this.order,o,n,a,r)}getLUT(r){if(this.verify(),r=r||100,this._lut.length===r+1)return this._lut;this._lut=[],r++,this._lut=[];for(let n=0,o,a;n1?1:p,f=this.compute(p),f.t=p,f.d=u,f}get(r){return this.compute(r)}point(r){return this.points[r]}compute(r){return this.ratios?Ye.computeWithRatios(r,this.points,this.ratios,this._3d):Ye.compute(r,this.points,this._3d,this.ratios)}raise(){const r=this.points,n=[r[0]],o=r.length;for(let a=1,i,l;a1;){o=[];for(let l=0,s,c=n.length-1;l=0&&l<=1}),n=n.concat(r[o].sort(Ye.numberSort))}).bind(this)),r.values=n.sort(Ye.numberSort).filter(function(o,a){return n.indexOf(o)===a}),r}bbox(){const r=this.extrema(),n={};return this.dims.forEach((function(o){n[o]=Ye.getminmax(this,o,r[o])}).bind(this)),n}overlaps(r){const n=this.bbox(),o=r.bbox();return Ye.bboxoverlap(n,o)}offset(r,n){if(typeof n<"u"){const o=this.get(r),a=this.normal(r),i={c:o,n:a,x:o.x+a.x*n,y:o.y+a.y*n};return this._3d&&(i.z=o.z+a.z*n),i}if(this._linear){const o=this.normal(0),a=this.points.map(function(i){const l={x:i.x+r*o.x,y:i.y+r*o.y};return i.z&&o.z&&(l.z=i.z+r*o.z),l});return[new Lr(a)]}return this.reduce().map(function(o){return o._linear?o.offset(r)[0]:o.scale(r)})}simple(){if(this.order===3){const a=Ye.angle(this.points[0],this.points[3],this.points[1]),i=Ye.angle(this.points[0],this.points[3],this.points[2]);if(a>0&&i<0||a<0&&i>0)return!1}const r=this.normal(0),n=this.normal(1);let o=r.x*n.x+r.y*n.y;return this._3d&&(o+=r.z*n.z),wy(QVe(o))(1-s/a)*n+s/a*o);return new Lr(this.points.map((l,s)=>({x:l.x+r.x*i[s],y:l.y+r.y*i[s]})))}scale(r){const n=this.order;let o=!1;if(typeof r=="function"&&(o=r),o&&n===2)return this.raise().scale(o);const a=this.clockwise,i=this.points;if(this._linear)return this.translate(this.normal(0),o?o(0):r,o?o(1):r);const l=o?o(0):r,s=o?o(1):r,c=[this.offset(0,10),this.offset(1,10)],u=[],d=Ye.lli4(c[0],c[0].c,c[1],c[1].c);if(!d)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach(function(p){const f=u[p*n]=Ye.copy(i[p*n]);f.x+=(p?s:l)*c[p].n.x,f.y+=(p?s:l)*c[p].n.y}),o?([0,1].forEach(function(p){if(!(n===2&&p)){var f=i[p+1],g={x:f.x-d.x,y:f.y-d.y},b=o?o((p+1)/n):r;o&&!a&&(b=-b);var x=ky(g.x*g.x+g.y*g.y);g.x/=x,g.y/=x,u[p+1]={x:f.x+b*g.x,y:f.y+b*g.y}}}),new Lr(u)):([0,1].forEach(p=>{if(n===2&&p)return;const f=u[p*n],g=this.derivative(p),b={x:f.x+g.x,y:f.y+g.y};u[p+1]=Ye.lli4(f,b,d,i[p+1])}),new Lr(u))}outline(r,n,o,a){if(n=n===void 0?r:n,this._linear){const R=this.normal(0),A=this.points[0],D=this.points[this.points.length-1];let N,P,O;o===void 0&&(o=r,a=n),N={x:A.x+R.x*r,y:A.y+R.y*r},O={x:D.x+R.x*o,y:D.y+R.y*o},P={x:(N.x+O.x)/2,y:(N.y+O.y)/2};const B=[N,P,O];N={x:A.x-R.x*n,y:A.y-R.y*n},O={x:D.x-R.x*a,y:D.y-R.y*a},P={x:(N.x+O.x)/2,y:(N.y+O.y)/2};const L=[O,P,N],Y=Ye.makeline(L[2],B[0]),M=Ye.makeline(B[2],L[0]),q=[Y,new Lr(B),M,new Lr(L)];return new xy(q)}const i=this.reduce(),l=i.length,s=[];let c=[],u,d=0,p=this.length();const f=typeof o<"u"&&typeof a<"u";function g(R,A,D,N,P){return function(O){const B=N/D,L=(N+P)/D,Y=A-R;return Ye.map(O,0,1,R+B*Y,R+L*Y)}}i.forEach(function(R){const A=R.length();f?(s.push(R.scale(g(r,o,p,d,A))),c.push(R.scale(g(-n,-a,p,d,A)))):(s.push(R.scale(r)),c.push(R.scale(-n))),d+=A}),c=c.map(function(R){return u=R.points,u[3]?R.points=[u[3],u[2],u[1],u[0]]:R.points=[u[2],u[1],u[0]],R}).reverse();const b=s[0].points[0],x=s[l-1].points[s[l-1].points.length-1],w=c[l-1].points[c[l-1].points.length-1],k=c[0].points[0],C=Ye.makeline(w,b),_=Ye.makeline(x,k),T=[C].concat(s).concat([_]).concat(c);return new xy(T)}outlineshapes(r,n,o){n=n||r;const a=this.outline(r,n).curves,i=[];for(let l=1,s=a.length;l1,c.endcap.virtual=l{var s=this.get(l);return Ye.between(s.x,n,a)&&Ye.between(s.y,o,i)})}selfintersects(r){const n=this.reduce(),o=n.length-2,a=[];for(let i=0,l,s,c;i0&&(i=i.concat(s))}),i}arcs(r){return r=r||.5,this._iterate(r,[])}_error(r,n,o,a){const i=(a-o)/4,l=this.get(o+i),s=this.get(a-i),c=Ye.dist(r,n),u=Ye.dist(r,l),d=Ye.dist(r,s);return wy(u-c)+wy(d-c)}_iterate(r,n){let o=0,a=1,i;do{i=0,a=1;let l=this.get(o),s,c,u,d,p=!1,f=!1,g,b=a,x=1;do if(f=p,d=u,b=(o+a)/2,s=this.get(b),c=this.get(a),u=Ye.getccenter(l,s,c),u.interval={start:o,end:a},p=this._error(u,l,o,a)<=r,g=f&&!p,g||(x=a),p){if(a>=1){if(u.interval.end=x=1,d=u,a>1){let w={x:u.x+u.r*KVe(u.e),y:u.y+u.r*ZVe(u.e)};u.e+=Ye.angle({x:u.x,y:u.y},w,this.get(1))}break}a=a+(a-o)/2}else a=b;while(!g&&i++<100);if(i>=100)break;d=d||u,n.push(d),o=x}while(a<1);return n}}function SQ(e){let[r,...n]=e.points;nt(r,"start should be defined");const o=[];for(;To(n,3);){const[a,i,l,...s]=n,c=new Lr(r[0],r[1],a[0],a[1],i[0],i[1],l[0],l[1]),u=c.inflections();u.length===0&&u.push(.5),u.forEach(d=>{const{x:p,y:f}=c.get(d);o.push({x:Math.round(p),y:Math.round(f)})}),n=s,r=l}return nt(n.length===0,"all points should be consumed"),o}const CQ=(e,r)=>Math.abs(e-r)<3.1;function _y(e,r){const[n,o]=F8(e)?e:[e.x,e.y],[a,i]=F8(r)?r:[r.x,r.y];return CQ(n,a)&&CQ(o,i)}function cn(e){return e.stopPropagation()}function eYe(e){const{width:r,height:n}=Wn(e);return{x:e.internals.positionAbsolute.x+r/2,y:e.internals.positionAbsolute.y+n/2}}function tYe(e){let[r,...n]=e;nt(r,"start should be defined");let o=`M ${r[0]},${r[1]}`;for(;To(n,3);){const[a,i,l,...s]=n;o=o+` C ${a[0]},${a[1]} ${i[0]},${i[1]} ${l[0]},${l[1]}`,n=s}return nt(n.length===0,"all points should be consumed"),o}const C2=E.forwardRef(({tag:e,cursor:r,className:n,style:o,...a},i)=>{const l=Mze(e);return y.jsxs(qr,{ref:i,"data-likec4-tag":e,className:Je(CVe({autoTextColor:nB(l)}),n),...a,style:{cursor:r,...o},children:[y.jsx("span",{children:"#"}),y.jsx("span",{children:e})]})}),rYe=(e,r)=>e.data.width===r.data.width&&ut(e.data.tags,r.data.tags)&&(e.data.hovered??!1)===(r.data.hovered??!1),Ey=E.memo(({id:e,data:{tags:r,width:n,hovered:o=!1}})=>{const{hovered:a,ref:i}=a9(),{hovered:l,ref:s}=a9(),[c,u]=a$e(!1,o?120:300);E.useEffect(()=>{u(w=>w?o||a||l:o&&(a||l))},[a,l,o]);const d=qVe(),p=d>1.2,f=Wt(),g=w=>{f.send({type:"tag.highlight",tag:w})},b=E.useCallback(()=>{f.send({type:"tag.unhighlight"})},[]);if(!r||r.length===0)return null;const x=Math.max(Math.round(n*d)-10,200);return y.jsxs(y.Fragment,{children:[y.jsx("div",{ref:i,className:Je("likec4-element-tags",Uo({pointerEvents:"all",gap:"1",alignItems:"flex-end",justifyItems:"stretch",position:"absolute",width:"100%",bottom:"0",left:"0",padding:"1",_shapeCylinder:{bottom:"[5px]"},_shapeStorage:{bottom:"[5px]"},_shapeQueue:{bottom:"0",paddingLeft:"[14px]"}})),onClick:cn,children:r.map(w=>y.jsx(qr,{"data-likec4-tag":w,className:ye({layerStyle:"likec4.tag",flex:"1",display:"flex",alignItems:"center",justifyContent:"center",maxWidth:50,height:5,_whenHovered:{height:12,borderRadius:4,transitionDelay:".08s"},transition:"fast"})},e+"#"+w))}),y.jsx(jU,{isVisible:c,align:"start",position:tt.Bottom,children:y.jsx(xn,{ref:s,css:{gap:"0.5",alignItems:"baseline",flexWrap:"wrap",pb:"sm",translate:"auto",x:"[-8px]",maxWidth:x},children:r.map(w=>y.jsx(C2,{tag:w,cursor:"pointer",className:ye({userSelect:"none",...p&&{fontSize:"lg",borderRadius:"[4px]",px:"1.5"}}),onClick:k=>{k.stopPropagation(),f.openSearch(`#${w}`)},onMouseEnter:()=>g(w),onMouseLeave:b},w))})})]})},rYe);Ey.displayName="ElementTags";const nYe=E.forwardRef((e,r)=>y.jsx("svg",{height:"24",width:"24",fill:"currentColor",...e,viewBox:"0 0 24 24",ref:r,children:y.jsx("path",{d:"M12 1C5.923 1 1 5.923 1 12c0 4.867 3.149 8.979 7.521 10.436.55.096.756-.233.756-.522 0-.262-.013-1.128-.013-2.049-2.764.509-3.479-.674-3.699-1.292-.124-.317-.66-1.293-1.127-1.554-.385-.207-.936-.715-.014-.729.866-.014 1.485.797 1.691 1.128.99 1.663 2.571 1.196 3.204.907.096-.715.385-1.196.701-1.471-2.448-.275-5.005-1.224-5.005-5.432 0-1.196.426-2.186 1.128-2.956-.111-.275-.496-1.402.11-2.915 0 0 .921-.288 3.024 1.128a10.193 10.193 0 0 1 2.75-.371c.936 0 1.871.123 2.75.371 2.104-1.43 3.025-1.128 3.025-1.128.605 1.513.221 2.64.111 2.915.701.77 1.127 1.747 1.127 2.956 0 4.222-2.571 5.157-5.019 5.432.399.344.743 1.004.743 2.035 0 1.471-.014 2.654-.014 3.025 0 .289.206.632.756.522C19.851 20.979 23 16.854 23 12c0-6.077-4.922-11-11-11Z"})}));/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const oYe=[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]],TQ=yt("outline","check","Check",oYe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const aYe=[["path",{d:"M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z",key:"svg-0"}],["path",{d:"M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1",key:"svg-1"}]],iYe=yt("outline","copy","Copy",aYe),RQ="https://github.com/",jC=E.forwardRef(({value:e,className:r,...n},o)=>{const a=e.url.includes("://")?e.url:new window.URL(e.url,window.location.href).toString();let i=a.startsWith(RQ);return y.jsx(Xs,{ref:o,variant:"default",radius:"sm",size:"sm",tt:"none",leftSection:e.title?y.jsx(y.Fragment,{children:e.title}):null,rightSection:y.jsx(cW,{value:a,timeout:1500,children:({copy:l,copied:s})=>y.jsx(or,{className:ye({opacity:s?1:.45,transition:"fast",_hover:{opacity:1}}),tabIndex:-1,size:"20",variant:s?"light":"transparent",color:s?"teal":"gray","data-active":s,onClick:c=>{c.stopPropagation(),c.preventDefault(),l()},children:s?y.jsx(TQ,{}):y.jsx(iYe,{stroke:2.5})})}),...n,className:Je(r,"group"),classNames:{root:ye({flexWrap:"nowrap",minHeight:24,maxWidth:500,userSelect:"all",pr:"0",backgroundColor:{base:"transparent",_hover:{base:"mantine.colors.gray[1]",_dark:"mantine.colors.dark[5]"}}}),section:ye({'&:is([data-position="left"])':{color:"mantine.colors.dimmed",userSelect:"none",pointerEvents:"none",_groupHover:{color:"[var(--badge-color)]",opacity:.7}}})},children:y.jsxs(Qs.a,{href:a,target:"_blank",style:{color:"var(--badge-color)",cursor:"pointer"},css:{transition:"fast",opacity:{base:.7,_hover:1},textDecoration:{base:"none",_hover:"underline"}},children:[i&&y.jsx(nYe,{height:"12",width:"12",style:{verticalAlign:"middle",marginRight:"4px"}}),i?a.replace(RQ,""):a]})})});function AQ(){const e=E.useContext(O7);if(!e)throw new Error("No LikeC4ViewModel in context found");return e}const T2="--_blur",R2="--_opacity",lYe=ye({boxSizing:"border-box",margin:"0",padding:"0",position:"fixed",inset:"0",width:"100vw",height:"100vh",maxWidth:"100vw",maxHeight:"100vh",background:"transparent",border:"transparent",_backdrop:{backdropFilter:"auto",backdropBlur:`var(${T2})`,backgroundColor:`[rgb(36 36 36 / var(${R2}, 5%))]`}}),sYe=ye({position:"absolute",pointerEvents:"all",display:"flex",flexDirection:"column",padding:"4",gap:"lg",justifyContent:"stretch",color:"mantine.colors.text",backgroundColor:{base:"mantine.colors.body",_dark:"mantine.colors.dark[6]"},boxShadow:"md",overflow:"hidden",border:"none",backgroundImage:` + linear-gradient(180deg, + color-mix(in srgb, var(--likec4-palette-fill) 60%, transparent), + color-mix(in srgb, var(--likec4-palette-fill) 20%, transparent) 8px, + color-mix(in srgb, var(--likec4-palette-fill) 14%, transparent) 20px, + transparent 80px + ), + linear-gradient(180deg, var(--likec4-palette-fill), var(--likec4-palette-fill) 4px, transparent 4px) + `,"& .react-flow__attribution":{display:"none"}}),cYe=ye({flex:0,cursor:"move"}),uYe=ye({display:"block",fontFamily:"likec4.element",fontOpticalSizing:"auto",fontStyle:"normal",fontWeight:600,fontSize:"24px",lineHeight:"xs"}),BC="40px",dYe=ye({flex:`0 0 ${BC}`,height:BC,width:BC,display:"flex",alignItems:"center",justifyContent:"center",alignSelf:"flex-start",cursor:"move",_dark:{mixBlendMode:"hard-light"},"& :where(svg, img)":{width:"100%",height:"auto",maxHeight:"100%",pointerEvents:"none",filter:` + drop-shadow(0 0 3px rgb(0 0 0 / 10%)) + drop-shadow(0 1px 8px rgb(0 0 0 / 5%)) + drop-shadow(1px 1px 16px rgb(0 0 0 / 2%)) + `},"& img":{objectFit:"contain"}}),A2="--view-title-color",N2="--icon-color",pYe=ye({width:"100%",background:"mantine.colors.body",borderRadius:"sm",padding:"[10px 8px]",transition:"fast",border:"1px dashed",borderColor:"mantine.colors.defaultBorder",[A2]:"{colors.mantine.colors.dark[1]}",_hover:{background:"mantine.colors.defaultHover",[N2]:"{colors.mantine.colors.dark[1]}",[A2]:"{colors.mantine.colors.defaultColor}"},_dark:{background:"mantine.colors.dark[6]"},_light:{[N2]:"{colors.mantine.colors.gray[6]}",[A2]:"{colors.mantine.colors.gray[7]}",_hover:{[N2]:"{colors.mantine.colors.gray[7]}"}},"& .mantine-ThemeIcon-root":{transition:"fast",color:`[var(${N2}, {colors.mantine.colors.dark[2]})]`,"--ti-size":"22px",_hover:{color:"mantine.colors.defaultColor"}},"& > *":{transition:"all 130ms {easings.inOut}"},"&:hover > *":{transitionTimingFunction:"out",transform:"translateX(1.6px)"}}),hYe=ye({transition:"fast",color:`[var(${A2}, {colors.mantine.colors.gray[7]})]`,fontSize:"15px",fontWeight:500,lineHeight:"1.4"}),fYe=ye({flex:1,display:"flex",flexDirection:"column",justifyContent:"stretch",overflow:"hidden",gap:"sm"}),mYe=ye({background:"mantine.colors.gray[1]",borderRadius:"sm",flexWrap:"nowrap",gap:"1.5",padding:"1",_dark:{background:"mantine.colors.dark[7]"}}),gYe=ye({fontSize:"xs",fontWeight:500,flexGrow:1,padding:"[6px 8px]",transition:"fast",borderRadius:"sm",color:"mantine.colors.gray[7]",_hover:{transitionTimingFunction:"out",color:"mantine.colors.defaultColor",background:"mantine.colors.gray[3]"},"&[data-active]":{transition:"none",background:"mantine.colors.white",shadow:"xs",color:"mantine.colors.defaultColor"},_dark:{color:"mantine.colors.dark[1]",_hover:{color:"mantine.colors.white",background:"mantine.colors.dark[6]"},"&:is([data-active])":{color:"mantine.colors.white",background:"mantine.colors.dark[5]"}}}),yYe=ye({flex:1,overflow:"hidden",position:"relative","&:not(:has(.mantine-ScrollArea-root))":{paddingLeft:"1",paddingRight:"1"},"& .mantine-ScrollArea-root":{width:"100%",height:"100%","& > div":{paddingLeft:"1",paddingRight:"1"}}}),bYe=ye({flex:1,display:"grid",gridTemplateColumns:"min-content 1fr",gridAutoRows:"min-content max-content",gap:"[24px 20px]",alignItems:"baseline",justifyItems:"stretch"}),vYe=ye({justifySelf:"end",textAlign:"right",userSelect:"none"}),xYe=ye({position:"absolute",width:"14px",height:"14px",border:"3.5px solid",borderColor:"mantine.colors.dark[3]",borderTop:"none",borderLeft:"none",borderRadius:"2px",bottom:"0.5",right:"0.5",transition:"fast",cursor:"se-resize",_hover:{borderWidth:"4px",borderColor:"mantine.colors.dark[1]"}}),wYe=ye({"&[data-level='1']":{marginBottom:"sm"}}),kYe=ye({cursor:"default",marginTop:"0",marginBottom:"0"}),NQ=ye({transition:"fast",color:"mantine.colors.gray[7]",_dark:{color:"mantine.colors.dark[1]"},"& > *":{transition:"fast"},_hover:{transitionTimingFunction:"out","& > :not([data-no-transform])":{transitionTimingFunction:"out",transform:"translateX(1px)"}}}),_Ye=Je(NQ),EYe=Je(NQ,ye({cursor:"pointer",width:"100%",justifyContent:"stretch",flexWrap:"nowrap",height:"36px",paddingInlineStart:"[16px]",paddingInlineEnd:"2.5",borderRadius:"sm",alignItems:"center",color:"mantine.colors.gray[7]",_dark:{color:"mantine.colors.gray.lightColor"},_hover:{background:"mantine.colors.gray.lightHover"},"& .tabler-icon":{transition:"fast",width:"90%",opacity:.65}}));/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const SYe=[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 9h.01",key:"svg-1"}],["path",{d:"M11 12h1v4h1",key:"svg-2"}]],FC=yt("outline","info-circle","InfoCircle",SYe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const CYe=[["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M12 12m-5 0a5 5 0 1 0 10 0a5 5 0 1 0 -10 0",key:"svg-1"}],["path",{d:"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-2"}]],TYe=yt("outline","target","Target",CYe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const RYe=[["path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2",key:"svg-0"}],["path",{d:"M4 16v2a2 2 0 0 0 2 2h2",key:"svg-1"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v2",key:"svg-2"}],["path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2",key:"svg-3"}],["path",{d:"M8 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-4"}],["path",{d:"M16 16l-2.5 -2.5",key:"svg-5"}]],gi=yt("outline","zoom-scan","ZoomScan",RYe),AYe=({node:e})=>y.jsxs(Ur,{className:_Ye,gap:6,align:"baseline",wrap:"nowrap",children:[y.jsxs(wt,{component:"div",fz:11,c:"dimmed",children:[e.kind,":"]}),y.jsx(wt,{component:"div",fz:"sm",fw:"500",children:e.title})]}),NYe=({instance:e})=>{const r=Wt(),n=r.currentView.id,o=[...e.views()];return y.jsxs(Ur,{className:EYe,gap:4,children:[y.jsx(ci,{color:"gray",variant:"transparent",size:"xs",flex:0,children:y.jsx(TYe,{stroke:1.2})}),y.jsx(wt,{component:"div",fz:"sm",fw:"500",flex:"1 1 100%",children:e.title}),y.jsxs(Se,{onClick:cn,pos:"relative","data-no-transform":!0,flex:0,children:[o.length===0&&y.jsx(Zn,{size:"compact-xs",variant:"transparent",color:"gray",disabled:!0,children:"no views"}),o.length>0&&y.jsxs(ho,{shadow:"md",withinPortal:!1,position:"bottom-start",offset:0,closeOnClickOutside:!0,clickOutsideEvents:["pointerdown","mousedown","click"],closeOnEscape:!0,trapFocus:!0,children:[y.jsx(ho.Target,{children:y.jsxs(Zn,{size:"compact-xs",variant:"subtle",color:"gray",children:[o.length," view",o.length>1?"s":""]})}),y.jsx(ho.Dropdown,{children:o.map(a=>y.jsx(ho.Item,{px:"xs",py:4,disabled:a.id===n,leftSection:y.jsx(ci,{size:"sm",variant:"transparent",color:"gray",children:y.jsx(gi,{stroke:1.8,opacity:.65})}),styles:{itemSection:{marginInlineEnd:Ae(8)}},onClick:i=>{i.stopPropagation(),r.navigateTo(a.id)},children:a.title},a.id))})]})]})]})},DYe=()=>{},$Ye=E.memo(({elementFqn:e})=>{const r=Ho().element(e),n=[...r.deployments()],o=Y0({multiple:!1});o.setHoveredNode=DYe;const a=E.useMemo(()=>{let i=[],l=new Map;for(const s of r.deployments()){let c={label:y.jsx(NYe,{instance:s}),value:s.id,type:"instance",children:[]};l.set(s.id,c);let u=s.parent;for(;u;){let d=l.get(u.id);if(d){d.children.push(c);break}d={label:y.jsx(AYe,{node:u}),value:u.id,type:"node",children:[c]},l.set(u.id,d),c=d,u=u.parent}!u&&!i.includes(c)&&i.push(c)}return i},[r]);return E.useEffect(()=>{o.expandAllNodes()},[a]),n.length===0?y.jsx(Pw,{variant:"light",color:"gray",icon:y.jsx(FC,{}),children:"This element does not have any deployments"}):y.jsx(Bf,{levelOffset:"sm",allowRangeSelection:!1,classNames:{node:wYe,label:kYe},styles:{root:{position:"relative",width:"min-content",minWidth:300}},data:a,tree:o,renderNode:({node:i,selected:l,elementProps:s,hasChildren:c})=>y.jsx(Se,{...s,style:{...!c&&{marginBottom:Ae(4)}},children:c?y.jsx(Zn,{fullWidth:!0,color:"gray",variant:l?"transparent":"subtle",size:"xs",justify:"flex-start",styles:{root:{position:"unset",paddingInlineStart:Ae(16)}},children:i.label}):i.label})})}),PYe=()=>{},DQ=(e,r)=>{if(e===r)return!0;if(e.length!==r.length)return!1;for(const[n,o]of e.entries())if(o!==r[n]&&!Gn(o,r[n]))return!1;return!0};function D2(e,r,n,o){const a=FB();BB(a?PYe:e,r,DQ,o)}function OYe(){const e=typeof window<"u"&&typeof window.devicePixelRatio=="number"?window.devicePixelRatio:1;return Ki(Math.floor(e),{min:1,max:4})}let $2;function yi(e){return $2??=OYe(),$2<2?Math.round(e):Math.round(e*$2)/$2}function MYe(e){switch(e){case"dots":return Xi.Dots;case"lines":return Xi.Lines;case"cross":return Xi.Cross;default:Xa(e)}}function IYe({background:e}){return typeof e=="string"?y.jsx(IU,{variant:MYe(e),size:2,gap:20}):y.jsx(IU,{...e})}const dl={Compound:1,Edge:20,Element:20,Max:30},pl=.05,HC=3,P2={default:"16px",withControls:{top:"50px",left:"16px",right:"16px",bottom:"16px"}},$Q=(e,r)=>(e.data.dimmed??!1)===r?e:{...e,data:{...e.data,dimmed:r}};function LYe(e,r){return r!==void 0?$Q(e,r):n=>$Q(n,e)}const PQ=(e,r)=>(e.data.hovered??!1)===r?e:{...e,data:{...e.data,hovered:r}};function zYe(e,r){return r!==void 0?PQ(e,r):n=>PQ(n,e)}function OQ(e,r){return MNe(e.data,r)?e:{...e,data:{...e.data,...r}}}function jYe(e,r){return r!==void 0?OQ(e,r):n=>OQ(n,e)}const Jt={setDimmed:LYe,setHovered:zYe,setData:jYe};function UC({nodes:e,edges:r,onEdgesChange:n,onNodesChange:o,className:a,pannable:i=!0,zoomable:l=!0,nodesSelectable:s=!0,nodesDraggable:c=!1,background:u="dots",children:d,colorMode:p,fitViewPadding:f=0,fitView:g=!0,zoomOnDoubleClick:b=!1,onViewportResize:x,onMoveEnd:w,onNodeMouseEnter:k,onNodeMouseLeave:C,onEdgeMouseEnter:_,onEdgeMouseLeave:T,...R}){const A=u!=="transparent"&&u!=="solid",D=YVe(),N=IC(),{colorScheme:P}=SPe();return p||(p=P==="auto"?"system":P),y.jsxs(YRe,{colorMode:p,nodes:e,edges:r,className:Je(u==="transparent"&&"bg-transparent",a),...D&&{"data-likec4-zoom-small":!0},zoomOnPinch:l,zoomOnScroll:!i&&l,...!l&&{zoomActivationKeyCode:null},zoomOnDoubleClick:b,maxZoom:l?HC:1,minZoom:l?pl:1,fitView:g,fitViewOptions:{minZoom:pl,maxZoom:1,padding:f,includeHiddenNodes:!1},preventScrolling:l||i,defaultMarkerColor:"var(--xy-edge-stroke)",noDragClassName:"nodrag",noPanClassName:"nopan",noWheelClassName:"nowheel",panOnScroll:i,panOnDrag:i,...!i&&{panActivationKeyCode:null,selectionKeyCode:null},elementsSelectable:s,nodesFocusable:c||s,edgesFocusable:!1,nodesDraggable:c,nodeDragThreshold:4,nodeClickDistance:3,paneClickDistance:3,elevateNodesOnSelect:!1,selectNodesOnDrag:!1,onNodesChange:o,onEdgesChange:n,onMoveEnd:it((O,{x:B,y:L,zoom:Y})=>{const M=yi(B),q=yi(L);(B!==M||L!==q)&&N.setState({transform:[M,q,Y]}),w?.(O,{x:M,y:q,zoom:Y})}),onNodeMouseEnter:it((O,B)=>{if(k){k(O,B);return}B.data.hovered||o([{id:B.id,type:"replace",item:Jt.setHovered(B,!0)}])}),onNodeMouseLeave:it((O,B)=>{if(C){C(O,B);return}B.data.hovered&&o([{id:B.id,type:"replace",item:Jt.setHovered(B,!1)}])}),onEdgeMouseEnter:it((O,B)=>{if(_){_(O,B);return}B.data.hovered||n([{id:B.id,type:"replace",item:Jt.setHovered(B,!0)}])}),onEdgeMouseLeave:it((O,B)=>{if(T){T(O,B);return}B.data.hovered&&n([{id:B.id,type:"replace",item:Jt.setHovered(B,!1)}])}),onNodeDoubleClick:cn,onEdgeDoubleClick:cn,...R,children:[A&&y.jsx(IYe,{background:u}),x&&y.jsx(FYe,{onViewportResize:x}),d]})}const BYe=({width:e,height:r})=>(e||1)*(r||1),FYe=({onViewportResize:e})=>{const r=Rt(BYe);return D2(e,[r]),null},MQ=E.createContext(null);function IQ(){return mt(E.useContext(MQ),"No RelationshipsBrowserActorContext")}function O2(e,r=Gn){const n=IQ();return wn(n,it(e),r)}function Sy(){const e=IQ();return E.useMemo(()=>({actor:e,get rootElementId(){return`relationships-browser-${e.sessionId.replaceAll(":","_")}`},getState:()=>e.getSnapshot().context,send:e.send,updateView:r=>{e.send({type:"update.view",layouted:r})},changeScope:r=>{e.send({type:"change.scope",scope:r})},navigateTo:(r,n)=>{e.send({type:"navigate.to",subject:r,fromNode:n})},fitDiagram:()=>{e.send({type:"fitDiagram"})},close:()=>{e._parent?e._parent?.send({type:"close",actorId:e.id}):e.send({type:"close"})}}),[e])}var qC,LQ;function VC(){if(LQ)return qC;LQ=1;var e="\0",r="\0",n="";class o{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(d){d&&(this._isDirected=Object.hasOwn(d,"directed")?d.directed:!0,this._isMultigraph=Object.hasOwn(d,"multigraph")?d.multigraph:!1,this._isCompound=Object.hasOwn(d,"compound")?d.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[r]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(d){return this._label=d,this}graph(){return this._label}setDefaultNodeLabel(d){return this._defaultNodeLabelFn=d,typeof d!="function"&&(this._defaultNodeLabelFn=()=>d),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var d=this;return this.nodes().filter(p=>Object.keys(d._in[p]).length===0)}sinks(){var d=this;return this.nodes().filter(p=>Object.keys(d._out[p]).length===0)}setNodes(d,p){var f=arguments,g=this;return d.forEach(function(b){f.length>1?g.setNode(b,p):g.setNode(b)}),this}setNode(d,p){return Object.hasOwn(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=p),this):(this._nodes[d]=arguments.length>1?p:this._defaultNodeLabelFn(d),this._isCompound&&(this._parent[d]=r,this._children[d]={},this._children[r][d]=!0),this._in[d]={},this._preds[d]={},this._out[d]={},this._sucs[d]={},++this._nodeCount,this)}node(d){return this._nodes[d]}hasNode(d){return Object.hasOwn(this._nodes,d)}removeNode(d){var p=this;if(Object.hasOwn(this._nodes,d)){var f=g=>p.removeEdge(p._edgeObjs[g]);delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],this.children(d).forEach(function(g){p.setParent(g)}),delete this._children[d]),Object.keys(this._in[d]).forEach(f),delete this._in[d],delete this._preds[d],Object.keys(this._out[d]).forEach(f),delete this._out[d],delete this._sucs[d],--this._nodeCount}return this}setParent(d,p){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(p===void 0)p=r;else{p+="";for(var f=p;f!==void 0;f=this.parent(f))if(f===d)throw new Error("Setting "+p+" as parent of "+d+" would create a cycle");this.setNode(p)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=p,this._children[p][d]=!0,this}_removeFromParentsChildList(d){delete this._children[this._parent[d]][d]}parent(d){if(this._isCompound){var p=this._parent[d];if(p!==r)return p}}children(d=r){if(this._isCompound){var p=this._children[d];if(p)return Object.keys(p)}else{if(d===r)return this.nodes();if(this.hasNode(d))return[]}}predecessors(d){var p=this._preds[d];if(p)return Object.keys(p)}successors(d){var p=this._sucs[d];if(p)return Object.keys(p)}neighbors(d){var p=this.predecessors(d);if(p){const g=new Set(p);for(var f of this.successors(d))g.add(f);return Array.from(g.values())}}isLeaf(d){var p;return this.isDirected()?p=this.successors(d):p=this.neighbors(d),p.length===0}filterNodes(d){var p=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});p.setGraph(this.graph());var f=this;Object.entries(this._nodes).forEach(function([x,w]){d(x)&&p.setNode(x,w)}),Object.values(this._edgeObjs).forEach(function(x){p.hasNode(x.v)&&p.hasNode(x.w)&&p.setEdge(x,f.edge(x))});var g={};function b(x){var w=f.parent(x);return w===void 0||p.hasNode(w)?(g[x]=w,w):w in g?g[w]:b(w)}return this._isCompound&&p.nodes().forEach(x=>p.setParent(x,b(x))),p}setDefaultEdgeLabel(d){return this._defaultEdgeLabelFn=d,typeof d!="function"&&(this._defaultEdgeLabelFn=()=>d),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(d,p){var f=this,g=arguments;return d.reduce(function(b,x){return g.length>1?f.setEdge(b,x,p):f.setEdge(b,x),x}),this}setEdge(){var d,p,f,g,b=!1,x=arguments[0];typeof x=="object"&&x!==null&&"v"in x?(d=x.v,p=x.w,f=x.name,arguments.length===2&&(g=arguments[1],b=!0)):(d=x,p=arguments[1],f=arguments[3],arguments.length>2&&(g=arguments[2],b=!0)),d=""+d,p=""+p,f!==void 0&&(f=""+f);var w=l(this._isDirected,d,p,f);if(Object.hasOwn(this._edgeLabels,w))return b&&(this._edgeLabels[w]=g),this;if(f!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(d),this.setNode(p),this._edgeLabels[w]=b?g:this._defaultEdgeLabelFn(d,p,f);var k=s(this._isDirected,d,p,f);return d=k.v,p=k.w,Object.freeze(k),this._edgeObjs[w]=k,a(this._preds[p],d),a(this._sucs[d],p),this._in[p][w]=k,this._out[d][w]=k,this._edgeCount++,this}edge(d,p,f){var g=arguments.length===1?c(this._isDirected,arguments[0]):l(this._isDirected,d,p,f);return this._edgeLabels[g]}edgeAsObj(){const d=this.edge(...arguments);return typeof d!="object"?{label:d}:d}hasEdge(d,p,f){var g=arguments.length===1?c(this._isDirected,arguments[0]):l(this._isDirected,d,p,f);return Object.hasOwn(this._edgeLabels,g)}removeEdge(d,p,f){var g=arguments.length===1?c(this._isDirected,arguments[0]):l(this._isDirected,d,p,f),b=this._edgeObjs[g];return b&&(d=b.v,p=b.w,delete this._edgeLabels[g],delete this._edgeObjs[g],i(this._preds[p],d),i(this._sucs[d],p),delete this._in[p][g],delete this._out[d][g],this._edgeCount--),this}inEdges(d,p){var f=this._in[d];if(f){var g=Object.values(f);return p?g.filter(b=>b.v===p):g}}outEdges(d,p){var f=this._out[d];if(f){var g=Object.values(f);return p?g.filter(b=>b.w===p):g}}nodeEdges(d,p){var f=this.inEdges(d,p);if(f)return f.concat(this.outEdges(d,p))}}function a(u,d){u[d]?u[d]++:u[d]=1}function i(u,d){--u[d]||delete u[d]}function l(u,d,p,f){var g=""+d,b=""+p;if(!u&&g>b){var x=g;g=b,b=x}return g+n+b+n+(f===void 0?e:f)}function s(u,d,p,f){var g=""+d,b=""+p;if(!u&&g>b){var x=g;g=b,b=x}var w={v:g,w:b};return f&&(w.name=f),w}function c(u,d){return l(u,d.v,d.w,d.name)}return qC=o,qC}var zQ,jQ;function HYe(){return jQ||(jQ=1,zQ="2.2.4"),zQ}var BQ,FQ;function UYe(){return FQ||(FQ=1,BQ={Graph:VC(),version:HYe()}),BQ}var YC,HQ;function qYe(){if(HQ)return YC;HQ=1;var e=VC();YC={write:r,read:a};function r(i){var l={options:{directed:i.isDirected(),multigraph:i.isMultigraph(),compound:i.isCompound()},nodes:n(i),edges:o(i)};return i.graph()!==void 0&&(l.value=structuredClone(i.graph())),l}function n(i){return i.nodes().map(function(l){var s=i.node(l),c=i.parent(l),u={v:l};return s!==void 0&&(u.value=s),c!==void 0&&(u.parent=c),u})}function o(i){return i.edges().map(function(l){var s=i.edge(l),c={v:l.v,w:l.w};return l.name!==void 0&&(c.name=l.name),s!==void 0&&(c.value=s),c})}function a(i){var l=new e(i.options).setGraph(i.value);return i.nodes.forEach(function(s){l.setNode(s.v,s.value),s.parent&&l.setParent(s.v,s.parent)}),i.edges.forEach(function(s){l.setEdge({v:s.v,w:s.w,name:s.name},s.value)}),l}return YC}var WC,UQ;function VYe(){if(UQ)return WC;UQ=1,WC=e;function e(r){var n={},o=[],a;function i(l){Object.hasOwn(n,l)||(n[l]=!0,a.push(l),r.successors(l).forEach(i),r.predecessors(l).forEach(i))}return r.nodes().forEach(function(l){a=[],i(l),a.length&&o.push(a)}),o}return WC}var GC,qQ;function VQ(){if(qQ)return GC;qQ=1;class e{_arr=[];_keyIndices={};size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var o=this._keyIndices[n];if(o!==void 0)return this._arr[o].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,o){var a=this._keyIndices;if(n=String(n),!Object.hasOwn(a,n)){var i=this._arr,l=i.length;return a[n]=l,i.push({key:n,priority:o}),this._decrease(l),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,o){var a=this._keyIndices[n];if(o>this._arr[a].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[a].priority+" New: "+o);this._arr[a].priority=o,this._decrease(a)}_heapify(n){var o=this._arr,a=2*n,i=a+1,l=n;a>1,!(o[i].priority1;function n(a,i,l,s){return o(a,String(i),l||r,s||function(c){return a.outEdges(c)})}function o(a,i,l,s){var c={},u=new e,d,p,f=function(g){var b=g.v!==d?g.v:g.w,x=c[b],w=l(g),k=p.distance+w;if(w<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+g+" Weight: "+w);k0&&(d=u.removeMin(),p=c[d],p.distance!==Number.POSITIVE_INFINITY);)s(d).forEach(f);return c}return XC}var KC,GQ;function YYe(){if(GQ)return KC;GQ=1;var e=WQ();KC=r;function r(n,o,a){return n.nodes().reduce(function(i,l){return i[l]=e(n,l,o,a),i},{})}return KC}var ZC,XQ;function KQ(){if(XQ)return ZC;XQ=1,ZC=e;function e(r){var n=0,o=[],a={},i=[];function l(s){var c=a[s]={onStack:!0,lowlink:n,index:n++};if(o.push(s),r.successors(s).forEach(function(p){Object.hasOwn(a,p)?a[p].onStack&&(c.lowlink=Math.min(c.lowlink,a[p].index)):(l(p),c.lowlink=Math.min(c.lowlink,a[p].lowlink))}),c.lowlink===c.index){var u=[],d;do d=o.pop(),a[d].onStack=!1,u.push(d);while(s!==d);i.push(u)}}return r.nodes().forEach(function(s){Object.hasOwn(a,s)||l(s)}),i}return ZC}var QC,ZQ;function WYe(){if(ZQ)return QC;ZQ=1;var e=KQ();QC=r;function r(n){return e(n).filter(function(o){return o.length>1||o.length===1&&n.hasEdge(o[0],o[0])})}return QC}var JC,QQ;function GYe(){if(QQ)return JC;QQ=1,JC=r;var e=()=>1;function r(o,a,i){return n(o,a||e,i||function(l){return o.outEdges(l)})}function n(o,a,i){var l={},s=o.nodes();return s.forEach(function(c){l[c]={},l[c][c]={distance:0},s.forEach(function(u){c!==u&&(l[c][u]={distance:Number.POSITIVE_INFINITY})}),i(c).forEach(function(u){var d=u.v===c?u.w:u.v,p=a(u);l[c][d]={distance:p,predecessor:c}})}),s.forEach(function(c){var u=l[c];s.forEach(function(d){var p=l[d];s.forEach(function(f){var g=p[c],b=u[f],x=p[f],w=g.distance+b.distance;wa.successors(p):p=>a.neighbors(p),c=l==="post"?r:n,u=[],d={};return i.forEach(p=>{if(!a.hasNode(p))throw new Error("Graph does not have node: "+p);c(p,s,d,u)}),u}function r(a,i,l,s){for(var c=[[a,!1]];c.length>0;){var u=c.pop();u[1]?s.push(u[0]):Object.hasOwn(l,u[0])||(l[u[0]]=!0,c.push([u[0],!0]),o(i(u[0]),d=>c.push([d,!1])))}}function n(a,i,l,s){for(var c=[a];c.length>0;){var u=c.pop();Object.hasOwn(l,u)||(l[u]=!0,s.push(u),o(i(u),d=>c.push(d)))}}function o(a,i){for(var l=a.length;l--;)i(a[l],l,a);return a}return rT}var nT,oJ;function KYe(){if(oJ)return nT;oJ=1;var e=nJ();nT=r;function r(n,o){return e(n,o,"post")}return nT}var oT,aJ;function ZYe(){if(aJ)return oT;aJ=1;var e=nJ();oT=r;function r(n,o){return e(n,o,"pre")}return oT}var aT,iJ;function QYe(){if(iJ)return aT;iJ=1;var e=VC(),r=VQ();aT=n;function n(o,a){var i=new e,l={},s=new r,c;function u(p){var f=p.v===c?p.w:p.v,g=s.priority(f);if(g!==void 0){var b=a(p);b0;){if(c=s.removeMin(),Object.hasOwn(l,c))i.setEdge(c,l[c]);else{if(d)throw new Error("Input graph is not connected: "+o);d=!0}o.nodeEdges(c).forEach(u)}return i}return aT}var lJ,sJ;function JYe(){return sJ||(sJ=1,lJ={components:VYe(),dijkstra:WQ(),dijkstraAll:YYe(),findCycles:WYe(),floydWarshall:GYe(),isAcyclic:XYe(),postorder:KYe(),preorder:ZYe(),prim:QYe(),tarjan:KQ(),topsort:eJ()}),lJ}var iT,cJ;function hl(){if(cJ)return iT;cJ=1;var e=UYe();return iT={Graph:e.Graph,json:qYe(),alg:JYe(),version:e.version},iT}var lT,uJ;function eWe(){if(uJ)return lT;uJ=1;class e{constructor(){let a={};a._next=a._prev=a,this._sentinel=a}dequeue(){let a=this._sentinel,i=a._prev;if(i!==a)return r(i),i}enqueue(a){let i=this._sentinel;a._prev&&a._next&&r(a),a._next=i._next,i._next._prev=a,i._next=a,a._prev=i}toString(){let a=[],i=this._sentinel,l=i._prev;for(;l!==i;)a.push(JSON.stringify(l,n)),l=l._prev;return"["+a.join(", ")+"]"}}function r(o){o._prev._next=o._next,o._next._prev=o._prev,delete o._next,delete o._prev}function n(o,a){if(o!=="_next"&&o!=="_prev")return a}return lT=e,lT}var sT,dJ;function tWe(){if(dJ)return sT;dJ=1;let e=hl().Graph,r=eWe();sT=o;let n=()=>1;function o(u,d){if(u.nodeCount()<=1)return[];let p=l(u,d||n);return a(p.graph,p.buckets,p.zeroIdx).flatMap(f=>u.outEdges(f.v,f.w))}function a(u,d,p){let f=[],g=d[d.length-1],b=d[0],x;for(;u.nodeCount();){for(;x=b.dequeue();)i(u,d,p,x);for(;x=g.dequeue();)i(u,d,p,x);if(u.nodeCount()){for(let w=d.length-2;w>0;--w)if(x=d[w].dequeue(),x){f=f.concat(i(u,d,p,x,!0));break}}}return f}function i(u,d,p,f,g){let b=g?[]:void 0;return u.inEdges(f.v).forEach(x=>{let w=u.edge(x),k=u.node(x.v);g&&b.push({v:x.v,w:x.w}),k.out-=w,s(d,p,k)}),u.outEdges(f.v).forEach(x=>{let w=u.edge(x),k=x.w,C=u.node(k);C.in-=w,s(d,p,C)}),u.removeNode(f.v),b}function l(u,d){let p=new e,f=0,g=0;u.nodes().forEach(w=>{p.setNode(w,{v:w,in:0,out:0})}),u.edges().forEach(w=>{let k=p.edge(w.v,w.w)||0,C=d(w),_=k+C;p.setEdge(w.v,w.w,_),g=Math.max(g,p.node(w.v).out+=C),f=Math.max(f,p.node(w.w).in+=C)});let b=c(g+f+3).map(()=>new r),x=f+1;return p.nodes().forEach(w=>{s(b,x,p.node(w))}),{graph:p,buckets:b,zeroIdx:x}}function s(u,d,p){p.out?p.in?u[p.out-p.in+d].enqueue(p):u[u.length-1].enqueue(p):u[0].enqueue(p)}function c(u){const d=[];for(let p=0;pP.setNode(O,N.node(O))),N.edges().forEach(O=>{let B=P.edge(O.v,O.w)||{weight:0,minlen:1},L=N.edge(O);P.setEdge(O.v,O.w,{weight:B.weight+L.weight,minlen:Math.max(B.minlen,L.minlen)})}),P}function o(N){let P=new e({multigraph:N.isMultigraph()}).setGraph(N.graph());return N.nodes().forEach(O=>{N.children(O).length||P.setNode(O,N.node(O))}),N.edges().forEach(O=>{P.setEdge(O,N.edge(O))}),P}function a(N){let P=N.nodes().map(O=>{let B={};return N.outEdges(O).forEach(L=>{B[L.w]=(B[L.w]||0)+N.edge(L).weight}),B});return D(N.nodes(),P)}function i(N){let P=N.nodes().map(O=>{let B={};return N.inEdges(O).forEach(L=>{B[L.v]=(B[L.v]||0)+N.edge(L).weight}),B});return D(N.nodes(),P)}function l(N,P){let O=N.x,B=N.y,L=P.x-O,Y=P.y-B,M=N.width/2,q=N.height/2;if(!L&&!Y)throw new Error("Not possible to find intersection inside of the rectangle");let I,U;return Math.abs(Y)*M>Math.abs(L)*q?(Y<0&&(q=-q),I=q*L/Y,U=q):(L<0&&(M=-M),I=M,U=M*Y/L),{x:O+I,y:B+U}}function s(N){let P=T(b(N)+1).map(()=>[]);return N.nodes().forEach(O=>{let B=N.node(O),L=B.rank;L!==void 0&&(P[L][B.order]=O)}),P}function c(N){let P=N.nodes().map(B=>{let L=N.node(B).rank;return L===void 0?Number.MAX_VALUE:L}),O=g(Math.min,P);N.nodes().forEach(B=>{let L=N.node(B);Object.hasOwn(L,"rank")&&(L.rank-=O)})}function u(N){let P=N.nodes().map(M=>N.node(M).rank),O=g(Math.min,P),B=[];N.nodes().forEach(M=>{let q=N.node(M).rank-O;B[q]||(B[q]=[]),B[q].push(M)});let L=0,Y=N.graph().nodeRankFactor;Array.from(B).forEach((M,q)=>{M===void 0&&q%Y!==0?--L:M!==void 0&&L&&M.forEach(I=>N.node(I).rank+=L)})}function d(N,P,O,B){let L={width:0,height:0};return arguments.length>=4&&(L.rank=O,L.order=B),r(N,"border",L,P)}function p(N,P=f){const O=[];for(let B=0;Bf){const O=p(P);return N.apply(null,O.map(B=>N.apply(null,B)))}else return N.apply(null,P)}function b(N){const P=N.nodes().map(O=>{let B=N.node(O).rank;return B===void 0?Number.MIN_VALUE:B});return g(Math.max,P)}function x(N,P){let O={lhs:[],rhs:[]};return N.forEach(B=>{P(B)?O.lhs.push(B):O.rhs.push(B)}),O}function w(N,P){let O=Date.now();try{return P()}finally{console.log(N+" time: "+(Date.now()-O)+"ms")}}function k(N,P){return P()}let C=0;function _(N){var P=++C;return N+(""+P)}function T(N,P,O=1){P==null&&(P=N,N=0);let B=Y=>YPB[P]),Object.entries(N).reduce((B,[L,Y])=>(B[L]=O(Y,L),B),{})}function D(N,P){return N.reduce((O,B,L)=>(O[B]=P[L],O),{})}return cT}var uT,hJ;function rWe(){if(hJ)return uT;hJ=1;let e=tWe(),r=_n().uniqueId;uT={run:n,undo:a};function n(i){(i.graph().acyclicer==="greedy"?e(i,l(i)):o(i)).forEach(s=>{let c=i.edge(s);i.removeEdge(s),c.forwardName=s.name,c.reversed=!0,i.setEdge(s.w,s.v,c,r("rev"))});function l(s){return c=>s.edge(c).weight}}function o(i){let l=[],s={},c={};function u(d){Object.hasOwn(c,d)||(c[d]=!0,s[d]=!0,i.outEdges(d).forEach(p=>{Object.hasOwn(s,p.w)?l.push(p):u(p.w)}),delete s[d])}return i.nodes().forEach(u),l}function a(i){i.edges().forEach(l=>{let s=i.edge(l);if(s.reversed){i.removeEdge(l);let c=s.forwardName;delete s.reversed,delete s.forwardName,i.setEdge(l.w,l.v,s,c)}})}return uT}var dT,fJ;function nWe(){if(fJ)return dT;fJ=1;let e=_n();dT={run:r,undo:o};function r(a){a.graph().dummyChains=[],a.edges().forEach(i=>n(a,i))}function n(a,i){let l=i.v,s=a.node(l).rank,c=i.w,u=a.node(c).rank,d=i.name,p=a.edge(i),f=p.labelRank;if(u===s+1)return;a.removeEdge(i);let g,b,x;for(x=0,++s;s{let l=a.node(i),s=l.edgeLabel,c;for(a.setEdge(l.edgeObj,s);l.dummy;)c=a.successors(i)[0],a.removeNode(i),s.points.push({x:l.x,y:l.y}),l.dummy==="edge-label"&&(s.x=l.x,s.y=l.y,s.width=l.width,s.height=l.height),i=c,l=a.node(i)})}return dT}var pT,mJ;function M2(){if(mJ)return pT;mJ=1;const{applyWithChunking:e}=_n();pT={longestPath:r,slack:n};function r(o){var a={};function i(l){var s=o.node(l);if(Object.hasOwn(a,l))return s.rank;a[l]=!0;let c=o.outEdges(l).map(d=>d==null?Number.POSITIVE_INFINITY:i(d.w)-o.edge(d).minlen);var u=e(Math.min,c);return u===Number.POSITIVE_INFINITY&&(u=0),s.rank=u}o.sources().forEach(i)}function n(o,a){return o.node(a.w).rank-o.node(a.v).rank-o.edge(a).minlen}return pT}var hT,gJ;function yJ(){if(gJ)return hT;gJ=1;var e=hl().Graph,r=M2().slack;hT=n;function n(l){var s=new e({directed:!1}),c=l.nodes()[0],u=l.nodeCount();s.setNode(c,{});for(var d,p;o(s,l){var p=d.v,f=u===p?d.w:p;!l.hasNode(f)&&!r(s,d)&&(l.setNode(f,{}),l.setEdge(u,f,{}),c(f))})}return l.nodes().forEach(c),l.nodeCount()}function a(l,s){return s.edges().reduce((c,u)=>{let d=Number.POSITIVE_INFINITY;return l.hasNode(u.v)!==l.hasNode(u.w)&&(d=r(s,u)),ds.node(u).rank+=c)}return hT}var fT,bJ;function oWe(){if(bJ)return fT;bJ=1;var e=yJ(),r=M2().slack,n=M2().longestPath,o=hl().alg.preorder,a=hl().alg.postorder,i=_n().simplify;fT=l,l.initLowLimValues=d,l.initCutValues=s,l.calcCutValue=u,l.leaveEdge=f,l.enterEdge=g,l.exchangeEdges=b;function l(C){C=i(C),n(C);var _=e(C);d(_),s(_,C);for(var T,R;T=f(_);)R=g(_,C,T),b(_,C,T,R)}function s(C,_){var T=a(C,C.nodes());T=T.slice(0,T.length-1),T.forEach(R=>c(C,_,R))}function c(C,_,T){var R=C.node(T),A=R.parent;C.edge(T,A).cutvalue=u(C,_,T)}function u(C,_,T){var R=C.node(T),A=R.parent,D=!0,N=_.edge(T,A),P=0;return N||(D=!1,N=_.edge(A,T)),P=N.weight,_.nodeEdges(T).forEach(O=>{var B=O.v===T,L=B?O.w:O.v;if(L!==A){var Y=B===D,M=_.edge(O).weight;if(P+=Y?M:-M,w(C,T,L)){var q=C.edge(T,L).cutvalue;P+=Y?-q:q}}}),P}function d(C,_){arguments.length<2&&(_=C.nodes()[0]),p(C,{},1,_)}function p(C,_,T,R,A){var D=T,N=C.node(R);return _[R]=!0,C.neighbors(R).forEach(P=>{Object.hasOwn(_,P)||(T=p(C,_,T,P,R))}),N.low=D,N.lim=T++,A?N.parent=A:delete N.parent,T}function f(C){return C.edges().find(_=>C.edge(_).cutvalue<0)}function g(C,_,T){var R=T.v,A=T.w;_.hasEdge(R,A)||(R=T.w,A=T.v);var D=C.node(R),N=C.node(A),P=D,O=!1;D.lim>N.lim&&(P=N,O=!0);var B=_.edges().filter(L=>O===k(C,C.node(L.v),P)&&O!==k(C,C.node(L.w),P));return B.reduce((L,Y)=>r(_,Y)!_.node(A).parent),R=o(C,T);R=R.slice(1),R.forEach(A=>{var D=C.node(A).parent,N=_.edge(A,D),P=!1;N||(N=_.edge(D,A),P=!0),_.node(A).rank=_.node(D).rank+(P?N.minlen:-N.minlen)})}function w(C,_,T){return C.hasEdge(_,T)}function k(C,_,T){return T.low<=_.lim&&_.lim<=T.lim}return fT}var mT,vJ;function aWe(){if(vJ)return mT;vJ=1;var e=M2(),r=e.longestPath,n=yJ(),o=oWe();mT=a;function a(c){var u=c.graph().ranker;if(u instanceof Function)return u(c);switch(c.graph().ranker){case"network-simplex":s(c);break;case"tight-tree":l(c);break;case"longest-path":i(c);break;case"none":break;default:s(c)}}var i=r;function l(c){r(c),n(c)}function s(c){o(c)}return mT}var gT,xJ;function iWe(){if(xJ)return gT;xJ=1,gT=e;function e(o){let a=n(o);o.graph().dummyChains.forEach(i=>{let l=o.node(i),s=l.edgeObj,c=r(o,a,s.v,s.w),u=c.path,d=c.lca,p=0,f=u[p],g=!0;for(;i!==s.w;){if(l=o.node(i),g){for(;(f=u[p])!==d&&o.node(f).maxRanku||d>a[p].lim));for(f=p,p=l;(p=o.parent(p))!==f;)c.push(p);return{path:s.concat(c.reverse()),lca:f}}function n(o){let a={},i=0;function l(s){let c=i;o.children(s).forEach(l),a[s]={low:c,lim:i++}}return o.children().forEach(l),a}return gT}var yT,wJ;function lWe(){if(wJ)return yT;wJ=1;let e=_n();yT={run:r,cleanup:i};function r(l){let s=e.addDummyNode(l,"root",{},"_root"),c=o(l),u=Object.values(c),d=e.applyWithChunking(Math.max,u)-1,p=2*d+1;l.graph().nestingRoot=s,l.edges().forEach(g=>l.edge(g).minlen*=p);let f=a(l)+1;l.children().forEach(g=>n(l,s,p,f,d,c,g)),l.graph().nodeRankFactor=p}function n(l,s,c,u,d,p,f){let g=l.children(f);if(!g.length){f!==s&&l.setEdge(s,f,{weight:0,minlen:c});return}let b=e.addBorderNode(l,"_bt"),x=e.addBorderNode(l,"_bb"),w=l.node(f);l.setParent(b,f),w.borderTop=b,l.setParent(x,f),w.borderBottom=x,g.forEach(k=>{n(l,s,c,u,d,p,k);let C=l.node(k),_=C.borderTop?C.borderTop:k,T=C.borderBottom?C.borderBottom:k,R=C.borderTop?u:2*u,A=_!==T?1:d-p[f]+1;l.setEdge(b,_,{weight:R,minlen:A,nestingEdge:!0}),l.setEdge(T,x,{weight:R,minlen:A,nestingEdge:!0})}),l.parent(f)||l.setEdge(s,b,{weight:0,minlen:d+p[f]})}function o(l){var s={};function c(u,d){var p=l.children(u);p&&p.length&&p.forEach(f=>c(f,d+1)),s[u]=d}return l.children().forEach(u=>c(u,1)),s}function a(l){return l.edges().reduce((s,c)=>s+l.edge(c).weight,0)}function i(l){var s=l.graph();l.removeNode(s.nestingRoot),delete s.nestingRoot,l.edges().forEach(c=>{var u=l.edge(c);u.nestingEdge&&l.removeEdge(c)})}return yT}var bT,kJ;function sWe(){if(kJ)return bT;kJ=1;let e=_n();bT=r;function r(o){function a(i){let l=o.children(i),s=o.node(i);if(l.length&&l.forEach(a),Object.hasOwn(s,"minRank")){s.borderLeft=[],s.borderRight=[];for(let c=s.minRank,u=s.maxRank+1;co(c.node(u))),c.edges().forEach(u=>o(c.edge(u)))}function o(c){let u=c.width;c.width=c.height,c.height=u}function a(c){c.nodes().forEach(u=>i(c.node(u))),c.edges().forEach(u=>{let d=c.edge(u);d.points.forEach(i),Object.hasOwn(d,"y")&&i(d)})}function i(c){c.y=-c.y}function l(c){c.nodes().forEach(u=>s(c.node(u))),c.edges().forEach(u=>{let d=c.edge(u);d.points.forEach(s),Object.hasOwn(d,"x")&&s(d)})}function s(c){let u=c.x;c.x=c.y,c.y=u}return vT}var xT,EJ;function uWe(){if(EJ)return xT;EJ=1;let e=_n();xT=r;function r(n){let o={},a=n.nodes().filter(u=>!n.children(u).length),i=a.map(u=>n.node(u).rank),l=e.applyWithChunking(Math.max,i),s=e.range(l+1).map(()=>[]);function c(u){if(o[u])return;o[u]=!0;let d=n.node(u);s[d.rank].push(u),n.successors(u).forEach(c)}return a.sort((u,d)=>n.node(u).rank-n.node(d).rank).forEach(c),s}return xT}var wT,SJ;function dWe(){if(SJ)return wT;SJ=1;let e=_n().zipObject;wT=r;function r(o,a){let i=0;for(let l=1;lg)),s=a.flatMap(f=>o.outEdges(f).map(g=>({pos:l[g.w],weight:o.edge(g).weight})).sort((g,b)=>g.pos-b.pos)),c=1;for(;c{let g=f.pos+c;d[g]+=f.weight;let b=0;for(;g>0;)g%2&&(b+=d[g+1]),g=g-1>>1,d[g]+=f.weight;p+=f.weight*b}),p}return wT}var kT,CJ;function pWe(){if(CJ)return kT;CJ=1,kT=e;function e(r,n=[]){return n.map(o=>{let a=r.inEdges(o);if(a.length){let i=a.reduce((l,s)=>{let c=r.edge(s),u=r.node(s.v);return{sum:l.sum+c.weight*u.order,weight:l.weight+c.weight}},{sum:0,weight:0});return{v:o,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:o}})}return kT}var _T,TJ;function hWe(){if(TJ)return _T;TJ=1;let e=_n();_T=r;function r(a,i){let l={};a.forEach((c,u)=>{let d=l[c.v]={indegree:0,in:[],out:[],vs:[c.v],i:u};c.barycenter!==void 0&&(d.barycenter=c.barycenter,d.weight=c.weight)}),i.edges().forEach(c=>{let u=l[c.v],d=l[c.w];u!==void 0&&d!==void 0&&(d.indegree++,u.out.push(l[c.w]))});let s=Object.values(l).filter(c=>!c.indegree);return n(s)}function n(a){let i=[];function l(c){return u=>{u.merged||(u.barycenter===void 0||c.barycenter===void 0||u.barycenter>=c.barycenter)&&o(c,u)}}function s(c){return u=>{u.in.push(c),--u.indegree===0&&a.push(u)}}for(;a.length;){let c=a.pop();i.push(c),c.in.reverse().forEach(l(c)),c.out.forEach(s(c))}return i.filter(c=>!c.merged).map(c=>e.pick(c,["vs","i","barycenter","weight"]))}function o(a,i){let l=0,s=0;a.weight&&(l+=a.barycenter*a.weight,s+=a.weight),i.weight&&(l+=i.barycenter*i.weight,s+=i.weight),a.vs=i.vs.concat(a.vs),a.barycenter=l/s,a.weight=s,a.i=Math.min(i.i,a.i),i.merged=!0}return _T}var ET,RJ;function fWe(){if(RJ)return ET;RJ=1;let e=_n();ET=r;function r(a,i){let l=e.partition(a,b=>Object.hasOwn(b,"barycenter")),s=l.lhs,c=l.rhs.sort((b,x)=>x.i-b.i),u=[],d=0,p=0,f=0;s.sort(o(!!i)),f=n(u,c,f),s.forEach(b=>{f+=b.vs.length,u.push(b.vs),d+=b.barycenter*b.weight,p+=b.weight,f=n(u,c,f)});let g={vs:u.flat(!0)};return p&&(g.barycenter=d/p,g.weight=p),g}function n(a,i,l){let s;for(;i.length&&(s=i[i.length-1]).i<=l;)i.pop(),a.push(s.vs),l++;return l}function o(a){return(i,l)=>i.barycenterl.barycenter?1:a?l.i-i.i:i.i-l.i}return ET}var ST,AJ;function mWe(){if(AJ)return ST;AJ=1;let e=pWe(),r=hWe(),n=fWe();ST=o;function o(l,s,c,u){let d=l.children(s),p=l.node(s),f=p?p.borderLeft:void 0,g=p?p.borderRight:void 0,b={};f&&(d=d.filter(C=>C!==f&&C!==g));let x=e(l,d);x.forEach(C=>{if(l.children(C.v).length){let _=o(l,C.v,c,u);b[C.v]=_,Object.hasOwn(_,"barycenter")&&i(C,_)}});let w=r(x,c);a(w,b);let k=n(w,u);if(f&&(k.vs=[f,k.vs,g].flat(!0),l.predecessors(f).length)){let C=l.node(l.predecessors(f)[0]),_=l.node(l.predecessors(g)[0]);Object.hasOwn(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+C.order+_.order)/(k.weight+2),k.weight+=2}return k}function a(l,s){l.forEach(c=>{c.vs=c.vs.flatMap(u=>s[u]?s[u].vs:u)})}function i(l,s){l.barycenter!==void 0?(l.barycenter=(l.barycenter*l.weight+s.barycenter*s.weight)/(l.weight+s.weight),l.weight+=s.weight):(l.barycenter=s.barycenter,l.weight=s.weight)}return ST}var CT,NJ;function gWe(){if(NJ)return CT;NJ=1;let e=hl().Graph,r=_n();CT=n;function n(a,i,l){let s=o(a),c=new e({compound:!0}).setGraph({root:s}).setDefaultNodeLabel(u=>a.node(u));return a.nodes().forEach(u=>{let d=a.node(u),p=a.parent(u);(d.rank===i||d.minRank<=i&&i<=d.maxRank)&&(c.setNode(u),c.setParent(u,p||s),a[l](u).forEach(f=>{let g=f.v===u?f.w:f.v,b=c.edge(g,u),x=b!==void 0?b.weight:0;c.setEdge(g,u,{weight:a.edge(f).weight+x})}),Object.hasOwn(d,"minRank")&&c.setNode(u,{borderLeft:d.borderLeft[i],borderRight:d.borderRight[i]}))}),c}function o(a){for(var i;a.hasNode(i=r.uniqueId("_root")););return i}return CT}var TT,DJ;function yWe(){if(DJ)return TT;DJ=1,TT=e;function e(r,n,o){let a={},i;o.forEach(l=>{let s=r.parent(l),c,u;for(;s;){if(c=r.parent(s),c?(u=a[c],a[c]=s):(u=i,i=s),u&&u!==s){n.setEdge(u,s);return}s=c}})}return TT}var RT,$J;function bWe(){if($J)return RT;$J=1;let e=uWe(),r=dWe(),n=mWe(),o=gWe(),a=yWe(),i=hl().Graph,l=_n();RT=s;function s(p,f){if(f&&typeof f.customOrder=="function"){f.customOrder(p,s);return}let g=l.maxRank(p),b=c(p,l.range(1,g+1),"inEdges"),x=c(p,l.range(g-1,-1,-1),"outEdges"),w=e(p);if(d(p,w),f&&f.disableOptimalOrderHeuristic)return;let k=Number.POSITIVE_INFINITY,C;for(let _=0,T=0;T<4;++_,++T){u(_%2?b:x,_%4>=2),w=l.buildLayerMatrix(p);let R=r(p,w);Rb.node(k).order=C),a(b,g,w.vs)})}function d(p,f){Object.values(f).forEach(g=>g.forEach((b,x)=>p.node(b).order=x))}return RT}var AT,PJ;function vWe(){if(PJ)return AT;PJ=1;let e=hl().Graph,r=_n();AT={positionX:g,findType1Conflicts:n,findType2Conflicts:o,addConflict:i,hasConflict:l,verticalAlignment:s,horizontalCompaction:c,alignCoordinates:p,findSmallestWidthAlignment:d,balance:f};function n(w,k){let C={};function _(T,R){let A=0,D=0,N=T.length,P=R[R.length-1];return R.forEach((O,B)=>{let L=a(w,O),Y=L?w.node(L).order:N;(L||O===P)&&(R.slice(D,B+1).forEach(M=>{w.predecessors(M).forEach(q=>{let I=w.node(q),U=I.order;(U{O=R[B],w.node(O).dummy&&w.predecessors(O).forEach(L=>{let Y=w.node(L);Y.dummy&&(Y.orderP)&&i(C,L,O)})})}function T(R,A){let D=-1,N,P=0;return A.forEach((O,B)=>{if(w.node(O).dummy==="border"){let L=w.predecessors(O);L.length&&(N=w.node(L[0]).order,_(A,P,B,D,N),P=B,D=N)}_(A,P,A.length,N,R.length)}),A}return k.length&&k.reduce(T),C}function a(w,k){if(w.node(k).dummy)return w.predecessors(k).find(C=>w.node(C).dummy)}function i(w,k,C){if(k>C){let T=k;k=C,C=T}let _=w[k];_||(w[k]=_={}),_[C]=!0}function l(w,k,C){if(k>C){let _=k;k=C,C=_}return!!w[k]&&Object.hasOwn(w[k],C)}function s(w,k,C,_){let T={},R={},A={};return k.forEach(D=>{D.forEach((N,P)=>{T[N]=N,R[N]=N,A[N]=P})}),k.forEach(D=>{let N=-1;D.forEach(P=>{let O=_(P);if(O.length){O=O.sort((L,Y)=>A[L]-A[Y]);let B=(O.length-1)/2;for(let L=Math.floor(B),Y=Math.ceil(B);L<=Y;++L){let M=O[L];R[P]===P&&NMath.max(L,R[Y.v]+A.edge(Y)),0)}function O(B){let L=A.outEdges(B).reduce((M,q)=>Math.min(M,R[q.w]-A.edge(q)),Number.POSITIVE_INFINITY),Y=w.node(B);L!==Number.POSITIVE_INFINITY&&Y.borderType!==D&&(R[B]=Math.max(R[B],L))}return N(P,A.predecessors.bind(A)),N(O,A.successors.bind(A)),Object.keys(_).forEach(B=>R[B]=R[C[B]]),R}function u(w,k,C,_){let T=new e,R=w.graph(),A=b(R.nodesep,R.edgesep,_);return k.forEach(D=>{let N;D.forEach(P=>{let O=C[P];if(T.setNode(O),N){var B=C[N],L=T.edge(B,O);T.setEdge(B,O,Math.max(A(w,P,N),L||0))}N=P})}),T}function d(w,k){return Object.values(k).reduce((C,_)=>{let T=Number.NEGATIVE_INFINITY,R=Number.POSITIVE_INFINITY;Object.entries(_).forEach(([D,N])=>{let P=x(w,D)/2;T=Math.max(N+P,T),R=Math.min(N-P,R)});const A=T-R;return A{["l","r"].forEach(A=>{let D=R+A,N=w[D];if(N===k)return;let P=Object.values(N),O=_-r.applyWithChunking(Math.min,P);A!=="l"&&(O=T-r.applyWithChunking(Math.max,P)),O&&(w[D]=r.mapValues(N,B=>B+O))})})}function f(w,k){return r.mapValues(w.ul,(C,_)=>{if(k)return w[k.toLowerCase()][_];{let T=Object.values(w).map(R=>R[_]).sort((R,A)=>R-A);return(T[1]+T[2])/2}})}function g(w){let k=r.buildLayerMatrix(w),C=Object.assign(n(w,k),o(w,k)),_={},T;["u","d"].forEach(A=>{T=A==="u"?k:Object.values(k).reverse(),["l","r"].forEach(D=>{D==="r"&&(T=T.map(B=>Object.values(B).reverse()));let N=(A==="u"?w.predecessors:w.successors).bind(w),P=s(w,T,C,N),O=c(w,T,P.root,P.align,D==="r");D==="r"&&(O=r.mapValues(O,B=>-B)),_[A+D]=O})});let R=d(w,_);return p(_,R),f(_,w.graph().align)}function b(w,k,C){return(_,T,R)=>{let A=_.node(T),D=_.node(R),N=0,P;if(N+=A.width/2,Object.hasOwn(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":P=-A.width/2;break;case"r":P=A.width/2;break}if(P&&(N+=C?P:-P),P=0,N+=(A.dummy?k:w)/2,N+=(D.dummy?k:w)/2,N+=D.width/2,Object.hasOwn(D,"labelpos"))switch(D.labelpos.toLowerCase()){case"l":P=D.width/2;break;case"r":P=-D.width/2;break}return P&&(N+=C?P:-P),P=0,N}}function x(w,k){return w.node(k).width}return AT}var NT,OJ;function xWe(){if(OJ)return NT;OJ=1;let e=_n(),r=vWe().positionX;NT=n;function n(a){a=e.asNonCompoundGraph(a),o(a),Object.entries(r(a)).forEach(([i,l])=>a.node(i).x=l)}function o(a){let i=e.buildLayerMatrix(a),l=a.graph().ranksep,s=0;i.forEach(c=>{const u=c.reduce((d,p)=>{const f=a.node(p).height;return d>f?d:f},0);c.forEach(d=>a.node(d).y=s+u/2),s+=u+l})}return NT}var DT,MJ;function wWe(){if(MJ)return DT;MJ=1;let e=rWe(),r=nWe(),n=aWe(),o=_n().normalizeRanks,a=iWe(),i=_n().removeEmptyRanks,l=lWe(),s=sWe(),c=cWe(),u=bWe(),d=xWe(),p=_n(),f=hl().Graph;DT=g;function g(z,W){let X=W&&W.debugTiming?p.time:p.notime;X("layout",()=>{let Z=X(" buildLayoutGraph",()=>N(z));X(" runLayout",()=>b(Z,X,W)),X(" updateInputGraph",()=>x(z,Z))})}function b(z,W,X){W(" makeSpaceForEdgeLabels",()=>P(z)),W(" removeSelfEdges",()=>V(z)),W(" acyclic",()=>e.run(z)),W(" nestingGraph.run",()=>l.run(z)),W(" rank",()=>n(p.asNonCompoundGraph(z))),W(" injectEdgeLabelProxies",()=>O(z)),W(" removeEmptyRanks",()=>i(z)),W(" nestingGraph.cleanup",()=>l.cleanup(z)),W(" normalizeRanks",()=>o(z)),W(" assignRankMinMax",()=>B(z)),W(" removeEdgeLabelProxies",()=>L(z)),W(" normalize.run",()=>r.run(z)),W(" parentDummyChains",()=>a(z)),W(" addBorderSegments",()=>s(z)),W(" order",()=>u(z,X)),W(" insertSelfEdges",()=>G(z)),W(" adjustCoordinateSystem",()=>c.adjust(z)),W(" position",()=>d(z)),W(" positionSelfEdges",()=>F(z)),W(" removeBorderNodes",()=>U(z)),W(" normalize.undo",()=>r.undo(z)),W(" fixupEdgeLabelCoords",()=>q(z)),W(" undoCoordinateSystem",()=>c.undo(z)),W(" translateGraph",()=>Y(z)),W(" assignNodeIntersects",()=>M(z)),W(" reversePoints",()=>I(z)),W(" acyclic.undo",()=>e.undo(z))}function x(z,W){z.nodes().forEach(X=>{let Z=z.node(X),oe=W.node(X);Z&&(Z.x=oe.x,Z.y=oe.y,Z.rank=oe.rank,W.children(X).length&&(Z.width=oe.width,Z.height=oe.height))}),z.edges().forEach(X=>{let Z=z.edge(X),oe=W.edge(X);Z.points=oe.points,Object.hasOwn(oe,"x")&&(Z.x=oe.x,Z.y=oe.y)}),z.graph().width=W.graph().width,z.graph().height=W.graph().height}let w=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},C=["acyclicer","ranker","rankdir","align"],_=["width","height","rank"],T={width:0,height:0},R=["minlen","weight","width","height","labeloffset"],A={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},D=["labelpos"];function N(z){let W=new f({multigraph:!0,compound:!0}),X=Q(z.graph());return W.setGraph(Object.assign({},k,J(X,w),p.pick(X,C))),z.nodes().forEach(Z=>{let oe=Q(z.node(Z));const ee=J(oe,_);Object.keys(T).forEach(re=>{ee[re]===void 0&&(ee[re]=T[re])}),W.setNode(Z,ee),W.setParent(Z,z.parent(Z))}),z.edges().forEach(Z=>{let oe=Q(z.edge(Z));W.setEdge(Z,Object.assign({},A,J(oe,R),p.pick(oe,D)))}),W}function P(z){let W=z.graph();W.ranksep/=2,z.edges().forEach(X=>{let Z=z.edge(X);Z.minlen*=2,Z.labelpos.toLowerCase()!=="c"&&(W.rankdir==="TB"||W.rankdir==="BT"?Z.width+=Z.labeloffset:Z.height+=Z.labeloffset)})}function O(z){z.edges().forEach(W=>{let X=z.edge(W);if(X.width&&X.height){let Z=z.node(W.v),oe={rank:(z.node(W.w).rank-Z.rank)/2+Z.rank,e:W};p.addDummyNode(z,"edge-proxy",oe,"_ep")}})}function B(z){let W=0;z.nodes().forEach(X=>{let Z=z.node(X);Z.borderTop&&(Z.minRank=z.node(Z.borderTop).rank,Z.maxRank=z.node(Z.borderBottom).rank,W=Math.max(W,Z.maxRank))}),z.graph().maxRank=W}function L(z){z.nodes().forEach(W=>{let X=z.node(W);X.dummy==="edge-proxy"&&(z.edge(X.e).labelRank=X.rank,z.removeNode(W))})}function Y(z){let W=Number.POSITIVE_INFINITY,X=0,Z=Number.POSITIVE_INFINITY,oe=0,ee=z.graph(),re=ee.marginx||0,pe=ee.marginy||0;function Ce(ce){let de=ce.x,be=ce.y,Me=ce.width,Xe=ce.height;W=Math.min(W,de-Me/2),X=Math.max(X,de+Me/2),Z=Math.min(Z,be-Xe/2),oe=Math.max(oe,be+Xe/2)}z.nodes().forEach(ce=>Ce(z.node(ce))),z.edges().forEach(ce=>{let de=z.edge(ce);Object.hasOwn(de,"x")&&Ce(de)}),W-=re,Z-=pe,z.nodes().forEach(ce=>{let de=z.node(ce);de.x-=W,de.y-=Z}),z.edges().forEach(ce=>{let de=z.edge(ce);de.points.forEach(be=>{be.x-=W,be.y-=Z}),Object.hasOwn(de,"x")&&(de.x-=W),Object.hasOwn(de,"y")&&(de.y-=Z)}),ee.width=X-W+re,ee.height=oe-Z+pe}function M(z){z.edges().forEach(W=>{let X=z.edge(W),Z=z.node(W.v),oe=z.node(W.w),ee,re;X.points?(ee=X.points[0],re=X.points[X.points.length-1]):(X.points=[],ee=oe,re=Z),X.points.unshift(p.intersectRect(Z,ee)),X.points.push(p.intersectRect(oe,re))})}function q(z){z.edges().forEach(W=>{let X=z.edge(W);if(Object.hasOwn(X,"x"))switch((X.labelpos==="l"||X.labelpos==="r")&&(X.width-=X.labeloffset),X.labelpos){case"l":X.x-=X.width/2+X.labeloffset;break;case"r":X.x+=X.width/2+X.labeloffset;break}})}function I(z){z.edges().forEach(W=>{let X=z.edge(W);X.reversed&&X.points.reverse()})}function U(z){z.nodes().forEach(W=>{if(z.children(W).length){let X=z.node(W),Z=z.node(X.borderTop),oe=z.node(X.borderBottom),ee=z.node(X.borderLeft[X.borderLeft.length-1]),re=z.node(X.borderRight[X.borderRight.length-1]);X.width=Math.abs(re.x-ee.x),X.height=Math.abs(oe.y-Z.y),X.x=ee.x+X.width/2,X.y=Z.y+X.height/2}}),z.nodes().forEach(W=>{z.node(W).dummy==="border"&&z.removeNode(W)})}function V(z){z.edges().forEach(W=>{if(W.v===W.w){var X=z.node(W.v);X.selfEdges||(X.selfEdges=[]),X.selfEdges.push({e:W,label:z.edge(W)}),z.removeEdge(W)}})}function G(z){var W=p.buildLayerMatrix(z);W.forEach(X=>{var Z=0;X.forEach((oe,ee)=>{var re=z.node(oe);re.order=ee+Z,(re.selfEdges||[]).forEach(pe=>{p.addDummyNode(z,"selfedge",{width:pe.label.width,height:pe.label.height,rank:re.rank,order:ee+ ++Z,e:pe.e,label:pe.label},"_se")}),delete re.selfEdges})})}function F(z){z.nodes().forEach(W=>{var X=z.node(W);if(X.dummy==="selfedge"){var Z=z.node(X.e.v),oe=Z.x+Z.width/2,ee=Z.y,re=X.x-oe,pe=Z.height/2;z.setEdge(X.e,X.label),z.removeNode(W),X.label.points=[{x:oe+2*re/3,y:ee-pe},{x:oe+5*re/6,y:ee-pe},{x:oe+re,y:ee},{x:oe+5*re/6,y:ee+pe},{x:oe+2*re/3,y:ee+pe}],X.label.x=X.x,X.label.y=X.y}})}function J(z,W){return p.mapValues(p.pick(z,W),Number)}function Q(z){var W={};return z&&Object.entries(z).forEach(([X,Z])=>{typeof X=="string"&&(X=X.toLowerCase()),W[X]=Z}),W}return DT}var $T,IJ;function kWe(){if(IJ)return $T;IJ=1;let e=_n(),r=hl().Graph;$T={debugOrdering:n};function n(o){let a=e.buildLayerMatrix(o),i=new r({compound:!0,multigraph:!0}).setGraph({});return o.nodes().forEach(l=>{i.setNode(l,{label:l}),i.setParent(l,"layer"+o.node(l).rank)}),o.edges().forEach(l=>i.setEdge(l.v,l.w,{},l.name)),a.forEach((l,s)=>{let c="layer"+s;i.setNode(c,{rank:"same"}),l.reduce((u,d)=>(i.setEdge(u,d,{style:"invis"}),d))}),i}return $T}var LJ,zJ;function _We(){return zJ||(zJ=1,LJ="1.1.5"),LJ}var jJ,BJ;function EWe(){return BJ||(BJ=1,jJ={graphlib:hl(),layout:wWe(),debug:kWe(),util:{time:_n().time,notime:_n().notime},version:_We()}),jJ}var SWe=EWe();const I2=D8(SWe),go={dagre:{ranksep:60,nodesep:35,edgesep:25},edgeLabel:{width:140,height:10,minlen:1,weight:1},emptyNodeOffset:120,nodeWidth:330,nodeHeight:180,compound:{labelHeight:2,paddingTop:50,paddingBottom:32}};function CWe(){const e=new I2.graphlib.Graph({directed:!0,compound:!0,multigraph:!0});return e.setGraph({...go.dagre,rankdir:"LR"}),e.setDefaultEdgeLabel(()=>({...go.edgeLabel})),e.setDefaultNodeLabel(()=>({})),e}const PT="-port";function OT(e,r,n){const o=new so(i=>({id:`${e}-${i}`,portId:`${e}-${i}`})),a=z3(r);for(const i of a.sorted){const l=a.children(i).length>0,s=i.id,c=`${e}-${s}`,u=l?`${c}${PT}`:c;o.set(s,{id:c,portId:u}),n.setNode(c,{column:e,element:i,isCompound:l,portId:u,inPorts:[],outPorts:[],width:go.nodeWidth,height:go.nodeHeight}),l&&(n.setNode(u,{element:i,portId:u,isCompound:l,inPorts:[],outPorts:[],width:go.nodeWidth-go.dagre.ranksep,height:go.compound.labelHeight}),n.setParent(u,c));const d=a.parent(i);d&&n.setParent(c,`${e}-${d.id}`)}return{...a,byId:i=>{const l=a.byId(i),s=o.get(l.id);return{element:l,graph:s}},graphNodes:o}}function TWe(e){return I2.layout(e,{}),r=>{const n=e.node(r),{x:o,y:a,width:i,height:l}=n;return{position:{x:o-Math.round(i/2),y:a-Math.round(l/2)},width:i,height:l}}}var L2;(e=>{e.Empty="@empty"})(L2||(L2={}));function RWe(e,r){const n=CWe(),o=OT("incomers",e.incomers,n),a=OT("subjects",e.subjects,n),i=OT("outgoers",e.outgoers,n),l=[];yn(cNe(yn(K1(e.incoming),Ro(T=>({id:T.source.id,sourceFqn:T.source.id,targetFqn:T.target.id,source:o.byId(T.source.id).graph,target:a.byId(T.target.id).graph,relation:T}))),yn(K1(e.outgoing),Ro(T=>({id:T.target.id,sourceFqn:T.source.id,targetFqn:T.target.id,source:a.byId(T.source.id).graph,target:i.byId(T.target.id).graph,relation:T})))),Ro(T=>({...T,expr:`${T.source.id}->${T.target.id}`})),ANe(Ca("expr")),TNe(T=>{const R=T[0].source,A=T[0].target,D=T[0].expr;n.node(R.id).outPorts.push(A.id),n.node(A.id).inPorts.push(R.id),n.setEdge(R.portId,A.portId,{...go.edgeLabel},D),l.push({name:D,sourceFqn:T[0].sourceFqn,targetFqn:T[0].targetFqn,source:R.id,sourceHandle:R.id+"_out"+(n.node(R.id).outPorts.length-1),target:A.id,targetHandle:A.id+"_in"+(n.node(A.id).inPorts.length-1),relations:Ro(T,Ca("relation"))})}));for(const T of a.graphNodes.values()){const R=T.id,A=n.node(R);if(A.isCompound)continue;const D=Math.max(n.inEdges(R)?.length??0,n.outEdges(R)?.length??0);D>2&&(A.height=A.height+(D-3)*14)}const s=[...o.graphNodes.values(),...a.graphNodes.values(),...i.graphNodes.values()];if(o.graphNodes.size==0){const T="incomers-empty";n.setNode(T,{column:"incomers",element:null,isCompound:!1,portId:T,inPorts:[],outPorts:[],width:go.nodeWidth,height:go.nodeHeight});for(const R of a.graphNodes.values())n.setEdge(T,R.portId);s.push({id:T,portId:T})}if(i.graphNodes.size==0){const T="outgoers-empty";n.setNode(T,{column:"outgoers",element:null,isCompound:!1,portId:T,inPorts:[],outPorts:[],width:go.nodeWidth,height:go.nodeHeight});for(const R of a.graphNodes.values())n.setEdge(R.portId,T);s.push({id:T,portId:T})}const c=n.edgeCount();if(c>10)for(const T of n.edges())n.setEdge(T,{...go.edgeLabel,width:c>25?800:400});const u=TWe(n),d=yn(s,df(T=>T.id===T.portId),E0(T=>[T.id,u(T.id)]));function p(T){return d[T]??=yn(n.children(T)??[],df(R=>!R.endsWith(PT)),Ro(R=>p(R)),uq(R=>{nt(R.length>0,`Node ${T} has no nested nodes`)}),hf((R,A)=>({minY:Math.min(R.minY,A.position.y),maxY:Math.max(R.maxY,A.position.y+A.height)}),{minY:1/0,maxY:-1/0}),({minY:R,maxY:A})=>{const{position:{x:D},width:N}=u(T);return R=R-go.compound.paddingTop,A=A+go.compound.paddingBottom,{position:{x:D,y:R},width:N,height:A-R}})}function f(T){const R=n.parent(T);return R?f(R)+1:0}function g(T){const R=n.children(T)??[];return R.length===0?0:1+Math.max(...R.map(g))}const b=(T,R,A)=>yn(A,Ro((D,N)=>({port:T+"_"+R+N,topY:p(D).position.y})),jx(Ca("topY")),Ro(Ca("port")));let x=0,w=0;const[k]=[...a.root];nt(k,"Subjects should not be empty");let C=p(a.graphNodes.get(k.id).id);const _=s.map(({id:T})=>{const{element:R,inPorts:A,outPorts:D,column:N}=n.node(T);let{position:P,width:O,height:B}=p(T);if(!R){if(B=Math.min(C.height,300),P.y=C.position.y+C.height/2-B/2,N==="incomers")O=C.position.x-go.emptyNodeOffset-P.x;else{const V=P.x+O;P.x=C.position.x+C.width+go.emptyNodeOffset,O=V-P.x}return{id:T,parent:null,x:P.x,y:P.y,title:"empty node",description:Kt.EMPTY,technology:null,tags:[],links:[],color:"muted",shape:"rectangle",style:{border:"dashed",opacity:50},kind:L2.Empty,level:0,labelBBox:{x:P.x,y:P.y,width:O,height:B},children:[],width:O,height:B,column:N,ports:{in:[],out:[]},existsInCurrentView:!1}}const L=n.parent(T),Y=(n.children(T)??[]).filter(V=>!V.endsWith(PT));x=Math.min(x,P.x),w=Math.min(w,P.y);const M=r?X1(R.scopedViews(),V=>V.id!==r.id)?.id??null:null,q=r?.findNodeWithElement(R.id),I=r&&!q?X1(R.ancestors(),V=>!!r.findNodeWithElement(V.id))?.id:null,U=q??(I&&r?.findNodeWithElement(I));return{id:T,parent:L??null,x:P.x,y:P.y,title:R.title,description:R.summary,technology:R.technology,tags:[...R.tags],links:null,color:U?.color??R.color,shape:q?.shape??R.shape,icon:q?.icon??R.icon??"none",modelRef:R.id,kind:R.kind,level:f(T),labelBBox:{x:P.x,y:P.y,width:O,height:B},style:qd({...(q??U)?.style,...R.$element.style},["color","shape","icon"]),navigateTo:M,...Y.length>0&&{depth:g(T)},children:Y,width:O,height:B,column:N,ports:{in:b(T,"in",A),out:b(T,"out",D)},existsInCurrentView:!!q}});return{subjectExistsInScope:!r||r.includesElement(k.id),bounds:{x:Math.min(x,0),y:Math.min(w,0),width:n.graph().width??100,height:n.graph().height??100},nodes:_,edges:n.edges().reduce((T,R)=>{const A=n.edge(R),D=R.name;if(!D)return T;const{name:N,source:P,sourceFqn:O,target:B,targetFqn:L,relations:Y,sourceHandle:M,targetHandle:q}=mt(Lx(l,F=>F.name===D)),I=zx(Y),U=I?.title??"untitled",V=Y.length>1,G=zx(Y8(Y.flatMap(F=>F.navigateTo?.id?F.navigateTo.id:[])));return T.push(q1({id:N,sourceFqn:O,source:P,sourceHandle:M,targetFqn:L,target:B,targetHandle:q,label:V?`${Y.length} relationships`:U,navigateTo:G,color:I?.color??"gray",existsInCurrentView:!r||Y.every(F=>r.includesRelation(F.id)),points:A.points.map(F=>[F.x,F.y]),line:I?.line??"dashed",head:I?.head,tail:I?.tail,relations:Y.map(F=>F.id),parent:null})),T},[])}}function AWe(e,r,n){const o=Ho();return E.useMemo(()=>{const a=r?o.findView(r):null,i=RWe(dB(e,o,r,n),n==="view"?a:null);return a&&(n==="global"||!i.subjectExistsInScope)&&(i.edges=i.edges.map(l=>(l.existsInCurrentView=l.relations.every(s=>a.includesRelation(s)),l))),Object.assign(i,{subject:e})},[o,e,r,n,dB])}const Cy=(e,r)=>r3(e.label,r.label);function MT(e){return{label:e.title,value:e.id,children:[...e.children()].map(MT).sort(Cy)}}function NWe(e){const r=Ho();return E.useMemo(()=>e?[...r.view(e).roots()].map(MT).sort(Cy):[...r.roots()].map(MT).sort(Cy),[r,e??null])}const DWe=ye({margin:"0"}),$We=ye({_hover:{backgroundColor:"mantine.colors.gray[0]",_dark:{backgroundColor:"mantine.colors.defaultHover",color:"mantine.colors.white"}}}),FJ=ye({maxHeight:["70vh","calc(100cqh - 70px)"]}),PWe=Object.freeze(Object.defineProperty({__proto__:null,label:$We,node:DWe,scrollArea:FJ},Symbol.toStringTag,{value:"Module"}));/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const OWe=[["path",{d:"M8 9l4 -4l4 4",key:"svg-0"}],["path",{d:"M16 15l-4 4l-4 -4",key:"svg-1"}]],IT=yt("outline","selector","Selector",OWe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const MWe=[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]],pp=yt("outline","chevron-right","ChevronRight",MWe),IWe=e=>{const r=e.context.layouted?.subjectExistsInScope??!1;return{subjectId:e.context.subject,viewId:e.context.viewId,scope:e.context.scope,subjectExistsInScope:r,enableSelectSubject:e.context.enableSelectSubject,enableChangeScope:e.context.enableChangeScope}},LWe=()=>{},zWe=E.memo(()=>{const e=Sy(),{subjectId:r,viewId:n,scope:o,subjectExistsInScope:a,enableSelectSubject:i,enableChangeScope:l}=O2(IWe),s=E.useRef(null),c=E.useRef(null),u=Ho().findElement(r),d=NWe(o==="view"&&n?n:void 0),p=Y0({multiple:!1});return p.setHoveredNode=LWe,E.useEffect(()=>{bd(r).reverse().forEach(f=>{p.expand(f)}),p.select(r)},[r]),y.jsxs(Ur,{ref:s,gap:"xs",pos:"relative",children:[i&&y.jsxs(Ur,{gap:4,wrap:"nowrap",children:[y.jsx(Se,{fz:"xs",fw:"500",style:{whiteSpace:"nowrap",userSelect:"none"},children:"Relationships of"}),y.jsx(Se,{pos:"relative",children:y.jsxs(mr,{position:"bottom-start",shadow:"md",keepMounted:!1,withinPortal:!1,closeOnClickOutside:!0,clickOutsideEvents:["pointerdown","mousedown","click"],offset:4,onOpen:()=>{setTimeout(()=>{c.current?.querySelector(`[data-value="${r}"]`)?.scrollIntoView({behavior:"instant",block:"nearest"})},100)},children:[y.jsx(fu,{children:y.jsx(Zn,{size:"xs",variant:"default",maw:250,rightSection:y.jsx(IT,{size:16}),children:y.jsx(wt,{fz:"xs",fw:"500",truncate:!0,children:u?.title??"???"})})}),y.jsx(Gs,{p:0,miw:250,maw:400,children:y.jsx(ta,{scrollbars:"y",type:"never",viewportRef:c,className:FJ,children:y.jsx(Bf,{allowRangeSelection:!1,selectOnClick:!1,tree:p,data:d,classNames:PWe,levelOffset:8,styles:{root:{maxWidth:400,overflow:"hidden"},label:{paddingTop:5,paddingBottom:6}},renderNode:({node:f,selected:g,expanded:b,elementProps:x,hasChildren:w})=>y.jsxs(Ur,{gap:2,wrap:"nowrap",...x,py:"3",children:[y.jsx(or,{variant:"subtle",size:18,c:"dimmed",style:{visibility:w?"visible":"hidden"},children:y.jsx(pp,{stroke:3.5,style:{transition:"transform 150ms ease",transform:`rotate(${b?"90deg":"0"})`,width:"80%"}})}),y.jsx(Se,{flex:"1 1 100%",w:"100%",onClick:k=>{k.stopPropagation(),p.select(f.value),p.expand(f.value),e.navigateTo(f.value)},children:y.jsx(wt,{fz:"sm",fw:g?"600":"400",truncate:"end",children:f.label})})]})})})})]})})]}),l&&y.jsxs(Ur,{gap:4,wrap:"nowrap",children:[i&&y.jsx(Se,{fz:"xs",fw:"500",...!a&&{c:"dimmed"},style:{whiteSpace:"nowrap",userSelect:"none"},children:"Scope"}),y.jsx("div",{children:y.jsx(fo,{color:"orange",label:y.jsxs(y.Fragment,{children:["This element does not exist in the current view",o==="view"&&y.jsxs(y.Fragment,{children:[y.jsx("br",{}),"Scope is set to global"]})]}),position:"bottom-start",disabled:a,portalProps:{target:s.current},children:y.jsx(U0,{flex:"1 0 auto",size:"xs",withItemsBorders:!1,value:o,styles:{label:{paddingLeft:8,paddingRight:8}},onChange:f=>{e.changeScope(f)},data:[{label:"Global",value:"global"},{label:y.jsx("span",{children:"Current view"}),value:"view",disabled:!a}]})})})]})]})}),z2=(e,r)=>Math.abs(e-r)<2.5,jWe=(e,r)=>e.id===r.id&&ut(e.selected??!1,r.selected??!1)&&ut(e.animated??!1,r.animated??!1)&&ut(e.source,r.source)&&ut(e.sourceHandleId??null,r.sourceHandleId??null)&&ut(e.sourcePosition,r.sourcePosition)&&ut(e.target,r.target)&&ut(e.targetHandleId??null,r.targetHandleId??null)&&ut(e.targetPosition,r.targetPosition)&&z2(e.sourceX,r.sourceX)&&z2(e.sourceY,r.sourceY)&&z2(e.targetX,r.targetX)&&z2(e.targetY,r.targetY)&&ut(e.data,r.data);function LT(e){return E.memo(e,jWe)}const BWe=["Controls","ReadOnly","FocusMode","NavigateTo","ElementDetails","RelationshipDetails","RelationshipBrowser","Search","NavigationButtons","Notations","DynamicViewWalkthrough","EdgeEditing","FitView","Vscode","ElementTags"],HJ=E0(BWe,e=>[`enable${e}`,!1]),zT=E.createContext(HJ),FWe=e=>{let{enableReadOnly:r,enableEdgeEditing:n,...o}=e;return r&&(n=!1),{enableReadOnly:r,enableEdgeEditing:n,...o}};function hp({children:e,features:r,overrides:n}){const o=E.useContext(zT),[a,i]=E.useState(o);return E.useEffect(()=>{i(l=>{const s=FWe({...o,...r,...n});return Gn(l,s)?l:s})},[o,r,n]),y.jsx(zT.Provider,{value:a,children:e})}hp.Overlays=({children:e})=>y.jsx(hp,{overrides:{enableControls:!1,enableReadOnly:!0,enableEdgeEditing:!1},children:e});function wr(){return E.useContext(zT)}function HWe({feature:e,children:r,and:n=!0}){return wr()[`enable${e}`]===!0&&n?y.jsx(y.Fragment,{children:r}):null}function jT(e,r){return w2(e,r)}const fl=jT("button"),Qr=jT("div"),UWe=jT("span"),Ty=E.forwardRef(({edgeProps:{id:e,data:{label:r,technology:n,hovered:o=!1},selected:a=!1,selectable:i=!1},className:l,style:s,children:c,...u},d)=>{const p=v1(e)?BI(e):null,f=MVe({isStepEdge:p!==null,cursor:i||p!==null?"pointer":"default"}),g=Sa(r)||Sa(n);return y.jsxs(Qr,{ref:d,className:Je(f.root,"likec4-edge-label",l),"data-edge-id":e,animate:{scale:o&&!a?1.06:1},...u,children:[p!==null&&y.jsx(qr,{className:f.stepNumber,children:p}),g&&y.jsxs(qr,{className:f.labelContents,children:[Sa(r)&&y.jsx(qr,{className:Je(f.labelText,ye({lineClamp:5})),children:r}),Sa(n)&&y.jsx(qr,{className:f.labelTechnology,children:"[ "+n+" ]"}),c]})]})});Ty.displayName="EdgeLabel";function j2({icon:e,onClick:r}){return y.jsx(or,{className:Je("nodrag nopan",EVe()),onPointerDownCapture:cn,onClick:r,role:"button",onDoubleClick:cn,children:e??y.jsx(gi,{})})}const qWe=".react-flow__edge.selected",VWe=ye({_reduceGraphics:{transition:"none"}}),YWe=ye({pointerEvents:"none",fill:"none",strokeWidth:"calc(var(--xy-edge-stroke-width) + 2)",strokeOpacity:.08,_noReduceGraphics:{transitionProperty:"stroke-width, stroke-opacity",transitionDuration:"fast",transitionTimingFunction:"inOut"},_whenHovered:{transitionTimingFunction:"out",strokeWidth:"calc(var(--xy-edge-stroke-width) + 4)",strokeOpacity:.2},_whenSelected:{strokeWidth:"calc(var(--xy-edge-stroke-width) + 6)",strokeOpacity:.25,_whenHovered:{strokeOpacity:.4}}}),WWe=ye({fill:"[var(--xy-edge-stroke)]",stroke:"[var(--xy-edge-stroke)]"}),GWe=ye({fill:"none",strokeDashoffset:0,_noReduceGraphics:{animationStyle:"xyedgeAnimated",animationPlayState:"paused",transition:"stroke 130ms ease-out,stroke-width 130ms ease-out"},":where([data-edge-dir='back']) &":{animationDirection:"reverse"},_whenHovered:{_noReduceGraphics:{animationPlayState:"running",animationDelay:"450ms"}},[`:where(${qWe}, [data-edge-active='true'], [data-edge-animated='true']) &`]:{_noReduceGraphics:{animationPlayState:"running",animationDelay:"0ms"}},_whenDimmed:{animationPlayState:"paused"},_smallZoom:{animationName:"none"},_whenPanning:{strokeDasharray:"none !important",animationPlayState:"paused"}});function Ry({className:e,component:r="g",data:{color:n="gray",hovered:o=!1,active:a=!1,dimmed:i=!1,...l},children:s,style:c}){const u={className:Je(e,VWe,"likec4-edge-container"),"data-likec4-color":n,"data-edge-dir":l.dir??"forward","data-edge-active":a,"data-edge-animated":a,"data-likec4-hovered":o,...i!==!1&&{"data-likec4-dimmed":i}};return r==="svg"?y.jsx("svg",{style:c,...u,children:s}):(nt(r==="g",'EdgeContainer: component must be "g" or "svg"'),y.jsx("g",{style:c,...u,children:s}))}const XWe=e=>y.jsx("marker",{viewBox:"-4 -4 14 16",refX:5,refY:4,markerWidth:"7",markerHeight:"8",preserveAspectRatio:"xMaxYMid meet",orient:"auto-start-reverse",...e,children:y.jsx("path",{d:"M0,0 L7,4 L0,8 L4,4 Z",stroke:"context-stroke",fill:"context-stroke",strokeDasharray:0,strokeWidth:1,strokeLinecap:"round"})}),KWe=e=>y.jsx("marker",{viewBox:"-1 -1 12 10",refX:4,refY:3,markerWidth:"8",markerHeight:"6",preserveAspectRatio:"xMaxYMid meet",orient:"auto-start-reverse",...e,children:y.jsx("path",{d:"M 0 0 L 8 3 L 0 6 L 1 3 z",fill:"context-stroke",strokeWidth:0})}),ZWe=e=>y.jsx("marker",{viewBox:"-1 -1 12 12",refX:8,refY:4,markerWidth:"8",markerHeight:"8",preserveAspectRatio:"xMaxYMid meet",orient:"auto-start-reverse",...e,children:y.jsx("path",{d:"M 8 0 L 0 4 L 8 8 M 8 4 L 0 4",fill:"none",strokeWidth:1})}),QWe=e=>y.jsx("marker",{viewBox:"-1 -1 12 10",refX:4,refY:3,markerWidth:"8",markerHeight:"6",preserveAspectRatio:"xMaxYMid meet",orient:"auto-start-reverse",...e,children:y.jsx("path",{d:"M 0 0 L 8 3 L 0 6 L 1 3 z",stroke:"context-stroke",fill:"context-stroke",strokeWidth:1.25,strokeLinejoin:"miter",strokeLinecap:"square"})}),JWe=e=>y.jsx("marker",{viewBox:"-4 -4 16 14",refX:5,refY:4,markerWidth:"10",markerHeight:"8",preserveAspectRatio:"xMaxYMid meet",orient:"auto-start-reverse",...e,children:y.jsx("path",{d:"M5,0 L10,4 L5,8 L0,4 Z",fill:"context-stroke",strokeWidth:0,strokeLinecap:"round"})}),eGe=e=>y.jsx("marker",{viewBox:"-4 -4 16 14",refX:6,refY:4,markerWidth:"10",markerHeight:"8",preserveAspectRatio:"xMaxYMid meet",orient:"auto-start-reverse",...e,children:y.jsx("path",{d:"M5,0 L10,4 L5,8 L0,4 Z",stroke:"context-stroke",fill:"context-stroke",strokeWidth:1.25,strokeLinecap:"round"})}),tGe=e=>y.jsx("marker",{viewBox:"0 0 10 10",refX:4,refY:4,markerWidth:"6",markerHeight:"6",...e,children:y.jsx("circle",{strokeWidth:0,fill:"context-stroke",cx:4,cy:4,r:3})}),rGe=e=>y.jsx("marker",{viewBox:"0 0 10 10",refX:4,refY:4,markerWidth:"6",markerHeight:"6",...e,children:y.jsx("circle",{strokeWidth:1.25,stroke:"context-stroke",fill:"context-stroke",cx:4,cy:4,r:3})}),UJ={Arrow:KWe,Crow:ZWe,OArrow:QWe,Open:XWe,Diamond:JWe,ODiamond:eGe,Dot:tGe,ODot:rGe};function qJ(e){if(!(!e||e==="none"))switch(e){case"normal":return"Arrow";case"crow":return"Crow";case"onormal":return"OArrow";case"diamond":return"Diamond";case"odiamond":return"ODiamond";case"open":case"vee":return"Open";case"dot":return"Dot";case"odot":return"ODot";default:Xa(e)}}const Ay=E.forwardRef(({edgeProps:{id:e,data:{line:r,dir:n,tail:o,head:a},selectable:i=!0,style:l,interactionWidth:s},onEdgePointerDown:c,strokeWidth:u,svgPath:d},p)=>{let f=qJ(o),g=qJ(a??"normal");n==="back"&&([f,g]=[g,f]);const b=f?UJ[f]:null,x=g?UJ[g]:null,w=r==="dotted",k=w||r==="dashed";let C;return w?C="1,8":k&&(C="8,10"),y.jsxs(y.Fragment,{children:[i&&y.jsx("path",{className:Je("react-flow__edge-interaction","hide-on-reduced-graphics",ye({fill:"none"})),d,style:{strokeWidth:s??10,stroke:"currentcolor",strokeOpacity:0}}),y.jsxs("g",{className:WWe,onPointerDown:c,children:[y.jsxs("defs",{children:[b&&y.jsx(b,{id:"start"+e}),x&&y.jsx(x,{id:"end"+e})]}),y.jsx("path",{className:Je("react-flow__edge-path","hide-on-reduced-graphics",YWe),d,style:l,strokeLinecap:"round"}),y.jsx("path",{ref:p,className:Je("react-flow__edge-path",i&&"react-flow__edge-interaction",GWe),d,style:l,strokeWidth:u,strokeLinecap:"round",strokeDasharray:C,markerStart:b?`url(#start${e})`:void 0,markerEnd:x?`url(#end${e})`:void 0})]})]})});Ay.displayName="EdgePath";const VJ=e=>{if(e!==void 0)return nq(e)?`${Math.round(e)}px`:e};function B2({edgeProps:{id:e,data:{hovered:r=!1,active:n=!1,dimmed:o=!1,labelBBox:a,color:i="gray"}},labelPosition:l,className:s,style:c,children:u,...d}){let p=MC(E.useCallback(x=>x.edgeLookup.get(e)?.zIndex??dl.Edge,[e]));(r||n)&&(p+=100);let f=l?.x??a?.x,g=l?.y??a?.y;if(f===void 0||g===void 0)return null;const b=l?.translate;return y.jsx(OU,{children:y.jsx("div",{...d,className:Je("nodrag nopan","likec4-edge-label-container",s),"data-likec4-hovered":r,"data-likec4-color":i,"data-edge-active":n,"data-edge-animated":n,...o!==!1&&{"data-likec4-dimmed":o},style:{...a&&{maxWidth:a.width+18},zIndex:p,...c,transform:`translate(${VJ(f)}, ${VJ(g)}) ${b||""}`},children:u},e)})}const nGe=LT(e=>{const r=Sy(),{enableNavigateTo:n}=wr(),{data:{navigateTo:o,relations:a,existsInCurrentView:i}}=e,[l,s,c]=kx(e),u=Wt(),d=a.length>1||!i,p=d?{...e,data:{...e.data,line:"solid",color:"amber"}}:e;let f=y.jsx(Ty,{edgeProps:p,className:ye({transition:"fast"}),children:n&&o&&y.jsx(j2,{...e,onClick:g=>{g.stopPropagation(),u.navigateTo(o)}})});return i||(f=y.jsx(fo,{color:"orange",c:"black",label:"This relationship is not included in the current view",portalProps:{target:`#${r.rootElementId}`},openDelay:800,children:f})),y.jsxs(Ry,{...p,children:[y.jsx(Ay,{edgeProps:p,svgPath:l,...d&&{strokeWidth:5}}),y.jsx(B2,{edgeProps:p,labelPosition:{x:s,y:c,translate:"translate(-50%, 0)"},style:{maxWidth:Math.min(Math.abs(e.targetX-e.sourceX-70),250)},children:f})]})}),oGe=ye({width:"100%",height:"100%",border:"3px dashed",borderColor:"mantine.colors.defaultBorder",borderRadius:"md",display:"flex",justifyContent:"center",alignItems:"center"});function aGe({data:{column:e}}){return y.jsx(Se,{className:oGe,children:y.jsxs(wt,{c:"dimmed",fz:"lg",fw:500,children:["No ",e==="incomers"?"incoming":"outgoing"]})})}const iGe=e=>e.context.view.id;function F2(){const e=Jf();return wn(e,iGe)}/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const lGe=[["path",{d:"M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11",key:"svg-0"}]],sGe=yt("outline","bolt","Bolt",lGe),cGe=Uo({position:"absolute",zIndex:1,justifyContent:"center",alignItems:"center",_smallZoom:{display:"none"}}),uGe=Uo({gap:"1.5",justifyContent:"center",alignItems:"center"});function H2({selected:e=!1,data:{hovered:r=!1},buttons:n}){const o=Ta();return n.length?y.jsx(qr,{className:cGe,style:{top:"calc(100% - 30px)",transform:"translateX(-50%)",left:"50%",width:"auto",minHeight:30},children:y.jsx(Qr,{layoutRoot:!0,initial:!1,style:{originY:0},animate:{opacity:r||e?1:.75,scale:r?1.1:e?.9:.8,y:r||e?6:0},"data-likec4-hovered":r,className:Je("nodrag nopan",uGe),children:n.map((a,i)=>y.jsx(or,{component:fl,className:E2({}),initial:!1,whileTap:{scale:1},whileHover:{scale:1.3},onClick:a.onClick,onDoubleClick:cn,children:a.icon||y.jsx(sGe,{})},`${o}-${a.key??i}`))},`${o}-action-buttons`)}):null}/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const dGe=[["path",{d:"M3 6a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-0"}],["path",{d:"M21 11v-3a2 2 0 0 0 -2 -2h-6l3 3m0 -6l-3 3",key:"svg-1"}],["path",{d:"M3 13v3a2 2 0 0 0 2 2h6l-3 -3m0 6l3 -3",key:"svg-2"}],["path",{d:"M15 18a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-3"}]],Ny=yt("outline","transform","Transform",dGe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const pGe=[["path",{d:"M4 21v-4a3 3 0 0 1 3 -3h5",key:"svg-0"}],["path",{d:"M9 17l3 -3l-3 -3",key:"svg-1"}],["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-2"}],["path",{d:"M5 11v-6a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2h-9.5",key:"svg-3"}]],fm=yt("outline","file-symlink","FileSymlink",pGe),hGe=e=>{const{enableNavigateTo:r,enableVscode:n}=wr(),o=Wt(),a=F2(),i=Sy(),l=O2(d=>d.context.subject),s=[],{navigateTo:c,fqn:u}=e.data;return c&&r&&a!==c&&s.push({key:"navigate",icon:y.jsx(gi,{}),onClick:d=>{d.stopPropagation(),o.navigateTo(c)}}),u!==l&&s.push({key:"relationships",icon:y.jsx(Ny,{}),onClick:d=>{d.stopPropagation(),i.navigateTo(u,e.id)}}),n&&s.push({key:"goToSource",icon:y.jsx(fm,{}),onClick:d=>{d.stopPropagation(),o.openSource({element:u})}}),y.jsx(H2,{buttons:s,...e})};function Dy({nodeProps:{data:{hovered:e=!1,dimmed:r=!1,...n}},className:o,children:a,style:i,...l}){let s=Ki(n.style.opacity??100,{min:0,max:100});const c=s<99,u=65,d=u+Ki((100-u)*(s/100),{min:0,max:100-u}),p=_Ve({isTransparent:c,inverseColor:s<60,borderStyle:n.style.border??(c?"dashed":"none")}),f=Ki(n.depth??1,{min:1,max:5});return y.jsx(Qr,{className:Je(p,o),initial:!1,"data-likec4-hovered":e,"data-likec4-color":n.color,"data-compound-depth":f,...r!==!1&&{"data-likec4-dimmed":r},style:{...i,"--_border-transparency":`${d}%`,"--_compound-transparency":`${s}%`},...l,children:a})}function $y({data:e}){const r=q3({element:e,className:"likec4-compound-icon"});return y.jsxs("div",{className:"likec4-compound-title-container",children:[r,y.jsx(wt,{component:"h3",className:"likec4-compound-title",truncate:"end",children:e.title})]})}const YJ=J1({base:{transitionDuration:"normal"},variants:{delay:{true:{transitionDelay:{base:"0.2s",_hover:"0s"}}}}});/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const fGe=[["path",{d:"M3 4m0 3a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v10a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3z",key:"svg-0"}],["path",{d:"M9 10m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M15 8l2 0",key:"svg-2"}],["path",{d:"M15 12l2 0",key:"svg-3"}],["path",{d:"M7 16l10 0",key:"svg-4"}]],BT=yt("outline","id","Id",fGe);function WJ({data:{hovered:e=!1},icon:r,onClick:n}){const o=t9(e,e?130:0)[0]&&e;return y.jsx(Qr,{initial:!1,animate:{scale:o?1.2:1},whileHover:{scale:1.4},whileTap:{scale:1},className:"likec4-compound-details details-button",children:y.jsx(or,{className:Je("nodrag nopan",YJ({delay:e&&!o}),E2({variant:"transparent"})),onClick:n,onDoubleClick:cn,children:r??y.jsx(BT,{stroke:1.8,style:{width:"75%"}})})})}const mGe=ye({position:"relative",width:"100%",height:"100%",padding:"0",margin:"0",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",_before:{content:'" "',position:"absolute",top:"[calc(100% - 4px)]",left:"0",width:"100%",height:"24px",background:"[transparent]",pointerEvents:"all"},_focusVisible:{outline:"none"},_reduceGraphicsOnPan:{_before:{display:"none"}},":where(.react-flow__node.selectable:not(.dragging)) &":{cursor:"pointer"}}),mm=E.forwardRef(({nodeProps:{selected:e=!1,selectable:r=!1,data:{hovered:n=!1,dimmed:o=!1,...a}},className:i,style:l,children:s,...c},u)=>{let d=1;switch(!0){case n:d=1.05;break;case e:d=1.02;break}const{size:p,padding:f,textSize:g}=e3(a.style??{});return y.jsx(Qr,{ref:u,className:Je(mGe,"group","likec4-element-node",i),initial:!1,...r&&{animate:{scale:d},whileTap:{scale:.98}},"data-likec4-hovered":n,"data-likec4-color":a.color,"data-likec4-shape":a.shape,"data-likec4-shape-size":p,"data-likec4-spacing":f,"data-likec4-text-size":g,...o!==!1&&{"data-likec4-dimmed":o},style:{...l},...c,children:s})});mm.displayName="ElementNodeContainer";function GJ(e,r,n=.065){const o=Math.round(e/2),a=o,i=yi(n*o),l=r-2*i;return{path:` M ${e},${i} + a ${a},${i} 0,0,0 ${-e} 0 + l 0,${l} + a ${a},${i} 0,0,0 ${e} 0 + l 0,${-l} + z + `.replace(/\s+/g," ").trim(),ry:i,rx:a}}function XJ(e,r,n=.185){const o=r,a=Math.round(o/2),i=yi(o/2*n),l=e-2*i;return{path:` + M ${i},0 + a ${i},${a} 0,0,0 0 ${o} + l ${l},0 + a ${i},${a} 0,0,0 0 ${-o} + z`.replace(/\s+/g," ").trim(),ry:a,rx:i}}const fp={width:115,height:120,path:"M57.9197 0C10.9124 0 33.5766 54.75 33.5766 54.75C38.6131 62.25 45.3285 60.75 45.3285 66C45.3285 70.5 39.4526 72 33.5766 72.75C24.3431 72.75 15.9489 71.25 7.55474 84.75C2.51825 93 0 120 0 120H115C115 120 112.482 93 108.285 84.75C99.8905 70.5 91.4963 72.75 82.2628 72C76.3869 71.25 70.5109 69.75 70.5109 65.25C70.5109 60.75 77.2263 62.25 82.2628 54C82.2628 54.75 104.927 0 57.9197 0V0Z"};function KJ({shape:e,w:r,h:n}){switch(e){case"mobile":return y.jsxs(y.Fragment,{children:[y.jsx("rect",{width:r,height:n,rx:6,"data-likec4-fill":"mix-stroke",strokeWidth:0}),y.jsxs("g",{"data-likec4-fill":"fill",strokeWidth:0,children:[y.jsx("circle",{cx:17,cy:n/2,r:12}),y.jsx("rect",{x:33,y:12,width:r-44,height:n-24,rx:5})]})]});case"browser":return y.jsxs(y.Fragment,{children:[y.jsx("rect",{width:r,height:n,rx:6,"data-likec4-fill":"mix-stroke",strokeWidth:0}),y.jsxs("g",{"data-likec4-fill":"fill",strokeWidth:0,children:[y.jsx("circle",{cx:16,cy:17,r:7}),y.jsx("circle",{cx:36,cy:17,r:7}),y.jsx("circle",{cx:56,cy:17,r:7}),y.jsx("rect",{x:70,y:8,width:r-80,height:17,rx:4}),y.jsx("rect",{x:10,y:32,width:r-20,height:n-42,rx:4})]})]});case"person":return y.jsxs(y.Fragment,{children:[y.jsx("rect",{width:r,height:n,rx:6,strokeWidth:0}),y.jsx("svg",{x:r-fp.width-6,y:n-fp.height,width:fp.width,height:fp.height,viewBox:`0 0 ${fp.width} ${fp.height}`,"data-likec4-fill":"mix-stroke",children:y.jsx("path",{strokeWidth:0,d:fp.path})})]});case"queue":{const{path:o,rx:a,ry:i}=XJ(r,n);return y.jsxs(y.Fragment,{children:[y.jsx("path",{d:o,strokeWidth:2}),y.jsx("ellipse",{cx:a,cy:i,ry:i-.75,rx:a,"data-likec4-fill":"mix-stroke",strokeWidth:2})]})}case"storage":case"cylinder":{const{path:o,rx:a,ry:i}=GJ(r,n);return y.jsxs(y.Fragment,{children:[y.jsx("path",{d:o,strokeWidth:2}),y.jsx("ellipse",{cx:a,cy:i,ry:i,rx:a-.75,"data-likec4-fill":"mix-stroke",strokeWidth:2})]})}default:return Xa(e)}}function gGe({shape:e,w:r,h:n}){let o;switch(e){case"queue":o=y.jsx("path",{d:XJ(r,n).path});break;case"storage":case"cylinder":{o=y.jsx("path",{d:GJ(r,n).path});break}default:{o=y.jsx("rect",{x:-1,y:-1,width:r+2,height:n+2,rx:6});break}}return y.jsx("g",{className:"likec4-shape-outline",children:o})}function yGe({multiple:e,withOutLine:r}){return y.jsxs("div",{className:sQ({shapetype:"html"}),children:[e&&y.jsx("div",{className:"likec4-shape-multiple"}),r&&y.jsx("div",{className:"likec4-shape-outline"})]})}function gm({data:e,width:r,height:n,showSeletionOutline:o=!0}){let a=r&&r>10?r:e.width,i=n&&n>10?n:e.height;const l=e.style?.multiple??!1;if(e.shape==="rectangle")return y.jsx(yGe,{multiple:l,withOutLine:o});const s=sQ({shapetype:"svg"});return y.jsxs(y.Fragment,{children:[l&&y.jsx("svg",{className:s,"data-likec4-shape-multiple":"true",viewBox:`0 0 ${a} ${i}`,children:y.jsx(KJ,{shape:e.shape,w:a,h:i})}),y.jsxs("svg",{className:s,viewBox:`0 0 ${a} ${i}`,children:[o&&y.jsx(gGe,{shape:e.shape,w:a,h:i}),y.jsx(KJ,{shape:e.shape,w:a,h:i})]})]})}const mp=E.forwardRef(({value:e,textScale:r=1,uselikec4palette:n=!1,hideIfEmpty:o=!1,emptyText:a="no content",className:i,style:l,fontSize:s,...c},u)=>{if(e.isEmpty&&o)return null;const d=e.nonEmpty?e.isMarkdown?{dangerouslySetInnerHTML:{__html:e.html}}:{children:y.jsx("p",{children:e.text})}:{children:y.jsx(wt,{component:"span",fz:"xs",c:"dimmed",style:{userSelect:"none"},children:a})};return y.jsx(qr,{ref:u,...c,className:Je(TVe({uselikec4palette:n,value:e.isMarkdown?"markdown":"plaintext"}),i),style:{...l,...s&&{"--text-fz":`var(--font-sizes-${s}, var(--font-sizes-md))`},"--mantine-scale":r},...d})});mp.displayName="Markdown";const ZJ=E.forwardRef(({className:e,...r},n)=>y.jsx("div",{...r,ref:n,className:Je(e,SVe(),"likec4-element")})),QJ=({data:e,...r})=>y.jsx(q3,{element:e,...r}),JJ=E.forwardRef(({className:e,...r},n)=>y.jsx("div",{...r,className:Je(e,"likec4-element-node-content"),ref:n})),eee=E.forwardRef(({data:{title:e,style:r},className:n,...o},a)=>{const{size:i}=e3(r),l=i==="sm"||i==="xs";return y.jsx(wt,{component:"div",...o,className:Je(n,"likec4-element-title"),"data-likec4-node-title":"",lineClamp:l?2:3,ref:a,children:e})}),tee=E.forwardRef(({data:e,children:r,className:n,...o},a)=>{const i=e?.technology??r;return Sa(i)?y.jsx(wt,{component:"div",...o,className:Je(n,"likec4-element-technology"),"data-likec4-node-technology":"",ref:a,children:i}):null}),ree=E.forwardRef(({data:{description:e,style:r},className:n,...o},a)=>{if(!e?.nonEmpty)return null;const{size:i}=e3(r),l=i==="sm"||i==="xs";return y.jsx(mp,{...o,className:Je(n,"likec4-element-description"),"data-likec4-node-description":"",value:e,uselikec4palette:!0,hideIfEmpty:!0,maxHeight:e.isMarkdown?"8rem ":void 0,lineClamp:l?3:5,ref:a})});function ml({iconSize:e,data:r}){return y.jsxs(ZJ,{style:nq(e)?{"--likec4-icon-size":`${e}px`}:void 0,children:[y.jsx(QJ,{data:r}),y.jsxs(JJ,{children:[y.jsx(eee,{data:r}),y.jsx(tee,{data:r}),y.jsx(ree,{data:r})]})]})}ml.Root=ZJ,ml.Icon=QJ,ml.Content=JJ,ml.Title=eee,ml.Technology=tee,ml.Description=ree;const bGe=ye({position:"absolute",top:"0.5",right:"0.5",_shapeBrowser:{right:"[5px]"},_shapeCylinder:{top:"[14px]"},_shapeStorage:{top:"[14px]"},_shapeQueue:{top:"[1px]",right:"3"},_smallZoom:{display:"none"}});function FT({selected:e=!1,data:{hovered:r=!1},icon:n,onClick:o}){const a=Ta();return y.jsx(qr,{className:Je(bGe,"details-button"),children:y.jsx(or,{className:Je("nodrag nopan",E2({variant:"transparent"})),component:fl,initial:!1,style:{originX:.45,originY:.55},animate:r||e?{scale:1.2,opacity:.8}:{scale:1,opacity:.5},whileHover:{scale:1.4,opacity:1},whileTap:{scale:1.15},onClick:o,onDoubleClick:cn,children:n??y.jsx(BT,{stroke:1.8,style:{width:"75%"}})},a)})}const vGe=e=>{const r=Wt();return y.jsx(FT,{...e,onClick:n=>{n.stopPropagation(),r.openElementDetails(e.data.fqn)}})};function xGe(e){const{enableElementTags:r}=wr();return y.jsxs(mm,{layoutId:e.id,nodeProps:e,children:[y.jsx(gm,{...e}),y.jsx(ml,{...e}),r&&y.jsx(Ey,{...e}),y.jsx(vGe,{...e}),y.jsx(hGe,{...e}),y.jsx(kGe,{...e})]},e.id)}function wGe(e){const r=Wt();return y.jsxs(Dy,{layoutId:e.id,nodeProps:e,children:[y.jsx($y,{...e}),y.jsx(WJ,{...e,onClick:n=>{n.stopPropagation(),r.openElementDetails(e.data.fqn)}}),y.jsx(_Ge,{...e})]},e.id)}const kGe=({data:{ports:e,height:r}})=>y.jsxs(y.Fragment,{children:[e.in.map((n,o)=>y.jsx(uo,{id:n,type:"target",position:tt.Left,style:{visibility:"hidden",top:`${15+(o+1)*((r-30)/(e.in.length+1))}px`}},n)),e.out.map((n,o)=>y.jsx(uo,{id:n,type:"source",position:tt.Right,style:{visibility:"hidden",top:`${15+(o+1)*((r-30)/(e.out.length+1))}px`}},n))]}),_Ge=({data:e})=>y.jsxs(y.Fragment,{children:[e.ports.in.map((r,n)=>y.jsx(uo,{id:r,type:"target",position:tt.Left,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r)),e.ports.out.map((r,n)=>y.jsx(uo,{id:r,type:"source",position:tt.Right,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r))]});/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const EGe=[["path",{d:"M15 6l-6 6l6 6",key:"svg-0"}]],nee=yt("outline","chevron-left","ChevronLeft",EGe),SGe={element:xGe,compound:wGe,empty:aGe},CGe={relationship:nGe};function oee({actorRef:e}){const r=E.useRef(null);return r.current==null&&(r.current={initialNodes:[],initialEdges:[]}),y.jsx(MQ.Provider,{value:e,children:y.jsx(Px,{...r.current,children:y.jsx(dm,{id:e.sessionId,inherit:!1,children:y.jsx($a,{children:y.jsx(AGe,{})})})})})}const TGe=e=>({isActive:e.hasTag("active"),nodes:e.context.xynodes,edges:e.context.xyedges}),RGe=(e,r)=>e.isActive===r.isActive&&Gn(e.nodes,r.nodes)&&Gn(e.edges,r.edges),AGe=E.memo(()=>{const e=Sy(),{isActive:r,nodes:n,edges:o}=O2(TGe,RGe);return y.jsx(UC,{id:e.rootElementId,nodes:n,edges:o,className:Je(r?"initialized":"not-initialized","relationships-browser"),nodeTypes:SGe,edgeTypes:CGe,fitView:!1,onNodeClick:it((a,i)=>{a.stopPropagation(),e.send({type:"xyflow.nodeClick",node:i})}),onEdgeClick:it((a,i)=>{a.stopPropagation(),e.send({type:"xyflow.edgeClick",edge:i})}),onPaneClick:it(a=>{a.stopPropagation(),e.send({type:"xyflow.paneClick"})}),onDoubleClick:it(a=>{e.send({type:"xyflow.paneDblClick"})}),onViewportResize:it(()=>{e.send({type:"xyflow.resized"})}),onNodesChange:it(a=>{e.send({type:"xyflow.applyNodeChanges",changes:a})}),onEdgesChange:it(a=>{e.send({type:"xyflow.applyEdgeChanges",changes:a})}),onEdgeMouseEnter:it((a,i)=>{i.data.hovered||e.send({type:"xyflow.edgeMouseEnter",edge:i})}),onEdgeMouseLeave:it((a,i)=>{i.data.hovered&&e.send({type:"xyflow.edgeMouseLeave",edge:i})}),onSelectionChange:it(a=>{e.send({type:"xyflow.selectionChange",...a})}),nodesDraggable:!1,pannable:!0,zoomable:!0,children:y.jsx(DGe,{})})}),NGe=e=>({subjectId:e.context.subject,viewId:e.context.viewId,scope:e.context.scope,closeable:e.context.closeable}),DGe=E.memo(()=>{const e=Sy(),{subjectId:r,viewId:n,scope:o,closeable:a}=O2(NGe),i=fr(),l=uf();E.useEffect(()=>{l.viewportInitialized&&e.send({type:"xyflow.init",instance:l,store:i})},[i,l.viewportInitialized,e]);const s=AWe(r,n,o),[c,u,{history:d,current:p}]=Yq(r);E.useEffect(()=>{c!==r&&u.set(r)},[r]),E.useEffect(()=>{c!==r&&e.navigateTo(c)},[c,e]),HB(()=>{e.updateView(s)},[s,e]);const f=p>0,g=p+1u.back(),onStepForward:()=>u.forward()}),a&&y.jsx(ou,{position:"top-right",children:y.jsx(or,{variant:"default",color:"gray",onClick:b=>{b.stopPropagation(),e.close()},children:y.jsx(Hf,{})})})]})}),$Ge=({hasStepBack:e,hasStepForward:r,onStepBack:n,onStepForward:o})=>y.jsx(ou,{position:"top-left",children:y.jsxs(Ur,{gap:4,wrap:"nowrap",children:[y.jsxs($a,{mode:"popLayout",children:[e&&y.jsx(cl.div,{layout:!0,initial:{opacity:.05,transform:"translateX(-5px)"},animate:{opacity:1,transform:"translateX(0)"},exit:{opacity:.05,transform:"translateX(-10px)"},children:y.jsx(or,{variant:"default",color:"gray",onClick:a=>{a.stopPropagation(),n()},children:y.jsx(nee,{})})},"back"),r&&y.jsx(cl.div,{layout:!0,initial:{opacity:.05,transform:"translateX(5px)"},animate:{opacity:1,transform:"translateX(0)"},exit:{opacity:0,transform:"translateX(5px)"},children:y.jsx(or,{variant:"default",color:"gray",onClick:a=>{a.stopPropagation(),o()},children:y.jsx(pp,{})})},"forward")]}),y.jsx(zWe,{})]})}),PGe=ye({display:"inline-block",fontSize:"sm",fontWeight:500,whiteSpace:"nowrap",padding:"[3px 6px]",borderRadius:3,background:"var(--likec4-palette-fill)/75",lineHeight:1.2,color:"var(--likec4-palette-hiContrast)"}),OGe=ye({_light:{background:"mantine.colors.gray[1]","&[data-missing":{}},"&[data-missing]":{color:"mantine.colors.orange[4]",background:"mantine.colors.orange[8]/15",borderColor:"mantine.colors.orange[5]/20",_light:{color:"mantine.colors.orange[8]"}}}),MGe=ye({flex:"1 1 100%",position:"relative",width:"100%",height:"100%",background:"mantine.colors.body",border:"1px solid {colors.mantine.colors.defaultBorder}",borderRadius:"sm",_light:{borderColor:"mantine.colors.gray[3]",background:"mantine.colors.gray[1]"}});ye({_before:{content:'"scope:"',position:"absolute",top:"0",left:"2",fontSize:"xxs",fontWeight:500,lineHeight:"1",color:"mantine.colors.dimmed",opacity:.85,transform:"translateY(-100%) translateY(-2px)"},_light:{"& .mantine-SegmentedControl-root":{background:"mantine.colors.gray[3]"}}}),ye({display:"inline-block",fontSize:"xl",fontWeight:600,padding:"[1px 5px]",minWidth:24,textAlign:"center",borderRadius:"sm",background:"mantine.colors.dark[7]",color:"mantine.colors.defaultColor","&[data-zero]":{color:"mantine.colors.dimmed"},"&[data-missing]":{color:"mantine.colors.orange[4]",background:"mantine.colors.orange[8]/20"}});/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const IGe=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M13 18l6 -6",key:"svg-1"}],["path",{d:"M13 6l6 6",key:"svg-2"}]],ym=yt("outline","arrow-right","ArrowRight",IGe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const LGe=[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]],aee=yt("outline","external-link","ExternalLink",LGe),zGe=fo.withProps({color:"dark",fz:"xs",openDelay:600,closeDelay:120,label:"",children:null,offset:8,withinPortal:!1});function jGe({node:e,element:r}){const n=qG(),o=kVe(),a=wn(o,d=>d.children[`${o.id}-relationships`]),i=[...r.incoming()].map(d=>d.id),l=[...r.outgoing()].map(d=>d.id),s=e?Y8([...e.incoming()].flatMap(d=>d.$edge.relations)):[],c=e?Y8([...e.outgoing()].flatMap(d=>d.$edge.relations)):[],u=[...i,...l].filter(d=>!s.includes(d)&&!c.includes(d)).length;return y.jsxs(ra,{gap:"xs",pos:"relative",w:"100%",h:"100%",children:[i.length+l.length>0&&y.jsxs(Ur,{gap:"xs",wrap:"nowrap",align:"center",children:[y.jsx(Se,{children:y.jsxs(Ur,{gap:8,mb:4,wrap:"nowrap",children:[y.jsx(iee,{title:"incoming",total:i.length,included:s.length}),y.jsx(ci,{size:"sm",variant:"transparent",c:"dimmed",children:y.jsx(ym,{style:{width:16}})}),y.jsx(wt,{className:PGe,children:g1(r.id)}),y.jsx(ci,{size:"sm",variant:"transparent",c:"dimmed",children:y.jsx(ym,{style:{width:16}})}),y.jsx(iee,{title:"outgoing",total:l.length,included:c.length})]})}),u>0&&y.jsx(zGe,{label:"Current view does not include some relationships",children:y.jsxs(Ur,{mt:"xs",gap:6,c:"orange",style:{cursor:"pointer"},children:[y.jsx(FC,{style:{width:14}}),y.jsxs(wt,{fz:"sm",children:[u," relationship",u>1?"s are":" is"," hidden"]})]})})]}),y.jsx(Se,{className:MGe,children:a&&y.jsxs(y.Fragment,{children:[y.jsx(oee,{actorRef:a}),y.jsx(Se,{pos:"absolute",top:12,right:12,children:y.jsx(or,{size:"md",variant:"default",radius:"sm",onClick:d=>{d.stopPropagation();const{subject:p,scope:f,viewId:g}=a.getSnapshot().context;n.send({type:"open.relationshipsBrowser",subject:p,scope:f,viewId:g})},children:y.jsx(aee,{stroke:1.6,style:{width:"70%"}})})})]})})]})}function iee({title:e,total:r,included:n}){return y.jsx(Nf,{withBorder:!0,shadow:"none",className:OGe,px:"md",py:"xs",radius:"md",mod:{zero:r===0,missing:r!==n},children:y.jsxs(ra,{gap:4,align:"flex-end",children:[y.jsx(wt,{component:"div",c:r!==n?"orange":"dimmed",tt:"uppercase",fw:600,fz:10,lh:1,children:e}),y.jsx(wt,{fw:600,fz:"xl",component:"div",lh:1,children:r!==n?y.jsxs(y.Fragment,{children:[n," / ",r]}):y.jsx(y.Fragment,{children:r})})]})})}const BGe=ye({marginTop:"sm",marginBottom:"sm"}),FGe=ye({display:"inline-flex",transition:"fast",border:"1px dashed",borderColor:"mantine.colors.defaultBorder",borderRadius:"sm",px:"md",py:"xs",alignItems:"center",cursor:"pointer",color:"mantine.colors.gray[7]",_dark:{color:"mantine.colors.dark[1]"},"& > *":{transition:"fast"},_hover:{transitionTimingFunction:"out",borderStyle:"solid",color:"mantine.colors.defaultColor",background:"mantine.colors.defaultHover","& > *":{transitionTimingFunction:"out",transform:"translateX(1px)"}}}),HT=({element:e})=>y.jsx(Se,{className:FGe,children:y.jsx(wt,{component:"div",fz:"sm",fw:"500",children:e.title})}),HGe=()=>{};function UGe({element:e}){const r=Y0({multiple:!1});r.setHoveredNode=HGe;const n=E.useMemo(()=>{let o=1;const a=l=>({label:l,value:`msg${o++}`,type:"message",children:[]}),i={label:y.jsx(HT,{type:"current",element:e}),value:e.id,element:e,type:"current",children:[...e.children()].map(l=>({label:y.jsx(HT,{type:"descedant",element:l}),value:l.id,element:l,type:"descedant",children:[]}))};return i.children.length===0&&i.children.push(a(y.jsx(Uw,{radius:"sm",children:"no nested"}))),[[...e.ancestors()].reduce((l,s)=>({label:y.jsx(HT,{type:"ancestor",element:s}),value:s.id,element:s,type:"ancestor",children:[l]}),i)]},[e]);return E.useEffect(()=>{r.expandAllNodes()},[n]),y.jsxs(y.Fragment,{children:[y.jsxs(Pw,{variant:"light",color:"orange",title:"In development",icon:y.jsx(FC,{}),children:["We need your feedback. Share your thoughts and ideas -"," ",y.jsx(r7,{fz:"sm",fw:500,underline:"hover",c:"orange",href:"https://github.com/likec4/likec4/discussions/",target:"_blank",children:"GitHub discussions"})]}),y.jsx(Bf,{levelOffset:"xl",allowRangeSelection:!1,expandOnClick:!1,expandOnSpace:!1,classNames:{label:BGe},data:n,tree:r})]})}/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const qGe=[["path",{d:"M12 4l-8 4l8 4l8 -4l-8 -4",key:"svg-0"}],["path",{d:"M4 12l8 4l8 -4",key:"svg-1"}],["path",{d:"M4 16l8 4l8 -4",key:"svg-2"}]],UT=yt("outline","stack-2","Stack2",qGe),lee=If.withProps({mb:8,labelPosition:"left",variant:"dashed"}),see=fo.withProps({color:"dark",fz:"xs",openDelay:400,closeDelay:150,label:"",children:null,offset:4}),cee=wt.withProps({component:"div",fz:11,fw:500,c:"dimmed",lh:1}),Py=wt.withProps({component:"div",fz:"xs",c:"dimmed",className:vYe}),bm=24,VGe=["Properties","Relationships","Views","Structure","Deployments"];function YGe({viewId:e,fromNode:r,rectFromNode:n,fqn:o,onClose:a}){const[i,l]=E.useState(!1),s=_$e(),c=s.width||window.innerWidth||1200,u=s.height||window.innerHeight||800,[d,p]=b$e({key:"likec4:element-details:active-tab",defaultValue:"Properties"}),f=Wt(),g=AQ(),b=r?g.findNode(r):g.findNodeWithElement(o),x=g.$model.element(o),[w,k]=yn([...x.views()],Ro(Q=>Q.$view),lq(Q=>Q._type==="element"&&Q.viewOf===o));let C=b?.navigateTo?.$view??x.defaultView?.$view??null;C?.id===e&&(C=null);const _=zx(x.links),T=wVe(),R=(b?.$node.children?.length??0)>0,A=Math.min(700,c-bm*2),D=Math.min(650,u-bm*2),N=n?{x:n.x+(R?n.width-A/2:n.width/2),y:n.y+(R?0:n.height/2)}:{x:c/2,y:u/2},P=n?Math.min(n.width/A,n.height/D,.9):1,O=Math.round(Ki(N.x-A/2,{min:bm,max:c-A-bm})),B=Math.round(Ki(N.y-(R?0:60),{min:bm,max:u-D-bm})),L=Ki((N.x-O)/A,{min:.1,max:.9}),Y=Ki((N.y-B)/D,{min:.1,max:.9}),M=KZ(A),q=KZ(D);D2(()=>{M.set(A),q.set(D)},[A,D]);const I=E.useCallback((Q,z)=>{M.set(Math.max(M.get()+z.delta.x,320)),q.set(Math.max(q.get()+z.delta.y,300))},[]),U=E.useRef(null),V=Xh(a),G=V3(()=>{V.current()},[],50),F=b?.$node.notation??null,J=q3({element:{id:o,title:x.title,icon:b?.icon??x.icon},className:dYe});return W3(()=>{U.current?.open||U.current?.showModal()},20),W3(()=>{l(!0)},220),y.jsx(cl.dialog,{ref:U,className:Je(lYe,S0.classNames.fullWidth),layout:!0,initial:{[T2]:"0px",[R2]:"5%"},animate:{[T2]:"3px",[R2]:"60%"},exit:{[T2]:"0px",[R2]:"0%",transition:{duration:.1}},onClick:Q=>{Q.stopPropagation(),Q.target?.nodeName?.toUpperCase()==="DIALOG"&&U.current?.close()},onDoubleClick:cn,onPointerDown:cn,onClose:Q=>{Q.stopPropagation(),G()},children:y.jsx(S0,{forwardProps:!0,removeScrollBar:!1,children:y.jsxs(cl.div,{layout:!0,layoutRoot:!0,drag:!0,dragControls:T,dragElastic:0,dragMomentum:!1,dragListener:!1,"data-likec4-color":b?.color??x.color,className:sYe,initial:{top:B,left:O,width:A,height:D,opacity:0,originX:L,originY:Y,scale:Math.max(P,.65)},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9,translateY:-10,transition:{duration:.1}},style:{width:M,height:q},children:[y.jsxs("div",{className:cYe,onPointerDown:Q=>T.start(Q),children:[y.jsxs(xn,{alignItems:"start",justify:"space-between",gap:"sm",mb:"sm",flexWrap:"nowrap",children:[y.jsxs(xn,{alignItems:"start",gap:"sm",style:{cursor:"default"},flexWrap:"nowrap",children:[J,y.jsxs("div",{children:[y.jsx(wt,{component:"div",className:uYe,children:x.title}),F&&y.jsx(wt,{component:"div",c:"dimmed",fz:"sm",fw:500,lh:1.3,lineClamp:1,children:F})]})]}),y.jsx(Kd,{size:"lg",onClick:Q=>{Q.stopPropagation(),G()}})]}),y.jsxs(xn,{alignItems:"baseline",gap:"sm",flexWrap:"nowrap",children:[y.jsxs("div",{children:[y.jsx(cee,{children:"kind"}),y.jsx(Xs,{radius:"sm",size:"sm",fw:600,color:"gray",style:{cursor:"pointer"},onClick:Q=>{Q.stopPropagation(),f.openSearch(`kind:${x.kind}`)},children:x.kind})]}),y.jsxs("div",{style:{flex:1},children:[y.jsx(cee,{children:"tags"}),y.jsxs(Of,{gap:4,flex:1,mt:6,wrap:"wrap",children:[x.tags.map(Q=>y.jsx(C2,{tag:Q,cursor:"pointer",onClick:z=>{z.stopPropagation(),f.openSearch(`#${Q}`)}},Q)),x.tags.length===0&&y.jsx(Xs,{radius:"sm",size:"sm",fw:600,color:"gray",children:"—"})]})]}),y.jsxs(Tw,{style:{alignSelf:"flex-start"},children:[_&&y.jsx(or,{component:"a",href:_.url,target:"_blank",size:"lg",variant:"default",radius:"sm",children:y.jsx(aee,{stroke:1.6,style:{width:"65%"}})}),y.jsx(HWe,{feature:"Vscode",children:y.jsx(see,{label:"Open source",children:y.jsx(or,{size:"lg",variant:"default",radius:"sm",onClick:Q=>{Q.stopPropagation(),f.openSource({element:x.id})},children:y.jsx(fm,{stroke:1.8,style:{width:"62%"}})})})}),C&&y.jsx(see,{label:"Open default view",children:y.jsx(or,{size:"lg",variant:"default",radius:"sm",onClick:Q=>{Q.stopPropagation(),f.navigateTo(C.id,r??void 0)},children:y.jsx(gi,{style:{width:"70%"}})})})]})]})]}),y.jsxs(Jd,{value:d,onChange:Q=>p(Q),variant:"none",classNames:{root:fYe,list:mYe,tab:gYe,panel:yYe},children:[y.jsx(V0,{children:VGe.map(Q=>y.jsx(jf,{value:Q,children:Q},Q))}),y.jsx(Zs,{value:"Properties",children:y.jsx(ol,{scrollbars:"y",type:"scroll",offsetScrollbars:!0,children:y.jsxs(Se,{className:bYe,pt:"xs",children:[x.hasSummary&&y.jsxs(y.Fragment,{children:[y.jsx(Py,{children:"summary"}),y.jsx(mp,{value:x.summary})]}),y.jsxs(y.Fragment,{children:[y.jsx(Py,{children:"description"}),y.jsx(mp,{value:x.description,emptyText:"no description"})]}),x.technology&&y.jsx(WGe,{title:"technology",children:x.technology}),x.links.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(Py,{children:"links"}),y.jsx(xn,{gap:"xs",flexWrap:"wrap",children:x.links.map((Q,z)=>y.jsx(jC,{value:Q},z))})]}),x.$element.metadata&&y.jsx(GGe,{value:x.$element.metadata})]})})}),y.jsx(Zs,{value:"Relationships",children:y.jsx(hp,{overrides:{enableRelationshipBrowser:!1,enableNavigateTo:!1},children:i&&d==="Relationships"&&y.jsx(jGe,{element:x,node:b??null})})}),y.jsx(Zs,{value:"Views",children:y.jsx(ol,{scrollbars:"y",type:"auto",children:y.jsxs(ra,{gap:"lg",children:[w.length>0&&y.jsxs(Se,{children:[y.jsx(lee,{label:"views of the element (scoped)"}),y.jsx(ra,{gap:"sm",children:w.map(Q=>y.jsx(uee,{view:Q,onNavigateTo:z=>f.navigateTo(z,r??void 0)},Q.id))})]}),k.length>0&&y.jsxs(Se,{children:[y.jsx(lee,{label:"views including this element"}),y.jsx(ra,{gap:"sm",children:k.map(Q=>y.jsx(uee,{view:Q,onNavigateTo:z=>f.navigateTo(z,r??void 0)},Q.id))})]})]})})}),y.jsx(Zs,{value:"Structure",children:y.jsx(ol,{scrollbars:"y",type:"auto",children:y.jsx(UGe,{element:x})})}),y.jsx(Zs,{value:"Deployments",children:y.jsx(ol,{scrollbars:"y",type:"auto",children:y.jsx($Ye,{elementFqn:x.id})})})]}),y.jsx(cl.div,{className:xYe,drag:!0,dragElastic:0,dragMomentum:!1,onDrag:I,dragConstraints:{top:0,left:0,right:0,bottom:0}})]})})})}const uee=({view:e,onNavigateTo:r})=>y.jsx($r,{className:pYe,onClick:n=>r(e.id,n),children:y.jsxs(Ur,{gap:6,align:"start",wrap:"nowrap",children:[y.jsx(ci,{size:"sm",variant:"transparent",children:e._type==="deployment"?y.jsx(UT,{stroke:1.8}):y.jsx(gi,{stroke:1.8})}),y.jsx(Se,{children:y.jsx(wt,{component:"div",className:hYe,lineClamp:1,children:e.title||"untitled"})})]})});function WGe({title:e,emptyValue:r="undefined",children:n,style:o,...a}){return y.jsxs(y.Fragment,{children:[y.jsx(Py,{children:e}),y.jsx(wt,{component:"div",...rq(n)&&{c:"dimmed"},fz:"md",style:{whiteSpace:"preserve-breaks",userSelect:"all",...o},...a,children:n||r})]})}function GGe({value:e}){return y.jsxs(y.Fragment,{children:[y.jsx(Py,{children:"metadata"}),y.jsx(Se,{className:ye({flex:1,display:"grid",gridTemplateColumns:"min-content 1fr",gridAutoRows:"min-content max-content",gap:"[4px 4px]",alignItems:"baseline",justifyItems:"stretch",paddingRight:"xxs"}),children:B8(e).map(([r,n])=>y.jsxs("div",{style:{display:"contents"},className:"group",children:[y.jsxs("div",{className:ye({fontSize:"sm",fontWeight:500,justifySelf:"end",whiteSpace:"nowrap"}),children:[r,":"]}),y.jsx("div",{className:ye({}),children:y.jsx(ol.Autosize,{type:"auto",mah:200,classNames:{root:ye({transitionProperty:"all",transitionDuration:"fast",transitionTimingFunction:"inOut",rounded:"sm",color:"mantine.colors.gray[8]",_dark:{color:"mantine.colors.dark[1]"},_groupHover:{transitionTimingFunction:"out",color:"mantine.colors.defaultColor",background:"mantine.colors.defaultHover"}}),viewport:ye({overscrollBehavior:"none"})},children:y.jsx("div",{className:ye({fontSize:"sm",padding:"xxs",whiteSpace:"pre",fontFamily:"mono",userSelect:"all"}),children:n})})})]},r))})]})}function XGe({actorRef:e,onClose:r}){const n=wn(e,it(o=>({viewId:o.context.currentView.id,fromNode:o.context.initiatedFrom.node,rectFromNode:o.context.initiatedFrom.clientRect,fqn:o.context.subject})),Gn);return y.jsx(SC.Provider,{value:e,children:y.jsx(YGe,{onClose:r,...n})})}const U2="--_blur",q2="--_opacity",KGe="--_level",Oy=E.forwardRef(({onClose:e,className:r,classes:n,overlayLevel:o=0,children:a,fullscreen:i=!1,withBackdrop:l=!0,backdrop:s,openDelay:c=130,...u},d)=>{const[p,f]=E.useState(c===0),g=Lq(p),b=E.useRef(null),x=E.useRef(!1),w=ZZ()!==!0,k=E.useRef(e);k.current=e;const C=V3(()=>{x.current||(x.current=!0,k.current())},[],50);E.useLayoutEffect(()=>{b.current?.open||b.current?.showModal()},[]),W3(()=>{f(!0)},c>0?c:void 0);const _=AVe({fullscreen:i,withBackdrop:l});let T=o>0?"50%":"60%";return s?.opacity!==void 0&&(T=`${s.opacity*100}%`),y.jsx(cl.dialog,{ref:Nr(b,g,d),className:Je(n?.dialog,r,_,i&&S0.classNames.fullWidth),layout:!0,style:{[KGe]:o},...w?{initial:{[U2]:"0px",[q2]:"0%",scale:.95,originY:0,translateY:-20,opacity:0},animate:{[U2]:o>0?"4px":"8px",[q2]:T,scale:1,opacity:1,translateY:0,transition:{delay:.075}},exit:{opacity:0,scale:.98,translateY:-20,transition:{duration:.1},[U2]:"0px",[q2]:"0%"}}:{initial:{[U2]:"8px",[q2]:T}},onClick:R=>{if(R.stopPropagation(),R.target?.nodeName?.toUpperCase()==="DIALOG"){b.current?.close();return}},onCancel:R=>{R.preventDefault(),R.stopPropagation(),C()},onDoubleClick:cn,onPointerDown:cn,onClose:R=>{R.stopPropagation(),C()},...u,children:y.jsx(S0,{forwardProps:!0,children:y.jsx("div",{className:Je(n?.body,"likec4-overlay-body"),children:p&&y.jsx(y.Fragment,{children:a})})})})});Oy.displayName="Overlay";const V2=(e,r)=>e.size>2&&r.size!==e.size?new Set(Vc([...z3(e).flatten(),...r])):e.size>1?new Set(Vc([...e])):e;function ZGe(e,r){const n=new Set,o=new Set,a=new Set,i={sources:new Set,targets:new Set},l=(s,c)=>{c==="source"?(n.add(s),i.sources.add(s)):(a.add(s),i.targets.add(s))};for(const s of e){const c=r.findEdge(s),u=c?[...c.relationships("model")]:[];if(!c||!To(u,1)||!c.source.hasElement()||!c.target.hasElement())continue;const d=c.source.element,p=c.target.element;l(d,"source"),l(p,"target");for(const f of u){if(o.add(f),f.source!==d){l(f.source,"source");for(const g of f.source.ancestors()){if(g===d)break;n.add(g)}}if(f.target!==p){l(f.target,"target");for(const g of f.target.ancestors()){if(g===p)break;a.add(g)}}}}return{sources:V2(n,i.sources),targets:V2(a,i.targets),relationships:o}}function QGe({source:e,target:r}){const n=new Set,o=new Set,a=new Set,i={sources:new Set,targets:new Set},l=(c,u)=>{u==="source"?(n.add(c),i.sources.add(c)):(a.add(c),i.targets.add(c))};e&&l(e,"source"),r&&l(r,"target");const[s]=Z6e.findConnection(e,r,"directed");if(!s)return{sources:n,targets:a,relationships:o};for(const c of s.relations){const u=c.source,d=c.target;if(l(u,"source"),l(d,"target"),o.add(c),e!==u){nt(Un(e,u),`${e.id} is not an ancestor of ${u.id}`);for(const p of u.ancestors()){if(p===e)break;n.add(p)}}if(r!==d){nt(Un(r,d),`${r.id} is not an ancestor of ${d.id}`);for(const p of d.ancestors()){if(p===r)break;a.add(p)}}}return{sources:V2(n,i.sources),targets:V2(a,i.targets),relationships:o}}const dee=E.createContext(null);function qT(){return mt(E.useContext(dee),"No RelationshipDetailsActorContext")}function pee(e,r=Gn){const n=it(e),o=qT();return wn(o,n,r)}function VT(){const e=qT();return E.useMemo(()=>({actor:e,get rootElementId(){return`relationship-details-${e.sessionId.replaceAll(":","_")}`},getState:()=>e.getSnapshot().context,send:e.send,navigateTo:(...r)=>{r.length===1?e.send({type:"navigate.to",params:{edgeId:r[0]}}):e.send({type:"navigate.to",params:{source:r[0],target:r[1]}})},fitDiagram:()=>{e.send({type:"fitDiagram"})},close:()=>{e._parent?e._parent?.send({type:"close",actorId:e.id}):e.send({type:"close"})}}),[e])}const gl={dagre:{ranksep:60,nodesep:35,edgesep:25},edgeLabel:{width:220,height:14},nodeWidth:330,nodeHeight:180,compound:{labelHeight:2,paddingTop:50,paddingBottom:32}};function JGe(){const e=new I2.graphlib.Graph({directed:!0,compound:!0,multigraph:!0});return e.setGraph({...gl.dagre,rankdir:"LR"}),e.setDefaultEdgeLabel(()=>({...gl.edgeLabel})),e.setDefaultNodeLabel(()=>({})),e}const YT="-port";function hee(e,r,n){const o=new so(i=>({id:`${e}-${i}`,portId:`${e}-${i}`})),a=z3(r);for(const i of a.sorted){const l=a.children(i).length>0,s=i.id,c=`${e}-${s}`,u=l?`${c}${YT}`:c;o.set(s,{id:c,portId:u}),n.setNode(c,{column:e,element:i,isCompound:l,portId:u,inPorts:[],outPorts:[],width:gl.nodeWidth,height:gl.nodeHeight}),l&&(n.setNode(u,{element:i,portId:u,isCompound:l,inPorts:[],outPorts:[],width:gl.nodeWidth-gl.dagre.ranksep,height:gl.compound.labelHeight}),n.setParent(u,c));const d=a.parent(i);d&&n.setParent(c,`${e}-${d.id}`)}return{...a,byId:i=>{const l=a.byId(i),s=o.get(l.id);return{element:l,graph:s}},graphNodes:o}}function eXe(e){return I2.layout(e,{}),r=>{const n=e.node(r),{x:o,y:a,width:i,height:l}=n;return{position:{x:o-Math.round(i/2),y:a-Math.round(l/2)},width:i,height:l}}}function tXe(e,r){const n=JGe(),o=hee("sources",e.sources,n),a=hee("targets",e.targets,n),i=Array.from(e.relationships).map(k=>{const C=o.byId(k.source.id).graph,_=a.byId(k.target.id).graph,T=k.id;return n.node(C.id).outPorts.push(_.id),n.node(_.id).inPorts.push(C.id),n.setEdge(C.portId,_.portId,{...gl.edgeLabel},T),{name:T,source:C.id,sourceHandle:C.id+"_out"+(n.node(C.id).outPorts.length-1),target:_.id,targetHandle:_.id+"_in"+(n.node(_.id).inPorts.length-1),relationship:k}}),l=[...o.graphNodes.values(),...a.graphNodes.values()];for(const{id:k}of l){const C=n.node(k);if(C.isCompound)continue;const _=Math.max(n.inEdges(k)?.length??0,n.outEdges(k)?.length??0);_>3&&(C.height=C.height+(_-4)*14)}const s=n.edgeCount();if(s>5)for(const k of n.edges())n.setEdge(k,{...gl.edgeLabel,width:s>10?800:400});const c=eXe(n),u=yn(l,df(k=>k.id===k.portId),E0(k=>[k.id,c(k.id)]));function d(k){return u[k]??=yn(n.children(k)??[],df(C=>!C.endsWith(YT)),Ro(C=>d(C)),uq(C=>{nt(C.length>0,`Node ${k} has no nested nodes`)}),hf((C,_)=>({minY:Math.min(C.minY,_.position.y),maxY:Math.max(C.maxY,_.position.y+_.height)}),{minY:1/0,maxY:-1/0}),({minY:C,maxY:_})=>{const{position:{x:T},width:R}=c(k);return C=C-gl.compound.paddingTop,_=_+gl.compound.paddingBottom,{position:{x:T,y:C},width:R,height:_-C}})}function p(k){const C=n.parent(k);return C?p(C)+1:0}function f(k){const C=n.children(k)??[];return C.length===0?0:1+Math.max(...C.map(f))}const g=(k,C,_)=>yn(_,Ro((T,R)=>({port:k+"_"+C+R,topY:d(T).position.y})),jx(Ca("topY")),Ro(Ca("port")));let b=0,x=0;const w=l.map(({id:k})=>{const{element:C,inPorts:_,outPorts:T,column:R}=n.node(k);let{position:A,width:D,height:N}=d(k);const P=n.parent(k),O=(n.children(k)??[]).filter(q=>!q.endsWith(YT));b=Math.min(b,A.x),x=Math.min(x,A.y);const B=r?X1(C.scopedViews(),q=>q.id!==r.id)?.id??null:null,L=r?.findNodeWithElement(C.id),Y=r&&!L?X1(C.ancestors(),q=>!!r.findNodeWithElement(q.id))?.id:null,M=L??(Y&&r?.findNodeWithElement(Y));return q1({id:k,parent:P??null,x:A.x,y:A.y,title:C.title,description:C.summary,technology:C.technology,tags:[...C.tags],links:null,color:M?.color??C.color,shape:L?.shape??C.shape,icon:L?.icon??C.icon??"none",modelRef:C.id,kind:C.kind,level:p(k),labelBBox:{x:A.x,y:A.y,width:D,height:N},style:qd({...(L??M)?.style,...C.$element.style},["shape","color","icon"]),navigateTo:B,...O.length>0&&{depth:f(k)},children:O,width:D,height:N,column:R,ports:{in:g(k,"in",_),out:g(k,"out",T)}})});return{bounds:{x:Math.min(b,0),y:Math.min(x,0),width:n.graph().width??100,height:n.graph().height??100},nodes:w,edges:n.edges().reduce((k,C)=>{const _=n.edge(C),T=C.name;if(!T)return k;const{name:R,source:A,target:D,relationship:N,sourceHandle:P,targetHandle:O}=Lx(i,q=>q.name===T),B=N.title??"untitled",L=N.navigateTo?.id??null,Y=N.description??null,M=N.technology??null;return k.push({id:R,source:A,sourceHandle:P,target:D,targetHandle:O,label:B,color:N.color,...L&&{navigateTo:L},...Y&&{description:Y},...M&&{technology:M},points:_.points.map(q=>[q.x,q.y]),line:N.line,relationId:N.id,parent:null}),k},[])}}const WT=ye.raw({display:"inline-flex",alignItems:"center",padding:"[6px 2px 0 2px]","& .mantine-Text-root":{color:"mantine.colors.text/90",fontSize:"xs",fontWeight:500,lineHeight:"1.2"}}),fee=ye({paddingLeft:"1",gridColumn:1},WT),rXe=ye({gridColumn:2},WT),mee=ye({gridColumn:3,paddingRight:"1"},WT),gee="likec4-edge-label",nXe=Je(gee,ye({display:"grid",gridColumnStart:1,gridColumnEnd:4,borderBottom:"1px solid",borderBottomColor:"mantine.colors.defaultBorder",marginBottom:"0",padding:"[0 4px 5px 4px]",width:"100%","& .mantine-Text-root":{fontSize:"xxs",fontWeight:400,lineHeight:"xs",color:"mantine.colors.dimmed"}})),oXe=ye({display:"contents",[`&:last-child .${gee}`]:{borderBottom:"none",marginBottom:"0"},"& > *":{transition:"all 0.15s ease-in"},"&:is(:hover, [data-selected=true]) > *":{transition:"all 0.15s ease-out",cursor:"pointer",backgroundColor:"mantine.colors.defaultHover"}}),aXe=ye({display:"grid",gridTemplateColumns:"1fr 30px 1fr",gridAutoRows:"min-content max-content",gap:"0",alignItems:"stretch"});ye({display:"grid",gridTemplateColumns:"min-content 1fr",gridAutoRows:"min-content max-content",gap:"[10px 12px]",alignItems:"baseline",justifyItems:"start"});const iXe=ye({maxHeight:["70vh","calc(100cqh - 70px)"]}),lXe=({edge:e,view:r})=>{const n=VT(),o=E.useRef(null),a=r.nodes.find(s=>s.id===e.source),i=r.nodes.find(s=>s.id===e.target),l=r.edges.flatMap(s=>{const c=r.nodes.find(d=>d.id===s.source),u=r.nodes.find(d=>d.id===s.target);return c&&u?{id:s.id,source:c,target:u,label:s.label}:[]});return!a||!i||l.length===0?null:y.jsxs(mr,{position:"bottom-start",shadow:"md",keepMounted:!0,withinPortal:!1,closeOnClickOutside:!0,clickOutsideEvents:["pointerdown","mousedown","click"],onOpen:()=>{setTimeout(()=>{o.current?.querySelector(`[data-edge-id="${e.id}"]`)?.scrollIntoView({behavior:"instant",block:"nearest"})},100)},children:[y.jsx(fu,{children:y.jsxs(Zn,{size:"xs",variant:"default",fw:"500",style:{padding:"0.25rem 0.75rem"},rightSection:y.jsx(IT,{size:16}),children:[y.jsx(Se,{className:fee,maw:160,p:0,mod:{"likec4-color":a.color},children:y.jsx(wt,{component:"span",truncate:!0,children:a.title})}),y.jsx(ci,{color:"dark",variant:"transparent",size:"xs",children:y.jsx(ym,{style:{width:"80%"}})}),y.jsx(Se,{className:mee,maw:160,p:0,mod:{"likec4-color":i.color},children:y.jsx(wt,{component:"span",truncate:!0,children:i.title})})]})}),y.jsx(Gs,{p:0,miw:250,maw:400,children:y.jsx(ta,{className:iXe,scrollbars:"y",type:"never",viewportRef:o,children:y.jsx(Se,{className:aXe,p:"xs",maw:400,children:l.map(s=>y.jsxs("div",{className:oXe,"data-selected":s.id===e.id,onClick:c=>{c.stopPropagation(),n.navigateTo(s.id)},children:[y.jsx(Se,{className:fee,mod:{"edge-id":s.id,"likec4-color":s.source.color},children:y.jsx(wt,{component:"span",truncate:!0,children:s.source.title})}),y.jsx(Se,{className:rXe,children:y.jsx(ci,{color:"dark",variant:"transparent",size:"xs",children:y.jsx(ym,{style:{width:"80%"}})})}),y.jsx(Se,{className:mee,mod:{"likec4-color":s.target.color},children:y.jsx(wt,{component:"span",truncate:!0,children:s.target.title})}),y.jsx(Se,{className:nXe,children:y.jsx(wt,{component:"span",truncate:!0,children:s.label||"untitled"})})]},s.id))})})})]})},sXe=LT(e=>{const{enableNavigateTo:r}=wr(),{data:{navigateTo:n}}=e,[o,a,i]=kx(e),l=Wt();return y.jsxs(Ry,{...e,children:[y.jsx(Ay,{edgeProps:e,svgPath:o}),y.jsx(B2,{edgeProps:e,labelPosition:{x:a,y:i,translate:"translate(-50%, 0)"},style:{maxWidth:Math.abs(e.targetX-e.sourceX-100)},children:y.jsx(Ty,{edgeProps:e,children:r&&n&&y.jsx(j2,{...e,onClick:s=>{s.stopPropagation(),l.navigateTo(n)}})})})]})}),cXe=e=>{const{enableNavigateTo:r,enableVscode:n}=wr(),o=Wt(),a=F2(),i=[],{navigateTo:l,fqn:s}=e.data;return l&&r&&a!==l&&i.push({key:"navigate",icon:y.jsx(gi,{}),onClick:c=>{c.stopPropagation(),o.navigateTo(l)}}),s&&i.push({key:"relationships",icon:y.jsx(Ny,{}),onClick:c=>{c.stopPropagation(),o.openRelationshipsBrowser(s)}}),s&&n&&i.push({key:"goToSource",icon:y.jsx(fm,{}),onClick:c=>{c.stopPropagation(),o.openSource({element:s})}}),y.jsx(H2,{buttons:i,...e})};function uXe(e,r){return e.id===r.id&&ut(e.selected??!1,r.selected??!1)&&ut(e.dragging??!1,r.dragging??!1)&&ut(e.width??0,r.width??0)&&ut(e.height??0,r.height??0)&&ut(e.zIndex??0,r.zIndex??0)&&ut(e.data,r.data)}const yee=Symbol.for("isMemoized");function ic(e){if(e.hasOwnProperty(yee))return e;const r=E.memo(e,uXe);return r.displayName="Node",Object.defineProperty(r,yee,{enumerable:!1,writable:!1,value:!0}),r}const bee=e=>{const r=Wt();return y.jsx(FT,{...e,onClick:n=>{n.stopPropagation(),r.openElementDetails(e.data.fqn)}})},dXe=ic(e=>{const{enableElementTags:r}=wr();return y.jsxs(mm,{nodeProps:e,children:[y.jsx(gm,{...e}),y.jsx(ml,{...e}),r&&y.jsx(Ey,{...e}),y.jsx(bee,{...e}),y.jsx(cXe,{...e}),y.jsx(hXe,{...e})]})}),pXe=ic(e=>y.jsxs(Dy,{nodeProps:e,children:[y.jsx(bee,{...e}),y.jsx($y,{...e}),y.jsx(fXe,{...e})]})),hXe=({data:{ports:e,height:r}})=>y.jsxs(y.Fragment,{children:[e.in.map((n,o)=>y.jsx(uo,{id:n,type:"target",position:tt.Left,style:{visibility:"hidden",top:`${15+(o+1)*((r-30)/(e.in.length+1))}px`}},n)),e.out.map((n,o)=>y.jsx(uo,{id:n,type:"source",position:tt.Right,style:{visibility:"hidden",top:`${15+(o+1)*((r-30)/(e.out.length+1))}px`}},n))]}),fXe=({data:e})=>y.jsxs(y.Fragment,{children:[e.ports.in.map((r,n)=>y.jsx(uo,{id:r,type:"target",position:tt.Left,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r)),e.ports.out.map((r,n)=>y.jsx(uo,{id:r,type:"source",position:tt.Right,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r))]}),mXe={element:dXe,compound:pXe},gXe={relationship:sXe};function yXe({actorRef:e}){const r=E.useRef(null);return r.current==null&&(r.current={defaultNodes:[],defaultEdges:[]}),y.jsx(dee.Provider,{value:e,children:y.jsx(Px,{...r.current,children:y.jsx(dm,{id:e.sessionId,inherit:!1,children:y.jsxs($a,{children:[y.jsx(wXe,{},"xyflow"),y.jsx(vXe,{},"sync")]})})})})}const bXe=e=>({...e.context.subject,viewId:e.context.viewId}),vXe=E.memo(()=>{const e=qT(),r=wn(e,bXe,ut),n=Ho(),o=n.findView(r.viewId)??null,a=E.useMemo(()=>{let s;if("edgeId"in r&&Sa(r.edgeId)){nt(o,`view ${r.viewId} not found`);const c=mt(o.findEdge(r.edgeId),`edge ${r.edgeId} not found in ${r.viewId}`);s=ZGe([c.id],o)}else if(r.source&&r.target)s=QGe({source:n.element(r.source),target:n.element(r.target)});else return null;return tXe(s,o)},[r,o,n]),i=fr(),l=uf();return E.useEffect(()=>{l.viewportInitialized&&e.send({type:"xyflow.init",instance:l,store:i})},[i,l.viewportInitialized,e]),E.useEffect(()=>{a!==null&&e.send({type:"update.layoutData",data:a})},[a,e]),null}),xXe=({context:e})=>({initialized:e.initialized.xydata&&e.initialized.xyflow,nodes:e.xynodes,edges:e.xyedges}),wXe=E.memo(()=>{const e=VT(),{initialized:r,nodes:n,edges:o}=pee(xXe,ut);return y.jsxs(UC,{id:e.rootElementId,nodes:n,edges:o,className:Je(r?"initialized":"not-initialized","likec4-relationship-details"),nodeTypes:mXe,edgeTypes:gXe,onNodesChange:it(a=>{e.send({type:"xyflow.applyNodeChanges",changes:a})}),onEdgesChange:it(a=>{e.send({type:"xyflow.applyEdgeChanges",changes:a})}),fitViewPadding:.05,onNodeClick:it((a,i)=>{a.stopPropagation(),e.send({type:"xyflow.nodeClick",node:i})}),onEdgeClick:it((a,i)=>{a.stopPropagation(),e.send({type:"xyflow.edgeClick",edge:i})}),onPaneClick:it(()=>{e.send({type:"xyflow.paneClick"})}),onDoubleClick:it(()=>{e.send({type:"xyflow.paneDblClick"})}),onViewportResize:it(()=>{e.send({type:"xyflow.resized"})}),onEdgeMouseEnter:it((a,i)=>{i.data.hovered||e.send({type:"xyflow.edgeMouseEnter",edge:i})}),onEdgeMouseLeave:it((a,i)=>{i.data.hovered&&e.send({type:"xyflow.edgeMouseLeave",edge:i})}),onSelectionChange:it(a=>{e.send({type:"xyflow.selectionChange",...a})}),nodesDraggable:!1,fitView:!1,pannable:!0,zoomable:!0,children:[y.jsx(_Xe,{}),y.jsx(ou,{position:"top-right",children:y.jsx(or,{variant:"default",color:"gray",onClick:a=>{a.stopPropagation(),e.close()},children:y.jsx(Hf,{})})})]})}),kXe=({context:e})=>({subject:e.subject,viewId:e.viewId}),_Xe=E.memo(()=>{const{subject:e,viewId:r}=pee(kXe,ut),n=Ho().findView(r);if(!n||!n.isDiagram())return null;const o=[...n.edges()];let a="edgeId"in e&&Sa(e.edgeId)?o.find(i=>i.id===e.edgeId):Lx(o,i=>i.source.element?.id===e.source&&i.target.element?.id===e.target)||Lx(o,i=>(i.source.element?.id===e.source||Un(i.source.element?.id??"__",e.source??"__"))&&(i.target.element?.id===e.target||Un(i.target.element?.id??"__",e.target??"__")));return a?y.jsx(EXe,{edge:a.$edge,view:n.$view}):null}),EXe=({edge:e,view:r})=>{const n=VT(),o=e.id,[a,i,{history:l,current:s}]=Yq(e.id);E.useEffect(()=>{a!==o&&i.set(o)},[o]),E.useEffect(()=>{a!==o&&n.navigateTo(a)},[a]);const c=s>0,u=s+1{d.stopPropagation(),i.back()},children:y.jsx(nee,{})})},"back"),u&&y.jsx(cl.div,{layout:!0,initial:{opacity:.05,transform:"translateX(5px)"},animate:{opacity:1,transform:"translateX(0)"},exit:{opacity:0,transform:"translateX(5px)"},children:y.jsx(or,{variant:"default",color:"gray",onClick:d=>{d.stopPropagation(),i.forward()},children:y.jsx(pp,{})})},"forward"),y.jsx(Ur,{gap:"xs",wrap:"nowrap",ml:"sm",children:y.jsx(lXe,{edge:e,view:r})})]})})})},SXe=e=>e.context.overlays.map(r=>{switch(r.type){case"relationshipsBrowser":return e.children[r.id]?{type:r.type,actorRef:e.children[r.id]}:null;case"relationshipDetails":return e.children[r.id]?{type:r.type,actorRef:e.children[r.id]}:null;case"elementDetails":return e.children[r.id]?{type:r.type,actorRef:e.children[r.id]}:null;default:Xa(r)}}).filter(tq),CXe=(e,r)=>e.length===r.length&&e.every((n,o)=>n.actorRef===r[o].actorRef);function TXe({overlaysActorRef:e}){const r=MC(c=>c.domNode),n=E.useMemo(()=>r?.querySelector(".react-flow__renderer")??null,[r]),o=wn(e,SXe,CXe),a=ZZ()??!1,i=o.some(c=>c.type==="elementDetails");E.useEffect(()=>{!n||a||iUe(n,{opacity:i?.7:1,filter:i?"grayscale(1)":"grayscale(0)",transform:i?"perspective(400px) translateZ(-12px) translateY(3px)":"translateY(0)"},{duration:i?.35:.17})},[i,n]);const l=c=>{e.send({type:"close",actorId:c.id})},s=o.map((c,u)=>{switch(c.type){case"relationshipsBrowser":return y.jsx(Oy,{overlayLevel:u,onClose:()=>l(c.actorRef),children:y.jsx(oee,{actorRef:c.actorRef})},c.actorRef.sessionId);case"relationshipDetails":return y.jsx(Oy,{overlayLevel:u,onClose:()=>l(c.actorRef),children:y.jsx(yXe,{actorRef:c.actorRef})},c.actorRef.sessionId);case"elementDetails":return y.jsx(XGe,{actorRef:c.actorRef,onClose:()=>l(c.actorRef)},c.actorRef.sessionId);default:Xa(c)}});return y.jsx(hp.Overlays,{children:y.jsx(j7,{FallbackComponent:B7,onReset:()=>e.send({type:"close.all"}),children:y.jsx(dm,{children:y.jsx($a,{children:s})})})})}const[RXe,Su]=ri("SearchActorContext"),AXe=e=>e.context.searchValue;function NXe(){const e=Su(),r=wn(e,AXe),n=E.useCallback(o=>{e.send({type:"change.search",search:o})},[e]);return[r,n]}const DXe=e=>{const r=e.context.searchValue.trim().toLowerCase();return r.length>1?r:""};function GT(){const e=Su();return E.useDeferredValue(wn(e,DXe))}function $Xe(){const e=Su();return E.useCallback(r=>{e.send({type:"change.search",search:r})},[e])}const PXe=e=>e.context.pickViewFor;function OXe(){const e=Su();return wn(e,PXe)}const XT=ye.raw({outline:"none",background:"mantine.colors.primary[8]",borderColor:"mantine.colors.primary[9]"}),Y2=".mantine-Tree-node:focus > .mantine-Tree-label &",MXe=ye.raw({display:"flex",width:"100%",background:"mantine.colors.body",rounded:"sm",padding:"[12px 8px 12px 14px]",minHeight:"60px",gap:"2",border:"1px solid",borderColor:"mantine.colors.defaultBorder",_hover:{...XT,borderColor:"mantine.colors.primary[9]",background:"mantine.colors.primary[8]/60"},_focus:XT,[Y2]:XT,_dark:{borderColor:"transparent",background:"mantine.colors.dark[6]/80"},_light:{background:"mantine.colors.white/80",_hover:{borderColor:"mantine.colors.primary[6]",backgroundColor:"mantine.colors.primary[5]"}}}),W2="likec4-focusable",G2={ref:"var(--likec4-icon-size, 24px)"},IXe=ye.raw({color:{base:"mantine.colors.dimmed",_light:"mantine.colors.gray[5]",_groupHover:"mantine.colors.primary[0]",_groupFocus:"mantine.colors.primary[0]"},[Y2]:{color:"mantine.colors.primary[0]"},flex:`0 0 ${G2.ref}`,height:G2.ref,width:G2.ref,display:"flex",alignItems:"center",justifyContent:"center",alignSelf:"flex-start","--ti-size":G2.ref,"& svg, & img":{width:"100%",height:"auto",maxHeight:"100%",pointerEvents:"none"},"& img":{objectFit:"contain"},"&.likec4-shape-icon svg":{strokeWidth:1.5}}),LXe=ye.raw({fontSize:"16px",fontWeight:500,lineHeight:"1.1",":where([data-disabled]) &":{opacity:.4},color:{base:"mantine.colors.dark[1]",_light:"mantine.colors.gray[7]",_groupHover:{base:"mantine.colors.primary[1]",_light:"mantine.colors.white"},_groupFocus:{base:"mantine.colors.primary[1]",_light:"mantine.colors.white"}},[Y2]:{color:{base:"mantine.colors.primary[1]",_light:"mantine.colors.white"}}}),vee=ye.raw({color:{base:"mantine.colors.dimmed",_groupHover:{base:"mantine.colors.primary[1]",_light:"mantine.colors.primary[0]"},_groupFocus:"mantine.colors.primary[0]"},[Y2]:{color:"mantine.colors.primary[0]"}}),zXe=ye.raw(vee,{marginTop:"1",fontSize:"12px",lineHeight:"1.4",":where([data-disabled]) &":{opacity:.85}}),jXe=ye({width:"100%",height:"100%",border:"2px dashed",borderColor:"mantine.colors.defaultBorder",rounded:"md",display:"flex",justifyContent:"center",alignItems:"center",fontSize:"md",color:"mantine.colors.dimmed",padding:"md",paddingBlock:"xl"}),xee=ZEe({slots:["root","icon","title","description","descriptionColor"],className:"search-button",base:{root:MXe,icon:IXe,title:LXe,description:zXe,descriptionColor:vee}}),KT="@container likec4-tree (max-width: 450px)",BXe=ye({outline:"none",marginBottom:"2"}),FXe=ye(oG.raw({containerName:"likec4-tree"}),{containerType:"inline-size",height:"100%"}),HXe=ye({display:"flex",alignItems:"baseline",outline:"none !important",gap:"1"}),UXe=ye({marginTop:"2"}),qXe=ye({color:"mantine.colors.dimmed"}),VXe=ye({[KT]:{flexDirection:"column-reverse",alignItems:"flex-start",gap:"0.5"}}),YXe=ye({fontSize:"10px",lineHeight:"1.3",display:"block",fontWeight:500,whiteSpace:"nowrap",padding:"[1px 5px]",borderRadius:"4px",background:"mantine.colors.dark[9]/30",_light:{background:"mantine.colors.gray[3]/20"}}),WXe=ye({"--likec4-icon-size":"24px",[KT]:{"--likec4-icon-size":"18px"}}),GXe=ye({flex:0,fontSize:"10px",fontWeight:500,whiteSpace:"nowrap",lineHeight:"1.1",[KT]:{display:"none"}});function bi(e){e.stopPropagation(),e.preventDefault()}function wee(e){const r=e.getBoundingClientRect();return r.y+Math.floor(r.height/2)}function My(e){if(!e){console.error("moveFocusToSearchInput: from is null or undefined");return}const r=e.getRootNode();if(!_0(r.querySelector)){console.error("moveFocusToSearchInput: root.querySelector is not a function");return}let n=r.querySelector("[data-likec4-search-input]");if(n){const o=n.value.length;n.focus(),n.setSelectionRange(o,o)}}function X2(e){if(!e){console.error("focusToFirstFoundElement: from is null or undefined");return}const r=e.getRootNode();if(!_0(r.querySelector)){console.error("focusToFirstFoundElement: root.querySelector is not a function");return}r.querySelector(`[data-likec4-search] .${W2}`)?.focus()}function kee(e,r,n=`.${W2}`){if(!e)return console.error("queryAllFocusable: from is null or undefined"),[];const o=e.getRootNode();return _0(o.querySelectorAll)?[...o.querySelectorAll(`[data-likec4-search-${r}] ${n}`)]:(console.error("queryAllFocusable: root.querySelectorAll is not a function"),[])}const XXe="likec4-view-btn",KXe=Je(ye({flexWrap:"nowrap",display:"flex","&[data-disabled] .mantine-ThemeIcon-root":{opacity:.45}}),XXe);ye({marginTop:"1",fontSize:"13px",lineHeight:"1.4",":where(.likec4-view-btn[data-disabled]) &":{opacity:.85}});const _ee=()=>y.jsx(qr,{className:jXe,children:"Nothing found"}),ZXe=E.memo(()=>{const e=E.useRef(null);let r=[...Ho().views()],n=GT();return n&&(n.startsWith("kind:")?r=[]:r=r.filter(o=>n.startsWith("#")?o.tags.some(a=>a.toLocaleLowerCase().includes(n.slice(1))):`${o.id} ${o.title} ${o.description.text}`.toLocaleLowerCase().includes(n))),y.jsxs(ra,{ref:e,renderRoot:o=>y.jsx(Qr,{layout:!0,...o}),gap:8,"data-likec4-search-views":!0,onKeyDown:o=>{if(o.key==="ArrowLeft"||o.key==="ArrowRight"){const a=o.target.getBoundingClientRect().y,i=kee(e.current,"elements",".likec4-element-button");let l=i.length>1?i.find((s,c,u)=>wee(s)>a||c===u.length-1):null;l??=pf(i),l&&(o.stopPropagation(),l.focus());return}},children:[r.length===0&&y.jsx(_ee,{}),r.length>0&&y.jsx(_w,{children:y.jsx($r,{"data-likec4-view":!0,tabIndex:-1,onFocus:o=>{o.stopPropagation(),My(e.current)}})}),r.map((o,a)=>y.jsx(Qr,{layoutId:`@view${o.id}`,children:y.jsx(ZT,{view:o,search:n,tabIndex:a===0?0:-1})},o.id))]})}),K2=xee();function ZT({className:e,view:r,loop:n=!1,search:o,...a}){const i=Su(),l=Wt(),s=F2(),c=r.id===s,u=()=>{i.send({type:"close"}),setTimeout(()=>{l.navigateTo(r.id)},100)};return y.jsxs($r,{...a,className:Je(K2.root,"group",W2,KXe,e),"data-likec4-view":r.id,...c&&{"data-disabled":!0},onClick:d=>{d.stopPropagation(),u()},onKeyDown:T0({siblingSelector:"[data-likec4-view]",parentSelector:"[data-likec4-search-views]",activateOnFocus:!1,loop:n,orientation:"vertical",onKeyDown:d=>{d.nativeEvent.code==="Space"&&(d.stopPropagation(),u())}}),children:[y.jsx(ci,{variant:"transparent",className:K2.icon,children:r.isDeploymentView()?y.jsx(UT,{stroke:1.8}):y.jsx(gi,{stroke:1.8})}),y.jsxs(qr,{style:{flexGrow:1},children:[y.jsxs(Ur,{gap:"xs",wrap:"nowrap",align:"center",children:[y.jsx(Ks,{component:"div",highlight:o,className:K2.title,children:r.title||"untitled"}),c&&y.jsx(Xs,{size:"xs",fz:9,radius:"sm",children:"current"})]}),y.jsx(Ks,{highlight:r.description.nonEmpty?o:"",component:"div",className:K2.description,lineClamp:1,children:r.description.text||"No description"})]})]})}const vm=xee(),QXe=E.memo(()=>{const e=Ho(),r=GT(),n=E.useMemo(()=>{const a=r.split(".");let i;iu(a)||a[0]==="kind:"?i=e.elements():i=Nd(e.elements(),u=>r.startsWith("kind:")?u.kind.toLocaleLowerCase().startsWith(r.slice(5)):r.startsWith("#")?u.tags.some(d=>d.toLocaleLowerCase().includes(r.slice(1))):(u.title+" "+u.id+" "+u.summary.text).toLocaleLowerCase().includes(r));const l={},{all:s,roots:c}=yn([...i],Vc,hf((u,d)=>{const p={label:d.title,value:d.id,element:d,searchTerms:a,children:[]};l[p.value]=p;const f=u.all.findLast(g=>Un(g.value,p.value));return f?(f.children.push(p),f.children.length>1&&f.children.sort(Cy)):u.roots.push(p),u.all.push(p),u},{all:[],roots:[]}));return{all:s,byid:l,roots:c.sort(Cy)}},[e,r]),o=Eee();return n.all.length===0?y.jsx(_ee,{}):y.jsx(eKe,{data:n,handleClick:o})}),JXe=()=>{};function eKe({data:{all:e,byid:r,roots:n},handleClick:o}){const a=Y0({multiple:!1});a.setHoveredNode=JXe,E.useEffect(()=>{a.collapseAllNodes();for(const l of e)l.children.length>0&&a.expand(l.value)},[e]);const i=it(l=>{const s=l.target,c=s.getAttribute("data-value"),u=!!c&&r[c];if(u){if(l.key==="ArrowUp"){c===n[0]?.value&&(bi(l),My(s));return}if(l.key==="ArrowRight"){if(u.children.length>0&&a.expandedState[c]===!1)return;const d=(l.target.querySelector(".mantine-Tree-label")??s).getBoundingClientRect().y,p=kee(s,"views");let f=p.length>1?p.find((g,b,x)=>wee(g)>d||b===x.length-1):null;f??=pf(p),f&&(bi(l),f.focus());return}if(l.key===" "||l.key==="Enter"){bi(l),o(u.element);return}}});return y.jsx(Bf,{"data-likec4-search-elements":!0,allowRangeSelection:!1,clearSelectionOnOutsideClick:!0,selectOnClick:!1,tree:a,data:n,levelOffset:"lg",classNames:{root:FXe,node:Je(W2,BXe),label:HXe,subtree:UXe},onKeyDownCapture:i,renderNode:tKe})}function tKe({node:e,elementProps:r,hasChildren:n,expanded:o}){const{element:a,searchTerms:i}=e,l=p8e({element:{id:a.id,title:a.title,shape:a.shape,icon:a.icon},className:Je(vm.icon,WXe)}),s=[...a.views()],c=Eee(),u=`@tree.${e.value}`;return y.jsxs(Qr,{layoutId:u,...r,children:[y.jsx(or,{variant:"transparent",size:16,tabIndex:-1,className:Je(qXe),style:{visibility:n?"visible":"hidden"},children:y.jsx(pp,{stroke:3.5,style:{transition:"transform 150ms ease",transform:`rotate(${o?"90deg":"0"})`,width:"100%"}})}),y.jsxs($r,{component:fl,layout:!0,tabIndex:-1,"data-value":a.id,className:Je(vm.root,"group","likec4-element-button"),...s.length>0&&{onClick:d=>{(!n||o)&&(d.stopPropagation(),c(a))}},children:[l,y.jsxs(Se,{style:{flexGrow:1},children:[y.jsxs(Ur,{gap:"xs",wrap:"nowrap",align:"center",className:VXe,children:[y.jsx(Ks,{component:"div",highlight:i,className:vm.title,children:e.label}),y.jsx(fo,{label:a.id,withinPortal:!1,fz:"xs",disabled:!a.id.includes("."),children:y.jsx(Ks,{component:"div",highlight:i,className:Je(YXe,vm.descriptionColor),children:g1(a.id)})})]}),y.jsx(Ks,{component:"div",highlight:i,className:vm.description,lineClamp:1,children:a.summary.text||"No description"})]}),y.jsx(wt,{component:"div",className:Je(GXe,vm.descriptionColor),fz:"xs",children:s.length===0?"No views":y.jsxs(y.Fragment,{children:[s.length," view",s.length>1?"s":""]})})]})]})}function Eee(){const e=Wt(),r=Su();return it(n=>{const o=[...n.views()];if(o.length===0)return;const a=zx(o);if(a){r.send({type:"close"}),a.id!==e.currentView.id&&setTimeout(()=>{e.navigateTo(a.id)},100);return}r.send({type:"pickview.open",elementFqn:n.id})})}const rKe=ye({border:"transparent",background:{base:"transparent",_focusWithin:{base:"mantine.colors.gray[4]/55 !important",_dark:"mantine.colors.dark[5]/55 !important"},_groupHover:{base:"mantine.colors.gray[3]/35",_dark:"mantine.colors.dark[5]/35"}}}),nKe=ye({position:"absolute",inset:"0",width:"100%",height:"100%",backgroundColor:"[rgb(34 34 34 / 0.7)]",zIndex:902,backdropFilter:"auto",backdropBlur:"10px",_light:{backgroundColor:"[rgb(255 255 255 / 0.6)]"}}),oKe=ye({position:"absolute",top:"[2rem]",left:"[50%]",width:"100%",maxWidth:"600px",minWidth:"200px",transform:"translateX(-50%)",zIndex:903}),See=ye({marginTop:"2","& + &":{marginTop:"[32px]"}});ye({height:["100%","100cqh"],"& .mantine-ScrollArea-viewport":{minHeight:"100%","& > div":{minHeight:"100%",height:"100%"}}});function aKe({elementFqn:e}){const r=Su(),n=Ho().element(e),o=[],a=[];for(const l of n.views())l.viewOf===n?o.push(l):a.push(l);const i=()=>{r.send({type:"pickview.close"})};return xf("keydown",l=>{try{l.key==="Escape"&&(l.stopPropagation(),l.preventDefault(),i())}catch(s){console.warn(s)}},{capture:!0}),y.jsxs(y.Fragment,{children:[y.jsx(Qr,{className:nKe,onClick:l=>{l.stopPropagation(),i()}},"pickview-backdrop"),y.jsx(Cw,{children:y.jsxs(Qr,{initial:{opacity:0,scale:.95,originY:0,translateX:"-50%",translateY:-20},animate:{opacity:1,scale:1,translateY:0},exit:{opacity:0,scale:.98,translateY:-20,transition:{duration:.1}},className:oKe,"data-likec4-search-views":!0,children:[y.jsxs(Ur,{px:"sm",py:"md",justify:"space-between",children:[y.jsx(ep,{order:2,lh:1,children:"Select view"}),y.jsx(or,{size:"md",variant:"default",onClick:l=>{l.stopPropagation(),i()},children:y.jsx(Hf,{})})]}),y.jsxs(ta,{mah:"calc(100vh - 110px)",type:"never",children:[o.length>0&&y.jsxs(ra,{gap:"sm",px:"sm",className:See,children:[y.jsx(ep,{order:6,c:"dimmed",children:"scoped views of the element"}),o.map((l,s)=>y.jsx(ZT,{view:l,search:"",loop:!0,mod:{autofocus:s===0}},l.id))]}),a.length>0&&y.jsxs(ra,{gap:"sm",px:"sm",className:See,children:[y.jsx(ep,{order:6,c:"dimmed",children:"views including this element"}),a.map((l,s)=>y.jsx(ZT,{view:l,search:"",loop:!0,mod:{autofocus:s===0&&o.length===0}},l.id))]})]})]},"pickview")})]})}function iKe(){const e=E.useRef(null);let r=Ho().tagsSortedByUsage,n=$Xe(),o=GT(),a=r.length;if(o.startsWith("#")){const l=o.slice(1);r=r.filter(({tag:s})=>s.toLocaleLowerCase().includes(l))}if(r.length===0)return null;const i=r.length!==a;return y.jsxs(xn,{ref:e,css:{gap:"md",paddingLeft:"[48px]",flexWrap:"nowrap"},children:[y.jsx(xn,{css:{gap:"1.5",flexWrap:"wrap",opacity:i?1:.3,grayscale:i?0:.9,filter:"auto",transition:"fast",_groupHover:{opacity:1,grayscale:0},_groupFocusWithin:{opacity:1,grayscale:0}},children:r.map(({tag:l})=>y.jsx(C2,{tag:l,className:ye({userSelect:"none",cursor:"pointer"}),onClick:s=>{s.stopPropagation(),n(`#${l}`),setTimeout(()=>{X2(e.current)},350)}},l))}),i&&y.jsx(Zn,{size:"compact-xs",variant:"light",onClick:l=>{l.stopPropagation(),n(""),My(e.current)},rightSection:y.jsx(Hf,{size:14}),children:"Clear"})]})}/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const lKe=[["path",{d:"M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]],QT=yt("outline","search","Search",lKe);function Cee(e){return e.match(/^(k|ki|kin|kind|kind:)$/)!=null}const sKe=["#","kind:"],cKe=E.memo(()=>{const e=Su(),r=Ho(),n=E.useRef(null),{ref:o,focused:a}=D$e(),[i,l]=NXe(),s=tW({scrollBehavior:"smooth",loop:!1});xf("keydown",d=>{try{!a&&(d.key==="Backspace"||d.key.startsWith("Arrow")||d.key.match(new RegExp("^\\p{L}$","u")))&&My(n.current)}catch(p){console.warn(p)}});let c=[],u=!1;switch(!0){case i.startsWith("#"):{const d=i.toLocaleLowerCase().slice(1),p=r.tags.filter(f=>f.toLocaleLowerCase().includes(d));p.length===0?(u=!1,c=[y.jsx(L0,{children:"No tags found"},"empty-tags")]):(u=r.tags.some(f=>f.toLocaleLowerCase()===d),c=p.map(f=>y.jsxs(z0,{value:`#${f}`,children:[y.jsx(wt,{component:"span",opacity:.5,mr:1,fz:"sm",children:"#"}),f]},f)));break}case i.startsWith("kind:"):case Cee(i):{const d=i.length>5?i.slice(5).toLocaleLowerCase():"";let p=V8(r.specification.elements);d&&(p=p.filter(f=>f.toLocaleLowerCase().includes(d))),p.length===0?(u=!1,c=[y.jsx(L0,{children:"No kinds found"},"empty-kinds")]):(u=p.some(f=>f.toLocaleLowerCase()===d),c=p.map(f=>y.jsxs(z0,{value:`kind:${f}`,children:[y.jsx(wt,{component:"span",opacity:.5,mr:1,fz:"sm",children:"kind:"}),f]},f)));break}}return y.jsxs(Kn,{onOptionSubmit:d=>{l(d),s.resetSelectedOption(),sKe.includes(d)||(s.closeDropdown(),setTimeout(()=>{X2(n.current)},350))},width:"max-content",position:"bottom-start",shadow:"md",offset:{mainAxis:4,crossAxis:50},store:s,withinPortal:!1,children:[y.jsx(c7,{children:y.jsx(Na,{ref:Nr(n,o),placeholder:"Search by title, description or start with # or kind:",autoFocus:!0,"data-autofocus":!0,"data-likec4-search-input":!0,tabIndex:0,classNames:{input:rKe},size:"lg",value:i,leftSection:y.jsx(QT,{style:{width:Ae(20)},stroke:2}),rightSection:y.jsx(Na.ClearButton,{onClick:d=>{d.stopPropagation();const p=e.getSnapshot().context.openedWithSearch;i===""||i===p?e.send({type:"close"}):l("")}}),rightSectionPointerEvents:"auto",onChange:d=>{l(d.currentTarget.value),s.openDropdown(),s.updateSelectedOptionIndex()},onClick:()=>s.openDropdown(),onFocus:()=>s.openDropdown(),onBlur:()=>s.closeDropdown(),onKeyDownCapture:d=>{if(d.key==="Tab"){switch(!0){case s.getSelectedOptionIndex()>=0:return s.clickSelectedOption(),bi(d);case c.length===1:return s.selectFirstOption()&&s.clickSelectedOption(),bi(d);case Cee(i):return l("kind:"),bi(d)}return}if(d.key==="Backspace"&&s.dropdownOpened){if(i==="kind:")return l(""),s.resetSelectedOption(),bi(d);if(i.startsWith("kind:")&&u)return l("kind:"),s.resetSelectedOption(),bi(d);if(i.startsWith("#")&&u)return l("#"),s.resetSelectedOption(),bi(d)}if(d.key==="Escape"&&s.dropdownOpened&&c.length>0){bi(d),s.closeDropdown();return}if(d.key==="ArrowUp"&&s.dropdownOpened&&i===""&&s.getSelectedOptionIndex()===0){s.closeDropdown(),bi(d);return}if(d.key==="ArrowDown"&&(!s.dropdownOpened||c.length===0||u||i===""&&s.getSelectedOptionIndex()===c.length-1)){s.closeDropdown(),bi(d),X2(n.current);return}}})}),y.jsx(Ow,{hidden:c.length===0,style:{minWidth:300},children:y.jsx(Mw,{children:y.jsx(ta,{mah:"min(322px, calc(100cqh - 50px))",type:"scroll",children:c})})})]})}),uKe=ye({backgroundColor:"[rgb(34 34 34 / var(--_opacity, 95%))]",_light:{backgroundColor:"[rgb(250 250 250 / var(--_opacity, 95%))]"},backdropFilter:"auto",backdropBlur:"var(--_blur, 10px)"}),dKe=ye({width:"100%",height:"100%",maxHeight:"100vh",overflow:"hidden",display:"flex",flexDirection:"column",justifyContent:"stretch",gap:"sm",paddingTop:"[20px]",paddingLeft:"md",paddingRight:"md",paddingBottom:"sm",background:"[transparent]"}),pKe=e=>!e.matches("inactive");function hKe({searchActorRef:e}){const r=wn(e,pKe),n=()=>{e.send({type:"open"})},o=it(()=>{e.send({type:"close"})});return R$e([["mod+k",n,{preventDefault:!0}],["mod+f",n,{preventDefault:!0}]]),y.jsx(RXe,{value:e,children:y.jsx(hp.Overlays,{children:y.jsx(j7,{FallbackComponent:B7,onReset:o,children:y.jsx($a,{children:r&&y.jsx(Oy,{fullscreen:!0,withBackdrop:!1,backdrop:{opacity:.9},classes:{dialog:uKe,body:dKe},openDelay:0,onClose:o,"data-likec4-search":"true",children:y.jsx(fKe,{searchActorRef:e})})})})})})}const Tee=ye({height:["100%","100cqh"],"& .mantine-ScrollArea-viewport":{minHeight:"100%","& > div":{minHeight:"100%",height:"100%"}}}),fKe=({searchActorRef:e})=>{const r=E.useRef(null),n=OXe();return W3(()=>{Sa(e.getSnapshot().context.openedWithSearch)&&X2(r.current)},150),y.jsxs(qr,{ref:r,display:"contents",children:[y.jsx(Ur,{className:"group",wrap:"nowrap",onClick:o=>{o.stopPropagation(),My(r.current)},children:y.jsxs(Ff,{flex:1,px:"sm",children:[y.jsx(cKe,{}),y.jsx(iKe,{})]})}),y.jsxs(B0,{children:[y.jsx(Zd,{span:6,children:y.jsx(ep,{component:"div",order:6,c:"dimmed",pl:"sm",children:"Elements"})}),y.jsx(Zd,{span:6,children:y.jsx(ep,{component:"div",order:6,c:"dimmed",pl:"sm",children:"Views"})})]}),y.jsxs(B0,{className:ye({containerName:"likec4-search-elements",containerType:"size",overflow:"hidden",flexGrow:1}),children:[y.jsx(Zd,{span:6,children:y.jsx(ol,{type:"scroll",className:Tee,pr:"xs",scrollbars:"y",children:y.jsx($a,{children:y.jsx(dm,{id:"likec4-search-elements",children:y.jsx(QXe,{})})})})}),y.jsx(Zd,{span:6,children:y.jsx(ol,{type:"scroll",className:Tee,pr:"xs",scrollbars:"y",children:y.jsx($a,{children:y.jsx(dm,{id:"likec4-search-views",children:y.jsx(ZXe,{})})})})})]}),n&&y.jsx(aKe,{elementFqn:n})]})};function mKe({children:e}){const r=E.useContext(P7);if(!r)throw new Error("PortalToContainer must be used within RootContainer");return y.jsx(M0,{target:r.ref.current??`#${r.id}`,children:e})}const Ree={onChange:null,onNavigateTo:null,onNodeClick:null,onNodeContextMenu:null,onCanvasContextMenu:null,onEdgeClick:null,onEdgeContextMenu:null,onCanvasClick:null,onCanvasDblClick:null,onBurgerMenuClick:null,onOpenSource:null,onInitialized:null},JT=V8(Ree),Aee=E.createContext({...E0(JT,e=>[e,null]),handlersRef:{current:Ree}});function gKe({handlers:e,children:r}){const n=Xh(e),o=JT.map(i=>_0(e[i])),a=E.useMemo(()=>({...E0(JT,i=>n.current[i]?[i,(...l)=>n.current[i]?.(...l)]:[i,null]),handlersRef:n}),[n,...o]);return y.jsx(Aee.Provider,{value:a,children:r})}function lc(){return E.useContext(Aee)}const yKe=ec({delays:{"open timeout":({context:e})=>e.openTimeout,"close timeout":600,"long idle":1500},actions:{"update edgeId":et(({context:e,event:r})=>(Ut(r,["xyedge.select","xyedge.mouseEnter"]),{edgeId:r.edgeId,edgeSelected:e.edgeSelected||r.type==="xyedge.select"})),"increase open timeout":et(()=>({openTimeout:800})),"decrease open timeout":et(()=>({openTimeout:300})),"reset edgeId":et({edgeId:null,edgeSelected:!1})},guards:{"edge was selected":({context:e})=>e.edgeSelected,"edge was hovered":({context:e})=>!e.edgeSelected}}).createMachine({id:"breadcrumbs",context:()=>({edgeId:null,edgeSelected:!1,openTimeout:800}),initial:"idle",on:{close:{target:"#idle",actions:["reset edgeId","increase open timeout"]}},states:{idle:{id:"idle",on:{"xyedge.mouseEnter":{target:"opening",actions:"update edgeId"},"xyedge.select":{target:"active",actions:"update edgeId"}},after:{"long idle":{actions:"increase open timeout"}}},opening:{on:{"xyedge.mouseLeave":{target:"idle"},"xyedge.select":{target:"active",actions:"update edgeId"}},after:{"open timeout":{actions:"decrease open timeout",target:"active"}}},active:{tags:["opened"],initial:"opened",exit:"reset edgeId",on:{"xyedge.unselect":{target:"idle",actions:"increase open timeout"},"xyedge.select":{actions:"update edgeId"}},states:{opened:{on:{"dropdown.mouseEnter":{target:"hovered"},"xyedge.mouseLeave":{guard:"edge was hovered",target:"closing"}}},hovered:{on:{"dropdown.mouseLeave":[{guard:"edge was selected",target:"opened"},{target:"closing"}]}},closing:{on:{"xyedge.mouseEnter":{guard:"edge was hovered",target:"opened",actions:"update edgeId"},"xyedge.select":{target:"opened",actions:"update edgeId"},"dropdown.mouseEnter":{target:"hovered"}},after:{"close timeout":{target:"#idle"}}}}}}}),bKe=yKe,Nee=ye({display:"block",fontSize:"xxs",fontWeight:500,whiteSpace:"nowrap",paddingX:"1",paddingY:"0.5",borderRadius:"[2px]",background:{_light:"var(--likec4-palette-fill)/90",_dark:"var(--likec4-palette-fill)/60"},lineHeight:"1",color:{_light:"var(--likec4-palette-hiContrast)",_dark:"var(--likec4-palette-loContrast)"}}),vKe=ye({whiteSpaceCollapse:"preserve-breaks",fontSize:"sm",lineHeight:"sm",userSelect:"all"});function xKe(e){let r=null;for(const n of e.xyedges)if(n.selected){if(r){r=null;break}r=n.data.id}return{viewId:e.view.id,selected:r}}const wKe=E.memo(()=>{const e=Ho(),r=nS(bKe),n=Wt(),{viewId:o,selected:a}=Da(xKe),i=wn(r,g=>g.hasTag("opened")?g.context.edgeId:null);il("navigateTo",()=>{r.send({type:"close"})}),il("edgeMouseEnter",({edge:g})=>{r.send({type:"xyedge.mouseEnter",edgeId:g.data.id})}),il("edgeMouseLeave",()=>{r.send({type:"xyedge.mouseLeave"})}),il("edgeEditingStarted",()=>{r.send({type:"close"})}),il("walkthroughStarted",()=>{r.send({type:"close"})}),E.useEffect(()=>{a?r.send({type:"xyedge.select",edgeId:a}):r.send({type:"xyedge.unselect"})},[a]);const l=E.useCallback(g=>{if(!i)return;r.send({type:"dropdown.mouseEnter"});const b=n.findEdge(i);b&&!b.data.hovered&&n.send({type:"xyflow.edgeMouseEnter",edge:b,event:g})},[r,n,i]),s=E.useCallback(g=>{if(!i)return;r.send({type:"dropdown.mouseLeave"});const b=n.findEdge(i);b?.data.hovered&&n.send({type:"xyflow.edgeMouseLeave",edge:b,event:g})},[r,n,i]),{diagramEdge:c,sourceNode:u,targetNode:d}=Da(g=>{const b=i?oS(g,i):null,x=b?Qf(g,b.source):null,w=b?Qf(g,b.target):null;return{diagramEdge:b,sourceNode:x,targetNode:w}},Gn,[i]);if(!c||!u||!d||iu(c.relations))return null;const[p,f]=yn(c.relations,Ro(g=>{try{return e.relationship(g)}catch(b){return console.error(`View is cached and likec4model missing relationship ${g} from ${u.id} -> ${d.id}`,b),null}}),df(Sa),lq(g=>g.source.id===u.id&&g.target.id===d.id));return p.length===0&&f.length===0?(console.warn("No relationships found diagram edge",{diagramEdge:c,sourceNode:u,targetNode:d}),null):y.jsx(mKe,{children:y.jsx(_Ke,{viewId:o,direct:p,nested:f,diagramEdge:c,sourceNode:u,targetNode:d,onMouseEnter:l,onMouseLeave:s})})}),kKe=(e,r)=>r?.querySelector(`.likec4-edge-label[data-edge-id="${e}"]`)??null,eR=8,_Ke=({viewId:e,diagramEdge:r,direct:n,nested:o,sourceNode:a,targetNode:i,onMouseEnter:l,onMouseLeave:s})=>{const c=E.useRef(null),{enableNavigateTo:u,enableVscode:d}=wr(),{onOpenSource:p}=lc(),f=wze(),[g,b]=E.useState(null);E.useLayoutEffect(()=>{b(kKe(r.id,f.current))},[r]),E.useEffect(()=>{const k=g,C=c.current;if(!k||!C)return;let _=!1;const T=mw(k,C,()=>{qV(k,C,{placement:"bottom-start",middleware:[BV(4),lMe({crossAxis:!0,padding:eR,allowedPlacements:["bottom-start","top-start","right-start","right-end","left-end"]}),FV({padding:eR,apply({availableHeight:R,availableWidth:A,elements:D}){_||Object.assign(D.floating.style,{maxWidth:`${Ki(yi(A),{min:200,max:400})}px`,maxHeight:`${Ki(yi(R),{min:0,max:500})}px`})}}),HV({padding:eR*2})]}).then(({x:R,y:A,middlewareData:D})=>{_||(C.style.transform=`translate(${yi(R)}px, ${yi(A)}px)`,C.style.visibility=D.hide?.referenceHidden?"hidden":"visible")})},{ancestorResize:!1,animationFrame:!0});return()=>{_=!0,T()}},[g]);const x=Wt(),w=E.useCallback((k,C)=>y.jsxs(E.Fragment,{children:[C>0&&y.jsx(If,{}),y.jsx(EKe,{viewId:e,relationship:k,sourceNode:a,targetNode:i,onNavigateTo:u?_=>{x.navigateTo(_)}:void 0,...p&&d&&{onOpenSource:()=>p({relation:k.id})}})]},k.id),[e,a,i,x,u,p,d]);return y.jsx(ta,{ref:c,onMouseEnter:l,onMouseLeave:s,type:"auto",scrollbars:"y",scrollbarSize:6,styles:{viewport:{overscrollBehavior:"contain",minWidth:180}},className:Je(ye({layerStyle:"likec4.dropdown",p:"0",pointerEvents:{base:"all",_whenPanning:"none"},position:"absolute",top:"0",left:"0",width:"max-content",cursor:"default"})),children:y.jsxs(Ff,{css:{gap:"3",padding:"4",paddingTop:"2"},children:[y.jsx(Zn,{variant:"default",color:"gray",size:"compact-xs",style:{alignSelf:"flex-start",fontWeight:500,"--button-fz":"var(--font-sizes-xxs)"},onClick:k=>{k.stopPropagation(),x.openRelationshipDetails(r.id)},children:"browse relationships"}),n.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(xm,{children:"DIRECT RELATIONSHIPS"}),n.map(w)]}),o.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(xm,{css:{mt:n.length>0?"2":"0"},children:"RESOLVED FROM NESTED"}),o.map(w)]})]})})},EKe=E.forwardRef(({viewId:e,relationship:r,sourceNode:n,targetNode:o,onNavigateTo:a,onOpenSource:i},l)=>{const s=Dee(r,"source",n),c=Dee(r,"target",o),u=a&&r.navigateTo?.id!==e?r.navigateTo?.id:void 0,d=r.links;return y.jsxs(Ff,{ref:l,className:lG({block:"2",inline:"2",paddingY:"2.5",paddingX:"2",gap:"1",rounded:"sm",backgroundColor:{_hover:{base:"mantine.colors.gray[1]",_dark:"mantine.colors.dark[5]/70"}}}),children:[y.jsx(xn,{gap:"0.5",children:y.jsxs(Qd,{openDelay:200,children:[y.jsx(Z2,{label:s.full,offset:2,position:"top-start",children:y.jsx(wt,{component:"div","data-likec4-color":n.color,className:Nee,children:s.short})}),y.jsx(ym,{stroke:2.5,size:"11px",opacity:.65}),y.jsx(Z2,{label:c.full,offset:2,position:"top-start",children:y.jsx(wt,{component:"div","data-likec4-color":o.color,className:Nee,children:c.short})}),u&&y.jsx(Z2,{label:"Open dynamic view",children:y.jsx(or,{size:"sm",radius:"sm",variant:"default",onClick:p=>{p.stopPropagation(),a?.(u)},style:{alignSelf:"flex-end"},role:"button",children:y.jsx(gi,{size:"80%",stroke:2})})}),i&&y.jsx(Z2,{label:"Open source",children:y.jsx(or,{size:"sm",radius:"sm",variant:"default",onClick:p=>{p.stopPropagation(),i()},role:"button",children:y.jsx(fm,{size:"80%",stroke:2})})})]})}),y.jsx(qr,{className:vKe,children:r.title||"untitled"}),r.kind&&y.jsxs(xn,{gap:"2",children:[y.jsx(xm,{children:"kind"}),y.jsx(wt,{size:"xs",className:ye({userSelect:"all"}),children:r.kind})]}),r.technology&&y.jsxs(xn,{gap:"2",children:[y.jsx(xm,{children:"technology"}),y.jsx(wt,{size:"xs",className:ye({userSelect:"all"}),children:r.technology})]}),r.description.nonEmpty&&y.jsxs(y.Fragment,{children:[y.jsx(xm,{children:"description"}),y.jsx(qr,{css:{paddingLeft:"2.5",py:"1.5",borderLeft:"2px dotted",borderLeftColor:{base:"mantine.colors.gray[3]",_dark:"mantine.colors.dark[4]"}},children:y.jsx(mp,{value:r.description,fontSize:"sm"})})]}),d.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(xm,{children:"links"}),y.jsx(xn,{gap:"1",flexWrap:"wrap",children:d.map(p=>y.jsx(jC,{size:"sm",value:p},p.url))})]})]})}),xm=Qs("div",{base:{display:"block",fontSize:"xxs",fontWeight:500,userSelect:"none",lineHeight:"sm",color:"mantine.colors.dimmed"}}),Z2=fo.withProps({color:"dark",fz:"xs",label:"",children:null,offset:8,withinPortal:!1});function Dee(e,r,n){const o=e.isDeploymentRelation()?n.id:n.modelRef||"",a=e[r].id,i=g1(o)+a.slice(o.length);return{full:a,short:i}}function wm(){const e=kze();return E.useMemo(()=>e?{portalProps:{target:e},withinPortal:!0}:{withinPortal:!1},[e])}const SKe=ec({delays:{"open timeout":500,"close timeout":350},actions:{"update activatedBy":et({activatedBy:({context:e,event:r})=>{switch(!0){case r.type.includes("click"):return"click";case r.type.includes("mouseEnter"):return"hover";default:return e.activatedBy}}}),"keep dropdown open":et({activatedBy:"click"}),"update selected folder":et(({event:e})=>e.type==="breadcrumbs.click.root"?{selectedFolder:""}:(Ut(e,["breadcrumbs.click.folder","select.folder"]),{selectedFolder:e.folderPath})),"reset selected folder":et({selectedFolder:({context:e})=>e.viewModel.folder.path}),"update inputs":et(({context:e,event:r})=>{Ut(r,"update.inputs");const n=r.inputs.viewModel.id!==e.viewModel.id;let o=e.selectedFolder;return r.inputs.viewModel.folder.path.startsWith(o)||(o=r.inputs.viewModel.folder.path),{viewModel:r.inputs.viewModel,selectedFolder:o,activatedBy:n?"hover":e.activatedBy}}),"reset search query":et({searchQuery:""}),"update search query":et(({event:e})=>(Ut(e,"searchQuery.change"),{searchQuery:e.value??""})),"emit navigateTo":ui(({event:e})=>(Ut(e,"select.view"),{type:"navigateTo",viewId:e.viewId}))},guards:{"was opened on hover":({context:e})=>e.activatedBy==="hover","has search query":({context:e})=>!iu(e.searchQuery),"search query is empty":({context:e})=>iu(e.searchQuery)}}).createMachine({id:"breadcrumbs",context:({input:e})=>({...e,breadcrumbs:[],activatedBy:"hover",selectedFolder:"",searchQuery:"",folderColumns:[]}),initial:"idle",entry:["update activatedBy","reset selected folder"],on:{"update.inputs":{actions:"update inputs"},"searchQuery.change":{actions:["update search query",ln({type:"searchQuery.changed"})]}},states:{idle:{id:"idle",on:{"breadcrumbs.mouseEnter.*":{target:"pending",actions:"update activatedBy"},"breadcrumbs.click.*":{target:"active",actions:"update activatedBy"}}},pending:{on:{"breadcrumbs.mouseEnter.*":{actions:"update activatedBy"},"breadcrumbs.mouseLeave.*":{target:"idle"},"breadcrumbs.click.*":{target:"active",actions:"update activatedBy"}},after:{"open timeout":{target:"active"}}},active:{tags:["active"],initial:"decide",on:{"dropdown.dismiss":{target:"#idle"},"breadcrumbs.mouseLeave":{guard:"was opened on hover",target:".closing"},"dropdown.mouseLeave":{guard:"was opened on hover",target:".closing"},"searchQuery.changed":{target:".decide"}},states:{decide:{always:[{guard:"has search query",target:"search"},{target:"opened"}]},opened:{on:{"searchQuery.changed":{guard:"has search query",actions:"keep dropdown open",target:"search"},"breadcrumbs.click.viewtitle":{actions:"reset selected folder"},"breadcrumbs.click.*":{actions:"update selected folder"},"select.folder":{actions:["keep dropdown open","update selected folder"]},"select.view":{actions:["emit navigateTo"]}}},search:{on:{"breadcrumbs.click.viewtitle":{actions:["reset search query","reset selected folder"],target:"opened"},"breadcrumbs.click.*":{actions:["reset search query","update selected folder"],target:"opened"},"select.view":{actions:["emit navigateTo"]}}},closing:{on:{"breadcrumbs.mouseEnter.*":{target:"decide"},"dropdown.mouseEnter":{target:"decide"}},after:{"close timeout":{target:"#idle"}}}}}}}),CKe=SKe,tR=E.createContext(null);tR.displayName="NavigationPanelActorSafeContext";const TKe=tR.Provider,rR=()=>{const e=E.useContext(tR);if(e===null)throw new Error("NavigationPanelActorRef is not found in the context");return e};function $ee(e,r=Gn){const n=rR();return wn(n,e,r)}function RKe(e,r=Gn){return $ee(n=>e(n.context),r)}function Iy(){const e=rR();return E.useMemo(()=>({actorRef:e,send:r=>e.send(r),selectFolder:r=>e.send({type:"select.folder",folderPath:r}),selectView:r=>e.send({type:"select.view",viewId:r}),isOpened:()=>e.getSnapshot().hasTag("active"),clearSearch:()=>e.send({type:"searchQuery.change",value:""}),closeDropdown:()=>e.send({type:"dropdown.dismiss"})}),[e])}const Pee=fo.withProps({color:"dark",fz:"xs",openDelay:600,closeDelay:120,label:"",children:null,offset:8,withinPortal:!1}),Oee=()=>y.jsx(ci,{variant:"transparent",size:16,className:ye({display:{base:"none","@/md":"flex"},color:{base:"mantine.colors.gray[5]",_dark:"mantine.colors.dark[3]"}}),children:y.jsx(pp,{})});Iw.withProps({separator:y.jsx(Oee,{}),separatorMargin:4});const gp=E.forwardRef(({variant:e="default",className:r,disabled:n=!1,...o},a)=>y.jsx(or,{size:"md",variant:"transparent",radius:"sm",component:fl,...!n&&{whileHover:{scale:1.085},whileTap:{scale:1,translateY:1}},disabled:n,...o,className:Je(r,RVe({variant:e})),ref:a})),Q2=J1({base:{fontSize:"sm",fontWeight:"500",transition:"fast",color:{base:"mantine.colors.text/90",_hover:"[var(--mantine-color-bright)]"}},variants:{truncate:{true:{truncate:!0}},dimmed:{true:{color:{base:"mantine.colors.dimmed",_hover:"mantine.colors.text"}}}}}),AKe=E.forwardRef((e,r)=>y.jsxs("svg",{ref:r,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 222 56",...e,children:[y.jsx("path",{fill:"#5E98AF",d:"M33.95 33.78V0H2.37A2.37 2.37 0 0 0 0 2.35V33.9h33.95v-.12ZM38.57 33.78H55.6v-14.6c0-1.3-1.06-2.35-2.36-2.35H38.57v16.95ZM33.95 38.37H17.04v14.6c0 1.29 1.06 2.35 2.36 2.35h14.67V38.37h-.12ZM38.57 38.37v16.95h14.67c1.3 0 2.36-1.06 2.36-2.36v-14.6H38.57Z"}),y.jsx("path",{className:ye({fill:"[#FCFBF7]",_light:{fill:"[#222221]"}}),d:"M71.61 12.08c-.06 3.61.3 29.95.23 31.87 0 1.8 0 3.6.06 5.41 0 .3.18.58.47.58 4.1.18 8.13-.17 12.22-.11 1.34.05 2.69 0 3.97 0 1.29-.06 1.4-.59 1.35-1.63-.06-1.63-.06-3.08-.06-4.65-.06-.82-.53-1.11-1.23-1.11-2.4.06-4.8-.06-7.19.06-.4.06-.82.06-1.23.06-.7-.06-.87-.24-.93-1v-.86c-.18-4.83.17-9.83.17-14.66-.06-4.07 0-7.73-.06-11.34 0-1.57 0-3.14-.05-4.65-.06-.93 0-1.92-.24-2.85-.11-.35-.29-.81-.7-.81h-5.5c-.93 0-1.22.64-1.28 1.57v4.12ZM103.81 35c-.17-6.63-.1-13.67-.05-20.24 0-2.04-.12-4.25-.12-6.28 0-2.21-.87-2.1-2.04-2.15-1.7-.06-2.46-.06-4.15-.06-1.11-.06-1.58.23-1.58 1.34 0 5.7-.18 21.8-.12 24.13.06 2.33.3 12.91.18 15.24-.06.81 0 1.62.06 2.44.05.29.23.58.7.58 1.93-.12 3.74-.12 5.67-.17.7-.06 1.28-.24 1.58-1 .05-.4-.12-11.04-.12-13.83Zm13.92 4.47c0-2.03-.3-7.56-.23-8.72 0-.17.11-.4.17-.4.12 0 .35.11.41.17 1.87 2.44 10.64 19.36 11.7 19.42.28.06.58.06.87.06 1.99-.12 3.74 0 5.73 0 2.04 0 .7-1.98.35-2.5-.53-.76-7.48-13.14-7.9-13.9-1.16-1.98-2.16-4.13-3.32-6.05-.12-.23-.24-.58-.18-.81.12-.7.3-1.34.59-1.98a93.18 93.18 0 0 1 4.55-8.14c1.88-2.97 2.93-4.83 4.45-7.5.35-.64.58-1.34.82-2.1.05-.29-.18-.58-.53-.58-1.11-.05-5.15 0-6.43 0-.59 0-1.17.12-1.46.64-.76 1.46-8.6 15.7-9.35 16.98-.06.12-.24.18-.41.18 0 0-.12-.18-.12-.3-.06-3.25.53-13.9.4-16.04-.05-1.28-.28-1.4-1.57-1.46-1.4-.05-3.33-.05-4.73-.05-1.3 0-1.4.7-1.58 1.62-.06.18-.06 5.64-.06 8.09 0 3.54-.3 25.76.11 32.8 0 .7.18 1.1.77 1.1 1.57-.12 3.91 0 5.49 0 1.11 0 1.29-.12 1.29-1.98 0-2.5.23-4.77.23-7.85 0-.23-.06-.46-.06-.7Zm25.66-1.4h-.06c0 1.46-.05 2.97 0 4.49.06 1.86.18 3.72.3 5.58 0 .64.17.81.76.93 1.22.29 2.4.35 3.62.35 3.16-.12 6.31.11 9.47 0 1.29-.06 1.87.06 3.16-.18 1.17-.23 1.58-.87 1.58-2.61-.12-1.1-.06-1.57-.06-2.91 0-1.92-1.35-2.56-2.52-2.5-.81.06-4.73-.06-6.31-.06-2.63.06-2.22.4-2.22-2.33 0-2.2.06-5.05.06-7.32 0-1.22.11-1.63 1.28-1.63h7.31c1.17.17 1.99-.64 1.99-1.86 0-1.22.12-1.28.12-2.5l-.18-1.75c-.12-.99-.47-1.33-1.46-1.33-.64 0-1.29.05-1.93.11-2.52.18-3.68-.17-6.14 0-.82 0-.93-.11-1-.87-.23-2.27 0-4.77.24-7.04.06-.93.3-1.1 1.17-1.16l8.24-.06c1.11-.11 1.46-.06 1.4-1.16-.11-1.69.06-3.43-.11-5.12-.12-.93-.41-1.1-1.46-1.1-1.76.05-2.17.05-3.92.17-1.75.06-8.77.06-10.46.06-2.46 0-2.63-.18-2.7 2.8-.1 2.32-.05 4.7-.05 7.09 0 4.07-.23 18.66-.12 21.92Zm47.76-24.82c.06-1.92 0-3.5 0-5.35 0-2.15-3.92-1.92-5.32-1.86a18.95 18.95 0 0 0-15.08 9.77c-.82 1.57-1.4 3.2-1.81 4.88a34 34 0 0 0-.59 12.15c.41 3.78 1.4 7.56 3.74 10.59 4.04 5.3 11.46 7.15 17.83 6.16.3-.06.59-.11.82-.29.18-.11.35-.35.35-.58l.18-3.31c.06-1.05 0-1 0-2.04 0-1.4-2.93-.35-4.74-.35-1.75 0-3.62-.06-5.2-.87-2.8-1.57-4.38-4.71-5.26-7.68-1-3.2-1.23-6.63-.64-9.88.7-4.25 2.74-9.13 7.25-10.59 2.57-.87 5.31-.58 7.89-.29.35.06.58-.17.58-.46Zm26.77 15.3c.06-2.5 0-14.84 0-18.38.06-.82 0-1.63-.11-2.45-.06-.99-.24-1.28-1.29-1.33h-4.44c-.82 0-1.35.4-1.82 1.27-1.34 3.2-10.75 24.02-12.15 26.58-.53.99-1 1.63-1 2.68v4.24c0 .76-.06 1.28 1.23 1.28l11.1-.06c1.47 0 1.47.3 1.47 1.1 0 .88-.12 4.9-.12 5.3 0 .58.12 1.16 1.23 1.16h5.08c1.23 0 1.23-.7 1.23-2.03.06-1.17-.06-3.5-.06-4.66 0-.93.18-.98 1.76-.98 1.22 0 1.75-.12 1.75-.88.06-1.57 0-2.67 0-4.42 0-1.04-.93-.98-2.92-.98-.65 0-.7-.18-.7-1.05-.12-1.8-.24-4.6-.24-6.4Zm-7.25-5.94c-.05.7-.11 10.82-.11 12.27-.06.81-.24 1.05-1 1.1-1.93.06-3.85.06-5.78.06-.47 0-.65-.4-.41-.87.23-.4 4.85-11.57 6.13-14.48.18-.17.24-.35.41-.52.18-.12.41-.18.59-.23.06 0 .23.29.23.46 0 .76-.06 1.51-.06 2.21Z"})]})),NKe=E.forwardRef((e,r)=>y.jsx("svg",{ref:r,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 56 56",...e,children:y.jsx("path",{fill:"#5E98AF",d:"M33.95 33.78V0H2.37A2.37 2.37 0 0 0 0 2.35V33.9h33.95v-.12ZM38.57 33.78H55.6v-14.6c0-1.3-1.06-2.35-2.36-2.35H38.57v16.95ZM33.95 38.37H17.04v14.6c0 1.29 1.06 2.35 2.36 2.35h14.67V38.37h-.12ZM38.57 38.37v16.95h14.67c1.3 0 2.36-1.06 2.36-2.36v-14.6H38.57Z"})})),DKe=()=>{const e=Iy(),{onBurgerMenuClick:r}=lc();return y.jsx(Qr,{layout:"position",children:y.jsxs($r,{onMouseEnter:()=>{e.send({type:"breadcrumbs.mouseEnter.root"})},onMouseLeave:()=>{e.send({type:"breadcrumbs.mouseLeave.root"})},onClick:n=>{n.stopPropagation(),r&&e.isOpened()&&setTimeout(()=>{r()},100),e.send({type:"breadcrumbs.click.root"})},className:Je("mantine-active",Uo({padding:"0.5",width:{base:"[20px]","@/md":"[64px]"}})),children:[y.jsx(AKe,{className:ye({display:{base:"none","@/md":"block"}})}),y.jsx(NKe,{className:ye({display:{base:"block","@/md":"none"}})})]})})};/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const $Ke=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M5 12l6 6",key:"svg-1"}],["path",{d:"M5 12l6 -6",key:"svg-2"}]],PKe=yt("outline","arrow-left","ArrowLeft",$Ke),OKe=()=>{const e=Wt(),{hasStepBack:r,hasStepForward:n}=Da(o=>({hasStepBack:o.navigationHistory.currentIndex>0,hasStepForward:o.navigationHistory.currentIndex{o.stopPropagation(),e.navigate("back")},children:y.jsx(PKe,{size:14})}),y.jsx(gp,{disabled:!n,onClick:o=>{o.stopPropagation(),e.navigate("forward")},children:y.jsx(ym,{size:14})})]})};/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const MKe=[["path",{d:"M9 15l6 -6",key:"svg-0"}],["path",{d:"M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464",key:"svg-1"}],["path",{d:"M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463",key:"svg-2"}]],IKe=yt("outline","link","Link",MKe),LKe=({context:e})=>{const r=e.viewModel;return{id:r.id,title:r.titleOrUntitled,description:r.description,tags:r.tags,links:r.links}},zKe=e=>{const[r,n]=E.useState(!1),o=$ee(LKe),a=wm();return y.jsxs(mr,{position:"bottom-end",shadow:"xl",clickOutsideEvents:["pointerdown","mousedown","click"],offset:{mainAxis:4},opened:r,onChange:n,...a,...e,children:[y.jsx(jKe,{linksCount:o.links.length,onOpen:()=>n(!0)}),r&&y.jsx(BKe,{data:o,onClose:()=>n(!1)})]})},jKe=({linksCount:e,onOpen:r})=>y.jsx(mr.Target,{children:y.jsxs($r,{component:fl,layout:"position",whileTap:{scale:.95,translateY:1},onClick:n=>{n.stopPropagation(),r()},className:Je("group",Uo({gap:"2",paddingInline:"2",paddingBlock:"1",rounded:"sm",userSelect:"none",cursor:"pointer",color:{base:"likec4.panel.action-icon.text",_hover:"likec4.panel.action-icon.text.hover"},backgroundColor:{_hover:"likec4.panel.action-icon.bg.hover"},display:{base:"none","@/xs":"flex"}}),""),children:[y.jsx(BT,{size:16,stroke:1.8}),e>0&&y.jsxs(xn,{gap:"[1px]",children:[y.jsx(IKe,{size:14,stroke:2}),y.jsx(qr,{css:{fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8},children:e})]})]})}),Mee=Qs("div",{base:{fontSize:"xs",color:"mantine.colors.dimmed",fontWeight:500,userSelect:"none",mb:"xxs"}}),BKe=({data:{id:e,title:r,description:n,tags:o,links:a},onClose:i})=>{const l=Wt();return il("paneClick",i),il("nodeClick",i),y.jsxs(mr.Dropdown,{className:Je("nowheel nopan nodrag",G0({margin:"xs",layerStyle:"likec4.dropdown",gap:"md",padding:"md",paddingBottom:"lg",pointerEvents:"all",maxWidth:"calc(100cqw - 52px)",minWidth:"200px",maxHeight:"calc(100cqh - 100px)",width:"max-content",cursor:"default",overflow:"auto",overscrollBehavior:"contain","@/sm":{minWidth:400,maxWidth:550},"@/lg":{maxWidth:700}})),children:[y.jsxs("section",{children:[y.jsx(wt,{component:"div",fw:500,size:"xl",lh:"sm",children:r}),y.jsxs(xn,{alignItems:"flex-start",mt:"1",children:[y.jsx(FKe,{label:"id",value:e}),y.jsx(xn,{gap:"xs",flexWrap:"wrap",children:o.map(s=>y.jsx(C2,{tag:s,cursor:"pointer",onClick:c=>{c.stopPropagation(),l.openSearch(`#${s}`)}},s))})]})]}),a.length>0&&y.jsxs("section",{className:Uo({alignItems:"baseline"}),children:[y.jsx(Mee,{children:"Links"}),y.jsx(xn,{gap:"xs",flexWrap:"wrap",children:a.map((s,c)=>y.jsx(jC,{value:s},`${c}-${s.url}`))})]}),n.isEmpty&&y.jsx(wt,{component:"div",fw:500,size:"xs",c:"dimmed",style:{userSelect:"none"},children:"No description"}),n.nonEmpty&&y.jsxs("section",{children:[y.jsx(Mee,{children:"Description"}),y.jsx(mp,{value:n,fontSize:"sm",emptyText:"No description",className:ye({userSelect:"all"})})]})]})},FKe=({label:e,value:r})=>y.jsxs(xn,{gap:"0.5",children:[y.jsx(HKe,{children:e}),y.jsx(Xs,{size:"sm",radius:"sm",variant:"light",color:"gray",tt:"none",fw:500,classNames:{root:ye({width:"max-content",overflow:"visible",px:"1",color:{_dark:"mantine.colors.gray[4]",_light:"mantine.colors.gray[8]"}}),label:ye({overflow:"visible"}),section:ye({opacity:.5,userSelect:"none",marginInlineEnd:"0.5"})},children:r})]}),HKe=Qs("div",{base:{color:"mantine.colors.dimmed",fontWeight:500,fontSize:"xxs",userSelect:"none"}}),UKe=()=>{const e=F2(),{enableVscode:r}=wr(),{onOpenSource:n}=lc();return r?y.jsx(Pee,{label:"Open View Source",children:y.jsx(gp,{onClick:o=>{o.stopPropagation(),n?.({view:e})},children:y.jsx(fm,{style:{width:"60%",height:"60%"}})})}):null};/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const qKe=[["path",{d:"M5 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2v-6z",key:"svg-0"}],["path",{d:"M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M8 11v-4a4 4 0 1 1 8 0v4",key:"svg-2"}]],VKe=yt("outline","lock","Lock",qKe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const YKe=[["path",{d:"M3 13a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v6a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M9 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0",key:"svg-1"}],["path",{d:"M13 11v-4a4 4 0 1 1 8 0v4",key:"svg-2"}]],WKe=yt("outline","lock-open-2","LockOpen2",YKe),GKe=e=>({visible:e.features.enableReadOnly!==!0,isReadOnly:e.toggledFeatures.enableReadOnly??e.features.enableReadOnly}),XKe=()=>{const{visible:e,isReadOnly:r}=Da(GKe),n=Wt();return e?y.jsxs($r,{component:fl,layout:"position",onClick:o=>{o.stopPropagation(),n.toggleFeature("ReadOnly")},whileTap:{translateY:1},className:Je("group",Uo({gap:"0.5",paddingInline:"xxs",paddingBlock:"xxs",rounded:"sm",userSelect:"none",cursor:"pointer",color:{base:"likec4.panel.action-icon.text",_hover:"likec4.panel.action-icon.text.hover"},backgroundColor:{_hover:"likec4.panel.action-icon.bg.hover"}})),children:[r?y.jsx(VKe,{size:14,stroke:2}):y.jsx(WKe,{size:14,stroke:2}),r&&y.jsx(Qr,{className:ye({fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8}),children:"Unlock"})]}):null};/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const KKe=[["path",{d:"M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z",key:"svg-0"}]],ZKe=yt("filled","player-play-filled","PlayerPlayFilled",KKe),Iee=E.forwardRef((e,r)=>y.jsx(Zn,{variant:"filled",size:"xs",fw:"500",...e,ref:r,component:fl,layoutId:"trigger-dynamic-walkthrough",className:ye({flexShrink:0})}));function QKe(){const e=Wt(),r=Iy();return y.jsx(Pee,{label:"Start Dynamic View Walkthrough",children:y.jsx(Iee,{onClick:n=>{n.stopPropagation(),r.closeDropdown(),e.startWalkthrough()},size:"compact-xs",h:26,classNames:{label:ye({display:{base:"none","@/md":"[inherit]"}}),section:ye({marginInlineStart:{base:"0","@/md":"2"}})},rightSection:y.jsx(ZKe,{size:10}),children:"Start"})})}function JKe({value:e,onChange:r}){return y.jsx(Qr,{layout:"position",children:y.jsx(U0,{size:"xs",value:e,component:Qr,onChange:n=>{nt(n==="diagram"||n==="sequence","Invalid dynamic view variant"),r(n)},classNames:{label:ye({fontSize:"xxs"})},data:[{value:"diagram",label:"Diagram"},{value:"sequence",label:"Sequence"}]})})}function eZe(){const e=Da(n=>n.dynamicViewVariant),r=Wt();return y.jsxs(y.Fragment,{children:[y.jsx(JKe,{value:e,onChange:n=>{r.switchDynamicViewVariant(n)}},"dynamic-view-mode-switcher"),y.jsx(QKe,{},"trigger-dynamic-walkthrough")]})}function tZe(){const e=Wt(),r=of();return y.jsxs($r,{component:fl,layout:"position",onClick:n=>{n.stopPropagation(),e.openSearch()},whileTap:{scale:.95,translateY:1},className:Je("group",Uo({gap:"xxs",paddingInline:"sm",paddingBlock:"xxs",rounded:"sm",userSelect:"none",cursor:"pointer",color:{base:"likec4.panel.action-icon.text",_hover:"likec4.panel.action-icon.text.hover"},backgroundColor:{base:"likec4.panel.action-icon.bg",_hover:"likec4.panel.action-icon.bg.hover"},display:{base:"none","@/md":"flex"}})),children:[y.jsx(QT,{size:14,stroke:2.5}),y.jsx(qr,{css:{fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8,whiteSpace:"nowrap"},children:r?"⌘ + K":"Ctrl + K"})]})}const rZe=({context:e})=>{const r=e.viewModel.folder;return{folders:r.isRoot?[]:r.breadcrumbs.map(n=>({folderPath:n.path,title:n.title})),viewId:e.viewModel.id,viewTitle:e.viewModel.titleOrUntitled,isDynamicView:e.viewModel.isDynamicView()}},nZe=()=>{const e=Iy(),{enableSearch:r,enableNavigationButtons:n,enableDynamicViewWalkthrough:o}=wr(),{folders:a,viewTitle:i,isDynamicView:l}=wn(e.actorRef,rZe,ut),s=a.flatMap(({folderPath:u,title:d},p)=>[y.jsx($r,{component:fl,className:Je(Q2({dimmed:!0,truncate:!0}),"mantine-active",ye({userSelect:"none",maxWidth:"200px",display:{base:"none","@/md":"block"}})),title:d,onMouseEnter:()=>e.send({type:"breadcrumbs.mouseEnter.folder",folderPath:u}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave.folder",folderPath:u}),onClick:f=>{f.stopPropagation(),e.send({type:"breadcrumbs.click.folder",folderPath:u})},children:d},u),y.jsx(Oee,{},`separator-${p}`)]),c=y.jsx($r,{component:fl,className:Je("mantine-active",Q2({truncate:!0}),ye({userSelect:"none"})),title:i,onMouseEnter:()=>e.send({type:"breadcrumbs.mouseEnter.viewtitle"}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave.viewtitle"}),onClick:u=>{u.stopPropagation(),e.send({type:"breadcrumbs.click.viewtitle"})},children:i},"view-title");return y.jsxs($a,{propagate:!0,children:[y.jsx(DKe,{},"burger-button"),n&&y.jsx(OKe,{},"nav-buttons"),y.jsxs(Qr,{layout:"position",className:Uo({gap:"1",flexShrink:1,flexGrow:1,overflow:"hidden"}),children:[s,c]},"breadcrumbs"),y.jsxs(Qr,{layout:"position",className:Uo({gap:"0.5",flexGrow:0,_empty:{display:"none"}}),children:[y.jsx(zKe,{onOpen:()=>e.closeDropdown()}),y.jsx(UKe,{}),y.jsx(XKe,{})]},"actions"),o&&l&&y.jsx(eZe,{},"dynamic-view-controls"),r&&y.jsx(tZe,{},"search-control")]})},nR=E.forwardRef(({className:e,truncateLabel:r=!0,...n},o)=>y.jsx(S7,{...n,component:"button",classNames:FVe({truncateLabel:r}),className:Je("group","mantine-active",e),ref:o}));nR.displayName="NavigationLink";const oZe=E.createContext(null),aZe=[],iZe=()=>{},lZe={projects:aZe,onProjectChange:iZe};function sZe(){return E.useContext(oZe)??lZe}function cZe(){const e=E.useContext(W0);if(!e)throw new Error("No LikeC4ModelContext found");return e.projectId}/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const uZe=[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]],dZe=yt("outline","chevron-down","ChevronDown",uZe);function pZe(e){const{projects:r,onProjectChange:n}=sZe(),o=cZe();return r.length<=1?null:y.jsxs(xn,{gap:"0.5",alignItems:"baseline",children:[y.jsx(qr,{css:{fontWeight:"400",fontSize:"xxs",color:"mantine.colors.dimmed",userSelect:"none"},children:"Project"}),y.jsxs(ho,{withinPortal:!1,shadow:"md",position:"bottom-start",offset:{mainAxis:2},children:[y.jsx(Fw,{children:y.jsx(Zn,{tabIndex:-1,autoFocus:!1,variant:"subtle",size:"compact-xs",color:"gray",classNames:{root:ye({fontWeight:"400",fontSize:"xxs",height:"auto",lineHeight:1.1,color:{_light:"mantine.colors.gray[9]"}}),section:ye({'&:is([data-position="right"])':{marginInlineStart:"1"}})},rightSection:y.jsx(dZe,{opacity:.5,size:12,stroke:1.5}),...e,children:o})}),y.jsx(F0,{children:r.map(({id:a,title:i})=>y.jsx(H0,{onClick:l=>{if(o===a){l.stopPropagation();return}n(a)},children:i??a},a))})]})]})}/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const hZe=[["path",{d:"M10.52 2.614a2.095 2.095 0 0 1 2.835 -.117l.126 .117l7.905 7.905c.777 .777 .816 2.013 .117 2.836l-.117 .126l-7.905 7.905a2.094 2.094 0 0 1 -2.836 .117l-.126 -.117l-7.907 -7.906a2.096 2.096 0 0 1 -.115 -2.835l.117 -.126l7.905 -7.905zm5.969 9.535l.01 -.116l-.003 -.12l-.016 -.114l-.03 -.11l-.044 -.112l-.052 -.098l-.076 -.105l-.07 -.081l-3.5 -3.5l-.095 -.083a1 1 0 0 0 -1.226 0l-.094 .083l-.083 .094a1 1 0 0 0 0 1.226l.083 .094l1.792 1.793h-5.085l-.117 .007a1 1 0 0 0 0 1.986l.117 .007h5.085l-1.792 1.793l-.083 .094a1 1 0 0 0 1.403 1.403l.094 -.083l3.5 -3.5l.097 -.112l.05 -.074l.037 -.067l.05 -.112l.023 -.076l.025 -.117z",key:"svg-0"}]],fZe=yt("filled","direction-sign-filled","DirectionSignFilled",hZe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const mZe=[["path",{d:"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z",key:"svg-0"}]],gZe=yt("filled","star-filled","StarFilled",mZe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const yZe=[["path",{d:"M9 3a1 1 0 0 1 .608 .206l.1 .087l2.706 2.707h6.586a3 3 0 0 1 2.995 2.824l.005 .176v8a3 3 0 0 1 -2.824 2.995l-.176 .005h-14a3 3 0 0 1 -2.995 -2.824l-.005 -.176v-11a3 3 0 0 1 2.824 -2.995l.176 -.005h4z",key:"svg-0"}]],bZe=yt("filled","folder-filled","FolderFilled",yZe),Lee=T0({siblingSelector:"[data-likec4-focusable]",parentSelector:"[data-likec4-breadcrumbs-dropdown]",activateOnFocus:!1,loop:!0,orientation:"vertical"});function vZe(){const e=Iy(),r=wn(e.actorRef,a=>a.context.searchQuery);il("paneClick",()=>{e.closeDropdown()}),il("nodeClick",()=>{e.closeDropdown()});const n=O$e(a=>{e.send({type:"searchQuery.change",value:a})},250),o=r.trim().length>=2;return y.jsxs(Gs,{className:Je("nowheel",G0({layerStyle:"likec4.dropdown",gap:"xs",pointerEvents:"all"})),"data-likec4-breadcrumbs-dropdown":!0,onMouseLeave:()=>e.send({type:"dropdown.mouseLeave"}),onMouseEnter:()=>e.send({type:"dropdown.mouseEnter"}),children:[y.jsx(pZe,{}),y.jsx(xn,{gap:"xs",children:y.jsx(NZe,{value:r,onChange:n,"data-likec4-focusable":!0,onKeyDown:Lee})}),y.jsx(ta,{scrollbars:"x",type:"auto",offsetScrollbars:"present",classNames:{root:ye({maxWidth:["calc(100vw - 50px)","calc(100cqw - 50px)"]})},styles:{viewport:{overscrollBehavior:"none"}},children:o?y.jsx(wZe,{searchQuery:F3(r).toLowerCase()}):y.jsx(TZe,{})})]})}const xZe=NI(ka);function wZe({searchQuery:e}){const r=Ho(),n=Iy(),o=e.includes(ka),a=yn(r.views(),Nd(l=>o&&l.$view.title?F3(l.$view.title).toLowerCase().includes(e):l.id.toLowerCase().includes(e)||!!l.title?.toLowerCase().includes(e)),z6e(20),K1(),rDe((l,s)=>xZe(l.folder.path,s.folder.path)));if(a.length===0)return y.jsx("div",{children:"no results"});const i=o?e.split(ka):e;return y.jsx(ta,{scrollbars:"xy",offsetScrollbars:!1,className:ye({width:"100%",maxWidth:["calc(100vw - 250px)","calc(100cqw - 250px)"],maxHeight:["calc(100vh - 200px)","calc(100cqh - 200px)"]}),children:y.jsx(Ff,{gap:"0.5",children:a.map(l=>y.jsx(_Ze,{view:l,highlight:i,onClick:s=>{s.stopPropagation(),n.selectView(l.id)},"data-likec4-focusable":!0,onKeyDown:Lee},l.id))})})}const kZe=Uo({gap:"xxs",rounded:"sm",px:"xs",py:"xxs",_hover:{backgroundColor:{base:"mantine.colors.gray[1]",_dark:"mantine.colors.dark[5]"}},_focus:{outline:"none",color:"mantine.colors.primary.lightColor!",backgroundColor:"mantine.colors.primary.lightHover!"}}),zee=ye({_groupFocus:{color:"[inherit!]",transition:"none"}});function _Ze({view:e,highlight:r,...n}){const o=e.folder,a=Bee[e.id==="index"?"index":e._type],i=y.jsx(Ks,{component:"div",className:Je(zee,Q2({truncate:!0}),ye({"& > mark":{backgroundColor:{base:"mantine.colors.yellow[2]/90",_dark:"mantine.colors.yellow[5]/80",_groupFocus:"[transparent]"},color:{_groupFocus:"[inherit!]"}}})),maw:350,highlight:r,children:e.title??e.id},e.id),l=Je(n.className,"group",kZe);if(o.isRoot)return y.jsxs($r,{...n,className:l,children:[a,i]});const s=o.breadcrumbs.map(c=>y.jsx(Ks,{component:"div",className:Je(ye({_groupHover:{color:"mantine.colors.dimmed"}}),zee,Q2({dimmed:!0,truncate:!0})),maw:170,highlight:F8(r)?r:[],children:c.title},c.path));return s.push(y.jsxs(xn,{gap:"[4px]",children:[a,i]})),y.jsxs($r,{...n,className:l,children:[jee,y.jsx(Iw,{separator:y.jsx(pp,{size:12,stroke:1.5}),separatorMargin:3,children:s})]})}const EZe=y.jsx(pp,{size:12,stroke:1.5,className:"mantine-rotate-rtl"}),jee=y.jsx(bZe,{size:16,className:ye({opacity:{base:.3,_groupHover:.5,_groupActive:.5,_groupFocus:.5}})}),J2=ye({opacity:{base:.3,_dark:.5,_groupHover:.8,_groupActive:.8,_groupFocus:.8}}),Bee={index:y.jsx(gZe,{size:16,className:J2}),element:y.jsx(gi,{size:18,stroke:2,className:J2}),deployment:y.jsx(UT,{size:16,stroke:1.5,className:J2}),dynamic:y.jsx(fZe,{size:18,className:J2})},SZe=ta.withProps({scrollbars:"y",className:ye({maxHeight:["calc(100vh - 160px)","calc(100cqh - 160px)"]})});function Fee(e,r){return{folderPath:e.path,items:[...e.folders.map(n=>({type:"folder",folderPath:n.path,title:n.title,selected:r.selectedFolder.startsWith(n.path)})),...e.views.map(n=>({type:"view",viewType:n.id==="index"?"index":n._type,viewId:n.id,title:n.title??n.id,description:n.description.nonEmpty&&n.description.text||null,selected:n.id===r.viewModel.id}))]}}const CZe=e=>{const r=e.viewModel.$model,n=[Fee(r.rootViewFolder,e)],o=r.viewFolder(e.selectedFolder);if(!o.isRoot)for(const a of o.breadcrumbs)n.push(Fee(a,e));return n};function TZe(){const e=RKe(CZe,ut);return y.jsx(xn,{gap:"xs",alignItems:"stretch",children:e.flatMap((r,n)=>[n>0&&y.jsx(If,{orientation:"vertical"},"divider"+n),y.jsx(RZe,{data:r,isLast:n==e.length-1},r.folderPath)])})}function RZe({data:e,isLast:r}){const n=E.useRef(null),o=rR(),a=i=>l=>{l.stopPropagation(),i.type==="folder"?o.send({type:"select.folder",folderPath:i.folderPath}):o.send({type:"select.view",viewId:i.viewId})};return y8e(()=>{r&&n.current&&n.current.scrollIntoView({inline:"nearest",behavior:"smooth"})}),y.jsx(qr,{mb:"1",ref:n,children:y.jsx(SZe,{children:y.jsx(Ff,{gap:"0.5",children:e.items.map((i,l)=>y.jsx(AZe,{columnItem:i,onClick:a(i)},`${e.folderPath}/${i.type}/${l}`))})})})}function AZe({columnItem:e,...r}){switch(e.type){case"folder":return y.jsx(nR,{variant:"light",active:e.selected,label:e.title,leftSection:jee,rightSection:EZe,maw:"300px",miw:"200px",...r},e.folderPath);case"view":return y.jsx(nR,{variant:"filled",active:e.selected,label:e.title,description:e.description,leftSection:Bee[e.viewType],maw:"300px",miw:"200px",...r},e.viewId);default:Xa(e)}}function NZe({onKeyDown:e,...r}){const[n,o]=qs({...r,finalValue:""});return y.jsx(Na,{size:"xs",placeholder:"Search by title or id",variant:"unstyled",height:Ae(26),value:n,onKeyDown:e,onChange:a=>o(a.currentTarget.value),classNames:{wrapper:ye({flexGrow:1,backgroundColor:{base:"mantine.colors.gray[1]",_dark:"mantine.colors.dark[5]/80",_hover:{base:"mantine.colors.gray[2]",_dark:"mantine.colors.dark[4]"},_focus:{base:"mantine.colors.gray[2]",_dark:"mantine.colors.dark[4]"}},rounded:"sm"}),input:ye({_placeholder:{color:"mantine.colors.dimmed"},_focus:{outline:"none"}})},style:{"--input-fz":"var(--mantine-font-size-sm)"},leftSection:y.jsx(QT,{size:14}),rightSectionPointerEvents:"all",rightSectionWidth:"min-content",rightSection:!r.value||iu(r.value)?null:y.jsx(Zn,{variant:"subtle",h:"100%",size:"compact-xs",color:"gray",onClick:a=>{a.stopPropagation(),o("")},children:"clear"})})}const DZe=Qs("div",{base:{fontSize:"xs",color:"mantine.colors.dimmed",fontWeight:500,userSelect:"none",mb:"xxs"}});function $Ze(e){const r=LNe(e.activeWalkthrough),n=r?e.xyedges.findIndex(o=>o.id===e.activeWalkthrough?.stepId):-1;return{isActive:r,isParallel:r&&Sa(e.activeWalkthrough?.parallelPrefix),hasNext:r&&n0,notes:r?e.xyedges[n]?.data?.notes??Kt.EMPTY:null}}const PZe=()=>{const{notes:e}=Da($Ze);return!e||e.isEmpty?null:y.jsx(Qs.div,{position:"relative",children:y.jsxs(ta,{className:Je("nowheel nopan nodrag",G0({position:"absolute",layerStyle:"likec4.dropdown",gap:"sm",padding:"md",paddingTop:"xxs",pointerEvents:"all",maxWidth:"calc(100cqw - 32px)",minWidth:"calc(100cqw - 50px)",maxHeight:"calc(100cqh - 100px)",width:"max-content",cursor:"default",overflow:"auto",overscrollBehavior:"contain","@/sm":{minWidth:400,maxWidth:550},"@/lg":{maxWidth:700}})),type:"scroll",children:[y.jsx(DZe,{children:"Notes"}),y.jsx(mp,{value:e,fontSize:"sm",emptyText:"No description",className:ye({userSelect:"all"})})]})})},e4=fo.withProps({color:"dark",fz:"xs",openDelay:600,closeDelay:120,label:"",children:null,offset:8,position:"right"});/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const OZe=[["path",{d:"M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M4 8v-2a2 2 0 0 1 2 -2h2",key:"svg-1"}],["path",{d:"M4 16v2a2 2 0 0 0 2 2h2",key:"svg-2"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v2",key:"svg-3"}],["path",{d:"M16 20h2a2 2 0 0 0 2 -2v-2",key:"svg-4"}]],MZe=yt("outline","focus-centered","FocusCentered",OZe),IZe=()=>{const e=Wt();return y.jsx(e4,{label:"Center camera",children:y.jsx(gp,{onClick:()=>e.fitDiagram(),children:y.jsx(MZe,{})})})};ye({gap:"xxs",_empty:{display:"none"}}),ye({top:"md",left:"md",margin:"0",pointerEvents:"none","& :where(button, .action-icon, [role='dialog'])":{pointerEvents:"all"},"& .action-icon":{"--ai-size":"2rem"},"& .tabler-icon":{width:"65%",height:"65%"},_reduceGraphics:{"& .action-icon":{"--ai-radius":"0px"}}}),ye({shadow:{base:"md",_whenPanning:"none"}}),ye({"& .tabler-icon":{width:"65%",height:"65%"}});const t4=ye({flex:"1 1 40%",textAlign:"center",fontWeight:500,padding:"[4px 6px]",fontSize:"11px",zIndex:1}),LZe=ye({background:"mantine.colors.gray[2]",borderRadius:"sm",border:"1px solid",borderColor:"mantine.colors.gray[4]",_dark:{background:"mantine.colors.dark[5]",borderColor:"mantine.colors.dark[4]"}}),zZe=ye({position:"relative",borderRadius:"sm",background:"mantine.colors.gray[3]",boxShadow:"inset 1px 1px 3px 0px #00000024",_dark:{background:"mantine.colors.dark[7]"}}),jZe=ye({position:"absolute",width:8,height:8,border:"2px solid",borderColor:"mantine.colors.gray[5]",borderRadius:3,transform:"translate(-50%, -50%)"});/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const BZe=[["path",{d:"M5 4h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1",key:"svg-0"}],["path",{d:"M5 16h4a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-2a1 1 0 0 1 1 -1",key:"svg-1"}],["path",{d:"M15 12h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1",key:"svg-2"}],["path",{d:"M15 4h4a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1v-2a1 1 0 0 1 1 -1",key:"svg-3"}]],FZe=yt("outline","layout-dashboard","LayoutDashboard",BZe),HZe=e=>({viewId:e.view.id,autoLayout:e.view.autoLayout}),UZe=()=>{const{onChange:e}=lc(),r=Wt(),[n,o]=E.useState(null),[a,i]=E.useState({}),{autoLayout:l,viewId:s}=Da(HZe),{ref:c,hovered:u}=a9(),d=g=>b=>{a[g]=b,i(a)},p=g=>b=>{b.stopPropagation(),e?.({change:{op:"change-autolayout",layout:{...l,direction:g}}})},f=(g,b)=>{r.fitDiagram(),e?.({change:{op:"change-autolayout",layout:{...l,nodeSep:g,rankSep:b}}})};return y.jsxs(mr,{position:"right-start",clickOutsideEvents:["pointerdown"],radius:"xs",shadow:"lg",offset:{mainAxis:10},children:[y.jsx(fu,{children:y.jsx(e4,{label:"Change Auto Layout",children:y.jsx(gp,{children:y.jsx(FZe,{})})})}),y.jsx(Gs,{className:"likec4-top-left-panel",p:8,pt:6,opacity:u?.6:1,children:y.jsxs(Se,{pos:"relative",ref:o,children:[y.jsx($w,{target:a[l.direction],parent:n,className:LZe}),y.jsx(Se,{mb:10,children:y.jsx(wt,{inline:!0,fz:"xs",c:"dimmed",fw:500,children:"Auto layout:"})}),y.jsxs(Of,{gap:2,wrap:"wrap",justify:"stretch",maw:160,children:[y.jsx($r,{className:t4,ref:d("TB"),onClick:p("TB"),children:"Top-Bottom"}),y.jsx($r,{className:t4,ref:d("BT"),onClick:p("BT"),children:"Bottom-Top"}),y.jsx($r,{className:t4,ref:d("LR"),onClick:p("LR"),children:"Left-Right"}),y.jsx($r,{className:t4,ref:d("RL"),onClick:p("RL"),children:"Right-Left"})]}),y.jsx(Se,{my:10,children:y.jsx(wt,{inline:!0,fz:"xs",c:"dimmed",fw:500,children:"Spacing:"})}),y.jsx(qZe,{ref:c,isVertical:l.direction==="TB"||l.direction==="BT",nodeSep:l.nodeSep,rankSep:l.rankSep,onChange:f},s)]})})]})},km=400,qZe=E.forwardRef(({isVertical:e,nodeSep:r,rankSep:n,onChange:o},a)=>{e||([r,n]=[n,r]);const i=V3(({x:f,y:g})=>{e||([f,g]=[g,f]),o(Math.round(f*km),Math.round(g*km))},[o,e],250,2e3),[l,s]=qs({defaultValue:v$e({x:(r??100)/km,y:(n??120)/km}),onChange:i}),{ref:c}=Bq(s);let u=Math.round(l.x*km),d=Math.round(l.y*km);e||([u,d]=[d,u]);const p=Nr(c,a);return y.jsxs(Se,{ref:p,className:zZe,pt:"100%",children:[y.jsx(Se,{className:jZe,style:{left:`${l.x*100}%`,top:`${l.y*100}%`}}),y.jsx(Se,{pos:"absolute",left:2,bottom:2,children:y.jsxs(wt,{component:"div",fz:8,c:"dimmed",fw:500,children:[d,", ",u]})})]})});/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const VZe=[["path",{d:"M12 9v4",key:"svg-0"}],["path",{d:"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0z",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]],Hee=yt("outline","alert-triangle","AlertTriangle",VZe),YZe=()=>{const e=wm();return Da(r=>r.view.hasLayoutDrift??!1)?y.jsxs(Lf,{position:"right-start",openDelay:200,closeDelay:100,...e,children:[y.jsx(v7,{children:y.jsx(or,{color:"orange",c:"orange",className:ye({bg:"mantine.colors.orange.light"}),children:y.jsx(Hee,{})})}),y.jsx(y7,{p:"0",children:y.jsxs(qw,{color:"orange",withBorder:!1,withCloseButton:!1,title:"Manual layout issues",children:[y.jsxs(wt,{mt:2,size:"sm",lh:"xs",children:["View contains new elements or their sizes have changed,",y.jsx("br",{}),"last manual layout can not be applied."]}),y.jsxs(wt,{mt:"xs",size:"sm",lh:"xs",children:["Update view predicates or remove ",y.jsx(jw,{children:"@likec4-generated"})]})]})})]}):null};/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const WZe=[["path",{d:"M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M10 4l4 16",key:"svg-1"}],["path",{d:"M12 12l-8 2",key:"svg-2"}]],GZe=yt("outline","layout-collage","LayoutCollage",WZe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const XZe=[["path",{d:"M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z",key:"svg-0"}],["path",{d:"M4 12h8",key:"svg-1"}],["path",{d:"M12 15h8",key:"svg-2"}],["path",{d:"M12 9h8",key:"svg-3"}],["path",{d:"M12 4v16",key:"svg-4"}]],Uee=yt("outline","layout-board-split","LayoutBoardSplit",XZe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const KZe=[["path",{d:"M4 4l0 16",key:"svg-0"}],["path",{d:"M8 9m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z",key:"svg-1"}]],ZZe=yt("outline","layout-align-left","LayoutAlignLeft",KZe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const QZe=[["path",{d:"M12 4l0 5",key:"svg-0"}],["path",{d:"M12 15l0 5",key:"svg-1"}],["path",{d:"M6 9m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z",key:"svg-2"}]],JZe=yt("outline","layout-align-center","LayoutAlignCenter",QZe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const eQe=[["path",{d:"M20 4l0 16",key:"svg-0"}],["path",{d:"M4 9m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v2a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z",key:"svg-1"}]],tQe=yt("outline","layout-align-right","LayoutAlignRight",eQe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const rQe=[["path",{d:"M4 4l16 0",key:"svg-0"}],["path",{d:"M9 8m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z",key:"svg-1"}]],nQe=yt("outline","layout-align-top","LayoutAlignTop",rQe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const oQe=[["path",{d:"M4 12l5 0",key:"svg-0"}],["path",{d:"M15 12l5 0",key:"svg-1"}],["path",{d:"M9 6m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z",key:"svg-2"}]],aQe=yt("outline","layout-align-middle","LayoutAlignMiddle",oQe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const iQe=[["path",{d:"M4 20l16 0",key:"svg-0"}],["path",{d:"M9 4m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z",key:"svg-1"}]],lQe=yt("outline","layout-align-bottom","LayoutAlignBottom",iQe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const sQe=[["path",{d:"M6 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M18 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M12 19h4.5c.71 0 1.372 -.212 1.924 -.576m1.545 -2.459a3.5 3.5 0 0 0 -3.469 -3.965h-.499m-4 0h-3.501a3.5 3.5 0 0 1 -2.477 -5.972m2.477 -1.028h3.5",key:"svg-2"}],["path",{d:"M3 3l18 18",key:"svg-3"}]],cQe=yt("outline","route-off","RouteOff",sQe),sc=({label:e,icon:r,onClick:n})=>y.jsx(e4,{label:e,withinPortal:!1,position:"top",children:y.jsx(gp,{classNames:{root:"action-icon",icon:ye({"& > svg":{width:"70%",height:"70%"}})},onClick:n,children:r})}),uQe=e=>{const r=Wt(),n=wm();return y.jsxs(mr,{position:"right",offset:{mainAxis:12},clickOutsideEvents:["pointerdown"],...n,...e,children:[y.jsx(fu,{children:y.jsx(e4,{label:"Manual layouting tools",children:y.jsx(gp,{children:y.jsx(GZe,{})})})}),y.jsx(Gs,{className:Uo({gap:"0.5",layerStyle:"likec4.panel",padding:"1",pointerEvents:"all"}),children:y.jsxs(Qd,{children:[y.jsx(sc,{label:"Align in columns",icon:y.jsx(Uee,{}),onClick:o=>{o.stopPropagation(),r.align("Column")}}),y.jsx(sc,{label:"Align left",icon:y.jsx(ZZe,{}),onClick:o=>{o.stopPropagation(),r.align("Left")}}),y.jsx(sc,{label:"Align center",icon:y.jsx(JZe,{}),onClick:o=>{o.stopPropagation(),r.align("Center")}}),y.jsx(sc,{label:"Align right",icon:y.jsx(tQe,{}),onClick:o=>{o.stopPropagation(),r.align("Right")}}),y.jsx(sc,{label:"Align in rows",icon:y.jsx(Uee,{style:{transform:"rotate(90deg)"}}),onClick:o=>{o.stopPropagation(),r.align("Row")}}),y.jsx(sc,{label:"Align top",icon:y.jsx(nQe,{}),onClick:o=>{o.stopPropagation(),r.align("Top")}}),y.jsx(sc,{label:"Align middle",icon:y.jsx(aQe,{}),onClick:o=>{o.stopPropagation(),r.align("Middle")}}),y.jsx(sc,{label:"Align bottom",icon:y.jsx(lQe,{}),onClick:o=>{o.stopPropagation(),r.align("Bottom")}}),y.jsx(sc,{label:"Reset all control points",icon:y.jsx(cQe,{}),onClick:o=>{o.stopPropagation(),r.resetEdgeControlPoints()}})]})})]})};function dQe(){const{enableReadOnly:e}=wr();return y.jsx($a,{children:!e&&y.jsx(Qr,{layout:"position",className:G0({gap:"xs",layerStyle:"likec4.panel",position:"relative",cursor:"pointer",padding:"xxs",pointerEvents:"all"}),initial:{opacity:0,translateX:-20},animate:{opacity:1,translateX:0},exit:{opacity:0,translateX:-20},children:y.jsxs(Qd,{openDelay:600,closeDelay:120,children:[y.jsx(UZe,{}),y.jsx(uQe,{}),y.jsx(YZe,{}),y.jsx(IZe,{})]})})})}/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const pQe=[["path",{d:"M17 4h-10a3 3 0 0 0 -3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3 -3v-10a3 3 0 0 0 -3 -3z",key:"svg-0"}]],hQe=yt("filled","player-stop-filled","PlayerStopFilled",pQe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const fQe=[["path",{d:"M19.496 4.136l-12 7a1 1 0 0 0 0 1.728l12 7a1 1 0 0 0 1.504 -.864v-14a1 1 0 0 0 -1.504 -.864z",key:"svg-0"}],["path",{d:"M4 4a1 1 0 0 1 .993 .883l.007 .117v14a1 1 0 0 1 -1.993 .117l-.007 -.117v-14a1 1 0 0 1 1 -1z",key:"svg-1"}]],mQe=yt("filled","player-skip-back-filled","PlayerSkipBackFilled",fQe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const gQe=[["path",{d:"M3 5v14a1 1 0 0 0 1.504 .864l12 -7a1 1 0 0 0 0 -1.728l-12 -7a1 1 0 0 0 -1.504 .864z",key:"svg-0"}],["path",{d:"M20 4a1 1 0 0 1 .993 .883l.007 .117v14a1 1 0 0 1 -1.993 .117l-.007 -.117v-14a1 1 0 0 1 1 -1z",key:"svg-1"}]],yQe=yt("filled","player-skip-forward-filled","PlayerSkipForwardFilled",gQe),qee=Zn.withProps({component:fl,variant:"light",size:"xs",fw:"500"}),bQe=()=>{const{portalProps:e}=wm();return y.jsx(M0,{...e,children:y.jsx(qr,{css:{position:"absolute",margin:"0",padding:"0",top:"0",left:"0",width:"100%",height:"100%",border:"2px solid",borderColor:"mantine.colors.orange[6]",pointerEvents:"none",md:{borderWidth:4}}})})};function vQe(){const e=Wt(),{isParallel:r,hasNext:n,hasPrevious:o,currentStep:a,totalSteps:i}=Da(l=>{const s=l.xyedges.findIndex(c=>c.id===l.activeWalkthrough?.stepId);return{isParallel:Sa(l.activeWalkthrough?.parallelPrefix),hasNext:s0,currentStep:s+1,totalSteps:l.xyedges.length}});return y.jsxs($a,{propagate:!0,children:[y.jsx(Iee,{variant:"light",size:"xs",color:"orange",mr:"sm",onClick:l=>{l.stopPropagation(),e.stopWalkthrough()},rightSection:y.jsx(hQe,{size:10}),children:"Stop"},"stop-walkthrough"),y.jsx(qee,{disabled:!o,onClick:()=>e.walkthroughStep("previous"),leftSection:y.jsx(mQe,{size:10}),children:"Previous"},"prev"),y.jsx(Xs,{component:Qr,size:"md",radius:"sm",variant:r?"gradient":"transparent",gradient:{from:"red",to:"orange",deg:90},rightSection:y.jsx(Qr,{className:ye({fontSize:"xxs",display:r?"block":"none"}),children:"parallel"}),className:ye({alignItems:"baseline"}),children:y.jsxs(UWe,{children:[a," / ",i]})},"step-badge"),y.jsx(qee,{disabled:!n,onClick:()=>e.walkthroughStep("next"),rightSection:y.jsx(yQe,{size:10}),children:"Next"},"next"),r&&y.jsx(bQe,{},"parallel-frame")]})}const Vee=E.memo(()=>{const e=Jf(),r=AQ(),n=nS(CKe,{input:{viewModel:r}});return E.useEffect(()=>{const o=n.on("navigateTo",a=>{e.getSnapshot().context.view.id!==a.viewId&&e.send({type:"navigate.to",viewId:a.viewId})});return()=>o.unsubscribe()},[n,e]),UB(()=>{n.send({type:"update.inputs",inputs:{viewModel:r}})},[r]),y.jsx(Ff,{css:{alignItems:"flex-start",pointerEvents:"none",position:"absolute",top:"0",left:"0",margin:"0",width:"100%",gap:"xxs",maxWidth:["calc(100vw)","calc(100cqw)"],"@/sm":{margin:"xs",gap:"xs",width:"max-content",maxWidth:["calc(100vw - 2 * {spacing.md})","calc(100cqw - 2 * {spacing.md})"]}},children:y.jsxs(TKe,{value:n,children:[y.jsx(xQe,{actor:n}),y.jsx(dQe,{}),y.jsx(PZe,{})]})})});Vee.displayName="NavigationPanel";const xQe=({actor:e})=>{const r=wn(e,o=>o.hasTag("active")),n=wm();return y.jsxs(mr,{offset:{mainAxis:4},opened:r,position:"bottom-start",trapFocus:!0,...n,clickOutsideEvents:["pointerdown","mousedown","click"],onDismiss:()=>e.send({type:"dropdown.dismiss"}),children:[y.jsx(wQe,{actor:e}),r&&y.jsx(vZe,{})]})},wQe=({actor:e})=>{const r=Da(n=>n.activeWalkthrough!==null);return y.jsx(dm,{children:y.jsx(fu,{children:y.jsx(Qr,{layout:!0,className:Uo({layerStyle:"likec4.panel",position:"relative",gap:"xs",cursor:"pointer",paddingRight:"md",pointerEvents:"all",width:"100%"}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave"}),children:y.jsx($a,{mode:"popLayout",children:r?y.jsx(vQe,{}):y.jsx(nZe,{})})})})})},oR=ye({position:"absolute",bottom:"0",right:"0",padding:"2",margin:"0",width:"min-content",height:"min-content"}),kQe=ye({"--ai-radius":"0px",_noReduceGraphics:{"--ai-radius":"{radii.md}"}}),_Qe=ye({cursor:"default",userSelect:"none",minWidth:200,maxWidth:"calc(100vw - 20px)",backgroundColor:"mantine.colors.body/80",sm:{minWidth:300,maxWidth:"65vw"},md:{maxWidth:"40vw"},_dark:{backgroundColor:"mantine.colors.dark[6]/80"}}),EQe=ye({padding:"xxs"}),SQe=ye({backgroundColor:"transparent",transition:"all 100ms ease-in",_hover:{transition:"all 120ms ease-out",backgroundColor:"mantine.colors.primary[2]/50"},_dark:{_hover:{backgroundColor:"mantine.colors.dark[3]/40"}}});ye({fill:"var(--likec4-palette-fill)",stroke:"var(--likec4-palette-stroke)",strokeWidth:1,overflow:"visible",width:"100%",height:"auto",filter:` + drop-shadow(0 2px 3px rgb(0 0 0 / 22%)) + drop-shadow(0 1px 8px rgb(0 0 0 / 10%)) + `});const CQe=ye({fontWeight:500,letterSpacing:"0.2px",paddingTop:"0",paddingBottom:"0",textTransform:"lowercase",transition:"all 150ms ease-in-out",cursor:"pointer","--badge-radius":"2px","--badge-fz":"9.5px","--badge-padding-x":"3px","--badge-height":"13.5px","--badge-lh":"1","--badge-bg":"var(--likec4-palette-fill)","--badge-color":"var(--likec4-palette-hiContrast)"});/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const TQe=[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 16v.01",key:"svg-1"}],["path",{d:"M12 13a2 2 0 0 0 .914 -3.782a1.98 1.98 0 0 0 -2.414 .483",key:"svg-2"}]],RQe=yt("outline","help-circle","HelpCircle",TQe);/** + * @license @tabler/icons-react v3.35.0 - MIT + * + * This source code is licensed under the MIT license. + * See the LICENSE file in the root directory of this source tree. + */const AQe=[["path",{d:"M7 7l10 10",key:"svg-0"}],["path",{d:"M17 8l0 9l-9 0",key:"svg-1"}]],NQe=yt("outline","arrow-down-right","ArrowDownRight",AQe),DQe=({value:e})=>{const{title:r,color:n="primary",shape:o="rectangle"}=e,[a,i]=E.useState(null),l=Wt(),s=300,c=200;return y.jsx(zw,{shadow:"none",px:"xs",py:"sm",className:Je(SQe),"data-likec4-color":n,onMouseEnter:()=>{i(null),l.highlightNotation(e)},onMouseLeave:()=>{i(null),l.unhighlightNotation()},children:y.jsxs(Ur,{gap:"sm",align:"stretch",wrap:"nowrap",children:[y.jsx(Se,{flex:"0 0 70px",style:{position:"relative",width:70,height:lNe(70*(c/s),0)},children:y.jsx(gm,{data:{shape:o,width:s,height:c}})}),y.jsxs(ra,{gap:4,flex:1,children:[y.jsx(Ur,{gap:4,flex:"0 0 auto",children:e.kinds.map(u=>y.jsx(Xs,{className:Je(CQe),onMouseEnter:()=>{i(u),l.highlightNotation(e,u)},onMouseLeave:()=>{i(null),l.highlightNotation(e)},opacity:tq(a)&&a!==u?.25:1,children:u},u))}),y.jsx(wt,{component:"div",fz:"sm",fw:500,lh:"1.25",style:{textWrap:"pretty"},children:r})]})]})})},$Qe=e=>({id:e.view.id,notations:e.view.notation?.nodes??[],isVisible:!0}),PQe=E.memo(()=>{const e=MC(c=>c.height),{id:r,notations:n,isVisible:o}=Da($Qe),[a,i]=y$e({key:"notation-webview-collapsed",defaultValue:!0}),l=n.length>0,s=wm();return y.jsxs($a,{children:[!l&&o&&y.jsx(cl.div,{initial:{opacity:.75,translateX:"50%"},animate:{opacity:1,translateX:0},exit:{translateX:"100%",opacity:.6},className:oR,children:y.jsx(fo,{label:"View has no notations",color:"orange",...s,children:y.jsx(ci,{size:"lg",variant:"light",color:"orange",radius:"md",children:y.jsx(Hee,{})})})},"empty"),l&&o&&a&&y.jsx(cl.div,{initial:{opacity:.75,translateX:"50%"},animate:{opacity:1,translateX:0},exit:{translateX:"100%",opacity:.6},className:oR,children:y.jsx(fo,{label:"Show notation",color:"dark",fz:"xs",...s,children:y.jsx(or,{size:"lg",variant:"default",color:"gray",className:kQe,onClick:()=>i(!1),children:y.jsx(RQe,{stroke:1.5})})})},"collapsed"),l&&o&&!a&&y.jsx(cl.div,{initial:{opacity:.75,scale:.2},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.25},className:Je("react-flow__panel",oR),style:{transformOrigin:"bottom right"},children:y.jsx(Nf,{radius:"sm",withBorder:!0,shadow:"lg",className:_Qe,children:y.jsxs(Jd,{defaultValue:"first",radius:"xs",children:[y.jsxs(V0,{children:[y.jsx(or,{size:"md",variant:"subtle",color:"gray",ml:2,style:{alignSelf:"center"},onClick:()=>i(!0),children:y.jsx(NQe,{stroke:2})}),y.jsx(jf,{value:"first",fz:"xs",children:"Elements"}),y.jsx(jf,{value:"second",fz:"xs",disabled:!0,children:"Relationships"})]}),y.jsx(Zs,{value:"first",className:EQe,hidden:a,children:y.jsx(ta,{viewportProps:{style:{maxHeight:`min(40vh, ${Math.max(e-60,50)}px)`}},children:y.jsx(ra,{gap:0,children:n.map((c,u)=>y.jsx(DQe,{value:c},u))})})})]})})},r)]})}),Yee=E.memo(()=>{const{enableControls:e,enableNotations:r,enableSearch:n,enableRelationshipDetails:o}=wr(),a=v8e(),i=qG(),l=vBe();return y.jsxs(sG,{onReset:a,children:[e&&y.jsx(Tze,{children:y.jsx(Vee,{})}),i&&y.jsx(TXe,{overlaysActorRef:i}),r&&y.jsx(PQe,{}),n&&l&&y.jsx(hKe,{searchActorRef:l}),o&&y.jsx(wKe,{})]})});Yee.displayName="DiagramUI";function _m(e){return function(){return e}}const Wee=1e-12,aR=Math.PI,iR=2*aR,yp=1e-6,OQe=iR-yp;function Gee(e){this._+=e[0];for(let r=1,n=e.length;r=0))throw new Error(`invalid digits: ${e}`);if(r>15)return Gee;const n=10**r;return function(o){this._+=o[0];for(let a=1,i=o.length;ayp)if(!(Math.abs(p*c-u*d)>yp)||!i)this._append`L${this._x1=r},${this._y1=n}`;else{let g=o-l,b=a-s,x=c*c+u*u,w=g*g+b*b,k=Math.sqrt(x),C=Math.sqrt(f),_=i*Math.tan((aR-Math.acos((x+f-w)/(2*k*C)))/2),T=_/C,R=_/k;Math.abs(T-1)>yp&&this._append`L${r+T*d},${n+T*p}`,this._append`A${i},${i},0,0,${+(p*g>d*b)},${this._x1=r+R*c},${this._y1=n+R*u}`}}arc(r,n,o,a,i,l){if(r=+r,n=+n,o=+o,l=!!l,o<0)throw new Error(`negative radius: ${o}`);let s=o*Math.cos(a),c=o*Math.sin(a),u=r+s,d=n+c,p=1^l,f=l?a-i:i-a;this._x1===null?this._append`M${u},${d}`:(Math.abs(this._x1-u)>yp||Math.abs(this._y1-d)>yp)&&this._append`L${u},${d}`,o&&(f<0&&(f=f%iR+iR),f>OQe?this._append`A${o},${o},0,1,${p},${r-s},${n-c}A${o},${o},0,1,${p},${this._x1=u},${this._y1=d}`:f>yp&&this._append`A${o},${o},0,${+(f>=aR)},${p},${this._x1=r+o*Math.cos(i)},${this._y1=n+o*Math.sin(i)}`)}rect(r,n,o,a){this._append`M${this._x0=this._x1=+r},${this._y0=this._y1=+n}h${o=+o}v${+a}h${-o}Z`}toString(){return this._}}function LQe(e){let r=3;return e.digits=function(n){if(!arguments.length)return r;if(n==null)r=null;else{const o=Math.floor(n);if(!(o>=0))throw new RangeError(`invalid digits: ${n}`);r=o}return e},()=>new IQe(r)}function zQe(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Xee(e){this._context=e}Xee.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,r){switch(e=+e,r=+r,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 1:this._point=2;default:this._context.lineTo(e,r);break}}};function jQe(e){return new Xee(e)}function BQe(e){return e[0]}function FQe(e){return e[1]}function HQe(e,r){var n=_m(!0),o=null,a=jQe,i=null,l=LQe(s);e=typeof e=="function"?e:e===void 0?BQe:_m(e),r=typeof r=="function"?r:r===void 0?FQe:_m(r);function s(c){var u,d=(c=zQe(c)).length,p,f=!1,g;for(o==null&&(i=a(g=l())),u=0;u<=d;++u)!(uWee){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,c=3*e._l01_a*(e._l01_a+e._l12_a);o=(o*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/c,a=(a*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/c}if(e._l23_a>Wee){var u=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,d=3*e._l23_a*(e._l23_a+e._l12_a);i=(i*u+e._x1*e._l23_2a-r*e._l12_2a)/d,l=(l*u+e._y1*e._l23_2a-n*e._l12_2a)/d}e._context.bezierCurveTo(o,a,i,l,e._x2,e._y2)}function Zee(e,r){this._context=e,this._alpha=r}Zee.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,r){if(e=+e,r=+r,this._point){var n=this._x2-e,o=this._y2-r;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+o*o,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 1:this._point=2;break;case 2:this._point=3;default:Kee(this,e,r);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=r}},(function e(r){function n(o){return r?new Zee(o,r):new sR(o,0)}return n.alpha=function(o){return e(+o)},n})(.5);function Qee(e,r){this._context=e,this._alpha=r}Qee.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,r){if(e=+e,r=+r,this._point){var n=this._x2-e,o=this._y2-r;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+o*o,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Kee(this,e,r);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=r}};const UQe=(function e(r){function n(o){return r?new Qee(o,r):new cR(o,0)}return n.alpha=function(o){return e(+o)},n})(.5);class ia{constructor(r,n){this.x=r,this.y=n}static create(r){return new ia(r.x,r.y)}static add(r,n){return{x:r.x+n.x,y:r.y+n.y}}static sub(r,n){return{x:r.x-n.x,y:r.y-n.y}}static mul(r,n){return{x:r.x*n,y:r.y*n}}static dot(r,n){return r.x*n.x+r.y*n.y}static cross(r,n){return new ia(r.y*n.x-r.x*n.y,r.x*n.y-r.y*n.x)}static setLength(r,n){return bp(r).setLength(n)}add(r){return new ia(this.x+r.x,this.y+r.y)}sub(r){return new ia(this.x-r.x,this.y-r.y)}mul(r){return new ia(this.x*r,this.y*r)}dot(r){return this.x*r.x+this.y*r.y}cross(r){return new ia(this.y*r.x-this.x*r.y,this.x*r.y-this.y*r.x)}abs(){return Math.sqrt(this.x*this.x+this.y*this.y)}setLength(r){return this.mul(r/this.abs())}}function bp(e){return ia.create(e)}const qQe=".react-flow__edge.selected",VQe=ye({overflow:"visible",position:"absolute",pointerEvents:"none",top:"0",left:"0",mixBlendMode:"normal"}),YQe=ye({fill:"var(--likec4-palette-relation-stroke)",stroke:"var(--likec4-palette-relation-stroke)",fillOpacity:.75,strokeWidth:1,cursor:"grab",pointerEvents:"auto",visibility:"hidden",_hover:{fillOpacity:1,stroke:"mantine.colors.primary.filledHover",strokeWidth:10,transition:"stroke 100ms ease-out, stroke-width 100ms ease-out"},[`:where(${qQe}, [data-likec4-hovered='true']) &`]:{visibility:"visible",transition:"fill-opacity 150ms ease-out, stroke 150ms ease-out, stroke-width 150ms ease-out",transitionDelay:"50ms",fillOpacity:1,strokeWidth:5}}),WQe=ye({cursor:"grabbing","& *":{cursor:"grabbing !important"},"& .react-flow__edge-interaction":{cursor:"grabbing !important"}});function GQe(e){const{width:r,height:n}=Wn(e),{x:o,y:a}=e.internals.positionAbsolute;return{x:o+r/2,y:a+n/2}}function r4(e,r,n=0){const o=GQe(e),{width:a,height:i}=Wn(e),l=new ia(r.x,r.y).sub(o),s=(n+(a||0)/2)/l.x,c=(n+(i||0)/2)/l.y,u=Math.min(Math.abs(s),Math.abs(c));return bp(l).mul(u).add(o)}const XQe=HQe().curve(UQe).x(e=>e.x).y(e=>e.y),KQe=LT(e=>{const[r,n]=E.useState(!1),o=IC(),a=HVe(),i=Wt(),{enableNavigateTo:l,enableEdgeEditing:s}=wr(),{id:c,source:u,sourceX:d,sourceY:p,target:f,targetX:g,targetY:b,selected:x=!1,data:{id:w,points:k,hovered:C=!1,active:_=!1,labelBBox:T,labelXY:R,...A},style:D={}}=e,N=l?A.navigateTo:void 0,P=mt(wQ(u),`source node ${u} not found`),O=mt(wQ(f),`target node ${f} not found`),B=Sa(A.controlPoints)||!_y(P.internals.positionAbsolute,P.data)||!_y(O.internals.positionAbsolute,O.data);let L=A.controlPoints??SQ(e.data),Y;if(B){const W={x:d,y:p},X={x:g,y:b},Z=6,oe=A.dir==="back"?[X,r4(O,pf(L)??W,Z),...L,r4(P,Ud(L)??X,Z),W]:[W,r4(P,pf(L)??X,Z),...L,r4(O,Ud(L)??W,Z),X];Y=mt(XQe(oe))}else Y=tYe(k);let M=T?.x??0,q=T?.y??0;const[I,U]=E.useState({x:R?.x??M,y:R?.y??q}),V=E.useRef(null);E.useEffect(()=>{const W=V.current;if(!W)return;const X=W.getPointAtLength(W.getTotalLength()*.5),Z={x:yi(X.x),y:yi(X.y)};U(oe=>_y(oe,Z)?oe:Z)},[Y]),g8e(()=>{!T||T.x===I.x&&T.y===I.y||i.updateEdgeData(c,{labelXY:{x:I.x,y:I.y}})},[I],50,300),(B||r)&&(M=I.x,q=I.y);const G=(W,X,Z)=>{const{addSelectedEdges:oe}=o.getState();oe([c]);const ee=i.cancelSaveManualLayout();X.stopPropagation();let re=!1,pe={x:X.clientX,y:X.clientY};const Ce=be=>{const Me={x:be.clientX,y:be.clientY};if(!_y(pe,Me)){n(!0),re||(i.send({type:"xyflow.edgeEditingStarted",edge:e.data}),re=!0),pe=Me;const{x:Xe,y:Ge}=a.screenToFlowPosition(pe,{snapToGrid:!1}),_t=L.slice();_t[W]={x:yi(Xe),y:yi(Ge)},i.updateEdgeData(c,{controlPoints:_t})}be.stopPropagation()},ce=be=>{Z.removeEventListener("pointermove",Ce,{capture:!0}),re&&be.stopPropagation(),(re||ee)&&i.scheduleSaveManualLayout(),n(!1)},de=be=>{be.stopPropagation(),be.preventDefault()};Z.addEventListener("pointermove",Ce,{capture:!0}),Z.addEventListener("pointerup",ce,{once:!0,capture:!0}),Z.addEventListener("click",de,{capture:!0,once:!0})},F=(W,X,Z)=>{if(L.length<=1)return;const oe=ee=>{const re=L.slice();re.splice(W,1),ee.stopPropagation(),setTimeout(()=>{i.updateEdgeData(c,{controlPoints:re}),i.scheduleSaveManualLayout()},10)};Z.addEventListener("pointerup",oe,{once:!0,capture:!0}),X.stopPropagation()},J=(W,X)=>{const{domNode:Z}=o.getState();if(!(!Z||X.pointerType!=="mouse"))switch(X.button){case 0:G(W,X,Z);break;case 2:F(W,X,Z);break}},Q=W=>{const{domNode:X}=o.getState();if(!X||W.pointerType!=="mouse"||W.button!==2)return;const Z=[new ia(d,p),...L.map(bp)||[],new ia(g,b)];let oe={x:W.clientX,y:W.clientY};const ee=bp(a.screenToFlowPosition(oe,{snapToGrid:!1}));let re=0,pe=1/0;for(let ce=0;ce{W.stopPropagation(),i.navigateTo(N)}})})})]}),s&&L.length>0&&(x||C||r)&&y.jsx(OU,{children:y.jsx(Ry,{component:"svg",className:VQe,...e,style:{...D,zIndex:z},children:y.jsx("g",{onContextMenu:W=>{W.preventDefault(),W.stopPropagation()},children:L.map((W,X)=>y.jsx("circle",{onPointerDown:Z=>J(X,Z),className:Je("nodrag nopan",YQe),cx:Math.round(W.x),cy:Math.round(W.y),r:3},"controlPoints"+w+"#"+X))})})})]})}),n4=16;function ZQe(e){const r=Wt(),{navigateTo:n}=e.data,o=e.source===e.target,a=e.sourceX>e.targetX,[i]=_x({sourceX:e.sourceX,sourceY:e.sourceY,sourcePosition:e.sourcePosition,targetX:e.targetX,targetY:e.targetY,targetPosition:e.targetPosition,...o&&{offset:30,borderRadius:16}});let l=e.sourceX;switch(!0){case o:l=e.sourceX+24+n4;break;case a:l=e.sourceX-n4;break;default:l=e.sourceX+n4;break}return y.jsxs(Ry,{...e,children:[y.jsx(Ay,{edgeProps:e,svgPath:i}),y.jsx(B2,{edgeProps:e,labelPosition:{x:l,y:e.sourceY+(o?0:n4),translate:a?"translate(-100%, 0)":void 0},children:y.jsx(Ty,{edgeProps:e,children:n&&y.jsx(j2,{onClick:s=>{s.stopPropagation(),r.navigateTo(n)}})})})]})}const Jee=({extraButtons:e,...r})=>{const{enableNavigateTo:n,enableRelationshipBrowser:o}=wr(),a=Wt(),{navigateTo:i,modelFqn:l}=r.data;let s=E.useMemo(()=>{const c=[];return i&&n&&c.push({key:"navigate",icon:y.jsx(gi,{}),onClick:u=>{u.stopPropagation(),a.navigateTo(i,r.data.id)}}),o&&c.push({key:"relationships",icon:y.jsx(Ny,{}),onClick:u=>{u.stopPropagation(),a.openRelationshipsBrowser(l)}}),c},[n,o,a,l,i,r.data.id]);return e&&To(e,1)&&(s=[...s,...e]),y.jsx(H2,{...r,buttons:s})},QQe=({extraButtons:e,...r})=>{const{enableNavigateTo:n,enableRelationshipBrowser:o}=wr(),a=Wt(),{id:i,navigateTo:l,modelFqn:s}=r.data;let c=E.useMemo(()=>{const u=[];return l&&n&&u.push({key:"navigate",icon:y.jsx(gi,{}),onClick:d=>{d.stopPropagation(),a.navigateTo(l,i)}}),o&&s&&u.push({key:"relationships",icon:y.jsx(Ny,{}),onClick:d=>{d.stopPropagation(),a.openRelationshipsBrowser(s)}}),u},[n,o,a,s,l,i]);return e&&To(e,1)&&(c=[...c,...e]),y.jsx(H2,{...r,buttons:c})};function JQe({data:{hovered:e=!1},icon:r,onClick:n}){const o=t9(e,e?130:0)[0]&&e;return y.jsx(Qr,{initial:!1,animate:{scale:o?1.2:1,x:o?-1:0,y:o?-1:0},whileHover:{scale:1.4,x:-3,y:-1},className:"likec4-compound-navigation compound-action",whileTap:{scale:1},onClick:cn,children:y.jsx(or,{className:Je("nodrag nopan",YJ({delay:e&&!o}),E2({variant:"transparent"})),onClick:n,onDoubleClick:cn,children:r??y.jsx(gi,{stroke:2})})})}const ete=e=>{const{enableNavigateTo:r}=wr(),n=Wt(),{navigateTo:o}=e.data;return o&&r?y.jsx(JQe,{onClick:a=>{a.stopPropagation(),n.navigateTo(o,e.id)},...e}):null},tte=["primary","secondary","muted"],rte=fo.withProps({color:"dark",fz:"xs",openDelay:400,closeDelay:150,label:"",children:null,offset:4,withinPortal:!1});function o4(e,r){const{onChange:n}=lc(),o=Wt(),[a,i]=E.useState(null),l=it(c=>{if(c===null){nt(a,"originalColor is null"),i(null),o.updateNodeData(r.data.id,{color:a});return}i(u=>u??r.data.color),o.updateNodeData(r.data.id,{color:c})}),s=it(c=>{n?.({change:{op:"change-element-style",style:c,targets:[e]}});const{shape:u,color:d,...p}=c;o.updateNodeData(r.data.id,{...u&&{shape:u},...d&&{color:d},style:p})});return{elementColor:a??r.data.color,onColorPreview:l,onChange:s}}function a4({fqn:e}){const r=Wt();return y.jsx(rte,{label:"Browse relationships",children:y.jsx(or,{size:"sm",variant:"subtle",color:"gray",onClick:n=>{n.stopPropagation(),r.openRelationshipsBrowser(e)},children:y.jsx(Ny,{stroke:2,style:{width:"72%",height:"72%"}})})})}function i4(e){const{onOpenSource:r}=lc();return r?y.jsx(rte,{label:"Open source",children:y.jsx(or,{size:"sm",variant:"subtle",color:"gray",onClick:n=>{n.stopPropagation(),e.elementId?r?.({element:e.elementId}):e.deploymentId&&r?.({deployment:e.deploymentId})},children:y.jsx(fm,{stroke:1.8,style:{width:"70%"}})})}):null}function nte(){const e=E.useContext(W0);e||console.error("No LikeC4ModelContext found");const r=e?.$styles??TI.DEFAULT,[n,o]=E.useState(r);return E.useEffect(()=>{o(a=>a.equals(r)?a:r)},[r]),n}function l4({elementColor:e,elementOpacity:r,onColorPreview:n,isOpacityEditable:o=!1,onChange:a,...i}){const{theme:l}=nte();return y.jsxs(mr,{clickOutsideEvents:["pointerdown","mousedown","click"],position:"right-end",offset:2,withinPortal:!1,...i,children:[y.jsx(fu,{children:y.jsx(Zn,{variant:"subtle",color:"gray",size:"compact-xs",px:3,children:y.jsx(j0,{color:l.colors[e].elements.fill,size:14,withShadow:!0,style:{color:"#fff",cursor:"pointer"}})})}),y.jsxs(Gs,{p:"xs",children:[y.jsx(eJe,{theme:l,elementColor:e,onColorPreview:n,onChange:s=>a({color:s})}),o&&y.jsxs(y.Fragment,{children:[y.jsx(N7,{h:"xs"}),y.jsx(If,{label:"opacity",labelPosition:"left"}),y.jsx(N7,{h:"xs"}),y.jsx(tJe,{elementOpacity:r,onOpacityChange:s=>{a({opacity:s})}})]})]})]})}function eJe({theme:e,elementColor:r,onColorPreview:n,onChange:o}){const a=l=>s=>{s.stopPropagation(),n(null),r!==l&&o(l)},i=V8(e.colors).filter(l=>!tte.includes(l));return y.jsx(ra,{gap:2,onMouseLeave:()=>n(null),children:y.jsxs(Qd,{openDelay:1e3,closeDelay:300,children:[y.jsx(Of,{maw:120,gap:"6",justify:"flex-start",align:"flex-start",direction:"row",wrap:"wrap",children:tte.map(l=>y.jsx(fo,{label:l,fz:"xs",color:"dark",offset:2,withinPortal:!1,transitionProps:{duration:140,transition:"slide-up"},children:y.jsx(j0,{color:e.colors[l].elements.fill,size:18,withShadow:!0,onMouseEnter:()=>n(l),onClick:a(l),style:{color:"#fff",cursor:"pointer"},children:r===l&&y.jsx(rW,{style:{width:Ae(10),height:Ae(10)}})})},l))}),y.jsx(Of,{mt:"sm",maw:110,gap:"6",justify:"flex-start",align:"flex-start",direction:"row",wrap:"wrap",children:i.map(l=>y.jsx(fo,{label:l,fz:"xs",color:"dark",offset:2,transitionProps:{duration:140,transition:"slide-up"},children:y.jsx(j0,{color:e.colors[l].elements.fill,size:18,onMouseEnter:()=>n(l),onClick:a(l),style:{color:"#fff",cursor:"pointer"},children:r===l&&y.jsx(rW,{style:{width:Ae(10),height:Ae(10)}})})},l))})]})})}function tJe({elementOpacity:e=100,onOpacityChange:r}){const[n,o]=E.useState(e);return UB(()=>{o(e)},[e]),y.jsx(A7,{size:"sm",color:"dark",value:n,onChange:o,onChangeEnd:r})}const rJe=ye({color:"mantine.colors.dimmed",fontSize:"10px",fontWeight:600,maxWidth:"220px",cursor:"default",userSelect:"all",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"}),nJe=()=>Da(e=>e.xynodes.filter(r=>r.selected).length);function s4({title:e,children:r,nodeProps:n,...o}){const a=nJe(),{selected:i=!1,dragging:l=!1,data:{hovered:s=!1}}=n,c=s&&a===0||i&&a===1;let u=150;c?i?u=100:u=1e3:a>0&&(u=50);const[d]=t9(c,u);return d?y.jsx(jU,{isVisible:!l,offset:4,...o,children:y.jsx(Nf,{className:Je("nodrag","nopan"),px:5,pb:8,pt:4,radius:"sm",shadow:"xl",onDoubleClickCapture:cn,onPointerDown:cn,onClick:cn,onDoubleClick:cn,withBorder:!0,children:y.jsxs(ra,{gap:"6px",children:[y.jsx(Se,{px:"4px",children:y.jsx(wt,{className:rJe,children:e})}),y.jsx(Ur,{gap:4,children:r})]})})}):null}function oJe(e){const{enableVscode:r,enableRelationshipBrowser:n}=wr(),{data:{style:o,modelFqn:a}}=e,{elementColor:i,onColorPreview:l,onChange:s}=o4(a,e),c=o?.opacity??100;return y.jsxs(s4,{nodeProps:e,title:a,align:"start",children:[y.jsx(l4,{elementColor:i,onColorPreview:l,isOpacityEditable:!0,elementOpacity:c,onChange:s,position:"left-start"}),y.jsx(ote,{elementBorderStyle:o?.border??(c<99?"dashed":"none"),onChange:s}),r&&y.jsx(i4,{elementId:a}),n&&y.jsx(a4,{fqn:a})]})}function aJe(e){const{enableVscode:r,enableRelationshipBrowser:n}=wr(),{data:{deploymentFqn:o,style:a,modelFqn:i}}=e,{elementColor:l,onColorPreview:s,onChange:c}=o4(o,e);return y.jsxs(s4,{nodeProps:e,title:o,align:"start",children:[y.jsx(l4,{elementColor:l,onColorPreview:s,isOpacityEditable:!0,elementOpacity:a?.opacity,onChange:c,position:"left-start"}),y.jsx(ote,{elementBorderStyle:a?.border,onChange:c}),r&&y.jsx(i4,{deploymentId:o}),n&&i&&y.jsx(a4,{fqn:i})]})}function ote({elementBorderStyle:e="dashed",onChange:r}){const[n,o]=E.useState(e);return E.useEffect(()=>{o(e)},[e]),y.jsx(Se,{children:y.jsx(U0,{size:"xs",fullWidth:!0,withItemsBorders:!1,value:n,onChange:a=>{const i=a;o(i),r({border:i})},styles:{label:{paddingTop:"0.5",paddingBottom:"0.5"}},data:[{label:"Solid",value:"solid"},{label:"Dashed",value:"dashed"},{label:"Dotted",value:"dotted"},{label:"None",value:"none"}]})})}function iJe(e){const{enableVscode:r,enableRelationshipBrowser:n}=wr(),{data:{shape:o,modelFqn:a}}=e,{elementColor:i,onColorPreview:l,onChange:s}=o4(a,e);return y.jsxs(s4,{nodeProps:e,title:a,align:"start",children:[y.jsx(ate,{elementShape:o,onChange:s}),y.jsx(l4,{elementColor:i,onColorPreview:l,onChange:s,position:"right-end"}),r&&y.jsx(i4,{elementId:a}),n&&y.jsx(a4,{fqn:a})]})}function lJe(e){const{enableVscode:r,enableRelationshipBrowser:n}=wr(),{data:{shape:o,deploymentFqn:a,modelFqn:i}}=e,{elementColor:l,onColorPreview:s,onChange:c}=o4(a,e);return y.jsxs(s4,{nodeProps:e,title:a,align:"start",children:[y.jsx(ate,{elementShape:o,onChange:c}),y.jsx(l4,{elementColor:l,onColorPreview:s,onChange:c,position:"right-end"}),r&&y.jsx(i4,{deploymentId:a}),n&&i&&y.jsx(a4,{fqn:i})]})}function ate({elementShape:e,onChange:r}){return y.jsxs(ho,{openDelay:300,closeDelay:450,floatingStrategy:"fixed",closeOnClickOutside:!0,clickOutsideEvents:["pointerdown","mousedown","click"],closeOnEscape:!0,closeOnItemClick:!1,position:"top-start",offset:2,styles:{item:{padding:"calc(var(--mantine-spacing-xs) / 1.5) var(--mantine-spacing-xs)"}},withinPortal:!1,children:[y.jsx(Fw,{children:y.jsx(Zn,{variant:"light",color:"gray",size:"compact-xs",rightSection:y.jsx(IT,{size:12}),children:e})}),y.jsx(F0,{onDoubleClick:cn,onClick:cn,children:Iye.map(n=>y.jsx(H0,{fz:12,fw:500,value:n,rightSection:e===n?y.jsx(TQ,{size:12}):void 0,onClick:o=>{o.stopPropagation(),r({shape:n})},children:n},n))})]})}const c4={top:"50%",left:"50%",right:"unset",bottom:"unset",visibility:"hidden",width:5,height:5,transform:"translate(-50%, -50%)"},Ly=()=>y.jsxs(y.Fragment,{children:[y.jsx(uo,{type:"target",position:tt.Top,style:c4}),y.jsx(uo,{type:"target",position:tt.Left,style:c4}),y.jsx(uo,{type:"source",position:tt.Right,style:c4}),y.jsx(uo,{type:"source",position:tt.Bottom,style:c4})]});function uR(e){const{enableElementDetails:r}=wr(),n=Wt(),o=e.data.modelFqn;return!r||!o?null:y.jsx(FT,{...e,onClick:a=>{a.stopPropagation(),n.openElementDetails(o,e.id)}})}function ite(e){const{enableElementDetails:r}=wr(),n=Wt(),o=e.data.modelFqn;return!r||!o?null:y.jsx(WJ,{...e,onClick:a=>{a.stopPropagation(),n.openElementDetails(o,e.id)}})}function sJe(e){const{enableElementTags:r,enableReadOnly:n}=wr();return y.jsxs(mm,{nodeProps:e,children:[y.jsx(gm,{...e}),y.jsx(ml,{...e}),r&&y.jsx(Ey,{...e}),y.jsx(Jee,{...e}),y.jsx(uR,{...e}),!n&&y.jsx(iJe,{...e}),y.jsx(Ly,{})]})}function cJe(e){const{enableElementTags:r,enableReadOnly:n}=wr();return y.jsxs(mm,{nodeProps:e,children:[y.jsx(gm,{...e}),y.jsx(ml,{...e}),r&&y.jsx(Ey,{...e}),y.jsx(QQe,{...e}),y.jsx(uR,{...e}),!n&&y.jsx(lJe,{...e}),y.jsx(Ly,{})]})}function uJe(e){const{enableElementDetails:r,enableReadOnly:n}=wr();return y.jsxs(Dy,{nodeProps:e,children:[y.jsx($y,{...e}),y.jsx(ete,{...e}),r&&y.jsx(ite,{...e}),!n&&y.jsx(oJe,{...e}),y.jsx(Ly,{})]})}function dJe(e){const{enableElementDetails:r,enableReadOnly:n}=wr();return y.jsxs(Dy,{nodeProps:e,children:[y.jsx($y,{...e}),y.jsx(ete,{...e}),r&&y.jsx(ite,{...e}),!n&&y.jsx(aJe,{...e}),y.jsx(Ly,{})]})}function pJe(e){return y.jsxs(Dy,{nodeProps:e,children:[y.jsx($y,{...e}),y.jsx(Ly,{})]})}const hJe={left:tt.Left,right:tt.Right,top:tt.Top,bottom:tt.Bottom},fJe=({data:e,port:r})=>y.jsxs(y.Fragment,{children:[y.jsx(qr,{"data-likec4-color":e.color,className:ye({position:"absolute",backgroundColor:"var(--likec4-palette-fill)",rounded:"xs",width:{base:"5px",_whenHovered:"7px",_whenSelected:"7px"},transition:"fast",translateX:"-1/2",translateY:"-1/2",translate:"auto"}),style:{top:r.cy,left:r.cx,height:r.height}}),y.jsx(uo,{id:r.id,type:r.type,position:hJe[r.position],style:{top:r.cy-3,left:r.cx-3,width:6,height:6,right:"unset",bottom:"unset",visibility:"hidden",transform:r.position==="left"?"translate(-150%, 0)":"translate(100%, 0)"}})]}),mJe=e=>Sa(e.modelFqn);function gJe(e){const r=e.data,{positionAbsoluteY:n,data:{viewHeight:o,hovered:a=!1,ports:i}}=e;return y.jsxs(y.Fragment,{children:[y.jsx(qr,{"data-likec4-color":"gray",className:ye({position:"absolute",rounded:"xs",top:"1",pointerEvents:"none",transition:"fast",translateX:"-1/2",translate:"auto"}),style:{backgroundColor:"var(--likec4-palette-stroke)",opacity:a?.6:.4,left:"50%",width:a?3:2,height:o-n,zIndex:-1,pointerEvents:"none"}}),y.jsxs(mm,{nodeProps:e,children:[y.jsx(gm,{...e}),y.jsx(ml,{...e}),mJe(r)&&y.jsxs(y.Fragment,{children:[y.jsx(Jee,{...e,data:r}),y.jsx(uR,{...e,data:r})]})]}),i.map(l=>y.jsx(fJe,{port:l,data:e.data},l.id))]})}function yJe(e){return y.jsx(qr,{"data-likec4-color":e.data.color,css:{width:"100%",height:"100%",border:"default",rounded:"sm",borderWidth:1,"--_color":{base:"var(--likec4-palette-stroke)",_dark:"[color-mix(in srgb, var(--likec4-palette-hiContrast) 40%, var(--likec4-palette-fill))]"},borderColor:"[var(--_color)/30]",backgroundColor:"var(--likec4-palette-fill)/15",pointerEvents:"none",paddingLeft:"2",paddingTop:"0.5",fontSize:"xs",fontWeight:"bold",letterSpacing:".75px",color:"[var(--_color)/75]"},children:"PARALLEL"})}const vp={ElementNode:sJe,DeploymentNode:cJe,CompoundElementNode:uJe,CompoundDeploymentNode:dJe,ViewGroupNode:pJe,SequenceActorNode:gJe,SequenceParallelArea:yJe},lte={RelationshipEdge:KQe,SequenceStepEdge:ZQe};class Em{static LeftPadding=40;static RightPadding=40;static TopPadding=55;static BottomPadding=40;id;minX=1/0;minY=1/0;maxX=-1/0;maxY=-1/0;get positionAbsolute(){return{x:this.minX,y:this.minY}}set positionAbsolute(r){const n=Math.round(r.x),o=Math.round(r.y);this.maxX+=n-this.minX,this.maxY+=o-this.minY,this.minX=n,this.minY=o}get dimensions(){return{width:this.maxX-this.minX,height:this.maxY-this.minY}}get position(){const r=this.positionAbsolute;if(!this.parent)return r;const n=this.parent.positionAbsolute;return{x:r.x-n.x,y:r.y-n.y}}constructor(r,n=null){this.id=r.id,this.positionAbsolute=n?{x:r.position.x+n.minX,y:r.position.y+n.minY}:r.position;const{width:o,height:a}=Wn(r);this.maxX=this.minX+Math.ceil(o),this.maxY=this.minY+Math.ceil(a),n&&n.children.push(this)}}class dR extends Em{constructor(r,n=null){super(r,n),this.parent=n}children=[]}class bJe extends Em{constructor(r,n=null){super(r,n),this.parent=n}}function ste(e,r){const{parentLookup:n,nodeLookup:o}=e.getState(),a=new Map,i=g=>{const b=[];let x=o.get(g)?.parentId,w;for(;x&&(w=o.get(x));)b.push(w.id),x=w.parentId;return b},l=new Set(r.flatMap(i)),s=[...o.values()].flatMap(g=>g.parentId?[]:{xynode:g,parent:null});for(;s.length>0;){const{xynode:g,parent:b}=s.shift();if(!r.includes(g.id)&&g.type!=="element"&&g.type!=="deployment"&&l.has(g.id)){const x=new dR(g,b);a.set(g.id,x),n.get(g.id)?.forEach(w=>{s.push({xynode:w,parent:x})})}else a.set(g.id,new bJe(g,b))}const c=[...a.values()];u(c);function u(g){for(const b of g){if(!(b instanceof dR))continue;u(b.children);const x={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};for(const w of b.children)x.minX=Math.min(x.minX,w.minX),x.minY=Math.min(x.minY,w.minY),x.maxX=Math.max(x.maxX,w.maxX),x.maxY=Math.max(x.maxY,w.maxY);b.minX=x.minX-Em.LeftPadding,b.minY=x.minY-Em.TopPadding,b.maxX=x.maxX+Em.RightPadding,b.maxY=x.maxY+Em.BottomPadding}}function d(){u(c),e.getState().triggerNodeChanges(c.reduce((g,b)=>(g.push({id:b.id,type:"position",dragging:!1,position:b.position,positionAbsolute:b.positionAbsolute}),b instanceof dR&&g.push({id:b.id,type:"dimensions",setAttributes:!0,dimensions:b.dimensions}),g),[]))}let p=null;function f(){c.length!==0&&(p??=requestAnimationFrame(()=>{p=null;const{nodeLookup:g}=e.getState();for(const b of r){const x=mt(a.get(b)),w=mt(g.get(b));x.positionAbsolute=w.internals.positionAbsolute}d()}))}return{rects:a,updateXYFlowNodes:d,onMove:f}}function vJe(){const e=IC(),r=Wt(),n=E.useRef(void 0);return E.useMemo(()=>{let o=!1;const a={x:0,y:0};let i=!1;return{onNodeDragStart:(l,s)=>{o=r.cancelSaveManualLayout();const{nodeLookup:c}=e.getState(),u=yn(Array.from(c.values()),df(d=>d.draggable!==!1&&(d.dragging===!0||d.id===s.id||d.selected===!0)));To(u,1)&&(n.current=ste(e,Ro(u,d=>d.id))),a.x=l.clientX,a.y=l.clientY,i=!1},onNodeDrag:l=>{i=Math.abs(l.clientX-a.x)>4||Math.abs(l.clientY-a.y)>4,n.current?.onMove()},onNodeDragStop:l=>{i=Math.abs(l.clientX-a.x)>4||Math.abs(l.clientY-a.y)>4,(o||i)&&r.scheduleSaveManualLayout(),n.current=void 0}}},[e,r])}const xJe={relationship:lte.RelationshipEdge,"seq-step":lte.SequenceStepEdge},Cu={element:ic(vp.ElementNode),deployment:ic(vp.DeploymentNode),"compound-element":ic(vp.CompoundElementNode),"compound-deployment":ic(vp.CompoundDeploymentNode),"view-group":ic(vp.ViewGroupNode),"seq-actor":ic(vp.SequenceActorNode),"seq-parallel":ic(vp.SequenceParallelArea)};function wJe(e){return!e||iu(e)?Cu:{element:e.element??Cu.element,deployment:e.deployment??Cu.deployment,"compound-element":e.compoundElement??Cu["compound-element"],"compound-deployment":e.compoundDeployment??Cu["compound-deployment"],"view-group":e.viewGroup??Cu["view-group"],"seq-actor":e.seqActor??Cu["seq-actor"],"seq-parallel":e.seqParallel??Cu["seq-parallel"]}}const kJe=e=>({initialized:e.initialized.xydata&&e.initialized.xyflow,nodes:e.xynodes,edges:e.xyedges,pannable:e.pannable,zoomable:e.zoomable,fitViewPadding:e.fitViewPadding,enableFitView:e.features.enableFitView,enableReadOnly:e.features.enableReadOnly||e.toggledFeatures.enableReadOnly||e.dynamicViewVariant==="sequence"&&e.view._type==="dynamic",...!e.features.enableFitView&&{viewport:{x:-Math.min(e.view.bounds.x,0),y:-Math.min(e.view.bounds.y,0),zoom:1}}}),_Je=(e,r)=>e.initialized===r.initialized&&e.pannable===r.pannable&&e.zoomable===r.zoomable&&e.enableFitView===r.enableFitView&&e.enableReadOnly===r.enableReadOnly&&ut(e.fitViewPadding,r.fitViewPadding)&&Gn(e.nodes,r.nodes)&&Gn(e.edges,r.edges)&&Gn(e.viewport??null,r.viewport??null);function EJe({background:e="dots",nodesDraggable:r=!1,nodesSelectable:n=!1,reactFlowProps:o={},children:a,renderNodes:i}){const l=Wt(),{initialized:s,nodes:c,edges:u,enableReadOnly:d,enableFitView:p,...f}=Da(kJe,_Je),{onNodeContextMenu:g,onCanvasContextMenu:b,onEdgeContextMenu:x,onNodeClick:w,onEdgeClick:k,onCanvasClick:C,onCanvasDblClick:_}=lc(),T=!d,R=_ze(),A=vJe(),D=Sze(),N=qq(()=>{D.set(!0)},R?120:400),P=vf(()=>{N.clear(),D.get()&&D.set(!1)},R?350:200),O=it(M=>{M&&(D.get()||N.start(),P())}),B=it((M,q)=>{N.clear(),l.send({type:"xyflow.viewportMoved",viewport:q,manually:!!M})}),L=it(()=>{l.send({type:"xyflow.resized"})}),Y=qB(()=>wJe(i),[i],DQ);return D2(()=>{console.warn("renderNodes changed - this might degrade performance")},[Y]),y.jsx(UC,{nodes:c,edges:u,className:Je(s?"initialized":"not-initialized"),nodeTypes:Y,edgeTypes:xJe,onNodesChange:it(M=>{l.send({type:"xyflow.applyNodeChanges",changes:M})}),onEdgesChange:it(M=>{l.send({type:"xyflow.applyEdgeChanges",changes:M})}),background:s?e:"transparent",fitView:!1,onNodeClick:it((M,q)=>{M.stopPropagation(),l.send({type:"xyflow.nodeClick",node:q}),w?.(l.findDiagramNode(q.id),M)}),onEdgeClick:it((M,q)=>{M.stopPropagation(),l.send({type:"xyflow.edgeClick",edge:q}),k?.(l.findDiagramEdge(q.id),M)}),onPaneClick:it(M=>{M.stopPropagation(),l.send({type:"xyflow.paneClick"}),C?.(M)}),onDoubleClick:it(M=>{M.stopPropagation(),M.preventDefault(),l.send({type:"xyflow.paneDblClick"}),_?.(M)}),onNodeMouseEnter:it((M,q)=>{M.stopPropagation(),q.data.hovered||l.send({type:"xyflow.nodeMouseEnter",node:q})}),onNodeMouseLeave:it((M,q)=>{M.stopPropagation(),q.data.hovered&&l.send({type:"xyflow.nodeMouseLeave",node:q})}),onEdgeMouseEnter:it((M,q)=>{M.stopPropagation(),q.data.hovered||l.send({type:"xyflow.edgeMouseEnter",edge:q,event:M})}),onEdgeMouseLeave:it((M,q)=>{M.stopPropagation(),q.data.hovered&&l.send({type:"xyflow.edgeMouseLeave",edge:q,event:M})}),onMove:O,onMoveEnd:B,onInit:it(M=>{l.send({type:"xyflow.init",instance:M})}),onNodeContextMenu:it((M,q)=>{const I=mt(l.findDiagramNode(q.id),`diagramNode ${q.id} not found`);g?.(I,M)}),onEdgeContextMenu:it((M,q)=>{const I=mt(l.findDiagramEdge(q.id),`diagramEdge ${q.id} not found`);x?.(I,M)}),onPaneContextMenu:it(M=>{b?.(M)}),...p&&{onViewportResize:L},nodesDraggable:T&&r,nodesSelectable:n,edgesFocusable:!1,...T&&r&&A,...f,...o,children:a})}function SJe(e){const{view:r,nodesSelectable:n}=e,o=[],a=[],i=new Map,l=E6.from(r.nodes.reduce((p,f)=>(i.set(f.id,f),f.parent||p.push({node:f,parent:null}),p),[]));let s=p=>!0;if(e.where)try{const p=Ad(e.where);s=f=>p({...sq(f,["tags","kind"]),..."source"in f?{source:u(f.source)}:f,..."target"in f?{target:u(f.target)}:f})}catch(p){console.error("Error in where filter:",p)}const c="",u=p=>mt(i.get(p),`Node not found: ${p}`);let d;for(;d=l.dequeue();){const{node:p,parent:f}=d,g=To(p.children,1)||p.kind==vd;if(g)for(const R of p.children)l.enqueue({node:u(R),parent:p});const b={x:p.x,y:p.y};f&&(b.x-=f.x,b.y-=f.y);const x={id:c+p.id,selectable:n&&p.kind!==vd,focusable:n&&p.kind!==vd,deletable:!1,position:b,zIndex:g?dl.Compound:dl.Element,style:{width:p.width,height:p.height},initialWidth:p.width,initialHeight:p.height,hidden:p.kind!==vd&&!s(p),...f&&{parentId:c+f.id}},w={viewId:r.id,id:p.id,title:p.title,color:p.color,shape:p.shape,style:p.style,depth:p.depth??0,icon:p.icon??"none",tags:p.tags??null,x:p.x,y:p.y},k={viewId:r.id,id:p.id,title:p.title,technology:p.technology??null,description:Kt.from(p.description),height:p.height,width:p.width,level:p.level,color:p.color,shape:p.shape,style:p.style,icon:p.icon??null,tags:p.tags,x:p.x,y:p.y,isMultiple:p.style?.multiple??!1};if(p.kind===vd){o.push({...x,type:"view-group",data:{isViewGroup:!0,...w},dragHandle:".likec4-compound-title"});continue}const C=p.modelRef??null,_=p.deploymentRef??null;if(!C&&!_)throw console.error("Invalid node",p),new Error("Element should have either modelRef or deploymentRef");const T={navigateTo:p.navigateTo??null};switch(!0){case(g&&!!_):{o.push({...x,type:"compound-deployment",data:{...w,...T,deploymentFqn:_,modelFqn:C},dragHandle:".likec4-compound-title"});break}case g:{nt(!!C,"ModelRef expected"),o.push({...x,type:"compound-element",data:{...w,...T,modelFqn:C},dragHandle:".likec4-compound-title"});break}case!!_:{o.push({...x,type:"deployment",data:{...k,...T,deploymentFqn:_,modelFqn:C}});break}default:nt(!!C,"ModelRef expected"),o.push({...x,type:"element",data:{...k,...T,modelFqn:C}})}}for(const p of r.edges){const f=p.source,g=p.target,b=c+p.id;if(!To(p.points,2)){console.error("edge should have at least 2 points",p);continue}a.push({id:b,type:"relationship",source:c+f,target:c+g,zIndex:dl.Edge,selectable:n,hidden:!s(p),deletable:!1,data:{id:p.id,label:p.label,technology:p.technology,notes:Kt.from(p.notes),navigateTo:p.navigateTo,controlPoints:p.controlPoints??null,labelBBox:p.labelBBox??null,labelXY:p.labelBBox?{x:p.labelBBox.x,y:p.labelBBox.y}:null,points:p.points,color:p.color??"gray",line:p.line??"dashed",dir:p.dir??"forward",head:p.head??"normal",tail:p.tail??"none",astPath:p.astPath},interactionWidth:20})}return{bounds:r.bounds,xynodes:o,xyedges:a}}const cte={parallel:1,actor:10},u4={default:"gray",active:"amber"};function CJe(e){const{actors:r,steps:n,compounds:o,parallelAreas:a,bounds:i}=e.sequenceLayout,l=[],s=[],c=u=>mt(e.nodes.find(d=>d.id===u));for(const u of o)l.push(TJe(u,c(u.origin),e));for(const u of a)l.push(RJe(u,e));for(const u of r)l.push(AJe(u,c(u.id),i,e));for(const u of n){const d=e.edges.find(p=>p.id===u.id);if(!d)throw new Error(`Edge ${u.id} not found`);s.push(NJe(u,d))}return{bounds:i,xynodes:l,xyedges:s}}function TJe({id:e,x:r,y:n,width:o,height:a,depth:i},l,s){return{id:e,type:"view-group",data:{id:l.id,title:l.title,color:l.color??"gray",shape:l.shape,style:l.style,tags:l.tags,x:r,y:n,viewId:s.id,depth:i,isViewGroup:!0},position:{x:r,y:n},draggable:!1,selectable:!1,focusable:!1,style:{pointerEvents:"none"},width:o,initialWidth:o,height:a,initialHeight:a}}function RJe({parallelPrefix:e,x:r,y:n,width:o,height:a},i){return{id:`seq-parallel-${e}`,type:"seq-parallel",data:{id:`seq-parallel-${e}`,title:"PARALLEL",technology:null,color:u4.default,shape:"rectangle",style:{},tags:[],x:r,y:n,level:0,icon:null,width:o,height:a,description:Kt.EMPTY,viewId:i.id,parallelPrefix:e},zIndex:cte.parallel,position:{x:r,y:n},draggable:!1,deletable:!1,selectable:!1,focusable:!1,style:{pointerEvents:"none"},width:o,initialWidth:o,height:a,initialHeight:a}}function AJe({id:e,x:r,y:n,width:o,height:a,ports:i},l,s,c){return{id:e,type:"seq-actor",data:{id:l.id,x:r,y:n,level:0,icon:l.icon??null,isMultiple:l.style.multiple??!1,title:l.title,width:o,height:a,color:l.color,navigateTo:l.navigateTo??null,shape:l.shape,style:l.style,tags:l.tags,modelFqn:l.modelRef??null,technology:l.technology??null,description:Kt.from(l.description),viewHeight:s.height,viewId:c.id,ports:i},deletable:!1,selectable:!0,zIndex:cte.actor,position:{x:r,y:n},width:o,initialWidth:o,height:a,initialHeight:a}}function NJe({id:e,labelBBox:r,sourceHandle:n,targetHandle:o},a){return{id:e,type:"seq-step",data:{id:e,label:a.label,technology:a.technology,notes:Kt.from(a.notes),navigateTo:a.navigateTo,controlPoints:null,labelBBox:{x:0,y:0,width:r?.width??a.labelBBox?.width??32,height:r?.height??a.labelBBox?.height??32},labelXY:null,points:a.points,color:a.color,line:a.line,dir:"forward",head:a.head??"normal",tail:a.tail??"none",astPath:a.astPath},selectable:!0,focusable:!1,zIndex:20,interactionWidth:40,source:a.source,sourceHandle:n,target:a.target,targetHandle:o}}function DJe({dynamicViewVariant:e,...r}){const n=r.view,o=n._type==="dynamic",{bounds:a,xynodes:i,xyedges:l}=o&&e==="sequence"?CJe(n):SJe(r);return o&&n.variant!==e?{view:{...n,bounds:a,variant:e},xynodes:i,xyedges:l}:{view:a===n.bounds?n:{...n,bounds:a},xynodes:i,xyedges:l}}function ute(e,r){return r.map(n=>{const o=e.find(a=>a.id===n.id);return o&&ut(o.type,n.type)?ut(o.hidden??!1,n.hidden??!1)&&ut(o.source,n.source)&&ut(o.sourceHandle??null,n.sourceHandle??null)&&ut(o.target,n.target)&&ut(o.targetHandle??null,n.targetHandle??null)&&ut(o.zIndex??0,n.zIndex??0)&&ut(o.data,n.data)?o:{...qd(o,["hidden","zIndex"]),...n,data:n.data}:n})}function dte(e,r){return H8(r)?ute(e,r):(r=e,n=>ute(n,r))}function pte(e,r){return r.map(n=>{const o=e.find(a=>a.id===n.id);if(o&&ut(o.type,n.type)){const{width:a,height:i}=Wn(o);return ut(a,n.initialWidth)&&ut(i,n.initialHeight)&&ut(o.parentId??null,n.parentId??null)&&ut(o.hidden??!1,n.hidden??!1)&&ut(o.zIndex??0,n.zIndex??0)&&ut(o.position,n.position)&&ut(o.data,n.data)?o:{...qd(o,["measured","parentId","hidden","zIndex"]),...n,width:n.initialWidth,height:n.initialHeight,data:n.data}}return n})}function pR(e,r){return H8(r)?pte(e,r):(r=e,n=>pte(n,r))}const hR={top:"40px",bottom:"16px",left:"16px",right:"16px"};function hte(e){const r=[],n=[],o=new Map,a=E6.from(e.nodes.reduce((s,c)=>(o.set(c.id,c),c.parent||s.push({node:c,parent:null}),s),[])),i=s=>mt(o.get(s),`Node not found: ${s}`);let l;for(;l=a.dequeue();){const{node:s,parent:c}=l,u=To(s.children,1)||s.kind==vd;if(u)for(const x of s.children)a.enqueue({node:i(x),parent:s});const d={x:s.x,y:s.y};c&&(d.x-=c.x,d.y-=c.y);const p=s.id,f={id:p,draggable:!1,selectable:!0,focusable:!0,position:d,zIndex:u?dl.Compound:dl.Element,style:{width:s.width,height:s.height},initialWidth:s.width,initialHeight:s.height,...c&&{parentId:c.id}},g=s.modelRef??null,b={navigateTo:s.navigateTo??null};switch(!0){case s.kind===L2.Empty:{r.push({...f,type:"empty",data:{column:s.column}});break}case(u&&!!g):{r.push({...f,type:"compound",data:{id:p,column:s.column,title:s.title,color:s.color,shape:s.shape,style:s.style,depth:s.depth??0,icon:s.icon??"none",ports:s.ports,existsInCurrentView:s.existsInCurrentView,fqn:g,...b}});break}default:nt(g,"Element should have either modelRef or deploymentRef"),r.push({...f,type:"element",data:{id:p,column:s.column,fqn:g,title:s.title,technology:s.technology,description:s.description,height:s.height,width:s.width,color:s.color,shape:s.shape,icon:s.icon??"none",ports:s.ports,style:s.style,existsInCurrentView:s.existsInCurrentView,tags:s.tags,...b}})}}for(const s of e.edges){const c=s.source,u=s.target,d=s.id;if(!To(s.points,2)){console.error("edge should have at least 2 points",s);continue}if(!To(s.relations,1)){console.error("edge should have at least 1 relation",s);continue}n.push({id:d,type:"relationship",source:c,target:u,sourceHandle:s.sourceHandle,targetHandle:s.targetHandle,data:{sourceFqn:s.sourceFqn,targetFqn:s.targetFqn,relations:s.relations,color:s.color??"gray",label:s.label,navigateTo:s.navigateTo??null,line:s.line??"dashed",existsInCurrentView:s.existsInCurrentView},interactionWidth:20})}return{xynodes:r,xyedges:n}}const fte=e=>e.find(r=>r.data.column==="subjects"&&rq(r.parentId)),$Je=Kje(async({input:e,self:r,signal:n})=>{const{subjectId:o,navigateFromNode:a,xyflow:i,xystore:l,update:s}=e;let{nodes:c,width:u,height:d}=l.getState();const p=hte(s),f=()=>{const{nodes:N,edges:P}=l.getState();return{xynodes:pR(N,p.xynodes),xyedges:dte(P,p.xyedges)}},g=mt(r._parent);let b=i.getZoom();const x=Math.max(b,1),w=tu(s.bounds,u,d,pl,x,hR),k=p.xynodes.find(N=>N.type!=="empty"&&N.data.column==="subjects"&&N.data.fqn===o)??fte(p.xynodes),C=fte(c),_=a?c.find(N=>N.id===a):c.find(N=>N.type!=="empty"&&N.data.column!=="subjects"&&N.data.fqn===o);if(!k||!_||k.type==="empty"||!C||k.data.fqn===C.data.fqn)return await i.setViewport(w),f();const T={x:k.position.x+(k.initialWidth??0)/2,y:k.position.y+(k.initialHeight??0)/2},R=i.getInternalNode(C.id),A=eYe(R),D=new Set;return c.forEach(N=>{if(N.id!==_.id){if(N.data.column==="subjects"){D.add(N.id);return}N.parentId&&(N.parentId===_.id||D.has(N.parentId))&&D.add(N.id)}}),c=pR(c,c.flatMap(N=>D.has(N.id)?[]:N.id!==_.id?{...N,data:{...N.data,dimmed:N.data.column==="subjects"?"immediate":!0}}:{...qd(N,["parentId"]),position:{x:A.x-N.initialWidth/2,y:A.y-N.initialHeight/2},zIndex:dl.Max,hidden:!1,data:{...N.data,dimmed:!1}})),g.send({type:"update.xydata",xynodes:c,xyedges:[]}),await F6e(120),p.xynodes=p.xynodes.map(Jt.setDimmed(!1)),n.aborted||(await i.setCenter(A.x,A.y,{zoom:b,duration:300}),await i.setCenter(T.x,T.y,{zoom:b})),f()}),PJe=ec({actors:{layouter:$Je},guards:{hasViewId:({context:e})=>e.viewId!==null,isReady:({context:e})=>e.xyflow!==null&&e.xystore!==null&&e.layouted!==null,anotherSubject:({context:e,event:r})=>r.type==="update.view"?e.layouted?.subject!==r.layouted.subject:!1},actions:{"xyflow.init":et(({event:e})=>(Ut(e,"xyflow.init"),{xyflow:e.instance,xystore:e.store})),"update.view":et(({event:e})=>(Ut(e,"update.view"),{layouted:e.layouted,...hte(e.layouted)})),"xyflow:updateNodeInternals":({context:e})=>{nt(e.xystore,"xystore is not initialized");const{domNode:r,updateNodeInternals:n}=e.xystore.getState(),o=new Set(e.xyedges.flatMap(i=>[i.source,i.target]));if(o.size===0||!r)return;const a=new Map;for(const i of o){const l=r.querySelector(`.react-flow__node[data-id="${i}"]`);l&&a.set(i,{id:i,nodeElement:l,force:!0})}n(a,{triggerFitView:!1})},"xyflow:fitDiagram":({context:e},r)=>{let{duration:n,bounds:o}=r??{};n??=450;const{xyflow:a,xystore:i}=e;nt(a,"xyflow is not initialized"),nt(i,"xystore is not initialized"),o??=e.layouted?.bounds;const l=Math.max(a.getZoom(),1);if(o){const{width:s,height:c}=i.getState(),u=tu(o,s,c,pl,l,hR);a.setViewport(u,n>0?{duration:n}:void 0).catch(console.error)}else a.fitView({minZoom:pl,maxZoom:l,padding:hR,...n>0&&{duration:n}}).catch(console.error)},"xyflow.applyNodeChanges":et(({context:e,event:r})=>(Ut(r,"xyflow.applyNodeChanges"),{xynodes:Rx(r.changes,e.xynodes)})),"xyflow.applyEdgeChanges":et(({context:e,event:r})=>(Ut(r,"xyflow.applyEdgeChanges"),{xyedges:Ax(r.changes,e.xyedges)}))}}).createMachine({id:"relationships-browser",context:({input:e})=>({subject:e.subject,viewId:e.viewId,scope:e.viewId?e.scope:"global",closeable:e.closeable??!0,enableSelectSubject:e.enableSelectSubject??!0,enableChangeScope:e.enableChangeScope??!0,xyflow:null,xystore:null,layouted:null,navigateFromNode:null,xynodes:[],xyedges:[]}),initial:"initializing",on:{"xyflow.applyNodeChanges":{actions:"xyflow.applyNodeChanges"},"xyflow.applyEdgeChanges":{actions:"xyflow.applyEdgeChanges"}},states:{initializing:{on:{"xyflow.init":{actions:"xyflow.init",target:"isReady"},"update.view":{actions:"update.view",target:"isReady"},stop:"closed",close:"closed"}},isReady:{always:[{guard:"isReady",actions:[{type:"xyflow:fitDiagram",params:{duration:0}},ln({type:"xyflow.updateNodeInternals"},{delay:150})],target:"active"},{target:"initializing"}]},active:{initial:"idle",tags:["active"],on:{"xyflow.nodeClick":{actions:sn(({event:e,enqueue:r})=>{if("fqn"in e.node.data){const n=e.node.data.fqn;r.raise({type:"navigate.to",subject:n,fromNode:e.node.id})}})},"xyflow.edgeClick":{guard:"hasViewId",actions:sn(({event:e,context:r,system:n,enqueue:o})=>{(e.edge.selected||e.edge.data.relations.length>1)&&o.sendTo(tc(n).overlaysActorRef,{type:"open.relationshipDetails",viewId:r.viewId,source:e.edge.data.sourceFqn,target:e.edge.data.targetFqn})})},"navigate.to":{actions:[et({subject:({event:e})=>e.subject,viewId:({event:e,context:r})=>e.viewId??r.viewId??null,navigateFromNode:({event:e})=>e.fromNode??null})]},"xyflow.paneDblClick":{actions:"xyflow:fitDiagram"},"update.view":{actions:"update.view",target:".layouting"},"change.scope":{actions:et({scope:({event:e})=>e.scope})},"xyflow.updateNodeInternals":{actions:"xyflow:updateNodeInternals"},fitDiagram:{actions:{type:"xyflow:fitDiagram",params:Ca("event")}},"xyflow.resized":{actions:[oa("fitDiagram"),ln({type:"fitDiagram"},{id:"fitDiagram",delay:300})]},"xyflow.init":{actions:"xyflow.init"},"xyflow.unmount":{target:"initializing"},close:"closed"},states:{idle:{on:{"xyflow.edgeMouseEnter":{actions:[et({xyedges:({context:e,event:r})=>{const n=e.xyedges.some(o=>o.data.dimmed!==!1||o.selected);return e.xyedges.map(o=>o.id===r.edge.id?Jt.setData(o,{hovered:!0,dimmed:!1}):n&&!o.selected?Jt.setDimmed(o,"immediate"):o)}}),oa("undim.edges"),oa("dim.nonhovered.edges"),ln({type:"dim.nonhovered.edges"},{id:"dim.nonhovered.edges",delay:200})]},"xyflow.edgeMouseLeave":{actions:[et({xyedges:({context:e,event:r})=>e.xyedges.map(n=>n.id===r.edge.id?Jt.setHovered(n,!1):n)}),oa("dim.nonhovered.edges"),ln({type:"undim.edges"},{id:"undim.edges",delay:400})]},"dim.nonhovered.edges":{actions:et({xyedges:({context:e})=>e.xyedges.map(r=>r.data.hovered?r:Jt.setDimmed(r,r.data.dimmed==="immediate"?"immediate":!0))})},"undim.edges":{actions:et({xyedges:({context:e})=>e.xyedges.map(Jt.setDimmed(!1))})},"xyflow.selectionChange":{actions:sn(({event:e,context:r,enqueue:n})=>{e.edges.length===0&&r.xyedges.some(o=>o.data.dimmed)&&!r.xyedges.some(o=>o.data.hovered)&&n.raise({type:"undim.edges"})})}}},layouting:{invoke:{id:"layouter",src:"layouter",input:({context:e})=>({subjectId:e.subject,navigateFromNode:e.navigateFromNode,xyflow:mt(e.xyflow),xystore:mt(e.xystore),update:mt(e.layouted)}),onDone:{target:"idle",actions:sn(({enqueue:e,event:r})=>{e.assign({xynodes:r.output.xynodes,xyedges:r.output.xyedges,navigateFromNode:null}),e.raise({type:"fitDiagram",duration:200},{id:"fitDiagram",delay:50});for(let n=0;n<6;n++)e.raise({type:"xyflow.updateNodeInternals"},{delay:100+n*100})})}},on:{"update.xydata":{actions:et({xynodes:({event:e})=>e.xynodes,xyedges:({event:e})=>e.xyedges})},"xyflow.applyEdgeChanges":{},"xyflow.applyNodeChanges":{}}}}},closed:{id:"closed",type:"final"}},exit:et({xyflow:null,layouted:null,xystore:null,xyedges:[],xynodes:[]})}),mte=PJe,OJe=ec({actors:{relationshipsBrowserLogic:mte}}).createMachine({id:"element-details",context:({input:e})=>({...e,initiatedFrom:{node:e.initiatedFrom?.node??null,clientRect:e.initiatedFrom?.clientRect??null}}),initial:"active",states:{active:{entry:Vf("relationshipsBrowserLogic",{id:({self:e})=>`${e.id}-relationships`,input:({context:e})=>({subject:e.subject,viewId:e.currentView.id,scope:"view",enableSelectSubject:!1,enableChangeScope:!0,closeable:!1})}),exit:[is(({self:e})=>`${e.id}-relationships`,{type:"close"}),yu(({self:e})=>`${e.id}-relationships`)],on:{"change.subject":{actions:et({subject:({event:e})=>e.subject})},close:"closed"}},closed:{id:"closed",type:"final"}}}),MJe=OJe;function IJe(e){const r=[],n=[],o=new Map,a=E6.from(e.nodes.reduce((s,c)=>(o.set(c.id,c),c.parent||s.push({node:c,parent:null}),s),[])),i=s=>mt(o.get(s),`Node not found: ${s}`);let l;for(;l=a.dequeue();){const{node:s,parent:c}=l,u=To(s.children,1);if(u)for(const x of s.children)a.enqueue({node:i(x),parent:s});const d={x:s.x,y:s.y};c&&(d.x-=c.x,d.y-=c.y);const p=s.id,f={id:p,draggable:!1,selectable:!0,focusable:!0,deletable:!1,position:d,zIndex:u?dl.Compound:dl.Element,style:{width:s.width,height:s.height},initialWidth:s.width,initialHeight:s.height,...c&&{parentId:c.id}},g=s.modelRef,b={navigateTo:s.navigateTo??null};switch(!0){case u:{r.push({...f,type:"compound",data:{id:p,column:s.column,title:s.title,color:s.color,style:s.style,depth:s.depth??0,icon:s.icon??"none",ports:s.ports,fqn:g,...b}});break}default:r.push({...f,type:"element",data:{id:p,column:s.column,fqn:g,title:s.title,technology:s.technology,description:Kt.from(s.description),height:s.height,width:s.width,color:s.color,shape:s.shape,icon:s.icon??"none",ports:s.ports,style:s.style,tags:s.tags,...b}})}}for(const{source:s,target:c,relationId:u,label:d,technology:p,description:f,navigateTo:g=null,color:b="gray",line:x="dashed",...w}of e.edges){const k=w.id;n.push({id:k,type:"relationship",source:s,target:c,sourceHandle:w.sourceHandle,targetHandle:w.targetHandle,deletable:!1,data:{relationId:u,label:d,color:b,navigateTo:g,line:x,description:Kt.from(f),...p&&{technology:p}}})}return{xynodes:r,xyedges:n,bounds:e.bounds}}function gte(e){return"edgeId"in e?(nt(q8(e.edgeId),"edgeId is required"),{edgeId:e.edgeId}):{source:e.source,target:e.target}}const LJe=ec({actions:{"xyflow:fitDiagram":({context:e},r)=>{let{duration:n,bounds:o}=r??{};n??=450;const{xyflow:a,xystore:i}=e;nt(a,"xyflow is not initialized"),nt(i,"xystore is not initialized"),o??=e.bounds;const l=Math.max(a.getZoom(),1);if(o){const{width:s,height:c}=i.getState(),u=tu(o,s,c,pl,l,.1);a.setViewport(u,n>0?{duration:n}:void 0).catch(console.error)}else a.fitView({minZoom:pl,maxZoom:l,padding:.1,...n>0&&{duration:n}}).catch(console.error)},"xyflow:updateNodeInternals":({context:e})=>{nt(e.xystore,"xystore is not initialized");const{domNode:r,updateNodeInternals:n}=e.xystore.getState(),o=new Set(e.xyedges.flatMap(i=>[i.source,i.target]));if(o.size===0||!r)return;const a=new Map;for(const i of o){const l=r.querySelector(`.react-flow__node[data-id="${i}"]`);l&&a.set(i,{id:i,nodeElement:l,force:!0})}n(a,{triggerFitView:!1})},updateXYFlow:et(({context:e,event:r})=>{Ut(r,"xyflow.init");let n=e.initialized;return n.xyflow||(n={...n,xyflow:!0}),{initialized:n,xyflow:r.instance,xystore:r.store}}),updateLayoutData:et(({context:e,event:r})=>{Ut(r,"update.layoutData");const{xynodes:n,xyedges:o,bounds:a}=IJe(r.data);let i=e.initialized;return i.xydata||(i={...i,xydata:!0}),{initialized:i,xynodes:pR(e.xynodes,n),xyedges:dte(e.xyedges,o),bounds:Gn(e.bounds,a)?e.bounds:a}})},guards:{isReady:({context:e})=>e.initialized.xydata&&e.initialized.xyflow,"enable: navigate.to":()=>!0}}).createMachine({initial:"initializing",context:({input:e})=>({subject:gte(e),viewId:e.viewId,bounds:{x:0,y:0,width:200,height:200},initialized:{xydata:!1,xyflow:!1},xyflow:null,xystore:null,xynodes:[],xyedges:[]}),states:{initializing:{on:{"xyflow.init":{actions:"updateXYFlow",target:"isReady"},"update.layoutData":{actions:"updateLayoutData",target:"isReady"},close:{target:"closed"}}},isReady:{always:[{guard:"isReady",actions:[{type:"xyflow:fitDiagram",params:{duration:0}},ln({type:"xyflow.updateNodeInternals"},{delay:50})],target:"ready"},{target:"initializing"}]},ready:{on:{"xyflow.edgeMouseEnter":{actions:[et({xyedges:({context:e,event:r})=>{const n=e.xyedges.some(o=>o.data.dimmed===!0||o.data.dimmed==="immediate");return e.xyedges.map(o=>o.id===r.edge.id?Jt.setData(o,{hovered:!0,dimmed:!1}):n&&!o.selected?Jt.setDimmed(o,"immediate"):o)}}),oa("undim.edges"),oa("dim.nonhovered.edges"),ln({type:"dim.nonhovered.edges"},{id:"dim.nonhovered.edges",delay:100})]},"xyflow.edgeMouseLeave":{actions:[et({xyedges:({context:e,event:r})=>e.xyedges.map(n=>n.id===r.edge.id?Jt.setHovered(n,!1):n)}),oa("dim.nonhovered.edges"),ln({type:"undim.edges"},{id:"undim.edges",delay:400})]},"dim.nonhovered.edges":{actions:et({xyedges:({context:e})=>e.xyedges.map(r=>Jt.setDimmed(r,r.data.hovered!==!0))})},"undim.edges":{actions:et({xyedges:({context:e})=>e.xyedges.some(r=>r.selected===!0)?e.xyedges.map(r=>Jt.setDimmed(r,r.selected!==!0?r.data.dimmed||"immediate":!1)):e.xyedges.map(Jt.setDimmed(!1))})},"xyflow.selectionChange":{actions:sn(({event:e,context:r,enqueue:n})=>{e.edges.length===0&&r.xyedges.some(o=>o.data.dimmed)&&!r.xyedges.some(o=>o.data.hovered)&&n.raise({type:"undim.edges"})})},"update.layoutData":{actions:["updateLayoutData",oa("fitDiagram"),ln({type:"fitDiagram",duration:0},{id:"fitDiagram",delay:50}),ln({type:"xyflow.updateNodeInternals"},{delay:75})]},"xyflow.init":{actions:"updateXYFlow"},"xyflow.applyNodeChanges":{actions:et({xynodes:({context:e,event:r})=>Rx(r.changes,e.xynodes)})},"xyflow.applyEdgeChanges":{actions:et({xyedges:({context:e,event:r})=>Ax(r.changes,e.xyedges)})},"xyflow.paneDblClick":{actions:"xyflow:fitDiagram"},"navigate.to":{actions:et({subject:({event:e})=>gte(e.params),viewId:({context:e,event:r})=>r.params.viewId??e.viewId})},close:{target:"closed"}},exit:et({xyedges:[],xynodes:[],initialized:{xydata:!1,xyflow:!1},xyflow:null,xystore:null})},closed:{type:"final"}},on:{fitDiagram:{actions:{type:"xyflow:fitDiagram",params:Ca("event")}},"xyflow.resized":{actions:[oa("fitDiagram"),ln({type:"fitDiagram"},{id:"fitDiagram",delay:200})]},"xyflow.updateNodeInternals":{actions:"xyflow:updateNodeInternals"}}}),zJe=LJe,jJe=zG(({sendBack:e})=>{const r=o9([["Escape",n=>{n.stopPropagation(),e({type:"close"})},{preventDefault:!0}]]);return document.body.addEventListener("keydown",r,{capture:!0}),()=>{document.body.removeEventListener("keydown",r,{capture:!0})}}),BJe=ec({actors:{relationshipDetails:zJe,elementDetails:MJe,relationshipsBrowser:mte,hotkey:jJe},actions:{closeLastOverlay:sn(({context:e,enqueue:r})=>{if(e.overlays.length===0)return;const n=Ud(e.overlays)?.id;n&&(r.sendTo(n,{type:"close"}),r.stopChild(n),r.assign({overlays:e.overlays.filter(o=>o.id!==n)}))}),closeSpecificOverlay:sn(({context:e,enqueue:r},n)=>{const o=e.overlays.find(a=>a.id===n.actorId)?.id;o&&(r.sendTo(o,{type:"close"}),r.stopChild(o),r.assign({overlays:e.overlays.filter(a=>a.id!==o)}))}),closeAllOverlays:sn(({context:e,enqueue:r})=>{for(const{id:n}of eDe(e.overlays))r.sendTo(n,{type:"close"}),r.stopChild(n);r.assign({overlays:[]})}),openElementDetails:sn(({context:e,enqueue:r,event:n})=>{if(Ut(n,"open.elementDetails"),e.overlays.some(a=>a.type==="elementDetails"&&a.subject===n.subject))return;const o=`elementDetails-${e.seq}`;r.spawnChild("elementDetails",{id:o,input:n}),r.assign({seq:e.seq+1,overlays:[...e.overlays,{type:"elementDetails",id:o,subject:n.subject}]})}),openRelationshipDetails:sn(({context:e,enqueue:r,event:n})=>{Ut(n,"open.relationshipDetails");const o=Ud(e.overlays);if(o?.type==="relationshipDetails"){r.sendTo(o.id,{...n,type:"navigate.to"});return}const a=`relationshipDetails-${e.seq}`;r.spawnChild("relationshipDetails",{id:a,input:n}),r.assign({seq:e.seq+1,overlays:[...e.overlays,{type:"relationshipDetails",id:a}]})}),openRelationshipsBrowser:sn(({context:e,enqueue:r,event:n})=>{Ut(n,"open.relationshipsBrowser");const o=Ud(e.overlays);if(o?.type==="relationshipsBrowser"){r.sendTo(o.id,{type:"navigate.to",subject:n.subject,viewId:n.viewId});return}const a=`relationshipsBrowser-${e.seq}`;r.spawnChild("relationshipsBrowser",{id:a,input:n}),r.assign({seq:e.seq+1,overlays:[...e.overlays,{type:"relationshipsBrowser",id:a,subject:n.subject}]})}),listenToEsc:Vf("hotkey",{id:"hotkey"}),stopListeningToEsc:yu("hotkey")},guards:{"has overlays?":({context:e})=>e.overlays.length>0,"close specific overlay?":({context:e,event:r})=>(Ut(r,"close"),q8(r.actorId)&&e.overlays.some(n=>n.id===r.actorId)),"last: is relationshipDetails?":({context:e})=>Ud(e.overlays)?.type==="relationshipDetails","last: is relationshipsBrowser?":({context:e})=>Ud(e.overlays)?.type==="relationshipsBrowser"}}).createMachine({id:"overlays",context:()=>({seq:1,overlays:[]}),initial:"idle",on:{"open.elementDetails":{actions:"openElementDetails",target:".active",reenter:!1},"open.relationshipDetails":{actions:"openRelationshipDetails",target:".active",reenter:!1},"open.relationshipsBrowser":{actions:"openRelationshipsBrowser",target:".active",reenter:!1}},states:{idle:{},active:{entry:"listenToEsc",exit:"stopListeningToEsc",on:{close:[{guard:"close specific overlay?",actions:{type:"closeSpecificOverlay",params:({event:e})=>({actorId:e.actorId})},target:"closing"},{actions:"closeLastOverlay",target:"closing"}],"close.all":{actions:["closeAllOverlays","stopListeningToEsc"],target:"idle"}}},closing:{always:[{guard:"has overlays?",target:"active"},{actions:"stopListeningToEsc",target:"idle"}]}},exit:["stopListeningToEsc","closeAllOverlays"]}),FJe=BJe,HJe=ec({actions:{"change searchValue":et({searchValue:({event:e,context:r})=>(Ut(e,["change.search","open"]),e.search??r.searchValue)}),"reset pickViewFor":et({pickViewFor:()=>null})}}).createMachine({id:"search",context:{openedWithSearch:null,searchValue:"",pickViewFor:null},initial:"inactive",on:{close:{target:".inactive",actions:"reset pickViewFor"}},states:{inactive:{on:{open:{target:"opened",actions:[et({openedWithSearch:({event:e})=>e.search??null,searchValue:({event:e,context:r})=>e.search??r.searchValue})]}}},opened:{on:{open:{actions:"change searchValue"},"change.search":{actions:"change searchValue"},"pickview.open":{target:"pickView",actions:et({pickViewFor:({event:e})=>e.elementFqn})}}},pickView:{on:{"pickview.close":{target:"opened",actions:"reset pickViewFor"}}}}}),UJe=HJe;class yte{}class Sm extends yte{constructor(r,n,o){super(),this.getEdgePosition=r,this.computePosition=n,this.propertyToEdit=o}alignTo;computeLayout(r){this.alignTo=this.getEdgePosition(r)}applyPosition(r){return{[this.propertyToEdit]:this.computePosition(this.alignTo,r)}}}class qJe extends yte{layout=new Map;axisPreset;get primaryAxisCoord(){return this.axisPreset.primaryAxisCoord}get secondaryAxisCoord(){return this.axisPreset.secondaryAxisCoord}get primaryAxisDimension(){return this.axisPreset.primaryAxisDimension}get secondaryAxisDimension(){return this.axisPreset.secondaryAxisDimension}constructor(r){super(),this.axisPreset=r==="Column"?{primaryAxisDimension:"width",secondaryAxisDimension:"height",primaryAxisCoord:"x",secondaryAxisCoord:"y"}:{primaryAxisDimension:"height",secondaryAxisDimension:"width",primaryAxisCoord:"y",secondaryAxisCoord:"x"}}applyPosition(r){return this.layout?.get(r.id)??{}}computeLayout(r){const n=yn(r,jx(i=>i[this.primaryAxisCoord])),o=this.getLayoutRect(n),a=this.getLayers(n);this.layout=this.buildLayout(a,o,n)}getLayoutRect(r){const n=Math.min(...r.map(l=>l.x)),o=Math.min(...r.map(l=>l.y)),a=Math.max(...r.map(l=>l.x+l.width)),i=Math.max(...r.map(l=>l.y+l.height));return{x:n,y:o,width:a-n,height:i-o}}getLayers(r){const n=[];let o=0,a=null;for(let i of r)if(a&&i[this.primaryAxisCoord]i.nodes.sort((l,s)=>l[this.secondaryAxisCoord]-s[this.secondaryAxisCoord])),n}buildLayout(r,n,o){const a=new Map(o.map(b=>[b.id,b])),i=[],l=r.reduce((b,x)=>b+x.primaryAxisSize,0),s=r.length>1?(n[this.primaryAxisDimension]-l)/(r.length-1):0,c=r.reduce((b,x,w)=>r[b].occupiedSpaceb+x.primaryAxisSize+s,n[this.primaryAxisCoord]),p=this.buildLayerLayout(u,n,d,a,null);u.layout=p,i.push(...p.nodePositions);let f=d+u.primaryAxisSize+s,g=u;for(let b=c+1;b=0;b--){const x=r[b];f-=x.primaryAxisSize+s,x.layout=this.buildLayerLayout(x,n,f,a,g),i.push(...x.layout.nodePositions),g=x.layout.refLayer??x}return new Map(i)}buildLayerLayout(r,n,o,a,i){let l=this.scoreLayout(this.spaceAround(r,n,o),a);if(r.nodes.length!=1){const s=this.scoreLayout(this.spaceBetween(r,n,o),a);l=s[0]=r.nodes.length){const s=this.scoreLayout(this.placeInGaps(r,o,i),a);l=s[0]=r.nodes.length){const s=this.scoreLayout(this.placeInCells(r,o,i),a);l=s[0]c[this.secondaryAxisCoord]))l.set(s.id,{[this.secondaryAxisCoord]:i,[this.primaryAxisCoord]:o}),i+=s[this.secondaryAxisDimension]+a;return{nodePositions:l,refLayer:null}}placeInGaps(r,n,o){const a=new Map,i=r.nodes,l=this.getGapsPositions(o);let s=0;for(let c=0,u=i[c];c{const i=n.get(o);return nt(i,`Could not find original rect for node ${o}`),[sq(i,["x","y"]),a]}),Ro(([o,a])=>Math.abs(o[this.secondaryAxisCoord]-a[this.secondaryAxisCoord])),hf((o,a)=>o+a,0)),r]}getGapsPositions(r){const n=[],{layout:o,nodes:a}=r;nt(o,"Layout of the layer must be computed before calling getGapsPositions");for(let i=1;iMath.min(...r.map(n=>n.x)),(r,n)=>Math.floor(r),"x");case"Top":return new Sm(r=>Math.min(...r.map(n=>n.y)),(r,n)=>Math.floor(r),"y");case"Right":return new Sm(r=>Math.max(...r.map(n=>n.x+n.width)),(r,n)=>Math.floor(r-n.width),"x");case"Bottom":return new Sm(r=>Math.max(...r.map(n=>n.y+n.height)),(r,n)=>Math.floor(r-n.height),"y");case"Center":return new Sm(r=>Math.min(...r.map(n=>n.x+n.width/2)),(r,n)=>Math.floor(r-n.width/2),"x");case"Middle":return new Sm(r=>Math.min(...r.map(n=>n.y+n.height/2)),(r,n)=>Math.floor(r-n.height/2),"y")}}function bte(e){const{width:r,height:n}=Wn(e);return{...e.internals.positionAbsolute,id:e.id,width:r,height:n}}function YJe(e){switch(e){case"Left":case"Right":case"Top":case"Bottom":case"Center":case"Middle":return VJe(e);case"Column":case"Row":return new qJe(e);default:Xa(e)}}function WJe(e){const{lastClickedNode:r}=e.context;return!r||r.id!==e.event.node.id?{id:e.event.node.id,clicks:1,timestamp:Date.now()}:{id:r.id,clicks:r.clicks+1,timestamp:Date.now()}}function vte({context:e,event:r}){Ut(r,"update.view");const n=r.view,o=e.view.id===n.id,a=e.xynodes,i=r.xynodes.map(s=>{const c=a.find(u=>u.id===s.id);if(c){const{width:u,height:d}=Wn(c);return ut(c.type,s.type)&&ut(u,s.initialWidth)&&ut(d,s.initialHeight)&&ut(c.hidden??!1,s.hidden??!1)&&ut(c.position,s.position)&&ut(c.data,s.data)&&ut(c.parentId??null,s.parentId??null)?c:{...qd(c,["measured","parentId"]),...s,width:s.initialWidth,height:s.initialHeight,data:{...c.data,...s.data}}}return s});let l=r.xyedges;if(o&&!n.hasLayoutDrift){const s=e.xyedges;l=r.xyedges.map(c=>{const u=s.find(d=>d.id===c.id);return u&&u.type===c.type?ut(u.hidden??!1,c.hidden??!1)&&ut(u.data,c.data)&&ut(u.source,c.source)&&ut(u.target,c.target)&&ut(u.sourceHandle,c.sourceHandle)&&ut(u.targetHandle,c.targetHandle)?u:{...qd(u,["sourceHandle","targetHandle"]),...c,data:{...u.data,...c.data}}:c})}if(!o){for(const s of i)s.data={...s.data,dimmed:!1,hovered:!1};for(const s of l)s.data={...s.data,dimmed:!1,hovered:!1,active:!1}}return{xynodes:i,xyedges:l,view:n}}function GJe(e){const{xynodes:r,xyedges:n,focusedNode:o}=e.context;if(!o)return{};const a=new Set([o]),i=n.map(l=>l.source===o||l.target===o?(a.add(l.source),a.add(l.target),Jt.setData(l,{dimmed:!1,active:!0})):Jt.setData(l,{dimmed:!0,active:!1}));return{xynodes:r.map(l=>Jt.setDimmed(l,!a.has(l.id))),xyedges:i}}function xte({context:e,event:r}){Ut(r,"update.view");let{navigationHistory:{currentIndex:n,history:o},lastOnNavigate:a,viewport:i}=e;const l=o[n];if(!l)return{navigationHistory:{currentIndex:0,history:[{viewId:r.view.id,fromNode:null,viewport:{...i}}]}};if(l.viewId!==r.view.id){if(!a){const s=n>0?mt(o[n-1]):null;if(s&&s.viewId===r.view.id)return{navigationHistory:{currentIndex:n-1,history:o},lastOnNavigate:{fromView:l.viewId,toView:s.viewId,fromNode:l.fromNode}};const c=n0,"Cannot navigate back");const o=n[r],a=n[r-1];return{navigationHistory:{currentIndex:r-1,history:n},lastOnNavigate:{fromView:o.viewId,toView:a.viewId,fromNode:o.fromNode}}}function KJe({context:e}){const{navigationHistory:{currentIndex:r,history:n}}=e;nt(r{if(n.id!==r.nodeId)return n;const o=aq(n.data,r.data);return ut(o,n.data)?n:{...n,data:o}})}}function QJe({context:e,event:r}){return Ut(r,"update.edgeData"),{xyedges:e.xyedges.map(n=>{if(n.id!==r.edgeId)return n;const o=aq(n.data,r.data);return ut(o,n.data)?n:{...n,data:o}})}}function JJe({context:e}){const{xynodes:r}=e;function n(i,l){const s=bp({x:i.width||0,y:i.height||0});let c=bp(i.position).add(s.mul(.5)),u=i;do{const d=u.parentId&&l.find(p=>p.id==u.parentId);if(!d)break;u=d,c=c.add(d.position)}while(!0);return c}function o(i){const l=r.find(g=>g.id==i.source),s=r.find(g=>g.id==i.target);if(!l||!s)return[];const c=n(l,r),u=n(s,r);if(!c||!u)return[];if(l===s){const g=new ia(0,l.height||0).mul(-.5).add(c);return[g.add(new ia(-32,-80)),g.add(new ia(32,-80))]}const d=u.sub(c),p=a(l,c,d),f=a(s,u,d.mul(-1));return[p.add(f.sub(p).mul(.3))]}function a(i,l,s){const c=(i.width||0)/2/s.x,u=(i.height||0)/2/s.y,d=Math.min(Math.abs(c),Math.abs(u));return bp(s).mul(d).add(l)}return{xyedges:e.xyedges.map(i=>!i.data.controlPoints||iu(i.data.controlPoints)?i:{...i,data:{...i.data,controlPoints:o(i)}})}}function eet({context:e}){const{stepId:r,parallelPrefix:n}=mt(e.activeWalkthrough,"activeWalkthrough is null"),o=mt(e.xyedges.find(a=>a.id===r));return{xyedges:e.xyedges.map(a=>{const i=r===a.id||!!n&&a.id.startsWith(n);return Jt.setData(a,{active:i,dimmed:r!==a.id})}),xynodes:e.xynodes.map(a=>{const i=o.source!==a.id&&o.target!==a.id;return a.type==="seq-parallel"?Jt.setData(a,{color:n===a.data.parallelPrefix?u4.active:u4.default,dimmed:i}):Jt.setDimmed(a,i)})}}const tet=zG(({sendBack:e})=>{const r=o9([["Escape",o=>{o.stopPropagation(),e({type:"key.esc"})},{preventDefault:!0}]]),n=o9([["ArrowLeft",o=>{o.stopPropagation(),e({type:"key.arrow.left"})},{preventDefault:!0}],["ArrowRight",o=>{o.stopPropagation(),e({type:"key.arrow.right"})},{preventDefault:!0}]]);return document.body.addEventListener("keydown",r),document.body.addEventListener("keydown",n,{capture:!0}),()=>{document.body.removeEventListener("keydown",r),document.body.removeEventListener("keydown",n,{capture:!0})}}),fR="likec4:diagram:toggledFeatures",wte={read(){try{let e=sessionStorage.getItem(fR);return e?JSON.parse(e):null}catch(e){return console.error(`Error reading fromStorage ${fR}:`,e),null}},write(e){return sessionStorage.setItem(fR,JSON.stringify(XNe(e,eq))),e}},ret=ec({delays:{timeout:2e3},actions:{"trigger:OnChange":(e,r)=>{}},guards:{"same view":({context:e})=>e.parent.getSnapshot().context.view.id===e.viewId}}).createMachine({initial:"idle",context:({input:e})=>({...e}),states:{idle:{tags:"ready",on:{sync:{target:"pending"}}},paused:{tags:"pending",on:{sync:{target:"pending"}}},pending:{tags:"pending",on:{sync:{target:"pending",reenter:!0},cancel:{target:"paused"}},after:{timeout:[{guard:"same view",actions:{type:"trigger:OnChange",params:({context:e})=>({change:net(e.parent.getSnapshot().context)})},target:"synced"},{target:"stopped"}]}},synced:{tags:"ready",on:{sync:{target:"pending"}}},stopped:{entry:et({parent:null}),type:"final"}},on:{synced:{target:".synced"},stop:{target:".stopped"}}}),kte=ret;function net(e){const{view:r,xystore:n,xyflow:o}=e,{nodeLookup:a}=n.getState(),i=new Set;let l;const s=hf([...a.values()],(u,d)=>{const p=Wn(d);(!_y(d.internals.positionAbsolute,d.data)||d.initialWidth!==p.width||d.initialHeight!==p.height)&&i.add(d.id);const f=u[d.id]={isCompound:d.type!=="element"&&d.type!=="deployment",x:Math.floor(d.internals.positionAbsolute.x),y:Math.floor(d.internals.positionAbsolute.y),width:Math.ceil(p.width),height:Math.ceil(p.height)};return l=l?vx(l,f):f,u},{}),c=hf(o?.getEdges()??[],(u,{source:d,target:p,data:f})=>{let g=f.controlPoints??[];const b=i.has(d)||i.has(p);if(g.length===0&&b&&(g=SQ(f)),f.points.length===0&&g.length===0)return u;const x=u[f.id]={points:f.points};f.labelXY&&f.labelBBox&&(x.labelBBox={...f.labelBBox,...f.labelXY}),f.labelBBox&&(x.labelBBox??=f.labelBBox),To(g,1)&&(x.controlPoints=g);const w=[...f.points.map(_=>_[0]),...g.map(_=>_.x),...x.labelBBox?[x.labelBBox.x,x.labelBBox.x+x.labelBBox.width]:[]],k=[...f.points.map(_=>_[1]),...g.map(_=>_.y),...x.labelBBox?[x.labelBBox.y,x.labelBBox.y+x.labelBBox.height]:[]],C=f0({x:Math.floor(Math.min(...w)),y:Math.floor(Math.min(...k)),x2:Math.ceil(Math.max(...w)),y2:Math.ceil(Math.max(...k))});return l=l?vx(l,C):C,u},{});return l??=r.bounds,{op:"save-manual-layout",layout:{hash:r.hash,autoLayout:r.autoLayout,nodes:s,edges:c,...l}}}const oet=ec({actors:{syncManualLayoutActorLogic:kte,hotkeyActorLogic:tet,overlaysActorLogic:FJe,searchActorLogic:UJe},guards:{isReady:({context:e})=>e.initialized.xydata&&e.initialized.xyflow,"enabled: FitView":({context:e})=>e.features.enableFitView,"enabled: FocusMode":({context:e})=>e.features.enableFocusMode&&(e.view._type!=="dynamic"||e.dynamicViewVariant!=="sequence"),"enabled: Readonly":({context:e})=>e.features.enableReadOnly,"enabled: RelationshipDetails":({context:e})=>e.features.enableRelationshipDetails,"enabled: Search":({context:e})=>e.features.enableSearch,"enabled: ElementDetails":({context:e})=>e.features.enableElementDetails,"enabled: DynamicViewWalkthrough":({context:e})=>e.features.enableDynamicViewWalkthrough,"not readonly":({context:e})=>!e.features.enableReadOnly,"is dynamic view":({context:e})=>e.view._type==="dynamic","is another view":({context:e,event:r})=>{if(Ut(r,["update.view","navigate.to"]),r.type==="update.view")return e.view.id!==r.view.id;if(r.type==="navigate.to")return e.view.id!==r.viewId;Xa(r.type)},"click: node has modelFqn":({event:e})=>(Ut(e,"xyflow.nodeClick"),"modelFqn"in e.node.data),"click: selected node":({event:e})=>(Ut(e,"xyflow.nodeClick"),e.node.selected===!0),"click: same node":({context:e,event:r})=>(Ut(r,"xyflow.nodeClick"),e.lastClickedNode?.id===r.node.id),"click: focused node":({context:e,event:r})=>(Ut(r,"xyflow.nodeClick"),e.focusedNode===r.node.id),"click: node has connections":({context:e,event:r})=>(Ut(r,"xyflow.nodeClick"),e.xyedges.some(n=>n.source===r.node.id||n.target===r.node.id)),"click: selected edge":({event:e})=>(Ut(e,"xyflow.edgeClick"),e.edge.selected===!0||e.edge.data.active===!0)},actions:{"trigger:NavigateTo":ui(({context:e})=>({type:"navigateTo",viewId:mt(e.lastOnNavigate,"Invalid state, lastOnNavigate is null").toView})),"assign lastClickedNode":et(({context:e,event:r})=>(Ut(r,"xyflow.nodeClick"),{lastClickedNode:WJe({context:e,event:r})})),"assign: focusedNode":et(({event:e})=>{let r;switch(e.type){case"xyflow.nodeClick":r=e.node.data.id;break;case"focus.node":r=e.nodeId;break;default:throw new Error(`Unexpected event type: ${e.type} in action 'assign: focusedNode'`)}return{focusedNode:r}}),"reset lastClickedNode":et(()=>({lastClickedNode:null})),"open source of focused or last clicked node":sn(({context:e,enqueue:r})=>{const n=e.focusedNode??e.lastClickedNode?.id;if(!n||!e.features.enableVscode)return;const o=Qf(e,n);o&&(o.deploymentRef?r.raise({type:"open.source",deployment:o.deploymentRef}):o.modelRef&&r.raise({type:"open.source",element:o.modelRef}))}),"xyflow:fitDiagram":({context:e},r)=>{const{bounds:n=e.view.bounds,duration:o=450}=r??{},{width:a,height:i,panZoom:l,transform:s}=mt(e.xystore).getState(),c=Math.max(1,s[2]),u=tu(n,a,i,pl,c,e.fitViewPadding);u.x=Math.round(u.x),u.y=Math.round(u.y),l?.setViewport(u,o>0?{duration:o}:void 0).catch(console.error)},"xyflow:fitFocusedBounds":({context:e})=>{const r=!!e.activeWalkthrough&&e.dynamicViewVariant==="sequence",{bounds:n,duration:o=450}=r?fBe({context:e}):pBe({context:e}),{width:a,height:i,panZoom:l,transform:s}=mt(e.xystore).getState(),c=Math.max(1,s[2]),u=tu(n,a,i,pl,c,e.fitViewPadding);u.x=Math.round(u.x),u.y=Math.round(u.y),l?.setViewport(u,o>0?{duration:o}:void 0)},"xyflow:setViewportCenter":({context:e},r)=>{const{x:n,y:o}=r;nt(e.xyflow,"xyflow is not initialized");const a=e.xyflow.getZoom();e.xyflow.setCenter(Math.round(n),Math.round(o),{zoom:a})},"xyflow:setViewport":({context:e},r)=>{const{viewport:n,duration:o=350}=r;e.xystore?.getState().panZoom?.setViewport(n,o>0?{duration:o}:void 0)},"xyflow:alignNodeFromToAfterNavigate":({context:e},r)=>{const n=mt(e.xyflow,"xyflow is not initialized"),o=n.getInternalNode(r.fromNode);if(!o)return;const a=n.flowToScreenPosition({x:o.internals.positionAbsolute.x,y:o.internals.positionAbsolute.y}),i=n.flowToScreenPosition(r.toPosition),l={x:Math.round(a.x-i.x),y:Math.round(a.y-i.y)};e.xystore.getState().panBy(l)},"layout.align":({context:e},r)=>{const{mode:n}=r,o=mt(e.xystore,"xystore is not initialized"),{nodeLookup:a,parentLookup:i}=o.getState(),l=[...new Set(a.values().filter(d=>d.selected).map(d=>d.id)).difference(new Set(i.keys()))];if(!To(l,2)){console.warn("At least 2 nodes must be selected to align");return}const s=ste(o,l),c=YJe(n),u=l.map(d=>({node:mt(a.get(d)),rect:mt(s.rects.get(d))}));c.computeLayout(u.map(({node:d})=>bte(d)));for(const{rect:d,node:p}of u)d.positionAbsolute={...d.positionAbsolute,...c.applyPosition(bte(p))};s.updateXYFlowNodes()},"ensure overlays actor state":sn(({enqueue:e,context:{features:r},system:n})=>{const o=r.enableElementDetails||r.enableRelationshipDetails||r.enableRelationshipBrowser,a=tc(n).overlaysActorRef;if(o&&!a){e.spawnChild("overlaysActorLogic",{id:"overlays",systemId:"overlays"});return}!o&&a&&(e.sendTo(a,{type:"close.all"}),e.stopChild("overlays"))}),"ensure search actor state":sn(({enqueue:e,context:{features:{enableSearch:r}},system:n})=>{const o=tc(n).searchActorRef;if(r&&!o){e.spawnChild("searchActorLogic",{id:"search",systemId:"search"});return}!r&&o&&(e.sendTo(o,{type:"close"}),e.stopChild("search"))}),updateFeatures:et(({event:e})=>(Ut(e,"update.features"),{features:{...e.features}})),updateInputs:et(({event:e})=>(Ut(e,"update.inputs"),{...e.inputs})),closeSearch:is(({system:e})=>tc(e).searchActorRef,{type:"close"}),closeAllOverlays:is(({system:e})=>tc(e).overlaysActorRef,{type:"close.all"}),startSyncLayout:et(({context:e,spawn:r,self:n})=>({syncLayoutActorRef:r("syncManualLayoutActorLogic",{id:"syncLayout",input:{parent:n,viewId:e.view.id}})})),stopSyncLayout:sn(({context:e,enqueue:r})=>{r.sendTo(e.syncLayoutActorRef,{type:"stop"}),r.stopChild(e.syncLayoutActorRef),r.assign({syncLayoutActorRef:null})}),onNodeMouseEnter:et(({context:e},r)=>({xynodes:e.xynodes.map(n=>n.id===r.node.id?Jt.setHovered(n,!0):n)})),onNodeMouseLeave:et(({context:e},r)=>({xynodes:e.xynodes.map(n=>n.id===r.node.id?Jt.setHovered(n,!1):n)})),onEdgeMouseEnter:sn(({enqueue:e,context:r,event:n})=>{Ut(n,"xyflow.edgeMouseEnter");let o=n.edge;e.assign({xyedges:r.xyedges.map(a=>a.id===n.edge.id?(o=Jt.setHovered(a,!0),o):a)}),e.emit({type:"edgeMouseEnter",edge:o,event:n.event})}),onEdgeMouseLeave:sn(({enqueue:e,context:r,event:n})=>{Ut(n,"xyflow.edgeMouseLeave");let o=n.edge;e.assign({xyedges:r.xyedges.map(a=>a.id===n.edge.id?(o=Jt.setHovered(a,!1),o):a)}),e.emit({type:"edgeMouseLeave",edge:o,event:n.event})}),"focus on nodes and edges":et(GJe),"notations.highlight":et(({context:e},r)=>{const n=r.kind?[r.kind]:r.notation.kinds;return{xynodes:e.xynodes.map(o=>{const a=Qf(e,o.id);return a&&a.notation===r.notation.title&&a.shape===r.notation.shape&&a.color===r.notation.color&&n.includes(a.kind)?Jt.setDimmed(o,!1):Jt.setDimmed(o,"immediate")}),xyedges:e.xyedges.map(Jt.setDimmed("immediate"))}}),"tag.highlight":et(({context:e,event:r})=>(Ut(r,"tag.highlight"),{xynodes:e.xynodes.map(n=>n.data.tags?.includes(r.tag)?Jt.setDimmed(n,!1):Jt.setDimmed(n,!0))})),"undim everything":et(({context:e})=>({xynodes:e.xynodes.map(Jt.setDimmed(!1)),xyedges:e.xyedges.map(Jt.setData({dimmed:!1,active:!1}))})),"update active walkthrough":et(eet),"open element details":is(({system:e})=>tc(e).overlaysActorRef,({context:e,event:r},n)=>{let o=null,a,i;if(n)i=n.fqn,a=n.fromNode??e.view.nodes.find(s=>s.modelRef===n.fqn)?.id;else if(r.type==="xyflow.nodeClick")nt("modelFqn"in r.node.data&&!!r.node.data.modelFqn,"No modelFqn in event node data"),i=r.node.data.modelFqn,a=r.node.data.id;else if(r.type==="open.elementDetails")i=r.fqn,a=r.fromNode;else{nt(e.lastClickedNode,"No last clicked node"),a=mt(e.lastClickedNode).id;const s=mt(e.xynodes.find(c=>c.id===a));nt("modelFqn"in s.data&&!!s.data.modelFqn,"No modelFqn in last clicked node"),i=s.data.modelFqn}const l=a?e.xystore.getState().nodeLookup.get(a):null;if(a&&l){const s=Bd(l),c=e.xyflow.getZoom(),u={...e.xyflow.flowToScreenPosition(s),width:s.width*c,height:s.height*c};o={node:a,clientRect:u}}return{type:"open.elementDetails",subject:i,currentView:e.view,...o&&{initiatedFrom:o}}}),"emit: walkthroughStarted":ui(({context:e})=>{const r=e.xyedges.find(n=>n.id===e.activeWalkthrough?.stepId);return nt(r,"Invalid walkthrough state"),{type:"walkthroughStarted",edge:r}}),"emit: walkthroughStep":ui(({context:e})=>{const r=e.xyedges.find(n=>n.id===e.activeWalkthrough?.stepId);return nt(r,"Invalid walkthrough state"),{type:"walkthroughStep",edge:r}}),"emit: walkthroughStopped":ui(()=>({type:"walkthroughStopped"})),"emit: edgeEditingStarted":ui(({context:e,event:r})=>(Ut(r,"xyflow.edgeEditingStarted"),{type:"edgeEditingStarted",edge:mt(e.xyedges.find(n=>n.id===r.edge.id),`Edge ${r.edge.id} not found`)})),"emit: paneClick":ui(()=>({type:"paneClick"})),"emit: nodeClick":ui(({context:e,event:r})=>(Ut(r,"xyflow.nodeClick"),{type:"nodeClick",node:mt(Qf(e,r.node.id),`Node ${r.node.id} not found in diagram`),xynode:r.node})),"emit: edgeClick":ui(({context:e,event:r})=>(Ut(r,"xyflow.edgeClick"),{type:"edgeClick",edge:mt(oS(e,r.edge.id),`Edge ${r.edge.id} not found in diagram`),xyedge:r.edge})),"emit: initialized":ui(({context:e})=>(nt(e.xyflow,"XYFlow instance not found"),{type:"initialized",instance:e.xyflow})),"emit: openSource":ui((e,r)=>({type:"openSource",params:r})),"assign: dynamicViewVariant":et(({event:e})=>(Ut(e,"switch.dynamicViewVariant"),{dynamicViewVariant:e.variant}))}}).createMachine({initial:"initializing",context:({input:e})=>({...e,xyedges:[],xynodes:[],features:{...HJ},toggledFeatures:wte.read()??{enableReadOnly:!0},initialized:{xydata:!1,xyflow:!1},viewportChangedManually:!1,lastOnNavigate:null,lastClickedNode:null,focusedNode:null,activeElementDetails:null,viewportBeforeFocus:null,navigationHistory:{currentIndex:0,history:[]},viewport:{x:0,y:0,zoom:1},xyflow:null,syncLayoutActorRef:null,dynamicViewVariant:e.dynamicViewVariant??(e.view._type==="dynamic"?e.view.variant:"diagram")??"diagram",activeWalkthrough:null}),states:{initializing:{on:{"xyflow.init":{actions:et(({context:e,event:r})=>({initialized:{...e.initialized,xyflow:!0},xyflow:r.instance})),target:"isReady"},"update.view":{actions:et(({context:e,event:r})=>({initialized:{...e.initialized,xydata:!0},view:r.view,xynodes:r.xynodes,xyedges:r.xyedges})),target:"isReady"}}},isReady:{always:[{guard:"isReady",actions:[{type:"xyflow:fitDiagram",params:{duration:0}},et(({context:e})=>({navigationHistory:{currentIndex:0,history:[{viewId:e.view.id,fromNode:null,viewport:{...e.xyflow.getViewport()}}]}})),"startSyncLayout","emit: initialized"],target:"ready"},{target:"initializing"}]},ready:{initial:"idle",on:{"navigate.to":{guard:"is another view",actions:et({lastOnNavigate:({context:e,event:r})=>({fromView:e.view.id,toView:r.viewId,fromNode:r.fromNode??null})}),target:"#navigating"},"navigate.back":{guard:({context:e})=>e.navigationHistory.currentIndex>0,actions:et(XJe),target:"#navigating"},"navigate.forward":{guard:({context:e})=>e.navigationHistory.currentIndex({mode:e.mode})},ln({type:"saveManualLayout.schedule"})]},"layout.resetEdgeControlPoints":{guard:"not readonly",actions:[et(JJe),ln({type:"saveManualLayout.schedule"})]},"xyflow.resized":{guard:({context:e})=>e.features.enableFitView&&!e.viewportChangedManually,actions:[oa("fitDiagram"),ln({type:"fitDiagram"},{id:"fitDiagram",delay:200})]},"open.elementDetails":{guard:"enabled: ElementDetails",actions:"open element details"},"open.relationshipsBrowser":{actions:is(({system:e})=>tc(e).overlaysActorRef,({context:e,event:r})=>({type:"open.relationshipsBrowser",subject:r.fqn,viewId:e.view.id,scope:"view",closeable:!0,enableChangeScope:!0,enableSelectSubject:!0}))},"open.relationshipDetails":{actions:is(({system:e})=>tc(e).overlaysActorRef,({context:e,event:r})=>({type:"open.relationshipDetails",viewId:e.view.id,...r.params}))},"open.source":{actions:{type:"emit: openSource",params:Ca("event")}},"walkthrough.start":{guard:"is dynamic view",target:".walkthrough"},"toggle.feature":{actions:et({toggledFeatures:({context:e,event:r})=>wte.write({...e.toggledFeatures,[`enable${r.feature}`]:r.forceValue??!(e.toggledFeatures[`enable${r.feature}`]??e.features[`enable${r.feature}`])})})},"xyflow.nodeMouseEnter":{actions:{type:"onNodeMouseEnter",params:Ca("event")}},"xyflow.nodeMouseLeave":{actions:{type:"onNodeMouseLeave",params:Ca("event")}},"xyflow.edgeMouseEnter":{actions:"onEdgeMouseEnter"},"xyflow.edgeMouseLeave":{actions:"onEdgeMouseLeave"},"notations.highlight":{actions:{type:"notations.highlight",params:Ca("event")}},"notations.unhighlight":{actions:"undim everything"},"tag.highlight":{actions:"tag.highlight"},"tag.unhighlight":{actions:"undim everything"},"saveManualLayout.*":{guard:"not readonly",actions:is(e=>e.context.syncLayoutActorRef,({event:e})=>{if(e.type==="saveManualLayout.schedule")return{type:"sync"};if(e.type==="saveManualLayout.cancel")return{type:"cancel"};Xa(e)})},"open.search":{guard:"enabled: Search",actions:is(({system:e})=>tc(e).searchActorRef,({event:e})=>({type:"open",search:e.search}))}},exit:[oa("fitDiagram")],states:{idle:{id:"idle",on:{"xyflow.nodeClick":[{guard:Zw(["enabled: FocusMode","click: node has connections",_G(["click: same node","click: selected node"])]),actions:["assign lastClickedNode","assign: focusedNode","emit: nodeClick"],target:"focused"},{guard:Zw(["enabled: ElementDetails","click: node has modelFqn",_G(["click: same node","click: selected node"])]),actions:["assign lastClickedNode","open source of focused or last clicked node","open element details","emit: nodeClick"]},{actions:["assign lastClickedNode","open source of focused or last clicked node","emit: nodeClick"]}],"xyflow.paneClick":{actions:["reset lastClickedNode","emit: paneClick"]},"xyflow.paneDblClick":{actions:["reset lastClickedNode","xyflow:fitDiagram",{type:"emit: openSource",params:({context:e})=>({view:e.view.id})}]},"focus.node":{guard:"enabled: FocusMode",actions:"assign: focusedNode",target:"focused"},"xyflow.edgeClick":{guard:Zw(["is dynamic view","enabled: DynamicViewWalkthrough","click: selected edge"]),actions:[ln(({event:e})=>({type:"walkthrough.start",stepId:e.edge.id})),"emit: edgeClick"]}}},focused:{entry:["focus on nodes and edges",et(e=>({viewportBeforeFocus:{...e.context.viewport}})),"open source of focused or last clicked node",Vf("hotkeyActorLogic",{id:"hotkey"}),"xyflow:fitFocusedBounds"],exit:sn(({enqueue:e,context:r})=>{e.stopChild("hotkey"),r.viewportBeforeFocus?e({type:"xyflow:setViewport",params:{viewport:r.viewportBeforeFocus}}):e("xyflow:fitDiagram"),e("undim everything"),e.assign({viewportBeforeFocus:null,focusedNode:null})}),on:{"xyflow.nodeClick":[{guard:Zw(["click: focused node","click: node has modelFqn"]),actions:["open element details","emit: nodeClick"]},{guard:"click: focused node",actions:"emit: nodeClick",target:"#idle"},{actions:["assign lastClickedNode",ln(({event:e})=>({type:"focus.node",nodeId:e.node.id})),"emit: nodeClick"]}],"focus.node":{actions:["assign: focusedNode","focus on nodes and edges","open source of focused or last clicked node","xyflow:fitFocusedBounds"]},"key.esc":{target:"idle"},"xyflow.paneClick":{actions:["reset lastClickedNode","emit: paneClick"],target:"idle"},"notations.unhighlight":{actions:"focus on nodes and edges"},"tag.unhighlight":{actions:"focus on nodes and edges"}}},walkthrough:{entry:[Vf("hotkeyActorLogic",{id:"hotkey"}),et({viewportBeforeFocus:({context:e})=>e.viewport,activeWalkthrough:({context:e,event:r})=>{Ut(r,"walkthrough.start");const n=r.stepId??pf(e.xyedges).id;return{stepId:n,parallelPrefix:$E(n)}}}),"update active walkthrough","xyflow:fitFocusedBounds","emit: walkthroughStarted"],exit:sn(({enqueue:e,context:r})=>{e.stopChild("hotkey"),r.viewportBeforeFocus?e({type:"xyflow:setViewport",params:{viewport:r.viewportBeforeFocus}}):e("xyflow:fitDiagram"),r.dynamicViewVariant==="sequence"&&r.activeWalkthrough?.parallelPrefix&&e.assign({xynodes:r.xynodes.map(n=>n.type==="seq-parallel"?Jt.setData(n,{color:u4.default}):n)}),e("undim everything"),e.assign({activeWalkthrough:null,viewportBeforeFocus:null}),e("emit: walkthroughStopped")}),on:{"key.esc":{target:"idle"},"key.arrow.left":{actions:ln({type:"walkthrough.step",direction:"previous"})},"key.arrow.right":{actions:ln({type:"walkthrough.step",direction:"next"})},"walkthrough.step":{actions:[et(({context:e,event:r})=>{const{stepId:n}=e.activeWalkthrough,o=e.xyedges.findIndex(l=>l.id===n),a=Ki(r.direction==="next"?o+1:o-1,{min:0,max:e.xyedges.length-1});if(a===o)return{};const i=e.xyedges[a].id;return{activeWalkthrough:{stepId:i,parallelPrefix:$E(i)}}}),"update active walkthrough","xyflow:fitFocusedBounds","emit: walkthroughStep"]},"xyflow.edgeClick":{actions:[et(({event:e,context:r})=>!v1(e.edge.id)||e.edge.id===r.activeWalkthrough?.stepId?{}:{activeWalkthrough:{stepId:e.edge.id,parallelPrefix:$E(e.edge.id)}}),"update active walkthrough","xyflow:fitFocusedBounds","emit: edgeClick","emit: walkthroughStep"]},"notations.unhighlight":{actions:"update active walkthrough"},"tag.unhighlight":{actions:"update active walkthrough"},"walkthrough.end":{target:"idle"},"xyflow.paneDblClick":{target:"idle"},"update.view":{guard:"is another view",actions:ln(({event:e})=>e,{delay:50}),target:"idle"}}}}},navigating:{id:"navigating",entry:["closeAllOverlays","closeSearch","stopSyncLayout","trigger:NavigateTo"],on:{"update.view":{actions:sn(({enqueue:e,context:r,event:n})=>{const{fromNode:o,toNode:a}=Ete(r,n);e(o&&a?{type:"xyflow:alignNodeFromToAfterNavigate",params:{fromNode:o.id,toPosition:{x:a.data.x,y:a.data.y}}}:{type:"xyflow:setViewportCenter",params:Qc.center(n.view.bounds)}),e.assign(xte),e.assign({...vte({context:r,event:n}),lastOnNavigate:null}),e("startSyncLayout"),e.raise({type:"fitDiagram"},{id:"fitDiagram",delay:25})}),target:"#idle"}}}},on:{"xyflow.paneClick":{actions:"emit: paneClick"},"xyflow.nodeClick":{actions:"emit: nodeClick"},"xyflow.edgeClick":{actions:"emit: edgeClick"},"xyflow.applyNodeChanges":{actions:et({xynodes:({context:e,event:r})=>Rx(r.changes,e.xynodes)})},"xyflow.applyEdgeChanges":{actions:et({xyedges:({context:e,event:r})=>Ax(r.changes,e.xyedges)})},"xyflow.viewportMoved":{actions:et({viewportChangedManually:(({event:e})=>e.manually),viewport:(({event:e})=>e.viewport)})},"xyflow.edgeEditingStarted":{actions:"emit: edgeEditingStarted"},fitDiagram:{guard:"enabled: FitView",actions:{type:"xyflow:fitDiagram",params:Ca("event")}},"update.nodeData":{actions:et(ZJe)},"update.edgeData":{actions:et(QJe)},"update.view":{actions:[et(xte),sn(({enqueue:e,event:r,check:n,context:o})=>{const a=n("is another view");if(a){e("closeAllOverlays"),e("closeSearch"),e("stopSyncLayout"),e.assign({focusedNode:null});const{fromNode:i,toNode:l}=Ete(o,r);i&&l?(e({type:"xyflow:alignNodeFromToAfterNavigate",params:{fromNode:i.id,toPosition:{x:l.data.x,y:l.data.y}}}),e.raise({type:"fitDiagram"},{id:"fitDiagram",delay:80})):(e({type:"xyflow:setViewportCenter",params:Qc.center(r.view.bounds)}),e.raise({type:"fitDiagram",duration:200},{id:"fitDiagram",delay:25}))}else{const i=r.view;i._type==="dynamic"&&o.view._type==="dynamic"&&i.variant!==o.view.variant&&e({type:"xyflow:setViewportCenter",params:Qc.center(i.bounds)})}e.assign({...vte({context:o,event:r}),lastOnNavigate:null}),a?e("startSyncLayout"):(e.sendTo(i=>i.context.syncLayoutActorRef,{type:"synced"}),o.viewportChangedManually||e.raise({type:"fitDiagram"},{id:"fitDiagram",delay:50}))})]},"update.inputs":{actions:"updateInputs"},"update.features":{actions:["updateFeatures","ensure overlays actor state","ensure search actor state"]},"switch.dynamicViewVariant":{actions:"assign: dynamicViewVariant"}},exit:["stopSyncLayout",oa("fitDiagram"),yu("hotkey"),yu("overlays"),yu("search"),et({xyflow:null,xystore:null,xyedges:[],xynodes:[],initialized:{xydata:!1,xyflow:!1},syncLayoutActorRef:null})]});function _te(e){switch(e.type){case"element":case"compound-element":case"seq-actor":return e.data.modelFqn;case"deployment":case"compound-deployment":return e.data.modelFqn??e.data.deploymentFqn;case"seq-parallel":case"view-group":return null;default:Xa(e)}}function Ete(e,r){const n=e.lastOnNavigate?.fromNode,o=n&&e.xynodes.find(l=>l.id===n),a=o&&_te(o),i=a&&r.xynodes.find(l=>_te(l)===a);return{fromNode:o,toNode:i}}const aet=oet,iet=e=>e.context.dynamicViewVariant;function set({view:e,zoomable:r,pannable:n,fitViewPadding:o,nodesSelectable:a,where:i,children:l,dynamicViewVariant:s}){const{handlersRef:c}=lc(),u=fr(),d=E.useRef(null);d.current||(d.current=aet.provide({actors:{syncManualLayoutActorLogic:kte.provide({actions:{"trigger:OnChange":((x,w)=>{c.current.onChange?.(w)})}})}}));const p=nS(d.current,{id:"diagram",systemId:"diagram",input:{xystore:u,view:e,zoomable:r,pannable:n,fitViewPadding:o,nodesSelectable:a,dynamicViewVariant:s}}),f=wr();BB(()=>{p.send({type:"update.features",features:f})},[f],Gn),E.useEffect(()=>{p.send({type:"update.inputs",inputs:{zoomable:r,pannable:n,fitViewPadding:o,nodesSelectable:a}})},[r,n,o,a]);const g=wn(p,iet),b=E.useMemo(()=>DJe({view:e,where:i,nodesSelectable:a,dynamicViewVariant:g}),[e,i,a,g]);return HB(()=>{p.send({type:"update.view",...b})},[p,b]),D2(()=>{s&&p.send({type:"switch.dynamicViewVariant",variant:s})},[s]),y.jsxs(gBe,{value:p,children:[y.jsx(sG,{children:y.jsx(uet,{actorRef:p,children:l})}),y.jsx(det,{actorRef:p})]})}const cet=e=>e.context.features.enableReadOnly||e.context.activeWalkthrough?{viewId:e.context.view.id,toggledFeatures:{...e.context.toggledFeatures,enableReadOnly:!0}}:{viewId:e.context.view.id,toggledFeatures:e.context.toggledFeatures};function uet({children:e,actorRef:r}){const{viewId:n,toggledFeatures:o}=wn(r,cet,ut),a=Ho().findView(n);return y.jsx(O7.Provider,{value:a,children:y.jsx(hp,{overrides:o,children:e})})}function det({actorRef:e}){const r=Wt(),{onNavigateTo:n,onOpenSource:o,handlersRef:a}=lc();il("openSource",({params:l})=>o?.(l)),il("navigateTo",({viewId:l})=>n?.(l));const i=E.useRef(!1);return E.useEffect(()=>{if(i.current)return;let l=e.on("initialized",({instance:s})=>{try{a.current.onInitialized?.({diagram:r,xyflow:s})}catch(c){console.error(c)}i.current=!0,l?.unsubscribe(),l=null});return()=>{l?.unsubscribe()}},[e,r]),null}const d4={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:e=>e>=255?255:e<0?0:e,g:e=>e>=255?255:e<0?0:e,b:e=>e>=255?255:e<0?0:e,h:e=>e%360,s:e=>e>=100?100:e<0?0:e,l:e=>e>=100?100:e<0?0:e,a:e=>e>=1?1:e<0?0:e},toLinear:e=>{const r=e/255;return e>.03928?Math.pow((r+.055)/1.055,2.4):r/12.92},hue2rgb:(e,r,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(r-e)*6*n:n<1/2?r:n<2/3?e+(r-e)*(2/3-n)*6:e),hsl2rgb:({h:e,s:r,l:n},o)=>{if(!r)return n*2.55;e/=360,r/=100,n/=100;const a=n<.5?n*(1+r):n+r-n*r,i=2*n-a;switch(o){case"r":return d4.hue2rgb(i,a,e+1/3)*255;case"g":return d4.hue2rgb(i,a,e)*255;case"b":return d4.hue2rgb(i,a,e-1/3)*255}},rgb2hsl:({r:e,g:r,b:n},o)=>{e/=255,r/=255,n/=255;const a=Math.max(e,r,n),i=Math.min(e,r,n),l=(a+i)/2;if(o==="l")return l*100;if(a===i)return 0;const s=a-i,c=l>.5?s/(2-a-i):s/(a+i);if(o==="s")return c*100;switch(a){case e:return((r-n)/s+(rr>n?Math.min(r,Math.max(n,e)):Math.min(n,Math.max(r,e)),round:e=>Math.round(e*1e10)/1e10},het={dec2hex:e=>{const r=Math.round(e).toString(16);return r.length>1?r:`0${r}`}},At={channel:d4,lang:pet,unit:het},Tu={};for(let e=0;e<=255;e++)Tu[e]=At.unit.dec2hex(e);const $o={ALL:0,RGB:1,HSL:2};class fet{constructor(){this.type=$o.ALL}get(){return this.type}set(r){if(this.type&&this.type!==r)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=r}reset(){this.type=$o.ALL}is(r){return this.type===r}}class met{constructor(r,n){this.color=n,this.changed=!1,this.data=r,this.type=new fet}set(r,n){return this.color=n,this.changed=!1,this.data=r,this.type.type=$o.ALL,this}_ensureHSL(){const r=this.data,{h:n,s:o,l:a}=r;n===void 0&&(r.h=At.channel.rgb2hsl(r,"h")),o===void 0&&(r.s=At.channel.rgb2hsl(r,"s")),a===void 0&&(r.l=At.channel.rgb2hsl(r,"l"))}_ensureRGB(){const r=this.data,{r:n,g:o,b:a}=r;n===void 0&&(r.r=At.channel.hsl2rgb(r,"r")),o===void 0&&(r.g=At.channel.hsl2rgb(r,"g")),a===void 0&&(r.b=At.channel.hsl2rgb(r,"b"))}get r(){const r=this.data,n=r.r;return!this.type.is($o.HSL)&&n!==void 0?n:(this._ensureHSL(),At.channel.hsl2rgb(r,"r"))}get g(){const r=this.data,n=r.g;return!this.type.is($o.HSL)&&n!==void 0?n:(this._ensureHSL(),At.channel.hsl2rgb(r,"g"))}get b(){const r=this.data,n=r.b;return!this.type.is($o.HSL)&&n!==void 0?n:(this._ensureHSL(),At.channel.hsl2rgb(r,"b"))}get h(){const r=this.data,n=r.h;return!this.type.is($o.RGB)&&n!==void 0?n:(this._ensureRGB(),At.channel.rgb2hsl(r,"h"))}get s(){const r=this.data,n=r.s;return!this.type.is($o.RGB)&&n!==void 0?n:(this._ensureRGB(),At.channel.rgb2hsl(r,"s"))}get l(){const r=this.data,n=r.l;return!this.type.is($o.RGB)&&n!==void 0?n:(this._ensureRGB(),At.channel.rgb2hsl(r,"l"))}get a(){return this.data.a}set r(r){this.type.set($o.RGB),this.changed=!0,this.data.r=r}set g(r){this.type.set($o.RGB),this.changed=!0,this.data.g=r}set b(r){this.type.set($o.RGB),this.changed=!0,this.data.b=r}set h(r){this.type.set($o.HSL),this.changed=!0,this.data.h=r}set s(r){this.type.set($o.HSL),this.changed=!0,this.data.s=r}set l(r){this.type.set($o.HSL),this.changed=!0,this.data.l=r}set a(r){this.changed=!0,this.data.a=r}}const p4=new met({r:0,g:0,b:0,a:0},"transparent"),Cm={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:e=>{if(e.charCodeAt(0)!==35)return;const r=e.match(Cm.re);if(!r)return;const n=r[1],o=parseInt(n,16),a=n.length,i=a%4===0,l=a>4,s=l?1:17,c=l?8:4,u=i?0:-1,d=l?255:15;return p4.set({r:(o>>c*(u+3)&d)*s,g:(o>>c*(u+2)&d)*s,b:(o>>c*(u+1)&d)*s,a:i?(o&d)*s/255:1},e)},stringify:e=>{const{r,g:n,b:o,a}=e;return a<1?`#${Tu[Math.round(r)]}${Tu[Math.round(n)]}${Tu[Math.round(o)]}${Tu[Math.round(a*255)]}`:`#${Tu[Math.round(r)]}${Tu[Math.round(n)]}${Tu[Math.round(o)]}`}},xp={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:e=>{const r=e.match(xp.hueRe);if(r){const[,n,o]=r;switch(o){case"grad":return At.channel.clamp.h(parseFloat(n)*.9);case"rad":return At.channel.clamp.h(parseFloat(n)*180/Math.PI);case"turn":return At.channel.clamp.h(parseFloat(n)*360)}}return At.channel.clamp.h(parseFloat(e))},parse:e=>{const r=e.charCodeAt(0);if(r!==104&&r!==72)return;const n=e.match(xp.re);if(!n)return;const[,o,a,i,l,s]=n;return p4.set({h:xp._hue2deg(o),s:At.channel.clamp.s(parseFloat(a)),l:At.channel.clamp.l(parseFloat(i)),a:l?At.channel.clamp.a(s?parseFloat(l)/100:parseFloat(l)):1},e)},stringify:e=>{const{h:r,s:n,l:o,a}=e;return a<1?`hsla(${At.lang.round(r)}, ${At.lang.round(n)}%, ${At.lang.round(o)}%, ${a})`:`hsl(${At.lang.round(r)}, ${At.lang.round(n)}%, ${At.lang.round(o)}%)`}},zy={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:e=>{e=e.toLowerCase();const r=zy.colors[e];if(r)return Cm.parse(r)},stringify:e=>{const r=Cm.stringify(e);for(const n in zy.colors)if(zy.colors[n]===r)return n}},jy={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:e=>{const r=e.charCodeAt(0);if(r!==114&&r!==82)return;const n=e.match(jy.re);if(!n)return;const[,o,a,i,l,s,c,u,d]=n;return p4.set({r:At.channel.clamp.r(a?parseFloat(o)*2.55:parseFloat(o)),g:At.channel.clamp.g(l?parseFloat(i)*2.55:parseFloat(i)),b:At.channel.clamp.b(c?parseFloat(s)*2.55:parseFloat(s)),a:u?At.channel.clamp.a(d?parseFloat(u)/100:parseFloat(u)):1},e)},stringify:e=>{const{r,g:n,b:o,a}=e;return a<1?`rgba(${At.lang.round(r)}, ${At.lang.round(n)}, ${At.lang.round(o)}, ${At.lang.round(a)})`:`rgb(${At.lang.round(r)}, ${At.lang.round(n)}, ${At.lang.round(o)})`}},yl={format:{keyword:zy,hex:Cm,rgb:jy,rgba:jy,hsl:xp,hsla:xp},parse:e=>{if(typeof e!="string")return e;const r=Cm.parse(e)||jy.parse(e)||xp.parse(e)||zy.parse(e);if(r)return r;throw new Error(`Unsupported color format: "${e}"`)},stringify:e=>!e.changed&&e.color?e.color:e.type.is($o.HSL)||e.data.r===void 0?xp.stringify(e):e.a<1||!Number.isInteger(e.r)||!Number.isInteger(e.g)||!Number.isInteger(e.b)?jy.stringify(e):Cm.stringify(e)},Ste=(e,r)=>{const n=yl.parse(e);for(const o in r)n[o]=At.channel.clamp[o](r[o]);return yl.stringify(n)},get=(e,r,n=0,o=1)=>{if(typeof e!="number")return Ste(e,{a:r});const a=p4.set({r:At.channel.clamp.r(e),g:At.channel.clamp.g(r),b:At.channel.clamp.b(n),a:At.channel.clamp.a(o)});return yl.stringify(a)},Cte=e=>yl.format.hex.stringify(yl.parse(e)),Tte=e=>yl.format.rgba.stringify(yl.parse(e)),yet=(e,r)=>{const n=yl.parse(e),o={};for(const a in r)r[a]&&(o[a]=n[a]+r[a]);return Ste(e,o)},Rte=(e,r,n=50)=>{const{r:o,g:a,b:i,a:l}=yl.parse(e),{r:s,g:c,b:u,a:d}=yl.parse(r),p=n/100,f=p*2-1,g=l-d,b=((f*g===-1?f:(f+g)/(1+f*g))+1)/2,x=1-b,w=o*b+s*x,k=a*b+c*x,C=i*b+u*x,_=l*p+d*(1-p);return get(w,k,C,_)},Ate=(e,r)=>{const n=yl.parse(e),o={},a=(i,l,s)=>l>0?(s-i)*l/100:i*l/100;for(const i in r)o[i]=a(n[i],r[i],At.channel.max[i]);return yet(e,o)},Nte=e=>`[data-mantine-color-scheme="${e}"]`,Dte=Nte("dark"),bet=Nte("light"),vet=5,xet=(e,r,n,o)=>{const a=s=>Cte(Ate(s,{l:-22-5*o,s:-10-6*o})),i=s=>Cte(Ate(s,{l:-20-3*o,s:-3-6*o})),l=`:where(${e} [data-likec4-color="${r}"][data-compound-depth="${o}"])`;return` +${l} { + --likec4-palette-fill: ${i(n.elements.fill)}; + --likec4-palette-stroke: ${i(n.elements.stroke)}; +} +${Dte} ${l} { + --likec4-palette-fill: ${a(n.elements.fill)}; + --likec4-palette-stroke: ${a(n.elements.stroke)}; +} + `.trim()};function wet(e,r,n){const{elements:o,relationships:a}=n,i=`:where(${e} [data-likec4-color=${r}])`;return[` +${i} { + --likec4-palette-fill: ${o.fill}; + --likec4-palette-stroke: ${o.stroke}; + --likec4-palette-hiContrast: ${o.hiContrast}; + --likec4-palette-loContrast: ${o.loContrast}; + --likec4-palette-relation-stroke: ${a.line}; + --likec4-palette-relation-label: ${a.label}; + --likec4-palette-relation-label-bg: ${a.labelBg}; +} +${bet} ${i} { + --likec4-palette-relation-stroke-selected: ${Tte(Rte(a.line,"black",85))}; +} +${Dte} ${i} { + --likec4-palette-relation-stroke-selected: ${Tte(Rte(a.line,"white",70))}; +} + + `.trim(),...ZNe(1,vet+1).map(l=>xet(e,r,n,l))].join(` +`)}function ket(e,r){return yn(r.colors,B8(),Ro(([n,o])=>wet(e,n,o)),oq(` +`))}const _et=E.memo(({id:e})=>{const r=`#${e}`,n=Yd()?.(),{theme:o}=nte(),a=ket(r,o);return y.jsx("style",{type:"text/css","data-likec4-colors":e,dangerouslySetInnerHTML:{__html:a},nonce:n})});function $te(e,r){if(e._type==="dynamic")try{if(r??=e.variant,r==="sequence")return e.sequenceLayout.bounds}catch{}return e.bounds}function Pte({children:e}){const r=E.useContext(Zx);return E.useEffect(()=>{r||console.warn("LikeC4Diagram must be a child of MantineProvider")},[]),r?y.jsx(y.Fragment,{children:e}):y.jsx(g9,{defaultColorScheme:"auto",children:e})}Pte.displayName="EnsureMantine";const mR=({reducedMotion:e="user",children:r})=>{const n=Yd()?.();return y.jsx(wUe,{features:yVe,strict:!0,children:y.jsx(EUe,{reducedMotion:e,...n&&{nonce:n},children:r})})};function Ote({onCanvasClick:e,onCanvasContextMenu:r,onCanvasDblClick:n,onEdgeClick:o,onChange:a,onEdgeContextMenu:i,onNavigateTo:l,onNodeClick:s,onNodeContextMenu:c,onOpenSource:u,onBurgerMenuClick:d,onInitialized:p,view:f,className:g,readonly:b=!0,controls:x=!b,fitView:w=!0,fitViewPadding:k=x?P2.withControls:P2.default,pannable:C=!0,zoomable:_=!0,background:T="dots",enableElementTags:R=!1,enableFocusMode:A=!1,enableElementDetails:D=!1,enableRelationshipDetails:N=!1,enableRelationshipBrowser:P=!1,nodesDraggable:O=!b,nodesSelectable:B=!b||A||!!l||!!s,showNotations:L=!0,showNavigationButtons:Y=!!l,enableDynamicViewWalkthrough:M=!1,dynamicViewVariant:q,enableSearch:I=!1,initialWidth:U,initialHeight:V,experimentalEdgeEditing:G=!b,reduceGraphics:F="auto",renderIcon:J,where:Q,reactFlowProps:z,renderNodes:W,children:X}){const Z=ZW(),oe=E.useRef(null),ee=$te(f,q),re=Eet(k);oe.current==null&&(oe.current={defaultEdges:[],defaultNodes:[],initialWidth:U??ee.width,initialHeight:V??ee.height,initialFitViewOptions:{maxZoom:HC,minZoom:pl,padding:re},initialMaxZoom:HC,initialMinZoom:pl});const pe=F==="auto"?C&&(ee.width??1)*(ee.height??1)>6e6&&f.nodes.some(Ce=>Ce.children?.length>0):F;return y.jsx(Pte,{children:y.jsx(mR,{...pe&&{reducedMotion:"always"},children:y.jsx(u8e,{value:J??null,children:y.jsx(hp,{features:{enableFitView:w,enableReadOnly:b,enableFocusMode:A,enableNavigateTo:!!l,enableElementDetails:D,enableRelationshipDetails:N,enableRelationshipBrowser:P,enableSearch:I,enableNavigationButtons:Y&&!!l,enableDynamicViewWalkthrough:f._type==="dynamic"&&M,enableEdgeEditing:G,enableNotations:L,enableVscode:!!u,enableControls:x,enableElementTags:R},children:y.jsxs(gKe,{handlers:{onCanvasClick:e,onCanvasContextMenu:r,onCanvasDblClick:n,onEdgeClick:o,onChange:a,onEdgeContextMenu:i,onNavigateTo:l,onNodeClick:s,onNodeContextMenu:c,onOpenSource:u,onBurgerMenuClick:d,onInitialized:p},children:[y.jsx(_et,{id:Z}),y.jsx(Pze,{rootSelector:`#${Z}`,children:y.jsx(Cze,{id:Z,className:g,reduceGraphics:pe,children:y.jsx(Px,{fitView:w,...oe.current,children:y.jsxs(set,{view:f,zoomable:_,pannable:C,fitViewPadding:re,nodesSelectable:B,where:Q??null,dynamicViewVariant:q,children:[y.jsx(EJe,{nodesDraggable:O,nodesSelectable:B,background:T,reactFlowProps:z,renderNodes:W,children:X}),y.jsx(Yee,{})]})})})})]})})})})})}const Mte=e=>typeof e=="number"?`${e}px`:e;function Eet(e){return qB(()=>U8(e)?UNe(e,Mte):Mte(e),[e],ut)}function Cet({children:e,likec4model:r}){return y.jsx(W0.Provider,{value:r,children:e})}const gR=({children:e})=>y.jsx("div",{style:{margin:"1rem 0"},children:y.jsx("div",{style:{margin:"0 auto",display:"inline-block",padding:"2rem",background:"rgba(250,82,82,.15)",color:"#ffa8a8"},children:e})}),Tet=({viewId:e})=>y.jsxs(gR,{children:["View ",y.jsx("code",{children:e})," not found"]}),Ret=e=>{throw new Error("LikeC4View is not available SSR")};var Ite={exports:{}},yR,Lte;function Aet(){if(Lte)return yR;Lte=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return yR=e,yR}var bR,zte;function Net(){if(zte)return bR;zte=1;var e=Aet();function r(){}function n(){}return n.resetWarningCache=r,bR=function(){function o(l,s,c,u,d,p){if(p!==e){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}}o.isRequired=o;function a(){return o}var i={array:o,bigint:o,bool:o,func:o,number:o,object:o,string:o,symbol:o,any:o,arrayOf:a,element:o,elementType:o,instanceOf:a,node:o,objectOf:a,oneOf:a,oneOfType:a,shape:a,exact:a,checkPropTypes:n,resetWarningCache:r};return i.PropTypes=i,i},bR}var jte;function Det(){return jte||(jte=1,Ite.exports=Net()()),Ite.exports}var $et=Det();const bl=D8($et);var Pet=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Bte(e,r){return e(r={exports:{}},r.exports),r.exports}var Oet=Bte((function(e){(function(r){var n=function(w,k,C){if(!c(k)||d(k)||p(k)||f(k)||s(k))return k;var _,T=0,R=0;if(u(k))for(_=[],R=k.length;Te.length)&&(r=e.length);for(var n=0,o=new Array(r);n=0||(a[n]=e[n]);return a},Ute=function(e,r){if(e==null)return{};var n,o,a=Bet(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a},Fet=E.createContext(null);function qte(e){var r=e.children,n=r===void 0?"":r,o=Ute(e,["children"]);return typeof n!="string"&&(n=Ret()),Xr.createElement("template",Hte({},o,{dangerouslySetInnerHTML:{__html:n}}))}function Vte(e){var r=e.root,n=e.children;return ji.createPortal(n===void 0?null:n,r)}function Het(e){var r=E.forwardRef((function(n,o){var a,i,l=n.mode,s=l===void 0?"open":l,c=n.delegatesFocus,u=c!==void 0&&c,d=n.styleSheets,p=d===void 0?[]:d,f=n.ssr,g=f!==void 0&&f,b=n.children,x=Ute(n,["mode","delegatesFocus","styleSheets","ssr","children"]),w=(i=E.useRef((a=o)&&a.current),E.useEffect((function(){a&&(a.current=i.current)}),[a]),i),k=E.useState(null),C=jet(k,2),_=C[0],T=C[1],R="node_".concat(s).concat(u);return E.useLayoutEffect((function(){if(w.current)try{if(typeof o=="function"&&o(w.current),g){var A=w.current.shadowRoot;return void T(A)}var D=w.current.attachShadow({mode:s,delegatesFocus:u});p.length>0&&(D.adoptedStyleSheets=p),T(D)}catch(N){(function(P){var O=P.error,B=P.styleSheets,L=P.root;switch(O.name){case"NotSupportedError":B.length>0&&(L.adoptedStyleSheets=B);break;default:throw O}})({error:N,styleSheets:p,root:_})}}),[o,w,p]),Xr.createElement(Xr.Fragment,null,Xr.createElement(e.tag,Hte({key:R,ref:w},x),(_||g)&&Xr.createElement(Fet.Provider,{value:_},g?Xr.createElement(qte,{shadowroot:s,shadowrootmode:s},e.render({root:_,ssr:g,children:b})):Xr.createElement(Vte,{root:_},e.render({root:_,ssr:g,children:b})))))}));return r.propTypes={mode:bl.oneOf(["open","closed"]),delegatesFocus:bl.bool,styleSheets:bl.arrayOf(bl.instanceOf(globalThis.CSSStyleSheet)),ssr:bl.bool,children:bl.node},r}qte.propTypes={children:bl.oneOfType([bl.string,bl.node])},Vte.propTypes={root:bl.object.isRequired,children:bl.node};var vR=new Map;function Uet(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"core",n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(o){return o.children};return new Proxy(e,{get:function(o,a){var i=Oet(a,{separator:"-"}),l="".concat(r,"-").concat(i);return vR.has(l)||vR.set(l,Het({tag:i,render:n})),vR.get(l)}})}var qet=Uet();const Vet='@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-400-normal.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-500-normal.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-600-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-600-normal.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-400-normal.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-500-normal.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-600-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-600-normal.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-ext-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-ext-400-normal.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-ext-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-ext-500-normal.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-ext-600-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/cyrillic-ext-600-normal.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-ext-400-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-ext-400-normal.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-ext-500-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-ext-500-normal.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-ext-600-normal.woff2) format("woff2"),url(https://cdn.jsdelivr.net/fontsource/fonts/ibm-plex-sans@latest/latin-ext-600-normal.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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}',Yte=`@layer reset,base,mantine,xyflow,tokens,recipes,utilities;@layer mantine{:root{color-scheme:var(--mantine-color-scheme)}*,*:before,*:after{box-sizing:border-box}input,button,textarea,select{font:inherit}button,select{text-transform:none}body{margin:0;font-family:var(--mantine-font-family);font-size:var(--mantine-font-size-md);line-height:var(--mantine-line-height);background-color:var(--mantine-color-body);color:var(--mantine-color-text);-webkit-font-smoothing:var(--mantine-webkit-font-smoothing);-moz-osx-font-smoothing:var(--mantine-moz-font-smoothing)}@media screen and (max-device-width: 31.25em){body{-webkit-text-size-adjust:100%}}@media (prefers-reduced-motion: reduce){[data-respect-reduced-motion] [data-reduce-motion]{transition:none;animation:none}}[data-mantine-color-scheme=light] .mantine-light-hidden,[data-mantine-color-scheme=dark] .mantine-dark-hidden{display:none}.mantine-focus-auto:focus-visible{outline:2px solid var(--mantine-primary-color-filled);outline-offset:calc(.125rem * var(--mantine-scale))}.mantine-focus-always:focus{outline:2px solid var(--mantine-primary-color-filled);outline-offset:calc(.125rem * var(--mantine-scale))}.mantine-focus-never:focus{outline:none}.mantine-active:active{transform:translateY(calc(.0625rem * var(--mantine-scale)))}fieldset:disabled .mantine-active:active{transform:none}:where([dir=rtl]) .mantine-rotate-rtl{transform:rotate(180deg)}:root{--mantine-z-index-app: 100;--mantine-z-index-modal: 200;--mantine-z-index-popover: 300;--mantine-z-index-overlay: 400;--mantine-z-index-max: 9999;--mantine-scale: 1;--mantine-cursor-type: default;--mantine-webkit-font-smoothing: antialiased;--mantine-moz-font-smoothing: grayscale;--mantine-color-white: #fff;--mantine-color-black: #000;--mantine-line-height: 1.55;--mantine-font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;--mantine-font-family-monospace: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;--mantine-font-family-headings: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;--mantine-heading-font-weight: 700;--mantine-heading-text-wrap: wrap;--mantine-radius-default: calc(.25rem * var(--mantine-scale));--mantine-primary-color-filled: var(--mantine-color-blue-filled);--mantine-primary-color-filled-hover: var(--mantine-color-blue-filled-hover);--mantine-primary-color-light: var(--mantine-color-blue-light);--mantine-primary-color-light-hover: var(--mantine-color-blue-light-hover);--mantine-primary-color-light-color: var(--mantine-color-blue-light-color);--mantine-breakpoint-xs: 36em;--mantine-breakpoint-sm: 48em;--mantine-breakpoint-md: 62em;--mantine-breakpoint-lg: 75em;--mantine-breakpoint-xl: 88em;--mantine-spacing-xs: calc(.625rem * var(--mantine-scale));--mantine-spacing-sm: calc(.75rem * var(--mantine-scale));--mantine-spacing-md: calc(1rem * var(--mantine-scale));--mantine-spacing-lg: calc(1.25rem * var(--mantine-scale));--mantine-spacing-xl: calc(2rem * var(--mantine-scale));--mantine-font-size-xs: calc(.75rem * var(--mantine-scale));--mantine-font-size-sm: calc(.875rem * var(--mantine-scale));--mantine-font-size-md: calc(1rem * var(--mantine-scale));--mantine-font-size-lg: calc(1.125rem * var(--mantine-scale));--mantine-font-size-xl: calc(1.25rem * var(--mantine-scale));--mantine-line-height-xs: 1.4;--mantine-line-height-sm: 1.45;--mantine-line-height-md: 1.55;--mantine-line-height-lg: 1.6;--mantine-line-height-xl: 1.65;--mantine-shadow-xs: 0 calc(.0625rem * var(--mantine-scale)) calc(.1875rem * var(--mantine-scale)) rgba(0, 0, 0, .05), 0 calc(.0625rem * var(--mantine-scale)) calc(.125rem * var(--mantine-scale)) rgba(0, 0, 0, .1);--mantine-shadow-sm: 0 calc(.0625rem * var(--mantine-scale)) calc(.1875rem * var(--mantine-scale)) rgba(0, 0, 0, .05), rgba(0, 0, 0, .05) 0 calc(.625rem * var(--mantine-scale)) calc(.9375rem * var(--mantine-scale)) calc(-.3125rem * var(--mantine-scale)), rgba(0, 0, 0, .04) 0 calc(.4375rem * var(--mantine-scale)) calc(.4375rem * var(--mantine-scale)) calc(-.3125rem * var(--mantine-scale));--mantine-shadow-md: 0 calc(.0625rem * var(--mantine-scale)) calc(.1875rem * var(--mantine-scale)) rgba(0, 0, 0, .05), rgba(0, 0, 0, .05) 0 calc(1.25rem * var(--mantine-scale)) calc(1.5625rem * var(--mantine-scale)) calc(-.3125rem * var(--mantine-scale)), rgba(0, 0, 0, .04) 0 calc(.625rem * var(--mantine-scale)) calc(.625rem * var(--mantine-scale)) calc(-.3125rem * var(--mantine-scale));--mantine-shadow-lg: 0 calc(.0625rem * var(--mantine-scale)) calc(.1875rem * var(--mantine-scale)) rgba(0, 0, 0, .05), rgba(0, 0, 0, .05) 0 calc(1.75rem * var(--mantine-scale)) calc(1.4375rem * var(--mantine-scale)) calc(-.4375rem * var(--mantine-scale)), rgba(0, 0, 0, .04) 0 calc(.75rem * var(--mantine-scale)) calc(.75rem * var(--mantine-scale)) calc(-.4375rem * var(--mantine-scale));--mantine-shadow-xl: 0 calc(.0625rem * var(--mantine-scale)) calc(.1875rem * var(--mantine-scale)) rgba(0, 0, 0, .05), rgba(0, 0, 0, .05) 0 calc(2.25rem * var(--mantine-scale)) calc(1.75rem * var(--mantine-scale)) calc(-.4375rem * var(--mantine-scale)), rgba(0, 0, 0, .04) 0 calc(1.0625rem * var(--mantine-scale)) calc(1.0625rem * var(--mantine-scale)) calc(-.4375rem * var(--mantine-scale));--mantine-radius-xs: calc(.125rem * var(--mantine-scale));--mantine-radius-sm: calc(.25rem * var(--mantine-scale));--mantine-radius-md: calc(.5rem * var(--mantine-scale));--mantine-radius-lg: calc(1rem * var(--mantine-scale));--mantine-radius-xl: calc(2rem * var(--mantine-scale));--mantine-primary-color-0: var(--mantine-color-blue-0);--mantine-primary-color-1: var(--mantine-color-blue-1);--mantine-primary-color-2: var(--mantine-color-blue-2);--mantine-primary-color-3: var(--mantine-color-blue-3);--mantine-primary-color-4: var(--mantine-color-blue-4);--mantine-primary-color-5: var(--mantine-color-blue-5);--mantine-primary-color-6: var(--mantine-color-blue-6);--mantine-primary-color-7: var(--mantine-color-blue-7);--mantine-primary-color-8: var(--mantine-color-blue-8);--mantine-primary-color-9: var(--mantine-color-blue-9);--mantine-color-dark-0: #c9c9c9;--mantine-color-dark-1: #b8b8b8;--mantine-color-dark-2: #828282;--mantine-color-dark-3: #696969;--mantine-color-dark-4: #424242;--mantine-color-dark-5: #3b3b3b;--mantine-color-dark-6: #2e2e2e;--mantine-color-dark-7: #242424;--mantine-color-dark-8: #1f1f1f;--mantine-color-dark-9: #141414;--mantine-color-gray-0: #f8f9fa;--mantine-color-gray-1: #f1f3f5;--mantine-color-gray-2: #e9ecef;--mantine-color-gray-3: #dee2e6;--mantine-color-gray-4: #ced4da;--mantine-color-gray-5: #adb5bd;--mantine-color-gray-6: #868e96;--mantine-color-gray-7: #495057;--mantine-color-gray-8: #343a40;--mantine-color-gray-9: #212529;--mantine-color-red-0: #fff5f5;--mantine-color-red-1: #ffe3e3;--mantine-color-red-2: #ffc9c9;--mantine-color-red-3: #ffa8a8;--mantine-color-red-4: #ff8787;--mantine-color-red-5: #ff6b6b;--mantine-color-red-6: #fa5252;--mantine-color-red-7: #f03e3e;--mantine-color-red-8: #e03131;--mantine-color-red-9: #c92a2a;--mantine-color-pink-0: #fff0f6;--mantine-color-pink-1: #ffdeeb;--mantine-color-pink-2: #fcc2d7;--mantine-color-pink-3: #faa2c1;--mantine-color-pink-4: #f783ac;--mantine-color-pink-5: #f06595;--mantine-color-pink-6: #e64980;--mantine-color-pink-7: #d6336c;--mantine-color-pink-8: #c2255c;--mantine-color-pink-9: #a61e4d;--mantine-color-grape-0: #f8f0fc;--mantine-color-grape-1: #f3d9fa;--mantine-color-grape-2: #eebefa;--mantine-color-grape-3: #e599f7;--mantine-color-grape-4: #da77f2;--mantine-color-grape-5: #cc5de8;--mantine-color-grape-6: #be4bdb;--mantine-color-grape-7: #ae3ec9;--mantine-color-grape-8: #9c36b5;--mantine-color-grape-9: #862e9c;--mantine-color-violet-0: #f3f0ff;--mantine-color-violet-1: #e5dbff;--mantine-color-violet-2: #d0bfff;--mantine-color-violet-3: #b197fc;--mantine-color-violet-4: #9775fa;--mantine-color-violet-5: #845ef7;--mantine-color-violet-6: #7950f2;--mantine-color-violet-7: #7048e8;--mantine-color-violet-8: #6741d9;--mantine-color-violet-9: #5f3dc4;--mantine-color-indigo-0: #edf2ff;--mantine-color-indigo-1: #dbe4ff;--mantine-color-indigo-2: #bac8ff;--mantine-color-indigo-3: #91a7ff;--mantine-color-indigo-4: #748ffc;--mantine-color-indigo-5: #5c7cfa;--mantine-color-indigo-6: #4c6ef5;--mantine-color-indigo-7: #4263eb;--mantine-color-indigo-8: #3b5bdb;--mantine-color-indigo-9: #364fc7;--mantine-color-blue-0: #e7f5ff;--mantine-color-blue-1: #d0ebff;--mantine-color-blue-2: #a5d8ff;--mantine-color-blue-3: #74c0fc;--mantine-color-blue-4: #4dabf7;--mantine-color-blue-5: #339af0;--mantine-color-blue-6: #228be6;--mantine-color-blue-7: #1c7ed6;--mantine-color-blue-8: #1971c2;--mantine-color-blue-9: #1864ab;--mantine-color-cyan-0: #e3fafc;--mantine-color-cyan-1: #c5f6fa;--mantine-color-cyan-2: #99e9f2;--mantine-color-cyan-3: #66d9e8;--mantine-color-cyan-4: #3bc9db;--mantine-color-cyan-5: #22b8cf;--mantine-color-cyan-6: #15aabf;--mantine-color-cyan-7: #1098ad;--mantine-color-cyan-8: #0c8599;--mantine-color-cyan-9: #0b7285;--mantine-color-teal-0: #e6fcf5;--mantine-color-teal-1: #c3fae8;--mantine-color-teal-2: #96f2d7;--mantine-color-teal-3: #63e6be;--mantine-color-teal-4: #38d9a9;--mantine-color-teal-5: #20c997;--mantine-color-teal-6: #12b886;--mantine-color-teal-7: #0ca678;--mantine-color-teal-8: #099268;--mantine-color-teal-9: #087f5b;--mantine-color-green-0: #ebfbee;--mantine-color-green-1: #d3f9d8;--mantine-color-green-2: #b2f2bb;--mantine-color-green-3: #8ce99a;--mantine-color-green-4: #69db7c;--mantine-color-green-5: #51cf66;--mantine-color-green-6: #40c057;--mantine-color-green-7: #37b24d;--mantine-color-green-8: #2f9e44;--mantine-color-green-9: #2b8a3e;--mantine-color-lime-0: #f4fce3;--mantine-color-lime-1: #e9fac8;--mantine-color-lime-2: #d8f5a2;--mantine-color-lime-3: #c0eb75;--mantine-color-lime-4: #a9e34b;--mantine-color-lime-5: #94d82d;--mantine-color-lime-6: #82c91e;--mantine-color-lime-7: #74b816;--mantine-color-lime-8: #66a80f;--mantine-color-lime-9: #5c940d;--mantine-color-yellow-0: #fff9db;--mantine-color-yellow-1: #fff3bf;--mantine-color-yellow-2: #ffec99;--mantine-color-yellow-3: #ffe066;--mantine-color-yellow-4: #ffd43b;--mantine-color-yellow-5: #fcc419;--mantine-color-yellow-6: #fab005;--mantine-color-yellow-7: #f59f00;--mantine-color-yellow-8: #f08c00;--mantine-color-yellow-9: #e67700;--mantine-color-orange-0: #fff4e6;--mantine-color-orange-1: #ffe8cc;--mantine-color-orange-2: #ffd8a8;--mantine-color-orange-3: #ffc078;--mantine-color-orange-4: #ffa94d;--mantine-color-orange-5: #ff922b;--mantine-color-orange-6: #fd7e14;--mantine-color-orange-7: #f76707;--mantine-color-orange-8: #e8590c;--mantine-color-orange-9: #d9480f;--mantine-h1-font-size: calc(2.125rem * var(--mantine-scale));--mantine-h1-line-height: 1.3;--mantine-h1-font-weight: 700;--mantine-h2-font-size: calc(1.625rem * var(--mantine-scale));--mantine-h2-line-height: 1.35;--mantine-h2-font-weight: 700;--mantine-h3-font-size: calc(1.375rem * var(--mantine-scale));--mantine-h3-line-height: 1.4;--mantine-h3-font-weight: 700;--mantine-h4-font-size: calc(1.125rem * var(--mantine-scale));--mantine-h4-line-height: 1.45;--mantine-h4-font-weight: 700;--mantine-h5-font-size: calc(1rem * var(--mantine-scale));--mantine-h5-line-height: 1.5;--mantine-h5-font-weight: 700;--mantine-h6-font-size: calc(.875rem * var(--mantine-scale));--mantine-h6-line-height: 1.5;--mantine-h6-font-weight: 700}:root[data-mantine-color-scheme=dark]{--mantine-color-scheme: dark;--mantine-primary-color-contrast: var(--mantine-color-white);--mantine-color-bright: var(--mantine-color-white);--mantine-color-text: var(--mantine-color-dark-0);--mantine-color-body: var(--mantine-color-dark-7);--mantine-color-error: var(--mantine-color-red-8);--mantine-color-placeholder: var(--mantine-color-dark-3);--mantine-color-anchor: var(--mantine-color-blue-4);--mantine-color-default: var(--mantine-color-dark-6);--mantine-color-default-hover: var(--mantine-color-dark-5);--mantine-color-default-color: var(--mantine-color-white);--mantine-color-default-border: var(--mantine-color-dark-4);--mantine-color-dimmed: var(--mantine-color-dark-2);--mantine-color-disabled: var(--mantine-color-dark-6);--mantine-color-disabled-color: var(--mantine-color-dark-3);--mantine-color-disabled-border: var(--mantine-color-dark-4);--mantine-color-dark-text: var(--mantine-color-dark-4);--mantine-color-dark-filled: var(--mantine-color-dark-8);--mantine-color-dark-filled-hover: var(--mantine-color-dark-9);--mantine-color-dark-light: rgba(46, 46, 46, .15);--mantine-color-dark-light-hover: rgba(46, 46, 46, .2);--mantine-color-dark-light-color: var(--mantine-color-dark-3);--mantine-color-dark-outline: var(--mantine-color-dark-4);--mantine-color-dark-outline-hover: rgba(66, 66, 66, .05);--mantine-color-gray-text: var(--mantine-color-gray-4);--mantine-color-gray-filled: var(--mantine-color-gray-8);--mantine-color-gray-filled-hover: var(--mantine-color-gray-9);--mantine-color-gray-light: rgba(134, 142, 150, .15);--mantine-color-gray-light-hover: rgba(134, 142, 150, .2);--mantine-color-gray-light-color: var(--mantine-color-gray-3);--mantine-color-gray-outline: var(--mantine-color-gray-4);--mantine-color-gray-outline-hover: rgba(206, 212, 218, .05);--mantine-color-red-text: var(--mantine-color-red-4);--mantine-color-red-filled: var(--mantine-color-red-8);--mantine-color-red-filled-hover: var(--mantine-color-red-9);--mantine-color-red-light: rgba(250, 82, 82, .15);--mantine-color-red-light-hover: rgba(250, 82, 82, .2);--mantine-color-red-light-color: var(--mantine-color-red-3);--mantine-color-red-outline: var(--mantine-color-red-4);--mantine-color-red-outline-hover: rgba(255, 135, 135, .05);--mantine-color-pink-text: var(--mantine-color-pink-4);--mantine-color-pink-filled: var(--mantine-color-pink-8);--mantine-color-pink-filled-hover: var(--mantine-color-pink-9);--mantine-color-pink-light: rgba(230, 73, 128, .15);--mantine-color-pink-light-hover: rgba(230, 73, 128, .2);--mantine-color-pink-light-color: var(--mantine-color-pink-3);--mantine-color-pink-outline: var(--mantine-color-pink-4);--mantine-color-pink-outline-hover: rgba(247, 131, 172, .05);--mantine-color-grape-text: var(--mantine-color-grape-4);--mantine-color-grape-filled: var(--mantine-color-grape-8);--mantine-color-grape-filled-hover: var(--mantine-color-grape-9);--mantine-color-grape-light: rgba(190, 75, 219, .15);--mantine-color-grape-light-hover: rgba(190, 75, 219, .2);--mantine-color-grape-light-color: var(--mantine-color-grape-3);--mantine-color-grape-outline: var(--mantine-color-grape-4);--mantine-color-grape-outline-hover: rgba(218, 119, 242, .05);--mantine-color-violet-text: var(--mantine-color-violet-4);--mantine-color-violet-filled: var(--mantine-color-violet-8);--mantine-color-violet-filled-hover: var(--mantine-color-violet-9);--mantine-color-violet-light: rgba(121, 80, 242, .15);--mantine-color-violet-light-hover: rgba(121, 80, 242, .2);--mantine-color-violet-light-color: var(--mantine-color-violet-3);--mantine-color-violet-outline: var(--mantine-color-violet-4);--mantine-color-violet-outline-hover: rgba(151, 117, 250, .05);--mantine-color-indigo-text: var(--mantine-color-indigo-4);--mantine-color-indigo-filled: var(--mantine-color-indigo-8);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-9);--mantine-color-indigo-light: rgba(76, 110, 245, .15);--mantine-color-indigo-light-hover: rgba(76, 110, 245, .2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-3);--mantine-color-indigo-outline: var(--mantine-color-indigo-4);--mantine-color-indigo-outline-hover: rgba(116, 143, 252, .05);--mantine-color-blue-text: var(--mantine-color-blue-4);--mantine-color-blue-filled: var(--mantine-color-blue-8);--mantine-color-blue-filled-hover: var(--mantine-color-blue-9);--mantine-color-blue-light: rgba(34, 139, 230, .15);--mantine-color-blue-light-hover: rgba(34, 139, 230, .2);--mantine-color-blue-light-color: var(--mantine-color-blue-3);--mantine-color-blue-outline: var(--mantine-color-blue-4);--mantine-color-blue-outline-hover: rgba(77, 171, 247, .05);--mantine-color-cyan-text: var(--mantine-color-cyan-4);--mantine-color-cyan-filled: var(--mantine-color-cyan-8);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-9);--mantine-color-cyan-light: rgba(21, 170, 191, .15);--mantine-color-cyan-light-hover: rgba(21, 170, 191, .2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-3);--mantine-color-cyan-outline: var(--mantine-color-cyan-4);--mantine-color-cyan-outline-hover: rgba(59, 201, 219, .05);--mantine-color-teal-text: var(--mantine-color-teal-4);--mantine-color-teal-filled: var(--mantine-color-teal-8);--mantine-color-teal-filled-hover: var(--mantine-color-teal-9);--mantine-color-teal-light: rgba(18, 184, 134, .15);--mantine-color-teal-light-hover: rgba(18, 184, 134, .2);--mantine-color-teal-light-color: var(--mantine-color-teal-3);--mantine-color-teal-outline: var(--mantine-color-teal-4);--mantine-color-teal-outline-hover: rgba(56, 217, 169, .05);--mantine-color-green-text: var(--mantine-color-green-4);--mantine-color-green-filled: var(--mantine-color-green-8);--mantine-color-green-filled-hover: var(--mantine-color-green-9);--mantine-color-green-light: rgba(64, 192, 87, .15);--mantine-color-green-light-hover: rgba(64, 192, 87, .2);--mantine-color-green-light-color: var(--mantine-color-green-3);--mantine-color-green-outline: var(--mantine-color-green-4);--mantine-color-green-outline-hover: rgba(105, 219, 124, .05);--mantine-color-lime-text: var(--mantine-color-lime-4);--mantine-color-lime-filled: var(--mantine-color-lime-8);--mantine-color-lime-filled-hover: var(--mantine-color-lime-9);--mantine-color-lime-light: rgba(130, 201, 30, .15);--mantine-color-lime-light-hover: rgba(130, 201, 30, .2);--mantine-color-lime-light-color: var(--mantine-color-lime-3);--mantine-color-lime-outline: var(--mantine-color-lime-4);--mantine-color-lime-outline-hover: rgba(169, 227, 75, .05);--mantine-color-yellow-text: var(--mantine-color-yellow-4);--mantine-color-yellow-filled: var(--mantine-color-yellow-8);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-9);--mantine-color-yellow-light: rgba(250, 176, 5, .15);--mantine-color-yellow-light-hover: rgba(250, 176, 5, .2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-3);--mantine-color-yellow-outline: var(--mantine-color-yellow-4);--mantine-color-yellow-outline-hover: rgba(255, 212, 59, .05);--mantine-color-orange-text: var(--mantine-color-orange-4);--mantine-color-orange-filled: var(--mantine-color-orange-8);--mantine-color-orange-filled-hover: var(--mantine-color-orange-9);--mantine-color-orange-light: rgba(253, 126, 20, .15);--mantine-color-orange-light-hover: rgba(253, 126, 20, .2);--mantine-color-orange-light-color: var(--mantine-color-orange-3);--mantine-color-orange-outline: var(--mantine-color-orange-4);--mantine-color-orange-outline-hover: rgba(255, 169, 77, .05)}:root[data-mantine-color-scheme=light]{--mantine-color-scheme: light;--mantine-primary-color-contrast: var(--mantine-color-white);--mantine-color-bright: var(--mantine-color-black);--mantine-color-text: #000;--mantine-color-body: #fff;--mantine-color-error: var(--mantine-color-red-6);--mantine-color-placeholder: var(--mantine-color-gray-5);--mantine-color-anchor: var(--mantine-color-blue-6);--mantine-color-default: var(--mantine-color-white);--mantine-color-default-hover: var(--mantine-color-gray-0);--mantine-color-default-color: var(--mantine-color-black);--mantine-color-default-border: var(--mantine-color-gray-4);--mantine-color-dimmed: var(--mantine-color-gray-6);--mantine-color-disabled: var(--mantine-color-gray-2);--mantine-color-disabled-color: var(--mantine-color-gray-5);--mantine-color-disabled-border: var(--mantine-color-gray-3);--mantine-color-dark-text: var(--mantine-color-dark-filled);--mantine-color-dark-filled: var(--mantine-color-dark-6);--mantine-color-dark-filled-hover: var(--mantine-color-dark-7);--mantine-color-dark-light: rgba(46, 46, 46, .1);--mantine-color-dark-light-hover: rgba(46, 46, 46, .12);--mantine-color-dark-light-color: var(--mantine-color-dark-6);--mantine-color-dark-outline: var(--mantine-color-dark-6);--mantine-color-dark-outline-hover: rgba(46, 46, 46, .05);--mantine-color-gray-text: var(--mantine-color-gray-filled);--mantine-color-gray-filled: var(--mantine-color-gray-6);--mantine-color-gray-filled-hover: var(--mantine-color-gray-7);--mantine-color-gray-light: rgba(134, 142, 150, .1);--mantine-color-gray-light-hover: rgba(134, 142, 150, .12);--mantine-color-gray-light-color: var(--mantine-color-gray-6);--mantine-color-gray-outline: var(--mantine-color-gray-6);--mantine-color-gray-outline-hover: rgba(134, 142, 150, .05);--mantine-color-red-text: var(--mantine-color-red-filled);--mantine-color-red-filled: var(--mantine-color-red-6);--mantine-color-red-filled-hover: var(--mantine-color-red-7);--mantine-color-red-light: rgba(250, 82, 82, .1);--mantine-color-red-light-hover: rgba(250, 82, 82, .12);--mantine-color-red-light-color: var(--mantine-color-red-6);--mantine-color-red-outline: var(--mantine-color-red-6);--mantine-color-red-outline-hover: rgba(250, 82, 82, .05);--mantine-color-pink-text: var(--mantine-color-pink-filled);--mantine-color-pink-filled: var(--mantine-color-pink-6);--mantine-color-pink-filled-hover: var(--mantine-color-pink-7);--mantine-color-pink-light: rgba(230, 73, 128, .1);--mantine-color-pink-light-hover: rgba(230, 73, 128, .12);--mantine-color-pink-light-color: var(--mantine-color-pink-6);--mantine-color-pink-outline: var(--mantine-color-pink-6);--mantine-color-pink-outline-hover: rgba(230, 73, 128, .05);--mantine-color-grape-text: var(--mantine-color-grape-filled);--mantine-color-grape-filled: var(--mantine-color-grape-6);--mantine-color-grape-filled-hover: var(--mantine-color-grape-7);--mantine-color-grape-light: rgba(190, 75, 219, .1);--mantine-color-grape-light-hover: rgba(190, 75, 219, .12);--mantine-color-grape-light-color: var(--mantine-color-grape-6);--mantine-color-grape-outline: var(--mantine-color-grape-6);--mantine-color-grape-outline-hover: rgba(190, 75, 219, .05);--mantine-color-violet-text: var(--mantine-color-violet-filled);--mantine-color-violet-filled: var(--mantine-color-violet-6);--mantine-color-violet-filled-hover: var(--mantine-color-violet-7);--mantine-color-violet-light: rgba(121, 80, 242, .1);--mantine-color-violet-light-hover: rgba(121, 80, 242, .12);--mantine-color-violet-light-color: var(--mantine-color-violet-6);--mantine-color-violet-outline: var(--mantine-color-violet-6);--mantine-color-violet-outline-hover: rgba(121, 80, 242, .05);--mantine-color-indigo-text: var(--mantine-color-indigo-filled);--mantine-color-indigo-filled: var(--mantine-color-indigo-6);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-7);--mantine-color-indigo-light: rgba(76, 110, 245, .1);--mantine-color-indigo-light-hover: rgba(76, 110, 245, .12);--mantine-color-indigo-light-color: var(--mantine-color-indigo-6);--mantine-color-indigo-outline: var(--mantine-color-indigo-6);--mantine-color-indigo-outline-hover: rgba(76, 110, 245, .05);--mantine-color-blue-text: var(--mantine-color-blue-filled);--mantine-color-blue-filled: var(--mantine-color-blue-6);--mantine-color-blue-filled-hover: var(--mantine-color-blue-7);--mantine-color-blue-light: rgba(34, 139, 230, .1);--mantine-color-blue-light-hover: rgba(34, 139, 230, .12);--mantine-color-blue-light-color: var(--mantine-color-blue-6);--mantine-color-blue-outline: var(--mantine-color-blue-6);--mantine-color-blue-outline-hover: rgba(34, 139, 230, .05);--mantine-color-cyan-text: var(--mantine-color-cyan-filled);--mantine-color-cyan-filled: var(--mantine-color-cyan-6);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-7);--mantine-color-cyan-light: rgba(21, 170, 191, .1);--mantine-color-cyan-light-hover: rgba(21, 170, 191, .12);--mantine-color-cyan-light-color: var(--mantine-color-cyan-6);--mantine-color-cyan-outline: var(--mantine-color-cyan-6);--mantine-color-cyan-outline-hover: rgba(21, 170, 191, .05);--mantine-color-teal-text: var(--mantine-color-teal-filled);--mantine-color-teal-filled: var(--mantine-color-teal-6);--mantine-color-teal-filled-hover: var(--mantine-color-teal-7);--mantine-color-teal-light: rgba(18, 184, 134, .1);--mantine-color-teal-light-hover: rgba(18, 184, 134, .12);--mantine-color-teal-light-color: var(--mantine-color-teal-6);--mantine-color-teal-outline: var(--mantine-color-teal-6);--mantine-color-teal-outline-hover: rgba(18, 184, 134, .05);--mantine-color-green-text: var(--mantine-color-green-filled);--mantine-color-green-filled: var(--mantine-color-green-6);--mantine-color-green-filled-hover: var(--mantine-color-green-7);--mantine-color-green-light: rgba(64, 192, 87, .1);--mantine-color-green-light-hover: rgba(64, 192, 87, .12);--mantine-color-green-light-color: var(--mantine-color-green-6);--mantine-color-green-outline: var(--mantine-color-green-6);--mantine-color-green-outline-hover: rgba(64, 192, 87, .05);--mantine-color-lime-text: var(--mantine-color-lime-filled);--mantine-color-lime-filled: var(--mantine-color-lime-6);--mantine-color-lime-filled-hover: var(--mantine-color-lime-7);--mantine-color-lime-light: rgba(130, 201, 30, .1);--mantine-color-lime-light-hover: rgba(130, 201, 30, .12);--mantine-color-lime-light-color: var(--mantine-color-lime-6);--mantine-color-lime-outline: var(--mantine-color-lime-6);--mantine-color-lime-outline-hover: rgba(130, 201, 30, .05);--mantine-color-yellow-text: var(--mantine-color-yellow-filled);--mantine-color-yellow-filled: var(--mantine-color-yellow-6);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-7);--mantine-color-yellow-light: rgba(250, 176, 5, .1);--mantine-color-yellow-light-hover: rgba(250, 176, 5, .12);--mantine-color-yellow-light-color: var(--mantine-color-yellow-6);--mantine-color-yellow-outline: var(--mantine-color-yellow-6);--mantine-color-yellow-outline-hover: rgba(250, 176, 5, .05);--mantine-color-orange-text: var(--mantine-color-orange-filled);--mantine-color-orange-filled: var(--mantine-color-orange-6);--mantine-color-orange-filled-hover: var(--mantine-color-orange-7);--mantine-color-orange-light: rgba(253, 126, 20, .1);--mantine-color-orange-light-hover: rgba(253, 126, 20, .12);--mantine-color-orange-light-color: var(--mantine-color-orange-6);--mantine-color-orange-outline: var(--mantine-color-orange-6);--mantine-color-orange-outline-hover: rgba(253, 126, 20, .05)}.m_d57069b5{--scrollarea-scrollbar-size: calc(.75rem * var(--mantine-scale));position:relative;overflow:hidden}.m_d57069b5:where([data-autosize]) .m_b1336c6{min-width:min-content}.m_c0783ff9{scrollbar-width:none;overscroll-behavior:var(--scrollarea-over-scroll-behavior);-ms-overflow-style:none;-webkit-overflow-scrolling:touch;width:100%;height:100%}.m_c0783ff9::-webkit-scrollbar{display:none}.m_c0783ff9:where([data-scrollbars=xy],[data-scrollbars=y]):where([data-offset-scrollbars=xy],[data-offset-scrollbars=y],[data-offset-scrollbars=present]):where([data-vertical-hidden]){padding-inline-end:0;padding-inline-start:0}.m_c0783ff9:where([data-scrollbars=xy],[data-scrollbars=y]):where([data-offset-scrollbars=xy],[data-offset-scrollbars=y],[data-offset-scrollbars=present]):not([data-vertical-hidden]){padding-inline-end:var(--scrollarea-scrollbar-size);padding-inline-start:unset}.m_c0783ff9:where([data-scrollbars=xy],[data-scrollbars=x]):where([data-offset-scrollbars=xy],[data-offset-scrollbars=x],[data-offset-scrollbars=present]):where([data-horizontal-hidden]){padding-bottom:0}.m_c0783ff9:where([data-scrollbars=xy],[data-scrollbars=x]):where([data-offset-scrollbars=xy],[data-offset-scrollbars=x],[data-offset-scrollbars=present]):not([data-horizontal-hidden]){padding-bottom:var(--scrollarea-scrollbar-size)}.m_f8f631dd{min-width:100%;display:table}.m_c44ba933{user-select:none;touch-action:none;box-sizing:border-box;transition:background-color .15s ease,opacity .15s ease;padding:calc(var(--scrollarea-scrollbar-size) / 5);display:flex;background-color:transparent;flex-direction:row}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_c44ba933:hover{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=light]) .m_c44ba933:hover>.m_d8b5e363{background-color:#00000080}:where([data-mantine-color-scheme=dark]) .m_c44ba933:hover{background-color:var(--mantine-color-dark-8)}:where([data-mantine-color-scheme=dark]) .m_c44ba933:hover>.m_d8b5e363{background-color:#ffffff80}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_c44ba933:active{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=light]) .m_c44ba933:active>.m_d8b5e363{background-color:#00000080}:where([data-mantine-color-scheme=dark]) .m_c44ba933:active{background-color:var(--mantine-color-dark-8)}:where([data-mantine-color-scheme=dark]) .m_c44ba933:active>.m_d8b5e363{background-color:#ffffff80}}.m_c44ba933:where([data-hidden],[data-state=hidden]){display:none}.m_c44ba933:where([data-orientation=vertical]){width:var(--scrollarea-scrollbar-size);top:0;bottom:var(--sa-corner-width);inset-inline-end:0}.m_c44ba933:where([data-orientation=horizontal]){height:var(--scrollarea-scrollbar-size);flex-direction:column;bottom:0;inset-inline-start:0;inset-inline-end:var(--sa-corner-width)}.m_d8b5e363{flex:1;border-radius:var(--scrollarea-scrollbar-size);position:relative;transition:background-color .15s ease;overflow:hidden;opacity:var(--thumb-opacity)}.m_d8b5e363:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;min-width:calc(2.75rem * var(--mantine-scale));min-height:calc(2.75rem * var(--mantine-scale))}:where([data-mantine-color-scheme=light]) .m_d8b5e363{background-color:#0006}:where([data-mantine-color-scheme=dark]) .m_d8b5e363{background-color:#fff6}.m_21657268{position:absolute;opacity:0;transition:opacity .15s ease;display:block;inset-inline-end:0;bottom:0}:where([data-mantine-color-scheme=light]) .m_21657268{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_21657268{background-color:var(--mantine-color-dark-8)}.m_21657268:where([data-hovered]){opacity:1}.m_21657268:where([data-hidden]){display:none}.m_b1336c6{min-width:100%}.m_87cf2631{background-color:transparent;cursor:pointer;border:0;padding:0;appearance:none;font-size:var(--mantine-font-size-md);text-align:left;text-decoration:none;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}:where([dir=rtl]) .m_87cf2631{text-align:right}.m_515a97f8{border:0;clip:rect(0 0 0 0);height:calc(.0625rem * var(--mantine-scale));width:calc(.0625rem * var(--mantine-scale));margin:calc(-.0625rem * var(--mantine-scale));overflow:hidden;padding:0;position:absolute;white-space:nowrap}.m_1b7284a3{--paper-radius: var(--mantine-radius-default);outline:0;-webkit-tap-highlight-color:transparent;display:block;touch-action:manipulation;text-decoration:none;border-radius:var(--paper-radius);box-shadow:var(--paper-shadow);background-color:var(--mantine-color-body)}[data-mantine-color-scheme=light] .m_1b7284a3{--paper-border-color: var(--mantine-color-gray-3)}[data-mantine-color-scheme=dark] .m_1b7284a3{--paper-border-color: var(--mantine-color-dark-4)}.m_1b7284a3:where([data-with-border]){border:calc(.0625rem * var(--mantine-scale)) solid var(--paper-border-color)}.m_9814e45f{inset:0;position:absolute;background:var(--overlay-bg, rgba(0, 0, 0, .6));-webkit-backdrop-filter:var(--overlay-filter);backdrop-filter:var(--overlay-filter);border-radius:var(--overlay-radius, 0);z-index:var(--overlay-z-index)}.m_9814e45f:where([data-fixed]){position:fixed}.m_9814e45f:where([data-center]){display:flex;align-items:center;justify-content:center}.m_38a85659{position:absolute;border:1px solid var(--popover-border-color);padding:var(--mantine-spacing-sm) var(--mantine-spacing-md);box-shadow:var(--popover-shadow, none);border-radius:var(--popover-radius, var(--mantine-radius-default))}.m_38a85659:where([data-fixed]){position:fixed}.m_38a85659:focus{outline:none}:where([data-mantine-color-scheme=light]) .m_38a85659{--popover-border-color: var(--mantine-color-gray-2);background-color:var(--mantine-color-white)}:where([data-mantine-color-scheme=dark]) .m_38a85659{--popover-border-color: var(--mantine-color-dark-4);background-color:var(--mantine-color-dark-6)}.m_a31dc6c1{background-color:inherit;border:1px solid var(--popover-border-color);z-index:1}.m_3d7bc908{position:fixed;inset:0}.m_5ae2e3c{--loader-size-xs: calc(1.125rem * var(--mantine-scale));--loader-size-sm: calc(1.375rem * var(--mantine-scale));--loader-size-md: calc(2.25rem * var(--mantine-scale));--loader-size-lg: calc(2.75rem * var(--mantine-scale));--loader-size-xl: calc(3.625rem * var(--mantine-scale));--loader-size: var(--loader-size-md);--loader-color: var(--mantine-primary-color-filled)}@keyframes m_5d2b3b9d{0%{transform:scale(.6);opacity:0}50%,to{transform:scale(1)}}.m_7a2bd4cd{position:relative;width:var(--loader-size);height:var(--loader-size);display:flex;gap:calc(var(--loader-size) / 5)}.m_870bb79{flex:1;background:var(--loader-color);animation:m_5d2b3b9d 1.2s cubic-bezier(0,.5,.5,1) infinite;border-radius:calc(.125rem * var(--mantine-scale))}.m_870bb79:nth-of-type(1){animation-delay:-.24s}.m_870bb79:nth-of-type(2){animation-delay:-.12s}.m_870bb79:nth-of-type(3){animation-delay:0}@keyframes m_aac34a1{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.6);opacity:.5}}.m_4e3f22d7{display:flex;justify-content:center;align-items:center;gap:calc(var(--loader-size) / 10);position:relative;width:var(--loader-size);height:var(--loader-size)}.m_870c4af{width:calc(var(--loader-size) / 3 - var(--loader-size) / 15);height:calc(var(--loader-size) / 3 - var(--loader-size) / 15);border-radius:50%;background:var(--loader-color);animation:m_aac34a1 .8s infinite linear}.m_870c4af:nth-child(2){animation-delay:.4s}@keyframes m_f8e89c4b{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.m_b34414df{display:inline-block;width:var(--loader-size);height:var(--loader-size)}.m_b34414df:after{content:"";display:block;width:var(--loader-size);height:var(--loader-size);border-radius:calc(625rem * var(--mantine-scale));border-width:calc(var(--loader-size) / 8);border-style:solid;border-color:var(--loader-color) var(--loader-color) var(--loader-color) transparent;animation:m_f8e89c4b 1.2s linear infinite}.m_8d3f4000{--ai-size-xs: calc(1.125rem * var(--mantine-scale));--ai-size-sm: calc(1.375rem * var(--mantine-scale));--ai-size-md: calc(1.75rem * var(--mantine-scale));--ai-size-lg: calc(2.125rem * var(--mantine-scale));--ai-size-xl: calc(2.75rem * var(--mantine-scale));--ai-size-input-xs: calc(1.875rem * var(--mantine-scale));--ai-size-input-sm: calc(2.25rem * var(--mantine-scale));--ai-size-input-md: calc(2.625rem * var(--mantine-scale));--ai-size-input-lg: calc(3.125rem * var(--mantine-scale));--ai-size-input-xl: calc(3.75rem * var(--mantine-scale));--ai-size: var(--ai-size-md);--ai-color: var(--mantine-color-white);line-height:1;display:inline-flex;align-items:center;justify-content:center;position:relative;user-select:none;overflow:hidden;width:var(--ai-size);height:var(--ai-size);min-width:var(--ai-size);min-height:var(--ai-size);border-radius:var(--ai-radius, var(--mantine-radius-default));background:var(--ai-bg, var(--mantine-primary-color-filled));color:var(--ai-color, var(--mantine-color-white));border:var(--ai-bd, calc(.0625rem * var(--mantine-scale)) solid transparent);cursor:pointer}@media (hover: hover){.m_8d3f4000:hover:where(:not([data-loading],:disabled,[data-disabled])){background-color:var(--ai-hover, var(--mantine-primary-color-filled-hover));color:var(--ai-hover-color, var(--ai-color))}}@media (hover: none){.m_8d3f4000:active:where(:not([data-loading],:disabled,[data-disabled])){background-color:var(--ai-hover, var(--mantine-primary-color-filled-hover));color:var(--ai-hover-color, var(--ai-color))}}.m_8d3f4000[data-loading]{cursor:not-allowed}.m_8d3f4000[data-loading] .m_8d3afb97{opacity:0;transform:translateY(100%)}.m_8d3f4000:where(:disabled:not([data-loading]),[data-disabled]:not([data-loading])){cursor:not-allowed;border:calc(.0625rem * var(--mantine-scale)) solid transparent;color:var(--mantine-color-disabled-color);background-color:var(--mantine-color-disabled)}.m_8d3f4000:where(:disabled:not([data-loading]),[data-disabled]:not([data-loading])):active{transform:none}.m_302b9fb1{inset:calc(-.0625rem * var(--mantine-scale));position:absolute;border-radius:var(--ai-radius, var(--mantine-radius-default));display:flex;align-items:center;justify-content:center}:where([data-mantine-color-scheme=light]) .m_302b9fb1{background-color:#ffffff26}:where([data-mantine-color-scheme=dark]) .m_302b9fb1{background-color:#00000026}.m_1a0f1b21{--ai-border-width: calc(.0625rem * var(--mantine-scale));display:flex}.m_1a0f1b21 :where(*):focus{position:relative;z-index:1}.m_1a0f1b21[data-orientation=horizontal]{flex-direction:row}.m_1a0f1b21[data-orientation=horizontal] .m_8d3f4000:not(:only-child):first-child,.m_1a0f1b21[data-orientation=horizontal] .m_437b6484:not(:only-child):first-child{border-end-end-radius:0;border-start-end-radius:0;border-inline-end-width:calc(var(--ai-border-width) / 2)}.m_1a0f1b21[data-orientation=horizontal] .m_8d3f4000:not(:only-child):last-child,.m_1a0f1b21[data-orientation=horizontal] .m_437b6484:not(:only-child):last-child{border-end-start-radius:0;border-start-start-radius:0;border-inline-start-width:calc(var(--ai-border-width) / 2)}.m_1a0f1b21[data-orientation=horizontal] .m_8d3f4000:not(:only-child):not(:first-child):not(:last-child),.m_1a0f1b21[data-orientation=horizontal] .m_437b6484:not(:only-child):not(:first-child):not(:last-child){border-radius:0;border-inline-width:calc(var(--ai-border-width) / 2)}.m_1a0f1b21[data-orientation=vertical]{flex-direction:column}.m_1a0f1b21[data-orientation=vertical] .m_8d3f4000:not(:only-child):first-child,.m_1a0f1b21[data-orientation=vertical] .m_437b6484:not(:only-child):first-child{border-end-start-radius:0;border-end-end-radius:0;border-bottom-width:calc(var(--ai-border-width) / 2)}.m_1a0f1b21[data-orientation=vertical] .m_8d3f4000:not(:only-child):last-child,.m_1a0f1b21[data-orientation=vertical] .m_437b6484:not(:only-child):last-child{border-start-start-radius:0;border-start-end-radius:0;border-top-width:calc(var(--ai-border-width) / 2)}.m_1a0f1b21[data-orientation=vertical] .m_8d3f4000:not(:only-child):not(:first-child):not(:last-child),.m_1a0f1b21[data-orientation=vertical] .m_437b6484:not(:only-child):not(:first-child):not(:last-child){border-radius:0;border-bottom-width:calc(var(--ai-border-width) / 2);border-top-width:calc(var(--ai-border-width) / 2)}.m_8d3afb97{display:flex;align-items:center;justify-content:center;transition:transform .15s ease,opacity .1s ease;width:100%;height:100%}.m_437b6484{--section-height-xs: calc(1.125rem * var(--mantine-scale));--section-height-sm: calc(1.375rem * var(--mantine-scale));--section-height-md: calc(1.75rem * var(--mantine-scale));--section-height-lg: calc(2.125rem * var(--mantine-scale));--section-height-xl: calc(2.75rem * var(--mantine-scale));--section-height-input-xs: calc(1.875rem * var(--mantine-scale));--section-height-input-sm: calc(2.25rem * var(--mantine-scale));--section-height-input-md: calc(2.625rem * var(--mantine-scale));--section-height-input-lg: calc(3.125rem * var(--mantine-scale));--section-height-input-xl: calc(3.75rem * var(--mantine-scale));--section-padding-x-xs: calc(.375rem * var(--mantine-scale));--section-padding-x-sm: calc(.5rem * var(--mantine-scale));--section-padding-x-md: calc(.625rem * var(--mantine-scale));--section-padding-x-lg: calc(.75rem * var(--mantine-scale));--section-padding-x-xl: calc(1rem * var(--mantine-scale));--section-height: var(--section-height-sm);--section-padding-x: var(--section-padding-x-sm);--section-color: var(--mantine-color-white);font-weight:600;width:auto;border-radius:var(--section-radius, var(--mantine-radius-default));font-size:var(--section-fz, var(--mantine-font-size-sm));background:var(--section-bg, var(--mantine-primary-color-filled));border:var(--section-bd, calc(.0625rem * var(--mantine-scale)) solid transparent);color:var(--section-color, var(--mantine-color-white));height:var(--section-height, var(--section-height-sm));padding-inline:var(--section-padding-x, var(--section-padding-x-sm));vertical-align:middle;line-height:1;display:inline-flex;align-items:center;justify-content:center}.m_86a44da5{--cb-size-xs: calc(1.125rem * var(--mantine-scale));--cb-size-sm: calc(1.375rem * var(--mantine-scale));--cb-size-md: calc(1.75rem * var(--mantine-scale));--cb-size-lg: calc(2.125rem * var(--mantine-scale));--cb-size-xl: calc(2.75rem * var(--mantine-scale));--cb-size: var(--cb-size-md);--cb-icon-size: 70%;--cb-radius: var(--mantine-radius-default);line-height:1;display:inline-flex;align-items:center;justify-content:center;position:relative;user-select:none;width:var(--cb-size);height:var(--cb-size);min-width:var(--cb-size);min-height:var(--cb-size);border-radius:var(--cb-radius)}:where([data-mantine-color-scheme=light]) .m_86a44da5{color:var(--mantine-color-gray-7)}:where([data-mantine-color-scheme=dark]) .m_86a44da5{color:var(--mantine-color-dark-1)}.m_86a44da5[data-disabled],.m_86a44da5:disabled{cursor:not-allowed;opacity:.6}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_220c80f2:where(:not([data-disabled],:disabled)):hover{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_220c80f2:where(:not([data-disabled],:disabled)):hover{background-color:var(--mantine-color-dark-6)}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_220c80f2:where(:not([data-disabled],:disabled)):active{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_220c80f2:where(:not([data-disabled],:disabled)):active{background-color:var(--mantine-color-dark-6)}}.m_4081bf90{display:flex;flex-direction:row;flex-wrap:var(--group-wrap, wrap);justify-content:var(--group-justify, flex-start);align-items:var(--group-align, center);gap:var(--group-gap, var(--mantine-spacing-md))}.m_4081bf90:where([data-grow])>*{flex-grow:1;max-width:var(--group-child-width)}.m_615af6c9{line-height:1;padding:0;margin:0;font-weight:400;font-size:var(--mantine-font-size-md)}.m_b5489c3c{display:flex;justify-content:space-between;align-items:center;padding:var(--mb-padding, var(--mantine-spacing-md));padding-inline-end:calc(var(--mb-padding, var(--mantine-spacing-md)) - calc(.3125rem * var(--mantine-scale)));position:sticky;top:0;background-color:var(--mantine-color-body);z-index:1000;min-height:calc(3.75rem * var(--mantine-scale));transition:padding-inline-end .1s}.m_60c222c7{position:fixed;width:100%;top:0;bottom:0;z-index:var(--mb-z-index);pointer-events:none}.m_fd1ab0aa{pointer-events:all;box-shadow:var(--mb-shadow, var(--mantine-shadow-xl))}.m_fd1ab0aa [data-mantine-scrollbar]{z-index:1001}[data-offset-scrollbars] .m_fd1ab0aa:has([data-mantine-scrollbar]) .m_b5489c3c{padding-inline-end:calc(var(--mb-padding, var(--mantine-spacing-md)) + calc(.3125rem * var(--mantine-scale)))}.m_606cb269{margin-inline-start:auto}.m_5df29311{padding:var(--mb-padding, var(--mantine-spacing-md));padding-top:var(--mb-padding, var(--mantine-spacing-md))}.m_5df29311:where(:not(:only-child)){padding-top:0}.m_6c018570{position:relative;margin-top:var(--input-margin-top, 0rem);margin-bottom:var(--input-margin-bottom, 0rem);--input-height-xs: calc(1.875rem * var(--mantine-scale));--input-height-sm: calc(2.25rem * var(--mantine-scale));--input-height-md: calc(2.625rem * var(--mantine-scale));--input-height-lg: calc(3.125rem * var(--mantine-scale));--input-height-xl: calc(3.75rem * var(--mantine-scale));--input-padding-y-xs: calc(.3125rem * var(--mantine-scale));--input-padding-y-sm: calc(.375rem * var(--mantine-scale));--input-padding-y-md: calc(.5rem * var(--mantine-scale));--input-padding-y-lg: calc(.625rem * var(--mantine-scale));--input-padding-y-xl: calc(.8125rem * var(--mantine-scale));--input-height: var(--input-height-sm);--input-radius: var(--mantine-radius-default);--input-cursor: text;--input-text-align: left;--input-line-height: calc(var(--input-height) - calc(.125rem * var(--mantine-scale)));--input-padding: calc(var(--input-height) / 3);--input-padding-inline-start: var(--input-padding);--input-padding-inline-end: var(--input-padding);--input-placeholder-color: var(--mantine-color-placeholder);--input-color: var(--mantine-color-text);--input-disabled-bg: var(--mantine-color-disabled);--input-disabled-color: var(--mantine-color-disabled-color);--input-left-section-size: var(--input-left-section-width, calc(var(--input-height) - calc(.125rem * var(--mantine-scale))));--input-right-section-size: var( --input-right-section-width, calc(var(--input-height) - calc(.125rem * var(--mantine-scale))) );--input-size: var(--input-height);--section-y: calc(.0625rem * var(--mantine-scale));--left-section-start: calc(.0625rem * var(--mantine-scale));--left-section-border-radius: var(--input-radius) 0 0 var(--input-radius);--right-section-end: calc(.0625rem * var(--mantine-scale));--right-section-border-radius: 0 var(--input-radius) var(--input-radius) 0}.m_6c018570[data-variant=unstyled]{--input-padding: 0;--input-padding-y: 0;--input-padding-inline-start: 0;--input-padding-inline-end: 0}.m_6c018570[data-pointer]{--input-cursor: pointer}.m_6c018570[data-multiline]{--input-padding-y-xs: calc(.28125rem * var(--mantine-scale));--input-padding-y-sm: calc(.34375rem * var(--mantine-scale));--input-padding-y-md: calc(.4375rem * var(--mantine-scale));--input-padding-y-lg: calc(.59375rem * var(--mantine-scale));--input-padding-y-xl: calc(.8125rem * var(--mantine-scale));--input-size: auto;--input-line-height: var(--mantine-line-height)}.m_6c018570[data-with-left-section]{--input-padding-inline-start: var(--input-left-section-size)}.m_6c018570[data-with-right-section]{--input-padding-inline-end: var(--input-right-section-size)}.m_6c018570[data-with-right-section]:has([data-combined-clear-section]){--input-padding-inline-end: calc(var(--input-right-section-size) * 1.55)}[data-mantine-color-scheme=light] .m_6c018570[data-variant=default]{--input-bd: var(--mantine-color-gray-4);--input-bg: var(--mantine-color-white);--input-bd-focus: var(--mantine-primary-color-filled)}[data-mantine-color-scheme=light] .m_6c018570[data-variant=filled]{--input-bd: transparent;--input-bg: var(--mantine-color-gray-1);--input-bd-focus: var(--mantine-primary-color-filled)}[data-mantine-color-scheme=light] .m_6c018570[data-variant=unstyled]{--input-bd: transparent;--input-bg: transparent;--input-bd-focus: transparent}[data-mantine-color-scheme=dark] .m_6c018570[data-variant=default]{--input-bd: var(--mantine-color-dark-4);--input-bg: var(--mantine-color-dark-6);--input-bd-focus: var(--mantine-primary-color-filled)}[data-mantine-color-scheme=dark] .m_6c018570[data-variant=filled]{--input-bd: transparent;--input-bg: var(--mantine-color-dark-5);--input-bd-focus: var(--mantine-primary-color-filled)}[data-mantine-color-scheme=dark] .m_6c018570[data-variant=unstyled]{--input-bd: transparent;--input-bg: transparent;--input-bd-focus: transparent}[data-mantine-color-scheme] .m_6c018570[data-error]:not([data-variant=unstyled]){--input-bd: var(--mantine-color-error)}[data-mantine-color-scheme] .m_6c018570[data-error]{--input-color: var(--mantine-color-error);--input-placeholder-color: var(--mantine-color-error);--input-section-color: var(--mantine-color-error)}:where([dir=rtl]) .m_6c018570{--input-text-align: right;--left-section-border-radius: 0 var(--input-radius) var(--input-radius) 0;--right-section-border-radius: var(--input-radius) 0 0 var(--input-radius)}.m_8fb7ebe7{-webkit-tap-highlight-color:transparent;appearance:none;resize:var(--input-resize, none);display:block;width:100%;transition:border-color .1s ease;text-align:var(--input-text-align);color:var(--input-color);border:calc(.0625rem * var(--mantine-scale)) solid var(--input-bd);background-color:var(--input-bg);font-family:var(--input-font-family, var(--mantine-font-family));height:var(--input-size);min-height:var(--input-height);line-height:var(--input-line-height);font-size:var(--_input-fz, var(--input-fz, var(--mantine-font-size-md)));border-radius:var(--input-radius);padding-inline-start:var(--input-padding-inline-start);padding-inline-end:var(--input-padding-inline-end);padding-top:var(--input-padding-y, 0rem);padding-bottom:var(--input-padding-y, 0rem);cursor:var(--input-cursor);overflow:var(--input-overflow)}.m_8fb7ebe7[data-no-overflow]{--input-overflow: hidden}.m_8fb7ebe7[data-monospace]{--input-font-family: var(--mantine-font-family-monospace);--_input-fz: calc(var(--input-fz) - calc(.125rem * var(--mantine-scale)))}.m_8fb7ebe7:focus,.m_8fb7ebe7:focus-within{outline:none;--input-bd: var(--input-bd-focus)}[data-error] .m_8fb7ebe7:focus,[data-error] .m_8fb7ebe7:focus-within{--input-bd: var(--mantine-color-error)}.m_8fb7ebe7::placeholder{color:var(--input-placeholder-color);opacity:1}.m_8fb7ebe7::-webkit-inner-spin-button,.m_8fb7ebe7::-webkit-outer-spin-button,.m_8fb7ebe7::-webkit-search-decoration,.m_8fb7ebe7::-webkit-search-cancel-button,.m_8fb7ebe7::-webkit-search-results-button,.m_8fb7ebe7::-webkit-search-results-decoration{appearance:none}.m_8fb7ebe7[type=number]{-moz-appearance:textfield}.m_8fb7ebe7:disabled,.m_8fb7ebe7[data-disabled]{cursor:not-allowed;opacity:.6;background-color:var(--input-disabled-bg);color:var(--input-disabled-color)}.m_8fb7ebe7:has(input:disabled){cursor:not-allowed;opacity:.6;background-color:var(--input-disabled-bg);color:var(--input-disabled-color)}.m_8fb7ebe7[readonly]{caret-color:transparent}.m_82577fc2{pointer-events:var(--section-pointer-events);position:absolute;z-index:1;inset-inline-start:var(--section-start);inset-inline-end:var(--section-end);bottom:var(--section-y);top:var(--section-y);display:flex;align-items:center;justify-content:center;width:var(--section-size);border-radius:var(--section-border-radius);color:var(--input-section-color, var(--mantine-color-dimmed))}.m_82577fc2[data-position=right]{--section-pointer-events: var(--input-right-section-pointer-events);--section-end: var(--right-section-end);--section-size: var(--input-right-section-size);--section-border-radius: var(--right-section-border-radius)}.m_82577fc2[data-position=right]:has([data-combined-clear-section]){--section-size: calc(var(--input-right-section-size) * 1.55)}.m_82577fc2[data-position=left]{--section-pointer-events: var(--input-left-section-pointer-events);--section-start: var(--left-section-start);--section-size: var(--input-left-section-size);--section-border-radius: var(--left-section-border-radius)}.m_88bacfd0{color:var(--input-placeholder-color, var(--mantine-color-placeholder))}[data-error] .m_88bacfd0{--input-placeholder-color: var(--input-color, var(--mantine-color-placeholder))}.m_46b77525{line-height:var(--mantine-line-height)}.m_8fdc1311{display:inline-block;font-weight:500;overflow-wrap:break-word;cursor:default;-webkit-tap-highlight-color:transparent;font-size:var(--input-label-size, var(--mantine-font-size-sm))}.m_78a94662{color:var(--input-asterisk-color, var(--mantine-color-error))}.m_8f816625,.m_fe47ce59{word-wrap:break-word;line-height:1.2;display:block;margin:0;padding:0}.m_8f816625{color:var(--mantine-color-error);font-size:var(--input-error-size, calc(var(--mantine-font-size-sm) - calc(.125rem * var(--mantine-scale))))}.m_fe47ce59{color:var(--mantine-color-dimmed);font-size:var(--input-description-size, calc(var(--mantine-font-size-sm) - calc(.125rem * var(--mantine-scale))))}.m_8bffd616{display:flex}.m_96b553a6{--transition-duration: .15s;top:0;left:0;position:absolute;z-index:0;transition-property:transform,width,height;transition-timing-function:ease;transition-duration:0ms}.m_96b553a6:where([data-initialized]){transition-duration:var(--transition-duration)}.m_96b553a6:where([data-hidden]){background-color:red;display:none}.m_9bdbb667{--accordion-radius: var(--mantine-radius-default)}.m_df78851f{overflow-wrap:break-word}.m_4ba554d4{padding:var(--mantine-spacing-md);padding-top:calc(var(--mantine-spacing-xs) / 2)}.m_8fa820a0{margin:0;padding:0}.m_4ba585b8{width:100%;display:flex;align-items:center;flex-direction:row-reverse;padding-inline:var(--mantine-spacing-md);opacity:1;cursor:pointer;background-color:transparent;color:var(--mantine-color-bright)}.m_4ba585b8:where([data-chevron-position=left]){flex-direction:row;padding-inline-start:0}.m_4ba585b8:where(:disabled,[data-disabled]){opacity:.4;cursor:not-allowed}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_6939a5e9:where(:not(:disabled,[data-disabled])):hover,:where([data-mantine-color-scheme=light]) .m_4271d21b:where(:not(:disabled,[data-disabled])):hover{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_6939a5e9:where(:not(:disabled,[data-disabled])):hover,:where([data-mantine-color-scheme=dark]) .m_4271d21b:where(:not(:disabled,[data-disabled])):hover{background-color:var(--mantine-color-dark-6)}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_6939a5e9:where(:not(:disabled,[data-disabled])):active,:where([data-mantine-color-scheme=light]) .m_4271d21b:where(:not(:disabled,[data-disabled])):active{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_6939a5e9:where(:not(:disabled,[data-disabled])):active,:where([data-mantine-color-scheme=dark]) .m_4271d21b:where(:not(:disabled,[data-disabled])):active{background-color:var(--mantine-color-dark-6)}}.m_df3ffa0f{color:inherit;font-weight:400;flex:1;overflow:hidden;text-overflow:ellipsis;padding-top:var(--mantine-spacing-sm);padding-bottom:var(--mantine-spacing-sm)}.m_3f35ae96{display:flex;align-items:center;justify-content:flex-start;transition:transform var(--accordion-transition-duration, .2s) ease;width:var(--accordion-chevron-size, calc(.9375rem * var(--mantine-scale)));min-width:var(--accordion-chevron-size, calc(.9375rem * var(--mantine-scale)));transform:rotate(0)}.m_3f35ae96:where([data-rotate]){transform:rotate(180deg)}.m_3f35ae96:where([data-position=left]){margin-inline-end:var(--mantine-spacing-md);margin-inline-start:var(--mantine-spacing-md)}.m_9bd771fe{display:flex;align-items:center;justify-content:center;margin-inline-end:var(--mantine-spacing-sm)}.m_9bd771fe:where([data-chevron-position=left]){margin-inline-end:0;margin-inline-start:var(--mantine-spacing-lg)}:where([data-mantine-color-scheme=light]) .m_9bd7b098{--item-border-color: var(--mantine-color-gray-3);--item-filled-color: var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_9bd7b098{--item-border-color: var(--mantine-color-dark-4);--item-filled-color: var(--mantine-color-dark-6)}.m_fe19b709{border-bottom:1px solid var(--item-border-color)}.m_1f921b3b{border:1px solid var(--item-border-color);transition:background-color .15s ease}.m_1f921b3b:where([data-active]){background-color:var(--item-filled-color)}.m_1f921b3b:first-of-type{border-start-start-radius:var(--accordion-radius);border-start-end-radius:var(--accordion-radius)}.m_1f921b3b:first-of-type>[data-accordion-control]{border-start-start-radius:var(--accordion-radius);border-start-end-radius:var(--accordion-radius)}.m_1f921b3b:last-of-type{border-end-start-radius:var(--accordion-radius);border-end-end-radius:var(--accordion-radius)}.m_1f921b3b:last-of-type>[data-accordion-control]{border-end-start-radius:var(--accordion-radius);border-end-end-radius:var(--accordion-radius)}.m_1f921b3b+.m_1f921b3b{border-top:0}.m_2cdf939a{border-radius:var(--accordion-radius)}.m_2cdf939a:where([data-active]){background-color:var(--item-filled-color)}.m_9f59b069{background-color:var(--item-filled-color);border-radius:var(--accordion-radius);border:calc(.0625rem * var(--mantine-scale)) solid transparent;transition:background-color .15s ease}.m_9f59b069[data-active]{border-color:var(--item-border-color)}:where([data-mantine-color-scheme=light]) .m_9f59b069[data-active]{background-color:var(--mantine-color-white)}:where([data-mantine-color-scheme=dark]) .m_9f59b069[data-active]{background-color:var(--mantine-color-dark-7)}.m_9f59b069+.m_9f59b069{margin-top:var(--mantine-spacing-md)}.m_7f854edf{position:fixed;z-index:var(--affix-z-index);inset-inline-start:var(--affix-left);inset-inline-end:var(--affix-right);top:var(--affix-top);bottom:var(--affix-bottom)}.m_66836ed3{--alert-radius: var(--mantine-radius-default);--alert-bg: var(--mantine-primary-color-light);--alert-bd: calc(.0625rem * var(--mantine-scale)) solid transparent;--alert-color: var(--mantine-primary-color-light-color);padding:var(--mantine-spacing-md) var(--mantine-spacing-md);border-radius:var(--alert-radius);position:relative;overflow:hidden;background-color:var(--alert-bg);border:var(--alert-bd);color:var(--alert-color)}.m_a5d60502{display:flex}.m_667c2793{flex:1;display:flex;flex-direction:column;gap:var(--mantine-spacing-xs)}.m_6a03f287{display:flex;align-items:center;justify-content:space-between;font-size:var(--mantine-font-size-sm);font-weight:700}.m_6a03f287:where([data-with-close-button]){padding-inline-end:var(--mantine-spacing-md)}.m_698f4f23{display:block;overflow:hidden;text-overflow:ellipsis}.m_667f2a6a{line-height:1;width:calc(1.25rem * var(--mantine-scale));height:calc(1.25rem * var(--mantine-scale));display:flex;align-items:center;justify-content:flex-start;margin-inline-end:var(--mantine-spacing-md);margin-top:calc(.0625rem * var(--mantine-scale))}.m_7fa78076{text-overflow:ellipsis;overflow:hidden;font-size:var(--mantine-font-size-sm)}:where([data-mantine-color-scheme=light]) .m_7fa78076{color:var(--mantine-color-black)}:where([data-mantine-color-scheme=dark]) .m_7fa78076{color:var(--mantine-color-white)}.m_7fa78076:where([data-variant=filled]){color:var(--alert-color)}.m_7fa78076:where([data-variant=white]){color:var(--mantine-color-black)}.m_87f54839{width:calc(1.25rem * var(--mantine-scale));height:calc(1.25rem * var(--mantine-scale));color:var(--alert-color)}.m_b6d8b162{-webkit-tap-highlight-color:transparent;text-decoration:none;font-size:var(--text-fz, var(--mantine-font-size-md));line-height:var(--text-lh, var(--mantine-line-height-md));font-weight:400;margin:0;padding:0;color:var(--text-color)}.m_b6d8b162:where([data-truncate]){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m_b6d8b162:where([data-truncate=start]){direction:rtl;text-align:right}:where([dir=rtl]) .m_b6d8b162:where([data-truncate=start]){direction:ltr;text-align:left}.m_b6d8b162:where([data-variant=gradient]){background-image:var(--text-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.m_b6d8b162:where([data-line-clamp]){overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:var(--text-line-clamp);-webkit-box-orient:vertical}.m_b6d8b162:where([data-inherit]){line-height:inherit;font-weight:inherit;font-size:inherit}.m_b6d8b162:where([data-inline]){line-height:1}.m_849cf0da{color:var(--mantine-color-anchor);text-decoration:none;appearance:none;border:none;display:inline;padding:0;margin:0;background-color:transparent;cursor:pointer}@media (hover: hover){.m_849cf0da:where([data-underline=hover]):hover{text-decoration:underline}}@media (hover: none){.m_849cf0da:where([data-underline=hover]):active{text-decoration:underline}}.m_849cf0da:where([data-underline=not-hover]){text-decoration:underline}@media (hover: hover){.m_849cf0da:where([data-underline=not-hover]):hover{text-decoration:none}}@media (hover: none){.m_849cf0da:where([data-underline=not-hover]):active{text-decoration:none}}.m_849cf0da:where([data-underline=always]){text-decoration:underline}.m_849cf0da:where([data-variant=gradient]),.m_849cf0da:where([data-variant=gradient]):hover{text-decoration:none}.m_849cf0da:where([data-line-clamp]){display:-webkit-box}.m_48204f9b{width:var(--slider-size);height:var(--slider-size);position:relative;border-radius:100%;display:flex;align-items:center;justify-content:center;user-select:none}.m_48204f9b:focus-within{outline:2px solid var(--mantine-primary-color-filled);outline-offset:calc(.125rem * var(--mantine-scale))}.m_48204f9b{--slider-size: calc(3.75rem * var(--mantine-scale));--thumb-size: calc(var(--slider-size) / 5)}:where([data-mantine-color-scheme=light]) .m_48204f9b{background-color:var(--mantine-color-gray-1)}:where([data-mantine-color-scheme=dark]) .m_48204f9b{background-color:var(--mantine-color-dark-5)}.m_bb9cdbad{position:absolute;inset:calc(.0625rem * var(--mantine-scale));border-radius:var(--slider-size);pointer-events:none}.m_481dd586{width:calc(.125rem * var(--mantine-scale));position:absolute;top:0;bottom:0;left:calc(50% - 1px);transform:rotate(var(--angle))}.m_481dd586:before{content:"";position:absolute;top:calc(var(--thumb-size) / 3);left:calc(.03125rem * var(--mantine-scale));width:calc(.0625rem * var(--mantine-scale));height:calc(var(--thumb-size) / 1.5);transform:translate(-50%,-50%)}:where([data-mantine-color-scheme=light]) .m_481dd586:before{background-color:var(--mantine-color-gray-4)}:where([data-mantine-color-scheme=dark]) .m_481dd586:before{background-color:var(--mantine-color-dark-3)}.m_481dd586[data-label]:after{min-width:calc(1.125rem * var(--mantine-scale));text-align:center;content:attr(data-label);position:absolute;top:calc(-1.5rem * var(--mantine-scale));left:calc(-.4375rem * var(--mantine-scale));transform:rotate(calc(360deg - var(--angle)));font-size:var(--mantine-font-size-xs)}.m_bc02ba3d{position:absolute;inset-block:0;inset-inline-start:calc(50% - 1.5px);inset-inline-end:0;height:100%;width:calc(.1875rem * var(--mantine-scale));outline:none;pointer-events:none}.m_bc02ba3d:before{content:"";position:absolute;right:0;top:0;height:min(var(--thumb-size),calc(var(--slider-size) / 2));width:calc(.1875rem * var(--mantine-scale))}:where([data-mantine-color-scheme=light]) .m_bc02ba3d:before{background-color:var(--mantine-color-gray-7)}:where([data-mantine-color-scheme=dark]) .m_bc02ba3d:before{background-color:var(--mantine-color-dark-1)}.m_bb8e875b{font-size:var(--mantine-font-size-xs)}.m_89ab340[data-resizing]{--app-shell-transition-duration: 0ms !important}.m_89ab340[data-disabled]{--app-shell-header-offset: 0rem !important;--app-shell-navbar-offset: 0rem !important;--app-shell-aside-offset: 0rem !important;--app-shell-footer-offset: 0rem !important}[data-mantine-color-scheme=light] .m_89ab340{--app-shell-border-color: var(--mantine-color-gray-3)}[data-mantine-color-scheme=dark] .m_89ab340{--app-shell-border-color: var(--mantine-color-dark-4)}.m_45252eee,.m_9cdde9a,.m_3b16f56b,.m_8983817,.m_3840c879{transition-duration:var(--app-shell-transition-duration);transition-timing-function:var(--app-shell-transition-timing-function)}.m_45252eee,.m_9cdde9a{position:fixed;display:flex;flex-direction:column;top:var(--app-shell-header-offset, 0rem);height:calc(100dvh - var(--app-shell-header-offset, 0rem) - var(--app-shell-footer-offset, 0rem));background-color:var(--mantine-color-body);transition-property:transform,top,height}:where([data-layout=alt]) .m_45252eee,:where([data-layout=alt]) .m_9cdde9a{top:0rem;height:100dvh}.m_45252eee{inset-inline-start:0;width:var(--app-shell-navbar-width);transition-property:transform,top,height;transform:var(--app-shell-navbar-transform);z-index:var(--app-shell-navbar-z-index)}:where([dir=rtl]) .m_45252eee{transform:var(--app-shell-navbar-transform-rtl)}.m_45252eee:where([data-with-border]){border-inline-end:1px solid var(--app-shell-border-color)}.m_9cdde9a{inset-inline-end:0;width:var(--app-shell-aside-width);transform:var(--app-shell-aside-transform);z-index:var(--app-shell-aside-z-index)}:where([dir=rtl]) .m_9cdde9a{transform:var(--app-shell-aside-transform-rtl)}.m_9cdde9a:where([data-with-border]){border-inline-start:1px solid var(--app-shell-border-color)}.m_8983817{padding-inline-start:calc(var(--app-shell-navbar-offset, 0rem) + var(--app-shell-padding));padding-inline-end:calc(var(--app-shell-aside-offset, 0rem) + var(--app-shell-padding));padding-top:calc(var(--app-shell-header-offset, 0rem) + var(--app-shell-padding));padding-bottom:calc(var(--app-shell-footer-offset, 0rem) + var(--app-shell-padding));min-height:100dvh;transition-property:padding}.m_3b16f56b,.m_3840c879{position:fixed;inset-inline:0;transition-property:transform,left,right;background-color:var(--mantine-color-body)}:where([data-layout=alt]) .m_3b16f56b,:where([data-layout=alt]) .m_3840c879{inset-inline-start:var(--app-shell-navbar-offset, 0rem);inset-inline-end:var(--app-shell-aside-offset, 0rem)}.m_3b16f56b{top:0;height:var(--app-shell-header-height);background-color:var(--mantine-color-body);transform:var(--app-shell-header-transform);z-index:var(--app-shell-header-z-index)}.m_3b16f56b:where([data-with-border]){border-bottom:1px solid var(--app-shell-border-color)}.m_3840c879{bottom:0;height:calc(var(--app-shell-footer-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);transform:var(--app-shell-footer-transform);z-index:var(--app-shell-footer-z-index)}.m_3840c879:where([data-with-border]){border-top:1px solid var(--app-shell-border-color)}.m_6dcfc7c7{flex-grow:0}.m_6dcfc7c7:where([data-grow]){flex-grow:1}.m_71ac47fc{--ar-ratio: 1;max-width:100%}.m_71ac47fc>:where(*:not(style)){aspect-ratio:var(--ar-ratio);width:100%}.m_71ac47fc>:where(img,video){object-fit:cover}.m_88b62a41{--combobox-padding: calc(.25rem * var(--mantine-scale));padding:var(--combobox-padding)}.m_88b62a41:has([data-mantine-scrollbar]) .m_985517d8{max-width:calc(100% + var(--combobox-padding))}.m_88b62a41[data-composed]{padding-inline-end:0}.m_88b62a41[data-hidden]{display:none}.m_88b62a41,.m_b2821a6e{--combobox-option-padding-xs: calc(.25rem * var(--mantine-scale)) calc(.5rem * var(--mantine-scale));--combobox-option-padding-sm: calc(.375rem * var(--mantine-scale)) calc(.625rem * var(--mantine-scale));--combobox-option-padding-md: calc(.5rem * var(--mantine-scale)) calc(.75rem * var(--mantine-scale));--combobox-option-padding-lg: calc(.625rem * var(--mantine-scale)) calc(1rem * var(--mantine-scale));--combobox-option-padding-xl: calc(.875rem * var(--mantine-scale)) calc(1.25rem * var(--mantine-scale));--combobox-option-padding: var(--combobox-option-padding-sm)}.m_92253aa5{padding:var(--combobox-option-padding);font-size:var(--combobox-option-fz, var(--mantine-font-size-sm));border-radius:var(--mantine-radius-default);background-color:transparent;color:inherit;cursor:pointer;overflow-wrap:break-word}.m_92253aa5:where([data-combobox-selected]){background-color:var(--mantine-primary-color-filled);color:var(--mantine-color-white)}.m_92253aa5:where([data-combobox-disabled]){cursor:not-allowed;opacity:.35}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_92253aa5:hover:where(:not([data-combobox-selected],[data-combobox-disabled])){background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_92253aa5:hover:where(:not([data-combobox-selected],[data-combobox-disabled])){background-color:var(--mantine-color-dark-7)}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_92253aa5:active:where(:not([data-combobox-selected],[data-combobox-disabled])){background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_92253aa5:active:where(:not([data-combobox-selected],[data-combobox-disabled])){background-color:var(--mantine-color-dark-7)}}.m_985517d8{margin-inline:calc(var(--combobox-padding) * -1);margin-top:calc(var(--combobox-padding) * -1);width:calc(100% + var(--combobox-padding) * 2);border-top-width:0;border-inline-width:0;border-end-start-radius:0;border-end-end-radius:0;margin-bottom:var(--combobox-padding);position:relative}:where([data-mantine-color-scheme=light]) .m_985517d8,:where([data-mantine-color-scheme=light]) .m_985517d8:focus{border-color:var(--mantine-color-gray-2)}:where([data-mantine-color-scheme=dark]) .m_985517d8,:where([data-mantine-color-scheme=dark]) .m_985517d8:focus{border-color:var(--mantine-color-dark-4)}:where([data-mantine-color-scheme=light]) .m_985517d8{background-color:var(--mantine-color-white)}:where([data-mantine-color-scheme=dark]) .m_985517d8{background-color:var(--mantine-color-dark-7)}.m_2530cd1d{font-size:var(--combobox-option-fz, var(--mantine-font-size-sm));text-align:center;padding:var(--combobox-option-padding);color:var(--mantine-color-dimmed)}.m_858f94bd,.m_82b967cb{font-size:var(--combobox-option-fz, var(--mantine-font-size-sm));border:0 solid transparent;margin-inline:calc(var(--combobox-padding) * -1);padding:var(--combobox-option-padding)}:where([data-mantine-color-scheme=light]) .m_858f94bd,:where([data-mantine-color-scheme=light]) .m_82b967cb{border-color:var(--mantine-color-gray-2)}:where([data-mantine-color-scheme=dark]) .m_858f94bd,:where([data-mantine-color-scheme=dark]) .m_82b967cb{border-color:var(--mantine-color-dark-4)}.m_82b967cb{border-top-width:calc(.0625rem * var(--mantine-scale));margin-top:var(--combobox-padding);margin-bottom:calc(var(--combobox-padding) * -1)}.m_858f94bd{border-bottom-width:calc(.0625rem * var(--mantine-scale));margin-bottom:var(--combobox-padding);margin-top:calc(var(--combobox-padding) * -1)}.m_254f3e4f:has(.m_2bb2e9e5:only-child){display:none}.m_2bb2e9e5{color:var(--mantine-color-dimmed);font-size:calc(var(--combobox-option-fz, var(--mantine-font-size-sm)) * .85);padding:var(--combobox-option-padding);font-weight:500;position:relative;display:flex;align-items:center}.m_2bb2e9e5:after{content:"";flex:1;inset-inline:0;height:calc(.0625rem * var(--mantine-scale));margin-inline-start:var(--mantine-spacing-xs)}:where([data-mantine-color-scheme=light]) .m_2bb2e9e5:after{background-color:var(--mantine-color-gray-2)}:where([data-mantine-color-scheme=dark]) .m_2bb2e9e5:after{background-color:var(--mantine-color-dark-4)}.m_2bb2e9e5:only-child{display:none}.m_2943220b{--combobox-chevron-size-xs: calc(.875rem * var(--mantine-scale));--combobox-chevron-size-sm: calc(1.125rem * var(--mantine-scale));--combobox-chevron-size-md: calc(1.25rem * var(--mantine-scale));--combobox-chevron-size-lg: calc(1.5rem * var(--mantine-scale));--combobox-chevron-size-xl: calc(1.75rem * var(--mantine-scale));--combobox-chevron-size: var(--combobox-chevron-size-sm)}:where([data-mantine-color-scheme=light]) .m_2943220b{--_combobox-chevron-color: var(--combobox-chevron-color, var(--mantine-color-gray-6))}:where([data-mantine-color-scheme=dark]) .m_2943220b{--_combobox-chevron-color: var(--combobox-chevron-color, var(--mantine-color-dark-3))}.m_2943220b{width:var(--combobox-chevron-size);height:var(--combobox-chevron-size);color:var(--_combobox-chevron-color)}.m_2943220b:where([data-error]){color:var(--combobox-chevron-color, var(--mantine-color-error))}.m_390b5f4{display:flex;align-items:center;gap:calc(.5rem * var(--mantine-scale))}.m_390b5f4:where([data-reverse]){justify-content:space-between}.m_8ee53fc2{opacity:.4;width:.8em;min-width:.8em;height:.8em}:where([data-combobox-selected]) .m_8ee53fc2{opacity:1}.m_5f75b09e{--label-lh-xs: calc(1rem * var(--mantine-scale));--label-lh-sm: calc(1.25rem * var(--mantine-scale));--label-lh-md: calc(1.5rem * var(--mantine-scale));--label-lh-lg: calc(1.875rem * var(--mantine-scale));--label-lh-xl: calc(2.25rem * var(--mantine-scale));--label-lh: var(--label-lh-sm)}.m_5f75b09e[data-label-position=left]{--label-order: 1;--label-offset-end: var(--mantine-spacing-sm);--label-offset-start: 0}.m_5f75b09e[data-label-position=right]{--label-order: 2;--label-offset-end: 0;--label-offset-start: var(--mantine-spacing-sm)}.m_5f6e695e{-webkit-tap-highlight-color:transparent;display:flex}.m_d3ea56bb{--label-cursor: var(--mantine-cursor-type);-webkit-tap-highlight-color:transparent;display:inline-flex;flex-direction:column;font-size:var(--label-fz, var(--mantine-font-size-sm));line-height:var(--label-lh);cursor:var(--label-cursor);order:var(--label-order)}fieldset:disabled .m_d3ea56bb,.m_d3ea56bb[data-disabled]{--label-cursor: not-allowed}.m_8ee546b8{cursor:var(--label-cursor);color:inherit;padding-inline-start:var(--label-offset-start);padding-inline-end:var(--label-offset-end)}fieldset:disabled .m_8ee546b8,.m_8ee546b8:where([data-disabled]){color:var(--mantine-color-disabled-color)}.m_328f68c0,.m_8e8a99cc{margin-top:calc(var(--mantine-spacing-xs) / 2);padding-inline-start:var(--label-offset-start);padding-inline-end:var(--label-offset-end)}.m_26775b0a{--card-radius: var(--mantine-radius-default);display:block;width:100%;border-radius:var(--card-radius);cursor:pointer}.m_26775b0a :where(*){cursor:inherit}.m_26775b0a:where([data-with-border]){border:calc(.0625rem * var(--mantine-scale)) solid transparent}:where([data-mantine-color-scheme=light]) .m_26775b0a:where([data-with-border]){border-color:var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_26775b0a:where([data-with-border]){border-color:var(--mantine-color-dark-4)}.m_5e5256ee{--checkbox-size-xs: calc(1rem * var(--mantine-scale));--checkbox-size-sm: calc(1.25rem * var(--mantine-scale));--checkbox-size-md: calc(1.5rem * var(--mantine-scale));--checkbox-size-lg: calc(1.875rem * var(--mantine-scale));--checkbox-size-xl: calc(2.25rem * var(--mantine-scale));--checkbox-size: var(--checkbox-size-sm);--checkbox-color: var(--mantine-primary-color-filled);--checkbox-icon-color: var(--mantine-color-white);position:relative;border:calc(.0625rem * var(--mantine-scale)) solid transparent;width:var(--checkbox-size);min-width:var(--checkbox-size);height:var(--checkbox-size);min-height:var(--checkbox-size);border-radius:var(--checkbox-radius, var(--mantine-radius-default));transition:border-color .1s ease,background-color .1s ease;cursor:var(--mantine-cursor-type);-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center}:where([data-mantine-color-scheme=light]) .m_5e5256ee{background-color:var(--mantine-color-white);border-color:var(--mantine-color-gray-4)}:where([data-mantine-color-scheme=dark]) .m_5e5256ee{background-color:var(--mantine-color-dark-6);border-color:var(--mantine-color-dark-4)}.m_5e5256ee[data-indeterminate],.m_5e5256ee[data-checked]{background-color:var(--checkbox-color);border-color:var(--checkbox-color)}.m_5e5256ee[data-indeterminate]>.m_1b1c543a,.m_5e5256ee[data-checked]>.m_1b1c543a{opacity:1;transform:none;color:var(--checkbox-icon-color)}.m_5e5256ee[data-disabled]{cursor:not-allowed;border-color:var(--mantine-color-disabled-border);background-color:var(--mantine-color-disabled)}[data-mantine-color-scheme=light] .m_5e5256ee[data-disabled][data-checked]>.m_1b1c543a{color:var(--mantine-color-gray-5)}[data-mantine-color-scheme=dark] .m_5e5256ee[data-disabled][data-checked]>.m_1b1c543a{color:var(--mantine-color-dark-3)}.m_76e20374[data-indeterminate]:not([data-disabled]),.m_76e20374[data-checked]:not([data-disabled]){background-color:transparent;border-color:var(--checkbox-color)}.m_76e20374[data-indeterminate]:not([data-disabled])>.m_1b1c543a,.m_76e20374[data-checked]:not([data-disabled])>.m_1b1c543a{color:var(--checkbox-color);opacity:1;transform:none}.m_1b1c543a{display:block;width:60%;color:transparent;pointer-events:none;transform:translateY(calc(.3125rem * var(--mantine-scale))) scale(.5);opacity:1;transition:transform .1s ease,opacity .1s ease}.m_bf2d988c{--checkbox-size-xs: calc(1rem * var(--mantine-scale));--checkbox-size-sm: calc(1.25rem * var(--mantine-scale));--checkbox-size-md: calc(1.5rem * var(--mantine-scale));--checkbox-size-lg: calc(1.875rem * var(--mantine-scale));--checkbox-size-xl: calc(2.25rem * var(--mantine-scale));--checkbox-size: var(--checkbox-size-sm);--checkbox-color: var(--mantine-primary-color-filled);--checkbox-icon-color: var(--mantine-color-white)}.m_26062bec{position:relative;width:var(--checkbox-size);height:var(--checkbox-size);order:1}.m_26062bec:where([data-label-position=left]){order:2}.m_26063560{appearance:none;border:calc(.0625rem * var(--mantine-scale)) solid transparent;width:var(--checkbox-size);height:var(--checkbox-size);border-radius:var(--checkbox-radius, var(--mantine-radius-default));padding:0;display:block;margin:0;transition:border-color .1s ease,background-color .1s ease;cursor:var(--mantine-cursor-type);-webkit-tap-highlight-color:transparent}:where([data-mantine-color-scheme=light]) .m_26063560{background-color:var(--mantine-color-white);border-color:var(--mantine-color-gray-4)}:where([data-mantine-color-scheme=dark]) .m_26063560{background-color:var(--mantine-color-dark-6);border-color:var(--mantine-color-dark-4)}.m_26063560:where([data-error]){border-color:var(--mantine-color-error)}.m_26063560[data-indeterminate],.m_26063560:checked{background-color:var(--checkbox-color);border-color:var(--checkbox-color)}.m_26063560[data-indeterminate]+.m_bf295423,.m_26063560:checked+.m_bf295423{opacity:1;transform:none}.m_26063560:disabled{cursor:not-allowed;border-color:var(--mantine-color-disabled-border);background-color:var(--mantine-color-disabled)}.m_26063560:disabled+.m_bf295423{color:var(--mantine-color-disabled-color)}.m_215c4542+.m_bf295423{color:var(--checkbox-color)}.m_215c4542[data-indeterminate]:not(:disabled),.m_215c4542:checked:not(:disabled){background-color:transparent;border-color:var(--checkbox-color)}.m_215c4542[data-indeterminate]:not(:disabled)+.m_bf295423,.m_215c4542:checked:not(:disabled)+.m_bf295423{color:var(--checkbox-color);opacity:1;transform:none}.m_bf295423{position:absolute;inset:0;width:60%;margin:auto;color:var(--checkbox-icon-color);pointer-events:none;transform:translateY(calc(.3125rem * var(--mantine-scale))) scale(.5);opacity:0;transition:transform .1s ease,opacity .1s ease}.m_11def92b{--ag-spacing: var(--mantine-spacing-sm);--ag-offset: calc(var(--ag-spacing) * -1);display:flex;padding-inline-start:var(--ag-spacing)}.m_f85678b6{--avatar-size-xs: calc(1rem * var(--mantine-scale));--avatar-size-sm: calc(1.625rem * var(--mantine-scale));--avatar-size-md: calc(2.375rem * var(--mantine-scale));--avatar-size-lg: calc(3.5rem * var(--mantine-scale));--avatar-size-xl: calc(5.25rem * var(--mantine-scale));--avatar-size: var(--avatar-size-md);--avatar-radius: calc(62.5rem * var(--mantine-scale));--avatar-bg: var(--mantine-color-gray-light);--avatar-bd: calc(.0625rem * var(--mantine-scale)) solid transparent;--avatar-color: var(--mantine-color-gray-light-color);--avatar-placeholder-fz: calc(var(--avatar-size) / 2.5);-webkit-tap-highlight-color:transparent;position:relative;display:block;user-select:none;overflow:hidden;border-radius:var(--avatar-radius);text-decoration:none;padding:0;width:var(--avatar-size);height:var(--avatar-size);min-width:var(--avatar-size)}.m_f85678b6:where([data-within-group]){margin-inline-start:var(--ag-offset);border:2px solid var(--mantine-color-body);background:var(--mantine-color-body)}.m_11f8ac07{object-fit:cover;width:100%;height:100%;display:block}.m_104cd71f{font-weight:700;display:flex;align-items:center;justify-content:center;width:100%;height:100%;user-select:none;border-radius:var(--avatar-radius);font-size:var(--avatar-placeholder-fz);background:var(--avatar-bg);border:var(--avatar-bd);color:var(--avatar-color)}.m_104cd71f>[data-avatar-placeholder-icon]{width:70%;height:70%}.m_2ce0de02{background-size:cover;background-position:center;display:block;width:100%;border:0;text-decoration:none;border-radius:var(--bi-radius, 0)}.m_347db0ec{--badge-height-xs: calc(1rem * var(--mantine-scale));--badge-height-sm: calc(1.125rem * var(--mantine-scale));--badge-height-md: calc(1.25rem * var(--mantine-scale));--badge-height-lg: calc(1.625rem * var(--mantine-scale));--badge-height-xl: calc(2rem * var(--mantine-scale));--badge-fz-xs: calc(.5625rem * var(--mantine-scale));--badge-fz-sm: calc(.625rem * var(--mantine-scale));--badge-fz-md: calc(.6875rem * var(--mantine-scale));--badge-fz-lg: calc(.8125rem * var(--mantine-scale));--badge-fz-xl: calc(1rem * var(--mantine-scale));--badge-padding-x-xs: calc(.375rem * var(--mantine-scale));--badge-padding-x-sm: calc(.5rem * var(--mantine-scale));--badge-padding-x-md: calc(.625rem * var(--mantine-scale));--badge-padding-x-lg: calc(.75rem * var(--mantine-scale));--badge-padding-x-xl: calc(1rem * var(--mantine-scale));--badge-height: var(--badge-height-md);--badge-fz: var(--badge-fz-md);--badge-padding-x: var(--badge-padding-x-md);--badge-radius: calc(62.5rem * var(--mantine-scale));--badge-lh: calc(var(--badge-height) - calc(.125rem * var(--mantine-scale)));--badge-color: var(--mantine-color-white);--badge-bg: var(--mantine-primary-color-filled);--badge-border-width: calc(.0625rem * var(--mantine-scale));--badge-bd: var(--badge-border-width) solid transparent;-webkit-tap-highlight-color:transparent;font-size:var(--badge-fz);border-radius:var(--badge-radius);height:var(--badge-height);line-height:var(--badge-lh);text-decoration:none;padding:0 var(--badge-padding-x);display:inline-grid;align-items:center;justify-content:center;width:fit-content;text-transform:uppercase;font-weight:700;letter-spacing:calc(.015625rem * var(--mantine-scale));cursor:default;text-overflow:ellipsis;overflow:hidden;color:var(--badge-color);background:var(--badge-bg);border:var(--badge-bd)}.m_347db0ec:where([data-with-left-section],[data-variant=dot]){grid-template-columns:auto 1fr}.m_347db0ec:where([data-with-right-section]){grid-template-columns:1fr auto}.m_347db0ec:where([data-with-left-section][data-with-right-section],[data-variant=dot][data-with-right-section]){grid-template-columns:auto 1fr auto}.m_347db0ec:where([data-block]){display:flex;width:100%}.m_347db0ec:where([data-circle]){padding-inline:calc(.125rem * var(--mantine-scale));display:flex;width:var(--badge-height)}.m_fbd81e3d{--badge-dot-size: calc(var(--badge-height) / 3.4)}:where([data-mantine-color-scheme=light]) .m_fbd81e3d{background-color:var(--mantine-color-white);border-color:var(--mantine-color-gray-4);color:var(--mantine-color-black)}:where([data-mantine-color-scheme=dark]) .m_fbd81e3d{background-color:var(--mantine-color-dark-5);border-color:var(--mantine-color-dark-5);color:var(--mantine-color-white)}.m_fbd81e3d:before{content:"";display:block;width:var(--badge-dot-size);height:var(--badge-dot-size);border-radius:var(--badge-dot-size);background-color:var(--badge-dot-color);margin-inline-end:var(--badge-dot-size)}.m_5add502a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;cursor:inherit}.m_91fdda9b{--badge-section-margin: calc(var(--mantine-spacing-xs) / 2);display:inline-flex;justify-content:center;align-items:center;max-height:calc(var(--badge-height) - var(--badge-border-width) * 2)}.m_91fdda9b:where([data-position=left]){margin-inline-end:var(--badge-section-margin)}.m_91fdda9b:where([data-position=right]){margin-inline-start:var(--badge-section-margin)}.m_ddec01c0{--blockquote-border: 3px solid var(--bq-bd);position:relative;margin:0;border-inline-start:var(--blockquote-border);border-start-end-radius:var(--bq-radius);border-end-end-radius:var(--bq-radius);padding:var(--mantine-spacing-xl) calc(2.375rem * var(--mantine-scale))}:where([data-mantine-color-scheme=light]) .m_ddec01c0{background-color:var(--bq-bg-light)}:where([data-mantine-color-scheme=dark]) .m_ddec01c0{background-color:var(--bq-bg-dark)}.m_dde7bd57{--blockquote-icon-offset: calc(var(--bq-icon-size) / -2);position:absolute;color:var(--bq-bd);background-color:var(--mantine-color-body);display:flex;align-items:center;justify-content:center;top:var(--blockquote-icon-offset);inset-inline-start:var(--blockquote-icon-offset);width:var(--bq-icon-size);height:var(--bq-icon-size);border-radius:var(--bq-icon-size)}.m_dde51a35{display:block;margin-top:var(--mantine-spacing-md);opacity:.6;font-size:85%}.m_8b3717df{display:flex;align-items:center;flex-wrap:wrap}.m_f678d540{line-height:1;white-space:nowrap;-webkit-tap-highlight-color:transparent}.m_3b8f2208{margin-inline:var(--bc-separator-margin, var(--mantine-spacing-xs));line-height:1;display:flex;align-items:center;justify-content:center}:where([data-mantine-color-scheme=light]) .m_3b8f2208{color:var(--mantine-color-gray-7)}:where([data-mantine-color-scheme=dark]) .m_3b8f2208{color:var(--mantine-color-dark-2)}.m_fea6bf1a{--burger-size-xs: calc(.75rem * var(--mantine-scale));--burger-size-sm: calc(1.125rem * var(--mantine-scale));--burger-size-md: calc(1.5rem * var(--mantine-scale));--burger-size-lg: calc(2.125rem * var(--mantine-scale));--burger-size-xl: calc(2.625rem * var(--mantine-scale));--burger-size: var(--burger-size-md);--burger-line-size: calc(var(--burger-size) / 12);width:calc(var(--burger-size) + var(--mantine-spacing-xs));height:calc(var(--burger-size) + var(--mantine-spacing-xs));padding:calc(var(--mantine-spacing-xs) / 2);cursor:pointer}:where([data-mantine-color-scheme=light]) .m_fea6bf1a{--burger-color: var(--mantine-color-black)}:where([data-mantine-color-scheme=dark]) .m_fea6bf1a{--burger-color: var(--mantine-color-white)}.m_d4fb9cad{position:relative;user-select:none}.m_d4fb9cad,.m_d4fb9cad:before,.m_d4fb9cad:after{display:block;width:var(--burger-size);height:var(--burger-line-size);background-color:var(--burger-color);outline:calc(.0625rem * var(--mantine-scale)) solid transparent;transition-property:background-color,transform;transition-duration:var(--burger-transition-duration, .3s);transition-timing-function:var(--burger-transition-timing-function, ease)}.m_d4fb9cad:before,.m_d4fb9cad:after{position:absolute;content:"";inset-inline-start:0}.m_d4fb9cad:before{top:calc(var(--burger-size) / -3)}.m_d4fb9cad:after{top:calc(var(--burger-size) / 3)}.m_d4fb9cad[data-opened]{background-color:transparent}.m_d4fb9cad[data-opened]:before{transform:translateY(calc(var(--burger-size) / 3)) rotate(45deg)}.m_d4fb9cad[data-opened]:after{transform:translateY(calc(var(--burger-size) / -3)) rotate(-45deg)}.m_77c9d27d{--button-height-xs: calc(1.875rem * var(--mantine-scale));--button-height-sm: calc(2.25rem * var(--mantine-scale));--button-height-md: calc(2.625rem * var(--mantine-scale));--button-height-lg: calc(3.125rem * var(--mantine-scale));--button-height-xl: calc(3.75rem * var(--mantine-scale));--button-height-compact-xs: calc(1.375rem * var(--mantine-scale));--button-height-compact-sm: calc(1.625rem * var(--mantine-scale));--button-height-compact-md: calc(1.875rem * var(--mantine-scale));--button-height-compact-lg: calc(2.125rem * var(--mantine-scale));--button-height-compact-xl: calc(2.5rem * var(--mantine-scale));--button-padding-x-xs: calc(.875rem * var(--mantine-scale));--button-padding-x-sm: calc(1.125rem * var(--mantine-scale));--button-padding-x-md: calc(1.375rem * var(--mantine-scale));--button-padding-x-lg: calc(1.625rem * var(--mantine-scale));--button-padding-x-xl: calc(2rem * var(--mantine-scale));--button-padding-x-compact-xs: calc(.4375rem * var(--mantine-scale));--button-padding-x-compact-sm: calc(.5rem * var(--mantine-scale));--button-padding-x-compact-md: calc(.625rem * var(--mantine-scale));--button-padding-x-compact-lg: calc(.75rem * var(--mantine-scale));--button-padding-x-compact-xl: calc(.875rem * var(--mantine-scale));--button-height: var(--button-height-sm);--button-padding-x: var(--button-padding-x-sm);--button-color: var(--mantine-color-white);user-select:none;font-weight:600;position:relative;line-height:1;text-align:center;overflow:hidden;width:auto;cursor:pointer;display:inline-block;border-radius:var(--button-radius, var(--mantine-radius-default));font-size:var(--button-fz, var(--mantine-font-size-sm));background:var(--button-bg, var(--mantine-primary-color-filled));border:var(--button-bd, calc(.0625rem * var(--mantine-scale)) solid transparent);color:var(--button-color, var(--mantine-color-white));height:var(--button-height, var(--button-height-sm));padding-inline:var(--button-padding-x, var(--button-padding-x-sm));vertical-align:middle}.m_77c9d27d:where([data-block]){display:block;width:100%}.m_77c9d27d:where([data-with-left-section]){padding-inline-start:calc(var(--button-padding-x) / 1.5)}.m_77c9d27d:where([data-with-right-section]){padding-inline-end:calc(var(--button-padding-x) / 1.5)}.m_77c9d27d:where(:disabled:not([data-loading]),[data-disabled]:not([data-loading])){cursor:not-allowed;border:calc(.0625rem * var(--mantine-scale)) solid transparent;transform:none;color:var(--mantine-color-disabled-color);background:var(--mantine-color-disabled)}.m_77c9d27d:before{content:"";pointer-events:none;position:absolute;inset:calc(-.0625rem * var(--mantine-scale));border-radius:var(--button-radius, var(--mantine-radius-default));transform:translateY(-100%);opacity:0;filter:blur(12px);transition:transform .15s ease,opacity .1s ease}:where([data-mantine-color-scheme=light]) .m_77c9d27d:before{background-color:#ffffff26}:where([data-mantine-color-scheme=dark]) .m_77c9d27d:before{background-color:#00000026}.m_77c9d27d:where([data-loading]){cursor:not-allowed;transform:none}.m_77c9d27d:where([data-loading]):before{transform:translateY(0);opacity:1}.m_77c9d27d:where([data-loading]) .m_80f1301b{opacity:0;transform:translateY(100%)}@media (hover: hover){.m_77c9d27d:hover:where(:not([data-loading],:disabled,[data-disabled])){background-color:var(--button-hover, var(--mantine-primary-color-filled-hover));color:var(--button-hover-color, var(--button-color))}}@media (hover: none){.m_77c9d27d:active:where(:not([data-loading],:disabled,[data-disabled])){background-color:var(--button-hover, var(--mantine-primary-color-filled-hover));color:var(--button-hover-color, var(--button-color))}}.m_80f1301b{display:flex;align-items:center;justify-content:var(--button-justify, center);height:100%;overflow:visible;transition:transform .15s ease,opacity .1s ease}.m_811560b9{white-space:nowrap;height:100%;overflow:hidden;display:flex;align-items:center;opacity:1}.m_811560b9:where([data-loading]){opacity:.2}.m_a74036a{display:flex;align-items:center}.m_a74036a:where([data-position=left]){margin-inline-end:var(--mantine-spacing-xs)}.m_a74036a:where([data-position=right]){margin-inline-start:var(--mantine-spacing-xs)}.m_a25b86ee{position:absolute;left:50%;top:50%}.m_80d6d844{--button-border-width: calc(.0625rem * var(--mantine-scale));display:flex}.m_80d6d844 :where(.m_77c9d27d):focus{position:relative;z-index:1}.m_80d6d844[data-orientation=horizontal]{flex-direction:row}.m_80d6d844[data-orientation=horizontal] .m_77c9d27d:not(:only-child):first-child,.m_80d6d844[data-orientation=horizontal] .m_70be2a01:not(:only-child):first-child{border-end-end-radius:0;border-start-end-radius:0;border-inline-end-width:calc(var(--button-border-width) / 2)}.m_80d6d844[data-orientation=horizontal] .m_77c9d27d:not(:only-child):last-child,.m_80d6d844[data-orientation=horizontal] .m_70be2a01:not(:only-child):last-child{border-end-start-radius:0;border-start-start-radius:0;border-inline-start-width:calc(var(--button-border-width) / 2)}.m_80d6d844[data-orientation=horizontal] .m_77c9d27d:not(:only-child):not(:first-child):not(:last-child),.m_80d6d844[data-orientation=horizontal] .m_70be2a01:not(:only-child):not(:first-child):not(:last-child){border-radius:0;border-inline-width:calc(var(--button-border-width) / 2)}.m_80d6d844[data-orientation=vertical]{flex-direction:column}.m_80d6d844[data-orientation=vertical] .m_77c9d27d:not(:only-child):first-child,.m_80d6d844[data-orientation=vertical] .m_70be2a01:not(:only-child):first-child{border-end-start-radius:0;border-end-end-radius:0;border-bottom-width:calc(var(--button-border-width) / 2)}.m_80d6d844[data-orientation=vertical] .m_77c9d27d:not(:only-child):last-child,.m_80d6d844[data-orientation=vertical] .m_70be2a01:not(:only-child):last-child{border-start-start-radius:0;border-start-end-radius:0;border-top-width:calc(var(--button-border-width) / 2)}.m_80d6d844[data-orientation=vertical] .m_77c9d27d:not(:only-child):not(:first-child):not(:last-child),.m_80d6d844[data-orientation=vertical] .m_70be2a01:not(:only-child):not(:first-child):not(:last-child){border-radius:0;border-bottom-width:calc(var(--button-border-width) / 2);border-top-width:calc(var(--button-border-width) / 2)}.m_70be2a01{--section-height-xs: calc(1.875rem * var(--mantine-scale));--section-height-sm: calc(2.25rem * var(--mantine-scale));--section-height-md: calc(2.625rem * var(--mantine-scale));--section-height-lg: calc(3.125rem * var(--mantine-scale));--section-height-xl: calc(3.75rem * var(--mantine-scale));--section-height-compact-xs: calc(1.375rem * var(--mantine-scale));--section-height-compact-sm: calc(1.625rem * var(--mantine-scale));--section-height-compact-md: calc(1.875rem * var(--mantine-scale));--section-height-compact-lg: calc(2.125rem * var(--mantine-scale));--section-height-compact-xl: calc(2.5rem * var(--mantine-scale));--section-padding-x-xs: calc(.875rem * var(--mantine-scale));--section-padding-x-sm: calc(1.125rem * var(--mantine-scale));--section-padding-x-md: calc(1.375rem * var(--mantine-scale));--section-padding-x-lg: calc(1.625rem * var(--mantine-scale));--section-padding-x-xl: calc(2rem * var(--mantine-scale));--section-padding-x-compact-xs: calc(.4375rem * var(--mantine-scale));--section-padding-x-compact-sm: calc(.5rem * var(--mantine-scale));--section-padding-x-compact-md: calc(.625rem * var(--mantine-scale));--section-padding-x-compact-lg: calc(.75rem * var(--mantine-scale));--section-padding-x-compact-xl: calc(.875rem * var(--mantine-scale));--section-height: var(--section-height-sm);--section-padding-x: var(--section-padding-x-sm);--section-color: var(--mantine-color-white);font-weight:600;width:auto;border-radius:var(--section-radius, var(--mantine-radius-default));font-size:var(--section-fz, var(--mantine-font-size-sm));background:var(--section-bg, var(--mantine-primary-color-filled));border:var(--section-bd, calc(.0625rem * var(--mantine-scale)) solid transparent);color:var(--section-color, var(--mantine-color-white));height:var(--section-height, var(--section-height-sm));padding-inline:var(--section-padding-x, var(--section-padding-x-sm));vertical-align:middle;line-height:1;display:inline-flex;align-items:center;justify-content:center}.m_e615b15f{--card-padding: var(--mantine-spacing-md);position:relative;overflow:hidden;display:flex;flex-direction:column;padding:var(--card-padding);color:var(--mantine-color-text)}:where([data-mantine-color-scheme=light]) .m_e615b15f{background-color:var(--mantine-color-white)}:where([data-mantine-color-scheme=dark]) .m_e615b15f{background-color:var(--mantine-color-dark-6)}.m_599a2148{display:block;margin-inline:calc(var(--card-padding) * -1)}.m_599a2148:where(:first-child){margin-top:calc(var(--card-padding) * -1);border-top:none!important}.m_599a2148:where(:last-child){margin-bottom:calc(var(--card-padding) * -1);border-bottom:none!important}.m_599a2148:where([data-inherit-padding]){padding-inline:var(--card-padding)}.m_599a2148:where([data-with-border]){border-top:calc(.0625rem * var(--mantine-scale)) solid;border-bottom:calc(.0625rem * var(--mantine-scale)) solid}:where([data-mantine-color-scheme=light]) .m_599a2148{border-color:var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_599a2148{border-color:var(--mantine-color-dark-4)}.m_599a2148+.m_599a2148{border-top:none!important}.m_4451eb3a{display:flex;align-items:center;justify-content:center}.m_4451eb3a:where([data-inline]){display:inline-flex}.m_f59ffda3{--chip-size-xs: calc(1.4375rem * var(--mantine-scale));--chip-size-sm: calc(1.75rem * var(--mantine-scale));--chip-size-md: calc(2rem * var(--mantine-scale));--chip-size-lg: calc(2.25rem * var(--mantine-scale));--chip-size-xl: calc(2.5rem * var(--mantine-scale));--chip-icon-size-xs: calc(.625rem * var(--mantine-scale));--chip-icon-size-sm: calc(.75rem * var(--mantine-scale));--chip-icon-size-md: calc(.875rem * var(--mantine-scale));--chip-icon-size-lg: calc(1rem * var(--mantine-scale));--chip-icon-size-xl: calc(1.125rem * var(--mantine-scale));--chip-padding-xs: calc(1rem * var(--mantine-scale));--chip-padding-sm: calc(1.25rem * var(--mantine-scale));--chip-padding-md: calc(1.5rem * var(--mantine-scale));--chip-padding-lg: calc(1.75rem * var(--mantine-scale));--chip-padding-xl: calc(2rem * var(--mantine-scale));--chip-checked-padding-xs: calc(.46875rem * var(--mantine-scale));--chip-checked-padding-sm: calc(.625rem * var(--mantine-scale));--chip-checked-padding-md: calc(.73125rem * var(--mantine-scale));--chip-checked-padding-lg: calc(.84375rem * var(--mantine-scale));--chip-checked-padding-xl: calc(.98125rem * var(--mantine-scale));--chip-spacing-xs: calc(.625rem * var(--mantine-scale));--chip-spacing-sm: calc(.75rem * var(--mantine-scale));--chip-spacing-md: calc(1rem * var(--mantine-scale));--chip-spacing-lg: calc(1.25rem * var(--mantine-scale));--chip-spacing-xl: calc(1.375rem * var(--mantine-scale));--chip-size: var(--chip-size-sm);--chip-icon-size: var(--chip-icon-size-sm);--chip-padding: var(--chip-padding-sm);--chip-spacing: var(--chip-spacing-sm);--chip-checked-padding: var(--chip-checked-padding-sm);--chip-bg: var(--mantine-primary-color-filled);--chip-hover: var(--mantine-primary-color-filled-hover);--chip-color: var(--mantine-color-white);--chip-bd: calc(.0625rem * var(--mantine-scale)) solid transparent}.m_be049a53{display:inline-flex;align-items:center;user-select:none;border-radius:var(--chip-radius, 1000rem);height:var(--chip-size);font-size:var(--chip-fz, var(--mantine-font-size-sm));line-height:calc(var(--chip-size) - calc(.125rem * var(--mantine-scale)));padding-inline:var(--chip-padding);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;border:calc(.0625rem * var(--mantine-scale)) solid transparent;color:var(--mantine-color-text)}.m_be049a53:where([data-checked]){padding:var(--chip-checked-padding)}.m_be049a53:where([data-disabled]){cursor:not-allowed;background-color:var(--mantine-color-disabled);color:var(--mantine-color-disabled-color)}:where([data-mantine-color-scheme=light]) .m_3904c1af:not([data-disabled]){background-color:var(--mantine-color-white);border:1px solid var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_3904c1af:not([data-disabled]){background-color:var(--mantine-color-dark-6);border:1px solid var(--mantine-color-dark-4)}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_3904c1af:not([data-disabled]):hover{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_3904c1af:not([data-disabled]):hover{background-color:var(--mantine-color-dark-5)}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_3904c1af:not([data-disabled]):active{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_3904c1af:not([data-disabled]):active{background-color:var(--mantine-color-dark-5)}}.m_3904c1af:not([data-disabled]):where([data-checked]){--chip-icon-color: var(--chip-color);border:var(--chip-bd)}@media (hover: hover){.m_3904c1af:not([data-disabled]):where([data-checked]):hover{background-color:var(--chip-hover)}}@media (hover: none){.m_3904c1af:not([data-disabled]):where([data-checked]):active{background-color:var(--chip-hover)}}.m_fa109255:not([data-disabled]),.m_f7e165c3:not([data-disabled]){border:calc(.0625rem * var(--mantine-scale)) solid transparent;color:var(--mantine-color-text)}:where([data-mantine-color-scheme=light]) .m_fa109255:not([data-disabled]),:where([data-mantine-color-scheme=light]) .m_f7e165c3:not([data-disabled]){background-color:var(--mantine-color-gray-1)}:where([data-mantine-color-scheme=dark]) .m_fa109255:not([data-disabled]),:where([data-mantine-color-scheme=dark]) .m_f7e165c3:not([data-disabled]){background-color:var(--mantine-color-dark-5)}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_fa109255:not([data-disabled]):hover,:where([data-mantine-color-scheme=light]) .m_f7e165c3:not([data-disabled]):hover{background-color:var(--mantine-color-gray-2)}:where([data-mantine-color-scheme=dark]) .m_fa109255:not([data-disabled]):hover,:where([data-mantine-color-scheme=dark]) .m_f7e165c3:not([data-disabled]):hover{background-color:var(--mantine-color-dark-4)}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_fa109255:not([data-disabled]):active,:where([data-mantine-color-scheme=light]) .m_f7e165c3:not([data-disabled]):active{background-color:var(--mantine-color-gray-2)}:where([data-mantine-color-scheme=dark]) .m_fa109255:not([data-disabled]):active,:where([data-mantine-color-scheme=dark]) .m_f7e165c3:not([data-disabled]):active{background-color:var(--mantine-color-dark-4)}}.m_fa109255:not([data-disabled]):where([data-checked]),.m_f7e165c3:not([data-disabled]):where([data-checked]){--chip-icon-color: var(--chip-color);color:var(--chip-color);background-color:var(--chip-bg)}@media (hover: hover){.m_fa109255:not([data-disabled]):where([data-checked]):hover,.m_f7e165c3:not([data-disabled]):where([data-checked]):hover{background-color:var(--chip-hover)}}@media (hover: none){.m_fa109255:not([data-disabled]):where([data-checked]):active,.m_f7e165c3:not([data-disabled]):where([data-checked]):active{background-color:var(--chip-hover)}}.m_9ac86df9{width:calc(var(--chip-icon-size) + (var(--chip-spacing) / 1.5));max-width:calc(var(--chip-icon-size) + (var(--chip-spacing) / 1.5));height:var(--chip-icon-size);display:flex;align-items:center;overflow:hidden}.m_d6d72580{width:var(--chip-icon-size);height:var(--chip-icon-size);display:block;color:var(--chip-icon-color, inherit)}.m_bde07329{width:0;height:0;padding:0;opacity:0;margin:0}.m_bde07329:focus-visible+.m_be049a53{outline:2px solid var(--mantine-primary-color-filled);outline-offset:calc(.125rem * var(--mantine-scale))}.m_b183c0a2{font-family:var(--mantine-font-family-monospace);line-height:var(--mantine-line-height);padding:2px calc(var(--mantine-spacing-xs) / 2);border-radius:var(--mantine-radius-sm);font-size:var(--mantine-font-size-xs);margin:0;overflow:auto}:where([data-mantine-color-scheme=light]) .m_b183c0a2{background-color:var(--code-bg, var(--mantine-color-gray-0))}:where([data-mantine-color-scheme=dark]) .m_b183c0a2{background-color:var(--code-bg, var(--mantine-color-dark-6))}.m_b183c0a2[data-block]{padding:var(--mantine-spacing-xs)}.m_de3d2490{--cs-size: calc(1.75rem * var(--mantine-scale));--cs-radius: calc(62.5rem * var(--mantine-scale));-webkit-tap-highlight-color:transparent;border:none;appearance:none;display:block;line-height:1;position:relative;width:var(--cs-size);height:var(--cs-size);min-width:var(--cs-size);min-height:var(--cs-size);border-radius:var(--cs-radius);color:inherit;text-decoration:none}[data-mantine-color-scheme=light] .m_de3d2490{--alpha-overlay-color: var(--mantine-color-gray-3);--alpha-overlay-bg: var(--mantine-color-white)}[data-mantine-color-scheme=dark] .m_de3d2490{--alpha-overlay-color: var(--mantine-color-dark-4);--alpha-overlay-bg: var(--mantine-color-dark-7)}.m_862f3d1b{position:absolute;inset:0;border-radius:var(--cs-radius)}.m_98ae7f22{position:absolute;inset:0;border-radius:var(--cs-radius);z-index:1;box-shadow:#0000001a 0 0 0 calc(.0625rem * var(--mantine-scale)) inset,#00000026 0 0 calc(.25rem * var(--mantine-scale)) inset}.m_95709ac0{position:absolute;inset:0;border-radius:var(--cs-radius);background-size:calc(.5rem * var(--mantine-scale)) calc(.5rem * var(--mantine-scale));background-position:0 0,0 calc(.25rem * var(--mantine-scale)),calc(.25rem * var(--mantine-scale)) calc(-.25rem * var(--mantine-scale)),calc(-.25rem * var(--mantine-scale)) 0;background-image:linear-gradient(45deg,var(--alpha-overlay-color) 25%,transparent 25%),linear-gradient(-45deg,var(--alpha-overlay-color) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--alpha-overlay-color) 75%),linear-gradient(-45deg,var(--alpha-overlay-bg) 75%,var(--alpha-overlay-color) 75%)}.m_93e74e3{position:absolute;inset:0;border-radius:var(--cs-radius);z-index:2;display:flex;align-items:center;justify-content:center}.m_fee9c77{--cp-width-xs: calc(11.25rem * var(--mantine-scale));--cp-width-sm: calc(12.5rem * var(--mantine-scale));--cp-width-md: calc(15rem * var(--mantine-scale));--cp-width-lg: calc(17.5rem * var(--mantine-scale));--cp-width-xl: calc(20rem * var(--mantine-scale));--cp-preview-size-xs: calc(1.625rem * var(--mantine-scale));--cp-preview-size-sm: calc(2.125rem * var(--mantine-scale));--cp-preview-size-md: calc(2.625rem * var(--mantine-scale));--cp-preview-size-lg: calc(3.125rem * var(--mantine-scale));--cp-preview-size-xl: calc(3.375rem * var(--mantine-scale));--cp-thumb-size-xs: calc(.5rem * var(--mantine-scale));--cp-thumb-size-sm: calc(.75rem * var(--mantine-scale));--cp-thumb-size-md: calc(1rem * var(--mantine-scale));--cp-thumb-size-lg: calc(1.25rem * var(--mantine-scale));--cp-thumb-size-xl: calc(1.375rem * var(--mantine-scale));--cp-saturation-height-xs: calc(6.25rem * var(--mantine-scale));--cp-saturation-height-sm: calc(6.875rem * var(--mantine-scale));--cp-saturation-height-md: calc(7.5rem * var(--mantine-scale));--cp-saturation-height-lg: calc(8.75rem * var(--mantine-scale));--cp-saturation-height-xl: calc(10rem * var(--mantine-scale));--cp-preview-size: var(--cp-preview-size-sm);--cp-thumb-size: var(--cp-thumb-size-sm);--cp-saturation-height: var(--cp-saturation-height-sm);--cp-width: var(--cp-width-sm);--cp-body-spacing: var(--mantine-spacing-sm);width:var(--cp-width);padding:calc(.0625rem * var(--mantine-scale))}.m_fee9c77:where([data-full-width]){width:100%}.m_9dddfbac{width:var(--cp-preview-size);height:var(--cp-preview-size)}.m_bffecc3e{display:flex;padding-top:calc(var(--cp-body-spacing) / 2)}.m_3283bb96{flex:1}.m_3283bb96:not(:only-child){margin-inline-end:var(--mantine-spacing-xs)}.m_40d572ba{overflow:hidden;position:absolute;box-shadow:0 0 1px #0009;border:2px solid var(--mantine-color-white);width:var(--cp-thumb-size);height:var(--cp-thumb-size);border-radius:var(--cp-thumb-size);left:calc(var(--thumb-x-offset) - var(--cp-thumb-size) / 2);top:calc(var(--thumb-y-offset) - var(--cp-thumb-size) / 2)}.m_d8ee6fd8{height:unset!important;width:unset!important;min-width:0!important;min-height:0!important;margin:calc(.125rem * var(--mantine-scale));cursor:pointer;padding-bottom:calc(var(--cp-swatch-size) - calc(.25rem * var(--mantine-scale)));flex:0 0 calc(var(--cp-swatch-size) - calc(.25rem * var(--mantine-scale)))}.m_5711e686{margin-top:calc(.3125rem * var(--mantine-scale));margin-inline:calc(-.125rem * var(--mantine-scale));display:flex;flex-wrap:wrap}.m_5711e686:only-child{margin-top:0}.m_202a296e{--cp-thumb-size-xs: calc(.5rem * var(--mantine-scale));--cp-thumb-size-sm: calc(.75rem * var(--mantine-scale));--cp-thumb-size-md: calc(1rem * var(--mantine-scale));--cp-thumb-size-lg: calc(1.25rem * var(--mantine-scale));--cp-thumb-size-xl: calc(1.375rem * var(--mantine-scale));-webkit-tap-highlight-color:transparent;position:relative;height:var(--cp-saturation-height);border-radius:var(--mantine-radius-sm);margin:calc(var(--cp-thumb-size) / 2)}.m_202a296e:where([data-focus-ring=auto]):focus:focus-visible .m_40d572ba{outline:2px solid var(--mantine-color-blue-filled)}.m_202a296e:where([data-focus-ring=always]):focus .m_40d572ba{outline:2px solid var(--mantine-color-blue-filled)}.m_11b3db02{position:absolute;border-radius:var(--mantine-radius-sm);inset:calc(var(--cp-thumb-size) * -1 / 2 - calc(.0625rem * var(--mantine-scale)))}.m_d856d47d{--cp-thumb-size-xs: calc(.5rem * var(--mantine-scale));--cp-thumb-size-sm: calc(.75rem * var(--mantine-scale));--cp-thumb-size-md: calc(1rem * var(--mantine-scale));--cp-thumb-size-lg: calc(1.25rem * var(--mantine-scale));--cp-thumb-size-xl: calc(1.375rem * var(--mantine-scale));--cp-thumb-size: var(--cp-thumb-size, calc(.75rem * var(--mantine-scale)));position:relative;height:calc(var(--cp-thumb-size) + calc(.125rem * var(--mantine-scale)));margin-inline:calc(var(--cp-thumb-size) / 2);outline:none}.m_d856d47d+.m_d856d47d{margin-top:calc(.375rem * var(--mantine-scale))}.m_d856d47d:where([data-focus-ring=auto]):focus:focus-visible .m_40d572ba{outline:2px solid var(--mantine-color-blue-filled)}.m_d856d47d:where([data-focus-ring=always]):focus .m_40d572ba{outline:2px solid var(--mantine-color-blue-filled)}:where([data-mantine-color-scheme=light]) .m_d856d47d{--slider-checkers: var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_d856d47d{--slider-checkers: var(--mantine-color-dark-4)}.m_8f327113{position:absolute;top:0;bottom:0;inset-inline:calc(var(--cp-thumb-size) * -1 / 2 - calc(.0625rem * var(--mantine-scale)));border-radius:10000rem}.m_b077c2bc{--ci-eye-dropper-icon-size-xs: calc(.875rem * var(--mantine-scale));--ci-eye-dropper-icon-size-sm: calc(1rem * var(--mantine-scale));--ci-eye-dropper-icon-size-md: calc(1.125rem * var(--mantine-scale));--ci-eye-dropper-icon-size-lg: calc(1.25rem * var(--mantine-scale));--ci-eye-dropper-icon-size-xl: calc(1.375rem * var(--mantine-scale));--ci-eye-dropper-icon-size: var(--ci-eye-dropper-icon-size-sm)}.m_c5ccdcab{--ci-preview-size-xs: calc(1rem * var(--mantine-scale));--ci-preview-size-sm: calc(1.125rem * var(--mantine-scale));--ci-preview-size-md: calc(1.375rem * var(--mantine-scale));--ci-preview-size-lg: calc(1.75rem * var(--mantine-scale));--ci-preview-size-xl: calc(2.25rem * var(--mantine-scale));--ci-preview-size: var(--ci-preview-size-sm)}.m_5ece2cd7{padding:calc(.5rem * var(--mantine-scale))}.m_7485cace{--container-size-xs: calc(33.75rem * var(--mantine-scale));--container-size-sm: calc(45rem * var(--mantine-scale));--container-size-md: calc(60rem * var(--mantine-scale));--container-size-lg: calc(71.25rem * var(--mantine-scale));--container-size-xl: calc(82.5rem * var(--mantine-scale));--container-size: var(--container-size-md)}.m_7485cace:where([data-strategy=block]){max-width:var(--container-size);padding-inline:var(--mantine-spacing-md);margin-inline:auto}.m_7485cace:where([data-strategy=block]):where([data-fluid]){max-width:100%}.m_7485cace:where([data-strategy=grid]){display:grid;grid-template-columns:1fr min(100%,var(--container-size)) 1fr;margin-inline:auto}.m_7485cace:where([data-strategy=grid])>*{grid-column:2}.m_7485cace:where([data-strategy=grid])>[data-breakout]{grid-column:1 / -1}.m_7485cace:where([data-strategy=grid])>[data-breakout]>[data-container]{max-width:var(--container-size);margin-inline:auto}.m_e2125a27{--dialog-size-xs: calc(10rem * var(--mantine-scale));--dialog-size-sm: calc(12.5rem * var(--mantine-scale));--dialog-size-md: calc(21.25rem * var(--mantine-scale));--dialog-size-lg: calc(25rem * var(--mantine-scale));--dialog-size-xl: calc(31.25rem * var(--mantine-scale));--dialog-size: var(--dialog-size-md);position:relative;width:var(--dialog-size);max-width:calc(100vw - var(--mantine-spacing-xl) * 2);min-height:calc(3.125rem * var(--mantine-scale))}.m_5abab665{position:absolute;top:calc(var(--mantine-spacing-md) / 2);inset-inline-end:calc(var(--mantine-spacing-md) / 2)}.m_3eebeb36{--divider-size-xs: calc(.0625rem * var(--mantine-scale));--divider-size-sm: calc(.125rem * var(--mantine-scale));--divider-size-md: calc(.1875rem * var(--mantine-scale));--divider-size-lg: calc(.25rem * var(--mantine-scale));--divider-size-xl: calc(.3125rem * var(--mantine-scale));--divider-size: var(--divider-size-xs)}:where([data-mantine-color-scheme=light]) .m_3eebeb36{--divider-color: var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_3eebeb36{--divider-color: var(--mantine-color-dark-4)}.m_3eebeb36:where([data-orientation=horizontal]){border-top:var(--divider-size) var(--divider-border-style, solid) var(--divider-color)}.m_3eebeb36:where([data-orientation=vertical]){border-inline-start:var(--divider-size) var(--divider-border-style, solid) var(--divider-color);height:auto;align-self:stretch}.m_3eebeb36:where([data-with-label]){border:0}.m_9e365f20{display:flex;align-items:center;font-size:var(--mantine-font-size-xs);color:var(--mantine-color-dimmed);white-space:nowrap}.m_9e365f20:where([data-position=left]):before{display:none}.m_9e365f20:where([data-position=right]):after{display:none}.m_9e365f20:before{content:"";flex:1;height:calc(.0625rem * var(--mantine-scale));border-top:var(--divider-size) var(--divider-border-style, solid) var(--divider-color);margin-inline-end:var(--mantine-spacing-xs)}.m_9e365f20:after{content:"";flex:1;height:calc(.0625rem * var(--mantine-scale));border-top:var(--divider-size) var(--divider-border-style, solid) var(--divider-color);margin-inline-start:var(--mantine-spacing-xs)}.m_f11b401e{--drawer-size-xs: calc(20rem * var(--mantine-scale));--drawer-size-sm: calc(23.75rem * var(--mantine-scale));--drawer-size-md: calc(27.5rem * var(--mantine-scale));--drawer-size-lg: calc(38.75rem * var(--mantine-scale));--drawer-size-xl: calc(48.75rem * var(--mantine-scale));--drawer-size: var(--drawer-size-md);--drawer-offset: 0rem}.m_5a7c2c9{z-index:1000}.m_b8a05bbd{flex:var(--drawer-flex, 0 0 var(--drawer-size));height:var(--drawer-height, calc(100% - var(--drawer-offset) * 2));margin:var(--drawer-offset);max-width:calc(100% - var(--drawer-offset) * 2);max-height:calc(100% - var(--drawer-offset) * 2);overflow-y:auto}.m_b8a05bbd[data-hidden]{opacity:0!important;pointer-events:none}.m_31cd769a{display:flex;justify-content:var(--drawer-justify, flex-start);align-items:var(--drawer-align, flex-start)}.m_e9408a47{padding:var(--mantine-spacing-lg);padding-top:var(--mantine-spacing-xs);border-radius:var(--fieldset-radius, var(--mantine-radius-default));min-inline-size:auto}.m_84c9523a{border:calc(.0625rem * var(--mantine-scale)) solid}:where([data-mantine-color-scheme=light]) .m_84c9523a{border-color:var(--mantine-color-gray-3);background-color:var(--mantine-color-white)}:where([data-mantine-color-scheme=dark]) .m_84c9523a{border-color:var(--mantine-color-dark-4);background-color:var(--mantine-color-dark-7)}.m_ef274e49{border:calc(.0625rem * var(--mantine-scale)) solid}:where([data-mantine-color-scheme=light]) .m_ef274e49{border-color:var(--mantine-color-gray-3);background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_ef274e49{border-color:var(--mantine-color-dark-4);background-color:var(--mantine-color-dark-6)}.m_eda993d3{padding:0;border:0;border-radius:0}.m_90794832{font-size:var(--mantine-font-size-sm)}.m_74ca27fe{padding:0;margin-bottom:var(--mantine-spacing-sm)}.m_8478a6da{container:mantine-grid / inline-size}.m_410352e9{--grid-overflow: visible;--grid-margin: calc(var(--grid-gutter) / -2);--grid-col-padding: calc(var(--grid-gutter) / 2);overflow:var(--grid-overflow)}.m_dee7bd2f{width:calc(100% + var(--grid-gutter));display:flex;flex-wrap:wrap;justify-content:var(--grid-justify);align-items:var(--grid-align);margin:var(--grid-margin)}.m_96bdd299{--col-flex-grow: 0;--col-offset: 0rem;flex-shrink:0;order:var(--col-order);flex-basis:var(--col-flex-basis);width:var(--col-width);max-width:var(--col-max-width);flex-grow:var(--col-flex-grow);margin-inline-start:var(--col-offset);padding:var(--grid-col-padding)}.m_bcb3f3c2{color:var(--mantine-color-black)}:where([data-mantine-color-scheme=light]) .m_bcb3f3c2{background-color:var(--mark-bg-light)}:where([data-mantine-color-scheme=dark]) .m_bcb3f3c2{background-color:var(--mark-bg-dark)}.m_9e117634{display:block;object-fit:var(--image-object-fit, cover);width:100%;border-radius:var(--image-radius, 0)}@keyframes m_885901b1{0%{opacity:.6;transform:scale(0)}to{opacity:0;transform:scale(2.8)}}.m_e5262200{--indicator-size: calc(.625rem * var(--mantine-scale));--indicator-color: var(--mantine-primary-color-filled);position:relative;display:block}.m_e5262200:where([data-inline]){display:inline-block}.m_760d1fb1{position:absolute;top:var(--indicator-top);left:var(--indicator-left);right:var(--indicator-right);bottom:var(--indicator-bottom);transform:translate(var(--indicator-translate-x),var(--indicator-translate-y));min-width:var(--indicator-size);height:var(--indicator-size);border-radius:var(--indicator-radius, 1000rem);z-index:var(--indicator-z-index, 200);display:flex;align-items:center;justify-content:center;font-size:var(--mantine-font-size-xs);background-color:var(--indicator-color);color:var(--indicator-text-color, var(--mantine-color-white));white-space:nowrap}.m_760d1fb1:before{content:"";position:absolute;inset:0;background-color:var(--indicator-color);border-radius:var(--indicator-radius, 1000rem);z-index:-1}.m_760d1fb1:where([data-with-label]){padding-inline:calc(var(--mantine-spacing-xs) / 2)}.m_760d1fb1:where([data-with-border]){border:2px solid var(--mantine-color-body)}.m_760d1fb1[data-processing]:before{animation:m_885901b1 1s linear infinite}.m_dc6f14e2{--kbd-fz-xs: calc(.625rem * var(--mantine-scale));--kbd-fz-sm: calc(.75rem * var(--mantine-scale));--kbd-fz-md: calc(.875rem * var(--mantine-scale));--kbd-fz-lg: calc(1rem * var(--mantine-scale));--kbd-fz-xl: calc(1.25rem * var(--mantine-scale));--kbd-fz: var(--kbd-fz-sm);font-family:var(--mantine-font-family-monospace);line-height:var(--mantine-line-height);font-weight:700;font-size:var(--kbd-fz);border-radius:var(--mantine-radius-sm);border:calc(.0625rem * var(--mantine-scale)) solid;border-bottom-width:calc(.1875rem * var(--mantine-scale));unicode-bidi:embed;text-align:center;padding:.12em .45em}:where([data-mantine-color-scheme=light]) .m_dc6f14e2{border-color:var(--mantine-color-gray-3);color:var(--mantine-color-gray-7);background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_dc6f14e2{border-color:var(--mantine-color-dark-4);color:var(--mantine-color-dark-0);background-color:var(--mantine-color-dark-6)}.m_abbac491{--list-fz: var(--mantine-font-size-md);--list-lh: var(--mantine-line-height-md);list-style-position:inside;font-size:var(--list-fz);line-height:var(--list-lh);margin:0;padding:0}.m_abbac491:where([data-with-padding]){padding-inline-start:var(--mantine-spacing-md)}.m_abb6bec2{white-space:nowrap;line-height:var(--list-lh)}.m_abb6bec2:where([data-with-icon]){list-style:none}.m_abb6bec2:where([data-with-icon]) .m_75cd9f71{--li-direction: row;--li-align: center}.m_abb6bec2:where(:not(:first-of-type)){margin-top:var(--list-spacing, 0)}.m_abb6bec2:where([data-centered]){line-height:1}.m_75cd9f71{display:inline-flex;flex-direction:var(--li-direction, column);align-items:var(--li-align, flex-start);white-space:normal}.m_60f83e5b{display:inline-block;vertical-align:middle;margin-inline-end:var(--mantine-spacing-sm)}.m_6e45937b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:var(--lo-z-index)}.m_e8eb006c{position:relative;z-index:calc(var(--lo-z-index) + 1)}.m_df587f17{z-index:var(--lo-z-index)}.m_dc9b7c9f{padding:calc(.25rem * var(--mantine-scale))}.m_9bfac126{color:var(--mantine-color-dimmed);font-weight:500;font-size:var(--mantine-font-size-xs);padding:calc(var(--mantine-spacing-xs) / 2) var(--mantine-spacing-sm);cursor:default}.m_efdf90cb{margin-top:calc(.25rem * var(--mantine-scale));margin-bottom:calc(.25rem * var(--mantine-scale));border-top:calc(.0625rem * var(--mantine-scale)) solid}:where([data-mantine-color-scheme=light]) .m_efdf90cb{border-color:var(--mantine-color-gray-2)}:where([data-mantine-color-scheme=dark]) .m_efdf90cb{border-color:var(--mantine-color-dark-4)}.m_99ac2aa1{font-size:var(--mantine-font-size-sm);width:100%;padding:calc(var(--mantine-spacing-xs) / 1.5) var(--mantine-spacing-sm);border-radius:var(--popover-radius, var(--mantine-radius-default));color:var(--menu-item-color, var(--mantine-color-text));display:flex;align-items:center;user-select:none}.m_99ac2aa1:where([data-disabled],:disabled){color:var(--mantine-color-disabled-color);opacity:.6;cursor:not-allowed}:where([data-mantine-color-scheme=light]) .m_99ac2aa1:where(:hover,:focus):where(:not(:disabled,[data-disabled])){background-color:var(--menu-item-hover, var(--mantine-color-gray-1))}:where([data-mantine-color-scheme=dark]) .m_99ac2aa1:where(:hover,:focus):where(:not(:disabled,[data-disabled])){background-color:var(--menu-item-hover, var(--mantine-color-dark-4))}.m_99ac2aa1:where([data-sub-menu-item]){padding-inline-end:calc(.3125rem * var(--mantine-scale))}.m_5476e0d3{flex:1}.m_8b75e504{display:flex;justify-content:center;align-items:center}.m_8b75e504:where([data-position=left]){margin-inline-end:var(--mantine-spacing-xs)}.m_8b75e504:where([data-position=right]){margin-inline-start:var(--mantine-spacing-xs)}.m_b85b0bed{transform:rotate(-90deg)}:where([dir=rtl]) .m_b85b0bed{transform:rotate(90deg)}.m_9df02822{--modal-size-xs: calc(20rem * var(--mantine-scale));--modal-size-sm: calc(23.75rem * var(--mantine-scale));--modal-size-md: calc(27.5rem * var(--mantine-scale));--modal-size-lg: calc(38.75rem * var(--mantine-scale));--modal-size-xl: calc(48.75rem * var(--mantine-scale));--modal-size: var(--modal-size-md);--modal-y-offset: 5dvh;--modal-x-offset: 5vw}.m_9df02822[data-full-screen]{--modal-border-radius: 0 !important}.m_9df02822[data-full-screen] .m_54c44539{--modal-content-flex: 0 0 100%;--modal-content-max-height: auto;--modal-content-height: 100dvh}.m_9df02822[data-full-screen] .m_1f958f16{--modal-inner-y-offset: 0;--modal-inner-x-offset: 0}.m_9df02822[data-centered] .m_1f958f16{--modal-inner-align: center}.m_d0e2b9cd{border-start-start-radius:var(--modal-radius, var(--mantine-radius-default));border-start-end-radius:var(--modal-radius, var(--mantine-radius-default))}.m_54c44539{flex:var(--modal-content-flex, 0 0 var(--modal-size));max-width:100%;max-height:var(--modal-content-max-height, calc(100dvh - var(--modal-y-offset) * 2));height:var(--modal-content-height, auto);overflow-y:auto}.m_54c44539[data-full-screen]{border-radius:0}.m_54c44539[data-hidden]{opacity:0!important;pointer-events:none}.m_1f958f16{display:flex;justify-content:center;align-items:var(--modal-inner-align, flex-start);padding-top:var(--modal-inner-y-offset, var(--modal-y-offset));padding-bottom:var(--modal-inner-y-offset, var(--modal-y-offset));padding-inline:var(--modal-inner-x-offset, var(--modal-x-offset))}.m_7cda1cd6{--pill-fz-xs: calc(.625rem * var(--mantine-scale));--pill-fz-sm: calc(.75rem * var(--mantine-scale));--pill-fz-md: calc(.875rem * var(--mantine-scale));--pill-fz-lg: calc(1rem * var(--mantine-scale));--pill-fz-xl: calc(1.125rem * var(--mantine-scale));--pill-height-xs: calc(1.125rem * var(--mantine-scale));--pill-height-sm: calc(1.375rem * var(--mantine-scale));--pill-height-md: calc(1.5625rem * var(--mantine-scale));--pill-height-lg: calc(1.75rem * var(--mantine-scale));--pill-height-xl: calc(2rem * var(--mantine-scale));--pill-fz: var(--pill-fz-sm);--pill-height: var(--pill-height-sm);font-size:var(--pill-fz);flex:0;height:var(--pill-height);padding-inline:.8em;display:inline-flex;align-items:center;border-radius:var(--pill-radius, 1000rem);line-height:1;white-space:nowrap;user-select:none;-webkit-user-select:none;max-width:100%}:where([data-mantine-color-scheme=dark]) .m_7cda1cd6{background-color:var(--mantine-color-dark-7);color:var(--mantine-color-dark-0)}:where([data-mantine-color-scheme=light]) .m_7cda1cd6{color:var(--mantine-color-black)}.m_7cda1cd6:where([data-with-remove]:not(:has(button:disabled))){padding-inline-end:0}.m_7cda1cd6:where([data-disabled],:has(button:disabled)){cursor:not-allowed}:where([data-mantine-color-scheme=light]) .m_44da308b{background-color:var(--mantine-color-gray-1)}:where([data-mantine-color-scheme=light]) .m_44da308b:where([data-disabled],:has(button:disabled)){background-color:var(--mantine-color-disabled)}:where([data-mantine-color-scheme=light]) .m_e3a01f8{background-color:var(--mantine-color-white)}:where([data-mantine-color-scheme=light]) .m_e3a01f8:where([data-disabled],:has(button:disabled)){background-color:var(--mantine-color-disabled)}.m_1e0e6180{cursor:inherit;overflow:hidden;height:100%;line-height:var(--pill-height);text-overflow:ellipsis}.m_ae386778{color:inherit;font-size:inherit;height:100%;min-height:unset;min-width:2em;width:unset;border-radius:0;padding-inline-start:.1em;padding-inline-end:.3em;flex:0;border-end-end-radius:var(--pill-radius, 50%);border-start-end-radius:var(--pill-radius, 50%)}.m_7cda1cd6[data-disabled]>.m_ae386778,.m_ae386778:disabled{display:none;background-color:transparent;width:.8em;min-width:.8em;padding:0;cursor:not-allowed}.m_7cda1cd6[data-disabled]>.m_ae386778>svg,.m_ae386778:disabled>svg{display:none}.m_ae386778>svg{pointer-events:none}.m_1dcfd90b{--pg-gap-xs: calc(.375rem * var(--mantine-scale));--pg-gap-sm: calc(.5rem * var(--mantine-scale));--pg-gap-md: calc(.625rem * var(--mantine-scale));--pg-gap-lg: calc(.75rem * var(--mantine-scale));--pg-gap-xl: calc(.75rem * var(--mantine-scale));--pg-gap: var(--pg-gap-sm);display:flex;align-items:center;gap:var(--pg-gap);flex-wrap:wrap}.m_45c4369d{background-color:transparent;appearance:none;min-width:calc(6.25rem * var(--mantine-scale));flex:1;border:0;font-size:inherit;height:1.6em;color:inherit;padding:0}.m_45c4369d::placeholder{color:var(--input-placeholder-color);opacity:1}.m_45c4369d:where([data-type=hidden],[data-type=auto]){height:calc(.0625rem * var(--mantine-scale));width:calc(.0625rem * var(--mantine-scale));top:0;left:0;pointer-events:none;position:absolute;opacity:0}.m_45c4369d:focus{outline:none}.m_45c4369d:where([data-type=auto]:focus){height:1.6em;visibility:visible;opacity:1;position:static}.m_45c4369d:where([data-pointer]:not([data-disabled],:disabled)){cursor:pointer}.m_45c4369d:where([data-disabled],:disabled){cursor:not-allowed}.m_f0824112{--nl-bg: var(--mantine-primary-color-light);--nl-hover: var(--mantine-primary-color-light-hover);--nl-color: var(--mantine-primary-color-light-color);display:flex;align-items:center;width:100%;padding:8px var(--mantine-spacing-sm);user-select:none}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_f0824112:hover{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_f0824112:hover{background-color:var(--mantine-color-dark-6)}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_f0824112:active{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_f0824112:active{background-color:var(--mantine-color-dark-6)}}.m_f0824112:where([data-disabled]){opacity:.4;pointer-events:none}.m_f0824112:where([data-active],[aria-current=page]){background-color:var(--nl-bg);color:var(--nl-color)}@media (hover: hover){.m_f0824112:where([data-active],[aria-current=page]):hover{background-color:var(--nl-hover)}}@media (hover: none){.m_f0824112:where([data-active],[aria-current=page]):active{background-color:var(--nl-hover)}}.m_f0824112:where([data-active],[aria-current=page]) .m_57492dcc{--description-opacity: .9;--description-color: var(--nl-color)}.m_690090b5{display:flex;align-items:center;justify-content:center;transition:transform .15s ease}.m_690090b5>svg{display:block}.m_690090b5:where([data-position=left]){margin-inline-end:var(--mantine-spacing-sm)}.m_690090b5:where([data-position=right]){margin-inline-start:var(--mantine-spacing-sm)}.m_690090b5:where([data-rotate]){transform:rotate(90deg)}.m_1f6ac4c4{font-size:var(--mantine-font-size-sm)}.m_f07af9d2{flex:1;overflow:hidden;text-overflow:ellipsis}.m_f07af9d2:where([data-no-wrap]){white-space:nowrap}.m_57492dcc{display:block;font-size:var(--mantine-font-size-xs);opacity:var(--description-opacity, 1);color:var(--description-color, var(--mantine-color-dimmed));overflow:hidden;text-overflow:ellipsis}:where([data-no-wrap]) .m_57492dcc{white-space:nowrap}.m_e17b862f{padding-inline-start:var(--nl-offset, var(--mantine-spacing-lg))}.m_1fd8a00b{transform:rotate(-90deg)}.m_a513464{--notification-radius: var(--mantine-radius-default);--notification-color: var(--mantine-primary-color-filled);overflow:hidden;box-sizing:border-box;position:relative;display:flex;align-items:center;padding-inline-start:calc(1.375rem * var(--mantine-scale));padding-inline-end:var(--mantine-spacing-xs);padding-top:var(--mantine-spacing-xs);padding-bottom:var(--mantine-spacing-xs);border-radius:var(--notification-radius);box-shadow:var(--mantine-shadow-lg)}.m_a513464:before{content:"";display:block;position:absolute;width:calc(.375rem * var(--mantine-scale));top:var(--notification-radius);bottom:var(--notification-radius);inset-inline-start:calc(.25rem * var(--mantine-scale));border-radius:var(--notification-radius);background-color:var(--notification-color)}:where([data-mantine-color-scheme=light]) .m_a513464{background-color:var(--mantine-color-white)}:where([data-mantine-color-scheme=dark]) .m_a513464{background-color:var(--mantine-color-dark-6)}.m_a513464:where([data-with-icon]):before{display:none}:where([data-mantine-color-scheme=light]) .m_a513464:where([data-with-border]){border:1px solid var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_a513464:where([data-with-border]){border:1px solid var(--mantine-color-dark-4)}.m_a4ceffb{box-sizing:border-box;margin-inline-end:var(--mantine-spacing-md);width:calc(1.75rem * var(--mantine-scale));height:calc(1.75rem * var(--mantine-scale));border-radius:calc(1.75rem * var(--mantine-scale));display:flex;align-items:center;justify-content:center;background-color:var(--notification-color);color:var(--mantine-color-white)}.m_b0920b15{margin-inline-end:var(--mantine-spacing-md)}.m_a49ed24{flex:1;overflow:hidden;margin-inline-end:var(--mantine-spacing-xs)}.m_3feedf16{margin-bottom:calc(.125rem * var(--mantine-scale));overflow:hidden;text-overflow:ellipsis;font-size:var(--mantine-font-size-sm);line-height:var(--mantine-line-height-sm);font-weight:500}:where([data-mantine-color-scheme=light]) .m_3feedf16{color:var(--mantine-color-gray-9)}:where([data-mantine-color-scheme=dark]) .m_3feedf16{color:var(--mantine-color-white)}.m_3d733a3a{font-size:var(--mantine-font-size-sm);line-height:var(--mantine-line-height-sm);overflow:hidden;text-overflow:ellipsis}:where([data-mantine-color-scheme=light]) .m_3d733a3a{color:var(--mantine-color-black)}:where([data-mantine-color-scheme=dark]) .m_3d733a3a{color:var(--mantine-color-dark-0)}:where([data-mantine-color-scheme=light]) .m_3d733a3a:where([data-with-title]){color:var(--mantine-color-gray-6)}:where([data-mantine-color-scheme=dark]) .m_3d733a3a:where([data-with-title]){color:var(--mantine-color-dark-2)}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_919a4d88:hover{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_919a4d88:hover{background-color:var(--mantine-color-dark-8)}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_919a4d88:active{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_919a4d88:active{background-color:var(--mantine-color-dark-8)}}.m_e2f5cd4e{--ni-right-section-width-xs: calc(1.0625rem * var(--mantine-scale));--ni-right-section-width-sm: calc(1.5rem * var(--mantine-scale));--ni-right-section-width-md: calc(1.6875rem * var(--mantine-scale));--ni-right-section-width-lg: calc(1.9375rem * var(--mantine-scale));--ni-right-section-width-xl: calc(2.125rem * var(--mantine-scale))}.m_95e17d22{--ni-chevron-size-xs: calc(.625rem * var(--mantine-scale));--ni-chevron-size-sm: calc(.875rem * var(--mantine-scale));--ni-chevron-size-md: calc(1rem * var(--mantine-scale));--ni-chevron-size-lg: calc(1.125rem * var(--mantine-scale));--ni-chevron-size-xl: calc(1.25rem * var(--mantine-scale));--ni-chevron-size: var(--ni-chevron-size-sm);display:flex;flex-direction:column;width:100%;height:calc(var(--input-height) - calc(.125rem * var(--mantine-scale)));max-width:calc(var(--ni-chevron-size) * 1.7);margin-inline-start:auto}.m_80b4b171{--control-border: 1px solid var(--input-bd);--control-radius: calc(var(--input-radius) - calc(.0625rem * var(--mantine-scale)));flex:0 0 50%;width:100%;padding:0;height:calc(var(--input-height) / 2 - calc(.0625rem * var(--mantine-scale)));border-inline-start:var(--control-border);display:flex;align-items:center;justify-content:center;color:var(--mantine-color-text);background-color:transparent;cursor:pointer}.m_80b4b171:where(:disabled){background-color:transparent;cursor:not-allowed;opacity:.6;color:var(--mantine-color-disabled-color)}.m_e2f5cd4e[data-error] :where(.m_80b4b171){color:var(--mantine-color-error)}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_80b4b171:hover{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_80b4b171:hover{background-color:var(--mantine-color-dark-4)}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_80b4b171:active{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_80b4b171:active{background-color:var(--mantine-color-dark-4)}}.m_80b4b171:where(:first-of-type){border-radius:0;border-start-end-radius:var(--control-radius)}.m_80b4b171:last-of-type{border-radius:0;border-end-end-radius:var(--control-radius)}.m_4addd315{--pagination-control-size-xs: calc(1.375rem * var(--mantine-scale));--pagination-control-size-sm: calc(1.625rem * var(--mantine-scale));--pagination-control-size-md: calc(2rem * var(--mantine-scale));--pagination-control-size-lg: calc(2.375rem * var(--mantine-scale));--pagination-control-size-xl: calc(2.75rem * var(--mantine-scale));--pagination-control-size: var(--pagination-control-size-md);--pagination-control-fz: var(--mantine-font-size-md);--pagination-active-bg: var(--mantine-primary-color-filled)}.m_326d024a{display:flex;align-items:center;justify-content:center;border:calc(.0625rem * var(--mantine-scale)) solid;cursor:pointer;color:var(--mantine-color-text);height:var(--pagination-control-size);min-width:var(--pagination-control-size);font-size:var(--pagination-control-fz);line-height:1;border-radius:var(--pagination-control-radius, var(--mantine-radius-default))}.m_326d024a:where([data-with-padding]){padding:calc(var(--pagination-control-size) / 4)}.m_326d024a:where(:disabled,[data-disabled]){cursor:not-allowed;opacity:.4}:where([data-mantine-color-scheme=light]) .m_326d024a{border-color:var(--mantine-color-gray-4);background-color:var(--mantine-color-white)}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_326d024a:hover:where(:not(:disabled,[data-disabled])){background-color:var(--mantine-color-gray-0)}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_326d024a:active:where(:not(:disabled,[data-disabled])){background-color:var(--mantine-color-gray-0)}}:where([data-mantine-color-scheme=dark]) .m_326d024a{border-color:var(--mantine-color-dark-4);background-color:var(--mantine-color-dark-6)}@media (hover: hover){:where([data-mantine-color-scheme=dark]) .m_326d024a:hover:where(:not(:disabled,[data-disabled])){background-color:var(--mantine-color-dark-5)}}@media (hover: none){:where([data-mantine-color-scheme=dark]) .m_326d024a:active:where(:not(:disabled,[data-disabled])){background-color:var(--mantine-color-dark-5)}}.m_326d024a:where([data-active]){background-color:var(--pagination-active-bg);border-color:var(--pagination-active-bg);color:var(--pagination-active-color, var(--mantine-color-white))}@media (hover: hover){.m_326d024a:where([data-active]):hover{background-color:var(--pagination-active-bg)}}@media (hover: none){.m_326d024a:where([data-active]):active{background-color:var(--pagination-active-bg)}}.m_4ad7767d{height:var(--pagination-control-size);min-width:var(--pagination-control-size);display:flex;align-items:center;justify-content:center;pointer-events:none}.m_f61ca620{--psi-button-size-xs: calc(1.375rem * var(--mantine-scale));--psi-button-size-sm: calc(1.625rem * var(--mantine-scale));--psi-button-size-md: calc(1.75rem * var(--mantine-scale));--psi-button-size-lg: calc(2rem * var(--mantine-scale));--psi-button-size-xl: calc(2.5rem * var(--mantine-scale));--psi-icon-size-xs: calc(.75rem * var(--mantine-scale));--psi-icon-size-sm: calc(.9375rem * var(--mantine-scale));--psi-icon-size-md: calc(1.0625rem * var(--mantine-scale));--psi-icon-size-lg: calc(1.1875rem * var(--mantine-scale));--psi-icon-size-xl: calc(1.3125rem * var(--mantine-scale));--psi-button-size: var(--psi-button-size-sm);--psi-icon-size: var(--psi-icon-size-sm)}.m_ccf8da4c{position:relative;overflow:hidden}.m_f2d85dd2{font-family:var(--mantine-font-family);background-color:transparent;border:0;padding-inline-end:var(--input-padding-inline-end);padding-inline-start:var(--input-padding-inline-start);position:absolute;inset:0;outline:0;font-size:inherit;line-height:var(--mantine-line-height);height:100%;width:100%;color:inherit}.m_ccf8da4c[data-disabled] .m_f2d85dd2,.m_f2d85dd2:disabled{cursor:not-allowed}.m_f2d85dd2::placeholder{color:var(--input-placeholder-color);opacity:1}.m_f2d85dd2::-ms-reveal{display:none}.m_b1072d44{width:var(--psi-button-size);height:var(--psi-button-size);min-width:var(--psi-button-size);min-height:var(--psi-button-size)}.m_b1072d44:disabled{display:none}.m_f1cb205a{--pin-input-size-xs: calc(1.875rem * var(--mantine-scale));--pin-input-size-sm: calc(2.25rem * var(--mantine-scale));--pin-input-size-md: calc(2.625rem * var(--mantine-scale));--pin-input-size-lg: calc(3.125rem * var(--mantine-scale));--pin-input-size-xl: calc(3.75rem * var(--mantine-scale));--pin-input-size: var(--pin-input-size-sm)}.m_cb288ead{width:var(--pin-input-size);height:var(--pin-input-size)}@keyframes m_81a374bd{0%{background-position:0 0}to{background-position:calc(2.5rem * var(--mantine-scale)) 0}}@keyframes m_e0fb7a86{0%{background-position:0 0}to{background-position:0 calc(2.5rem * var(--mantine-scale))}}.m_db6d6462{--progress-radius: var(--mantine-radius-default);--progress-size: var(--progress-size-md);--progress-size-xs: calc(.1875rem * var(--mantine-scale));--progress-size-sm: calc(.3125rem * var(--mantine-scale));--progress-size-md: calc(.5rem * var(--mantine-scale));--progress-size-lg: calc(.75rem * var(--mantine-scale));--progress-size-xl: calc(1rem * var(--mantine-scale));position:relative;height:var(--progress-size);border-radius:var(--progress-radius);overflow:hidden;display:flex}:where([data-mantine-color-scheme=light]) .m_db6d6462{background-color:var(--mantine-color-gray-2)}:where([data-mantine-color-scheme=dark]) .m_db6d6462{background-color:var(--mantine-color-dark-4)}.m_db6d6462:where([data-orientation=vertical]){height:auto;width:var(--progress-size);flex-direction:column-reverse}.m_2242eb65{background-color:var(--progress-section-color);height:100%;width:var(--progress-section-size);display:flex;align-items:center;justify-content:center;overflow:hidden;background-size:calc(1.25rem * var(--mantine-scale)) calc(1.25rem * var(--mantine-scale));transition:width var(--progress-transition-duration, .1s) ease}.m_2242eb65:where([data-striped]){background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.m_2242eb65:where([data-animated]){animation:m_81a374bd 1s linear infinite}.m_2242eb65:where(:last-of-type){border-radius:0;border-start-end-radius:var(--progress-radius);border-end-end-radius:var(--progress-radius)}.m_2242eb65:where(:first-of-type){border-radius:0;border-start-start-radius:var(--progress-radius);border-end-start-radius:var(--progress-radius)}.m_db6d6462:where([data-orientation=vertical]) .m_2242eb65{width:100%;height:var(--progress-section-size);transition:height var(--progress-transition-duration, .1s) ease}.m_db6d6462:where([data-orientation=vertical]) .m_2242eb65:where([data-striped]){background-image:linear-gradient(135deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.m_db6d6462:where([data-orientation=vertical]) .m_2242eb65:where([data-animated]){animation:m_e0fb7a86 1s linear infinite}.m_db6d6462:where([data-orientation=vertical]) .m_2242eb65:where(:last-of-type){border-radius:0;border-start-start-radius:var(--progress-radius);border-start-end-radius:var(--progress-radius)}.m_db6d6462:where([data-orientation=vertical]) .m_2242eb65:where(:first-of-type){border-radius:0;border-end-start-radius:var(--progress-radius);border-end-end-radius:var(--progress-radius)}.m_91e40b74{color:var(--progress-label-color, var(--mantine-color-white));font-weight:700;user-select:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:min(calc(var(--progress-size) * .65),calc(1.125rem * var(--mantine-scale)));line-height:1;padding-inline:calc(.25rem * var(--mantine-scale))}.m_db6d6462:where([data-orientation=vertical]) .m_91e40b74{writing-mode:vertical-rl}.m_9dc8ae12{--card-radius: var(--mantine-radius-default);display:block;width:100%;border-radius:var(--card-radius);cursor:pointer}.m_9dc8ae12 :where(*){cursor:inherit}.m_9dc8ae12:where([data-with-border]){border:calc(.0625rem * var(--mantine-scale)) solid transparent}:where([data-mantine-color-scheme=light]) .m_9dc8ae12:where([data-with-border]){border-color:var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_9dc8ae12:where([data-with-border]){border-color:var(--mantine-color-dark-4)}.m_717d7ff6{--radio-size-xs: calc(1rem * var(--mantine-scale));--radio-size-sm: calc(1.25rem * var(--mantine-scale));--radio-size-md: calc(1.5rem * var(--mantine-scale));--radio-size-lg: calc(1.875rem * var(--mantine-scale));--radio-size-xl: calc(2.25rem * var(--mantine-scale));--radio-icon-size-xs: calc(.375rem * var(--mantine-scale));--radio-icon-size-sm: calc(.5rem * var(--mantine-scale));--radio-icon-size-md: calc(.625rem * var(--mantine-scale));--radio-icon-size-lg: calc(.875rem * var(--mantine-scale));--radio-icon-size-xl: calc(1rem * var(--mantine-scale));--radio-icon-size: var(--radio-icon-size-sm);--radio-size: var(--radio-size-sm);--radio-color: var(--mantine-primary-color-filled);--radio-icon-color: var(--mantine-color-white);position:relative;border:calc(.0625rem * var(--mantine-scale)) solid transparent;width:var(--radio-size);min-width:var(--radio-size);height:var(--radio-size);min-height:var(--radio-size);border-radius:var(--radio-radius, 10000px);transition:border-color .1s ease,background-color .1s ease;cursor:var(--mantine-cursor-type);-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center}:where([data-mantine-color-scheme=light]) .m_717d7ff6{background-color:var(--mantine-color-white);border-color:var(--mantine-color-gray-4)}:where([data-mantine-color-scheme=dark]) .m_717d7ff6{background-color:var(--mantine-color-dark-6);border-color:var(--mantine-color-dark-4)}.m_717d7ff6[data-indeterminate],.m_717d7ff6[data-checked]{background-color:var(--radio-color);border-color:var(--radio-color)}.m_717d7ff6[data-indeterminate]>.m_3e4da632,.m_717d7ff6[data-checked]>.m_3e4da632{opacity:1;transform:none;color:var(--radio-icon-color)}.m_717d7ff6[data-disabled]{cursor:not-allowed;background-color:var(--mantine-color-disabled);border-color:var(--mantine-color-disabled-border)}.m_717d7ff6[data-disabled][data-checked]>.m_3e4da632{color:var(--mantine-color-disabled-color)}.m_2980836c[data-indeterminate]:not([data-disabled]),.m_2980836c[data-checked]:not([data-disabled]){background-color:transparent;border-color:var(--radio-color)}.m_2980836c[data-indeterminate]:not([data-disabled])>.m_3e4da632,.m_2980836c[data-checked]:not([data-disabled])>.m_3e4da632{color:var(--radio-color);opacity:1;transform:none}.m_3e4da632{display:block;width:var(--radio-icon-size);height:var(--radio-icon-size);color:transparent;pointer-events:none;transform:translateY(calc(.3125rem * var(--mantine-scale))) scale(.5);opacity:1;transition:transform .1s ease,opacity .1s ease}.m_f3f1af94{--radio-size-xs: calc(1rem * var(--mantine-scale));--radio-size-sm: calc(1.25rem * var(--mantine-scale));--radio-size-md: calc(1.5rem * var(--mantine-scale));--radio-size-lg: calc(1.875rem * var(--mantine-scale));--radio-size-xl: calc(2.25rem * var(--mantine-scale));--radio-size: var(--radio-size-sm);--radio-icon-size-xs: calc(.375rem * var(--mantine-scale));--radio-icon-size-sm: calc(.5rem * var(--mantine-scale));--radio-icon-size-md: calc(.625rem * var(--mantine-scale));--radio-icon-size-lg: calc(.875rem * var(--mantine-scale));--radio-icon-size-xl: calc(1rem * var(--mantine-scale));--radio-icon-size: var(--radio-icon-size-sm);--radio-icon-color: var(--mantine-color-white)}.m_89c4f5e4{position:relative;width:var(--radio-size);height:var(--radio-size);order:1}.m_89c4f5e4:where([data-label-position=left]){order:2}.m_f3ed6b2b{color:var(--radio-icon-color);opacity:var(--radio-icon-opacity, 0);transform:var(--radio-icon-transform, scale(.2) translateY(calc(.625rem * var(--mantine-scale))));transition:opacity .1s ease,transform .2s ease;pointer-events:none;width:var(--radio-icon-size);height:var(--radio-icon-size);position:absolute;top:calc(50% - var(--radio-icon-size) / 2);left:calc(50% - var(--radio-icon-size) / 2)}.m_8a3dbb89{border:calc(.0625rem * var(--mantine-scale)) solid;position:relative;appearance:none;width:var(--radio-size);height:var(--radio-size);border-radius:var(--radio-radius, var(--radio-size));margin:0;display:flex;align-items:center;justify-content:center;transition-property:background-color,border-color;transition-timing-function:ease;transition-duration:.1s;cursor:var(--mantine-cursor-type);-webkit-tap-highlight-color:transparent}:where([data-mantine-color-scheme=light]) .m_8a3dbb89{background-color:var(--mantine-color-white);border-color:var(--mantine-color-gray-4)}:where([data-mantine-color-scheme=dark]) .m_8a3dbb89{background-color:var(--mantine-color-dark-6);border-color:var(--mantine-color-dark-4)}.m_8a3dbb89:checked{background-color:var(--radio-color, var(--mantine-primary-color-filled));border-color:var(--radio-color, var(--mantine-primary-color-filled))}.m_8a3dbb89:checked+.m_f3ed6b2b{--radio-icon-opacity: 1;--radio-icon-transform: scale(1)}.m_8a3dbb89:disabled{cursor:not-allowed;background-color:var(--mantine-color-disabled);border-color:var(--mantine-color-disabled-border)}.m_8a3dbb89:disabled+.m_f3ed6b2b{--radio-icon-color: var(--mantine-color-disabled-color)}.m_8a3dbb89:where([data-error]){border-color:var(--mantine-color-error)}.m_1bfe9d39+.m_f3ed6b2b{--radio-icon-color: var(--radio-color)}.m_1bfe9d39:checked:not(:disabled){background-color:transparent;border-color:var(--radio-color)}.m_1bfe9d39:checked:not(:disabled)+.m_f3ed6b2b{--radio-icon-color: var(--radio-color);--radio-icon-opacity: 1;--radio-icon-transform: none}.m_f8d312f2{--rating-size-xs: calc(.875rem * var(--mantine-scale));--rating-size-sm: calc(1.125rem * var(--mantine-scale));--rating-size-md: calc(1.25rem * var(--mantine-scale));--rating-size-lg: calc(1.75rem * var(--mantine-scale));--rating-size-xl: calc(2rem * var(--mantine-scale));display:flex;width:max-content}.m_f8d312f2:where(:has(input:disabled)){pointer-events:none}.m_61734bb7{position:relative;transition:transform .1s ease}.m_61734bb7:where([data-active]){z-index:1;transform:scale(1.1)}.m_5662a89a{width:var(--rating-size);height:var(--rating-size);display:block}:where([data-mantine-color-scheme=light]) .m_5662a89a{fill:var(--mantine-color-gray-3);stroke:var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_5662a89a{fill:var(--mantine-color-dark-3);stroke:var(--mantine-color-dark-3)}.m_5662a89a:where([data-filled]){fill:var(--rating-color);stroke:var(--rating-color)}.m_211007ba{height:0;width:0;position:absolute;overflow:hidden;white-space:nowrap;opacity:0;-webkit-tap-highlight-color:transparent}.m_211007ba:focus-visible+label{outline:2px solid var(--mantine-primary-color-filled);outline-offset:calc(.125rem * var(--mantine-scale))}.m_21342ee4{display:block;cursor:pointer;position:absolute;top:0;left:0;z-index:var(--rating-item-z-index, 0);-webkit-tap-highlight-color:transparent}.m_21342ee4:where([data-read-only]){cursor:default}.m_21342ee4:where(:last-of-type){position:relative}.m_fae05d6a{clip-path:var(--rating-symbol-clip-path)}.m_1b3c8819{--tooltip-radius: var(--mantine-radius-default);position:absolute;padding:calc(var(--mantine-spacing-xs) / 2) var(--mantine-spacing-xs);pointer-events:none;font-size:var(--mantine-font-size-sm);white-space:nowrap;border-radius:var(--tooltip-radius)}:where([data-mantine-color-scheme=light]) .m_1b3c8819{background-color:var(--tooltip-bg, var(--mantine-color-gray-9));color:var(--tooltip-color, var(--mantine-color-white))}:where([data-mantine-color-scheme=dark]) .m_1b3c8819{background-color:var(--tooltip-bg, var(--mantine-color-gray-2));color:var(--tooltip-color, var(--mantine-color-black))}.m_1b3c8819:where([data-multiline]){white-space:normal}.m_1b3c8819:where([data-fixed]){position:fixed}.m_f898399f{background-color:inherit;border:0;z-index:1}.m_b32e4812{position:relative;width:var(--rp-size);height:var(--rp-size);min-width:var(--rp-size);min-height:var(--rp-size);--rp-transition-duration: 0ms}.m_d43b5134{width:var(--rp-size);height:var(--rp-size);min-width:var(--rp-size);min-height:var(--rp-size);transform:rotate(-90deg)}.m_b1ca1fbf{stroke:var(--curve-color, var(--rp-curve-root-color));transition:stroke-dashoffset var(--rp-transition-duration) ease,stroke-dasharray var(--rp-transition-duration) ease,stroke var(--rp-transition-duration)}[data-mantine-color-scheme=light] .m_b1ca1fbf{--rp-curve-root-color: var(--mantine-color-gray-2)}[data-mantine-color-scheme=dark] .m_b1ca1fbf{--rp-curve-root-color: var(--mantine-color-dark-4)}.m_b23f9dc4{position:absolute;top:50%;transform:translateY(-50%);inset-inline:var(--rp-label-offset)}.m_cf365364{--sc-padding-xs: calc(.125rem * var(--mantine-scale)) calc(.375rem * var(--mantine-scale));--sc-padding-sm: calc(.1875rem * var(--mantine-scale)) calc(.625rem * var(--mantine-scale));--sc-padding-md: calc(.25rem * var(--mantine-scale)) calc(.875rem * var(--mantine-scale));--sc-padding-lg: calc(.4375rem * var(--mantine-scale)) calc(1rem * var(--mantine-scale));--sc-padding-xl: calc(.625rem * var(--mantine-scale)) calc(1.25rem * var(--mantine-scale));--sc-transition-duration: .2s;--sc-padding: var(--sc-padding-sm);--sc-transition-timing-function: ease;--sc-font-size: var(--mantine-font-size-sm);position:relative;display:inline-flex;flex-direction:row;width:auto;border-radius:var(--sc-radius, var(--mantine-radius-default));overflow:hidden;padding:calc(.25rem * var(--mantine-scale))}.m_cf365364:where([data-full-width]){display:flex}.m_cf365364:where([data-orientation=vertical]){display:flex;flex-direction:column;width:max-content}.m_cf365364:where([data-orientation=vertical]):where([data-full-width]){width:auto}:where([data-mantine-color-scheme=light]) .m_cf365364{background-color:var(--mantine-color-gray-1)}:where([data-mantine-color-scheme=dark]) .m_cf365364{background-color:var(--mantine-color-dark-8)}.m_9e182ccd{position:absolute;display:block;z-index:1;border-radius:var(--sc-radius, var(--mantine-radius-default))}:where([data-mantine-color-scheme=light]) .m_9e182ccd{box-shadow:var(--sc-shadow, none);background-color:var(--sc-color, var(--mantine-color-white))}:where([data-mantine-color-scheme=dark]) .m_9e182ccd{box-shadow:none;background-color:var(--sc-color, var(--mantine-color-dark-5))}.m_1738fcb2{-webkit-tap-highlight-color:transparent;font-weight:500;display:block;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none;border-radius:var(--sc-radius, var(--mantine-radius-default));font-size:var(--sc-font-size);padding:var(--sc-padding);transition:color var(--sc-transition-duration) var(--sc-transition-timing-function);cursor:pointer;outline:var(--segmented-control-outline, none)}:where([data-mantine-color-scheme=light]) .m_1738fcb2{color:var(--mantine-color-gray-7)}:where([data-mantine-color-scheme=dark]) .m_1738fcb2{color:var(--mantine-color-dark-1)}.m_1738fcb2:where([data-read-only]){cursor:default}fieldset:disabled .m_1738fcb2,.m_1738fcb2:where([data-disabled]){cursor:not-allowed;color:var(--mantine-color-disabled-color)}:where([data-mantine-color-scheme=light]) .m_1738fcb2:where([data-active]){color:var(--sc-label-color, var(--mantine-color-black))}:where([data-mantine-color-scheme=dark]) .m_1738fcb2:where([data-active]){color:var(--sc-label-color, var(--mantine-color-white))}.m_cf365364:where([data-initialized]) .m_1738fcb2:where([data-active]):before{display:none}.m_1738fcb2:where([data-active]):before{content:"";inset:0;z-index:0;position:absolute;border-radius:var(--sc-radius, var(--mantine-radius-default))}:where([data-mantine-color-scheme=light]) .m_1738fcb2:where([data-active]):before{box-shadow:var(--sc-shadow, none);background-color:var(--sc-color, var(--mantine-color-white))}:where([data-mantine-color-scheme=dark]) .m_1738fcb2:where([data-active]):before{box-shadow:none;background-color:var(--sc-color, var(--mantine-color-dark-5))}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_1738fcb2:where(:not([data-disabled],[data-active],[data-read-only])):hover{color:var(--mantine-color-black)}:where([data-mantine-color-scheme=dark]) .m_1738fcb2:where(:not([data-disabled],[data-active],[data-read-only])):hover{color:var(--mantine-color-white)}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_1738fcb2:where(:not([data-disabled],[data-active],[data-read-only])):active{color:var(--mantine-color-black)}:where([data-mantine-color-scheme=dark]) .m_1738fcb2:where(:not([data-disabled],[data-active],[data-read-only])):active{color:var(--mantine-color-white)}}@media (hover: hover){fieldset:disabled .m_1738fcb2:hover{color:var(--mantine-color-disabled-color)!important}}@media (hover: none){fieldset:disabled .m_1738fcb2:active{color:var(--mantine-color-disabled-color)!important}}.m_1714d588{height:0;width:0;position:absolute;overflow:hidden;white-space:nowrap;opacity:0}.m_1714d588[data-focus-ring=auto]:focus:focus-visible+.m_1738fcb2{--segmented-control-outline: 2px solid var(--mantine-primary-color-filled)}.m_1714d588[data-focus-ring=always]:focus+.m_1738fcb2{--segmented-control-outline: 2px solid var(--mantine-primary-color-filled)}.m_69686b9b{position:relative;flex:1;z-index:2;transition:border-color var(--sc-transition-duration) var(--sc-transition-timing-function)}.m_cf365364[data-with-items-borders] :where(.m_69686b9b):before{content:"";position:absolute;top:0;bottom:0;inset-inline-start:0;background-color:var(--separator-color);width:calc(.0625rem * var(--mantine-scale));transition:background-color var(--sc-transition-duration) var(--sc-transition-timing-function)}.m_69686b9b[data-orientation=vertical]:before{top:0;inset-inline:0;bottom:auto;height:calc(.0625rem * var(--mantine-scale));width:auto}:where([data-mantine-color-scheme=light]) .m_69686b9b{--separator-color: var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_69686b9b{--separator-color: var(--mantine-color-dark-4)}.m_69686b9b:first-of-type:before{--separator-color: transparent}[data-mantine-color-scheme] .m_69686b9b[data-active]:before,[data-mantine-color-scheme] .m_69686b9b[data-active]+.m_69686b9b:before{--separator-color: transparent}.m_78882f40{position:relative;z-index:2}.m_fa528724{--scp-filled-segment-color: var(--mantine-primary-color-filled);--scp-transition-duration: 0ms;--scp-thickness: calc(.625rem * var(--mantine-scale))}:where([data-mantine-color-scheme=light]) .m_fa528724{--scp-empty-segment-color: var(--mantine-color-gray-2)}:where([data-mantine-color-scheme=dark]) .m_fa528724{--scp-empty-segment-color: var(--mantine-color-dark-4)}.m_fa528724{position:relative;width:fit-content}.m_62e9e7e2{display:block;transform:var(--scp-rotation);overflow:hidden}.m_c573fb6f{transition:stroke-dashoffset var(--scp-transition-duration) ease,stroke-dasharray var(--scp-transition-duration) ease,stroke var(--scp-transition-duration)}.m_4fa340f2{position:absolute;margin:0;padding:0;inset-inline:0;text-align:center;z-index:1}.m_4fa340f2:where([data-position=bottom]){bottom:0;padding-inline:calc(var(--scp-thickness) * 2)}.m_4fa340f2:where([data-position=bottom]):where([data-orientation=down]){bottom:auto;top:0}.m_4fa340f2:where([data-position=center]){top:50%;padding-inline:calc(var(--scp-thickness) * 3)}.m_925c2d2c{container:simple-grid / inline-size}.m_2415a157{display:grid;grid-template-columns:repeat(var(--sg-cols),minmax(0,1fr));gap:var(--sg-spacing-y) var(--sg-spacing-x)}@keyframes m_299c329c{0%,to{opacity:.4}50%{opacity:1}}.m_18320242{height:var(--skeleton-height, auto);width:var(--skeleton-width, 100%);border-radius:var(--skeleton-radius, var(--mantine-radius-default));position:relative;transform:translateZ(0);-webkit-transform:translateZ(0)}.m_18320242:where([data-animate]):after{animation:m_299c329c 1.5s linear infinite}.m_18320242:where([data-visible]){overflow:hidden}.m_18320242:where([data-visible]):before{position:absolute;content:"";inset:0;z-index:10;background-color:var(--mantine-color-body)}.m_18320242:where([data-visible]):after{position:absolute;content:"";inset:0;z-index:11}:where([data-mantine-color-scheme=light]) .m_18320242:where([data-visible]):after{background-color:var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_18320242:where([data-visible]):after{background-color:var(--mantine-color-dark-4)}.m_dd36362e{--slider-size-xs: calc(.25rem * var(--mantine-scale));--slider-size-sm: calc(.375rem * var(--mantine-scale));--slider-size-md: calc(.5rem * var(--mantine-scale));--slider-size-lg: calc(.625rem * var(--mantine-scale));--slider-size-xl: calc(.75rem * var(--mantine-scale));--slider-size: var(--slider-size-md);--slider-radius: calc(62.5rem * var(--mantine-scale));--slider-color: var(--mantine-primary-color-filled);--slider-track-disabled-bg: var(--mantine-color-disabled);-webkit-tap-highlight-color:transparent;outline:none;height:calc(var(--slider-size) * 2);padding-inline:var(--slider-size);display:flex;flex-direction:column;align-items:center;touch-action:none;position:relative}[data-mantine-color-scheme=light] .m_dd36362e{--slider-track-bg: var(--mantine-color-gray-2)}[data-mantine-color-scheme=dark] .m_dd36362e{--slider-track-bg: var(--mantine-color-dark-4)}.m_c9357328{position:absolute;top:calc(-2.25rem * var(--mantine-scale));font-size:var(--mantine-font-size-xs);color:var(--mantine-color-white);padding:calc(var(--mantine-spacing-xs) / 2);border-radius:var(--mantine-radius-sm);white-space:nowrap;pointer-events:none;user-select:none;touch-action:none}:where([data-mantine-color-scheme=light]) .m_c9357328{background-color:var(--mantine-color-gray-9)}:where([data-mantine-color-scheme=dark]) .m_c9357328{background-color:var(--mantine-color-dark-4)}.m_c9a9a60a{position:absolute;display:flex;height:var(--slider-thumb-size);width:var(--slider-thumb-size);border:calc(.25rem * var(--mantine-scale)) solid;transform:translate(-50%,-50%);top:50%;cursor:pointer;border-radius:var(--slider-radius);align-items:center;justify-content:center;transition:box-shadow .1s ease,transform .1s ease;z-index:3;user-select:none;touch-action:none;outline-offset:calc(.125rem * var(--mantine-scale));left:var(--slider-thumb-offset)}:where([dir=rtl]) .m_c9a9a60a{left:auto;right:calc(var(--slider-thumb-offset) - var(--slider-thumb-size))}fieldset:disabled .m_c9a9a60a,.m_c9a9a60a:where([data-disabled]){display:none}.m_c9a9a60a:where([data-dragging]){transform:translate(-50%,-50%) scale(1.05);box-shadow:var(--mantine-shadow-sm)}:where([data-mantine-color-scheme=light]) .m_c9a9a60a{color:var(--slider-color);border-color:var(--slider-color);background-color:var(--mantine-color-white)}:where([data-mantine-color-scheme=dark]) .m_c9a9a60a{color:var(--mantine-color-white);border-color:var(--mantine-color-white);background-color:var(--slider-color)}.m_a8645c2{display:flex;align-items:center;width:100%;height:calc(var(--slider-size) * 2);cursor:pointer}fieldset:disabled .m_a8645c2,.m_a8645c2:where([data-disabled]){cursor:not-allowed}.m_c9ade57f{position:relative;width:100%;height:var(--slider-size)}.m_c9ade57f:where([data-inverted]:not([data-disabled])){--track-bg: var(--slider-color)}fieldset:disabled .m_c9ade57f:where([data-inverted]),.m_c9ade57f:where([data-inverted][data-disabled]){--track-bg: var(--slider-track-disabled-bg)}.m_c9ade57f:before{content:"";position:absolute;top:0;bottom:0;border-radius:var(--slider-radius);inset-inline:calc(var(--slider-size) * -1);background-color:var(--track-bg, var(--slider-track-bg));z-index:0}.m_38aeed47{position:absolute;z-index:1;top:0;bottom:0;background-color:var(--slider-color);border-radius:var(--slider-radius);width:var(--slider-bar-width);inset-inline-start:var(--slider-bar-offset)}.m_38aeed47:where([data-inverted]){background-color:var(--slider-track-bg)}fieldset:disabled .m_38aeed47:where(:not([data-inverted])),.m_38aeed47:where([data-disabled]:not([data-inverted])){background-color:var(--mantine-color-disabled-color)}.m_b7b0423a{position:absolute;inset-inline-start:calc(var(--mark-offset) - var(--slider-size) / 2);top:0;z-index:2;height:0;pointer-events:none}.m_dd33bc19{border:calc(.125rem * var(--mantine-scale)) solid;height:var(--slider-size);width:var(--slider-size);border-radius:calc(62.5rem * var(--mantine-scale));background-color:var(--mantine-color-white);pointer-events:none}:where([data-mantine-color-scheme=light]) .m_dd33bc19{border-color:var(--mantine-color-gray-2)}:where([data-mantine-color-scheme=dark]) .m_dd33bc19{border-color:var(--mantine-color-dark-4)}.m_dd33bc19:where([data-filled]){border-color:var(--slider-color)}.m_dd33bc19:where([data-filled]):where([data-disabled]){border-color:var(--mantine-color-disabled-border)}.m_68c77a5b{transform:translate(calc(-50% + var(--slider-size) / 2),calc(var(--mantine-spacing-xs) / 2));font-size:var(--mantine-font-size-sm);white-space:nowrap;cursor:pointer;user-select:none}:where([data-mantine-color-scheme=light]) .m_68c77a5b{color:var(--mantine-color-gray-6)}:where([data-mantine-color-scheme=dark]) .m_68c77a5b{color:var(--mantine-color-dark-2)}.m_559cce2d{position:relative}.m_559cce2d:where([data-has-spoiler]){margin-bottom:calc(1.5rem * var(--mantine-scale))}.m_b912df4e{display:flex;flex-direction:column;overflow:hidden;transition:max-height var(--spoiler-transition-duration, .2s) ease}.m_b9131032{position:absolute;inset-inline-start:0;top:100%;height:calc(1.5rem * var(--mantine-scale))}.m_6d731127{display:flex;flex-direction:column;align-items:var(--stack-align, stretch);justify-content:var(--stack-justify, flex-start);gap:var(--stack-gap, var(--mantine-spacing-md))}.m_cbb4ea7e{--stepper-icon-size-xs: calc(2.125rem * var(--mantine-scale));--stepper-icon-size-sm: calc(2.25rem * var(--mantine-scale));--stepper-icon-size-md: calc(2.625rem * var(--mantine-scale));--stepper-icon-size-lg: calc(3rem * var(--mantine-scale));--stepper-icon-size-xl: calc(3.25rem * var(--mantine-scale));--stepper-icon-size: var(--stepper-icon-size-md);--stepper-color: var(--mantine-primary-color-filled);--stepper-content-padding: var(--mantine-spacing-md);--stepper-spacing: var(--mantine-spacing-md);--stepper-radius: calc(62.5rem * var(--mantine-scale));--stepper-fz: var(--mantine-font-size-md);--stepper-outline-thickness: calc(.125rem * var(--mantine-scale))}[data-mantine-color-scheme=light] .m_cbb4ea7e{--stepper-outline-color: var(--mantine-color-gray-2)}[data-mantine-color-scheme=dark] .m_cbb4ea7e{--stepper-outline-color: var(--mantine-color-dark-5)}.m_aaf89d0b{display:flex;flex-wrap:nowrap;align-items:center}.m_aaf89d0b:where([data-wrap]){flex-wrap:wrap;gap:var(--mantine-spacing-md) 0}.m_aaf89d0b:where([data-orientation=vertical]){flex-direction:column}.m_aaf89d0b:where([data-orientation=vertical]):where([data-icon-position=left]){align-items:flex-start}.m_aaf89d0b:where([data-orientation=vertical]):where([data-icon-position=right]){align-items:flex-end}.m_aaf89d0b:where([data-orientation=horizontal]){flex-direction:row}.m_2a371ac9{transition:background-color .15s ease;flex:1;height:var(--stepper-outline-thickness);margin-inline:var(--mantine-spacing-md);background-color:var(--stepper-outline-color)}.m_2a371ac9:where([data-active]){background-color:var(--stepper-color)}.m_78da155d{padding-top:var(--stepper-content-padding)}.m_cbb57068{--step-color: var(--stepper-color);display:flex;cursor:default}.m_cbb57068:where([data-allow-click]){cursor:pointer}.m_cbb57068:where([data-icon-position=left]){flex-direction:row}.m_cbb57068:where([data-icon-position=right]){flex-direction:row-reverse}.m_f56b1e2c{align-items:center}.m_833edb7e{--separator-spacing: calc(var(--mantine-spacing-xs) / 2);justify-content:flex-start;min-height:calc(var(--stepper-icon-size) + var(--mantine-spacing-xl) + var(--separator-spacing));margin-top:var(--separator-spacing);overflow:hidden}.m_833edb7e:where(:first-of-type){margin-top:0}.m_833edb7e:where(:last-of-type){min-height:auto}.m_833edb7e:where(:last-of-type) .m_6496b3f3{display:none}.m_818e70b{position:relative}.m_6496b3f3{top:calc(var(--stepper-icon-size) + var(--separator-spacing));inset-inline-start:calc(var(--stepper-icon-size) / 2);height:100vh;position:absolute;border-inline-start:var(--stepper-outline-thickness) solid var(--stepper-outline-color)}.m_6496b3f3:where([data-active]){border-color:var(--stepper-color)}.m_1959ad01{height:var(--stepper-icon-size);width:var(--stepper-icon-size);min-height:var(--stepper-icon-size);min-width:var(--stepper-icon-size);border-radius:var(--stepper-radius);font-size:var(--stepper-fz);display:flex;align-items:center;justify-content:center;position:relative;font-weight:700;transition:background-color .15s ease,border-color .15s ease;border:var(--stepper-outline-thickness) solid var(--stepper-outline-color);background-color:var(--stepper-outline-color)}:where([data-mantine-color-scheme=light]) .m_1959ad01{color:var(--mantine-color-gray-7)}:where([data-mantine-color-scheme=dark]) .m_1959ad01{color:var(--mantine-color-dark-1)}.m_1959ad01:where([data-progress]){border-color:var(--step-color)}.m_1959ad01:where([data-completed]){color:var(--stepper-icon-color, var(--mantine-color-white));background-color:var(--step-color);border-color:var(--step-color)}.m_a79331dc{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--stepper-icon-color, var(--mantine-color-white))}.m_1956aa2a{display:flex;flex-direction:column}.m_1956aa2a:where([data-icon-position=left]){margin-inline-start:var(--mantine-spacing-sm)}.m_1956aa2a:where([data-icon-position=right]){text-align:right;margin-inline-end:var(--mantine-spacing-sm)}:where([dir=rtl]) .m_1956aa2a:where([data-icon-position=right]){text-align:left}.m_12051f6c{font-weight:500;font-size:var(--stepper-fz);line-height:1}.m_164eea74{margin-top:calc(var(--stepper-spacing) / 3);margin-bottom:calc(var(--stepper-spacing) / 3);font-size:calc(var(--stepper-fz) - calc(.125rem * var(--mantine-scale)));line-height:1;color:var(--mantine-color-dimmed)}.m_5f93f3bb{--switch-height-xs: calc(1rem * var(--mantine-scale));--switch-height-sm: calc(1.25rem * var(--mantine-scale));--switch-height-md: calc(1.5rem * var(--mantine-scale));--switch-height-lg: calc(1.875rem * var(--mantine-scale));--switch-height-xl: calc(2.25rem * var(--mantine-scale));--switch-width-xs: calc(2rem * var(--mantine-scale));--switch-width-sm: calc(2.375rem * var(--mantine-scale));--switch-width-md: calc(2.875rem * var(--mantine-scale));--switch-width-lg: calc(3.5rem * var(--mantine-scale));--switch-width-xl: calc(4.5rem * var(--mantine-scale));--switch-thumb-size-xs: calc(.75rem * var(--mantine-scale));--switch-thumb-size-sm: calc(.875rem * var(--mantine-scale));--switch-thumb-size-md: calc(1.125rem * var(--mantine-scale));--switch-thumb-size-lg: calc(1.375rem * var(--mantine-scale));--switch-thumb-size-xl: calc(1.75rem * var(--mantine-scale));--switch-label-font-size-xs: calc(.3125rem * var(--mantine-scale));--switch-label-font-size-sm: calc(.375rem * var(--mantine-scale));--switch-label-font-size-md: calc(.4375rem * var(--mantine-scale));--switch-label-font-size-lg: calc(.5625rem * var(--mantine-scale));--switch-label-font-size-xl: calc(.6875rem * var(--mantine-scale));--switch-track-label-padding-xs: calc(.125rem * var(--mantine-scale));--switch-track-label-padding-sm: calc(.15625rem * var(--mantine-scale));--switch-track-label-padding-md: calc(.1875rem * var(--mantine-scale));--switch-track-label-padding-lg: calc(.1875rem * var(--mantine-scale));--switch-track-label-padding-xl: calc(.21875rem * var(--mantine-scale));--switch-height: var(--switch-height-sm);--switch-width: var(--switch-width-sm);--switch-thumb-size: var(--switch-thumb-size-sm);--switch-label-font-size: var(--switch-label-font-size-sm);--switch-track-label-padding: var(--switch-track-label-padding-sm);--switch-radius: calc(62.5rem * var(--mantine-scale));--switch-color: var(--mantine-primary-color-filled);--switch-disabled-color: var(--mantine-color-disabled);position:relative}.m_926b4011{height:0;width:0;opacity:0;margin:0;padding:0;position:absolute;overflow:hidden;white-space:nowrap}.m_9307d992{-webkit-tap-highlight-color:transparent;cursor:var(--switch-cursor, var(--mantine-cursor-type));overflow:hidden;position:relative;border-radius:var(--switch-radius);background-color:var(--switch-bg);height:var(--switch-height);min-width:var(--switch-width);margin:0;transition:background-color .15s ease,border-color .15s ease;appearance:none;display:flex;align-items:center;font-size:var(--switch-label-font-size);font-weight:600;order:var(--switch-order, 1);user-select:none;z-index:0;line-height:0;color:var(--switch-text-color)}.m_9307d992:where([data-without-labels]){width:var(--switch-width)}.m_926b4011:focus-visible+.m_9307d992{outline:2px solid var(--mantine-primary-color-filled);outline-offset:calc(.125rem * var(--mantine-scale))}.m_926b4011:checked+.m_9307d992{--switch-bg: var(--switch-color);--switch-text-color: var(--mantine-color-white)}.m_926b4011:disabled+.m_9307d992,.m_926b4011[data-disabled]+.m_9307d992{--switch-bg: var(--switch-disabled-color);--switch-cursor: not-allowed}[data-mantine-color-scheme=light] .m_9307d992{--switch-bg: var(--mantine-color-gray-3);--switch-text-color: var(--mantine-color-gray-6)}[data-mantine-color-scheme=dark] .m_9307d992{--switch-bg: var(--mantine-color-dark-5);--switch-text-color: var(--mantine-color-dark-1)}.m_9307d992[data-label-position=left]{--switch-order: 2}.m_93039a1d{position:absolute;z-index:1;border-radius:var(--switch-radius);display:flex;background-color:var(--switch-thumb-bg, var(--mantine-color-white));height:var(--switch-thumb-size);width:var(--switch-thumb-size);inset-inline-start:var(--switch-thumb-start, var(--switch-track-label-padding));transition:inset-inline-start .15s ease}.m_93039a1d:where([data-with-thumb-indicator]):before{content:"";width:40%;height:40%;background-color:var(--switch-bg);position:absolute;border-radius:var(--switch-radius);top:50%;left:50%;transform:translate(-50%,-50%)}.m_93039a1d>*{margin:auto}.m_926b4011:checked+*>.m_93039a1d{--switch-thumb-start: calc(100% - var(--switch-thumb-size) - var(--switch-track-label-padding))}.m_926b4011:disabled+*>.m_93039a1d,.m_926b4011[data-disabled]+*>.m_93039a1d{--switch-thumb-bg: var(--switch-thumb-bg-disabled)}[data-mantine-color-scheme=light] .m_93039a1d{--switch-thumb-bg-disabled: var(--mantine-color-gray-0)}[data-mantine-color-scheme=dark] .m_93039a1d{--switch-thumb-bg-disabled: var(--mantine-color-dark-3)}.m_8277e082{height:100%;display:grid;place-content:center;min-width:calc(var(--switch-width) - var(--switch-thumb-size));padding-inline:var(--switch-track-label-padding);margin-inline-start:calc(var(--switch-thumb-size) + var(--switch-track-label-padding));transition:margin .15s ease}.m_926b4011:checked+*>.m_8277e082{margin-inline-end:calc(var(--switch-thumb-size) + var(--switch-track-label-padding));margin-inline-start:0}.m_b23fa0ef{width:100%;border-collapse:collapse;border-spacing:0;line-height:var(--mantine-line-height);font-size:var(--mantine-font-size-sm);table-layout:var(--table-layout, auto);caption-side:var(--table-caption-side, bottom);border:none}:where([data-mantine-color-scheme=light]) .m_b23fa0ef{--table-hover-color: var(--mantine-color-gray-1);--table-striped-color: var(--mantine-color-gray-0);--table-border-color: var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_b23fa0ef{--table-hover-color: var(--mantine-color-dark-5);--table-striped-color: var(--mantine-color-dark-6);--table-border-color: var(--mantine-color-dark-4)}.m_b23fa0ef:where([data-with-table-border]){border:calc(.0625rem * var(--mantine-scale)) solid var(--table-border-color)}.m_b23fa0ef:where([data-tabular-nums]){font-variant-numeric:tabular-nums}.m_b23fa0ef:where([data-variant=vertical]) :where(.m_4e7aa4f3){font-weight:500}:where([data-mantine-color-scheme=light]) .m_b23fa0ef:where([data-variant=vertical]) :where(.m_4e7aa4f3){background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_b23fa0ef:where([data-variant=vertical]) :where(.m_4e7aa4f3){background-color:var(--mantine-color-dark-6)}.m_4e7aa4f3{text-align:left}:where([dir=rtl]) .m_4e7aa4f3{text-align:right}.m_4e7aa4fd{border-bottom:none;background-color:transparent}@media (hover: hover){.m_4e7aa4fd:hover:where([data-hover]){background-color:var(--tr-hover-bg)}}@media (hover: none){.m_4e7aa4fd:active:where([data-hover]){background-color:var(--tr-hover-bg)}}.m_4e7aa4fd:where([data-with-row-border]){border-bottom:calc(.0625rem * var(--mantine-scale)) solid var(--table-border-color)}.m_4e7aa4ef,.m_4e7aa4f3{padding:var(--table-vertical-spacing) var(--table-horizontal-spacing, var(--mantine-spacing-xs))}.m_4e7aa4ef:where([data-with-column-border]:not(:first-child)),.m_4e7aa4f3:where([data-with-column-border]:not(:first-child)){border-inline-start:calc(.0625rem * var(--mantine-scale)) solid var(--table-border-color)}.m_4e7aa4ef:where([data-with-column-border]:not(:last-child)),.m_4e7aa4f3:where([data-with-column-border]:not(:last-child)){border-inline-end:calc(.0625rem * var(--mantine-scale)) solid var(--table-border-color)}.m_b2404537>:where(tr):where([data-with-row-border]:last-of-type){border-bottom:none}.m_b2404537>:where(tr):where([data-striped=odd]:nth-of-type(odd)){background-color:var(--table-striped-color)}.m_b2404537>:where(tr):where([data-striped=even]:nth-of-type(2n)){background-color:var(--table-striped-color)}.m_b2404537>:where(tr)[data-hover]{--tr-hover-bg: var(--table-highlight-on-hover-color, var(--table-hover-color))}.m_b242d975{top:var(--table-sticky-header-offset, 0);z-index:3}.m_b242d975:where([data-sticky]){position:sticky}.m_b242d975:where([data-sticky]) :where(.m_4e7aa4f3){position:sticky;top:var(--table-sticky-header-offset, 0);background-color:var(--mantine-color-body)}:where([data-with-table-border]) .m_b242d975[data-sticky]{position:sticky;top:var(--table-sticky-header-offset, 0);z-index:4;border-top:none}:where([data-with-table-border]) .m_b242d975[data-sticky]:before{content:"";display:block;position:absolute;left:0;top:calc(-.03125rem * var(--mantine-scale));width:100%;height:calc(.0625rem * var(--mantine-scale));background-color:var(--table-border-color);z-index:5}:where([data-with-table-border]) .m_b242d975[data-sticky] .m_4e7aa4f3:first-child{border-top:none}.m_9e5a3ac7{color:var(--mantine-color-dimmed)}.m_9e5a3ac7:where([data-side=top]){margin-bottom:var(--mantine-spacing-xs)}.m_9e5a3ac7:where([data-side=bottom]){margin-top:var(--mantine-spacing-xs)}.m_a100c15{overflow-x:var(--table-overflow)}.m_62259741{min-width:var(--table-min-width);max-height:var(--table-max-height)}.m_bcaa9990{display:flex;flex-direction:column;--toc-depth-offset: .8em}.m_375a65ef{display:block;padding:.3em .8em;font-size:var(--toc-size, var(--mantine-font-size-md));border-radius:var(--toc-radius, var(--mantine-radius-default));padding-left:max(calc(var(--depth-offset) * var(--toc-depth-offset)),.8em)}@media (hover: hover){:where([data-mantine-color-scheme=light]) .m_375a65ef:where(:hover):where(:not([data-variant=none])){background-color:var(--mantine-color-gray-1)}:where([data-mantine-color-scheme=dark]) .m_375a65ef:where(:hover):where(:not([data-variant=none])){background-color:var(--mantine-color-dark-5)}}@media (hover: none){:where([data-mantine-color-scheme=light]) .m_375a65ef:where(:active):where(:not([data-variant=none])){background-color:var(--mantine-color-gray-1)}:where([data-mantine-color-scheme=dark]) .m_375a65ef:where(:active):where(:not([data-variant=none])){background-color:var(--mantine-color-dark-5)}}.m_375a65ef:where([data-active]){background-color:var(--toc-bg);color:var(--toc-color)}[data-mantine-color-scheme=light] .m_89d60db1{--tab-border-color: var(--mantine-color-gray-3)}[data-mantine-color-scheme=dark] .m_89d60db1{--tab-border-color: var(--mantine-color-dark-4)}.m_89d60db1{display:var(--tabs-display);flex-direction:var(--tabs-flex-direction);--tabs-list-direction: row;--tabs-panel-grow: unset;--tabs-display: block;--tabs-flex-direction: row;--tabs-list-border-width: 0;--tabs-list-border-size: 0 0 var(--tabs-list-border-width) 0;--tabs-list-gap: unset;--tabs-list-line-bottom: 0;--tabs-list-line-top: unset;--tabs-list-line-start: 0;--tabs-list-line-end: 0;--tab-radius: var(--tabs-radius) var(--tabs-radius) 0 0;--tab-border-width: 0 0 var(--tabs-list-border-width) 0}.m_89d60db1[data-inverted]{--tabs-list-line-bottom: unset;--tabs-list-line-top: 0;--tab-radius: 0 0 var(--tabs-radius) var(--tabs-radius);--tab-border-width: var(--tabs-list-border-width) 0 0 0}.m_89d60db1[data-inverted] .m_576c9d4:before{top:0;bottom:unset}.m_89d60db1[data-orientation=vertical]{--tabs-list-line-start: unset;--tabs-list-line-end: 0;--tabs-list-line-top: 0;--tabs-list-line-bottom: 0;--tabs-list-border-size: 0 var(--tabs-list-border-width) 0 0;--tab-border-width: 0 var(--tabs-list-border-width) 0 0;--tab-radius: var(--tabs-radius) 0 0 var(--tabs-radius);--tabs-list-direction: column;--tabs-panel-grow: 1;--tabs-display: flex}[dir=rtl] .m_89d60db1[data-orientation=vertical]{--tabs-list-border-size: 0 0 0 var(--tabs-list-border-width);--tab-border-width: 0 0 0 var(--tabs-list-border-width);--tab-radius: 0 var(--tabs-radius) var(--tabs-radius) 0}.m_89d60db1[data-orientation=vertical][data-placement=right]{--tabs-flex-direction: row-reverse;--tabs-list-line-start: 0;--tabs-list-line-end: unset;--tabs-list-border-size: 0 0 0 var(--tabs-list-border-width);--tab-border-width: 0 0 0 var(--tabs-list-border-width);--tab-radius: 0 var(--tabs-radius) var(--tabs-radius) 0}[dir=rtl] .m_89d60db1[data-orientation=vertical][data-placement=right]{--tabs-list-border-size: 0 var(--tabs-list-border-width) 0 0;--tab-border-width: 0 var(--tabs-list-border-width) 0 0;--tab-radius: var(--tabs-radius) 0 0 var(--tabs-radius)}.m_89d60db1[data-variant=default]{--tabs-list-border-width: calc(.125rem * var(--mantine-scale))}[data-mantine-color-scheme=light] .m_89d60db1[data-variant=default]{--tab-hover-color: var(--mantine-color-gray-0)}[data-mantine-color-scheme=dark] .m_89d60db1[data-variant=default]{--tab-hover-color: var(--mantine-color-dark-6)}.m_89d60db1[data-variant=outline]{--tabs-list-border-width: calc(.0625rem * var(--mantine-scale))}.m_89d60db1[data-variant=pills]{--tabs-list-gap: calc(var(--mantine-spacing-sm) / 2)}[data-mantine-color-scheme=light] .m_89d60db1[data-variant=pills]{--tab-hover-color: var(--mantine-color-gray-0)}[data-mantine-color-scheme=dark] .m_89d60db1[data-variant=pills]{--tab-hover-color: var(--mantine-color-dark-6)}.m_89d33d6d{display:flex;flex-wrap:wrap;justify-content:var(--tabs-justify, flex-start);flex-direction:var(--tabs-list-direction);gap:var(--tabs-list-gap)}.m_89d33d6d:where([data-grow]) .m_4ec4dce6{flex:1}.m_b0c91715{flex-grow:var(--tabs-panel-grow)}.m_4ec4dce6{position:relative;padding:var(--mantine-spacing-xs) var(--mantine-spacing-md);font-size:var(--mantine-font-size-sm);white-space:nowrap;z-index:0;display:flex;align-items:center;line-height:1;user-select:none}.m_4ec4dce6:where(:disabled,[data-disabled]){opacity:.5;cursor:not-allowed}.m_4ec4dce6:focus{z-index:1}.m_fc420b1f{display:flex;align-items:center;justify-content:center}.m_fc420b1f:where([data-position=left]:not(:only-child)){margin-inline-end:var(--mantine-spacing-xs)}.m_fc420b1f:where([data-position=right]:not(:only-child)){margin-inline-start:var(--mantine-spacing-xs)}.m_42bbd1ae{flex:1;text-align:center}.m_576c9d4{position:relative}.m_576c9d4:before{content:"";position:absolute;border:1px solid var(--tab-border-color);bottom:var(--tabs-list-line-bottom);inset-inline-start:var(--tabs-list-line-start);inset-inline-end:var(--tabs-list-line-end);top:var(--tabs-list-line-top)}.m_539e827b{border-radius:var(--tab-radius);border-width:var(--tab-border-width);border-style:solid;border-color:transparent;background-color:transparent}.m_539e827b:where([data-active]){border-color:var(--tabs-color)}@media (hover: hover){.m_539e827b:hover{background-color:var(--tab-hover-color)}.m_539e827b:hover:where(:not([data-active])){border-color:var(--tab-border-color)}}@media (hover: none){.m_539e827b:active{background-color:var(--tab-hover-color)}.m_539e827b:active:where(:not([data-active])){border-color:var(--tab-border-color)}}@media (hover: hover){.m_539e827b:disabled:hover,.m_539e827b[data-disabled]:hover{background-color:transparent}}@media (hover: none){.m_539e827b:disabled:active,.m_539e827b[data-disabled]:active{background-color:transparent}}.m_6772fbd5{position:relative}.m_6772fbd5:before{content:"";position:absolute;border-color:var(--tab-border-color);border-width:var(--tabs-list-border-size);border-style:solid;bottom:var(--tabs-list-line-bottom);inset-inline-start:var(--tabs-list-line-start);inset-inline-end:var(--tabs-list-line-end);top:var(--tabs-list-line-top)}.m_b59ab47c{border-top:calc(.0625rem * var(--mantine-scale)) solid transparent;border-bottom:calc(.0625rem * var(--mantine-scale)) solid transparent;border-right:calc(.0625rem * var(--mantine-scale)) solid transparent;border-left:calc(.0625rem * var(--mantine-scale)) solid transparent;border-top-color:var(--tab-border-top-color);border-bottom-color:var(--tab-border-bottom-color);border-radius:var(--tab-radius);position:relative;--tab-border-bottom-color: transparent;--tab-border-top-color: transparent;--tab-border-inline-end-color: transparent;--tab-border-inline-start-color: transparent}.m_b59ab47c:where([data-active]):before{content:"";position:absolute;background-color:var(--tab-border-color);bottom:var(--tab-before-bottom, calc(-.0625rem * var(--mantine-scale)));left:var(--tab-before-left, calc(-.0625rem * var(--mantine-scale)));right:var(--tab-before-right, auto);top:var(--tab-before-top, auto);width:calc(.0625rem * var(--mantine-scale));height:calc(.0625rem * var(--mantine-scale))}.m_b59ab47c:where([data-active]):after{content:"";position:absolute;background-color:var(--tab-border-color);bottom:var(--tab-after-bottom, calc(-.0625rem * var(--mantine-scale)));right:var(--tab-after-right, calc(-.0625rem * var(--mantine-scale)));left:var(--tab-after-left, auto);top:var(--tab-after-top, auto);width:calc(.0625rem * var(--mantine-scale));height:calc(.0625rem * var(--mantine-scale))}.m_b59ab47c:where([data-active]){border-top-color:var(--tab-border-top-color);border-bottom-color:var(--tab-border-bottom-color);border-inline-start-color:var(--tab-border-inline-start-color);border-inline-end-color:var(--tab-border-inline-end-color);--tab-border-top-color: var(--tab-border-color);--tab-border-inline-start-color: var(--tab-border-color);--tab-border-inline-end-color: var(--tab-border-color);--tab-border-bottom-color: var(--mantine-color-body)}.m_b59ab47c:where([data-active])[data-inverted]{--tab-border-bottom-color: var(--tab-border-color);--tab-border-top-color: var(--mantine-color-body);--tab-before-bottom: auto;--tab-before-top: calc(-.0625rem * var(--mantine-scale));--tab-after-bottom: auto;--tab-after-top: calc(-.0625rem * var(--mantine-scale))}.m_b59ab47c:where([data-active])[data-orientation=vertical][data-placement=left]{--tab-border-inline-end-color: var(--mantine-color-body);--tab-border-inline-start-color: var(--tab-border-color);--tab-border-bottom-color: var(--tab-border-color);--tab-before-right: calc(-.0625rem * var(--mantine-scale));--tab-before-left: auto;--tab-before-bottom: auto;--tab-before-top: calc(-.0625rem * var(--mantine-scale));--tab-after-left: auto;--tab-after-right: calc(-.0625rem * var(--mantine-scale))}[dir=rtl] .m_b59ab47c:where([data-active])[data-orientation=vertical][data-placement=left]{--tab-before-right: auto;--tab-before-left: calc(-.0625rem * var(--mantine-scale));--tab-after-left: calc(-.0625rem * var(--mantine-scale));--tab-after-right: auto}.m_b59ab47c:where([data-active])[data-orientation=vertical][data-placement=right]{--tab-border-inline-start-color: var(--mantine-color-body);--tab-border-inline-end-color: var(--tab-border-color);--tab-border-bottom-color: var(--tab-border-color);--tab-before-left: calc(-.0625rem * var(--mantine-scale));--tab-before-right: auto;--tab-before-bottom: auto;--tab-before-top: calc(-.0625rem * var(--mantine-scale));--tab-after-right: auto;--tab-after-left: calc(-.0625rem * var(--mantine-scale))}[dir=rtl] .m_b59ab47c:where([data-active])[data-orientation=vertical][data-placement=right]{--tab-before-left: auto;--tab-before-right: calc(-.0625rem * var(--mantine-scale));--tab-after-right: calc(-.0625rem * var(--mantine-scale));--tab-after-left: auto}.m_c3381914{border-radius:var(--tabs-radius);background-color:var(--tab-bg);color:var(--tab-color);--tab-bg: transparent;--tab-color: inherit}@media (hover: hover){.m_c3381914:not([data-disabled]):hover{--tab-bg: var(--tab-hover-color)}}@media (hover: none){.m_c3381914:not([data-disabled]):active{--tab-bg: var(--tab-hover-color)}}.m_c3381914[data-active][data-active]{--tab-bg: var(--tabs-color);--tab-color: var(--tabs-text-color, var(--mantine-color-white))}@media (hover: hover){.m_c3381914[data-active][data-active]:hover{--tab-bg: var(--tabs-color)}}@media (hover: none){.m_c3381914[data-active][data-active]:active{--tab-bg: var(--tabs-color)}}.m_7341320d{--ti-size-xs: calc(1.125rem * var(--mantine-scale));--ti-size-sm: calc(1.375rem * var(--mantine-scale));--ti-size-md: calc(1.75rem * var(--mantine-scale));--ti-size-lg: calc(2.125rem * var(--mantine-scale));--ti-size-xl: calc(2.75rem * var(--mantine-scale));--ti-size: var(--ti-size-md);line-height:1;display:inline-flex;align-items:center;justify-content:center;position:relative;user-select:none;width:var(--ti-size);height:var(--ti-size);min-width:var(--ti-size);min-height:var(--ti-size);border-radius:var(--ti-radius, var(--mantine-radius-default));background:var(--ti-bg, var(--mantine-primary-color-filled));color:var(--ti-color, var(--mantine-color-white));border:var(--ti-bd, 1px solid transparent)}.m_43657ece{--offset: calc(var(--tl-bullet-size) / 2 + var(--tl-line-width) / 2);--tl-bullet-size: calc(1.25rem * var(--mantine-scale));--tl-line-width: calc(.25rem * var(--mantine-scale));--tl-radius: calc(62.5rem * var(--mantine-scale));--tl-color: var(--mantine-primary-color-filled)}.m_43657ece:where([data-align=left]){padding-inline-start:var(--offset)}.m_43657ece:where([data-align=right]){padding-inline-end:var(--offset)}.m_2ebe8099{font-weight:500;line-height:1;margin-bottom:calc(var(--mantine-spacing-xs) / 2)}.m_436178ff{--item-border: var(--tl-line-width) var(--tli-border-style, solid) var(--item-border-color);position:relative;color:var(--mantine-color-text)}.m_436178ff:before{content:"";pointer-events:none;position:absolute;top:0;left:var(--timeline-line-left, 0);right:var(--timeline-line-right, 0);bottom:calc(var(--mantine-spacing-xl) * -1);border-inline-start:var(--item-border);display:var(--timeline-line-display, none)}.m_43657ece[data-align=left] .m_436178ff:before{--timeline-line-left: calc(var(--tl-line-width) * -1);--timeline-line-right: auto}[dir=rtl] .m_43657ece[data-align=left] .m_436178ff:before{--timeline-line-left: auto;--timeline-line-right: calc(var(--tl-line-width) * -1)}.m_43657ece[data-align=right] .m_436178ff:before{--timeline-line-left: auto;--timeline-line-right: calc(var(--tl-line-width) * -1)}[dir=rtl] .m_43657ece[data-align=right] .m_436178ff:before{--timeline-line-left: calc(var(--tl-line-width) * -1);--timeline-line-right: auto}.m_43657ece:where([data-align=left]) .m_436178ff{padding-inline-start:var(--offset);text-align:left}.m_43657ece:where([data-align=right]) .m_436178ff{padding-inline-end:var(--offset);text-align:right}:where([data-mantine-color-scheme=light]) .m_436178ff{--item-border-color: var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_436178ff{--item-border-color: var(--mantine-color-dark-4)}.m_436178ff:where([data-line-active]):before{border-color:var(--tli-color, var(--tl-color))}.m_436178ff:where(:not(:last-of-type)){--timeline-line-display: block}.m_436178ff:where(:not(:first-of-type)){margin-top:var(--mantine-spacing-xl)}.m_8affcee1{width:var(--tl-bullet-size);height:var(--tl-bullet-size);border-radius:var(--tli-radius, var(--tl-radius));border:var(--tl-line-width) solid;background-color:var(--mantine-color-body);position:absolute;top:0;display:flex;align-items:center;justify-content:center;color:var(--mantine-color-text)}:where([data-mantine-color-scheme=light]) .m_8affcee1{border-color:var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_8affcee1{border-color:var(--mantine-color-dark-4)}.m_43657ece:where([data-align=left]) .m_8affcee1{left:calc((var(--tl-bullet-size) / 2 + var(--tl-line-width) / 2) * -1);right:auto}:where([dir=rtl]) .m_43657ece:where([data-align=left]) .m_8affcee1{left:auto;right:calc((var(--tl-bullet-size) / 2 + var(--tl-line-width) / 2) * -1)}.m_43657ece:where([data-align=right]) .m_8affcee1{left:auto;right:calc((var(--tl-bullet-size) / 2 + var(--tl-line-width) / 2) * -1)}:where([dir=rtl]) .m_43657ece:where([data-align=right]) .m_8affcee1{left:calc((var(--tl-bullet-size) / 2 + var(--tl-line-width) / 2) * -1);right:auto}.m_8affcee1:where([data-with-child]){border-width:var(--tl-line-width)}:where([data-mantine-color-scheme=light]) .m_8affcee1:where([data-with-child]){background-color:var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_8affcee1:where([data-with-child]){background-color:var(--mantine-color-dark-4)}.m_8affcee1:where([data-active]){border-color:var(--tli-color, var(--tl-color));background-color:var(--mantine-color-white);color:var(--tl-icon-color, var(--mantine-color-white))}.m_8affcee1:where([data-active]):where([data-with-child]){background-color:var(--tli-color, var(--tl-color));color:var(--tl-icon-color, var(--mantine-color-white))}.m_43657ece:where([data-align=left]) .m_540e8f41{padding-inline-start:var(--offset);text-align:left}:where([dir=rtl]) .m_43657ece:where([data-align=left]) .m_540e8f41{text-align:right}.m_43657ece:where([data-align=right]) .m_540e8f41{padding-inline-end:var(--offset);text-align:right}:where([dir=rtl]) .m_43657ece:where([data-align=right]) .m_540e8f41{text-align:left}.m_8a5d1357{margin:0;font-weight:var(--title-fw);font-size:var(--title-fz);line-height:var(--title-lh);font-family:var(--mantine-font-family-headings);text-wrap:var(--title-text-wrap, var(--mantine-heading-text-wrap))}.m_8a5d1357:where([data-line-clamp]){overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:var(--title-line-clamp);-webkit-box-orient:vertical}.m_f698e191{--level-offset: var(--mantine-spacing-lg);margin:0;padding:0;user-select:none}.m_75f3ecf{margin:0;padding:0}.m_f6970eb1{cursor:pointer;list-style:none;margin:0;padding:0;outline:0}.m_f6970eb1:focus-visible>.m_dc283425{outline:2px solid var(--mantine-primary-color-filled);outline-offset:calc(.125rem * var(--mantine-scale))}.m_dc283425{padding-inline-start:var(--label-offset)}:where([data-mantine-color-scheme=light]) .m_dc283425:where([data-selected]){background-color:var(--mantine-color-gray-1)}:where([data-mantine-color-scheme=dark]) .m_dc283425:where([data-selected]){background-color:var(--mantine-color-dark-5)}.m_d08caa0 :first-child{margin-top:0}.m_d08caa0 :last-child{margin-bottom:0}.m_d08caa0 :where(h1,h2,h3,h4,h5,h6){margin-bottom:var(--mantine-spacing-xs);text-wrap:var(--mantine-heading-text-wrap);font-family:var(--mantine-font-family-headings)}.m_d08caa0 :where(h1){margin-top:calc(1.5 * var(--mantine-spacing-xl));font-size:var(--mantine-h1-font-size);line-height:var(--mantine-h1-line-height);font-weight:var(--mantine-h1-font-weight)}.m_d08caa0 :where(h2){margin-top:var(--mantine-spacing-xl);font-size:var(--mantine-h2-font-size);line-height:var(--mantine-h2-line-height);font-weight:var(--mantine-h2-font-weight)}.m_d08caa0 :where(h3){margin-top:calc(.8 * var(--mantine-spacing-xl));font-size:var(--mantine-h3-font-size);line-height:var(--mantine-h3-line-height);font-weight:var(--mantine-h3-font-weight)}.m_d08caa0 :where(h4){margin-top:calc(.8 * var(--mantine-spacing-xl));font-size:var(--mantine-h4-font-size);line-height:var(--mantine-h4-line-height);font-weight:var(--mantine-h4-font-weight)}.m_d08caa0 :where(h5){margin-top:calc(.5 * var(--mantine-spacing-xl));font-size:var(--mantine-h5-font-size);line-height:var(--mantine-h5-line-height);font-weight:var(--mantine-h5-font-weight)}.m_d08caa0 :where(h6){margin-top:calc(.5 * var(--mantine-spacing-xl));font-size:var(--mantine-h6-font-size);line-height:var(--mantine-h6-line-height);font-weight:var(--mantine-h6-font-weight)}.m_d08caa0 :where(img){max-width:100%;margin-bottom:var(--mantine-spacing-xs)}.m_d08caa0 :where(p){margin-top:0;margin-bottom:var(--mantine-spacing-lg)}:where([data-mantine-color-scheme=light]) .m_d08caa0 :where(mark){background-color:var(--mantine-color-yellow-2);color:inherit}:where([data-mantine-color-scheme=dark]) .m_d08caa0 :where(mark){background-color:var(--mantine-color-yellow-5);color:var(--mantine-color-black)}.m_d08caa0 :where(a){color:var(--mantine-color-anchor);text-decoration:none}@media (hover: hover){.m_d08caa0 :where(a):hover{text-decoration:underline}}@media (hover: none){.m_d08caa0 :where(a):active{text-decoration:underline}}.m_d08caa0 :where(hr){margin-top:var(--mantine-spacing-md);margin-bottom:var(--mantine-spacing-md);border:0;border-top:calc(.0625rem * var(--mantine-scale)) solid}:where([data-mantine-color-scheme=light]) .m_d08caa0 :where(hr){border-color:var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_d08caa0 :where(hr){border-color:var(--mantine-color-dark-3)}.m_d08caa0 :where(pre){padding:var(--mantine-spacing-xs);line-height:var(--mantine-line-height);margin:0;margin-top:var(--mantine-spacing-md);margin-bottom:var(--mantine-spacing-md);overflow-x:auto;font-family:var(--mantine-font-family-monospace);font-size:var(--mantine-font-size-xs);border-radius:var(--mantine-radius-sm)}:where([data-mantine-color-scheme=light]) .m_d08caa0 :where(pre){background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_d08caa0 :where(pre){background-color:var(--mantine-color-dark-8)}.m_d08caa0 :where(pre) :where(code){background-color:transparent;padding:0;border-radius:0;color:inherit;border:0}.m_d08caa0 :where(kbd){--kbd-fz: calc(.75rem * var(--mantine-scale));--kbd-padding: calc(.1875rem * var(--mantine-scale)) calc(.3125rem * var(--mantine-scale));font-family:var(--mantine-font-family-monospace);line-height:var(--mantine-line-height);font-weight:700;padding:var(--kbd-padding);font-size:var(--kbd-fz);border-radius:var(--mantine-radius-sm);border:calc(.0625rem * var(--mantine-scale)) solid;border-bottom-width:calc(.1875rem * var(--mantine-scale))}:where([data-mantine-color-scheme=light]) .m_d08caa0 :where(kbd){border-color:var(--mantine-color-gray-3);color:var(--mantine-color-gray-7);background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_d08caa0 :where(kbd){border-color:var(--mantine-color-dark-3);color:var(--mantine-color-dark-0);background-color:var(--mantine-color-dark-5)}.m_d08caa0 :where(code){line-height:var(--mantine-line-height);padding:calc(.0625rem * var(--mantine-scale)) calc(.3125rem * var(--mantine-scale));border-radius:var(--mantine-radius-sm);font-family:var(--mantine-font-family-monospace);font-size:var(--mantine-font-size-xs)}:where([data-mantine-color-scheme=light]) .m_d08caa0 :where(code){background-color:var(--mantine-color-gray-0);color:var(--mantine-color-black)}:where([data-mantine-color-scheme=dark]) .m_d08caa0 :where(code){background-color:var(--mantine-color-dark-5);color:var(--mantine-color-white)}.m_d08caa0 :where(ul,ol):not([data-type=taskList]){margin-bottom:var(--mantine-spacing-md);padding-inline-start:var(--mantine-spacing-xl);list-style-position:outside}.m_d08caa0 :where(table){width:100%;border-collapse:collapse;caption-side:bottom;margin-bottom:var(--mantine-spacing-md)}:where([data-mantine-color-scheme=light]) .m_d08caa0 :where(table){--table-border-color: var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .m_d08caa0 :where(table){--table-border-color: var(--mantine-color-dark-4)}.m_d08caa0 :where(table) :where(caption){margin-top:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-sm);color:var(--mantine-color-dimmed)}.m_d08caa0 :where(table) :where(th){text-align:left;font-weight:700;font-size:var(--mantine-font-size-sm);padding:var(--mantine-spacing-xs) var(--mantine-spacing-sm)}.m_d08caa0 :where(table) :where(thead th){border-bottom:calc(.0625rem * var(--mantine-scale)) solid;border-color:var(--table-border-color)}.m_d08caa0 :where(table) :where(tfoot th){border-top:calc(.0625rem * var(--mantine-scale)) solid;border-color:var(--table-border-color)}.m_d08caa0 :where(table) :where(td){padding:var(--mantine-spacing-xs) var(--mantine-spacing-sm);border-bottom:calc(.0625rem * var(--mantine-scale)) solid;border-color:var(--table-border-color);font-size:var(--mantine-font-size-sm)}.m_d08caa0 :where(table) :where(tr:last-of-type td){border-bottom:0}.m_d08caa0 :where(blockquote){font-size:var(--mantine-font-size-lg);line-height:var(--mantine-line-height);margin:var(--mantine-spacing-md) 0;border-radius:var(--mantine-radius-sm);padding:var(--mantine-spacing-md) var(--mantine-spacing-lg)}:where([data-mantine-color-scheme=light]) .m_d08caa0 :where(blockquote){background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) .m_d08caa0 :where(blockquote){background-color:var(--mantine-color-dark-8)}}@layer xyflow{.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}}@layer base{:root{--made-with-panda: "🐼"}*,:before,:after,::backdrop{--blur: ;--brightness: ;--contrast: ;--grayscale: ;--hue-rotate: ;--invert: ;--saturate: ;--sepia: ;--drop-shadow: ;--backdrop-blur: ;--backdrop-brightness: ;--backdrop-contrast: ;--backdrop-grayscale: ;--backdrop-hue-rotate: ;--backdrop-invert: ;--backdrop-opacity: ;--backdrop-saturate: ;--backdrop-sepia: ;--gradient-from-position: ;--gradient-to-position: ;--gradient-via-position: ;--scroll-snap-strictness: proximity;--border-spacing-x: 0;--border-spacing-y: 0;--translate-x: 0;--translate-y: 0;--rotate: 0;--rotate-x: 0;--rotate-y: 0;--skew-x: 0;--skew-y: 0;--scale-x: 1;--scale-y: 1}:where(:root,:host){--likec4-app-font-default: "IBM Plex Sans",'ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"'}:where([data-likec4-text-size=xs]){--likec4-text-size: var(--font-sizes-likec4-xs)}:where([data-likec4-text-size=sm]){--likec4-text-size: var(--font-sizes-likec4-sm)}:where([data-likec4-text-size=md]){--likec4-text-size: var(--font-sizes-likec4-md)}:where([data-likec4-text-size=lg]){--likec4-text-size: var(--font-sizes-likec4-lg)}:where([data-likec4-text-size=xl]){--likec4-text-size: var(--font-sizes-likec4-xl)}:where([data-likec4-spacing=xs]){--likec4-spacing: var(--spacing-likec4-xs)}:where([data-likec4-spacing=sm]){--likec4-spacing: var(--spacing-likec4-sm)}:where([data-likec4-spacing=md]){--likec4-spacing: var(--spacing-likec4-md)}:where([data-likec4-spacing=lg]){--likec4-spacing: var(--spacing-likec4-lg)}:where([data-likec4-spacing=xl]){--likec4-spacing: var(--spacing-likec4-xl)}.likec4-shadow-root{--mantine-font-family: var(--likec4-app-font, var(--likec4-app-font-default));--mantine-font-family-headings: var(--likec4-app-font, var(--likec4-app-font-default));display:contents}.likec4-shadow-root dialog{color:var(--mantine-color-text)}.likec4-edge-label-container{position:absolute;top:var(--spacing-0);left:var(--spacing-0);width:auto;height:auto}.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .likec4-edge-label-container{display:none}:where([data-likec4-zoom-small=true]) .likec4-edge-label-container{display:none}.likec4-root{padding:var(--spacing-0);margin:var(--spacing-0);border:0px solid transparent;overflow:hidden;position:relative;container-name:likec4-root;container-type:size;width:100%;height:100%}.likec4-root .react-flow{--xy-background-color: var(--colors-likec4-background);--xy-background-pattern-color: var(--colors-likec4-background-pattern, var(--colors-likec4-background));contain:paint}.likec4-root .react-flow:is(.bg-transparent){--xy-background-color: transparent !important;background:var(--colors-transparent)!important}.likec4-root .react-flow:is(.not-initialized){opacity:0}.likec4-root .react-flow .react-flow__pane{-webkit-user-select:none;user-select:none}.likec4-root .react-flow :where(.react-flow__nodes,.react-flow__edges,.react-flow__edgelabel-renderer){display:contents}.likec4-root .react-flow .react-flow__node.draggable:has(.likec4-compound-node){cursor:default}.likec4-root :where(.react-flow__edge,.likec4-edge-container,.likec4-edge-label-container){--xy-edge-stroke-width: 3;--xy-edge-stroke: var(--likec4-palette-relation-stroke);--xy-edge-stroke-selected: var(--likec4-palette-relation-stroke-selected);--xy-edge-label-color: var(--likec4-palette-relation-label);--xy-edge-label-background-color: var(--likec4-palette-relation-label-bg)}[data-mantine-color-scheme=dark] .likec4-root :where(.react-flow__edge,.likec4-edge-container,.likec4-edge-label-container){--xy-edge-label-background-color: color-mix(in srgb, var(--likec4-palette-relation-label-bg) 50%, transparent)}[data-mantine-color-scheme=light] .likec4-root :where(.react-flow__edge,.likec4-edge-container,.likec4-edge-label-container){--xy-edge-label-color: color-mix(in srgb, var(--likec4-palette-relation-label), rgba(255 255 255 / .85) 40%);--xy-edge-label-background-color: color-mix(in srgb, var(--likec4-palette-relation-label-bg) 60%, transparent)}.likec4-root :where(.react-flow__edge,.likec4-edge-container,.likec4-edge-label-container):is([data-likec4-hovered=true],[data-edge-active=true]){--xy-edge-stroke-width: 4;--xy-edge-stroke: var(--likec4-palette-relation-stroke-selected)}.likec4-root :where(.react-flow__node,.react-flow__edge):has([data-likec4-dimmed]){opacity:.25}.likec4-root .likec4-edge-label-container:is([data-likec4-dimmed]){opacity:.25}.likec4-root:is([data-likec4-reduced-graphics]) .hide-on-reduced-graphics{display:none}.likec4-root :where(.relationships-browser,.likec4-relationship-details) .react-flow__attribution{display:none}.likec4-root .mantine-ActionIcon-icon .tabler-icon{width:75%;height:75%}.likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__node,.react-flow__edge):has([data-likec4-dimmed]){filter:grayscale(85%)}.likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__node,.react-flow__edge):has([data-likec4-dimmed=true]){--transition-prop: opacity, filter;transition-property:opacity,filter;--transition-easing: cubic-bezier(.5, 0, .2, 1);transition-timing-function:cubic-bezier(.5,0,.2,1);--transition-duration: .4s;transition-duration:.4s}.likec4-root:not([data-likec4-reduced-graphics]) .likec4-edge-label-container:is([data-likec4-dimmed]){filter:grayscale(85%)}.likec4-root:not([data-likec4-reduced-graphics]) .likec4-edge-label-container:is([data-likec4-dimmed=true]){--transition-prop: opacity, filter;transition-property:opacity,filter;--transition-easing: cubic-bezier(.5, 0, .2, 1);transition-timing-function:cubic-bezier(.5,0,.2,1);--transition-duration: .4s;transition-duration:.4s}[data-mantine-color-scheme=dark] .likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__edges,.react-flow__edgelabel-renderer)>:where(svg,.likec4-edge-label-container){mix-blend-mode:plus-lighter}[data-mantine-color-scheme=light] .likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__edges,.react-flow__edgelabel-renderer)>:where(svg,.likec4-edge-label-container){mix-blend-mode:screen}[data-mantine-color-scheme=light] .likec4-root:not([data-likec4-reduced-graphics]):has(.react-flow__node-seq-parallel) :where(.react-flow__edges>svg){mix-blend-mode:color-burn}[data-mantine-color-scheme=dark] .likec4-root:not([data-likec4-reduced-graphics]) .react-flow__node-seq-parallel{mix-blend-mode:luminosity}[data-mantine-color-scheme=light] .likec4-root:not([data-likec4-reduced-graphics]) .react-flow__node-seq-parallel{mix-blend-mode:color-burn}.likec4-static-view .react-flow .react-flow__attribution{display:none}:where(:root,:host){--likec4-text-size: 1.2rem;--likec4-palette-fill: #3b82f6;--likec4-palette-stroke: #2563eb;--likec4-palette-hiContrast: #eff6ff;--likec4-palette-loContrast: #bfdbfe;--likec4-palette-relation-stroke: #6E6E6E;--likec4-palette-relation-label: #C6C6C6;--likec4-palette-relation-label-bg: #18191b;--mantine-scale: 1;--likec4-palette-outline: var(--likec4-palette-loContrast);--likec4-spacing: ;--text-fz: ;--likec4-icon-size: }}@layer tokens{:where(:root,:host){--spacing-0: 0px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-7: 28px;--spacing-8: 32px;--spacing-9: 36px;--spacing-10: 40px;--spacing-likec4-xs: 8px;--spacing-likec4-sm: 10px;--spacing-likec4-md: 16px;--spacing-likec4-lg: 24px;--spacing-likec4-xl: 32px;--spacing-0\\.5: 2px;--spacing-1\\.5: 6px;--spacing-2\\.5: 10px;--spacing-3\\.5: 14px;--spacing-4\\.5: 18px;--spacing-xxs: calc(.5rem * var(--mantine-scale));--spacing-xs: calc(.625rem * var(--mantine-scale));--spacing-sm: calc(.75rem * var(--mantine-scale));--spacing-md: calc(1rem * var(--mantine-scale));--spacing-lg: calc(1.25rem * var(--mantine-scale));--spacing-xl: calc(2rem * var(--mantine-scale));--font-sizes-xxs: .625rem;--font-sizes-xs: calc(.75rem * var(--mantine-scale));--font-sizes-sm: calc(.875rem * var(--mantine-scale));--font-sizes-md: calc(1rem * var(--mantine-scale));--font-sizes-lg: calc(1.125rem * var(--mantine-scale));--font-sizes-xl: calc(1.25rem * var(--mantine-scale));--font-sizes-likec4-xs: .833rem;--font-sizes-likec4-sm: 1rem;--font-sizes-likec4-md: 1.2rem;--font-sizes-likec4-lg: 1.44rem;--font-sizes-likec4-xl: 1.73rem;--line-heights-1: 1;--line-heights-xs: 1.4;--line-heights-sm: 1.45;--line-heights-md: 1.55;--line-heights-lg: 1.6;--line-heights-xl: 1.65;--colors-mantine-colors-primary: var(--mantine-primary-color-6);--colors-mantine-colors-primary-filled: var(--mantine-primary-color-filled);--colors-mantine-colors-primary-filled-hover: var(--mantine-primary-color-filled-hover);--colors-mantine-colors-primary-light: var(--mantine-primary-color-light);--colors-mantine-colors-primary-light-hover: var(--mantine-primary-color-light-hover);--colors-mantine-colors-primary-light-color: var(--mantine-primary-color-light-color);--colors-mantine-colors-primary-outline: var(--mantine-primary-color-outline);--colors-mantine-colors-primary-outline-hover: var(--mantine-primary-color-outline-hover);--colors-mantine-colors-primary\\[0\\]: var(--mantine-primary-color-0);--colors-mantine-colors-primary\\[1\\]: var(--mantine-primary-color-1);--colors-mantine-colors-primary\\[2\\]: var(--mantine-primary-color-2);--colors-mantine-colors-primary\\[3\\]: var(--mantine-primary-color-3);--colors-mantine-colors-primary\\[4\\]: var(--mantine-primary-color-4);--colors-mantine-colors-primary\\[5\\]: var(--mantine-primary-color-5);--colors-mantine-colors-primary\\[6\\]: var(--mantine-primary-color-6);--colors-mantine-colors-primary\\[7\\]: var(--mantine-primary-color-7);--colors-mantine-colors-primary\\[8\\]: var(--mantine-primary-color-8);--colors-mantine-colors-primary\\[9\\]: var(--mantine-primary-color-9);--colors-mantine-colors-white: var(--mantine-color-white);--colors-mantine-colors-text: var(--mantine-color-text);--colors-mantine-colors-body: var(--mantine-color-body);--colors-mantine-colors-dimmed: var(--mantine-color-dimmed);--colors-mantine-colors-default-border: var(--mantine-color-default-border);--colors-mantine-colors-default-color: var(--mantine-color-default-color);--colors-mantine-colors-default-hover: var(--mantine-color-default-hover);--colors-mantine-colors-default: var(--mantine-color-default);--colors-mantine-colors-error: var(--mantine-color-error);--colors-mantine-colors-placeholder: var(--mantine-color-placeholder);--colors-mantine-colors-gray: var(--mantine-color-gray-6);--colors-mantine-colors-gray-filled: var(--mantine-color-gray-filled);--colors-mantine-colors-gray-filled-hover: var(--mantine-color-gray-filled-hover);--colors-mantine-colors-gray-light: var(--mantine-color-gray-light);--colors-mantine-colors-gray-light-hover: var(--mantine-color-gray-light-hover);--colors-mantine-colors-gray-light-color: var(--mantine-color-gray-light-color);--colors-mantine-colors-gray-outline: var(--mantine-color-gray-outline);--colors-mantine-colors-gray-outline-hover: var(--mantine-color-gray-outline-hover);--colors-mantine-colors-gray\\[0\\]: var(--mantine-color-gray-0);--colors-mantine-colors-gray\\[1\\]: var(--mantine-color-gray-1);--colors-mantine-colors-gray\\[2\\]: var(--mantine-color-gray-2);--colors-mantine-colors-gray\\[3\\]: var(--mantine-color-gray-3);--colors-mantine-colors-gray\\[4\\]: var(--mantine-color-gray-4);--colors-mantine-colors-gray\\[5\\]: var(--mantine-color-gray-5);--colors-mantine-colors-gray\\[6\\]: var(--mantine-color-gray-6);--colors-mantine-colors-gray\\[7\\]: var(--mantine-color-gray-7);--colors-mantine-colors-gray\\[8\\]: var(--mantine-color-gray-8);--colors-mantine-colors-gray\\[9\\]: var(--mantine-color-gray-9);--colors-mantine-colors-dark: var(--mantine-color-dark-6);--colors-mantine-colors-dark-filled: var(--mantine-color-dark-filled);--colors-mantine-colors-dark-filled-hover: var(--mantine-color-dark-filled-hover);--colors-mantine-colors-dark-light: var(--mantine-color-dark-light);--colors-mantine-colors-dark-light-hover: var(--mantine-color-dark-light-hover);--colors-mantine-colors-dark-light-color: var(--mantine-color-dark-light-color);--colors-mantine-colors-dark-outline: var(--mantine-color-dark-outline);--colors-mantine-colors-dark-outline-hover: var(--mantine-color-dark-outline-hover);--colors-mantine-colors-dark\\[0\\]: var(--mantine-color-dark-0);--colors-mantine-colors-dark\\[1\\]: var(--mantine-color-dark-1);--colors-mantine-colors-dark\\[2\\]: var(--mantine-color-dark-2);--colors-mantine-colors-dark\\[3\\]: var(--mantine-color-dark-3);--colors-mantine-colors-dark\\[4\\]: var(--mantine-color-dark-4);--colors-mantine-colors-dark\\[5\\]: var(--mantine-color-dark-5);--colors-mantine-colors-dark\\[6\\]: var(--mantine-color-dark-6);--colors-mantine-colors-dark\\[7\\]: var(--mantine-color-dark-7);--colors-mantine-colors-dark\\[8\\]: var(--mantine-color-dark-8);--colors-mantine-colors-dark\\[9\\]: var(--mantine-color-dark-9);--colors-mantine-colors-orange: var(--mantine-color-orange-6);--colors-mantine-colors-orange-filled: var(--mantine-color-orange-filled);--colors-mantine-colors-orange-filled-hover: var(--mantine-color-orange-filled-hover);--colors-mantine-colors-orange-light: var(--mantine-color-orange-light);--colors-mantine-colors-orange-light-hover: var(--mantine-color-orange-light-hover);--colors-mantine-colors-orange-light-color: var(--mantine-color-orange-light-color);--colors-mantine-colors-orange-outline: var(--mantine-color-orange-outline);--colors-mantine-colors-orange-outline-hover: var(--mantine-color-orange-outline-hover);--colors-mantine-colors-orange\\[0\\]: var(--mantine-color-orange-0);--colors-mantine-colors-orange\\[1\\]: var(--mantine-color-orange-1);--colors-mantine-colors-orange\\[2\\]: var(--mantine-color-orange-2);--colors-mantine-colors-orange\\[3\\]: var(--mantine-color-orange-3);--colors-mantine-colors-orange\\[4\\]: var(--mantine-color-orange-4);--colors-mantine-colors-orange\\[5\\]: var(--mantine-color-orange-5);--colors-mantine-colors-orange\\[6\\]: var(--mantine-color-orange-6);--colors-mantine-colors-orange\\[7\\]: var(--mantine-color-orange-7);--colors-mantine-colors-orange\\[8\\]: var(--mantine-color-orange-8);--colors-mantine-colors-orange\\[9\\]: var(--mantine-color-orange-9);--colors-mantine-colors-teal: var(--mantine-color-teal-6);--colors-mantine-colors-teal-filled: var(--mantine-color-teal-filled);--colors-mantine-colors-teal-filled-hover: var(--mantine-color-teal-filled-hover);--colors-mantine-colors-teal-light: var(--mantine-color-teal-light);--colors-mantine-colors-teal-light-hover: var(--mantine-color-teal-light-hover);--colors-mantine-colors-teal-light-color: var(--mantine-color-teal-light-color);--colors-mantine-colors-teal-outline: var(--mantine-color-teal-outline);--colors-mantine-colors-teal-outline-hover: var(--mantine-color-teal-outline-hover);--colors-mantine-colors-teal\\[0\\]: var(--mantine-color-teal-0);--colors-mantine-colors-teal\\[1\\]: var(--mantine-color-teal-1);--colors-mantine-colors-teal\\[2\\]: var(--mantine-color-teal-2);--colors-mantine-colors-teal\\[3\\]: var(--mantine-color-teal-3);--colors-mantine-colors-teal\\[4\\]: var(--mantine-color-teal-4);--colors-mantine-colors-teal\\[5\\]: var(--mantine-color-teal-5);--colors-mantine-colors-teal\\[6\\]: var(--mantine-color-teal-6);--colors-mantine-colors-teal\\[7\\]: var(--mantine-color-teal-7);--colors-mantine-colors-teal\\[8\\]: var(--mantine-color-teal-8);--colors-mantine-colors-teal\\[9\\]: var(--mantine-color-teal-9);--colors-mantine-colors-red: var(--mantine-color-red-6);--colors-mantine-colors-red-filled: var(--mantine-color-red-filled);--colors-mantine-colors-red-filled-hover: var(--mantine-color-red-filled-hover);--colors-mantine-colors-red-light: var(--mantine-color-red-light);--colors-mantine-colors-red-light-hover: var(--mantine-color-red-light-hover);--colors-mantine-colors-red-light-color: var(--mantine-color-red-light-color);--colors-mantine-colors-red-outline: var(--mantine-color-red-outline);--colors-mantine-colors-red-outline-hover: var(--mantine-color-red-outline-hover);--colors-mantine-colors-red\\[0\\]: var(--mantine-color-red-0);--colors-mantine-colors-red\\[1\\]: var(--mantine-color-red-1);--colors-mantine-colors-red\\[2\\]: var(--mantine-color-red-2);--colors-mantine-colors-red\\[3\\]: var(--mantine-color-red-3);--colors-mantine-colors-red\\[4\\]: var(--mantine-color-red-4);--colors-mantine-colors-red\\[5\\]: var(--mantine-color-red-5);--colors-mantine-colors-red\\[6\\]: var(--mantine-color-red-6);--colors-mantine-colors-red\\[7\\]: var(--mantine-color-red-7);--colors-mantine-colors-red\\[8\\]: var(--mantine-color-red-8);--colors-mantine-colors-red\\[9\\]: var(--mantine-color-red-9);--colors-mantine-colors-green: var(--mantine-color-green-6);--colors-mantine-colors-green-filled: var(--mantine-color-green-filled);--colors-mantine-colors-green-filled-hover: var(--mantine-color-green-filled-hover);--colors-mantine-colors-green-light: var(--mantine-color-green-light);--colors-mantine-colors-green-light-hover: var(--mantine-color-green-light-hover);--colors-mantine-colors-green-light-color: var(--mantine-color-green-light-color);--colors-mantine-colors-green-outline: var(--mantine-color-green-outline);--colors-mantine-colors-green-outline-hover: var(--mantine-color-green-outline-hover);--colors-mantine-colors-green\\[0\\]: var(--mantine-color-green-0);--colors-mantine-colors-green\\[1\\]: var(--mantine-color-green-1);--colors-mantine-colors-green\\[2\\]: var(--mantine-color-green-2);--colors-mantine-colors-green\\[3\\]: var(--mantine-color-green-3);--colors-mantine-colors-green\\[4\\]: var(--mantine-color-green-4);--colors-mantine-colors-green\\[5\\]: var(--mantine-color-green-5);--colors-mantine-colors-green\\[6\\]: var(--mantine-color-green-6);--colors-mantine-colors-green\\[7\\]: var(--mantine-color-green-7);--colors-mantine-colors-green\\[8\\]: var(--mantine-color-green-8);--colors-mantine-colors-green\\[9\\]: var(--mantine-color-green-9);--colors-mantine-colors-yellow: var(--mantine-color-yellow-6);--colors-mantine-colors-yellow-filled: var(--mantine-color-yellow-filled);--colors-mantine-colors-yellow-filled-hover: var(--mantine-color-yellow-filled-hover);--colors-mantine-colors-yellow-light: var(--mantine-color-yellow-light);--colors-mantine-colors-yellow-light-hover: var(--mantine-color-yellow-light-hover);--colors-mantine-colors-yellow-light-color: var(--mantine-color-yellow-light-color);--colors-mantine-colors-yellow-outline: var(--mantine-color-yellow-outline);--colors-mantine-colors-yellow-outline-hover: var(--mantine-color-yellow-outline-hover);--colors-mantine-colors-yellow\\[0\\]: var(--mantine-color-yellow-0);--colors-mantine-colors-yellow\\[1\\]: var(--mantine-color-yellow-1);--colors-mantine-colors-yellow\\[2\\]: var(--mantine-color-yellow-2);--colors-mantine-colors-yellow\\[3\\]: var(--mantine-color-yellow-3);--colors-mantine-colors-yellow\\[4\\]: var(--mantine-color-yellow-4);--colors-mantine-colors-yellow\\[5\\]: var(--mantine-color-yellow-5);--colors-mantine-colors-yellow\\[6\\]: var(--mantine-color-yellow-6);--colors-mantine-colors-yellow\\[7\\]: var(--mantine-color-yellow-7);--colors-mantine-colors-yellow\\[8\\]: var(--mantine-color-yellow-8);--colors-mantine-colors-yellow\\[9\\]: var(--mantine-color-yellow-9);--colors-transparent: transparent;--colors-none: none;--borders-none: none;--borders-transparent: 0px solid transparent;--borders-default: 1px solid var(--colors-mantine-colors-default-border);--radii-0: 0px;--radii-xs: .125rem;--radii-sm: .25rem;--radii-md: .5rem;--radii-lg: 1rem;--radii-xl: 2rem;--fonts-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--fonts-body: var(--likec4-app-font, var(--likec4-app-font-default));--fonts-likec4: var(--likec4-app-font, var(--likec4-app-font-default));--fonts-likec4-element: var(--likec4-element-font, var(--fonts-likec4));--fonts-likec4-compound: var(--likec4-compound-font, var(--fonts-likec4));--fonts-likec4-relation: var(--likec4-relation-font, var(--fonts-likec4));--easings-default: cubic-bezier(.4, 0, .2, 1);--easings-in: cubic-bezier(.4, 0, 1, 1);--easings-out: cubic-bezier(0, 0, .4, 1);--easings-in-out: cubic-bezier(.5, 0, .2, 1);--durations-fastest: 50ms;--durations-faster: .1s;--durations-fast: .13s;--durations-normal: .17s;--durations-slow: .3s;--durations-slower: .4s;--durations-slowest: .5s;--shadows-none: none;--shadows-xs: 0 1px 3px rgb(0 0 0/5%), 0 1px 2px rgb(0 0 0/10%);--shadows-sm: 0 1px 3px rgb(0 0 0/5%), 0 10px 15px -5px rgb(0 0 0/5%), 0 7px 7px -5px rgb(0 0 0/4%);--shadows-md: 0 1px 3px rgb(0 0 0/5%), 0 20px 25px -5px rgb(0 0 0/5%), 0 10px 10px -5px rgb(0 0 0/4%);--shadows-lg: 0 1px 3px rgb(0 0 0/5%), 0 28px 23px -7px rgb(0 0 0/5%), 0 12px 12px -7px rgb(0 0 0/4%);--shadows-xl: 0 1px 3px rgb(0 0 0/5%), 0 36px 28px -7px rgb(0 0 0/5%), 0 17px 17px -7px rgb(0 0 0/4%);--breakpoints-xs: 36em;--breakpoints-sm: 48em;--breakpoints-md: 62em;--breakpoints-lg: 75em;--breakpoints-xl: 88em;--sizes-breakpoint-xs: 36em;--sizes-breakpoint-sm: 48em;--sizes-breakpoint-md: 62em;--sizes-breakpoint-lg: 75em;--sizes-breakpoint-xl: 88em;--colors-amber-1: var(--colors-amber-light-1);--colors-amber-2: var(--colors-amber-light-2);--colors-amber-3: var(--colors-amber-light-3);--colors-amber-4: var(--colors-amber-light-4);--colors-amber-5: var(--colors-amber-light-5);--colors-amber-6: var(--colors-amber-light-6);--colors-amber-7: var(--colors-amber-light-7);--colors-amber-8: var(--colors-amber-light-8);--colors-amber-9: var(--colors-amber-light-9);--colors-amber-10: var(--colors-amber-light-10);--colors-amber-11: var(--colors-amber-light-11);--colors-amber-12: var(--colors-amber-light-12);--colors-amber-light-1: #fefdfb;--colors-amber-light-2: #fefbe9;--colors-amber-light-3: #fff7c2;--colors-amber-light-4: #ffee9c;--colors-amber-light-5: #fbe577;--colors-amber-light-6: #f3d673;--colors-amber-light-7: #e9c162;--colors-amber-light-8: #e2a336;--colors-amber-light-9: #ffc53d;--colors-amber-light-10: #ffba18;--colors-amber-light-11: #ab6400;--colors-amber-light-12: #4f3422;--colors-amber-light-a-1: #c0800004;--colors-amber-light-a-2: #f4d10016;--colors-amber-light-a-3: #ffde003d;--colors-amber-light-a-4: #ffd40063;--colors-amber-light-a-5: #f8cf0088;--colors-amber-light-a-6: #eab5008c;--colors-amber-light-a-7: #dc9b009d;--colors-amber-light-a-8: #da8a00c9;--colors-amber-light-a-9: #ffb300c2;--colors-amber-light-a-10: #ffb300e7;--colors-amber-light-a-11: #ab6400;--colors-amber-light-a-12: #341500dd;--colors-amber-light-p3-1: color(display-p3 .995 .992 .985);--colors-amber-light-p3-2: color(display-p3 .994 .986 .921);--colors-amber-light-p3-3: color(display-p3 .994 .969 .782);--colors-amber-light-p3-4: color(display-p3 .989 .937 .65);--colors-amber-light-p3-5: color(display-p3 .97 .902 .527);--colors-amber-light-p3-6: color(display-p3 .936 .844 .506);--colors-amber-light-p3-7: color(display-p3 .89 .762 .443);--colors-amber-light-p3-8: color(display-p3 .85 .65 .3);--colors-amber-light-p3-9: color(display-p3 1 .77 .26);--colors-amber-light-p3-10: color(display-p3 .959 .741 .274);--colors-amber-light-p3-11: color(display-p3 .64 .4 0);--colors-amber-light-p3-12: color(display-p3 .294 .208 .145);--colors-amber-light-p3-a-1: color(display-p3 .757 .514 .024 / .016);--colors-amber-light-p3-a-2: color(display-p3 .902 .804 .008 / .079);--colors-amber-light-p3-a-3: color(display-p3 .965 .859 .004 / .22);--colors-amber-light-p3-a-4: color(display-p3 .969 .82 .004 / .35);--colors-amber-light-p3-a-5: color(display-p3 .933 .796 .004 / .475);--colors-amber-light-p3-a-6: color(display-p3 .875 .682 .004 / .495);--colors-amber-light-p3-a-7: color(display-p3 .804 .573 0 / .557);--colors-amber-light-p3-a-8: color(display-p3 .788 .502 0 / .699);--colors-amber-light-p3-a-9: color(display-p3 1 .686 0 / .742);--colors-amber-light-p3-a-10: color(display-p3 .945 .643 0 / .726);--colors-amber-light-p3-a-11: color(display-p3 .64 .4 0);--colors-amber-light-p3-a-12: color(display-p3 .294 .208 .145);--colors-amber-dark-1: #16120c;--colors-amber-dark-2: #1d180f;--colors-amber-dark-3: #302008;--colors-amber-dark-4: #3f2700;--colors-amber-dark-5: #4d3000;--colors-amber-dark-6: #5c3d05;--colors-amber-dark-7: #714f19;--colors-amber-dark-8: #8f6424;--colors-amber-dark-9: #ffc53d;--colors-amber-dark-10: #ffd60a;--colors-amber-dark-11: #ffca16;--colors-amber-dark-12: #ffe7b3;--colors-amber-dark-a-1: #e63c0006;--colors-amber-dark-a-2: #fd9b000d;--colors-amber-dark-a-3: #fa820022;--colors-amber-dark-a-4: #fc820032;--colors-amber-dark-a-5: #fd8b0041;--colors-amber-dark-a-6: #fd9b0051;--colors-amber-dark-a-7: #ffab2567;--colors-amber-dark-a-8: #ffae3587;--colors-amber-dark-a-9: #ffc53d;--colors-amber-dark-a-10: #ffd60a;--colors-amber-dark-a-11: #ffca16;--colors-amber-dark-a-12: #ffe7b3;--colors-amber-dark-p3-1: color(display-p3 .082 .07 .05);--colors-amber-dark-p3-2: color(display-p3 .111 .094 .064);--colors-amber-dark-p3-3: color(display-p3 .178 .128 .049);--colors-amber-dark-p3-4: color(display-p3 .239 .156 0);--colors-amber-dark-p3-5: color(display-p3 .29 .193 0);--colors-amber-dark-p3-6: color(display-p3 .344 .245 .076);--colors-amber-dark-p3-7: color(display-p3 .422 .314 .141);--colors-amber-dark-p3-8: color(display-p3 .535 .399 .189);--colors-amber-dark-p3-9: color(display-p3 1 .77 .26);--colors-amber-dark-p3-10: color(display-p3 1 .87 .15);--colors-amber-dark-p3-11: color(display-p3 1 .8 .29);--colors-amber-dark-p3-12: color(display-p3 .984 .909 .726);--colors-amber-dark-p3-a-1: color(display-p3 .992 .298 0 / .017);--colors-amber-dark-p3-a-2: color(display-p3 .988 .651 0 / .047);--colors-amber-dark-p3-a-3: color(display-p3 1 .6 0 / .118);--colors-amber-dark-p3-a-4: color(display-p3 1 .557 0 / .185);--colors-amber-dark-p3-a-5: color(display-p3 1 .592 0 / .24);--colors-amber-dark-p3-a-6: color(display-p3 1 .659 .094 / .299);--colors-amber-dark-p3-a-7: color(display-p3 1 .714 .263 / .383);--colors-amber-dark-p3-a-8: color(display-p3 .996 .729 .306 / .5);--colors-amber-dark-p3-a-9: color(display-p3 1 .769 .259);--colors-amber-dark-p3-a-10: color(display-p3 1 .871 .149);--colors-amber-dark-p3-a-11: color(display-p3 1 .8 .29);--colors-amber-dark-p3-a-12: color(display-p3 .984 .909 .726);--colors-amber-a-1: var(--colors-amber-light-a-1);--colors-amber-a-2: var(--colors-amber-light-a-2);--colors-amber-a-3: var(--colors-amber-light-a-3);--colors-amber-a-4: var(--colors-amber-light-a-4);--colors-amber-a-5: var(--colors-amber-light-a-5);--colors-amber-a-6: var(--colors-amber-light-a-6);--colors-amber-a-7: var(--colors-amber-light-a-7);--colors-amber-a-8: var(--colors-amber-light-a-8);--colors-amber-a-9: var(--colors-amber-light-a-9);--colors-amber-a-10: var(--colors-amber-light-a-10);--colors-amber-a-11: var(--colors-amber-light-a-11);--colors-amber-a-12: var(--colors-amber-light-a-12);--colors-amber-p3-1: var(--colors-amber-light-p3-1);--colors-amber-p3-2: var(--colors-amber-light-p3-2);--colors-amber-p3-3: var(--colors-amber-light-p3-3);--colors-amber-p3-4: var(--colors-amber-light-p3-4);--colors-amber-p3-5: var(--colors-amber-light-p3-5);--colors-amber-p3-6: var(--colors-amber-light-p3-6);--colors-amber-p3-7: var(--colors-amber-light-p3-7);--colors-amber-p3-8: var(--colors-amber-light-p3-8);--colors-amber-p3-9: var(--colors-amber-light-p3-9);--colors-amber-p3-10: var(--colors-amber-light-p3-10);--colors-amber-p3-11: var(--colors-amber-light-p3-11);--colors-amber-p3-12: var(--colors-amber-light-p3-12);--colors-amber-p3-a-1: var(--colors-amber-light-p3-a-1);--colors-amber-p3-a-2: var(--colors-amber-light-p3-a-2);--colors-amber-p3-a-3: var(--colors-amber-light-p3-a-3);--colors-amber-p3-a-4: var(--colors-amber-light-p3-a-4);--colors-amber-p3-a-5: var(--colors-amber-light-p3-a-5);--colors-amber-p3-a-6: var(--colors-amber-light-p3-a-6);--colors-amber-p3-a-7: var(--colors-amber-light-p3-a-7);--colors-amber-p3-a-8: var(--colors-amber-light-p3-a-8);--colors-amber-p3-a-9: var(--colors-amber-light-p3-a-9);--colors-amber-p3-a-10: var(--colors-amber-light-p3-a-10);--colors-amber-p3-a-11: var(--colors-amber-light-p3-a-11);--colors-amber-p3-a-12: var(--colors-amber-light-p3-a-12);--colors-blue-1: var(--colors-blue-light-1);--colors-blue-2: var(--colors-blue-light-2);--colors-blue-3: var(--colors-blue-light-3);--colors-blue-4: var(--colors-blue-light-4);--colors-blue-5: var(--colors-blue-light-5);--colors-blue-6: var(--colors-blue-light-6);--colors-blue-7: var(--colors-blue-light-7);--colors-blue-8: var(--colors-blue-light-8);--colors-blue-9: var(--colors-blue-light-9);--colors-blue-10: var(--colors-blue-light-10);--colors-blue-11: var(--colors-blue-light-11);--colors-blue-12: var(--colors-blue-light-12);--colors-blue-light-1: #fbfdff;--colors-blue-light-2: #f4faff;--colors-blue-light-3: #e6f4fe;--colors-blue-light-4: #d5efff;--colors-blue-light-5: #c2e5ff;--colors-blue-light-6: #acd8fc;--colors-blue-light-7: #8ec8f6;--colors-blue-light-8: #5eb1ef;--colors-blue-light-9: #0090ff;--colors-blue-light-10: #0588f0;--colors-blue-light-11: #0d74ce;--colors-blue-light-12: #113264;--colors-blue-light-a-1: #0080ff04;--colors-blue-light-a-2: #008cff0b;--colors-blue-light-a-3: #008ff519;--colors-blue-light-a-4: #009eff2a;--colors-blue-light-a-5: #0093ff3d;--colors-blue-light-a-6: #0088f653;--colors-blue-light-a-7: #0083eb71;--colors-blue-light-a-8: #0084e6a1;--colors-blue-light-a-9: #0090ff;--colors-blue-light-a-10: #0086f0fa;--colors-blue-light-a-11: #006dcbf2;--colors-blue-light-a-12: #002359ee;--colors-blue-light-p3-1: color(display-p3 .986 .992 .999);--colors-blue-light-p3-2: color(display-p3 .96 .979 .998);--colors-blue-light-p3-3: color(display-p3 .912 .956 .991);--colors-blue-light-p3-4: color(display-p3 .853 .932 1);--colors-blue-light-p3-5: color(display-p3 .788 .894 .998);--colors-blue-light-p3-6: color(display-p3 .709 .843 .976);--colors-blue-light-p3-7: color(display-p3 .606 .777 .947);--colors-blue-light-p3-8: color(display-p3 .451 .688 .917);--colors-blue-light-p3-9: color(display-p3 .247 .556 .969);--colors-blue-light-p3-10: color(display-p3 .234 .523 .912);--colors-blue-light-p3-11: color(display-p3 .15 .44 .84);--colors-blue-light-p3-12: color(display-p3 .102 .193 .379);--colors-blue-light-p3-a-1: color(display-p3 .024 .514 1 / .016);--colors-blue-light-p3-a-2: color(display-p3 .024 .514 .906 / .04);--colors-blue-light-p3-a-3: color(display-p3 .012 .506 .914 / .087);--colors-blue-light-p3-a-4: color(display-p3 .008 .545 1 / .146);--colors-blue-light-p3-a-5: color(display-p3 .004 .502 .984 / .212);--colors-blue-light-p3-a-6: color(display-p3 .004 .463 .922 / .291);--colors-blue-light-p3-a-7: color(display-p3 .004 .431 .863 / .393);--colors-blue-light-p3-a-8: color(display-p3 0 .427 .851 / .55);--colors-blue-light-p3-a-9: color(display-p3 0 .412 .961 / .753);--colors-blue-light-p3-a-10: color(display-p3 0 .376 .886 / .765);--colors-blue-light-p3-a-11: color(display-p3 .15 .44 .84);--colors-blue-light-p3-a-12: color(display-p3 .102 .193 .379);--colors-blue-dark-1: #0d1520;--colors-blue-dark-2: #111927;--colors-blue-dark-3: #0d2847;--colors-blue-dark-4: #003362;--colors-blue-dark-5: #004074;--colors-blue-dark-6: #104d87;--colors-blue-dark-7: #205d9e;--colors-blue-dark-8: #2870bd;--colors-blue-dark-9: #0090ff;--colors-blue-dark-10: #3b9eff;--colors-blue-dark-11: #70b8ff;--colors-blue-dark-12: #c2e6ff;--colors-blue-dark-a-1: #004df211;--colors-blue-dark-a-2: #1166fb18;--colors-blue-dark-a-3: #0077ff3a;--colors-blue-dark-a-4: #0075ff57;--colors-blue-dark-a-5: #0081fd6b;--colors-blue-dark-a-6: #0f89fd7f;--colors-blue-dark-a-7: #2a91fe98;--colors-blue-dark-a-8: #3094feb9;--colors-blue-dark-a-9: #0090ff;--colors-blue-dark-a-10: #3b9eff;--colors-blue-dark-a-11: #70b8ff;--colors-blue-dark-a-12: #c2e6ff;--colors-blue-dark-p3-1: color(display-p3 .057 .081 .122);--colors-blue-dark-p3-2: color(display-p3 .072 .098 .147);--colors-blue-dark-p3-3: color(display-p3 .078 .154 .27);--colors-blue-dark-p3-4: color(display-p3 .033 .197 .37);--colors-blue-dark-p3-5: color(display-p3 .08 .245 .441);--colors-blue-dark-p3-6: color(display-p3 .14 .298 .511);--colors-blue-dark-p3-7: color(display-p3 .195 .361 .6);--colors-blue-dark-p3-8: color(display-p3 .239 .434 .72);--colors-blue-dark-p3-9: color(display-p3 .247 .556 .969);--colors-blue-dark-p3-10: color(display-p3 .344 .612 .973);--colors-blue-dark-p3-11: color(display-p3 .49 .72 1);--colors-blue-dark-p3-12: color(display-p3 .788 .898 .99);--colors-blue-dark-p3-a-1: color(display-p3 0 .333 1 / .059);--colors-blue-dark-p3-a-2: color(display-p3 .114 .435 .988 / .085);--colors-blue-dark-p3-a-3: color(display-p3 .122 .463 1 / .219);--colors-blue-dark-p3-a-4: color(display-p3 0 .467 1 / .324);--colors-blue-dark-p3-a-5: color(display-p3 .098 .51 1 / .4);--colors-blue-dark-p3-a-6: color(display-p3 .224 .557 1 / .475);--colors-blue-dark-p3-a-7: color(display-p3 .294 .584 1 / .572);--colors-blue-dark-p3-a-8: color(display-p3 .314 .592 1 / .702);--colors-blue-dark-p3-a-9: color(display-p3 .251 .573 .996 / .967);--colors-blue-dark-p3-a-10: color(display-p3 .357 .631 1 / .971);--colors-blue-dark-p3-a-11: color(display-p3 .49 .72 1);--colors-blue-dark-p3-a-12: color(display-p3 .788 .898 .99);--colors-blue-a-1: var(--colors-blue-light-a-1);--colors-blue-a-2: var(--colors-blue-light-a-2);--colors-blue-a-3: var(--colors-blue-light-a-3);--colors-blue-a-4: var(--colors-blue-light-a-4);--colors-blue-a-5: var(--colors-blue-light-a-5);--colors-blue-a-6: var(--colors-blue-light-a-6);--colors-blue-a-7: var(--colors-blue-light-a-7);--colors-blue-a-8: var(--colors-blue-light-a-8);--colors-blue-a-9: var(--colors-blue-light-a-9);--colors-blue-a-10: var(--colors-blue-light-a-10);--colors-blue-a-11: var(--colors-blue-light-a-11);--colors-blue-a-12: var(--colors-blue-light-a-12);--colors-blue-p3-1: var(--colors-blue-light-p3-1);--colors-blue-p3-2: var(--colors-blue-light-p3-2);--colors-blue-p3-3: var(--colors-blue-light-p3-3);--colors-blue-p3-4: var(--colors-blue-light-p3-4);--colors-blue-p3-5: var(--colors-blue-light-p3-5);--colors-blue-p3-6: var(--colors-blue-light-p3-6);--colors-blue-p3-7: var(--colors-blue-light-p3-7);--colors-blue-p3-8: var(--colors-blue-light-p3-8);--colors-blue-p3-9: var(--colors-blue-light-p3-9);--colors-blue-p3-10: var(--colors-blue-light-p3-10);--colors-blue-p3-11: var(--colors-blue-light-p3-11);--colors-blue-p3-12: var(--colors-blue-light-p3-12);--colors-blue-p3-a-1: var(--colors-blue-light-p3-a-1);--colors-blue-p3-a-2: var(--colors-blue-light-p3-a-2);--colors-blue-p3-a-3: var(--colors-blue-light-p3-a-3);--colors-blue-p3-a-4: var(--colors-blue-light-p3-a-4);--colors-blue-p3-a-5: var(--colors-blue-light-p3-a-5);--colors-blue-p3-a-6: var(--colors-blue-light-p3-a-6);--colors-blue-p3-a-7: var(--colors-blue-light-p3-a-7);--colors-blue-p3-a-8: var(--colors-blue-light-p3-a-8);--colors-blue-p3-a-9: var(--colors-blue-light-p3-a-9);--colors-blue-p3-a-10: var(--colors-blue-light-p3-a-10);--colors-blue-p3-a-11: var(--colors-blue-light-p3-a-11);--colors-blue-p3-a-12: var(--colors-blue-light-p3-a-12);--colors-crimson-1: var(--colors-crimson-light-1);--colors-crimson-2: var(--colors-crimson-light-2);--colors-crimson-3: var(--colors-crimson-light-3);--colors-crimson-4: var(--colors-crimson-light-4);--colors-crimson-5: var(--colors-crimson-light-5);--colors-crimson-6: var(--colors-crimson-light-6);--colors-crimson-7: var(--colors-crimson-light-7);--colors-crimson-8: var(--colors-crimson-light-8);--colors-crimson-9: var(--colors-crimson-light-9);--colors-crimson-10: var(--colors-crimson-light-10);--colors-crimson-11: var(--colors-crimson-light-11);--colors-crimson-12: var(--colors-crimson-light-12);--colors-crimson-light-1: #fffcfd;--colors-crimson-light-2: #fef7f9;--colors-crimson-light-3: #ffe9f0;--colors-crimson-light-4: #fedce7;--colors-crimson-light-5: #facedd;--colors-crimson-light-6: #f3bed1;--colors-crimson-light-7: #eaacc3;--colors-crimson-light-8: #e093b2;--colors-crimson-light-9: #e93d82;--colors-crimson-light-10: #df3478;--colors-crimson-light-11: #cb1d63;--colors-crimson-light-12: #621639;--colors-crimson-light-a-1: #ff005503;--colors-crimson-light-a-2: #e0004008;--colors-crimson-light-a-3: #ff005216;--colors-crimson-light-a-4: #f8005123;--colors-crimson-light-a-5: #e5004f31;--colors-crimson-light-a-6: #d0004b41;--colors-crimson-light-a-7: #bf004753;--colors-crimson-light-a-8: #b6004a6c;--colors-crimson-light-a-9: #e2005bc2;--colors-crimson-light-a-10: #d70056cb;--colors-crimson-light-a-11: #c4004fe2;--colors-crimson-light-a-12: #530026e9;--colors-crimson-light-p3-1: color(display-p3 .998 .989 .992);--colors-crimson-light-p3-2: color(display-p3 .991 .969 .976);--colors-crimson-light-p3-3: color(display-p3 .987 .917 .941);--colors-crimson-light-p3-4: color(display-p3 .975 .866 .904);--colors-crimson-light-p3-5: color(display-p3 .953 .813 .864);--colors-crimson-light-p3-6: color(display-p3 .921 .755 .817);--colors-crimson-light-p3-7: color(display-p3 .88 .683 .761);--colors-crimson-light-p3-8: color(display-p3 .834 .592 .694);--colors-crimson-light-p3-9: color(display-p3 .843 .298 .507);--colors-crimson-light-p3-10: color(display-p3 .807 .266 .468);--colors-crimson-light-p3-11: color(display-p3 .731 .195 .388);--colors-crimson-light-p3-12: color(display-p3 .352 .111 .221);--colors-crimson-light-p3-a-1: color(display-p3 .675 .024 .349 / .012);--colors-crimson-light-p3-a-2: color(display-p3 .757 .02 .267 / .032);--colors-crimson-light-p3-a-3: color(display-p3 .859 .008 .294 / .083);--colors-crimson-light-p3-a-4: color(display-p3 .827 .008 .298 / .134);--colors-crimson-light-p3-a-5: color(display-p3 .753 .008 .275 / .189);--colors-crimson-light-p3-a-6: color(display-p3 .682 .004 .247 / .244);--colors-crimson-light-p3-a-7: color(display-p3 .62 .004 .251 / .318);--colors-crimson-light-p3-a-8: color(display-p3 .6 .004 .251 / .408);--colors-crimson-light-p3-a-9: color(display-p3 .776 0 .298 / .702);--colors-crimson-light-p3-a-10: color(display-p3 .737 0 .275 / .734);--colors-crimson-light-p3-a-11: color(display-p3 .731 .195 .388);--colors-crimson-light-p3-a-12: color(display-p3 .352 .111 .221);--colors-crimson-dark-1: #191114;--colors-crimson-dark-2: #201318;--colors-crimson-dark-3: #381525;--colors-crimson-dark-4: #4d122f;--colors-crimson-dark-5: #5c1839;--colors-crimson-dark-6: #6d2545;--colors-crimson-dark-7: #873356;--colors-crimson-dark-8: #b0436e;--colors-crimson-dark-9: #e93d82;--colors-crimson-dark-10: #ee518a;--colors-crimson-dark-11: #ff92ad;--colors-crimson-dark-12: #fdd3e8;--colors-crimson-dark-a-1: #f4126709;--colors-crimson-dark-a-2: #f22f7a11;--colors-crimson-dark-a-3: #fe2a8b2a;--colors-crimson-dark-a-4: #fd158741;--colors-crimson-dark-a-5: #fd278f51;--colors-crimson-dark-a-6: #fe459763;--colors-crimson-dark-a-7: #fd559b7f;--colors-crimson-dark-a-8: #fe5b9bab;--colors-crimson-dark-a-9: #fe418de8;--colors-crimson-dark-a-10: #ff5693ed;--colors-crimson-dark-a-11: #ff92ad;--colors-crimson-dark-a-12: #ffd5eafd;--colors-crimson-dark-p3-1: color(display-p3 .093 .068 .078);--colors-crimson-dark-p3-2: color(display-p3 .117 .078 .095);--colors-crimson-dark-p3-3: color(display-p3 .203 .091 .143);--colors-crimson-dark-p3-4: color(display-p3 .277 .087 .182);--colors-crimson-dark-p3-5: color(display-p3 .332 .115 .22);--colors-crimson-dark-p3-6: color(display-p3 .394 .162 .268);--colors-crimson-dark-p3-7: color(display-p3 .489 .222 .336);--colors-crimson-dark-p3-8: color(display-p3 .638 .289 .429);--colors-crimson-dark-p3-9: color(display-p3 .843 .298 .507);--colors-crimson-dark-p3-10: color(display-p3 .864 .364 .539);--colors-crimson-dark-p3-11: color(display-p3 1 .56 .66);--colors-crimson-dark-p3-12: color(display-p3 .966 .834 .906);--colors-crimson-dark-p3-a-1: color(display-p3 .984 .071 .463 / .03);--colors-crimson-dark-p3-a-2: color(display-p3 .996 .282 .569 / .055);--colors-crimson-dark-p3-a-3: color(display-p3 .996 .227 .573 / .148);--colors-crimson-dark-p3-a-4: color(display-p3 1 .157 .569 / .227);--colors-crimson-dark-p3-a-5: color(display-p3 1 .231 .604 / .286);--colors-crimson-dark-p3-a-6: color(display-p3 1 .337 .643 / .349);--colors-crimson-dark-p3-a-7: color(display-p3 1 .416 .663 / .454);--colors-crimson-dark-p3-a-8: color(display-p3 .996 .427 .651 / .614);--colors-crimson-dark-p3-a-9: color(display-p3 1 .345 .596 / .832);--colors-crimson-dark-p3-a-10: color(display-p3 1 .42 .62 / .853);--colors-crimson-dark-p3-a-11: color(display-p3 1 .56 .66);--colors-crimson-dark-p3-a-12: color(display-p3 .966 .834 .906);--colors-crimson-a-1: var(--colors-crimson-light-a-1);--colors-crimson-a-2: var(--colors-crimson-light-a-2);--colors-crimson-a-3: var(--colors-crimson-light-a-3);--colors-crimson-a-4: var(--colors-crimson-light-a-4);--colors-crimson-a-5: var(--colors-crimson-light-a-5);--colors-crimson-a-6: var(--colors-crimson-light-a-6);--colors-crimson-a-7: var(--colors-crimson-light-a-7);--colors-crimson-a-8: var(--colors-crimson-light-a-8);--colors-crimson-a-9: var(--colors-crimson-light-a-9);--colors-crimson-a-10: var(--colors-crimson-light-a-10);--colors-crimson-a-11: var(--colors-crimson-light-a-11);--colors-crimson-a-12: var(--colors-crimson-light-a-12);--colors-crimson-p3-1: var(--colors-crimson-light-p3-1);--colors-crimson-p3-2: var(--colors-crimson-light-p3-2);--colors-crimson-p3-3: var(--colors-crimson-light-p3-3);--colors-crimson-p3-4: var(--colors-crimson-light-p3-4);--colors-crimson-p3-5: var(--colors-crimson-light-p3-5);--colors-crimson-p3-6: var(--colors-crimson-light-p3-6);--colors-crimson-p3-7: var(--colors-crimson-light-p3-7);--colors-crimson-p3-8: var(--colors-crimson-light-p3-8);--colors-crimson-p3-9: var(--colors-crimson-light-p3-9);--colors-crimson-p3-10: var(--colors-crimson-light-p3-10);--colors-crimson-p3-11: var(--colors-crimson-light-p3-11);--colors-crimson-p3-12: var(--colors-crimson-light-p3-12);--colors-crimson-p3-a-1: var(--colors-crimson-light-p3-a-1);--colors-crimson-p3-a-2: var(--colors-crimson-light-p3-a-2);--colors-crimson-p3-a-3: var(--colors-crimson-light-p3-a-3);--colors-crimson-p3-a-4: var(--colors-crimson-light-p3-a-4);--colors-crimson-p3-a-5: var(--colors-crimson-light-p3-a-5);--colors-crimson-p3-a-6: var(--colors-crimson-light-p3-a-6);--colors-crimson-p3-a-7: var(--colors-crimson-light-p3-a-7);--colors-crimson-p3-a-8: var(--colors-crimson-light-p3-a-8);--colors-crimson-p3-a-9: var(--colors-crimson-light-p3-a-9);--colors-crimson-p3-a-10: var(--colors-crimson-light-p3-a-10);--colors-crimson-p3-a-11: var(--colors-crimson-light-p3-a-11);--colors-crimson-p3-a-12: var(--colors-crimson-light-p3-a-12);--colors-grass-1: var(--colors-grass-light-1);--colors-grass-2: var(--colors-grass-light-2);--colors-grass-3: var(--colors-grass-light-3);--colors-grass-4: var(--colors-grass-light-4);--colors-grass-5: var(--colors-grass-light-5);--colors-grass-6: var(--colors-grass-light-6);--colors-grass-7: var(--colors-grass-light-7);--colors-grass-8: var(--colors-grass-light-8);--colors-grass-9: var(--colors-grass-light-9);--colors-grass-10: var(--colors-grass-light-10);--colors-grass-11: var(--colors-grass-light-11);--colors-grass-12: var(--colors-grass-light-12);--colors-grass-light-1: #fbfefb;--colors-grass-light-2: #f5fbf5;--colors-grass-light-3: #e9f6e9;--colors-grass-light-4: #daf1db;--colors-grass-light-5: #c9e8ca;--colors-grass-light-6: #b2ddb5;--colors-grass-light-7: #94ce9a;--colors-grass-light-8: #65ba74;--colors-grass-light-9: #46a758;--colors-grass-light-10: #3e9b4f;--colors-grass-light-11: #2a7e3b;--colors-grass-light-12: #203c25;--colors-grass-light-a-1: #00c00004;--colors-grass-light-a-2: #0099000a;--colors-grass-light-a-3: #00970016;--colors-grass-light-a-4: #009f0725;--colors-grass-light-a-5: #00930536;--colors-grass-light-a-6: #008f0a4d;--colors-grass-light-a-7: #018b0f6b;--colors-grass-light-a-8: #008d199a;--colors-grass-light-a-9: #008619b9;--colors-grass-light-a-10: #007b17c1;--colors-grass-light-a-11: #006514d5;--colors-grass-light-a-12: #002006df;--colors-grass-light-p3-1: color(display-p3 .986 .996 .985);--colors-grass-light-p3-2: color(display-p3 .966 .983 .964);--colors-grass-light-p3-3: color(display-p3 .923 .965 .917);--colors-grass-light-p3-4: color(display-p3 .872 .94 .865);--colors-grass-light-p3-5: color(display-p3 .811 .908 .802);--colors-grass-light-p3-6: color(display-p3 .733 .864 .724);--colors-grass-light-p3-7: color(display-p3 .628 .803 .622);--colors-grass-light-p3-8: color(display-p3 .477 .72 .482);--colors-grass-light-p3-9: color(display-p3 .38 .647 .378);--colors-grass-light-p3-10: color(display-p3 .344 .598 .342);--colors-grass-light-p3-11: color(display-p3 .263 .488 .261);--colors-grass-light-p3-12: color(display-p3 .151 .233 .153);--colors-grass-light-p3-a-1: color(display-p3 .024 .757 .024 / .016);--colors-grass-light-p3-a-2: color(display-p3 .024 .565 .024 / .036);--colors-grass-light-p3-a-3: color(display-p3 .059 .576 .008 / .083);--colors-grass-light-p3-a-4: color(display-p3 .035 .565 .008 / .134);--colors-grass-light-p3-a-5: color(display-p3 .047 .545 .008 / .197);--colors-grass-light-p3-a-6: color(display-p3 .031 .502 .004 / .275);--colors-grass-light-p3-a-7: color(display-p3 .012 .482 .004 / .377);--colors-grass-light-p3-a-8: color(display-p3 0 .467 .008 / .522);--colors-grass-light-p3-a-9: color(display-p3 .008 .435 0 / .624);--colors-grass-light-p3-a-10: color(display-p3 .008 .388 0 / .659);--colors-grass-light-p3-a-11: color(display-p3 .263 .488 .261);--colors-grass-light-p3-a-12: color(display-p3 .151 .233 .153);--colors-grass-dark-1: #0e1511;--colors-grass-dark-2: #141a15;--colors-grass-dark-3: #1b2a1e;--colors-grass-dark-4: #1d3a24;--colors-grass-dark-5: #25482d;--colors-grass-dark-6: #2d5736;--colors-grass-dark-7: #366740;--colors-grass-dark-8: #3e7949;--colors-grass-dark-9: #46a758;--colors-grass-dark-10: #53b365;--colors-grass-dark-11: #71d083;--colors-grass-dark-12: #c2f0c2;--colors-grass-dark-a-1: #00de1205;--colors-grass-dark-a-2: #5ef7780a;--colors-grass-dark-a-3: #70fe8c1b;--colors-grass-dark-a-4: #57ff802c;--colors-grass-dark-a-5: #68ff8b3b;--colors-grass-dark-a-6: #71ff8f4b;--colors-grass-dark-a-7: #77fd925d;--colors-grass-dark-a-8: #77fd9070;--colors-grass-dark-a-9: #65ff82a1;--colors-grass-dark-a-10: #72ff8dae;--colors-grass-dark-a-11: #89ff9fcd;--colors-grass-dark-a-12: #ceffceef;--colors-grass-dark-p3-1: color(display-p3 .062 .083 .067);--colors-grass-dark-p3-2: color(display-p3 .083 .103 .085);--colors-grass-dark-p3-3: color(display-p3 .118 .163 .122);--colors-grass-dark-p3-4: color(display-p3 .142 .225 .15);--colors-grass-dark-p3-5: color(display-p3 .178 .279 .186);--colors-grass-dark-p3-6: color(display-p3 .217 .337 .224);--colors-grass-dark-p3-7: color(display-p3 .258 .4 .264);--colors-grass-dark-p3-8: color(display-p3 .302 .47 .305);--colors-grass-dark-p3-9: color(display-p3 .38 .647 .378);--colors-grass-dark-p3-10: color(display-p3 .426 .694 .426);--colors-grass-dark-p3-11: color(display-p3 .535 .807 .542);--colors-grass-dark-p3-12: color(display-p3 .797 .936 .776);--colors-grass-dark-p3-a-1: color(display-p3 0 .992 .071 / .017);--colors-grass-dark-p3-a-2: color(display-p3 .482 .996 .584 / .038);--colors-grass-dark-p3-a-3: color(display-p3 .549 .992 .588 / .106);--colors-grass-dark-p3-a-4: color(display-p3 .51 .996 .557 / .169);--colors-grass-dark-p3-a-5: color(display-p3 .553 1 .588 / .227);--colors-grass-dark-p3-a-6: color(display-p3 .584 1 .608 / .29);--colors-grass-dark-p3-a-7: color(display-p3 .604 1 .616 / .358);--colors-grass-dark-p3-a-8: color(display-p3 .608 1 .62 / .433);--colors-grass-dark-p3-a-9: color(display-p3 .573 1 .569 / .622);--colors-grass-dark-p3-a-10: color(display-p3 .6 .996 .6 / .673);--colors-grass-dark-p3-a-11: color(display-p3 .535 .807 .542);--colors-grass-dark-p3-a-12: color(display-p3 .797 .936 .776);--colors-grass-a-1: var(--colors-grass-light-a-1);--colors-grass-a-2: var(--colors-grass-light-a-2);--colors-grass-a-3: var(--colors-grass-light-a-3);--colors-grass-a-4: var(--colors-grass-light-a-4);--colors-grass-a-5: var(--colors-grass-light-a-5);--colors-grass-a-6: var(--colors-grass-light-a-6);--colors-grass-a-7: var(--colors-grass-light-a-7);--colors-grass-a-8: var(--colors-grass-light-a-8);--colors-grass-a-9: var(--colors-grass-light-a-9);--colors-grass-a-10: var(--colors-grass-light-a-10);--colors-grass-a-11: var(--colors-grass-light-a-11);--colors-grass-a-12: var(--colors-grass-light-a-12);--colors-grass-p3-1: var(--colors-grass-light-p3-1);--colors-grass-p3-2: var(--colors-grass-light-p3-2);--colors-grass-p3-3: var(--colors-grass-light-p3-3);--colors-grass-p3-4: var(--colors-grass-light-p3-4);--colors-grass-p3-5: var(--colors-grass-light-p3-5);--colors-grass-p3-6: var(--colors-grass-light-p3-6);--colors-grass-p3-7: var(--colors-grass-light-p3-7);--colors-grass-p3-8: var(--colors-grass-light-p3-8);--colors-grass-p3-9: var(--colors-grass-light-p3-9);--colors-grass-p3-10: var(--colors-grass-light-p3-10);--colors-grass-p3-11: var(--colors-grass-light-p3-11);--colors-grass-p3-12: var(--colors-grass-light-p3-12);--colors-grass-p3-a-1: var(--colors-grass-light-p3-a-1);--colors-grass-p3-a-2: var(--colors-grass-light-p3-a-2);--colors-grass-p3-a-3: var(--colors-grass-light-p3-a-3);--colors-grass-p3-a-4: var(--colors-grass-light-p3-a-4);--colors-grass-p3-a-5: var(--colors-grass-light-p3-a-5);--colors-grass-p3-a-6: var(--colors-grass-light-p3-a-6);--colors-grass-p3-a-7: var(--colors-grass-light-p3-a-7);--colors-grass-p3-a-8: var(--colors-grass-light-p3-a-8);--colors-grass-p3-a-9: var(--colors-grass-light-p3-a-9);--colors-grass-p3-a-10: var(--colors-grass-light-p3-a-10);--colors-grass-p3-a-11: var(--colors-grass-light-p3-a-11);--colors-grass-p3-a-12: var(--colors-grass-light-p3-a-12);--colors-indigo-1: var(--colors-indigo-light-1);--colors-indigo-2: var(--colors-indigo-light-2);--colors-indigo-3: var(--colors-indigo-light-3);--colors-indigo-4: var(--colors-indigo-light-4);--colors-indigo-5: var(--colors-indigo-light-5);--colors-indigo-6: var(--colors-indigo-light-6);--colors-indigo-7: var(--colors-indigo-light-7);--colors-indigo-8: var(--colors-indigo-light-8);--colors-indigo-9: var(--colors-indigo-light-9);--colors-indigo-10: var(--colors-indigo-light-10);--colors-indigo-11: var(--colors-indigo-light-11);--colors-indigo-12: var(--colors-indigo-light-12);--colors-indigo-light-1: #fdfdfe;--colors-indigo-light-2: #f7f9ff;--colors-indigo-light-3: #edf2fe;--colors-indigo-light-4: #e1e9ff;--colors-indigo-light-5: #d2deff;--colors-indigo-light-6: #c1d0ff;--colors-indigo-light-7: #abbdf9;--colors-indigo-light-8: #8da4ef;--colors-indigo-light-9: #3e63dd;--colors-indigo-light-10: #3358d4;--colors-indigo-light-11: #3a5bc7;--colors-indigo-light-12: #1f2d5c;--colors-indigo-light-a-1: #00008002;--colors-indigo-light-a-2: #0040ff08;--colors-indigo-light-a-3: #0047f112;--colors-indigo-light-a-4: #0044ff1e;--colors-indigo-light-a-5: #0044ff2d;--colors-indigo-light-a-6: #003eff3e;--colors-indigo-light-a-7: #0037ed54;--colors-indigo-light-a-8: #0034dc72;--colors-indigo-light-a-9: #0031d2c1;--colors-indigo-light-a-10: #002ec9cc;--colors-indigo-light-a-11: #002bb7c5;--colors-indigo-light-a-12: #001046e0;--colors-indigo-light-p3-1: color(display-p3 .992 .992 .996);--colors-indigo-light-p3-2: color(display-p3 .971 .977 .998);--colors-indigo-light-p3-3: color(display-p3 .933 .948 .992);--colors-indigo-light-p3-4: color(display-p3 .885 .914 1);--colors-indigo-light-p3-5: color(display-p3 .831 .87 1);--colors-indigo-light-p3-6: color(display-p3 .767 .814 .995);--colors-indigo-light-p3-7: color(display-p3 .685 .74 .957);--colors-indigo-light-p3-8: color(display-p3 .569 .639 .916);--colors-indigo-light-p3-9: color(display-p3 .276 .384 .837);--colors-indigo-light-p3-10: color(display-p3 .234 .343 .801);--colors-indigo-light-p3-11: color(display-p3 .256 .354 .755);--colors-indigo-light-p3-12: color(display-p3 .133 .175 .348);--colors-indigo-light-p3-a-1: color(display-p3 .02 .02 .51 / .008);--colors-indigo-light-p3-a-2: color(display-p3 .024 .161 .863 / .028);--colors-indigo-light-p3-a-3: color(display-p3 .008 .239 .886 / .067);--colors-indigo-light-p3-a-4: color(display-p3 .004 .247 1 / .114);--colors-indigo-light-p3-a-5: color(display-p3 .004 .235 1 / .169);--colors-indigo-light-p3-a-6: color(display-p3 .004 .208 .984 / .232);--colors-indigo-light-p3-a-7: color(display-p3 .004 .176 .863 / .314);--colors-indigo-light-p3-a-8: color(display-p3 .004 .165 .812 / .432);--colors-indigo-light-p3-a-9: color(display-p3 0 .153 .773 / .726);--colors-indigo-light-p3-a-10: color(display-p3 0 .137 .737 / .765);--colors-indigo-light-p3-a-11: color(display-p3 .256 .354 .755);--colors-indigo-light-p3-a-12: color(display-p3 .133 .175 .348);--colors-indigo-dark-1: #11131f;--colors-indigo-dark-2: #141726;--colors-indigo-dark-3: #182449;--colors-indigo-dark-4: #1d2e62;--colors-indigo-dark-5: #253974;--colors-indigo-dark-6: #304384;--colors-indigo-dark-7: #3a4f97;--colors-indigo-dark-8: #435db1;--colors-indigo-dark-9: #3e63dd;--colors-indigo-dark-10: #5472e4;--colors-indigo-dark-11: #9eb1ff;--colors-indigo-dark-12: #d6e1ff;--colors-indigo-dark-a-1: #1133ff0f;--colors-indigo-dark-a-2: #3354fa17;--colors-indigo-dark-a-3: #2f62ff3c;--colors-indigo-dark-a-4: #3566ff57;--colors-indigo-dark-a-5: #4171fd6b;--colors-indigo-dark-a-6: #5178fd7c;--colors-indigo-dark-a-7: #5a7fff90;--colors-indigo-dark-a-8: #5b81feac;--colors-indigo-dark-a-9: #4671ffdb;--colors-indigo-dark-a-10: #5c7efee3;--colors-indigo-dark-a-11: #9eb1ff;--colors-indigo-dark-a-12: #d6e1ff;--colors-indigo-dark-p3-1: color(display-p3 .068 .074 .118);--colors-indigo-dark-p3-2: color(display-p3 .081 .089 .144);--colors-indigo-dark-p3-3: color(display-p3 .105 .141 .275);--colors-indigo-dark-p3-4: color(display-p3 .129 .18 .369);--colors-indigo-dark-p3-5: color(display-p3 .163 .22 .439);--colors-indigo-dark-p3-6: color(display-p3 .203 .262 .5);--colors-indigo-dark-p3-7: color(display-p3 .245 .309 .575);--colors-indigo-dark-p3-8: color(display-p3 .285 .362 .674);--colors-indigo-dark-p3-9: color(display-p3 .276 .384 .837);--colors-indigo-dark-p3-10: color(display-p3 .354 .445 .866);--colors-indigo-dark-p3-11: color(display-p3 .63 .69 1);--colors-indigo-dark-p3-12: color(display-p3 .848 .881 .99);--colors-indigo-dark-p3-a-1: color(display-p3 .071 .212 .996 / .055);--colors-indigo-dark-p3-a-2: color(display-p3 .251 .345 .988 / .085);--colors-indigo-dark-p3-a-3: color(display-p3 .243 .404 1 / .223);--colors-indigo-dark-p3-a-4: color(display-p3 .263 .42 1 / .324);--colors-indigo-dark-p3-a-5: color(display-p3 .314 .451 1 / .4);--colors-indigo-dark-p3-a-6: color(display-p3 .361 .49 1 / .467);--colors-indigo-dark-p3-a-7: color(display-p3 .388 .51 1 / .547);--colors-indigo-dark-p3-a-8: color(display-p3 .404 .518 1 / .652);--colors-indigo-dark-p3-a-9: color(display-p3 .318 .451 1 / .824);--colors-indigo-dark-p3-a-10: color(display-p3 .404 .506 1 / .858);--colors-indigo-dark-p3-a-11: color(display-p3 .63 .69 1);--colors-indigo-dark-p3-a-12: color(display-p3 .848 .881 .99);--colors-indigo-a-1: var(--colors-indigo-light-a-1);--colors-indigo-a-2: var(--colors-indigo-light-a-2);--colors-indigo-a-3: var(--colors-indigo-light-a-3);--colors-indigo-a-4: var(--colors-indigo-light-a-4);--colors-indigo-a-5: var(--colors-indigo-light-a-5);--colors-indigo-a-6: var(--colors-indigo-light-a-6);--colors-indigo-a-7: var(--colors-indigo-light-a-7);--colors-indigo-a-8: var(--colors-indigo-light-a-8);--colors-indigo-a-9: var(--colors-indigo-light-a-9);--colors-indigo-a-10: var(--colors-indigo-light-a-10);--colors-indigo-a-11: var(--colors-indigo-light-a-11);--colors-indigo-a-12: var(--colors-indigo-light-a-12);--colors-indigo-p3-1: var(--colors-indigo-light-p3-1);--colors-indigo-p3-2: var(--colors-indigo-light-p3-2);--colors-indigo-p3-3: var(--colors-indigo-light-p3-3);--colors-indigo-p3-4: var(--colors-indigo-light-p3-4);--colors-indigo-p3-5: var(--colors-indigo-light-p3-5);--colors-indigo-p3-6: var(--colors-indigo-light-p3-6);--colors-indigo-p3-7: var(--colors-indigo-light-p3-7);--colors-indigo-p3-8: var(--colors-indigo-light-p3-8);--colors-indigo-p3-9: var(--colors-indigo-light-p3-9);--colors-indigo-p3-10: var(--colors-indigo-light-p3-10);--colors-indigo-p3-11: var(--colors-indigo-light-p3-11);--colors-indigo-p3-12: var(--colors-indigo-light-p3-12);--colors-indigo-p3-a-1: var(--colors-indigo-light-p3-a-1);--colors-indigo-p3-a-2: var(--colors-indigo-light-p3-a-2);--colors-indigo-p3-a-3: var(--colors-indigo-light-p3-a-3);--colors-indigo-p3-a-4: var(--colors-indigo-light-p3-a-4);--colors-indigo-p3-a-5: var(--colors-indigo-light-p3-a-5);--colors-indigo-p3-a-6: var(--colors-indigo-light-p3-a-6);--colors-indigo-p3-a-7: var(--colors-indigo-light-p3-a-7);--colors-indigo-p3-a-8: var(--colors-indigo-light-p3-a-8);--colors-indigo-p3-a-9: var(--colors-indigo-light-p3-a-9);--colors-indigo-p3-a-10: var(--colors-indigo-light-p3-a-10);--colors-indigo-p3-a-11: var(--colors-indigo-light-p3-a-11);--colors-indigo-p3-a-12: var(--colors-indigo-light-p3-a-12);--colors-lime-1: var(--colors-lime-light-1);--colors-lime-2: var(--colors-lime-light-2);--colors-lime-3: var(--colors-lime-light-3);--colors-lime-4: var(--colors-lime-light-4);--colors-lime-5: var(--colors-lime-light-5);--colors-lime-6: var(--colors-lime-light-6);--colors-lime-7: var(--colors-lime-light-7);--colors-lime-8: var(--colors-lime-light-8);--colors-lime-9: var(--colors-lime-light-9);--colors-lime-10: var(--colors-lime-light-10);--colors-lime-11: var(--colors-lime-light-11);--colors-lime-12: var(--colors-lime-light-12);--colors-lime-light-1: #fcfdfa;--colors-lime-light-2: #f8faf3;--colors-lime-light-3: #eef6d6;--colors-lime-light-4: #e2f0bd;--colors-lime-light-5: #d3e7a6;--colors-lime-light-6: #c2da91;--colors-lime-light-7: #abc978;--colors-lime-light-8: #8db654;--colors-lime-light-9: #bdee63;--colors-lime-light-10: #b0e64c;--colors-lime-light-11: #5c7c2f;--colors-lime-light-12: #37401c;--colors-lime-light-a-1: #66990005;--colors-lime-light-a-2: #6b95000c;--colors-lime-light-a-3: #96c80029;--colors-lime-light-a-4: #8fc60042;--colors-lime-light-a-5: #81bb0059;--colors-lime-light-a-6: #72aa006e;--colors-lime-light-a-7: #61990087;--colors-lime-light-a-8: #559200ab;--colors-lime-light-a-9: #93e4009c;--colors-lime-light-a-10: #8fdc00b3;--colors-lime-light-a-11: #375f00d0;--colors-lime-light-a-12: #1e2900e3;--colors-lime-light-p3-1: color(display-p3 .989 .992 .981);--colors-lime-light-p3-2: color(display-p3 .975 .98 .954);--colors-lime-light-p3-3: color(display-p3 .939 .965 .851);--colors-lime-light-p3-4: color(display-p3 .896 .94 .76);--colors-lime-light-p3-5: color(display-p3 .843 .903 .678);--colors-lime-light-p3-6: color(display-p3 .778 .852 .599);--colors-lime-light-p3-7: color(display-p3 .694 .784 .508);--colors-lime-light-p3-8: color(display-p3 .585 .707 .378);--colors-lime-light-p3-9: color(display-p3 .78 .928 .466);--colors-lime-light-p3-10: color(display-p3 .734 .896 .397);--colors-lime-light-p3-11: color(display-p3 .386 .482 .227);--colors-lime-light-p3-12: color(display-p3 .222 .25 .128);--colors-lime-light-p3-a-1: color(display-p3 .412 .608 .02 / .02);--colors-lime-light-p3-a-2: color(display-p3 .514 .592 .024 / .048);--colors-lime-light-p3-a-3: color(display-p3 .584 .765 .008 / .15);--colors-lime-light-p3-a-4: color(display-p3 .561 .757 .004 / .24);--colors-lime-light-p3-a-5: color(display-p3 .514 .698 .004 / .322);--colors-lime-light-p3-a-6: color(display-p3 .443 .627 0 / .4);--colors-lime-light-p3-a-7: color(display-p3 .376 .561 .004 / .491);--colors-lime-light-p3-a-8: color(display-p3 .333 .529 0 / .624);--colors-lime-light-p3-a-9: color(display-p3 .588 .867 0 / .534);--colors-lime-light-p3-a-10: color(display-p3 .561 .827 0 / .604);--colors-lime-light-p3-a-11: color(display-p3 .386 .482 .227);--colors-lime-light-p3-a-12: color(display-p3 .222 .25 .128);--colors-lime-dark-1: #11130c;--colors-lime-dark-2: #151a10;--colors-lime-dark-3: #1f2917;--colors-lime-dark-4: #29371d;--colors-lime-dark-5: #334423;--colors-lime-dark-6: #3d522a;--colors-lime-dark-7: #496231;--colors-lime-dark-8: #577538;--colors-lime-dark-9: #bdee63;--colors-lime-dark-10: #d4ff70;--colors-lime-dark-11: #bde56c;--colors-lime-dark-12: #e3f7ba;--colors-lime-dark-a-1: #11bb0003;--colors-lime-dark-a-2: #78f7000a;--colors-lime-dark-a-3: #9bfd4c1a;--colors-lime-dark-a-4: #a7fe5c29;--colors-lime-dark-a-5: #affe6537;--colors-lime-dark-a-6: #b2fe6d46;--colors-lime-dark-a-7: #b6ff6f57;--colors-lime-dark-a-8: #b6fd6d6c;--colors-lime-dark-a-9: #caff69ed;--colors-lime-dark-a-10: #d4ff70;--colors-lime-dark-a-11: #d1fe77e4;--colors-lime-dark-a-12: #e9febff7;--colors-lime-dark-p3-1: color(display-p3 .067 .073 .048);--colors-lime-dark-p3-2: color(display-p3 .086 .1 .067);--colors-lime-dark-p3-3: color(display-p3 .13 .16 .099);--colors-lime-dark-p3-4: color(display-p3 .172 .214 .126);--colors-lime-dark-p3-5: color(display-p3 .213 .266 .153);--colors-lime-dark-p3-6: color(display-p3 .257 .321 .182);--colors-lime-dark-p3-7: color(display-p3 .307 .383 .215);--colors-lime-dark-p3-8: color(display-p3 .365 .456 .25);--colors-lime-dark-p3-9: color(display-p3 .78 .928 .466);--colors-lime-dark-p3-10: color(display-p3 .865 .995 .519);--colors-lime-dark-p3-11: color(display-p3 .771 .893 .485);--colors-lime-dark-p3-12: color(display-p3 .905 .966 .753);--colors-lime-dark-p3-a-1: color(display-p3 .067 .941 0 / .009);--colors-lime-dark-p3-a-2: color(display-p3 .584 .996 .071 / .038);--colors-lime-dark-p3-a-3: color(display-p3 .69 1 .38 / .101);--colors-lime-dark-p3-a-4: color(display-p3 .729 1 .435 / .16);--colors-lime-dark-p3-a-5: color(display-p3 .745 1 .471 / .215);--colors-lime-dark-p3-a-6: color(display-p3 .769 1 .482 / .274);--colors-lime-dark-p3-a-7: color(display-p3 .769 1 .506 / .341);--colors-lime-dark-p3-a-8: color(display-p3 .784 1 .51 / .416);--colors-lime-dark-p3-a-9: color(display-p3 .839 1 .502 / .925);--colors-lime-dark-p3-a-10: color(display-p3 .871 1 .522 / .996);--colors-lime-dark-p3-a-11: color(display-p3 .771 .893 .485);--colors-lime-dark-p3-a-12: color(display-p3 .905 .966 .753);--colors-lime-a-1: var(--colors-lime-light-a-1);--colors-lime-a-2: var(--colors-lime-light-a-2);--colors-lime-a-3: var(--colors-lime-light-a-3);--colors-lime-a-4: var(--colors-lime-light-a-4);--colors-lime-a-5: var(--colors-lime-light-a-5);--colors-lime-a-6: var(--colors-lime-light-a-6);--colors-lime-a-7: var(--colors-lime-light-a-7);--colors-lime-a-8: var(--colors-lime-light-a-8);--colors-lime-a-9: var(--colors-lime-light-a-9);--colors-lime-a-10: var(--colors-lime-light-a-10);--colors-lime-a-11: var(--colors-lime-light-a-11);--colors-lime-a-12: var(--colors-lime-light-a-12);--colors-lime-p3-1: var(--colors-lime-light-p3-1);--colors-lime-p3-2: var(--colors-lime-light-p3-2);--colors-lime-p3-3: var(--colors-lime-light-p3-3);--colors-lime-p3-4: var(--colors-lime-light-p3-4);--colors-lime-p3-5: var(--colors-lime-light-p3-5);--colors-lime-p3-6: var(--colors-lime-light-p3-6);--colors-lime-p3-7: var(--colors-lime-light-p3-7);--colors-lime-p3-8: var(--colors-lime-light-p3-8);--colors-lime-p3-9: var(--colors-lime-light-p3-9);--colors-lime-p3-10: var(--colors-lime-light-p3-10);--colors-lime-p3-11: var(--colors-lime-light-p3-11);--colors-lime-p3-12: var(--colors-lime-light-p3-12);--colors-lime-p3-a-1: var(--colors-lime-light-p3-a-1);--colors-lime-p3-a-2: var(--colors-lime-light-p3-a-2);--colors-lime-p3-a-3: var(--colors-lime-light-p3-a-3);--colors-lime-p3-a-4: var(--colors-lime-light-p3-a-4);--colors-lime-p3-a-5: var(--colors-lime-light-p3-a-5);--colors-lime-p3-a-6: var(--colors-lime-light-p3-a-6);--colors-lime-p3-a-7: var(--colors-lime-light-p3-a-7);--colors-lime-p3-a-8: var(--colors-lime-light-p3-a-8);--colors-lime-p3-a-9: var(--colors-lime-light-p3-a-9);--colors-lime-p3-a-10: var(--colors-lime-light-p3-a-10);--colors-lime-p3-a-11: var(--colors-lime-light-p3-a-11);--colors-lime-p3-a-12: var(--colors-lime-light-p3-a-12);--colors-orange-1: var(--colors-orange-light-1);--colors-orange-2: var(--colors-orange-light-2);--colors-orange-3: var(--colors-orange-light-3);--colors-orange-4: var(--colors-orange-light-4);--colors-orange-5: var(--colors-orange-light-5);--colors-orange-6: var(--colors-orange-light-6);--colors-orange-7: var(--colors-orange-light-7);--colors-orange-8: var(--colors-orange-light-8);--colors-orange-9: var(--colors-orange-light-9);--colors-orange-10: var(--colors-orange-light-10);--colors-orange-11: var(--colors-orange-light-11);--colors-orange-12: var(--colors-orange-light-12);--colors-orange-light-1: #fefcfb;--colors-orange-light-2: #fff7ed;--colors-orange-light-3: #ffefd6;--colors-orange-light-4: #ffdfb5;--colors-orange-light-5: #ffd19a;--colors-orange-light-6: #ffc182;--colors-orange-light-7: #f5ae73;--colors-orange-light-8: #ec9455;--colors-orange-light-9: #f76b15;--colors-orange-light-10: #ef5f00;--colors-orange-light-11: #cc4e00;--colors-orange-light-12: #582d1d;--colors-orange-light-a-1: #c0400004;--colors-orange-light-a-2: #ff8e0012;--colors-orange-light-a-3: #ff9c0029;--colors-orange-light-a-4: #ff91014a;--colors-orange-light-a-5: #ff8b0065;--colors-orange-light-a-6: #ff81007d;--colors-orange-light-a-7: #ed6c008c;--colors-orange-light-a-8: #e35f00aa;--colors-orange-light-a-9: #f65e00ea;--colors-orange-light-a-10: #ef5f00;--colors-orange-light-a-11: #cc4e00;--colors-orange-light-a-12: #431200e2;--colors-orange-light-p3-1: color(display-p3 .995 .988 .985);--colors-orange-light-p3-2: color(display-p3 .994 .968 .934);--colors-orange-light-p3-3: color(display-p3 .989 .938 .85);--colors-orange-light-p3-4: color(display-p3 1 .874 .687);--colors-orange-light-p3-5: color(display-p3 1 .821 .583);--colors-orange-light-p3-6: color(display-p3 .975 .767 .545);--colors-orange-light-p3-7: color(display-p3 .919 .693 .486);--colors-orange-light-p3-8: color(display-p3 .877 .597 .379);--colors-orange-light-p3-9: color(display-p3 .9 .45 .2);--colors-orange-light-p3-10: color(display-p3 .87 .409 .164);--colors-orange-light-p3-11: color(display-p3 .76 .34 0);--colors-orange-light-p3-12: color(display-p3 .323 .185 .127);--colors-orange-light-p3-a-1: color(display-p3 .757 .267 .024 / .016);--colors-orange-light-p3-a-2: color(display-p3 .886 .533 .008 / .067);--colors-orange-light-p3-a-3: color(display-p3 .922 .584 .008 / .15);--colors-orange-light-p3-a-4: color(display-p3 1 .604 .004 / .314);--colors-orange-light-p3-a-5: color(display-p3 1 .569 .004 / .416);--colors-orange-light-p3-a-6: color(display-p3 .949 .494 .004 / .455);--colors-orange-light-p3-a-7: color(display-p3 .839 .408 0 / .514);--colors-orange-light-p3-a-8: color(display-p3 .804 .349 0 / .62);--colors-orange-light-p3-a-9: color(display-p3 .878 .314 0 / .8);--colors-orange-light-p3-a-10: color(display-p3 .843 .29 0 / .836);--colors-orange-light-p3-a-11: color(display-p3 .76 .34 0);--colors-orange-light-p3-a-12: color(display-p3 .323 .185 .127);--colors-orange-dark-1: #17120e;--colors-orange-dark-2: #1e160f;--colors-orange-dark-3: #331e0b;--colors-orange-dark-4: #462100;--colors-orange-dark-5: #562800;--colors-orange-dark-6: #66350c;--colors-orange-dark-7: #7e451d;--colors-orange-dark-8: #a35829;--colors-orange-dark-9: #f76b15;--colors-orange-dark-10: #ff801f;--colors-orange-dark-11: #ffa057;--colors-orange-dark-12: #ffe0c2;--colors-orange-dark-a-1: #ec360007;--colors-orange-dark-a-2: #fe6d000e;--colors-orange-dark-a-3: #fb6a0025;--colors-orange-dark-a-4: #ff590039;--colors-orange-dark-a-5: #ff61004a;--colors-orange-dark-a-6: #fd75045c;--colors-orange-dark-a-7: #ff832c75;--colors-orange-dark-a-8: #fe84389d;--colors-orange-dark-a-9: #fe6d15f7;--colors-orange-dark-a-10: #ff801f;--colors-orange-dark-a-11: #ffa057;--colors-orange-dark-a-12: #ffe0c2;--colors-orange-dark-p3-1: color(display-p3 .088 .07 .057);--colors-orange-dark-p3-2: color(display-p3 .113 .089 .061);--colors-orange-dark-p3-3: color(display-p3 .189 .12 .056);--colors-orange-dark-p3-4: color(display-p3 .262 .132 0);--colors-orange-dark-p3-5: color(display-p3 .315 .168 .016);--colors-orange-dark-p3-6: color(display-p3 .376 .219 .088);--colors-orange-dark-p3-7: color(display-p3 .465 .283 .147);--colors-orange-dark-p3-8: color(display-p3 .601 .359 .201);--colors-orange-dark-p3-9: color(display-p3 .9 .45 .2);--colors-orange-dark-p3-10: color(display-p3 .98 .51 .23);--colors-orange-dark-p3-11: color(display-p3 1 .63 .38);--colors-orange-dark-p3-12: color(display-p3 .98 .883 .775);--colors-orange-dark-p3-a-1: color(display-p3 .961 .247 0 / .022);--colors-orange-dark-p3-a-2: color(display-p3 .992 .529 0 / .051);--colors-orange-dark-p3-a-3: color(display-p3 .996 .486 0 / .131);--colors-orange-dark-p3-a-4: color(display-p3 .996 .384 0 / .211);--colors-orange-dark-p3-a-5: color(display-p3 1 .455 0 / .265);--colors-orange-dark-p3-a-6: color(display-p3 1 .529 .129 / .332);--colors-orange-dark-p3-a-7: color(display-p3 1 .569 .251 / .429);--colors-orange-dark-p3-a-8: color(display-p3 1 .584 .302 / .572);--colors-orange-dark-p3-a-9: color(display-p3 1 .494 .216 / .895);--colors-orange-dark-p3-a-10: color(display-p3 1 .522 .235 / .979);--colors-orange-dark-p3-a-11: color(display-p3 1 .63 .38);--colors-orange-dark-p3-a-12: color(display-p3 .98 .883 .775);--colors-orange-a-1: var(--colors-orange-light-a-1);--colors-orange-a-2: var(--colors-orange-light-a-2);--colors-orange-a-3: var(--colors-orange-light-a-3);--colors-orange-a-4: var(--colors-orange-light-a-4);--colors-orange-a-5: var(--colors-orange-light-a-5);--colors-orange-a-6: var(--colors-orange-light-a-6);--colors-orange-a-7: var(--colors-orange-light-a-7);--colors-orange-a-8: var(--colors-orange-light-a-8);--colors-orange-a-9: var(--colors-orange-light-a-9);--colors-orange-a-10: var(--colors-orange-light-a-10);--colors-orange-a-11: var(--colors-orange-light-a-11);--colors-orange-a-12: var(--colors-orange-light-a-12);--colors-orange-p3-1: var(--colors-orange-light-p3-1);--colors-orange-p3-2: var(--colors-orange-light-p3-2);--colors-orange-p3-3: var(--colors-orange-light-p3-3);--colors-orange-p3-4: var(--colors-orange-light-p3-4);--colors-orange-p3-5: var(--colors-orange-light-p3-5);--colors-orange-p3-6: var(--colors-orange-light-p3-6);--colors-orange-p3-7: var(--colors-orange-light-p3-7);--colors-orange-p3-8: var(--colors-orange-light-p3-8);--colors-orange-p3-9: var(--colors-orange-light-p3-9);--colors-orange-p3-10: var(--colors-orange-light-p3-10);--colors-orange-p3-11: var(--colors-orange-light-p3-11);--colors-orange-p3-12: var(--colors-orange-light-p3-12);--colors-orange-p3-a-1: var(--colors-orange-light-p3-a-1);--colors-orange-p3-a-2: var(--colors-orange-light-p3-a-2);--colors-orange-p3-a-3: var(--colors-orange-light-p3-a-3);--colors-orange-p3-a-4: var(--colors-orange-light-p3-a-4);--colors-orange-p3-a-5: var(--colors-orange-light-p3-a-5);--colors-orange-p3-a-6: var(--colors-orange-light-p3-a-6);--colors-orange-p3-a-7: var(--colors-orange-light-p3-a-7);--colors-orange-p3-a-8: var(--colors-orange-light-p3-a-8);--colors-orange-p3-a-9: var(--colors-orange-light-p3-a-9);--colors-orange-p3-a-10: var(--colors-orange-light-p3-a-10);--colors-orange-p3-a-11: var(--colors-orange-light-p3-a-11);--colors-orange-p3-a-12: var(--colors-orange-light-p3-a-12);--colors-pink-1: var(--colors-pink-light-1);--colors-pink-2: var(--colors-pink-light-2);--colors-pink-3: var(--colors-pink-light-3);--colors-pink-4: var(--colors-pink-light-4);--colors-pink-5: var(--colors-pink-light-5);--colors-pink-6: var(--colors-pink-light-6);--colors-pink-7: var(--colors-pink-light-7);--colors-pink-8: var(--colors-pink-light-8);--colors-pink-9: var(--colors-pink-light-9);--colors-pink-10: var(--colors-pink-light-10);--colors-pink-11: var(--colors-pink-light-11);--colors-pink-12: var(--colors-pink-light-12);--colors-pink-light-1: #fffcfe;--colors-pink-light-2: #fef7fb;--colors-pink-light-3: #fee9f5;--colors-pink-light-4: #fbdcef;--colors-pink-light-5: #f6cee7;--colors-pink-light-6: #efbfdd;--colors-pink-light-7: #e7acd0;--colors-pink-light-8: #dd93c2;--colors-pink-light-9: #d6409f;--colors-pink-light-10: #cf3897;--colors-pink-light-11: #c2298a;--colors-pink-light-12: #651249;--colors-pink-light-a-1: #ff00aa03;--colors-pink-light-a-2: #e0008008;--colors-pink-light-a-3: #f4008c16;--colors-pink-light-a-4: #e2008b23;--colors-pink-light-a-5: #d1008331;--colors-pink-light-a-6: #c0007840;--colors-pink-light-a-7: #b6006f53;--colors-pink-light-a-8: #af006f6c;--colors-pink-light-a-9: #c8007fbf;--colors-pink-light-a-10: #c2007ac7;--colors-pink-light-a-11: #b60074d6;--colors-pink-light-a-12: #59003bed;--colors-pink-light-p3-1: color(display-p3 .998 .989 .996);--colors-pink-light-p3-2: color(display-p3 .992 .97 .985);--colors-pink-light-p3-3: color(display-p3 .981 .917 .96);--colors-pink-light-p3-4: color(display-p3 .963 .867 .932);--colors-pink-light-p3-5: color(display-p3 .939 .815 .899);--colors-pink-light-p3-6: color(display-p3 .907 .756 .859);--colors-pink-light-p3-7: color(display-p3 .869 .683 .81);--colors-pink-light-p3-8: color(display-p3 .825 .59 .751);--colors-pink-light-p3-9: color(display-p3 .775 .297 .61);--colors-pink-light-p3-10: color(display-p3 .748 .27 .581);--colors-pink-light-p3-11: color(display-p3 .698 .219 .528);--colors-pink-light-p3-12: color(display-p3 .363 .101 .279);--colors-pink-light-p3-a-1: color(display-p3 .675 .024 .675 / .012);--colors-pink-light-p3-a-2: color(display-p3 .757 .02 .51 / .032);--colors-pink-light-p3-a-3: color(display-p3 .765 .008 .529 / .083);--colors-pink-light-p3-a-4: color(display-p3 .737 .008 .506 / .134);--colors-pink-light-p3-a-5: color(display-p3 .663 .004 .451 / .185);--colors-pink-light-p3-a-6: color(display-p3 .616 .004 .424 / .244);--colors-pink-light-p3-a-7: color(display-p3 .596 .004 .412 / .318);--colors-pink-light-p3-a-8: color(display-p3 .573 .004 .404 / .412);--colors-pink-light-p3-a-9: color(display-p3 .682 0 .447 / .702);--colors-pink-light-p3-a-10: color(display-p3 .655 0 .424 / .73);--colors-pink-light-p3-a-11: color(display-p3 .698 .219 .528);--colors-pink-light-p3-a-12: color(display-p3 .363 .101 .279);--colors-pink-dark-1: #191117;--colors-pink-dark-2: #21121d;--colors-pink-dark-3: #37172f;--colors-pink-dark-4: #4b143d;--colors-pink-dark-5: #591c47;--colors-pink-dark-6: #692955;--colors-pink-dark-7: #833869;--colors-pink-dark-8: #a84885;--colors-pink-dark-9: #d6409f;--colors-pink-dark-10: #de51a8;--colors-pink-dark-11: #ff8dcc;--colors-pink-dark-12: #fdd1ea;--colors-pink-dark-a-1: #f412bc09;--colors-pink-dark-a-2: #f420bb12;--colors-pink-dark-a-3: #fe37cc29;--colors-pink-dark-a-4: #fc1ec43f;--colors-pink-dark-a-5: #fd35c24e;--colors-pink-dark-a-6: #fd51c75f;--colors-pink-dark-a-7: #fd62c87b;--colors-pink-dark-a-8: #ff68c8a2;--colors-pink-dark-a-9: #fe49bcd4;--colors-pink-dark-a-10: #ff5cc0dc;--colors-pink-dark-a-11: #ff8dcc;--colors-pink-dark-a-12: #ffd3ecfd;--colors-pink-dark-p3-1: color(display-p3 .093 .068 .089);--colors-pink-dark-p3-2: color(display-p3 .121 .073 .11);--colors-pink-dark-p3-3: color(display-p3 .198 .098 .179);--colors-pink-dark-p3-4: color(display-p3 .271 .095 .231);--colors-pink-dark-p3-5: color(display-p3 .32 .127 .273);--colors-pink-dark-p3-6: color(display-p3 .382 .177 .326);--colors-pink-dark-p3-7: color(display-p3 .477 .238 .405);--colors-pink-dark-p3-8: color(display-p3 .612 .304 .51);--colors-pink-dark-p3-9: color(display-p3 .775 .297 .61);--colors-pink-dark-p3-10: color(display-p3 .808 .356 .645);--colors-pink-dark-p3-11: color(display-p3 1 .535 .78);--colors-pink-dark-p3-12: color(display-p3 .964 .826 .912);--colors-pink-dark-p3-a-1: color(display-p3 .984 .071 .855 / .03);--colors-pink-dark-p3-a-2: color(display-p3 1 .2 .8 / .059);--colors-pink-dark-p3-a-3: color(display-p3 1 .294 .886 / .139);--colors-pink-dark-p3-a-4: color(display-p3 1 .192 .82 / .219);--colors-pink-dark-p3-a-5: color(display-p3 1 .282 .827 / .274);--colors-pink-dark-p3-a-6: color(display-p3 1 .396 .835 / .337);--colors-pink-dark-p3-a-7: color(display-p3 1 .459 .831 / .442);--colors-pink-dark-p3-a-8: color(display-p3 1 .478 .827 / .585);--colors-pink-dark-p3-a-9: color(display-p3 1 .373 .784 / .761);--colors-pink-dark-p3-a-10: color(display-p3 1 .435 .792 / .795);--colors-pink-dark-p3-a-11: color(display-p3 1 .535 .78);--colors-pink-dark-p3-a-12: color(display-p3 .964 .826 .912);--colors-pink-a-1: var(--colors-pink-light-a-1);--colors-pink-a-2: var(--colors-pink-light-a-2);--colors-pink-a-3: var(--colors-pink-light-a-3);--colors-pink-a-4: var(--colors-pink-light-a-4);--colors-pink-a-5: var(--colors-pink-light-a-5);--colors-pink-a-6: var(--colors-pink-light-a-6);--colors-pink-a-7: var(--colors-pink-light-a-7);--colors-pink-a-8: var(--colors-pink-light-a-8);--colors-pink-a-9: var(--colors-pink-light-a-9);--colors-pink-a-10: var(--colors-pink-light-a-10);--colors-pink-a-11: var(--colors-pink-light-a-11);--colors-pink-a-12: var(--colors-pink-light-a-12);--colors-pink-p3-1: var(--colors-pink-light-p3-1);--colors-pink-p3-2: var(--colors-pink-light-p3-2);--colors-pink-p3-3: var(--colors-pink-light-p3-3);--colors-pink-p3-4: var(--colors-pink-light-p3-4);--colors-pink-p3-5: var(--colors-pink-light-p3-5);--colors-pink-p3-6: var(--colors-pink-light-p3-6);--colors-pink-p3-7: var(--colors-pink-light-p3-7);--colors-pink-p3-8: var(--colors-pink-light-p3-8);--colors-pink-p3-9: var(--colors-pink-light-p3-9);--colors-pink-p3-10: var(--colors-pink-light-p3-10);--colors-pink-p3-11: var(--colors-pink-light-p3-11);--colors-pink-p3-12: var(--colors-pink-light-p3-12);--colors-pink-p3-a-1: var(--colors-pink-light-p3-a-1);--colors-pink-p3-a-2: var(--colors-pink-light-p3-a-2);--colors-pink-p3-a-3: var(--colors-pink-light-p3-a-3);--colors-pink-p3-a-4: var(--colors-pink-light-p3-a-4);--colors-pink-p3-a-5: var(--colors-pink-light-p3-a-5);--colors-pink-p3-a-6: var(--colors-pink-light-p3-a-6);--colors-pink-p3-a-7: var(--colors-pink-light-p3-a-7);--colors-pink-p3-a-8: var(--colors-pink-light-p3-a-8);--colors-pink-p3-a-9: var(--colors-pink-light-p3-a-9);--colors-pink-p3-a-10: var(--colors-pink-light-p3-a-10);--colors-pink-p3-a-11: var(--colors-pink-light-p3-a-11);--colors-pink-p3-a-12: var(--colors-pink-light-p3-a-12);--colors-purple-1: var(--colors-purple-light-1);--colors-purple-2: var(--colors-purple-light-2);--colors-purple-3: var(--colors-purple-light-3);--colors-purple-4: var(--colors-purple-light-4);--colors-purple-5: var(--colors-purple-light-5);--colors-purple-6: var(--colors-purple-light-6);--colors-purple-7: var(--colors-purple-light-7);--colors-purple-8: var(--colors-purple-light-8);--colors-purple-9: var(--colors-purple-light-9);--colors-purple-10: var(--colors-purple-light-10);--colors-purple-11: var(--colors-purple-light-11);--colors-purple-12: var(--colors-purple-light-12);--colors-purple-light-1: #fefcfe;--colors-purple-light-2: #fbf7fe;--colors-purple-light-3: #f7edfe;--colors-purple-light-4: #f2e2fc;--colors-purple-light-5: #ead5f9;--colors-purple-light-6: #e0c4f4;--colors-purple-light-7: #d1afec;--colors-purple-light-8: #be93e4;--colors-purple-light-9: #8e4ec6;--colors-purple-light-10: #8347b9;--colors-purple-light-11: #8145b5;--colors-purple-light-12: #402060;--colors-purple-light-a-1: #aa00aa03;--colors-purple-light-a-2: #8000e008;--colors-purple-light-a-3: #8e00f112;--colors-purple-light-a-4: #8d00e51d;--colors-purple-light-a-5: #8000db2a;--colors-purple-light-a-6: #7a01d03b;--colors-purple-light-a-7: #6d00c350;--colors-purple-light-a-8: #6600c06c;--colors-purple-light-a-9: #5c00adb1;--colors-purple-light-a-10: #53009eb8;--colors-purple-light-a-11: #52009aba;--colors-purple-light-a-12: #250049df;--colors-purple-light-p3-1: color(display-p3 .995 .988 .996);--colors-purple-light-p3-2: color(display-p3 .983 .971 .993);--colors-purple-light-p3-3: color(display-p3 .963 .931 .989);--colors-purple-light-p3-4: color(display-p3 .937 .888 .981);--colors-purple-light-p3-5: color(display-p3 .904 .837 .966);--colors-purple-light-p3-6: color(display-p3 .86 .774 .942);--colors-purple-light-p3-7: color(display-p3 .799 .69 .91);--colors-purple-light-p3-8: color(display-p3 .719 .583 .874);--colors-purple-light-p3-9: color(display-p3 .523 .318 .751);--colors-purple-light-p3-10: color(display-p3 .483 .289 .7);--colors-purple-light-p3-11: color(display-p3 .473 .281 .687);--colors-purple-light-p3-12: color(display-p3 .234 .132 .363);--colors-purple-light-p3-a-1: color(display-p3 .675 .024 .675 / .012);--colors-purple-light-p3-a-2: color(display-p3 .443 .024 .722 / .028);--colors-purple-light-p3-a-3: color(display-p3 .506 .008 .835 / .071);--colors-purple-light-p3-a-4: color(display-p3 .451 .004 .831 / .114);--colors-purple-light-p3-a-5: color(display-p3 .431 .004 .788 / .165);--colors-purple-light-p3-a-6: color(display-p3 .384 .004 .745 / .228);--colors-purple-light-p3-a-7: color(display-p3 .357 .004 .71 / .31);--colors-purple-light-p3-a-8: color(display-p3 .322 .004 .702 / .416);--colors-purple-light-p3-a-9: color(display-p3 .298 0 .639 / .683);--colors-purple-light-p3-a-10: color(display-p3 .271 0 .58 / .71);--colors-purple-light-p3-a-11: color(display-p3 .473 .281 .687);--colors-purple-light-p3-a-12: color(display-p3 .234 .132 .363);--colors-purple-dark-1: #18111b;--colors-purple-dark-2: #1e1523;--colors-purple-dark-3: #301c3b;--colors-purple-dark-4: #3d224e;--colors-purple-dark-5: #48295c;--colors-purple-dark-6: #54346b;--colors-purple-dark-7: #664282;--colors-purple-dark-8: #8457aa;--colors-purple-dark-9: #8e4ec6;--colors-purple-dark-10: #9a5cd0;--colors-purple-dark-11: #d19dff;--colors-purple-dark-12: #ecd9fa;--colors-purple-dark-a-1: #b412f90b;--colors-purple-dark-a-2: #b744f714;--colors-purple-dark-a-3: #c150ff2d;--colors-purple-dark-a-4: #bb53fd42;--colors-purple-dark-a-5: #be5cfd51;--colors-purple-dark-a-6: #c16dfd61;--colors-purple-dark-a-7: #c378fd7a;--colors-purple-dark-a-8: #c47effa4;--colors-purple-dark-a-9: #b661ffc2;--colors-purple-dark-a-10: #bc6fffcd;--colors-purple-dark-a-11: #d19dff;--colors-purple-dark-a-12: #f1ddfffa;--colors-purple-dark-p3-1: color(display-p3 .09 .068 .103);--colors-purple-dark-p3-2: color(display-p3 .113 .082 .134);--colors-purple-dark-p3-3: color(display-p3 .175 .112 .224);--colors-purple-dark-p3-4: color(display-p3 .224 .137 .297);--colors-purple-dark-p3-5: color(display-p3 .264 .167 .349);--colors-purple-dark-p3-6: color(display-p3 .311 .208 .406);--colors-purple-dark-p3-7: color(display-p3 .381 .266 .496);--colors-purple-dark-p3-8: color(display-p3 .49 .349 .649);--colors-purple-dark-p3-9: color(display-p3 .523 .318 .751);--colors-purple-dark-p3-10: color(display-p3 .57 .373 .791);--colors-purple-dark-p3-11: color(display-p3 .8 .62 1);--colors-purple-dark-p3-12: color(display-p3 .913 .854 .971);--colors-purple-dark-p3-a-1: color(display-p3 .686 .071 .996 / .038);--colors-purple-dark-p3-a-2: color(display-p3 .722 .286 .996 / .072);--colors-purple-dark-p3-a-3: color(display-p3 .718 .349 .996 / .169);--colors-purple-dark-p3-a-4: color(display-p3 .702 .353 1 / .248);--colors-purple-dark-p3-a-5: color(display-p3 .718 .404 1 / .303);--colors-purple-dark-p3-a-6: color(display-p3 .733 .455 1 / .366);--colors-purple-dark-p3-a-7: color(display-p3 .753 .506 1 / .458);--colors-purple-dark-p3-a-8: color(display-p3 .749 .522 1 / .622);--colors-purple-dark-p3-a-9: color(display-p3 .686 .408 1 / .736);--colors-purple-dark-p3-a-10: color(display-p3 .71 .459 1 / .778);--colors-purple-dark-p3-a-11: color(display-p3 .8 .62 1);--colors-purple-dark-p3-a-12: color(display-p3 .913 .854 .971);--colors-purple-a-1: var(--colors-purple-light-a-1);--colors-purple-a-2: var(--colors-purple-light-a-2);--colors-purple-a-3: var(--colors-purple-light-a-3);--colors-purple-a-4: var(--colors-purple-light-a-4);--colors-purple-a-5: var(--colors-purple-light-a-5);--colors-purple-a-6: var(--colors-purple-light-a-6);--colors-purple-a-7: var(--colors-purple-light-a-7);--colors-purple-a-8: var(--colors-purple-light-a-8);--colors-purple-a-9: var(--colors-purple-light-a-9);--colors-purple-a-10: var(--colors-purple-light-a-10);--colors-purple-a-11: var(--colors-purple-light-a-11);--colors-purple-a-12: var(--colors-purple-light-a-12);--colors-purple-p3-1: var(--colors-purple-light-p3-1);--colors-purple-p3-2: var(--colors-purple-light-p3-2);--colors-purple-p3-3: var(--colors-purple-light-p3-3);--colors-purple-p3-4: var(--colors-purple-light-p3-4);--colors-purple-p3-5: var(--colors-purple-light-p3-5);--colors-purple-p3-6: var(--colors-purple-light-p3-6);--colors-purple-p3-7: var(--colors-purple-light-p3-7);--colors-purple-p3-8: var(--colors-purple-light-p3-8);--colors-purple-p3-9: var(--colors-purple-light-p3-9);--colors-purple-p3-10: var(--colors-purple-light-p3-10);--colors-purple-p3-11: var(--colors-purple-light-p3-11);--colors-purple-p3-12: var(--colors-purple-light-p3-12);--colors-purple-p3-a-1: var(--colors-purple-light-p3-a-1);--colors-purple-p3-a-2: var(--colors-purple-light-p3-a-2);--colors-purple-p3-a-3: var(--colors-purple-light-p3-a-3);--colors-purple-p3-a-4: var(--colors-purple-light-p3-a-4);--colors-purple-p3-a-5: var(--colors-purple-light-p3-a-5);--colors-purple-p3-a-6: var(--colors-purple-light-p3-a-6);--colors-purple-p3-a-7: var(--colors-purple-light-p3-a-7);--colors-purple-p3-a-8: var(--colors-purple-light-p3-a-8);--colors-purple-p3-a-9: var(--colors-purple-light-p3-a-9);--colors-purple-p3-a-10: var(--colors-purple-light-p3-a-10);--colors-purple-p3-a-11: var(--colors-purple-light-p3-a-11);--colors-purple-p3-a-12: var(--colors-purple-light-p3-a-12);--colors-red-1: var(--colors-red-light-1);--colors-red-2: var(--colors-red-light-2);--colors-red-3: var(--colors-red-light-3);--colors-red-4: var(--colors-red-light-4);--colors-red-5: var(--colors-red-light-5);--colors-red-6: var(--colors-red-light-6);--colors-red-7: var(--colors-red-light-7);--colors-red-8: var(--colors-red-light-8);--colors-red-9: var(--colors-red-light-9);--colors-red-10: var(--colors-red-light-10);--colors-red-11: var(--colors-red-light-11);--colors-red-12: var(--colors-red-light-12);--colors-red-light-1: #fffcfc;--colors-red-light-2: #fff7f7;--colors-red-light-3: #feebec;--colors-red-light-4: #ffdbdc;--colors-red-light-5: #ffcdce;--colors-red-light-6: #fdbdbe;--colors-red-light-7: #f4a9aa;--colors-red-light-8: #eb8e90;--colors-red-light-9: #e5484d;--colors-red-light-10: #dc3e42;--colors-red-light-11: #ce2c31;--colors-red-light-12: #641723;--colors-red-light-a-1: #ff000003;--colors-red-light-a-2: #ff000008;--colors-red-light-a-3: #f3000d14;--colors-red-light-a-4: #ff000824;--colors-red-light-a-5: #ff000632;--colors-red-light-a-6: #f8000442;--colors-red-light-a-7: #df000356;--colors-red-light-a-8: #d2000571;--colors-red-light-a-9: #db0007b7;--colors-red-light-a-10: #d10005c1;--colors-red-light-a-11: #c40006d3;--colors-red-light-a-12: #55000de8;--colors-red-light-p3-1: color(display-p3 .998 .989 .988);--colors-red-light-p3-2: color(display-p3 .995 .971 .971);--colors-red-light-p3-3: color(display-p3 .985 .925 .925);--colors-red-light-p3-4: color(display-p3 .999 .866 .866);--colors-red-light-p3-5: color(display-p3 .984 .812 .811);--colors-red-light-p3-6: color(display-p3 .955 .751 .749);--colors-red-light-p3-7: color(display-p3 .915 .675 .672);--colors-red-light-p3-8: color(display-p3 .872 .575 .572);--colors-red-light-p3-9: color(display-p3 .83 .329 .324);--colors-red-light-p3-10: color(display-p3 .798 .294 .285);--colors-red-light-p3-11: color(display-p3 .744 .234 .222);--colors-red-light-p3-12: color(display-p3 .36 .115 .143);--colors-red-light-p3-a-1: color(display-p3 .675 .024 .024 / .012);--colors-red-light-p3-a-2: color(display-p3 .863 .024 .024 / .028);--colors-red-light-p3-a-3: color(display-p3 .792 .008 .008 / .075);--colors-red-light-p3-a-4: color(display-p3 1 .008 .008 / .134);--colors-red-light-p3-a-5: color(display-p3 .918 .008 .008 / .189);--colors-red-light-p3-a-6: color(display-p3 .831 .02 .004 / .251);--colors-red-light-p3-a-7: color(display-p3 .741 .016 .004 / .33);--colors-red-light-p3-a-8: color(display-p3 .698 .012 .004 / .428);--colors-red-light-p3-a-9: color(display-p3 .749 .008 0 / .675);--colors-red-light-p3-a-10: color(display-p3 .714 .012 0 / .714);--colors-red-light-p3-a-11: color(display-p3 .744 .234 .222);--colors-red-light-p3-a-12: color(display-p3 .36 .115 .143);--colors-red-dark-1: #191111;--colors-red-dark-2: #201314;--colors-red-dark-3: #3b1219;--colors-red-dark-4: #500f1c;--colors-red-dark-5: #611623;--colors-red-dark-6: #72232d;--colors-red-dark-7: #8c333a;--colors-red-dark-8: #b54548;--colors-red-dark-9: #e5484d;--colors-red-dark-10: #ec5d5e;--colors-red-dark-11: #ff9592;--colors-red-dark-12: #ffd1d9;--colors-red-dark-a-1: #f4121209;--colors-red-dark-a-2: #f22f3e11;--colors-red-dark-a-3: #ff173f2d;--colors-red-dark-a-4: #fe0a3b44;--colors-red-dark-a-5: #ff204756;--colors-red-dark-a-6: #ff3e5668;--colors-red-dark-a-7: #ff536184;--colors-red-dark-a-8: #ff5d61b0;--colors-red-dark-a-9: #fe4e54e4;--colors-red-dark-a-10: #ff6465eb;--colors-red-dark-a-11: #ff9592;--colors-red-dark-a-12: #ffd1d9;--colors-red-dark-p3-1: color(display-p3 .093 .068 .067);--colors-red-dark-p3-2: color(display-p3 .118 .077 .079);--colors-red-dark-p3-3: color(display-p3 .211 .081 .099);--colors-red-dark-p3-4: color(display-p3 .287 .079 .113);--colors-red-dark-p3-5: color(display-p3 .348 .11 .142);--colors-red-dark-p3-6: color(display-p3 .414 .16 .183);--colors-red-dark-p3-7: color(display-p3 .508 .224 .236);--colors-red-dark-p3-8: color(display-p3 .659 .298 .297);--colors-red-dark-p3-9: color(display-p3 .83 .329 .324);--colors-red-dark-p3-10: color(display-p3 .861 .403 .387);--colors-red-dark-p3-11: color(display-p3 1 .57 .55);--colors-red-dark-p3-12: color(display-p3 .971 .826 .852);--colors-red-dark-p3-a-1: color(display-p3 .984 .071 .071 / .03);--colors-red-dark-p3-a-2: color(display-p3 .996 .282 .282 / .055);--colors-red-dark-p3-a-3: color(display-p3 1 .169 .271 / .156);--colors-red-dark-p3-a-4: color(display-p3 1 .118 .267 / .236);--colors-red-dark-p3-a-5: color(display-p3 1 .212 .314 / .303);--colors-red-dark-p3-a-6: color(display-p3 1 .318 .38 / .374);--colors-red-dark-p3-a-7: color(display-p3 1 .4 .424 / .475);--colors-red-dark-p3-a-8: color(display-p3 1 .431 .431 / .635);--colors-red-dark-p3-a-9: color(display-p3 1 .388 .384 / .82);--colors-red-dark-p3-a-10: color(display-p3 1 .463 .447 / .853);--colors-red-dark-p3-a-11: color(display-p3 1 .57 .55);--colors-red-dark-p3-a-12: color(display-p3 .971 .826 .852);--colors-red-a-1: var(--colors-red-light-a-1);--colors-red-a-2: var(--colors-red-light-a-2);--colors-red-a-3: var(--colors-red-light-a-3);--colors-red-a-4: var(--colors-red-light-a-4);--colors-red-a-5: var(--colors-red-light-a-5);--colors-red-a-6: var(--colors-red-light-a-6);--colors-red-a-7: var(--colors-red-light-a-7);--colors-red-a-8: var(--colors-red-light-a-8);--colors-red-a-9: var(--colors-red-light-a-9);--colors-red-a-10: var(--colors-red-light-a-10);--colors-red-a-11: var(--colors-red-light-a-11);--colors-red-a-12: var(--colors-red-light-a-12);--colors-red-p3-1: var(--colors-red-light-p3-1);--colors-red-p3-2: var(--colors-red-light-p3-2);--colors-red-p3-3: var(--colors-red-light-p3-3);--colors-red-p3-4: var(--colors-red-light-p3-4);--colors-red-p3-5: var(--colors-red-light-p3-5);--colors-red-p3-6: var(--colors-red-light-p3-6);--colors-red-p3-7: var(--colors-red-light-p3-7);--colors-red-p3-8: var(--colors-red-light-p3-8);--colors-red-p3-9: var(--colors-red-light-p3-9);--colors-red-p3-10: var(--colors-red-light-p3-10);--colors-red-p3-11: var(--colors-red-light-p3-11);--colors-red-p3-12: var(--colors-red-light-p3-12);--colors-red-p3-a-1: var(--colors-red-light-p3-a-1);--colors-red-p3-a-2: var(--colors-red-light-p3-a-2);--colors-red-p3-a-3: var(--colors-red-light-p3-a-3);--colors-red-p3-a-4: var(--colors-red-light-p3-a-4);--colors-red-p3-a-5: var(--colors-red-light-p3-a-5);--colors-red-p3-a-6: var(--colors-red-light-p3-a-6);--colors-red-p3-a-7: var(--colors-red-light-p3-a-7);--colors-red-p3-a-8: var(--colors-red-light-p3-a-8);--colors-red-p3-a-9: var(--colors-red-light-p3-a-9);--colors-red-p3-a-10: var(--colors-red-light-p3-a-10);--colors-red-p3-a-11: var(--colors-red-light-p3-a-11);--colors-red-p3-a-12: var(--colors-red-light-p3-a-12);--colors-ruby-1: var(--colors-ruby-light-1);--colors-ruby-2: var(--colors-ruby-light-2);--colors-ruby-3: var(--colors-ruby-light-3);--colors-ruby-4: var(--colors-ruby-light-4);--colors-ruby-5: var(--colors-ruby-light-5);--colors-ruby-6: var(--colors-ruby-light-6);--colors-ruby-7: var(--colors-ruby-light-7);--colors-ruby-8: var(--colors-ruby-light-8);--colors-ruby-9: var(--colors-ruby-light-9);--colors-ruby-10: var(--colors-ruby-light-10);--colors-ruby-11: var(--colors-ruby-light-11);--colors-ruby-12: var(--colors-ruby-light-12);--colors-ruby-light-1: #fffcfd;--colors-ruby-light-2: #fff7f8;--colors-ruby-light-3: #feeaed;--colors-ruby-light-4: #ffdce1;--colors-ruby-light-5: #ffced6;--colors-ruby-light-6: #f8bfc8;--colors-ruby-light-7: #efacb8;--colors-ruby-light-8: #e592a3;--colors-ruby-light-9: #e54666;--colors-ruby-light-10: #dc3b5d;--colors-ruby-light-11: #ca244d;--colors-ruby-light-12: #64172b;--colors-ruby-light-a-1: #ff005503;--colors-ruby-light-a-2: #ff002008;--colors-ruby-light-a-3: #f3002515;--colors-ruby-light-a-4: #ff002523;--colors-ruby-light-a-5: #ff002a31;--colors-ruby-light-a-6: #e4002440;--colors-ruby-light-a-7: #ce002553;--colors-ruby-light-a-8: #c300286d;--colors-ruby-light-a-9: #db002cb9;--colors-ruby-light-a-10: #d2002cc4;--colors-ruby-light-a-11: #c10030db;--colors-ruby-light-a-12: #550016e8;--colors-ruby-light-p3-1: color(display-p3 .998 .989 .992);--colors-ruby-light-p3-2: color(display-p3 .995 .971 .974);--colors-ruby-light-p3-3: color(display-p3 .983 .92 .928);--colors-ruby-light-p3-4: color(display-p3 .987 .869 .885);--colors-ruby-light-p3-5: color(display-p3 .968 .817 .839);--colors-ruby-light-p3-6: color(display-p3 .937 .758 .786);--colors-ruby-light-p3-7: color(display-p3 .897 .685 .721);--colors-ruby-light-p3-8: color(display-p3 .851 .588 .639);--colors-ruby-light-p3-9: color(display-p3 .83 .323 .408);--colors-ruby-light-p3-10: color(display-p3 .795 .286 .375);--colors-ruby-light-p3-11: color(display-p3 .728 .211 .311);--colors-ruby-light-p3-12: color(display-p3 .36 .115 .171);--colors-ruby-light-p3-a-1: color(display-p3 .675 .024 .349 / .012);--colors-ruby-light-p3-a-2: color(display-p3 .863 .024 .024 / .028);--colors-ruby-light-p3-a-3: color(display-p3 .804 .008 .11 / .079);--colors-ruby-light-p3-a-4: color(display-p3 .91 .008 .125 / .13);--colors-ruby-light-p3-a-5: color(display-p3 .831 .004 .133 / .185);--colors-ruby-light-p3-a-6: color(display-p3 .745 .004 .118 / .244);--colors-ruby-light-p3-a-7: color(display-p3 .678 .004 .114 / .314);--colors-ruby-light-p3-a-8: color(display-p3 .639 .004 .125 / .412);--colors-ruby-light-p3-a-9: color(display-p3 .753 0 .129 / .679);--colors-ruby-light-p3-a-10: color(display-p3 .714 0 .125 / .714);--colors-ruby-light-p3-a-11: color(display-p3 .728 .211 .311);--colors-ruby-light-p3-a-12: color(display-p3 .36 .115 .171);--colors-ruby-dark-1: #191113;--colors-ruby-dark-2: #1e1517;--colors-ruby-dark-3: #3a141e;--colors-ruby-dark-4: #4e1325;--colors-ruby-dark-5: #5e1a2e;--colors-ruby-dark-6: #6f2539;--colors-ruby-dark-7: #883447;--colors-ruby-dark-8: #b3445a;--colors-ruby-dark-9: #e54666;--colors-ruby-dark-10: #ec5a72;--colors-ruby-dark-11: #ff949d;--colors-ruby-dark-12: #fed2e1;--colors-ruby-dark-a-1: #f4124a09;--colors-ruby-dark-a-2: #fe5a7f0e;--colors-ruby-dark-a-3: #ff235d2c;--colors-ruby-dark-a-4: #fd195e42;--colors-ruby-dark-a-5: #fe2d6b53;--colors-ruby-dark-a-6: #ff447665;--colors-ruby-dark-a-7: #ff577d80;--colors-ruby-dark-a-8: #ff5c7cae;--colors-ruby-dark-a-9: #fe4c70e4;--colors-ruby-dark-a-10: #ff617beb;--colors-ruby-dark-a-11: #ff949d;--colors-ruby-dark-a-12: #ffd3e2fe;--colors-ruby-dark-p3-1: color(display-p3 .093 .068 .074);--colors-ruby-dark-p3-2: color(display-p3 .113 .083 .089);--colors-ruby-dark-p3-3: color(display-p3 .208 .088 .117);--colors-ruby-dark-p3-4: color(display-p3 .279 .092 .147);--colors-ruby-dark-p3-5: color(display-p3 .337 .12 .18);--colors-ruby-dark-p3-6: color(display-p3 .401 .166 .223);--colors-ruby-dark-p3-7: color(display-p3 .495 .224 .281);--colors-ruby-dark-p3-8: color(display-p3 .652 .295 .359);--colors-ruby-dark-p3-9: color(display-p3 .83 .323 .408);--colors-ruby-dark-p3-10: color(display-p3 .857 .392 .455);--colors-ruby-dark-p3-11: color(display-p3 1 .57 .59);--colors-ruby-dark-p3-12: color(display-p3 .968 .83 .88);--colors-ruby-dark-p3-a-1: color(display-p3 .984 .071 .329 / .03);--colors-ruby-dark-p3-a-2: color(display-p3 .992 .376 .529 / .051);--colors-ruby-dark-p3-a-3: color(display-p3 .996 .196 .404 / .152);--colors-ruby-dark-p3-a-4: color(display-p3 1 .173 .416 / .227);--colors-ruby-dark-p3-a-5: color(display-p3 1 .259 .459 / .29);--colors-ruby-dark-p3-a-6: color(display-p3 1 .341 .506 / .358);--colors-ruby-dark-p3-a-7: color(display-p3 1 .412 .541 / .458);--colors-ruby-dark-p3-a-8: color(display-p3 1 .431 .537 / .627);--colors-ruby-dark-p3-a-9: color(display-p3 1 .376 .482 / .82);--colors-ruby-dark-p3-a-10: color(display-p3 1 .447 .522 / .849);--colors-ruby-dark-p3-a-11: color(display-p3 1 .57 .59);--colors-ruby-dark-p3-a-12: color(display-p3 .968 .83 .88);--colors-ruby-a-1: var(--colors-ruby-light-a-1);--colors-ruby-a-2: var(--colors-ruby-light-a-2);--colors-ruby-a-3: var(--colors-ruby-light-a-3);--colors-ruby-a-4: var(--colors-ruby-light-a-4);--colors-ruby-a-5: var(--colors-ruby-light-a-5);--colors-ruby-a-6: var(--colors-ruby-light-a-6);--colors-ruby-a-7: var(--colors-ruby-light-a-7);--colors-ruby-a-8: var(--colors-ruby-light-a-8);--colors-ruby-a-9: var(--colors-ruby-light-a-9);--colors-ruby-a-10: var(--colors-ruby-light-a-10);--colors-ruby-a-11: var(--colors-ruby-light-a-11);--colors-ruby-a-12: var(--colors-ruby-light-a-12);--colors-ruby-p3-1: var(--colors-ruby-light-p3-1);--colors-ruby-p3-2: var(--colors-ruby-light-p3-2);--colors-ruby-p3-3: var(--colors-ruby-light-p3-3);--colors-ruby-p3-4: var(--colors-ruby-light-p3-4);--colors-ruby-p3-5: var(--colors-ruby-light-p3-5);--colors-ruby-p3-6: var(--colors-ruby-light-p3-6);--colors-ruby-p3-7: var(--colors-ruby-light-p3-7);--colors-ruby-p3-8: var(--colors-ruby-light-p3-8);--colors-ruby-p3-9: var(--colors-ruby-light-p3-9);--colors-ruby-p3-10: var(--colors-ruby-light-p3-10);--colors-ruby-p3-11: var(--colors-ruby-light-p3-11);--colors-ruby-p3-12: var(--colors-ruby-light-p3-12);--colors-ruby-p3-a-1: var(--colors-ruby-light-p3-a-1);--colors-ruby-p3-a-2: var(--colors-ruby-light-p3-a-2);--colors-ruby-p3-a-3: var(--colors-ruby-light-p3-a-3);--colors-ruby-p3-a-4: var(--colors-ruby-light-p3-a-4);--colors-ruby-p3-a-5: var(--colors-ruby-light-p3-a-5);--colors-ruby-p3-a-6: var(--colors-ruby-light-p3-a-6);--colors-ruby-p3-a-7: var(--colors-ruby-light-p3-a-7);--colors-ruby-p3-a-8: var(--colors-ruby-light-p3-a-8);--colors-ruby-p3-a-9: var(--colors-ruby-light-p3-a-9);--colors-ruby-p3-a-10: var(--colors-ruby-light-p3-a-10);--colors-ruby-p3-a-11: var(--colors-ruby-light-p3-a-11);--colors-ruby-p3-a-12: var(--colors-ruby-light-p3-a-12);--colors-teal-1: var(--colors-teal-light-1);--colors-teal-2: var(--colors-teal-light-2);--colors-teal-3: var(--colors-teal-light-3);--colors-teal-4: var(--colors-teal-light-4);--colors-teal-5: var(--colors-teal-light-5);--colors-teal-6: var(--colors-teal-light-6);--colors-teal-7: var(--colors-teal-light-7);--colors-teal-8: var(--colors-teal-light-8);--colors-teal-9: var(--colors-teal-light-9);--colors-teal-10: var(--colors-teal-light-10);--colors-teal-11: var(--colors-teal-light-11);--colors-teal-12: var(--colors-teal-light-12);--colors-teal-light-1: #fafefd;--colors-teal-light-2: #f3fbf9;--colors-teal-light-3: #e0f8f3;--colors-teal-light-4: #ccf3ea;--colors-teal-light-5: #b8eae0;--colors-teal-light-6: #a1ded2;--colors-teal-light-7: #83cdc1;--colors-teal-light-8: #53b9ab;--colors-teal-light-9: #12a594;--colors-teal-light-10: #0d9b8a;--colors-teal-light-11: #008573;--colors-teal-light-12: #0d3d38;--colors-teal-light-a-1: #00cc9905;--colors-teal-light-a-2: #00aa800c;--colors-teal-light-a-3: #00c69d1f;--colors-teal-light-a-4: #00c39633;--colors-teal-light-a-5: #00b49047;--colors-teal-light-a-6: #00a6855e;--colors-teal-light-a-7: #0099807c;--colors-teal-light-a-8: #009783ac;--colors-teal-light-a-9: #009e8ced;--colors-teal-light-a-10: #009684f2;--colors-teal-light-a-11: #008573;--colors-teal-light-a-12: #00332df2;--colors-teal-light-p3-1: color(display-p3 .983 .996 .992);--colors-teal-light-p3-2: color(display-p3 .958 .983 .976);--colors-teal-light-p3-3: color(display-p3 .895 .971 .952);--colors-teal-light-p3-4: color(display-p3 .831 .949 .92);--colors-teal-light-p3-5: color(display-p3 .761 .914 .878);--colors-teal-light-p3-6: color(display-p3 .682 .864 .825);--colors-teal-light-p3-7: color(display-p3 .581 .798 .756);--colors-teal-light-p3-8: color(display-p3 .433 .716 .671);--colors-teal-light-p3-9: color(display-p3 .297 .637 .581);--colors-teal-light-p3-10: color(display-p3 .275 .599 .542);--colors-teal-light-p3-11: color(display-p3 .08 .5 .43);--colors-teal-light-p3-12: color(display-p3 .11 .235 .219);--colors-teal-light-p3-a-1: color(display-p3 .024 .757 .514 / .016);--colors-teal-light-p3-a-2: color(display-p3 .02 .647 .467 / .044);--colors-teal-light-p3-a-3: color(display-p3 .004 .741 .557 / .106);--colors-teal-light-p3-a-4: color(display-p3 .004 .702 .537 / .169);--colors-teal-light-p3-a-5: color(display-p3 .004 .643 .494 / .24);--colors-teal-light-p3-a-6: color(display-p3 .004 .569 .447 / .318);--colors-teal-light-p3-a-7: color(display-p3 .004 .518 .424 / .42);--colors-teal-light-p3-a-8: color(display-p3 0 .506 .424 / .569);--colors-teal-light-p3-a-9: color(display-p3 0 .482 .404 / .702);--colors-teal-light-p3-a-10: color(display-p3 0 .451 .369 / .726);--colors-teal-light-p3-a-11: color(display-p3 .08 .5 .43);--colors-teal-light-p3-a-12: color(display-p3 .11 .235 .219);--colors-teal-dark-1: #0d1514;--colors-teal-dark-2: #111c1b;--colors-teal-dark-3: #0d2d2a;--colors-teal-dark-4: #023b37;--colors-teal-dark-5: #084843;--colors-teal-dark-6: #145750;--colors-teal-dark-7: #1c6961;--colors-teal-dark-8: #207e73;--colors-teal-dark-9: #12a594;--colors-teal-dark-10: #0eb39e;--colors-teal-dark-11: #0bd8b6;--colors-teal-dark-12: #adf0dd;--colors-teal-dark-a-1: #00deab05;--colors-teal-dark-a-2: #12fbe60c;--colors-teal-dark-a-3: #00ffe61e;--colors-teal-dark-a-4: #00ffe92d;--colors-teal-dark-a-5: #00ffea3b;--colors-teal-dark-a-6: #1cffe84b;--colors-teal-dark-a-7: #2efde85f;--colors-teal-dark-a-8: #32ffe775;--colors-teal-dark-a-9: #13ffe49f;--colors-teal-dark-a-10: #0dffe0ae;--colors-teal-dark-a-11: #0afed5d6;--colors-teal-dark-a-12: #b8ffebef;--colors-teal-dark-p3-1: color(display-p3 .059 .083 .079);--colors-teal-dark-p3-2: color(display-p3 .075 .11 .107);--colors-teal-dark-p3-3: color(display-p3 .087 .175 .165);--colors-teal-dark-p3-4: color(display-p3 .087 .227 .214);--colors-teal-dark-p3-5: color(display-p3 .12 .277 .261);--colors-teal-dark-p3-6: color(display-p3 .162 .335 .314);--colors-teal-dark-p3-7: color(display-p3 .205 .406 .379);--colors-teal-dark-p3-8: color(display-p3 .245 .489 .453);--colors-teal-dark-p3-9: color(display-p3 .297 .637 .581);--colors-teal-dark-p3-10: color(display-p3 .319 .69 .62);--colors-teal-dark-p3-11: color(display-p3 .388 .835 .719);--colors-teal-dark-p3-12: color(display-p3 .734 .934 .87);--colors-teal-dark-p3-a-1: color(display-p3 0 .992 .761 / .017);--colors-teal-dark-p3-a-2: color(display-p3 .235 .988 .902 / .047);--colors-teal-dark-p3-a-3: color(display-p3 .235 1 .898 / .118);--colors-teal-dark-p3-a-4: color(display-p3 .18 .996 .929 / .173);--colors-teal-dark-p3-a-5: color(display-p3 .31 1 .933 / .227);--colors-teal-dark-p3-a-6: color(display-p3 .396 1 .933 / .286);--colors-teal-dark-p3-a-7: color(display-p3 .443 1 .925 / .366);--colors-teal-dark-p3-a-8: color(display-p3 .459 1 .925 / .454);--colors-teal-dark-p3-a-9: color(display-p3 .443 .996 .906 / .61);--colors-teal-dark-p3-a-10: color(display-p3 .439 .996 .89 / .669);--colors-teal-dark-p3-a-11: color(display-p3 .388 .835 .719);--colors-teal-dark-p3-a-12: color(display-p3 .734 .934 .87);--colors-teal-a-1: var(--colors-teal-light-a-1);--colors-teal-a-2: var(--colors-teal-light-a-2);--colors-teal-a-3: var(--colors-teal-light-a-3);--colors-teal-a-4: var(--colors-teal-light-a-4);--colors-teal-a-5: var(--colors-teal-light-a-5);--colors-teal-a-6: var(--colors-teal-light-a-6);--colors-teal-a-7: var(--colors-teal-light-a-7);--colors-teal-a-8: var(--colors-teal-light-a-8);--colors-teal-a-9: var(--colors-teal-light-a-9);--colors-teal-a-10: var(--colors-teal-light-a-10);--colors-teal-a-11: var(--colors-teal-light-a-11);--colors-teal-a-12: var(--colors-teal-light-a-12);--colors-teal-p3-1: var(--colors-teal-light-p3-1);--colors-teal-p3-2: var(--colors-teal-light-p3-2);--colors-teal-p3-3: var(--colors-teal-light-p3-3);--colors-teal-p3-4: var(--colors-teal-light-p3-4);--colors-teal-p3-5: var(--colors-teal-light-p3-5);--colors-teal-p3-6: var(--colors-teal-light-p3-6);--colors-teal-p3-7: var(--colors-teal-light-p3-7);--colors-teal-p3-8: var(--colors-teal-light-p3-8);--colors-teal-p3-9: var(--colors-teal-light-p3-9);--colors-teal-p3-10: var(--colors-teal-light-p3-10);--colors-teal-p3-11: var(--colors-teal-light-p3-11);--colors-teal-p3-12: var(--colors-teal-light-p3-12);--colors-teal-p3-a-1: var(--colors-teal-light-p3-a-1);--colors-teal-p3-a-2: var(--colors-teal-light-p3-a-2);--colors-teal-p3-a-3: var(--colors-teal-light-p3-a-3);--colors-teal-p3-a-4: var(--colors-teal-light-p3-a-4);--colors-teal-p3-a-5: var(--colors-teal-light-p3-a-5);--colors-teal-p3-a-6: var(--colors-teal-light-p3-a-6);--colors-teal-p3-a-7: var(--colors-teal-light-p3-a-7);--colors-teal-p3-a-8: var(--colors-teal-light-p3-a-8);--colors-teal-p3-a-9: var(--colors-teal-light-p3-a-9);--colors-teal-p3-a-10: var(--colors-teal-light-p3-a-10);--colors-teal-p3-a-11: var(--colors-teal-light-p3-a-11);--colors-teal-p3-a-12: var(--colors-teal-light-p3-a-12);--colors-tomato-1: var(--colors-tomato-light-1);--colors-tomato-2: var(--colors-tomato-light-2);--colors-tomato-3: var(--colors-tomato-light-3);--colors-tomato-4: var(--colors-tomato-light-4);--colors-tomato-5: var(--colors-tomato-light-5);--colors-tomato-6: var(--colors-tomato-light-6);--colors-tomato-7: var(--colors-tomato-light-7);--colors-tomato-8: var(--colors-tomato-light-8);--colors-tomato-9: var(--colors-tomato-light-9);--colors-tomato-10: var(--colors-tomato-light-10);--colors-tomato-11: var(--colors-tomato-light-11);--colors-tomato-12: var(--colors-tomato-light-12);--colors-tomato-light-1: #fffcfc;--colors-tomato-light-2: #fff8f7;--colors-tomato-light-3: #feebe7;--colors-tomato-light-4: #ffdcd3;--colors-tomato-light-5: #ffcdc2;--colors-tomato-light-6: #fdbdaf;--colors-tomato-light-7: #f5a898;--colors-tomato-light-8: #ec8e7b;--colors-tomato-light-9: #e54d2e;--colors-tomato-light-10: #dd4425;--colors-tomato-light-11: #d13415;--colors-tomato-light-12: #5c271f;--colors-tomato-light-a-1: #ff000003;--colors-tomato-light-a-2: #ff200008;--colors-tomato-light-a-3: #f52b0018;--colors-tomato-light-a-4: #ff35002c;--colors-tomato-light-a-5: #ff2e003d;--colors-tomato-light-a-6: #f92d0050;--colors-tomato-light-a-7: #e7280067;--colors-tomato-light-a-8: #db250084;--colors-tomato-light-a-9: #df2600d1;--colors-tomato-light-a-10: #d72400da;--colors-tomato-light-a-11: #cd2200ea;--colors-tomato-light-a-12: #460900e0;--colors-tomato-light-p3-1: color(display-p3 .998 .989 .988);--colors-tomato-light-p3-2: color(display-p3 .994 .974 .969);--colors-tomato-light-p3-3: color(display-p3 .985 .924 .909);--colors-tomato-light-p3-4: color(display-p3 .996 .868 .835);--colors-tomato-light-p3-5: color(display-p3 .98 .812 .77);--colors-tomato-light-p3-6: color(display-p3 .953 .75 .698);--colors-tomato-light-p3-7: color(display-p3 .917 .673 .611);--colors-tomato-light-p3-8: color(display-p3 .875 .575 .502);--colors-tomato-light-p3-9: color(display-p3 .831 .345 .231);--colors-tomato-light-p3-10: color(display-p3 .802 .313 .2);--colors-tomato-light-p3-11: color(display-p3 .755 .259 .152);--colors-tomato-light-p3-12: color(display-p3 .335 .165 .132);--colors-tomato-light-p3-a-1: color(display-p3 .675 .024 .024 / .012);--colors-tomato-light-p3-a-2: color(display-p3 .757 .145 .02 / .032);--colors-tomato-light-p3-a-3: color(display-p3 .831 .184 .012 / .091);--colors-tomato-light-p3-a-4: color(display-p3 .976 .192 .004 / .165);--colors-tomato-light-p3-a-5: color(display-p3 .918 .192 .004 / .232);--colors-tomato-light-p3-a-6: color(display-p3 .847 .173 .004 / .302);--colors-tomato-light-p3-a-7: color(display-p3 .788 .165 .004 / .389);--colors-tomato-light-p3-a-8: color(display-p3 .749 .153 .004 / .499);--colors-tomato-light-p3-a-9: color(display-p3 .78 .149 0 / .769);--colors-tomato-light-p3-a-10: color(display-p3 .757 .141 0 / .8);--colors-tomato-light-p3-a-11: color(display-p3 .755 .259 .152);--colors-tomato-light-p3-a-12: color(display-p3 .335 .165 .132);--colors-tomato-dark-1: #181111;--colors-tomato-dark-2: #1f1513;--colors-tomato-dark-3: #391714;--colors-tomato-dark-4: #4e1511;--colors-tomato-dark-5: #5e1c16;--colors-tomato-dark-6: #6e2920;--colors-tomato-dark-7: #853a2d;--colors-tomato-dark-8: #ac4d39;--colors-tomato-dark-9: #e54d2e;--colors-tomato-dark-10: #ec6142;--colors-tomato-dark-11: #ff977d;--colors-tomato-dark-12: #fbd3cb;--colors-tomato-dark-a-1: #f1121208;--colors-tomato-dark-a-2: #ff55330f;--colors-tomato-dark-a-3: #ff35232b;--colors-tomato-dark-a-4: #fd201142;--colors-tomato-dark-a-5: #fe332153;--colors-tomato-dark-a-6: #ff4f3864;--colors-tomato-dark-a-7: #fd644a7d;--colors-tomato-dark-a-8: #fe6d4ea7;--colors-tomato-dark-a-9: #fe5431e4;--colors-tomato-dark-a-10: #ff6847eb;--colors-tomato-dark-a-11: #ff977d;--colors-tomato-dark-a-12: #ffd6cefb;--colors-tomato-dark-p3-1: color(display-p3 .09 .068 .067);--colors-tomato-dark-p3-2: color(display-p3 .115 .084 .076);--colors-tomato-dark-p3-3: color(display-p3 .205 .097 .083);--colors-tomato-dark-p3-4: color(display-p3 .282 .099 .077);--colors-tomato-dark-p3-5: color(display-p3 .339 .129 .101);--colors-tomato-dark-p3-6: color(display-p3 .398 .179 .141);--colors-tomato-dark-p3-7: color(display-p3 .487 .245 .194);--colors-tomato-dark-p3-8: color(display-p3 .629 .322 .248);--colors-tomato-dark-p3-9: color(display-p3 .831 .345 .231);--colors-tomato-dark-p3-10: color(display-p3 .862 .415 .298);--colors-tomato-dark-p3-11: color(display-p3 1 .585 .455);--colors-tomato-dark-p3-12: color(display-p3 .959 .833 .802);--colors-tomato-dark-p3-a-1: color(display-p3 .973 .071 .071 / .026);--colors-tomato-dark-p3-a-2: color(display-p3 .992 .376 .224 / .051);--colors-tomato-dark-p3-a-3: color(display-p3 .996 .282 .176 / .148);--colors-tomato-dark-p3-a-4: color(display-p3 1 .204 .118 / .232);--colors-tomato-dark-p3-a-5: color(display-p3 1 .286 .192 / .29);--colors-tomato-dark-p3-a-6: color(display-p3 1 .392 .278 / .353);--colors-tomato-dark-p3-a-7: color(display-p3 1 .459 .349 / .45);--colors-tomato-dark-p3-a-8: color(display-p3 1 .49 .369 / .601);--colors-tomato-dark-p3-a-9: color(display-p3 1 .408 .267 / .82);--colors-tomato-dark-p3-a-10: color(display-p3 1 .478 .341 / .853);--colors-tomato-dark-p3-a-11: color(display-p3 1 .585 .455);--colors-tomato-dark-p3-a-12: color(display-p3 .959 .833 .802);--colors-tomato-a-1: var(--colors-tomato-light-a-1);--colors-tomato-a-2: var(--colors-tomato-light-a-2);--colors-tomato-a-3: var(--colors-tomato-light-a-3);--colors-tomato-a-4: var(--colors-tomato-light-a-4);--colors-tomato-a-5: var(--colors-tomato-light-a-5);--colors-tomato-a-6: var(--colors-tomato-light-a-6);--colors-tomato-a-7: var(--colors-tomato-light-a-7);--colors-tomato-a-8: var(--colors-tomato-light-a-8);--colors-tomato-a-9: var(--colors-tomato-light-a-9);--colors-tomato-a-10: var(--colors-tomato-light-a-10);--colors-tomato-a-11: var(--colors-tomato-light-a-11);--colors-tomato-a-12: var(--colors-tomato-light-a-12);--colors-tomato-p3-1: var(--colors-tomato-light-p3-1);--colors-tomato-p3-2: var(--colors-tomato-light-p3-2);--colors-tomato-p3-3: var(--colors-tomato-light-p3-3);--colors-tomato-p3-4: var(--colors-tomato-light-p3-4);--colors-tomato-p3-5: var(--colors-tomato-light-p3-5);--colors-tomato-p3-6: var(--colors-tomato-light-p3-6);--colors-tomato-p3-7: var(--colors-tomato-light-p3-7);--colors-tomato-p3-8: var(--colors-tomato-light-p3-8);--colors-tomato-p3-9: var(--colors-tomato-light-p3-9);--colors-tomato-p3-10: var(--colors-tomato-light-p3-10);--colors-tomato-p3-11: var(--colors-tomato-light-p3-11);--colors-tomato-p3-12: var(--colors-tomato-light-p3-12);--colors-tomato-p3-a-1: var(--colors-tomato-light-p3-a-1);--colors-tomato-p3-a-2: var(--colors-tomato-light-p3-a-2);--colors-tomato-p3-a-3: var(--colors-tomato-light-p3-a-3);--colors-tomato-p3-a-4: var(--colors-tomato-light-p3-a-4);--colors-tomato-p3-a-5: var(--colors-tomato-light-p3-a-5);--colors-tomato-p3-a-6: var(--colors-tomato-light-p3-a-6);--colors-tomato-p3-a-7: var(--colors-tomato-light-p3-a-7);--colors-tomato-p3-a-8: var(--colors-tomato-light-p3-a-8);--colors-tomato-p3-a-9: var(--colors-tomato-light-p3-a-9);--colors-tomato-p3-a-10: var(--colors-tomato-light-p3-a-10);--colors-tomato-p3-a-11: var(--colors-tomato-light-p3-a-11);--colors-tomato-p3-a-12: var(--colors-tomato-light-p3-a-12);--colors-violet-1: var(--colors-violet-light-1);--colors-violet-2: var(--colors-violet-light-2);--colors-violet-3: var(--colors-violet-light-3);--colors-violet-4: var(--colors-violet-light-4);--colors-violet-5: var(--colors-violet-light-5);--colors-violet-6: var(--colors-violet-light-6);--colors-violet-7: var(--colors-violet-light-7);--colors-violet-8: var(--colors-violet-light-8);--colors-violet-9: var(--colors-violet-light-9);--colors-violet-10: var(--colors-violet-light-10);--colors-violet-11: var(--colors-violet-light-11);--colors-violet-12: var(--colors-violet-light-12);--colors-violet-light-1: #fdfcfe;--colors-violet-light-2: #faf8ff;--colors-violet-light-3: #f4f0fe;--colors-violet-light-4: #ebe4ff;--colors-violet-light-5: #e1d9ff;--colors-violet-light-6: #d4cafe;--colors-violet-light-7: #c2b5f5;--colors-violet-light-8: #aa99ec;--colors-violet-light-9: #6e56cf;--colors-violet-light-10: #654dc4;--colors-violet-light-11: #6550b9;--colors-violet-light-12: #2f265f;--colors-violet-light-a-1: #5500aa03;--colors-violet-light-a-2: #4900ff07;--colors-violet-light-a-3: #4400ee0f;--colors-violet-light-a-4: #4300ff1b;--colors-violet-light-a-5: #3600ff26;--colors-violet-light-a-6: #3100fb35;--colors-violet-light-a-7: #2d01dd4a;--colors-violet-light-a-8: #2b00d066;--colors-violet-light-a-9: #2400b7a9;--colors-violet-light-a-10: #2300abb2;--colors-violet-light-a-11: #1f0099af;--colors-violet-light-a-12: #0b0043d9;--colors-violet-light-p3-1: color(display-p3 .991 .988 .995);--colors-violet-light-p3-2: color(display-p3 .978 .974 .998);--colors-violet-light-p3-3: color(display-p3 .953 .943 .993);--colors-violet-light-p3-4: color(display-p3 .916 .897 1);--colors-violet-light-p3-5: color(display-p3 .876 .851 1);--colors-violet-light-p3-6: color(display-p3 .825 .793 .981);--colors-violet-light-p3-7: color(display-p3 .752 .712 .943);--colors-violet-light-p3-8: color(display-p3 .654 .602 .902);--colors-violet-light-p3-9: color(display-p3 .417 .341 .784);--colors-violet-light-p3-10: color(display-p3 .381 .306 .741);--colors-violet-light-p3-11: color(display-p3 .383 .317 .702);--colors-violet-light-p3-12: color(display-p3 .179 .15 .359);--colors-violet-light-p3-a-1: color(display-p3 .349 .024 .675 / .012);--colors-violet-light-p3-a-2: color(display-p3 .161 .024 .863 / .028);--colors-violet-light-p3-a-3: color(display-p3 .204 .004 .871 / .059);--colors-violet-light-p3-a-4: color(display-p3 .196 .004 1 / .102);--colors-violet-light-p3-a-5: color(display-p3 .165 .008 1 / .15);--colors-violet-light-p3-a-6: color(display-p3 .153 .004 .906 / .208);--colors-violet-light-p3-a-7: color(display-p3 .141 .004 .796 / .287);--colors-violet-light-p3-a-8: color(display-p3 .133 .004 .753 / .397);--colors-violet-light-p3-a-9: color(display-p3 .114 0 .675 / .659);--colors-violet-light-p3-a-10: color(display-p3 .11 0 .627 / .695);--colors-violet-light-p3-a-11: color(display-p3 .383 .317 .702);--colors-violet-light-p3-a-12: color(display-p3 .179 .15 .359);--colors-violet-dark-1: #14121f;--colors-violet-dark-2: #1b1525;--colors-violet-dark-3: #291f43;--colors-violet-dark-4: #33255b;--colors-violet-dark-5: #3c2e69;--colors-violet-dark-6: #473876;--colors-violet-dark-7: #56468b;--colors-violet-dark-8: #6958ad;--colors-violet-dark-9: #6e56cf;--colors-violet-dark-10: #7d66d9;--colors-violet-dark-11: #baa7ff;--colors-violet-dark-12: #e2ddfe;--colors-violet-dark-a-1: #4422ff0f;--colors-violet-dark-a-2: #853ff916;--colors-violet-dark-a-3: #8354fe36;--colors-violet-dark-a-4: #7d51fd50;--colors-violet-dark-a-5: #845ffd5f;--colors-violet-dark-a-6: #8f6cfd6d;--colors-violet-dark-a-7: #9879ff83;--colors-violet-dark-a-8: #977dfea8;--colors-violet-dark-a-9: #8668ffcc;--colors-violet-dark-a-10: #9176fed7;--colors-violet-dark-a-11: #baa7ff;--colors-violet-dark-a-12: #e3defffe;--colors-violet-dark-p3-1: color(display-p3 .077 .071 .118);--colors-violet-dark-p3-2: color(display-p3 .101 .084 .141);--colors-violet-dark-p3-3: color(display-p3 .154 .123 .256);--colors-violet-dark-p3-4: color(display-p3 .191 .148 .345);--colors-violet-dark-p3-5: color(display-p3 .226 .182 .396);--colors-violet-dark-p3-6: color(display-p3 .269 .223 .449);--colors-violet-dark-p3-7: color(display-p3 .326 .277 .53);--colors-violet-dark-p3-8: color(display-p3 .399 .346 .656);--colors-violet-dark-p3-9: color(display-p3 .417 .341 .784);--colors-violet-dark-p3-10: color(display-p3 .477 .402 .823);--colors-violet-dark-p3-11: color(display-p3 .72 .65 1);--colors-violet-dark-p3-12: color(display-p3 .883 .867 .986);--colors-violet-dark-p3-a-1: color(display-p3 .282 .141 .996 / .055);--colors-violet-dark-p3-a-2: color(display-p3 .51 .263 1 / .08);--colors-violet-dark-p3-a-3: color(display-p3 .494 .337 .996 / .202);--colors-violet-dark-p3-a-4: color(display-p3 .49 .345 1 / .299);--colors-violet-dark-p3-a-5: color(display-p3 .525 .392 1 / .353);--colors-violet-dark-p3-a-6: color(display-p3 .569 .455 1 / .408);--colors-violet-dark-p3-a-7: color(display-p3 .588 .494 1 / .496);--colors-violet-dark-p3-a-8: color(display-p3 .596 .51 1 / .631);--colors-violet-dark-p3-a-9: color(display-p3 .522 .424 1 / .769);--colors-violet-dark-p3-a-10: color(display-p3 .576 .482 1 / .811);--colors-violet-dark-p3-a-11: color(display-p3 .72 .65 1);--colors-violet-dark-p3-a-12: color(display-p3 .883 .867 .986);--colors-violet-a-1: var(--colors-violet-light-a-1);--colors-violet-a-2: var(--colors-violet-light-a-2);--colors-violet-a-3: var(--colors-violet-light-a-3);--colors-violet-a-4: var(--colors-violet-light-a-4);--colors-violet-a-5: var(--colors-violet-light-a-5);--colors-violet-a-6: var(--colors-violet-light-a-6);--colors-violet-a-7: var(--colors-violet-light-a-7);--colors-violet-a-8: var(--colors-violet-light-a-8);--colors-violet-a-9: var(--colors-violet-light-a-9);--colors-violet-a-10: var(--colors-violet-light-a-10);--colors-violet-a-11: var(--colors-violet-light-a-11);--colors-violet-a-12: var(--colors-violet-light-a-12);--colors-violet-p3-1: var(--colors-violet-light-p3-1);--colors-violet-p3-2: var(--colors-violet-light-p3-2);--colors-violet-p3-3: var(--colors-violet-light-p3-3);--colors-violet-p3-4: var(--colors-violet-light-p3-4);--colors-violet-p3-5: var(--colors-violet-light-p3-5);--colors-violet-p3-6: var(--colors-violet-light-p3-6);--colors-violet-p3-7: var(--colors-violet-light-p3-7);--colors-violet-p3-8: var(--colors-violet-light-p3-8);--colors-violet-p3-9: var(--colors-violet-light-p3-9);--colors-violet-p3-10: var(--colors-violet-light-p3-10);--colors-violet-p3-11: var(--colors-violet-light-p3-11);--colors-violet-p3-12: var(--colors-violet-light-p3-12);--colors-violet-p3-a-1: var(--colors-violet-light-p3-a-1);--colors-violet-p3-a-2: var(--colors-violet-light-p3-a-2);--colors-violet-p3-a-3: var(--colors-violet-light-p3-a-3);--colors-violet-p3-a-4: var(--colors-violet-light-p3-a-4);--colors-violet-p3-a-5: var(--colors-violet-light-p3-a-5);--colors-violet-p3-a-6: var(--colors-violet-light-p3-a-6);--colors-violet-p3-a-7: var(--colors-violet-light-p3-a-7);--colors-violet-p3-a-8: var(--colors-violet-light-p3-a-8);--colors-violet-p3-a-9: var(--colors-violet-light-p3-a-9);--colors-violet-p3-a-10: var(--colors-violet-light-p3-a-10);--colors-violet-p3-a-11: var(--colors-violet-light-p3-a-11);--colors-violet-p3-a-12: var(--colors-violet-light-p3-a-12);--colors-yellow-1: var(--colors-yellow-light-1);--colors-yellow-2: var(--colors-yellow-light-2);--colors-yellow-3: var(--colors-yellow-light-3);--colors-yellow-4: var(--colors-yellow-light-4);--colors-yellow-5: var(--colors-yellow-light-5);--colors-yellow-6: var(--colors-yellow-light-6);--colors-yellow-7: var(--colors-yellow-light-7);--colors-yellow-8: var(--colors-yellow-light-8);--colors-yellow-9: var(--colors-yellow-light-9);--colors-yellow-10: var(--colors-yellow-light-10);--colors-yellow-11: var(--colors-yellow-light-11);--colors-yellow-12: var(--colors-yellow-light-12);--colors-yellow-light-1: #fdfdf9;--colors-yellow-light-2: #fefce9;--colors-yellow-light-3: #fffab8;--colors-yellow-light-4: #fff394;--colors-yellow-light-5: #ffe770;--colors-yellow-light-6: #f3d768;--colors-yellow-light-7: #e4c767;--colors-yellow-light-8: #d5ae39;--colors-yellow-light-9: #ffe629;--colors-yellow-light-10: #ffdc00;--colors-yellow-light-11: #9e6c00;--colors-yellow-light-12: #473b1f;--colors-yellow-light-a-1: #aaaa0006;--colors-yellow-light-a-2: #f4dd0016;--colors-yellow-light-a-3: #ffee0047;--colors-yellow-light-a-4: #ffe3016b;--colors-yellow-light-a-5: #ffd5008f;--colors-yellow-light-a-6: #ebbc0097;--colors-yellow-light-a-7: #d2a10098;--colors-yellow-light-a-8: #c99700c6;--colors-yellow-light-a-9: #ffe100d6;--colors-yellow-light-a-10: #ffdc00;--colors-yellow-light-a-11: #9e6c00;--colors-yellow-light-a-12: #2e2000e0;--colors-yellow-light-p3-1: color(display-p3 .992 .992 .978);--colors-yellow-light-p3-2: color(display-p3 .995 .99 .922);--colors-yellow-light-p3-3: color(display-p3 .997 .982 .749);--colors-yellow-light-p3-4: color(display-p3 .992 .953 .627);--colors-yellow-light-p3-5: color(display-p3 .984 .91 .51);--colors-yellow-light-p3-6: color(display-p3 .934 .847 .474);--colors-yellow-light-p3-7: color(display-p3 .876 .785 .46);--colors-yellow-light-p3-8: color(display-p3 .811 .689 .313);--colors-yellow-light-p3-9: color(display-p3 1 .92 .22);--colors-yellow-light-p3-10: color(display-p3 .977 .868 .291);--colors-yellow-light-p3-11: color(display-p3 .6 .44 0);--colors-yellow-light-p3-12: color(display-p3 .271 .233 .137);--colors-yellow-light-p3-a-1: color(display-p3 .675 .675 .024 / .024);--colors-yellow-light-p3-a-2: color(display-p3 .953 .855 .008 / .079);--colors-yellow-light-p3-a-3: color(display-p3 .988 .925 .004 / .251);--colors-yellow-light-p3-a-4: color(display-p3 .98 .875 .004 / .373);--colors-yellow-light-p3-a-5: color(display-p3 .969 .816 .004 / .491);--colors-yellow-light-p3-a-6: color(display-p3 .875 .71 0 / .526);--colors-yellow-light-p3-a-7: color(display-p3 .769 .604 0 / .542);--colors-yellow-light-p3-a-8: color(display-p3 .725 .549 0 / .687);--colors-yellow-light-p3-a-9: color(display-p3 1 .898 0 / .781);--colors-yellow-light-p3-a-10: color(display-p3 .969 .812 0 / .71);--colors-yellow-light-p3-a-11: color(display-p3 .6 .44 0);--colors-yellow-light-p3-a-12: color(display-p3 .271 .233 .137);--colors-yellow-dark-1: #14120b;--colors-yellow-dark-2: #1b180f;--colors-yellow-dark-3: #2d2305;--colors-yellow-dark-4: #362b00;--colors-yellow-dark-5: #433500;--colors-yellow-dark-6: #524202;--colors-yellow-dark-7: #665417;--colors-yellow-dark-8: #836a21;--colors-yellow-dark-9: #ffe629;--colors-yellow-dark-10: #ffff57;--colors-yellow-dark-11: #f5e147;--colors-yellow-dark-12: #f6eeb4;--colors-yellow-dark-a-1: #d1510004;--colors-yellow-dark-a-2: #f9b4000b;--colors-yellow-dark-a-3: #ffaa001e;--colors-yellow-dark-a-4: #fdb70028;--colors-yellow-dark-a-5: #febb0036;--colors-yellow-dark-a-6: #fec40046;--colors-yellow-dark-a-7: #fdcb225c;--colors-yellow-dark-a-8: #fdca327b;--colors-yellow-dark-a-9: #ffe629;--colors-yellow-dark-a-10: #ffff57;--colors-yellow-dark-a-11: #fee949f5;--colors-yellow-dark-a-12: #fef6baf6;--colors-yellow-dark-p3-1: color(display-p3 .078 .069 .047);--colors-yellow-dark-p3-2: color(display-p3 .103 .094 .063);--colors-yellow-dark-p3-3: color(display-p3 .168 .137 .039);--colors-yellow-dark-p3-4: color(display-p3 .209 .169 0);--colors-yellow-dark-p3-5: color(display-p3 .255 .209 0);--colors-yellow-dark-p3-6: color(display-p3 .31 .261 .07);--colors-yellow-dark-p3-7: color(display-p3 .389 .331 .135);--colors-yellow-dark-p3-8: color(display-p3 .497 .42 .182);--colors-yellow-dark-p3-9: color(display-p3 1 .92 .22);--colors-yellow-dark-p3-10: color(display-p3 1 1 .456);--colors-yellow-dark-p3-11: color(display-p3 .948 .885 .392);--colors-yellow-dark-p3-12: color(display-p3 .959 .934 .731);--colors-yellow-dark-p3-a-1: color(display-p3 .973 .369 0 / .013);--colors-yellow-dark-p3-a-2: color(display-p3 .996 .792 0 / .038);--colors-yellow-dark-p3-a-3: color(display-p3 .996 .71 0 / .11);--colors-yellow-dark-p3-a-4: color(display-p3 .996 .741 0 / .152);--colors-yellow-dark-p3-a-5: color(display-p3 .996 .765 0 / .202);--colors-yellow-dark-p3-a-6: color(display-p3 .996 .816 .082 / .261);--colors-yellow-dark-p3-a-7: color(display-p3 1 .831 .263 / .345);--colors-yellow-dark-p3-a-8: color(display-p3 1 .831 .314 / .463);--colors-yellow-dark-p3-a-9: color(display-p3 1 .922 .22);--colors-yellow-dark-p3-a-10: color(display-p3 1 1 .455);--colors-yellow-dark-p3-a-11: color(display-p3 .948 .885 .392);--colors-yellow-dark-p3-a-12: color(display-p3 .959 .934 .731);--colors-yellow-a-1: var(--colors-yellow-light-a-1);--colors-yellow-a-2: var(--colors-yellow-light-a-2);--colors-yellow-a-3: var(--colors-yellow-light-a-3);--colors-yellow-a-4: var(--colors-yellow-light-a-4);--colors-yellow-a-5: var(--colors-yellow-light-a-5);--colors-yellow-a-6: var(--colors-yellow-light-a-6);--colors-yellow-a-7: var(--colors-yellow-light-a-7);--colors-yellow-a-8: var(--colors-yellow-light-a-8);--colors-yellow-a-9: var(--colors-yellow-light-a-9);--colors-yellow-a-10: var(--colors-yellow-light-a-10);--colors-yellow-a-11: var(--colors-yellow-light-a-11);--colors-yellow-a-12: var(--colors-yellow-light-a-12);--colors-yellow-p3-1: var(--colors-yellow-light-p3-1);--colors-yellow-p3-2: var(--colors-yellow-light-p3-2);--colors-yellow-p3-3: var(--colors-yellow-light-p3-3);--colors-yellow-p3-4: var(--colors-yellow-light-p3-4);--colors-yellow-p3-5: var(--colors-yellow-light-p3-5);--colors-yellow-p3-6: var(--colors-yellow-light-p3-6);--colors-yellow-p3-7: var(--colors-yellow-light-p3-7);--colors-yellow-p3-8: var(--colors-yellow-light-p3-8);--colors-yellow-p3-9: var(--colors-yellow-light-p3-9);--colors-yellow-p3-10: var(--colors-yellow-light-p3-10);--colors-yellow-p3-11: var(--colors-yellow-light-p3-11);--colors-yellow-p3-12: var(--colors-yellow-light-p3-12);--colors-yellow-p3-a-1: var(--colors-yellow-light-p3-a-1);--colors-yellow-p3-a-2: var(--colors-yellow-light-p3-a-2);--colors-yellow-p3-a-3: var(--colors-yellow-light-p3-a-3);--colors-yellow-p3-a-4: var(--colors-yellow-light-p3-a-4);--colors-yellow-p3-a-5: var(--colors-yellow-light-p3-a-5);--colors-yellow-p3-a-6: var(--colors-yellow-light-p3-a-6);--colors-yellow-p3-a-7: var(--colors-yellow-light-p3-a-7);--colors-yellow-p3-a-8: var(--colors-yellow-light-p3-a-8);--colors-yellow-p3-a-9: var(--colors-yellow-light-p3-a-9);--colors-yellow-p3-a-10: var(--colors-yellow-light-p3-a-10);--colors-yellow-p3-a-11: var(--colors-yellow-light-p3-a-11);--colors-yellow-p3-a-12: var(--colors-yellow-light-p3-a-12);--colors-likec4-background: var(--mantine-color-body);--colors-likec4-tag-bg: var(--colors-tomato-9);--colors-likec4-tag-bg-hover: var(--colors-tomato-10);--colors-likec4-tag-border: var(--colors-tomato-8);--colors-likec4-tag-text: var(--colors-tomato-12);--colors-likec4-panel-bg: var(--colors-mantine-colors-body);--colors-likec4-panel-border: transparent;--colors-likec4-panel-action-icon-text: color-mix(in srgb, var(--mantine-color-text) 80%, transparent);--colors-likec4-panel-action-icon-text-hover: var(--mantine-color-bright);--colors-likec4-panel-action-icon-text-disabled: var(--mantine-color-dimmed);--colors-likec4-panel-action-icon-bg: var(--colors-mantine-colors-gray\\[1\\]);--colors-likec4-panel-action-icon-bg-hover: var(--colors-mantine-colors-gray\\[2\\]);--colors-likec4-dropdown-bg: #FFF;--colors-likec4-dropdown-border: var(--colors-likec4-panel-border);--colors-likec4-overlay-backdrop: rgb(34 34 34);--colors-likec4-overlay-body: var(--mantine-color-body);--colors-likec4-overlay-border: color-mix(in srgb, var(--colors-mantine-colors-default-border) 50%, transparent)}[data-mantine-color-scheme=dark]{--colors-amber-1: var(--colors-amber-dark-1);--colors-amber-2: var(--colors-amber-dark-2);--colors-amber-3: var(--colors-amber-dark-3);--colors-amber-4: var(--colors-amber-dark-4);--colors-amber-5: var(--colors-amber-dark-5);--colors-amber-6: var(--colors-amber-dark-6);--colors-amber-7: var(--colors-amber-dark-7);--colors-amber-8: var(--colors-amber-dark-8);--colors-amber-9: var(--colors-amber-dark-9);--colors-amber-10: var(--colors-amber-dark-10);--colors-amber-11: var(--colors-amber-dark-11);--colors-amber-12: var(--colors-amber-dark-12);--colors-amber-a-1: var(--colors-amber-dark-a-1);--colors-amber-a-2: var(--colors-amber-dark-a-2);--colors-amber-a-3: var(--colors-amber-dark-a-3);--colors-amber-a-4: var(--colors-amber-dark-a-4);--colors-amber-a-5: var(--colors-amber-dark-a-5);--colors-amber-a-6: var(--colors-amber-dark-a-6);--colors-amber-a-7: var(--colors-amber-dark-a-7);--colors-amber-a-8: var(--colors-amber-dark-a-8);--colors-amber-a-9: var(--colors-amber-dark-a-9);--colors-amber-a-10: var(--colors-amber-dark-a-10);--colors-amber-a-11: var(--colors-amber-dark-a-11);--colors-amber-a-12: var(--colors-amber-dark-a-12);--colors-amber-p3-1: var(--colors-amber-dark-p3-1);--colors-amber-p3-2: var(--colors-amber-dark-p3-2);--colors-amber-p3-3: var(--colors-amber-dark-p3-3);--colors-amber-p3-4: var(--colors-amber-dark-p3-4);--colors-amber-p3-5: var(--colors-amber-dark-p3-5);--colors-amber-p3-6: var(--colors-amber-dark-p3-6);--colors-amber-p3-7: var(--colors-amber-dark-p3-7);--colors-amber-p3-8: var(--colors-amber-dark-p3-8);--colors-amber-p3-9: var(--colors-amber-dark-p3-9);--colors-amber-p3-10: var(--colors-amber-dark-p3-10);--colors-amber-p3-11: var(--colors-amber-dark-p3-11);--colors-amber-p3-12: var(--colors-amber-dark-p3-12);--colors-amber-p3-a-1: var(--colors-amber-dark-p3-a-1);--colors-amber-p3-a-2: var(--colors-amber-dark-p3-a-2);--colors-amber-p3-a-3: var(--colors-amber-dark-p3-a-3);--colors-amber-p3-a-4: var(--colors-amber-dark-p3-a-4);--colors-amber-p3-a-5: var(--colors-amber-dark-p3-a-5);--colors-amber-p3-a-6: var(--colors-amber-dark-p3-a-6);--colors-amber-p3-a-7: var(--colors-amber-dark-p3-a-7);--colors-amber-p3-a-8: var(--colors-amber-dark-p3-a-8);--colors-amber-p3-a-9: var(--colors-amber-dark-p3-a-9);--colors-amber-p3-a-10: var(--colors-amber-dark-p3-a-10);--colors-amber-p3-a-11: var(--colors-amber-dark-p3-a-11);--colors-amber-p3-a-12: var(--colors-amber-dark-p3-a-12);--colors-blue-1: var(--colors-blue-dark-1);--colors-blue-2: var(--colors-blue-dark-2);--colors-blue-3: var(--colors-blue-dark-3);--colors-blue-4: var(--colors-blue-dark-4);--colors-blue-5: var(--colors-blue-dark-5);--colors-blue-6: var(--colors-blue-dark-6);--colors-blue-7: var(--colors-blue-dark-7);--colors-blue-8: var(--colors-blue-dark-8);--colors-blue-9: var(--colors-blue-dark-9);--colors-blue-10: var(--colors-blue-dark-10);--colors-blue-11: var(--colors-blue-dark-11);--colors-blue-12: var(--colors-blue-dark-12);--colors-blue-a-1: var(--colors-blue-dark-a-1);--colors-blue-a-2: var(--colors-blue-dark-a-2);--colors-blue-a-3: var(--colors-blue-dark-a-3);--colors-blue-a-4: var(--colors-blue-dark-a-4);--colors-blue-a-5: var(--colors-blue-dark-a-5);--colors-blue-a-6: var(--colors-blue-dark-a-6);--colors-blue-a-7: var(--colors-blue-dark-a-7);--colors-blue-a-8: var(--colors-blue-dark-a-8);--colors-blue-a-9: var(--colors-blue-dark-a-9);--colors-blue-a-10: var(--colors-blue-dark-a-10);--colors-blue-a-11: var(--colors-blue-dark-a-11);--colors-blue-a-12: var(--colors-blue-dark-a-12);--colors-blue-p3-1: var(--colors-blue-dark-p3-1);--colors-blue-p3-2: var(--colors-blue-dark-p3-2);--colors-blue-p3-3: var(--colors-blue-dark-p3-3);--colors-blue-p3-4: var(--colors-blue-dark-p3-4);--colors-blue-p3-5: var(--colors-blue-dark-p3-5);--colors-blue-p3-6: var(--colors-blue-dark-p3-6);--colors-blue-p3-7: var(--colors-blue-dark-p3-7);--colors-blue-p3-8: var(--colors-blue-dark-p3-8);--colors-blue-p3-9: var(--colors-blue-dark-p3-9);--colors-blue-p3-10: var(--colors-blue-dark-p3-10);--colors-blue-p3-11: var(--colors-blue-dark-p3-11);--colors-blue-p3-12: var(--colors-blue-dark-p3-12);--colors-blue-p3-a-1: var(--colors-blue-dark-p3-a-1);--colors-blue-p3-a-2: var(--colors-blue-dark-p3-a-2);--colors-blue-p3-a-3: var(--colors-blue-dark-p3-a-3);--colors-blue-p3-a-4: var(--colors-blue-dark-p3-a-4);--colors-blue-p3-a-5: var(--colors-blue-dark-p3-a-5);--colors-blue-p3-a-6: var(--colors-blue-dark-p3-a-6);--colors-blue-p3-a-7: var(--colors-blue-dark-p3-a-7);--colors-blue-p3-a-8: var(--colors-blue-dark-p3-a-8);--colors-blue-p3-a-9: var(--colors-blue-dark-p3-a-9);--colors-blue-p3-a-10: var(--colors-blue-dark-p3-a-10);--colors-blue-p3-a-11: var(--colors-blue-dark-p3-a-11);--colors-blue-p3-a-12: var(--colors-blue-dark-p3-a-12);--colors-crimson-1: var(--colors-crimson-dark-1);--colors-crimson-2: var(--colors-crimson-dark-2);--colors-crimson-3: var(--colors-crimson-dark-3);--colors-crimson-4: var(--colors-crimson-dark-4);--colors-crimson-5: var(--colors-crimson-dark-5);--colors-crimson-6: var(--colors-crimson-dark-6);--colors-crimson-7: var(--colors-crimson-dark-7);--colors-crimson-8: var(--colors-crimson-dark-8);--colors-crimson-9: var(--colors-crimson-dark-9);--colors-crimson-10: var(--colors-crimson-dark-10);--colors-crimson-11: var(--colors-crimson-dark-11);--colors-crimson-12: var(--colors-crimson-dark-12);--colors-crimson-a-1: var(--colors-crimson-dark-a-1);--colors-crimson-a-2: var(--colors-crimson-dark-a-2);--colors-crimson-a-3: var(--colors-crimson-dark-a-3);--colors-crimson-a-4: var(--colors-crimson-dark-a-4);--colors-crimson-a-5: var(--colors-crimson-dark-a-5);--colors-crimson-a-6: var(--colors-crimson-dark-a-6);--colors-crimson-a-7: var(--colors-crimson-dark-a-7);--colors-crimson-a-8: var(--colors-crimson-dark-a-8);--colors-crimson-a-9: var(--colors-crimson-dark-a-9);--colors-crimson-a-10: var(--colors-crimson-dark-a-10);--colors-crimson-a-11: var(--colors-crimson-dark-a-11);--colors-crimson-a-12: var(--colors-crimson-dark-a-12);--colors-crimson-p3-1: var(--colors-crimson-dark-p3-1);--colors-crimson-p3-2: var(--colors-crimson-dark-p3-2);--colors-crimson-p3-3: var(--colors-crimson-dark-p3-3);--colors-crimson-p3-4: var(--colors-crimson-dark-p3-4);--colors-crimson-p3-5: var(--colors-crimson-dark-p3-5);--colors-crimson-p3-6: var(--colors-crimson-dark-p3-6);--colors-crimson-p3-7: var(--colors-crimson-dark-p3-7);--colors-crimson-p3-8: var(--colors-crimson-dark-p3-8);--colors-crimson-p3-9: var(--colors-crimson-dark-p3-9);--colors-crimson-p3-10: var(--colors-crimson-dark-p3-10);--colors-crimson-p3-11: var(--colors-crimson-dark-p3-11);--colors-crimson-p3-12: var(--colors-crimson-dark-p3-12);--colors-crimson-p3-a-1: var(--colors-crimson-dark-p3-a-1);--colors-crimson-p3-a-2: var(--colors-crimson-dark-p3-a-2);--colors-crimson-p3-a-3: var(--colors-crimson-dark-p3-a-3);--colors-crimson-p3-a-4: var(--colors-crimson-dark-p3-a-4);--colors-crimson-p3-a-5: var(--colors-crimson-dark-p3-a-5);--colors-crimson-p3-a-6: var(--colors-crimson-dark-p3-a-6);--colors-crimson-p3-a-7: var(--colors-crimson-dark-p3-a-7);--colors-crimson-p3-a-8: var(--colors-crimson-dark-p3-a-8);--colors-crimson-p3-a-9: var(--colors-crimson-dark-p3-a-9);--colors-crimson-p3-a-10: var(--colors-crimson-dark-p3-a-10);--colors-crimson-p3-a-11: var(--colors-crimson-dark-p3-a-11);--colors-crimson-p3-a-12: var(--colors-crimson-dark-p3-a-12);--colors-grass-1: var(--colors-grass-dark-1);--colors-grass-2: var(--colors-grass-dark-2);--colors-grass-3: var(--colors-grass-dark-3);--colors-grass-4: var(--colors-grass-dark-4);--colors-grass-5: var(--colors-grass-dark-5);--colors-grass-6: var(--colors-grass-dark-6);--colors-grass-7: var(--colors-grass-dark-7);--colors-grass-8: var(--colors-grass-dark-8);--colors-grass-9: var(--colors-grass-dark-9);--colors-grass-10: var(--colors-grass-dark-10);--colors-grass-11: var(--colors-grass-dark-11);--colors-grass-12: var(--colors-grass-dark-12);--colors-grass-a-1: var(--colors-grass-dark-a-1);--colors-grass-a-2: var(--colors-grass-dark-a-2);--colors-grass-a-3: var(--colors-grass-dark-a-3);--colors-grass-a-4: var(--colors-grass-dark-a-4);--colors-grass-a-5: var(--colors-grass-dark-a-5);--colors-grass-a-6: var(--colors-grass-dark-a-6);--colors-grass-a-7: var(--colors-grass-dark-a-7);--colors-grass-a-8: var(--colors-grass-dark-a-8);--colors-grass-a-9: var(--colors-grass-dark-a-9);--colors-grass-a-10: var(--colors-grass-dark-a-10);--colors-grass-a-11: var(--colors-grass-dark-a-11);--colors-grass-a-12: var(--colors-grass-dark-a-12);--colors-grass-p3-1: var(--colors-grass-dark-p3-1);--colors-grass-p3-2: var(--colors-grass-dark-p3-2);--colors-grass-p3-3: var(--colors-grass-dark-p3-3);--colors-grass-p3-4: var(--colors-grass-dark-p3-4);--colors-grass-p3-5: var(--colors-grass-dark-p3-5);--colors-grass-p3-6: var(--colors-grass-dark-p3-6);--colors-grass-p3-7: var(--colors-grass-dark-p3-7);--colors-grass-p3-8: var(--colors-grass-dark-p3-8);--colors-grass-p3-9: var(--colors-grass-dark-p3-9);--colors-grass-p3-10: var(--colors-grass-dark-p3-10);--colors-grass-p3-11: var(--colors-grass-dark-p3-11);--colors-grass-p3-12: var(--colors-grass-dark-p3-12);--colors-grass-p3-a-1: var(--colors-grass-dark-p3-a-1);--colors-grass-p3-a-2: var(--colors-grass-dark-p3-a-2);--colors-grass-p3-a-3: var(--colors-grass-dark-p3-a-3);--colors-grass-p3-a-4: var(--colors-grass-dark-p3-a-4);--colors-grass-p3-a-5: var(--colors-grass-dark-p3-a-5);--colors-grass-p3-a-6: var(--colors-grass-dark-p3-a-6);--colors-grass-p3-a-7: var(--colors-grass-dark-p3-a-7);--colors-grass-p3-a-8: var(--colors-grass-dark-p3-a-8);--colors-grass-p3-a-9: var(--colors-grass-dark-p3-a-9);--colors-grass-p3-a-10: var(--colors-grass-dark-p3-a-10);--colors-grass-p3-a-11: var(--colors-grass-dark-p3-a-11);--colors-grass-p3-a-12: var(--colors-grass-dark-p3-a-12);--colors-indigo-1: var(--colors-indigo-dark-1);--colors-indigo-2: var(--colors-indigo-dark-2);--colors-indigo-3: var(--colors-indigo-dark-3);--colors-indigo-4: var(--colors-indigo-dark-4);--colors-indigo-5: var(--colors-indigo-dark-5);--colors-indigo-6: var(--colors-indigo-dark-6);--colors-indigo-7: var(--colors-indigo-dark-7);--colors-indigo-8: var(--colors-indigo-dark-8);--colors-indigo-9: var(--colors-indigo-dark-9);--colors-indigo-10: var(--colors-indigo-dark-10);--colors-indigo-11: var(--colors-indigo-dark-11);--colors-indigo-12: var(--colors-indigo-dark-12);--colors-indigo-a-1: var(--colors-indigo-dark-a-1);--colors-indigo-a-2: var(--colors-indigo-dark-a-2);--colors-indigo-a-3: var(--colors-indigo-dark-a-3);--colors-indigo-a-4: var(--colors-indigo-dark-a-4);--colors-indigo-a-5: var(--colors-indigo-dark-a-5);--colors-indigo-a-6: var(--colors-indigo-dark-a-6);--colors-indigo-a-7: var(--colors-indigo-dark-a-7);--colors-indigo-a-8: var(--colors-indigo-dark-a-8);--colors-indigo-a-9: var(--colors-indigo-dark-a-9);--colors-indigo-a-10: var(--colors-indigo-dark-a-10);--colors-indigo-a-11: var(--colors-indigo-dark-a-11);--colors-indigo-a-12: var(--colors-indigo-dark-a-12);--colors-indigo-p3-1: var(--colors-indigo-dark-p3-1);--colors-indigo-p3-2: var(--colors-indigo-dark-p3-2);--colors-indigo-p3-3: var(--colors-indigo-dark-p3-3);--colors-indigo-p3-4: var(--colors-indigo-dark-p3-4);--colors-indigo-p3-5: var(--colors-indigo-dark-p3-5);--colors-indigo-p3-6: var(--colors-indigo-dark-p3-6);--colors-indigo-p3-7: var(--colors-indigo-dark-p3-7);--colors-indigo-p3-8: var(--colors-indigo-dark-p3-8);--colors-indigo-p3-9: var(--colors-indigo-dark-p3-9);--colors-indigo-p3-10: var(--colors-indigo-dark-p3-10);--colors-indigo-p3-11: var(--colors-indigo-dark-p3-11);--colors-indigo-p3-12: var(--colors-indigo-dark-p3-12);--colors-indigo-p3-a-1: var(--colors-indigo-dark-p3-a-1);--colors-indigo-p3-a-2: var(--colors-indigo-dark-p3-a-2);--colors-indigo-p3-a-3: var(--colors-indigo-dark-p3-a-3);--colors-indigo-p3-a-4: var(--colors-indigo-dark-p3-a-4);--colors-indigo-p3-a-5: var(--colors-indigo-dark-p3-a-5);--colors-indigo-p3-a-6: var(--colors-indigo-dark-p3-a-6);--colors-indigo-p3-a-7: var(--colors-indigo-dark-p3-a-7);--colors-indigo-p3-a-8: var(--colors-indigo-dark-p3-a-8);--colors-indigo-p3-a-9: var(--colors-indigo-dark-p3-a-9);--colors-indigo-p3-a-10: var(--colors-indigo-dark-p3-a-10);--colors-indigo-p3-a-11: var(--colors-indigo-dark-p3-a-11);--colors-indigo-p3-a-12: var(--colors-indigo-dark-p3-a-12);--colors-lime-1: var(--colors-lime-dark-1);--colors-lime-2: var(--colors-lime-dark-2);--colors-lime-3: var(--colors-lime-dark-3);--colors-lime-4: var(--colors-lime-dark-4);--colors-lime-5: var(--colors-lime-dark-5);--colors-lime-6: var(--colors-lime-dark-6);--colors-lime-7: var(--colors-lime-dark-7);--colors-lime-8: var(--colors-lime-dark-8);--colors-lime-9: var(--colors-lime-dark-9);--colors-lime-10: var(--colors-lime-dark-10);--colors-lime-11: var(--colors-lime-dark-11);--colors-lime-12: var(--colors-lime-dark-12);--colors-lime-a-1: var(--colors-lime-dark-a-1);--colors-lime-a-2: var(--colors-lime-dark-a-2);--colors-lime-a-3: var(--colors-lime-dark-a-3);--colors-lime-a-4: var(--colors-lime-dark-a-4);--colors-lime-a-5: var(--colors-lime-dark-a-5);--colors-lime-a-6: var(--colors-lime-dark-a-6);--colors-lime-a-7: var(--colors-lime-dark-a-7);--colors-lime-a-8: var(--colors-lime-dark-a-8);--colors-lime-a-9: var(--colors-lime-dark-a-9);--colors-lime-a-10: var(--colors-lime-dark-a-10);--colors-lime-a-11: var(--colors-lime-dark-a-11);--colors-lime-a-12: var(--colors-lime-dark-a-12);--colors-lime-p3-1: var(--colors-lime-dark-p3-1);--colors-lime-p3-2: var(--colors-lime-dark-p3-2);--colors-lime-p3-3: var(--colors-lime-dark-p3-3);--colors-lime-p3-4: var(--colors-lime-dark-p3-4);--colors-lime-p3-5: var(--colors-lime-dark-p3-5);--colors-lime-p3-6: var(--colors-lime-dark-p3-6);--colors-lime-p3-7: var(--colors-lime-dark-p3-7);--colors-lime-p3-8: var(--colors-lime-dark-p3-8);--colors-lime-p3-9: var(--colors-lime-dark-p3-9);--colors-lime-p3-10: var(--colors-lime-dark-p3-10);--colors-lime-p3-11: var(--colors-lime-dark-p3-11);--colors-lime-p3-12: var(--colors-lime-dark-p3-12);--colors-lime-p3-a-1: var(--colors-lime-dark-p3-a-1);--colors-lime-p3-a-2: var(--colors-lime-dark-p3-a-2);--colors-lime-p3-a-3: var(--colors-lime-dark-p3-a-3);--colors-lime-p3-a-4: var(--colors-lime-dark-p3-a-4);--colors-lime-p3-a-5: var(--colors-lime-dark-p3-a-5);--colors-lime-p3-a-6: var(--colors-lime-dark-p3-a-6);--colors-lime-p3-a-7: var(--colors-lime-dark-p3-a-7);--colors-lime-p3-a-8: var(--colors-lime-dark-p3-a-8);--colors-lime-p3-a-9: var(--colors-lime-dark-p3-a-9);--colors-lime-p3-a-10: var(--colors-lime-dark-p3-a-10);--colors-lime-p3-a-11: var(--colors-lime-dark-p3-a-11);--colors-lime-p3-a-12: var(--colors-lime-dark-p3-a-12);--colors-orange-1: var(--colors-orange-dark-1);--colors-orange-2: var(--colors-orange-dark-2);--colors-orange-3: var(--colors-orange-dark-3);--colors-orange-4: var(--colors-orange-dark-4);--colors-orange-5: var(--colors-orange-dark-5);--colors-orange-6: var(--colors-orange-dark-6);--colors-orange-7: var(--colors-orange-dark-7);--colors-orange-8: var(--colors-orange-dark-8);--colors-orange-9: var(--colors-orange-dark-9);--colors-orange-10: var(--colors-orange-dark-10);--colors-orange-11: var(--colors-orange-dark-11);--colors-orange-12: var(--colors-orange-dark-12);--colors-orange-a-1: var(--colors-orange-dark-a-1);--colors-orange-a-2: var(--colors-orange-dark-a-2);--colors-orange-a-3: var(--colors-orange-dark-a-3);--colors-orange-a-4: var(--colors-orange-dark-a-4);--colors-orange-a-5: var(--colors-orange-dark-a-5);--colors-orange-a-6: var(--colors-orange-dark-a-6);--colors-orange-a-7: var(--colors-orange-dark-a-7);--colors-orange-a-8: var(--colors-orange-dark-a-8);--colors-orange-a-9: var(--colors-orange-dark-a-9);--colors-orange-a-10: var(--colors-orange-dark-a-10);--colors-orange-a-11: var(--colors-orange-dark-a-11);--colors-orange-a-12: var(--colors-orange-dark-a-12);--colors-orange-p3-1: var(--colors-orange-dark-p3-1);--colors-orange-p3-2: var(--colors-orange-dark-p3-2);--colors-orange-p3-3: var(--colors-orange-dark-p3-3);--colors-orange-p3-4: var(--colors-orange-dark-p3-4);--colors-orange-p3-5: var(--colors-orange-dark-p3-5);--colors-orange-p3-6: var(--colors-orange-dark-p3-6);--colors-orange-p3-7: var(--colors-orange-dark-p3-7);--colors-orange-p3-8: var(--colors-orange-dark-p3-8);--colors-orange-p3-9: var(--colors-orange-dark-p3-9);--colors-orange-p3-10: var(--colors-orange-dark-p3-10);--colors-orange-p3-11: var(--colors-orange-dark-p3-11);--colors-orange-p3-12: var(--colors-orange-dark-p3-12);--colors-orange-p3-a-1: var(--colors-orange-dark-p3-a-1);--colors-orange-p3-a-2: var(--colors-orange-dark-p3-a-2);--colors-orange-p3-a-3: var(--colors-orange-dark-p3-a-3);--colors-orange-p3-a-4: var(--colors-orange-dark-p3-a-4);--colors-orange-p3-a-5: var(--colors-orange-dark-p3-a-5);--colors-orange-p3-a-6: var(--colors-orange-dark-p3-a-6);--colors-orange-p3-a-7: var(--colors-orange-dark-p3-a-7);--colors-orange-p3-a-8: var(--colors-orange-dark-p3-a-8);--colors-orange-p3-a-9: var(--colors-orange-dark-p3-a-9);--colors-orange-p3-a-10: var(--colors-orange-dark-p3-a-10);--colors-orange-p3-a-11: var(--colors-orange-dark-p3-a-11);--colors-orange-p3-a-12: var(--colors-orange-dark-p3-a-12);--colors-pink-1: var(--colors-pink-dark-1);--colors-pink-2: var(--colors-pink-dark-2);--colors-pink-3: var(--colors-pink-dark-3);--colors-pink-4: var(--colors-pink-dark-4);--colors-pink-5: var(--colors-pink-dark-5);--colors-pink-6: var(--colors-pink-dark-6);--colors-pink-7: var(--colors-pink-dark-7);--colors-pink-8: var(--colors-pink-dark-8);--colors-pink-9: var(--colors-pink-dark-9);--colors-pink-10: var(--colors-pink-dark-10);--colors-pink-11: var(--colors-pink-dark-11);--colors-pink-12: var(--colors-pink-dark-12);--colors-pink-a-1: var(--colors-pink-dark-a-1);--colors-pink-a-2: var(--colors-pink-dark-a-2);--colors-pink-a-3: var(--colors-pink-dark-a-3);--colors-pink-a-4: var(--colors-pink-dark-a-4);--colors-pink-a-5: var(--colors-pink-dark-a-5);--colors-pink-a-6: var(--colors-pink-dark-a-6);--colors-pink-a-7: var(--colors-pink-dark-a-7);--colors-pink-a-8: var(--colors-pink-dark-a-8);--colors-pink-a-9: var(--colors-pink-dark-a-9);--colors-pink-a-10: var(--colors-pink-dark-a-10);--colors-pink-a-11: var(--colors-pink-dark-a-11);--colors-pink-a-12: var(--colors-pink-dark-a-12);--colors-pink-p3-1: var(--colors-pink-dark-p3-1);--colors-pink-p3-2: var(--colors-pink-dark-p3-2);--colors-pink-p3-3: var(--colors-pink-dark-p3-3);--colors-pink-p3-4: var(--colors-pink-dark-p3-4);--colors-pink-p3-5: var(--colors-pink-dark-p3-5);--colors-pink-p3-6: var(--colors-pink-dark-p3-6);--colors-pink-p3-7: var(--colors-pink-dark-p3-7);--colors-pink-p3-8: var(--colors-pink-dark-p3-8);--colors-pink-p3-9: var(--colors-pink-dark-p3-9);--colors-pink-p3-10: var(--colors-pink-dark-p3-10);--colors-pink-p3-11: var(--colors-pink-dark-p3-11);--colors-pink-p3-12: var(--colors-pink-dark-p3-12);--colors-pink-p3-a-1: var(--colors-pink-dark-p3-a-1);--colors-pink-p3-a-2: var(--colors-pink-dark-p3-a-2);--colors-pink-p3-a-3: var(--colors-pink-dark-p3-a-3);--colors-pink-p3-a-4: var(--colors-pink-dark-p3-a-4);--colors-pink-p3-a-5: var(--colors-pink-dark-p3-a-5);--colors-pink-p3-a-6: var(--colors-pink-dark-p3-a-6);--colors-pink-p3-a-7: var(--colors-pink-dark-p3-a-7);--colors-pink-p3-a-8: var(--colors-pink-dark-p3-a-8);--colors-pink-p3-a-9: var(--colors-pink-dark-p3-a-9);--colors-pink-p3-a-10: var(--colors-pink-dark-p3-a-10);--colors-pink-p3-a-11: var(--colors-pink-dark-p3-a-11);--colors-pink-p3-a-12: var(--colors-pink-dark-p3-a-12);--colors-purple-1: var(--colors-purple-dark-1);--colors-purple-2: var(--colors-purple-dark-2);--colors-purple-3: var(--colors-purple-dark-3);--colors-purple-4: var(--colors-purple-dark-4);--colors-purple-5: var(--colors-purple-dark-5);--colors-purple-6: var(--colors-purple-dark-6);--colors-purple-7: var(--colors-purple-dark-7);--colors-purple-8: var(--colors-purple-dark-8);--colors-purple-9: var(--colors-purple-dark-9);--colors-purple-10: var(--colors-purple-dark-10);--colors-purple-11: var(--colors-purple-dark-11);--colors-purple-12: var(--colors-purple-dark-12);--colors-purple-a-1: var(--colors-purple-dark-a-1);--colors-purple-a-2: var(--colors-purple-dark-a-2);--colors-purple-a-3: var(--colors-purple-dark-a-3);--colors-purple-a-4: var(--colors-purple-dark-a-4);--colors-purple-a-5: var(--colors-purple-dark-a-5);--colors-purple-a-6: var(--colors-purple-dark-a-6);--colors-purple-a-7: var(--colors-purple-dark-a-7);--colors-purple-a-8: var(--colors-purple-dark-a-8);--colors-purple-a-9: var(--colors-purple-dark-a-9);--colors-purple-a-10: var(--colors-purple-dark-a-10);--colors-purple-a-11: var(--colors-purple-dark-a-11);--colors-purple-a-12: var(--colors-purple-dark-a-12);--colors-purple-p3-1: var(--colors-purple-dark-p3-1);--colors-purple-p3-2: var(--colors-purple-dark-p3-2);--colors-purple-p3-3: var(--colors-purple-dark-p3-3);--colors-purple-p3-4: var(--colors-purple-dark-p3-4);--colors-purple-p3-5: var(--colors-purple-dark-p3-5);--colors-purple-p3-6: var(--colors-purple-dark-p3-6);--colors-purple-p3-7: var(--colors-purple-dark-p3-7);--colors-purple-p3-8: var(--colors-purple-dark-p3-8);--colors-purple-p3-9: var(--colors-purple-dark-p3-9);--colors-purple-p3-10: var(--colors-purple-dark-p3-10);--colors-purple-p3-11: var(--colors-purple-dark-p3-11);--colors-purple-p3-12: var(--colors-purple-dark-p3-12);--colors-purple-p3-a-1: var(--colors-purple-dark-p3-a-1);--colors-purple-p3-a-2: var(--colors-purple-dark-p3-a-2);--colors-purple-p3-a-3: var(--colors-purple-dark-p3-a-3);--colors-purple-p3-a-4: var(--colors-purple-dark-p3-a-4);--colors-purple-p3-a-5: var(--colors-purple-dark-p3-a-5);--colors-purple-p3-a-6: var(--colors-purple-dark-p3-a-6);--colors-purple-p3-a-7: var(--colors-purple-dark-p3-a-7);--colors-purple-p3-a-8: var(--colors-purple-dark-p3-a-8);--colors-purple-p3-a-9: var(--colors-purple-dark-p3-a-9);--colors-purple-p3-a-10: var(--colors-purple-dark-p3-a-10);--colors-purple-p3-a-11: var(--colors-purple-dark-p3-a-11);--colors-purple-p3-a-12: var(--colors-purple-dark-p3-a-12);--colors-red-1: var(--colors-red-dark-1);--colors-red-2: var(--colors-red-dark-2);--colors-red-3: var(--colors-red-dark-3);--colors-red-4: var(--colors-red-dark-4);--colors-red-5: var(--colors-red-dark-5);--colors-red-6: var(--colors-red-dark-6);--colors-red-7: var(--colors-red-dark-7);--colors-red-8: var(--colors-red-dark-8);--colors-red-9: var(--colors-red-dark-9);--colors-red-10: var(--colors-red-dark-10);--colors-red-11: var(--colors-red-dark-11);--colors-red-12: var(--colors-red-dark-12);--colors-red-a-1: var(--colors-red-dark-a-1);--colors-red-a-2: var(--colors-red-dark-a-2);--colors-red-a-3: var(--colors-red-dark-a-3);--colors-red-a-4: var(--colors-red-dark-a-4);--colors-red-a-5: var(--colors-red-dark-a-5);--colors-red-a-6: var(--colors-red-dark-a-6);--colors-red-a-7: var(--colors-red-dark-a-7);--colors-red-a-8: var(--colors-red-dark-a-8);--colors-red-a-9: var(--colors-red-dark-a-9);--colors-red-a-10: var(--colors-red-dark-a-10);--colors-red-a-11: var(--colors-red-dark-a-11);--colors-red-a-12: var(--colors-red-dark-a-12);--colors-red-p3-1: var(--colors-red-dark-p3-1);--colors-red-p3-2: var(--colors-red-dark-p3-2);--colors-red-p3-3: var(--colors-red-dark-p3-3);--colors-red-p3-4: var(--colors-red-dark-p3-4);--colors-red-p3-5: var(--colors-red-dark-p3-5);--colors-red-p3-6: var(--colors-red-dark-p3-6);--colors-red-p3-7: var(--colors-red-dark-p3-7);--colors-red-p3-8: var(--colors-red-dark-p3-8);--colors-red-p3-9: var(--colors-red-dark-p3-9);--colors-red-p3-10: var(--colors-red-dark-p3-10);--colors-red-p3-11: var(--colors-red-dark-p3-11);--colors-red-p3-12: var(--colors-red-dark-p3-12);--colors-red-p3-a-1: var(--colors-red-dark-p3-a-1);--colors-red-p3-a-2: var(--colors-red-dark-p3-a-2);--colors-red-p3-a-3: var(--colors-red-dark-p3-a-3);--colors-red-p3-a-4: var(--colors-red-dark-p3-a-4);--colors-red-p3-a-5: var(--colors-red-dark-p3-a-5);--colors-red-p3-a-6: var(--colors-red-dark-p3-a-6);--colors-red-p3-a-7: var(--colors-red-dark-p3-a-7);--colors-red-p3-a-8: var(--colors-red-dark-p3-a-8);--colors-red-p3-a-9: var(--colors-red-dark-p3-a-9);--colors-red-p3-a-10: var(--colors-red-dark-p3-a-10);--colors-red-p3-a-11: var(--colors-red-dark-p3-a-11);--colors-red-p3-a-12: var(--colors-red-dark-p3-a-12);--colors-ruby-1: var(--colors-ruby-dark-1);--colors-ruby-2: var(--colors-ruby-dark-2);--colors-ruby-3: var(--colors-ruby-dark-3);--colors-ruby-4: var(--colors-ruby-dark-4);--colors-ruby-5: var(--colors-ruby-dark-5);--colors-ruby-6: var(--colors-ruby-dark-6);--colors-ruby-7: var(--colors-ruby-dark-7);--colors-ruby-8: var(--colors-ruby-dark-8);--colors-ruby-9: var(--colors-ruby-dark-9);--colors-ruby-10: var(--colors-ruby-dark-10);--colors-ruby-11: var(--colors-ruby-dark-11);--colors-ruby-12: var(--colors-ruby-dark-12);--colors-ruby-a-1: var(--colors-ruby-dark-a-1);--colors-ruby-a-2: var(--colors-ruby-dark-a-2);--colors-ruby-a-3: var(--colors-ruby-dark-a-3);--colors-ruby-a-4: var(--colors-ruby-dark-a-4);--colors-ruby-a-5: var(--colors-ruby-dark-a-5);--colors-ruby-a-6: var(--colors-ruby-dark-a-6);--colors-ruby-a-7: var(--colors-ruby-dark-a-7);--colors-ruby-a-8: var(--colors-ruby-dark-a-8);--colors-ruby-a-9: var(--colors-ruby-dark-a-9);--colors-ruby-a-10: var(--colors-ruby-dark-a-10);--colors-ruby-a-11: var(--colors-ruby-dark-a-11);--colors-ruby-a-12: var(--colors-ruby-dark-a-12);--colors-ruby-p3-1: var(--colors-ruby-dark-p3-1);--colors-ruby-p3-2: var(--colors-ruby-dark-p3-2);--colors-ruby-p3-3: var(--colors-ruby-dark-p3-3);--colors-ruby-p3-4: var(--colors-ruby-dark-p3-4);--colors-ruby-p3-5: var(--colors-ruby-dark-p3-5);--colors-ruby-p3-6: var(--colors-ruby-dark-p3-6);--colors-ruby-p3-7: var(--colors-ruby-dark-p3-7);--colors-ruby-p3-8: var(--colors-ruby-dark-p3-8);--colors-ruby-p3-9: var(--colors-ruby-dark-p3-9);--colors-ruby-p3-10: var(--colors-ruby-dark-p3-10);--colors-ruby-p3-11: var(--colors-ruby-dark-p3-11);--colors-ruby-p3-12: var(--colors-ruby-dark-p3-12);--colors-ruby-p3-a-1: var(--colors-ruby-dark-p3-a-1);--colors-ruby-p3-a-2: var(--colors-ruby-dark-p3-a-2);--colors-ruby-p3-a-3: var(--colors-ruby-dark-p3-a-3);--colors-ruby-p3-a-4: var(--colors-ruby-dark-p3-a-4);--colors-ruby-p3-a-5: var(--colors-ruby-dark-p3-a-5);--colors-ruby-p3-a-6: var(--colors-ruby-dark-p3-a-6);--colors-ruby-p3-a-7: var(--colors-ruby-dark-p3-a-7);--colors-ruby-p3-a-8: var(--colors-ruby-dark-p3-a-8);--colors-ruby-p3-a-9: var(--colors-ruby-dark-p3-a-9);--colors-ruby-p3-a-10: var(--colors-ruby-dark-p3-a-10);--colors-ruby-p3-a-11: var(--colors-ruby-dark-p3-a-11);--colors-ruby-p3-a-12: var(--colors-ruby-dark-p3-a-12);--colors-teal-1: var(--colors-teal-dark-1);--colors-teal-2: var(--colors-teal-dark-2);--colors-teal-3: var(--colors-teal-dark-3);--colors-teal-4: var(--colors-teal-dark-4);--colors-teal-5: var(--colors-teal-dark-5);--colors-teal-6: var(--colors-teal-dark-6);--colors-teal-7: var(--colors-teal-dark-7);--colors-teal-8: var(--colors-teal-dark-8);--colors-teal-9: var(--colors-teal-dark-9);--colors-teal-10: var(--colors-teal-dark-10);--colors-teal-11: var(--colors-teal-dark-11);--colors-teal-12: var(--colors-teal-dark-12);--colors-teal-a-1: var(--colors-teal-dark-a-1);--colors-teal-a-2: var(--colors-teal-dark-a-2);--colors-teal-a-3: var(--colors-teal-dark-a-3);--colors-teal-a-4: var(--colors-teal-dark-a-4);--colors-teal-a-5: var(--colors-teal-dark-a-5);--colors-teal-a-6: var(--colors-teal-dark-a-6);--colors-teal-a-7: var(--colors-teal-dark-a-7);--colors-teal-a-8: var(--colors-teal-dark-a-8);--colors-teal-a-9: var(--colors-teal-dark-a-9);--colors-teal-a-10: var(--colors-teal-dark-a-10);--colors-teal-a-11: var(--colors-teal-dark-a-11);--colors-teal-a-12: var(--colors-teal-dark-a-12);--colors-teal-p3-1: var(--colors-teal-dark-p3-1);--colors-teal-p3-2: var(--colors-teal-dark-p3-2);--colors-teal-p3-3: var(--colors-teal-dark-p3-3);--colors-teal-p3-4: var(--colors-teal-dark-p3-4);--colors-teal-p3-5: var(--colors-teal-dark-p3-5);--colors-teal-p3-6: var(--colors-teal-dark-p3-6);--colors-teal-p3-7: var(--colors-teal-dark-p3-7);--colors-teal-p3-8: var(--colors-teal-dark-p3-8);--colors-teal-p3-9: var(--colors-teal-dark-p3-9);--colors-teal-p3-10: var(--colors-teal-dark-p3-10);--colors-teal-p3-11: var(--colors-teal-dark-p3-11);--colors-teal-p3-12: var(--colors-teal-dark-p3-12);--colors-teal-p3-a-1: var(--colors-teal-dark-p3-a-1);--colors-teal-p3-a-2: var(--colors-teal-dark-p3-a-2);--colors-teal-p3-a-3: var(--colors-teal-dark-p3-a-3);--colors-teal-p3-a-4: var(--colors-teal-dark-p3-a-4);--colors-teal-p3-a-5: var(--colors-teal-dark-p3-a-5);--colors-teal-p3-a-6: var(--colors-teal-dark-p3-a-6);--colors-teal-p3-a-7: var(--colors-teal-dark-p3-a-7);--colors-teal-p3-a-8: var(--colors-teal-dark-p3-a-8);--colors-teal-p3-a-9: var(--colors-teal-dark-p3-a-9);--colors-teal-p3-a-10: var(--colors-teal-dark-p3-a-10);--colors-teal-p3-a-11: var(--colors-teal-dark-p3-a-11);--colors-teal-p3-a-12: var(--colors-teal-dark-p3-a-12);--colors-tomato-1: var(--colors-tomato-dark-1);--colors-tomato-2: var(--colors-tomato-dark-2);--colors-tomato-3: var(--colors-tomato-dark-3);--colors-tomato-4: var(--colors-tomato-dark-4);--colors-tomato-5: var(--colors-tomato-dark-5);--colors-tomato-6: var(--colors-tomato-dark-6);--colors-tomato-7: var(--colors-tomato-dark-7);--colors-tomato-8: var(--colors-tomato-dark-8);--colors-tomato-9: var(--colors-tomato-dark-9);--colors-tomato-10: var(--colors-tomato-dark-10);--colors-tomato-11: var(--colors-tomato-dark-11);--colors-tomato-12: var(--colors-tomato-dark-12);--colors-tomato-a-1: var(--colors-tomato-dark-a-1);--colors-tomato-a-2: var(--colors-tomato-dark-a-2);--colors-tomato-a-3: var(--colors-tomato-dark-a-3);--colors-tomato-a-4: var(--colors-tomato-dark-a-4);--colors-tomato-a-5: var(--colors-tomato-dark-a-5);--colors-tomato-a-6: var(--colors-tomato-dark-a-6);--colors-tomato-a-7: var(--colors-tomato-dark-a-7);--colors-tomato-a-8: var(--colors-tomato-dark-a-8);--colors-tomato-a-9: var(--colors-tomato-dark-a-9);--colors-tomato-a-10: var(--colors-tomato-dark-a-10);--colors-tomato-a-11: var(--colors-tomato-dark-a-11);--colors-tomato-a-12: var(--colors-tomato-dark-a-12);--colors-tomato-p3-1: var(--colors-tomato-dark-p3-1);--colors-tomato-p3-2: var(--colors-tomato-dark-p3-2);--colors-tomato-p3-3: var(--colors-tomato-dark-p3-3);--colors-tomato-p3-4: var(--colors-tomato-dark-p3-4);--colors-tomato-p3-5: var(--colors-tomato-dark-p3-5);--colors-tomato-p3-6: var(--colors-tomato-dark-p3-6);--colors-tomato-p3-7: var(--colors-tomato-dark-p3-7);--colors-tomato-p3-8: var(--colors-tomato-dark-p3-8);--colors-tomato-p3-9: var(--colors-tomato-dark-p3-9);--colors-tomato-p3-10: var(--colors-tomato-dark-p3-10);--colors-tomato-p3-11: var(--colors-tomato-dark-p3-11);--colors-tomato-p3-12: var(--colors-tomato-dark-p3-12);--colors-tomato-p3-a-1: var(--colors-tomato-dark-p3-a-1);--colors-tomato-p3-a-2: var(--colors-tomato-dark-p3-a-2);--colors-tomato-p3-a-3: var(--colors-tomato-dark-p3-a-3);--colors-tomato-p3-a-4: var(--colors-tomato-dark-p3-a-4);--colors-tomato-p3-a-5: var(--colors-tomato-dark-p3-a-5);--colors-tomato-p3-a-6: var(--colors-tomato-dark-p3-a-6);--colors-tomato-p3-a-7: var(--colors-tomato-dark-p3-a-7);--colors-tomato-p3-a-8: var(--colors-tomato-dark-p3-a-8);--colors-tomato-p3-a-9: var(--colors-tomato-dark-p3-a-9);--colors-tomato-p3-a-10: var(--colors-tomato-dark-p3-a-10);--colors-tomato-p3-a-11: var(--colors-tomato-dark-p3-a-11);--colors-tomato-p3-a-12: var(--colors-tomato-dark-p3-a-12);--colors-violet-1: var(--colors-violet-dark-1);--colors-violet-2: var(--colors-violet-dark-2);--colors-violet-3: var(--colors-violet-dark-3);--colors-violet-4: var(--colors-violet-dark-4);--colors-violet-5: var(--colors-violet-dark-5);--colors-violet-6: var(--colors-violet-dark-6);--colors-violet-7: var(--colors-violet-dark-7);--colors-violet-8: var(--colors-violet-dark-8);--colors-violet-9: var(--colors-violet-dark-9);--colors-violet-10: var(--colors-violet-dark-10);--colors-violet-11: var(--colors-violet-dark-11);--colors-violet-12: var(--colors-violet-dark-12);--colors-violet-a-1: var(--colors-violet-dark-a-1);--colors-violet-a-2: var(--colors-violet-dark-a-2);--colors-violet-a-3: var(--colors-violet-dark-a-3);--colors-violet-a-4: var(--colors-violet-dark-a-4);--colors-violet-a-5: var(--colors-violet-dark-a-5);--colors-violet-a-6: var(--colors-violet-dark-a-6);--colors-violet-a-7: var(--colors-violet-dark-a-7);--colors-violet-a-8: var(--colors-violet-dark-a-8);--colors-violet-a-9: var(--colors-violet-dark-a-9);--colors-violet-a-10: var(--colors-violet-dark-a-10);--colors-violet-a-11: var(--colors-violet-dark-a-11);--colors-violet-a-12: var(--colors-violet-dark-a-12);--colors-violet-p3-1: var(--colors-violet-dark-p3-1);--colors-violet-p3-2: var(--colors-violet-dark-p3-2);--colors-violet-p3-3: var(--colors-violet-dark-p3-3);--colors-violet-p3-4: var(--colors-violet-dark-p3-4);--colors-violet-p3-5: var(--colors-violet-dark-p3-5);--colors-violet-p3-6: var(--colors-violet-dark-p3-6);--colors-violet-p3-7: var(--colors-violet-dark-p3-7);--colors-violet-p3-8: var(--colors-violet-dark-p3-8);--colors-violet-p3-9: var(--colors-violet-dark-p3-9);--colors-violet-p3-10: var(--colors-violet-dark-p3-10);--colors-violet-p3-11: var(--colors-violet-dark-p3-11);--colors-violet-p3-12: var(--colors-violet-dark-p3-12);--colors-violet-p3-a-1: var(--colors-violet-dark-p3-a-1);--colors-violet-p3-a-2: var(--colors-violet-dark-p3-a-2);--colors-violet-p3-a-3: var(--colors-violet-dark-p3-a-3);--colors-violet-p3-a-4: var(--colors-violet-dark-p3-a-4);--colors-violet-p3-a-5: var(--colors-violet-dark-p3-a-5);--colors-violet-p3-a-6: var(--colors-violet-dark-p3-a-6);--colors-violet-p3-a-7: var(--colors-violet-dark-p3-a-7);--colors-violet-p3-a-8: var(--colors-violet-dark-p3-a-8);--colors-violet-p3-a-9: var(--colors-violet-dark-p3-a-9);--colors-violet-p3-a-10: var(--colors-violet-dark-p3-a-10);--colors-violet-p3-a-11: var(--colors-violet-dark-p3-a-11);--colors-violet-p3-a-12: var(--colors-violet-dark-p3-a-12);--colors-yellow-1: var(--colors-yellow-dark-1);--colors-yellow-2: var(--colors-yellow-dark-2);--colors-yellow-3: var(--colors-yellow-dark-3);--colors-yellow-4: var(--colors-yellow-dark-4);--colors-yellow-5: var(--colors-yellow-dark-5);--colors-yellow-6: var(--colors-yellow-dark-6);--colors-yellow-7: var(--colors-yellow-dark-7);--colors-yellow-8: var(--colors-yellow-dark-8);--colors-yellow-9: var(--colors-yellow-dark-9);--colors-yellow-10: var(--colors-yellow-dark-10);--colors-yellow-11: var(--colors-yellow-dark-11);--colors-yellow-12: var(--colors-yellow-dark-12);--colors-yellow-a-1: var(--colors-yellow-dark-a-1);--colors-yellow-a-2: var(--colors-yellow-dark-a-2);--colors-yellow-a-3: var(--colors-yellow-dark-a-3);--colors-yellow-a-4: var(--colors-yellow-dark-a-4);--colors-yellow-a-5: var(--colors-yellow-dark-a-5);--colors-yellow-a-6: var(--colors-yellow-dark-a-6);--colors-yellow-a-7: var(--colors-yellow-dark-a-7);--colors-yellow-a-8: var(--colors-yellow-dark-a-8);--colors-yellow-a-9: var(--colors-yellow-dark-a-9);--colors-yellow-a-10: var(--colors-yellow-dark-a-10);--colors-yellow-a-11: var(--colors-yellow-dark-a-11);--colors-yellow-a-12: var(--colors-yellow-dark-a-12);--colors-yellow-p3-1: var(--colors-yellow-dark-p3-1);--colors-yellow-p3-2: var(--colors-yellow-dark-p3-2);--colors-yellow-p3-3: var(--colors-yellow-dark-p3-3);--colors-yellow-p3-4: var(--colors-yellow-dark-p3-4);--colors-yellow-p3-5: var(--colors-yellow-dark-p3-5);--colors-yellow-p3-6: var(--colors-yellow-dark-p3-6);--colors-yellow-p3-7: var(--colors-yellow-dark-p3-7);--colors-yellow-p3-8: var(--colors-yellow-dark-p3-8);--colors-yellow-p3-9: var(--colors-yellow-dark-p3-9);--colors-yellow-p3-10: var(--colors-yellow-dark-p3-10);--colors-yellow-p3-11: var(--colors-yellow-dark-p3-11);--colors-yellow-p3-12: var(--colors-yellow-dark-p3-12);--colors-yellow-p3-a-1: var(--colors-yellow-dark-p3-a-1);--colors-yellow-p3-a-2: var(--colors-yellow-dark-p3-a-2);--colors-yellow-p3-a-3: var(--colors-yellow-dark-p3-a-3);--colors-yellow-p3-a-4: var(--colors-yellow-dark-p3-a-4);--colors-yellow-p3-a-5: var(--colors-yellow-dark-p3-a-5);--colors-yellow-p3-a-6: var(--colors-yellow-dark-p3-a-6);--colors-yellow-p3-a-7: var(--colors-yellow-dark-p3-a-7);--colors-yellow-p3-a-8: var(--colors-yellow-dark-p3-a-8);--colors-yellow-p3-a-9: var(--colors-yellow-dark-p3-a-9);--colors-yellow-p3-a-10: var(--colors-yellow-dark-p3-a-10);--colors-yellow-p3-a-11: var(--colors-yellow-dark-p3-a-11);--colors-yellow-p3-a-12: var(--colors-yellow-dark-p3-a-12);--colors-likec4-background-pattern: color-mix(in srgb, var(--colors-mantine-colors-dark\\[4\\]) 70%, transparent);--colors-likec4-mix-color: white;--colors-likec4-panel-bg: var(--colors-mantine-colors-dark\\[6\\]);--colors-likec4-panel-action-icon-bg: color-mix(in srgb, var(--colors-mantine-colors-dark\\[7\\]) 70%, transparent);--colors-likec4-panel-action-icon-bg-hover: var(--colors-mantine-colors-dark\\[8\\]);--colors-likec4-dropdown-bg: var(--colors-mantine-colors-dark\\[6\\]) }[data-mantine-color-scheme=light]{--colors-likec4-background-pattern: var(--colors-mantine-colors-gray\\[4\\]);--colors-likec4-mix-color: black;--colors-likec4-panel-border: color-mix(in srgb, var(--colors-mantine-colors-default-border) 30%, transparent);--colors-likec4-overlay-backdrop: rgb(15 15 15) }@keyframes indicatorOpacity{0%{opacity:.9;stroke-opacity:.8}to{opacity:.6;stroke-opacity:.4}}@keyframes xyedgeAnimated{0%{stroke-dashoffset:36}to{stroke-dashoffset:0}}}@layer recipes{@layer _base{.likec4-overlay{--_blur: 0px;--_level: 0;--_offset: 0px;--_inset: calc((1 + var(--_level) * .75) * var(--_offset));--_opacity: 0%;--_border-radius: 0px;margin:var(--spacing-0);background:var(--colors-likec4-overlay-border);border:var(--borders-transparent);inset:var(--spacing-0);padding:var(--spacing-0);outline:var(--borders-none);border-radius:var(--_border-radius);box-sizing:border-box;position:fixed;box-shadow:var(--shadows-xl);width:100vw;height:100vh;max-width:100vw;max-height:100vh}.likec4-overlay::backdrop{cursor:zoom-out}.likec4-overlay .likec4-overlay-body{border:var(--borders-transparent);background:var(--colors-likec4-overlay-body);overflow:hidden;position:relative;container-name:likec4-dialog;container-type:size;width:100%;height:100%}.likec4-markdown-block{--text-fz: 1rem;--text-fz-sm: calc(var(--text-fz) * var(--mantine-scale, 1) / 1.125);--text-fz-md: calc(var(--text-fz) * var(--mantine-scale, 1));--typography-spacing: calc(.75 * var(--text-fz-md));--text-fw-headings: 600;font-size:var(--text-fz-md);line-height:var(--mantine-line-height)}[data-mantine-color-scheme=light] .likec4-markdown-block{--code-background: var(--mantine-color-gray-2);--code-color: var(--mantine-color-black)}[data-mantine-color-scheme=dark] .likec4-markdown-block{--code-background: var(--mantine-color-dark-8);--code-color: var(--mantine-color-white)}.likec4-markdown-block :where(hr){border:var(--borders-none);border-bottom:1px solid;margin-top:calc(var(--typography-spacing) / 2);margin-bottom:calc(var(--typography-spacing) / 2)}[data-mantine-color-scheme=light] .likec4-markdown-block :where(hr){border-color:var(--colors-mantine-colors-gray\\[3\\])}[data-mantine-color-scheme=dark] .likec4-markdown-block :where(hr){border-color:var(--colors-mantine-colors-dark\\[3\\])}.likec4-markdown-block :where(pre){margin:var(--spacing-0);padding-inline:var(--spacing-3);padding-block:var(--spacing-2);border-radius:var(--radii-sm);line-height:var(--mantine-line-height-xs);font-family:var(--mantine-font-family-monospace);font-size:var(--text-fz-sm);background-color:var(--code-background);color:var(--code-color);margin-top:var(--typography-spacing);margin-bottom:var(--typography-spacing);overflow-x:auto}.likec4-markdown-block :where(code){padding:1px 4px;border-radius:var(--radii-xs);line-height:var(--line-heights-1);font-family:var(--mantine-font-family-monospace);font-size:var(--text-fz-sm);background-color:var(--code-background);color:var(--code-color)}.likec4-markdown-block :where(pre code){padding:var(--spacing-0);border:0;border-radius:var(--radii-0);background-color:var(--colors-transparent);color:inherit}.likec4-markdown-block :where(blockquote){margin:var(--spacing-0);padding:var(--spacing-xs);border-radius:var(--mantine-radius-sm);font-size:var(--text-fz-md)}[data-mantine-color-scheme=light] .likec4-markdown-block :where(blockquote){background-color:var(--mantine-color-gray-1)}[data-mantine-color-scheme=dark] .likec4-markdown-block :where(blockquote){background-color:var(--mantine-color-dark-5)}.likec4-markdown-block :where(blockquote):not(:first-child){margin-top:var(--typography-spacing)}.likec4-markdown-block :where(h1,h2,h3,h4,h5,h6){text-wrap:var(--mantine-heading-text-wrap);line-height:1.5;font-family:var(--mantine-font-family-headings);margin-bottom:var(--typography-spacing)}.likec4-markdown-block :where(a){text-decoration:none;font-size:var(--text-fz-md);color:var(--mantine-color-anchor);font-weight:500}.likec4-markdown-block :where(a):is(:hover,[data-hover]){text-decoration:underline}.likec4-markdown-block :is(h1){font-size:calc(1.476 * var(--text-fz-md));font-weight:var(--text-fw-headings)}.likec4-markdown-block :is(h2){font-size:calc(1.383 * var(--text-fz-md));font-weight:var(--text-fw-headings)}.likec4-markdown-block :is(h3){font-size:calc(1.296 * var(--text-fz-md));font-weight:var(--text-fw-headings)}.likec4-markdown-block :is(h4){font-size:calc(1.215 * var(--text-fz-md));font-weight:var(--text-fw-headings)}.likec4-markdown-block :is(h5){font-size:calc(1.138 * var(--text-fz-md));font-weight:var(--text-fw-headings)}.likec4-markdown-block :is(h6){font-size:calc(1.067 * var(--text-fz-md));font-weight:var(--text-fw-headings)}.likec4-markdown-block :where(p){font-size:var(--text-fz-md);margin-top:var(--spacing-0);margin-bottom:var(--typography-spacing)}.likec4-markdown-block :where(strong){font-weight:500}.likec4-markdown-block :where(mark){font-size:var(--text-fz-md)}[data-mantine-color-scheme=light] .likec4-markdown-block :where(mark){background-color:var(--colors-mantine-colors-yellow\\[2\\]);color:inherit}[data-mantine-color-scheme=dark] .likec4-markdown-block :where(mark){background-color:var(--colors-mantine-colors-yellow\\[5\\]);color:var(--mantine-color-black)}.likec4-markdown-block :where(ul,ol):not([data-type=taskList]){padding-inline-start:var(--typography-spacing);list-style-position:inside;margin-bottom:var(--typography-spacing)}.likec4-markdown-block :where(table){border-collapse:collapse;caption-side:bottom;width:100%;margin-bottom:var(--typography-spacing)}[data-mantine-color-scheme=light] .likec4-markdown-block :where(table){--table-border-color: var(--mantine-color-gray-3)}[data-mantine-color-scheme=dark] .likec4-markdown-block :where(table){--table-border-color: var(--mantine-color-dark-4)}.likec4-markdown-block :where(table) :where(th){padding:var(--typography-spacing);text-align:left;font-weight:700;font-size:var(--text-fz-sm)}.likec4-markdown-block :where(table) :where(td){padding:var(--typography-spacing);border-bottom:1px solid;border-color:var(--table-border-color);font-size:var(--text-fz-sm)}.likec4-markdown-block :where(table) :where(thead th){border-bottom:1px solid;border-color:var(--table-border-color)}.likec4-markdown-block :where(table) :where(tfoot th){border-top:1px solid;border-color:var(--table-border-color)}.likec4-markdown-block :where(table) :where(tr:last-of-type td){border-bottom:0}.likec4-markdown-block :where(table) :where(caption){font-size:var(--text-fz-sm);color:var(--mantine-color-dimmed);margin-top:calc(.5 * var(--typography-spacing) + 1px)}.likec4-markdown-block :first-child{margin-top:var(--spacing-0)}.likec4-markdown-block :last-child{margin-bottom:var(--spacing-0)}.likec4-markdown-block :is(h1,h2,h3,h4,h5,h6):not(:first-child){margin-top:var(--typography-spacing)}.likec4-markdown-block :where(img){max-width:100%;margin-bottom:var(--typography-spacing)}.likec4-navigation-panel-icon{color:var(--colors-likec4-panel-action-icon-text)}.likec4-navigation-panel-icon:is(:disabled,[disabled],[data-disabled],[aria-disabled=true]){color:var(--colors-likec4-panel-action-icon-text-disabled);opacity:.5}.likec4-navigation-panel-icon:not(:is(:disabled,[disabled],[data-disabled])):is(:hover,[data-hover]){color:var(--colors-likec4-panel-action-icon-text-hover)}.action-btn{--actionbtn-color: var(--likec4-palette-loContrast);--actionbtn-color-hovered: var(--likec4-palette-loContrast);--actionbtn-color-hovered-btn: var(--likec4-palette-hiContrast);--actionbtn-bg-idle: color-mix(in srgb , var(--likec4-palette-fill), transparent 99%);--actionbtn-bg-hovered: color-mix(in srgb , var(--likec4-palette-fill) 65%, var(--likec4-palette-stroke));--actionbtn-bg-hovered-btn: color-mix(in srgb , var(--likec4-palette-fill) 50%, var(--likec4-palette-stroke));--ai-bg: var(--actionbtn-bg-idle);background:var(--ai-bg);pointer-events:all;cursor:pointer;color:var(--actionbtn-color);opacity:.75}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .action-btn{--ai-bg: var(--actionbtn-bg-hovered);opacity:1;color:var(--actionbtn-color-hovered)}.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .action-btn{display:none}:where([data-likec4-zoom-small=true]) .action-btn{display:none}.action-btn *{pointer-events:none}.action-btn:is(:hover,[data-hover]){--ai-bg: var(--actionbtn-bg-hovered-btn);opacity:1;color:var(--actionbtn-color-hovered-btn)}.likec4-compound-node{--_border-width: 3px;--_border-radius: 6px;--_compound-transparency: 100%;--_border-transparency: 100%;--_indicator-spacing: calc(var(--_border-width) + 2px);--_compound-color: var(--likec4-palette-loContrast);padding:var(--spacing-0);margin:var(--spacing-0);border-style:solid;border-width:var(--_border-width);border-radius:var(--_border-radius);position:relative;pointer-events:none;background-clip:padding-box;-webkit-background-clip:padding-box;box-sizing:border-box;color:var(--_compound-color);width:100%;height:100%}[data-mantine-color-scheme=light] .likec4-compound-node{--likec4-palette-outline: color-mix(in srgb, var(--likec4-palette-stroke) 80%, var(--likec4-palette-hiContrast))}[data-mantine-color-scheme=dark] .likec4-compound-node{--likec4-palette-outline: color-mix(in srgb, var(--likec4-palette-stroke) 60%, var(--likec4-palette-hiContrast))}.likec4-compound-node:after{border-style:solid;border-width:calc(var(--_border-width) + 1px);border-radius:calc(var(--_border-radius) + 4px);border-color:var(--likec4-palette-outline);position:absolute;content:" ";pointer-events:none;display:none;animation-play-state:paused;top:calc(-1 * var(--_indicator-spacing));left:calc(-1 * var(--_indicator-spacing));width:calc(100% + 2 * var(--_indicator-spacing));height:calc(100% + 2 * var(--_indicator-spacing))}:where(.react-flow__node,.react-flow__edge):is(:focus-visible,:focus,:focus-within) .likec4-compound-node:after{display:block;animation-play-state:running}:where(.react-flow__node,.react-flow__edge):is(.selected) .likec4-compound-node:after{display:block;animation-play-state:running}.likec4-root:is([data-likec4-diagram-panning=true]) .likec4-compound-node:after{animation-play-state:paused}.likec4-compound-node:has(.likec4-compound-navigation) .likec4-compound-title-container{padding-left:24px}.likec4-compound-node .action-btn{--actionbtn-color: var(--_compound-color);--actionbtn-color-hovered: var(--_compound-color);--actionbtn-color-hovered-btn: color-mix(in srgb, var(--_compound-color) 80%, #fff);opacity:.6}.likec4-root:not([data-likec4-reduced-graphics]) .likec4-compound-node .action-btn{transition:all var(--durations-fast) var(--easings-in-out)}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .likec4-compound-node .action-btn{opacity:.75}:where(.react-flow__node,.react-flow__edge):is(.selected) .likec4-compound-node .action-btn{opacity:.75}.likec4-compound-node .action-btn:is(:hover,[data-hover]){opacity:1}.likec4-compound-node .likec4-compound-title-container{gap:var(--spacing-1\\.5);position:absolute;display:flex;align-items:center;left:var(--spacing-2\\.5);top:var(--spacing-0\\.5);right:30px;width:auto;min-height:30px}:where(.react-flow__node.draggable) .likec4-compound-node .likec4-compound-title-container{pointer-events:all;cursor:grab}.likec4-compound-node .likec4-compound-title{flex:1 1 0%;font-family:var(--fonts-likec4-compound);font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:.25px;line-height:var(--line-heights-1);color:var(--_compound-color)}.likec4-compound-node .likec4-compound-icon{flex:0 0 20px;display:flex;align-items:center;justify-content:center;mix-blend-mode:hard-light;height:20px;width:20px}.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .likec4-compound-node .likec4-compound-icon{mix-blend-mode:normal}.likec4-compound-node .likec4-compound-icon svg,.likec4-compound-node .likec4-compound-icon img{pointer-events:none;filter:drop-shadow(0 0 3px rgb(0 0 0 / 12%)) drop-shadow(0 1px 8px rgb(0 0 0 / 8%)) drop-shadow(1px 1px 16px rgb(0 0 0 / 3%));width:100%;height:auto;max-height:100%}.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .likec4-compound-node .likec4-compound-icon svg,.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .likec4-compound-node .likec4-compound-icon img{filter:none}.likec4-compound-node .likec4-compound-icon img{object-fit:contain}.likec4-compound-node .likec4-compound-navigation{position:absolute;top:var(--spacing-1);left:var(--spacing-0\\.5)}:where([data-likec4-zoom-small=true]) .likec4-compound-node .likec4-compound-navigation{display:none}.likec4-compound-node .likec4-compound-details{position:absolute;top:var(--spacing-0\\.5);right:var(--spacing-0\\.5)}:where([data-likec4-zoom-small=true]) .likec4-compound-node .likec4-compound-details{display:none}.likec4-edge-action-btn{--ai-bg: transparent;--ai-hover: color-mix(in srgb , var(--xy-edge-label-background-color), var(--colors-likec4-mix-color) 10%);--ai-size: var(--ai-size-sm);--ai-radius: var(--radii-sm);transition:all var(--durations-fast) var(--easings-in-out);pointer-events:all;color:var(--xy-edge-label-color);cursor:pointer;opacity:.75;translate:var(--translate-x) var(--translate-y)}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .likec4-edge-action-btn{--ai-bg: var(--xy-edge-label-background-color);opacity:1}.likec4-edge-action-btn .tabler-icon{stroke-width:2;width:80%;height:80%}.likec4-edge-action-btn:is(:hover,[data-hover]){--translate-y: 2px;scale:1.15}.likec4-edge-action-btn:is(:active,[data-active]){--translate-y: -1px;scale:.9}.likec4-element-node-data{margin:0 auto;flex:1 1 0%;overflow:hidden;gap:var(--spacing-3);position:relative;display:flex;align-items:center;justify-content:center;flex-direction:row;pointer-events:none;text-align:center;height:fit-content;width:fit-content;max-height:100%;max-width:100%;padding-top:var(--likec4-spacing);padding-bottom:var(--likec4-spacing);padding-left:calc(var(--likec4-spacing) + 8px);padding-right:calc(var(--likec4-spacing) + 8px)}:where([data-likec4-shape-size=xs]) .likec4-element-node-data{--likec4-icon-size: 24px}:where([data-likec4-shape-size=sm]) .likec4-element-node-data{--likec4-icon-size: 36px}:where([data-likec4-shape-size=md]) .likec4-element-node-data{--likec4-icon-size: 60px}:where([data-likec4-shape-size=lg]) .likec4-element-node-data{--likec4-icon-size: 82px;gap:var(--spacing-4)}:where([data-likec4-shape-size=xl]) .likec4-element-node-data{--likec4-icon-size: 90px;gap:var(--spacing-4)}.likec4-element-node-data:has([data-likec4-icon]){gap:var(--spacing-4);text-align:left}.likec4-element-node-data:has([data-likec4-icon]) .likec4-element-node-content{align-items:flex-start;min-width:calc(50% + var(--likec4-icon-size))}:where([data-likec4-shape=queue]) .likec4-element-node-data{padding-left:46px;padding-right:16px}:where([data-likec4-shape=mobile]) .likec4-element-node-data{padding-left:46px;padding-right:16px}:where([data-likec4-shape=cylinder]) .likec4-element-node-data{padding-top:30px}:where([data-likec4-shape=storage]) .likec4-element-node-data{padding-top:30px}:where([data-likec4-shape=browser]) .likec4-element-node-data{padding-top:32px;padding-bottom:28px}.likec4-element-node-data [data-likec4-icon]{flex:0 0 var(--likec4-icon-size, 48px);display:flex;align-self:flex-start;align-items:center;justify-content:center;mix-blend-mode:hard-light;height:var(--likec4-icon-size, 48px);width:var(--likec4-icon-size, 48px)}.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .likec4-element-node-data [data-likec4-icon]{mix-blend-mode:normal}.likec4-element-node-data [data-likec4-icon] svg,.likec4-element-node-data [data-likec4-icon] img{pointer-events:none;filter:drop-shadow(0 0 3px rgb(0 0 0 / 12%));width:100%;height:auto;max-height:100%}.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .likec4-element-node-data [data-likec4-icon] svg,.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .likec4-element-node-data [data-likec4-icon] img{filter:none}.likec4-element-node-data [data-likec4-icon] img{object-fit:contain}.likec4-element-node-data .likec4-element-node-content{flex:0 1 auto;overflow:hidden;gap:var(--spacing-2);display:flex;flex-direction:column;align-items:stretch;justify-content:center;flex-wrap:nowrap;height:fit-content;width:fit-content;max-height:100%;max-width:100%}.likec4-element-node-data .likec4-element-node-content:has([data-likec4-node-description]):has([data-likec4-node-technology]){gap:var(--spacing-1\\.5)}.likec4-element-node-data [data-likec4-node-title]{flex:0 0 auto;font-family:var(--likec4-element-font, var(--fonts-likec4));font-weight:500;font-size:var(--likec4-text-size);line-height:1.15;text-wrap-style:balance;white-space:preserve-breaks;text-align:var(__text-align);color:var(--likec4-palette-hiContrast)}.likec4-element-node-data [data-likec4-node-description]{overflow:hidden;flex-grow:0;flex-shrink:1;--text-fz: calc(var(--likec4-text-size) * .74);font-family:var(--likec4-element-font, var(--fonts-likec4));font-weight:400;font-size:calc(var(--likec4-text-size) * .74);line-height:1.3;text-wrap-style:pretty;color:var(--likec4-palette-loContrast);text-align:var(__text-align);text-overflow:ellipsis}:where([data-likec4-shape-size=xs]) .likec4-element-node-data [data-likec4-node-description]{display:none}:where([data-likec4-zoom-small=true]) .likec4-element-node-data [data-likec4-node-description]{display:none}.likec4-element-node-data [data-likec4-node-description] a{pointer-events:all}.likec4-element-node-data [data-likec4-node-technology]{flex:0 0 auto;text-wrap:balance;--text-fz: calc(var(--likec4-text-size) * .74);font-family:var(--likec4-element-font, var(--fonts-likec4));font-weight:400;font-size:calc(var(--likec4-text-size) * .635);line-height:1.125;text-wrap-style:pretty;color:var(--likec4-palette-loContrast);text-align:var(__text-align);opacity:.92}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .likec4-element-node-data [data-likec4-node-technology]{opacity:1}:where([data-likec4-shape-size=xs]) .likec4-element-node-data [data-likec4-node-technology]{display:none}:where([data-likec4-shape-size=sm]) .likec4-element-node-data [data-likec4-node-technology]{display:none}:where([data-likec4-zoom-small=true]) .likec4-element-node-data [data-likec4-node-technology]{display:none}.likec4-element-shape{overflow:visible;position:absolute;pointer-events:none;top:var(--spacing-0);left:var(--spacing-0);width:100%;height:100%}[data-mantine-color-scheme=light] .likec4-element-shape{--likec4-palette-outline: color-mix(in srgb, var(--likec4-palette-stroke) 60%, var(--likec4-palette-hiContrast))}[data-mantine-color-scheme=dark] .likec4-element-shape{--likec4-palette-outline: color-mix(in srgb, var(--likec4-palette-stroke) 30%, var(--likec4-palette-loContrast))}.likec4-element-shape .likec4-shape-outline{visibility:hidden;animation-play-state:paused;pointer-events:none}:where([data-likec4-zoom-small=true]) .likec4-element-shape .likec4-shape-outline{visibility:hidden}:where(.react-flow__node,.react-flow__edge):is(.selected) .likec4-element-shape .likec4-shape-outline{visibility:visible;animation-play-state:running}:where(.react-flow__node,.react-flow__edge):is(:focus-visible,:focus,:focus-within) .likec4-element-shape .likec4-shape-outline{visibility:visible;animation-play-state:running}.group:is(:focus-visible,[data-focus-visible]) .likec4-element-shape .likec4-shape-outline{visibility:visible;animation-play-state:running}.likec4-root:is([data-likec4-diagram-panning=true]) .likec4-element-shape .likec4-shape-outline{animation-play-state:paused}.likec4-tag{transition:all var(--durations-fast) var(--easings-in-out);gap:1px;padding-inline:var(--spacing-1);padding-block:var(--spacing-0);pointer-events:all;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-sizes-xs);cursor:default;font-family:var(--fonts-likec4);font-weight:700;border:var(--borders-none);border-radius:3px;color:var(--colors-likec4-tag-text);background-color:var(--colors-likec4-tag-bg)}.likec4-tag:is(:hover,[data-hover]){background-color:var(--colors-likec4-tag-bg-hover)}.likec4-tag{white-space:nowrap;min-width:40px;width:min-content}@media screen and (min-width: 36rem){.likec4-element-node-data [data-likec4-icon] svg,.likec4-element-node-data [data-likec4-icon] img{filter:drop-shadow(0 1px 8px rgb(0 0 0 / 8%))}}@media screen and (min-width: 48rem){.likec4-element-node-data [data-likec4-icon] svg,.likec4-element-node-data [data-likec4-icon] img{filter:drop-shadow(1px 1px 16px rgb(0 0 0 / 3%))}}}.likec4-overlay--withBackdrop_true::backdrop{background:color-mix(in srgb,var(--colors-likec4-overlay-backdrop) var(--_opacity),transparent);backdrop-filter:blur(var(--_blur));-webkit-backdrop-filter:blur(var(--_blur))}.likec4-overlay--fullscreen_true{inset:var(--spacing-0);padding:var(--spacing-0)}.likec4-overlay--withBackdrop_false::backdrop{display:none}.likec4-markdown-block--value_plaintext :where(p){white-space:preserve-breaks}.likec4-markdown-block--uselikec4palette_true{--code-background: color-mix(in srgb , var(--likec4-palette-stroke) 70%, transparent);--code-color: var(--likec4-palette-loContrast);--typography-spacing: calc(.5 * var(--text-fz-md))}.likec4-markdown-block--uselikec4palette_true :where(blockquote){padding:var(--spacing-xxs);--mix-backgroundColor: color-mix(in srgb, var(--likec4-palette-stroke) 65%, transparent);background-color:var(--mix-backgroundColor, var(--likec4-palette-stroke))}.likec4-markdown-block--uselikec4palette_true :where(hr){--mix-borderColor: color-mix(in srgb, var(--likec4-palette-stroke) 85%, transparent);border-color:var(--mix-borderColor, var(--likec4-palette-stroke))}.likec4-markdown-block--uselikec4palette_true :where(a){--mix-color: color-mix(in srgb, var(--likec4-palette-fill) 45%, transparent);color:var(--mix-color, var(--likec4-palette-fill));mix-blend-mode:difference}.likec4-markdown-block--uselikec4palette_true :where(strong){color:color-mix(in srgb,var(--likec4-palette-hiContrast) 50%,var(--likec4-palette-loContrast))}.likec4-navigation-panel-icon--variant_default{background-color:var(--colors-transparent)}.likec4-navigation-panel-icon--variant_default:not(:is(:disabled,[disabled],[data-disabled])):is(:hover,[data-hover]){background-color:var(--colors-likec4-panel-action-icon-bg-hover)}.likec4-navigation-panel-icon--variant_filled{background-color:var(--colors-likec4-panel-action-icon-bg)}.likec4-navigation-panel-icon--variant_filled:not(:is(:disabled,[disabled],[data-disabled])):is(:hover,[data-hover]){background-color:var(--colors-likec4-panel-action-icon-bg-hover)}.action-btn--size_md{--ai-size: var(--ai-size-md)}.action-btn--radius_md{--ai-radius: var(--mantine-radius-md)}.action-btn--variant_transparent{--actionbtn-bg-hovered: var(--actionbtn-bg-idle)}.action-btn--variant_filled{box-shadow:1px 1px 3px 0 transparent}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .action-btn--variant_filled{box-shadow:1px 1px 3px #0003}.likec4-root:is([data-likec4-reduced-graphics]) .action-btn--variant_filled{box-shadow:var(--shadows-none)}.likec4-compound-node--borderStyle_dashed{border-style:dashed}.likec4-compound-node--borderStyle_none{--_indicator-spacing: calc(var(--_border-width) * 2);border-color:var(--colors-transparent)!important;background-clip:border-box!important;-webkit-background-clip:border-box!important}.likec4-compound-node--isTransparent_false{border-color:var(--likec4-palette-stroke);background-color:var(--likec4-palette-fill)}.likec4-root:not([data-likec4-reduced-graphics]) .likec4-compound-node--isTransparent_false{box-shadow:0 4px 10px .5px #0000001a,0 2px 2px -1px #0006}:where(.react-flow__node,.react-flow__edge):is(.selected) .likec4-compound-node--isTransparent_false{box-shadow:var(--shadows-none)}.likec4-root:is([data-likec4-diagram-panning=true]) .likec4-compound-node--isTransparent_false{box-shadow:var(--shadows-none)!important}.likec4-compound-node--isTransparent_true{border-color:color-mix(in srgb,var(--likec4-palette-stroke) var(--_border-transparency),transparent);background-color:color-mix(in srgb,var(--likec4-palette-fill) var(--_compound-transparency),transparent)}.likec4-compound-node--inverseColor_true{--_compound-color: var(--likec4-palette-stroke)}[data-mantine-color-scheme=dark] .likec4-compound-node--inverseColor_true{--_compound-color: color-mix(in srgb, var(--likec4-palette-loContrast) 60%, var(--likec4-palette-fill))}[data-mantine-color-scheme=dark] .likec4-compound-node--inverseColor_true .action-btn{--actionbtn-color-hovered-btn: var(--likec4-palette-loContrast)}[data-mantine-color-scheme=light] .likec4-compound-node--inverseColor_true .action-btn{--actionbtn-color: var(--likec4-palette-stroke);--actionbtn-color-hovered: var(--likec4-palette-stroke);--actionbtn-color-hovered-btn: var(--likec4-palette-hiContrast);--actionbtn-bg-hovered: var(--likec4-palette-fill)/50;--actionbtn-bg-hovered-btn: var(--likec4-palette-fill)}.likec4-compound-node--borderStyle_solid{border-style:solid}.likec4-compound-node--borderStyle_dotted{border-style:dotted}.likec4-element-shape--shapetype_html{--likec4-outline-size: 4px;border-radius:6px;transition:background-color .12s linear,box-shadow .13s var(--easings-in-out);background-color:var(--likec4-palette-fill);box-shadow:0 2px 1px #00000036,0 1px 1px color-mix(in srgb,var(--likec4-palette-stroke) 40%,transparent),0 5px 3px #0000001a;transition-delay:0ms}.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .likec4-element-shape--shapetype_html{transition:none}:where(.react-flow__node,.react-flow__edge):is(.selected) .likec4-element-shape--shapetype_html{box-shadow:var(--shadows-none)}:where([data-likec4-zoom-small=true]) .likec4-element-shape--shapetype_html{box-shadow:var(--shadows-none)}.likec4-root:is([data-likec4-diagram-panning=true]) .likec4-element-shape--shapetype_html{box-shadow:var(--shadows-none)}[data-mantine-color-scheme=light] :where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .likec4-element-shape--shapetype_html{box-shadow:#26394df2 0 20px 30px -10px}[data-mantine-color-scheme=dark] :where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .likec4-element-shape--shapetype_html{box-shadow:#0a0b10e5 0 20px 30px -10px}.likec4-element-shape--shapetype_html .likec4-shape-multiple{border-radius:6px;transition:all var(--durations-fast) var(--easings-in-out);position:absolute;content:" ";background-color:var(--likec4-palette-fill);z-index:-1;filter:brightness(.5)!important;visibility:visible;top:16px;left:16px;width:calc(100% - 6px);height:calc(100% - 6px)}:where([data-likec4-zoom-small=true]) .likec4-element-shape--shapetype_html .likec4-shape-multiple{visibility:hidden}:where(.react-flow__node,.react-flow__edge):is(.selected) .likec4-element-shape--shapetype_html .likec4-shape-multiple{visibility:hidden}:where(.react-flow__node,.react-flow__edge):is(:focus-visible,:focus,:focus-within) .likec4-element-shape--shapetype_html .likec4-shape-multiple{visibility:hidden}.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .likec4-element-shape--shapetype_html .likec4-shape-multiple{visibility:hidden}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .likec4-element-shape--shapetype_html .likec4-shape-multiple{transform:translate(-14px,-14px)}.likec4-element-shape--shapetype_html .likec4-shape-outline{border-style:solid;border-width:var(--likec4-outline-size);border-radius:10px;border-color:var(--likec4-palette-outline);position:absolute;content:" ";animation-duration:1s;animation-iteration-count:infinite;animation-direction:alternate;animation-name:indicatorOpacity;top:calc(-1 * var(--likec4-outline-size));left:calc(-1 * var(--likec4-outline-size));width:calc(100% + 2 * var(--likec4-outline-size));height:calc(100% + 2 * var(--likec4-outline-size))}.likec4-element-shape--shapetype_svg{transition:fill .12s linear,filter .13s var(--easings-in-out);fill:var(--likec4-palette-fill);stroke:var(--likec4-palette-stroke);transition-delay:0ms;filter:drop-shadow(0 2px 1px rgba(0,0,0,.21)) drop-shadow(0 1px 1px color-mix(in srgb,var(--likec4-palette-stroke) 40%,transparent)) drop-shadow(0 5px 3px rgba(0,0,0,.1))}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .likec4-element-shape--shapetype_svg{filter:drop-shadow(0 2px 1px rgba(0,0,0,.12)) drop-shadow(0px 4px 2px rgba(0,0,0,.12)) drop-shadow(0px 8px 4px rgba(0,0,0,.12)) drop-shadow(0px 16px 8px rgba(0,0,0,.1)) drop-shadow(0px 32px 16px rgba(0,0,0,.09))}:where(.react-flow__node,.react-flow__edge):is(.selected) .likec4-element-shape--shapetype_svg{filter:none}:where([data-likec4-zoom-small=true]) .likec4-element-shape--shapetype_svg{filter:none}.likec4-root:is([data-likec4-diagram-panning=true]) .likec4-element-shape--shapetype_svg{filter:none}.likec4-element-shape--shapetype_svg [data-likec4-fill=fill]{fill:var(--likec4-palette-fill)}.likec4-element-shape--shapetype_svg [data-likec4-fill=stroke]{fill:var(--likec4-palette-stroke)}.likec4-element-shape--shapetype_svg [data-likec4-fill=mix-stroke]{fill:color-mix(in srgb,var(--likec4-palette-stroke) 90%,var(--likec4-palette-fill))}.likec4-element-shape--shapetype_svg:is([data-likec4-shape-multiple=true]){transition:all var(--durations-fast) var(--easings-in-out);transform-origin:50% 50%;transform:translate(14px,14px) perspective(200px) translateZ(-4px);filter:brightness(.5)!important;stroke:var(--colors-none)}:where([data-likec4-shape=queue]) .likec4-element-shape--shapetype_svg:is([data-likec4-shape-multiple=true]){transform-origin:75% 25%}:where([data-likec4-shape=cylinder]) .likec4-element-shape--shapetype_svg:is([data-likec4-shape-multiple=true]){transform-origin:50% 100%}:where([data-likec4-shape=storage]) .likec4-element-shape--shapetype_svg:is([data-likec4-shape-multiple=true]){transform-origin:50% 100%}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .likec4-element-shape--shapetype_svg:is([data-likec4-shape-multiple=true]){transform:translate(2px,2px) perspective(200px) translateZ(-4px)}:where([data-likec4-zoom-small=true]) .likec4-element-shape--shapetype_svg:is([data-likec4-shape-multiple=true]){display:none}.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .likec4-element-shape--shapetype_svg:is([data-likec4-shape-multiple=true]){display:none}:where(.react-flow__node,.react-flow__edge):is(.selected) .likec4-element-shape--shapetype_svg:is([data-likec4-shape-multiple=true]){display:none}:where(.react-flow__node,.react-flow__edge):is(:focus-visible,:focus,:focus-within) .likec4-element-shape--shapetype_svg:is([data-likec4-shape-multiple=true]){display:none}.likec4-element-shape--shapetype_svg:is([data-likec4-shape-multiple=true]) [data-likec4-fill=mix-stroke]{fill:var(--likec4-palette-fill)}.likec4-element-shape--shapetype_svg .likec4-shape-outline{stroke:var(--likec4-palette-outline);fill:var(--colors-none);stroke-width:8;stroke-opacity:.8;animation-duration:1s;animation-iteration-count:infinite;animation-direction:alternate;animation-name:indicatorOpacity}.likec4-tag--autoTextColor_false>span{color:var(--colors-likec4-tag-text)}.likec4-tag--autoTextColor_false>span:first-child{opacity:.65}.likec4-tag--autoTextColor_true>span{background:inherit;color:var(--colors-transparent);filter:invert(1) grayscale(1) brightness(1.3) contrast(1000);background-clip:text;-webkit-background-clip:text;mix-blend-mode:plus-lighter}.hover\\:likec4-tag--autoTextColor_true:is(:hover,[data-hover])>span{background:inherit;color:var(--colors-transparent);filter:invert(1) grayscale(1) brightness(1.3) contrast(1000);background-clip:text;-webkit-background-clip:text;mix-blend-mode:plus-lighter}.hover\\:likec4-tag--autoTextColor_false:is(:hover,[data-hover])>span{color:var(--colors-likec4-tag-text)}.hover\\:likec4-tag--autoTextColor_false:is(:hover,[data-hover])>span:first-child{opacity:.65}@media screen and (min-width: 48rem){.likec4-overlay--fullscreen_false{--_border-radius: 6px;--_offset: 1rem;inset:var(--_inset) var(--_inset) var(--_offset) var(--_inset);padding:var(--spacing-1\\.5);border-radius:calc(var(--_border-radius) - 2px);width:calc(100vw - 2 * var(--_inset));height:calc(100vh - var(--_offset) - var(--_inset))}}@media screen and (min-width: 62rem){.likec4-overlay--fullscreen_false{--_offset: 1rem}}@media screen and (min-width: 75rem){.likec4-overlay--fullscreen_false{--_offset: 2rem}}@media screen and (min-width: 88rem){.likec4-overlay--fullscreen_false{--_offset: 4rem}}}@layer recipes.slots{@layer _base{.likec4-navlink__root{border-radius:var(--radii-sm);padding-inline:var(--spacing-xs);padding-block:var(--spacing-xxs)}.likec4-navlink__root:is(:hover,[data-hover]):not([data-active]){background-color:var(--colors-mantine-colors-gray\\[1\\])}[data-mantine-color-scheme=dark] .likec4-navlink__root:is(:hover,[data-hover]):not([data-active]){background-color:var(--colors-mantine-colors-dark\\[5\\])}.likec4-navlink__body{gap:var(--spacing-0\\.5);display:flex;flex-direction:column}.likec4-navlink__section:where([data-position=left]){margin-inline-end:var(--spacing-xxs)}.likec4-navlink__label{display:block;font-size:var(--font-sizes-sm);font-weight:500;line-height:1.2}.likec4-navlink__description{display:block;font-size:var(--font-sizes-xxs);line-height:1.2}.likec4-edge-label__root{background:var(--xy-edge-label-background-color);border:0px solid transparent;padding-block:var(--spacing-1);padding-inline:var(--spacing-1\\.5);gap:var(--spacing-0\\.5);border-radius:4px;pointer-events:all;font-family:var(--fonts-likec4-relation);display:flex;flex-direction:column;align-items:center;line-height:1.2;color:var(--xy-edge-label-color);width:max-content;max-width:100%}.likec4-edge-label__stepNumber{padding:var(--spacing-1);background:color-mix(in srgb,var(--likec4-palette-relation-label-bg),var(--colors-likec4-mix-color) 10%);flex:0 0 auto;align-self:stretch;font-weight:600;font-size:14px;text-align:center;font-variant-numeric:tabular-nums;min-width:22px;border-top-left-radius:4px;border-bottom-left-radius:4px}.likec4-edge-label__stepNumber:only-child{border-radius:4px;min-width:24px}[data-mantine-color-scheme=dark] :where([data-likec4-color=gray]) .likec4-edge-label__stepNumber{background:color-mix(in srgb,var(--likec4-palette-relation-label-bg),var(--colors-likec4-mix-color) 15%)}.likec4-edge-label__labelContents{display:contents}.likec4-edge-label__labelContents:is(:empty,[data-empty]){display:none!important}.likec4-edge-label__labelText{margin:var(--spacing-0);white-space-collapse:preserve-breaks;font-size:14px}.likec4-edge-label__labelTechnology{text-align:center;white-space-collapse:preserve-breaks;font-size:11px;line-height:var(--line-heights-1);opacity:.75}}.likec4-navlink__label--truncateLabel_true,.likec4-navlink__description--truncateLabel_true{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.likec4-edge-label__root--cursor_pointer{cursor:pointer}.likec4-edge-label__root--cursor_default{cursor:default}.likec4-edge-label__root--isStepEdge_true{padding:var(--spacing-0);gap:var(--spacing-1);flex-direction:row}.likec4-edge-label__labelContents--isStepEdge_true{gap:var(--spacing-0\\.5);display:flex;flex-direction:column;align-items:center;padding-top:var(--spacing-0\\.5);padding-right:var(--spacing-1);padding-bottom:var(--spacing-1)}.likec4-edge-label__labelText--isStepEdge_true{padding-block:var(--spacing-0\\.5);padding-right:var(--spacing-0\\.5)}}@layer utilities{@layer compositions{.layerStyle_likec4\\.panel{border:1px solid var(--colors-likec4-panel-border);padding-block:var(--spacing-1);padding-inline:var(--spacing-xs);border-radius:var(--radii-0);background-color:var(--colors-likec4-panel-bg)}.likec4-root:is([data-likec4-diagram-panning=true]) .layerStyle_likec4\\.panel{border-radius:var(--radii-0);box-shadow:var(--shadows-none)}.layerStyle_likec4\\.dropdown{padding:var(--spacing-xxs);border:1px solid var(--colors-likec4-dropdown-border);border-radius:var(--radii-md);background-color:var(--colors-likec4-dropdown-bg);box-shadow:var(--shadows-lg)}.likec4-root:is([data-likec4-diagram-panning=true]) .layerStyle_likec4\\.dropdown{border-radius:0;border-color:var(--colors-transparent);box-shadow:var(--shadows-none)}.layerStyle_likec4\\.tag{border:var(--borders-none);border-radius:3px;color:var(--colors-likec4-tag-text);background-color:var(--colors-likec4-tag-bg)}.layerStyle_likec4\\.tag:is(:hover,[data-hover]){background-color:var(--colors-likec4-tag-bg-hover)}.likec4-root:not([data-likec4-reduced-graphics]) .noReduceGraphics\\:animationStyle_xyedgeAnimated{animation-duration:.8s;animation-iteration-count:infinite;animation-timing-function:linear;animation-fill-mode:both;animation-name:xyedgeAnimated}@container (min-width: 40rem){.layerStyle_likec4\\.panel{padding:2xs;border-radius:var(--radii-md);box-shadow:var(--shadows-lg)}}}.--mantine-cursor-pointer_pointer{--mantine-cursor-pointer: pointer}.--thickness_1px{--thickness: 1px}.--bleed-x_token\\(spacing\\.2\\,_2\\){--bleed-x: var(--spacing-2, 2)}.--bleed-y_token\\(spacing\\.2\\,_2\\){--bleed-y: var(--spacing-2, 2)}.--text-fz_\\{fontSizes\\.sm\\}{--text-fz: var(--font-sizes-sm)}.--view-title-color_\\{colors\\.mantine\\.colors\\.dark\\[1\\]\\}{--view-title-color: var(--colors-mantine-colors-dark\\[1\\])}.--likec4-icon-size_24px{--likec4-icon-size: 24px}.--ti-size_var\\(--likec4-icon-size\\,_24px\\){--ti-size: var(--likec4-icon-size, 24px)}.--_color_var\\(--likec4-palette-stroke\\){--_color: var(--likec4-palette-stroke)}.--ai-radius_0px{--ai-radius: 0px}.--badge-radius_2px{--badge-radius: 2px}.--badge-fz_9\\.5px{--badge-fz: 9.5px}.--badge-padding-x_3px{--badge-padding-x: 3px}.--badge-height_13\\.5px{--badge-height: 13.5px}.--badge-lh_1{--badge-lh: 1}.--badge-bg_var\\(--likec4-palette-fill\\){--badge-bg: var(--likec4-palette-fill)}.--badge-color_var\\(--likec4-palette-hiContrast\\){--badge-color: var(--likec4-palette-hiContrast)}.bg_dots{background:dots}.bg_transparent{background:var(--colors-transparent)}.p_0{padding:var(--spacing-0)}.p_xl{padding:var(--spacing-xl)}.bd_1px_solid{border:1px solid}.bg_mantine\\.colors\\.default{background:var(--colors-mantine-colors-default)}.p_\\[4px_7px\\]{padding:4px 7px}.m_0{margin:var(--spacing-0)}.bg_\\[transparent\\]{background:var(--colors-transparent)}.p_1{padding:var(--spacing-1)}.p_4{padding:var(--spacing-4)}.p_0\\.5{padding:var(--spacing-0\\.5)}.m_xs{margin:var(--spacing-xs)}.p_md{padding:var(--spacing-md)}.p_8{padding:var(--spacing-8)}.p_xxs{padding:var(--spacing-xxs)}.bg_mantine\\.colors\\.orange\\.light{background:var(--colors-mantine-colors-orange-light)}.p_\\[4px_6px\\]{padding:4px 6px}.bg_mantine\\.colors\\.gray\\[2\\]{background:var(--colors-mantine-colors-gray\\[2\\])}.bg_mantine\\.colors\\.gray\\[3\\]{background:var(--colors-mantine-colors-gray\\[3\\])}.bd_2px_solid{border:2px solid}.inset_0{inset:var(--spacing-0)}.bd_transparent{border:var(--borders-transparent)}.bd_none{border:var(--borders-none)}.bg_mantine\\.colors\\.body{background:var(--colors-mantine-colors-body)}.p_\\[10px_8px\\]{padding:10px 8px}.bd_1px_dashed{border:1px dashed}.bg_mantine\\.colors\\.gray\\[1\\]{background:var(--colors-mantine-colors-gray\\[1\\])}.p_\\[6px_8px\\]{padding:6px 8px}.bd_3\\.5px_solid{border:3.5px solid}.p_\\[3px_6px\\]{padding:3px 6px}.bg_var\\(--likec4-palette-fill\\)\\/75{--mix-background: color-mix(in srgb, var(--likec4-palette-fill) 75%, transparent);background:var(--mix-background, var(--likec4-palette-fill))}.bd_1px_solid_\\{colors\\.mantine\\.colors\\.defaultBorder\\}{border:1px solid var(--colors-mantine-colors-default-border)}.p_\\[1px_5px\\]{padding:1px 5px}.bg_mantine\\.colors\\.dark\\[7\\]{background:var(--colors-mantine-colors-dark\\[7\\])}.p_\\[6px_2px_0_2px\\]{padding:6px 2px 0}.p_\\[0_4px_5px_4px\\]{padding:0 4px 5px}.p_xs{padding:var(--spacing-xs)}.bg_mantine\\.colors\\.dark\\[9\\]\\/30{--mix-background: color-mix(in srgb, var(--colors-mantine-colors-dark\\[9\\]) 30%, transparent);background:var(--mix-background, var(--colors-mantine-colors-dark\\[9\\]))}.bg_mantine\\.colors\\.primary\\[8\\]{background:var(--colors-mantine-colors-primary\\[8\\])}.p_\\[12px_8px_12px_14px\\]{padding:12px 8px 12px 14px}.bd_2px_dashed{border:2px dashed}.bd_default{border:var(--borders-default)}.p_2{padding:var(--spacing-2)}.bd_3px_dashed{border:3px dashed}.gap_20{gap:20px}.gap_xs{gap:var(--spacing-xs)}.transition_fast{transition:all var(--durations-fast) var(--easings-in-out)}.td_none{text-decoration:none}.bdr_sm{border-radius:var(--radii-sm)}.bd-c_mantine\\.colors\\.defaultBorder{border-color:var(--colors-mantine-colors-default-border)}.flex_1{flex:1 1 0%}.gap_xxs{gap:var(--spacing-xxs)}.gap_sm{gap:var(--spacing-sm)}.gap_1{gap:var(--spacing-1)}.ov_hidden{overflow:hidden}.gap_0\\.5{gap:var(--spacing-0\\.5)}.gap_\\[4px\\]{gap:4px}.px_xs{padding-inline:var(--spacing-xs)}.py_xxs{padding-block:var(--spacing-xxs)}.px_sm{padding-inline:var(--spacing-sm)}.gap_8px{gap:8px}.gap_1\\.5{gap:var(--spacing-1\\.5)}.bdr_\\[4px\\]{border-radius:4px}.px_1\\.5{padding-inline:var(--spacing-1\\.5)}.gap_3{gap:var(--spacing-3)}.mx_calc\\(var\\(--bleed-x\\,_0\\)_\\*_-1\\){margin-inline:calc(var(--bleed-x, 0) * -1)}.my_calc\\(var\\(--bleed-y\\,_0\\)_\\*_-1\\){margin-block:calc(var(--bleed-y, 0) * -1)}.py_2\\.5{padding-block:var(--spacing-2\\.5)}.px_2{padding-inline:var(--spacing-2)}.gap_2{gap:var(--spacing-2)}.offset_2{offset:2px}.py_1\\.5{padding-block:var(--spacing-1\\.5)}.bd-l_2px_dotted{border-left:2px dotted}.px_1{padding-inline:var(--spacing-1)}.py_0\\.5{padding-block:var(--spacing-0\\.5)}.bdr_\\[2px\\]{border-radius:2px}.px_xxs{padding-inline:var(--spacing-xxs)}.py_1{padding-block:var(--spacing-1)}.gap_\\[1px\\]{gap:1px}.gap_md{gap:var(--spacing-md)}.ov_auto{overflow:auto}.ovs-b_contain{overscroll-behavior:contain}.ov_visible{overflow:visible}.my_10{margin-block:var(--spacing-10)}.flex_1_1_40\\%{flex:1 1 40%}.bd-c_mantine\\.colors\\.gray\\[4\\]{border-color:var(--colors-mantine-colors-gray\\[4\\])}.bd-c_mantine\\.colors\\.gray\\[5\\]{border-color:var(--colors-mantine-colors-gray\\[5\\])}.bdr_3{border-radius:3px}.bd-c_mantine\\.colors\\.orange\\[6\\]{border-color:var(--colors-mantine-colors-orange\\[6\\])}.tw_pretty{text-wrap:pretty}.gap_lg{gap:var(--spacing-lg)}.flex_0{flex:0}.flex_0_0_40px{flex:0 0 40px}.gap_\\[24px_20px\\]{gap:24px 20px}.bd-c_mantine\\.colors\\.dark\\[3\\]{border-color:var(--colors-mantine-colors-dark\\[3\\])}.bd-t_none{border-top:var(--borders-none)}.bd-l_none{border-left:var(--borders-none)}.bdr_2px{border-radius:2px}.gap_4{gap:var(--spacing-4)}.gap_6{gap:var(--spacing-6)}.gap_\\[4px_4px\\]{gap:4px 4px}.ovs-b_none{overscroll-behavior:none}.flex_1_1_100\\%{flex:1 1 100%}.offset_0{offset:0}.py_4{padding-block:var(--spacing-4)}.gap_8{gap:var(--spacing-8)}.px_md{padding-inline:var(--spacing-md)}.py_xs{padding-block:var(--spacing-xs)}.grid-c_1{grid-column:1}.grid-c_2{grid-column:2}.grid-c_3{grid-column:3}.bd-b_1px_solid{border-bottom:1px solid}.gap_0{gap:var(--spacing-0)}.gap_\\[10px_12px\\]{gap:10px 12px}.py_3{padding-block:var(--spacing-3)}.offset_4{offset:4px}.flex_1_0_auto{flex:1 0 auto}.ring_none{outline:var(--borders-none)}.ring_none\\!{outline:var(--borders-none)!important}.bdr_4px{border-radius:4px}.mx_auto{margin-inline:auto}.px_4{padding-inline:var(--spacing-4)}.py_md{padding-block:var(--spacing-md)}.bd-c_mantine\\.colors\\.primary\\[9\\]{border-color:var(--colors-mantine-colors-primary\\[9\\])}.flex_0_0_var\\(--likec4-icon-size\\,_24px\\){flex:0 0 var(--likec4-icon-size, 24px)}.bdr_md{border-radius:var(--radii-md)}.py_xl{padding-block:var(--spacing-xl)}.bd-w_1{border-width:1px}.bd-c_\\[var\\(--_color\\)\\/30\\]{--mix-borderColor: color-mix(in srgb, var(--_color) 30%, transparent);border-color:var(--mix-borderColor, var(--_color))}.bdr_xs{border-radius:var(--radii-xs)}.transition_all_100ms_ease-in{transition:all .1s ease-in}.transition_all_150ms_ease-in-out{transition:all .15s ease-in-out}.py_sm{padding-block:var(--spacing-sm)}.flex_0_0_auto{flex:0 0 auto}.flex_0_0_70px{flex:0 0 70px}.bd-w_3px{border-width:3px}.border-style_dashed{border-style:dashed}.px_3{padding-inline:var(--spacing-3)}.px_5{padding-inline:var(--spacing-5)}.gap_6px{gap:6px}.px_4px{padding-inline:4px}.cursor_pointer{cursor:pointer}.pos_absolute{position:absolute}.c_gray{color:gray}.bkdp_blur\\(5px\\){backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.z_1000{z-index:1000}.c_red{color:red}.c_teal{color:teal}.op_1{opacity:1}.op_0\\.45{opacity:.45}.flex-wrap_nowrap{flex-wrap:nowrap}.us_all{-webkit-user-select:all;user-select:all}.bg-c_transparent{background-color:var(--colors-transparent)}.stk_2\\.5{stroke:2.5px}.op_0\\.7{opacity:.7}.fill_\\[\\#FCFBF7\\]{fill:#fcfbf7}.bx-sh_xs{box-shadow:var(--shadows-xs)}.fs_sm{font-size:var(--font-sizes-sm)}.fw_500{font-weight:500}.c_mantine\\.colors\\.placeholder{color:var(--colors-mantine-colors-placeholder)}.fs_11px{font-size:11px}.fw_600{font-weight:600}.lh_1{line-height:var(--line-heights-1)}.stk_2{stroke:2px}.ai_flex-start{align-items:flex-start}.pointer-events_none{pointer-events:none}.d_flex{display:flex}.ai_stretch{align-items:stretch}.flex-d_column{flex-direction:column}.main-axis_4{main-axis:4px}.pos_bottom-start{position:bottom-start}.ai_center{align-items:center}.flex-d_row{flex-direction:row}.pos_relative{position:relative}.pointer-events_all{pointer-events:all}.us_none{-webkit-user-select:none;user-select:none}.d_none{display:none}.flex-sh_1{flex-shrink:1}.flex-g_1{flex-grow:1}.flex-g_0{flex-grow:0}.op_0\\.3{opacity:.3}.bg-c_mantine\\.colors\\.gray\\[1\\]{background-color:var(--colors-mantine-colors-gray\\[1\\])}.stk_1\\.5{stroke:1.5px}.bd-e-w_var\\(--thickness\\){border-inline-end-width:var(--thickness)}.c_mantine\\.colors\\.gray\\[5\\]{color:var(--colors-mantine-colors-gray\\[5\\])}.c_mantine\\.colors\\.text\\/90{--mix-color: color-mix(in srgb, var(--colors-mantine-colors-text) 90%, transparent);color:var(--mix-color, var(--colors-mantine-colors-text))}.trunc_true{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c_mantine\\.colors\\.dimmed{color:var(--colors-mantine-colors-dimmed)}.bg-c_\\[rgb\\(34_34_34_\\/_var\\(--_opacity\\,_95\\%\\)\\)\\]{background-color:rgb(34 34 34 / var(--_opacity, 95%))}.bkdp_auto{backdrop-filter:var(--backdrop-blur, ) var(--backdrop-brightness, ) var(--backdrop-contrast, ) var(--backdrop-grayscale, ) var(--backdrop-hue-rotate, ) var(--backdrop-invert, ) var(--backdrop-opacity, ) var(--backdrop-saturate, ) var(--backdrop-sepia, );-webkit-backdrop-filter:var(--backdrop-blur, ) var(--backdrop-brightness, ) var(--backdrop-contrast, ) var(--backdrop-grayscale, ) var(--backdrop-hue-rotate, ) var(--backdrop-invert, ) var(--backdrop-opacity, ) var(--backdrop-saturate, ) var(--backdrop-sepia, )}.bkdp-blur_var\\(--_blur\\,_10px\\){--backdrop-blur: blur(var(--_blur, 10px))}.jc_stretch{justify-content:stretch}.cq-n_likec4-search-elements{container-name:likec4-search-elements}.cq-t_size{container-type:size}.d_contents{display:contents}.d_grid{display:grid}.order_6{order:6}.stk_1\\.8{stroke:1.8px}.trunc_end{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trs-dur_normal{--transition-duration: var(--durations-normal);transition-duration:var(--durations-normal)}.trs-dly_0\\.2s{transition-delay:.2s}.fill_none{fill:var(--colors-none)}.stk-w_calc\\(var\\(--xy-edge-stroke-width\\)_\\+_2\\){stroke-width:calc(var(--xy-edge-stroke-width) + 2)}.stk-op_0\\.08{stroke-opacity:.08}.fill_\\[var\\(--xy-edge-stroke\\)\\]{fill:var(--xy-edge-stroke)}.stk_\\[var\\(--xy-edge-stroke\\)\\]{stroke:var(--xy-edge-stroke)}.stk-do_0{stroke-dashoffset:0}.jc_center{justify-content:center}.z_1{z-index:1}.ai_flex-end{align-items:flex-end}.justify-items_stretch{justify-items:stretch}.fs_lg{font-size:var(--font-sizes-lg)}.ai_baseline{align-items:baseline}.flex-wrap_wrap{flex-wrap:wrap}.translate_auto{translate:var(--translate-x) var(--translate-y)}.translate-x_\\[-8px\\]{--translate-x: -8px}.bd-be-w_var\\(--thickness\\){border-block-end-width:var(--thickness)}.cursor_default{cursor:default}.pos_top-start{position:top-start}.op_0\\.65{opacity:.65}.d_block{display:block}.fs_xxs{font-size:var(--font-sizes-xxs)}.lh_sm{line-height:var(--line-heights-sm)}.white-space_nowrap{white-space:nowrap}.white-space-collapse_preserve-breaks{white-space-collapse:preserve-breaks}.c_likec4\\.panel\\.action-icon\\.text{color:var(--colors-likec4-panel-action-icon-text)}.bg-c_likec4\\.panel\\.action-icon\\.bg{background-color:var(--colors-likec4-panel-action-icon-bg)}.op_0\\.8{opacity:.8}.pos_bottom-end{position:bottom-end}.bx-sh_xl{box-shadow:var(--shadows-xl)}.fs_xs{font-size:var(--font-sizes-xs)}.op_0\\.5{opacity:.5}.me_0\\.5{margin-inline-end:var(--spacing-0\\.5)}.fw_400{font-weight:400}.bx-sh_md{box-shadow:var(--shadows-md)}.main-axis_2{main-axis:2px}.lh_1\\.1{line-height:1.1}.pos_right-start{position:right-start}.bx-sh_lg{box-shadow:var(--shadows-lg)}.main-axis_10{main-axis:10px}.op_0\\.6{opacity:.6}.c_orange{color:orange}.pos_top{position:top}.pos_right{position:right}.main-axis_12{main-axis:12px}.ta_center{text-align:center}.bx-sh_inset_1px_1px_3px_0px_\\#00000024{box-shadow:inset 1px 1px 3px #00000024}.trf_translate\\(-50\\%\\,_-50\\%\\){transform:translate(-50%,-50%)}.flex-sh_0{flex-shrink:0}.ms_0{margin-inline-start:var(--spacing-0)}.z_9{z-index:9}.ta_left{text-align:left}.lh_1\\.25{line-height:1.25}.bx-s_border-box{box-sizing:border-box}.pos_fixed{position:fixed}.c_mantine\\.colors\\.text{color:var(--colors-mantine-colors-text)}.bg-c_mantine\\.colors\\.body{background-color:var(--colors-mantine-colors-body)}.bg-i_linear-gradient\\(180deg\\,_color-mix\\(in_srgb\\,_var\\(--likec4-palette-fill\\)_60\\%\\,_transparent\\)\\,_color-mix\\(in_srgb\\,_var\\(--likec4-palette-fill\\)_20\\%\\,_transparent\\)_8px\\,_color-mix\\(in_srgb\\,_var\\(--likec4-palette-fill\\)_14\\%\\,_transparent\\)_20px\\,_transparent_80px_\\)\\,_linear-gradient\\(180deg\\,_var\\(--likec4-palette-fill\\)\\,_var\\(--likec4-palette-fill\\)_4px\\,_transparent_4px\\){background-image:linear-gradient(180deg,color-mix(in srgb,var(--likec4-palette-fill) 60%,transparent),color-mix(in srgb,var(--likec4-palette-fill) 20%,transparent) 8px,color-mix(in srgb,var(--likec4-palette-fill) 14%,transparent) 20px,transparent 80px),linear-gradient(180deg,var(--likec4-palette-fill),var(--likec4-palette-fill) 4px,transparent 4px)}.cursor_move{cursor:move}.ff_likec4\\.element{font-family:var(--fonts-likec4-element)}.font-optical-sizing_auto{font-optical-sizing:auto}.font-style_normal{font-style:normal}.fs_24px{font-size:24px}.lh_xs{line-height:var(--line-heights-xs)}.as_flex-start{align-self:flex-start}.c_\\[var\\(--view-title-color\\,_\\{colors\\.mantine\\.colors\\.gray\\[7\\]\\}\\)\\]{color:var(--view-title-color, var(--colors-mantine-colors-gray\\[7\\]))}.fs_15px{font-size:15px}.lh_1\\.4{line-height:1.4}.c_mantine\\.colors\\.gray\\[7\\]{color:var(--colors-mantine-colors-gray\\[7\\])}.grid-tc_min-content_1fr{grid-template-columns:min-content 1fr}.grid-ar_min-content_max-content{grid-auto-rows:min-content max-content}.justify-self_end{justify-self:end}.ta_right{text-align:right}.cursor_se-resize{cursor:se-resize}.ai_start{align-items:start}.jc_space-between{justify-content:space-between}.stk_1\\.6{stroke:1.6px}.trs-prop_all{--transition-prop: all;transition-property:all}.trs-dur_fast{--transition-duration: var(--durations-fast);transition-duration:var(--durations-fast)}.trs-tmf_inOut{--transition-easing: var(--easings-in-out);transition-timing-function:var(--easings-in-out)}.c_mantine\\.colors\\.gray\\[8\\]{color:var(--colors-mantine-colors-gray\\[8\\])}.white-space_pre{white-space:pre}.ff_mono{font-family:var(--fonts-mono)}.ps_\\[16px\\]{padding-inline-start:16px}.pe_2\\.5{padding-inline-end:var(--spacing-2\\.5)}.stk_1\\.2{stroke:1.2px}.d_inline-block{display:inline-block}.lh_1\\.2{line-height:1.2}.c_var\\(--likec4-palette-hiContrast\\){color:var(--likec4-palette-hiContrast)}.fs_xl{font-size:var(--font-sizes-xl)}.c_mantine\\.colors\\.defaultColor{color:var(--colors-mantine-colors-default-color)}.bx-sh_none{box-shadow:var(--shadows-none)}.d_inline-flex{display:inline-flex}.pos_top-right{position:top-right}.pos_top-left{position:top-left}.grid-cs_1{grid-column-start:1}.grid-ce_4{grid-column-end:4}.grid-tc_1fr_30px_1fr{grid-template-columns:1fr 30px 1fr}.justify-items_start{justify-items:start}.c_dark{color:dark}.stk_3\\.5{stroke:3.5px}.cq-n_likec4-tree{container-name:likec4-tree}.cq-t_inline-size{container-type:inline-size}.fs_10px{font-size:10px}.lh_1\\.3{line-height:1.3}.order_2{order:2}.grayscale_0{--grayscale: grayscale(0)}.grayscale_0\\.9{--grayscale: grayscale(.9)}.filter_auto{filter:var(--blur, ) var(--brightness, ) var(--contrast, ) var(--grayscale, ) var(--hue-rotate, ) var(--invert, ) var(--saturate, ) var(--sepia, ) var(--drop-shadow, )}.cross-axis_50{cross-axis:50px}.sr_true{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fs_13px{font-size:13px}.fs_16px{font-size:16px}.c_mantine\\.colors\\.dark\\[1\\]{color:var(--colors-mantine-colors-dark\\[1\\])}.fs_12px{font-size:12px}.fs_md{font-size:var(--font-sizes-md)}.bg-c_\\[rgb\\(34_34_34_\\/_0\\.7\\)\\]{background-color:#222222b3}.z_902{z-index:902}.bkdp-blur_10px{--backdrop-blur: blur(10px)}.trf_translateX\\(-50\\%\\){transform:translate(-50%)}.z_903{z-index:903}.mix-bm_normal{mix-blend-mode:normal}.fill_var\\(--likec4-palette-relation-stroke\\){fill:var(--likec4-palette-relation-stroke)}.stk_var\\(--likec4-palette-relation-stroke\\){stroke:var(--likec4-palette-relation-stroke)}.fill-opacity_0\\.75{fill-opacity:.75}.stk-w_1{stroke-width:1}.cursor_grab{cursor:grab}.pointer-events_auto{pointer-events:auto}.vis_hidden{visibility:hidden}.cursor_grabbing{cursor:grabbing}.bg-c_var\\(--likec4-palette-fill\\)\\/15{--mix-backgroundColor: color-mix(in srgb, var(--likec4-palette-fill) 15%, transparent);background-color:var(--mix-backgroundColor, var(--likec4-palette-fill))}.fw_bold{font-weight:700}.ls_\\.75px{letter-spacing:.75px}.c_\\[var\\(--_color\\)\\/75\\]{--mix-color: color-mix(in srgb, var(--_color) 75%, transparent);color:var(--mix-color, var(--_color))}.bg-c_var\\(--likec4-palette-fill\\){background-color:var(--likec4-palette-fill)}.translate-x_-1\\/2{--translate-x: -50%}.translate-y_-1\\/2{--translate-y: -50%}.bg-c_mantine\\.colors\\.body\\/80{--mix-backgroundColor: color-mix(in srgb, var(--colors-mantine-colors-body) 80%, transparent);background-color:var(--mix-backgroundColor, var(--colors-mantine-colors-body))}.fill_var\\(--likec4-palette-fill\\){fill:var(--likec4-palette-fill)}.stk_var\\(--likec4-palette-stroke\\){stroke:var(--likec4-palette-stroke)}.filter_drop-shadow\\(0_2px_3px_rgb\\(0_0_0_\\/_22\\%\\)\\)_drop-shadow\\(0_1px_8px_rgb\\(0_0_0_\\/_10\\%\\)\\){filter:drop-shadow(0 2px 3px rgb(0 0 0 / 22%)) drop-shadow(0 1px 8px rgb(0 0 0 / 10%))}.ls_0\\.2px{letter-spacing:.2px}.tt_lowercase{text-transform:lowercase}.op_0\\.25{opacity:.25}.stk-w_5{stroke-width:5}.pos_right-end{position:right-end}.jc_flex-start{justify-content:flex-start}.pos_left-start{position:left-start}.tov_ellipsis{text-overflow:ellipsis}.top_1rem{top:1rem}.right_1rem{right:1rem}.top_0{top:var(--spacing-0)}.left_0{left:var(--spacing-0)}.w_100\\%{width:100%}.h_100\\%{height:100%}.mt_xl{margin-top:var(--spacing-xl)}.min-h_24{min-height:24px}.max-w_500{max-width:500px}.pr_0{padding-right:var(--spacing-0)}.h_12{height:12px}.w_12{width:12px}.h_30px{height:30px}.pl_sm{padding-left:var(--spacing-sm)}.pr_1{padding-right:var(--spacing-1)}.pr_2\\.5{padding-right:var(--spacing-2\\.5)}.max-w_calc\\(100vw\\){max-width:100vw}.pr_md{padding-right:var(--spacing-md)}.max-w_200px{max-width:200px}.max-w_calc\\(100vw_-_50px\\){max-width:calc(100vw - 50px)}.max-w_calc\\(100vw_-_250px\\){max-width:calc(100vw - 250px)}.max-h_calc\\(100vh_-_200px\\){max-height:calc(100vh - 200px)}.max-h_calc\\(100vh_-_160px\\){max-height:calc(100vh - 160px)}.mb_1{margin-bottom:var(--spacing-1)}.max-h_100vh{max-height:100vh}.pt_\\[20px\\]{padding-top:20px}.pl_md{padding-left:var(--spacing-md)}.pb_sm{padding-bottom:var(--spacing-sm)}.pr_xs{padding-right:var(--spacing-xs)}.lc_5{-webkit-line-clamp:5}.lc_5,.lc_2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.lc_2{-webkit-line-clamp:2}.lc_3{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.max-h_8rem{max-height:8rem}.top_0\\.5{top:var(--spacing-0\\.5)}.right_0\\.5{right:var(--spacing-0\\.5)}.bottom_0{bottom:var(--spacing-0)}.max-w_50{max-width:50px}.h_5{height:5px}.w_max-content{width:max-content}.pt_2{padding-top:var(--spacing-2)}.mt_2{margin-top:var(--spacing-2)}.mt_0{margin-top:var(--spacing-0)}.pl_2\\.5{padding-left:var(--spacing-2\\.5)}.bd-l-c_mantine\\.colors\\.gray\\[3\\]{border-left-color:var(--colors-mantine-colors-gray\\[3\\])}.w_\\[20px\\]{width:20px}.mt_1{margin-top:var(--spacing-1)}.mb_xxs{margin-bottom:var(--spacing-xxs)}.pb_lg{padding-bottom:var(--spacing-lg)}.max-w_calc\\(100cqw_-_52px\\){max-width:calc(100cqw - 52px)}.min-w_200px{min-width:200px}.max-h_calc\\(100cqh_-_100px\\){max-height:calc(100cqh - 100px)}.h_auto{height:auto}.pt_6{padding-top:var(--spacing-6)}.mb_10{margin-bottom:var(--spacing-10)}.pt_100\\%{padding-top:100%}.left_2{left:var(--spacing-2)}.bottom_2{bottom:var(--spacing-2)}.mt_xs{margin-top:var(--spacing-xs)}.top_md{top:var(--spacing-md)}.left_md{left:var(--spacing-md)}.w_8{width:8px}.h_8{height:8px}.mr_sm{margin-right:var(--spacing-sm)}.h_26{height:26px}.top_\\[1px\\]{top:1px}.right_\\[1px\\]{right:1px}.pt_xxs{padding-top:var(--spacing-xxs)}.max-w_calc\\(100cqw_-_32px\\){max-width:calc(100cqw - 32px)}.min-w_calc\\(100cqw_-_50px\\){min-width:calc(100cqw - 50px)}.w_100vw{width:100vw}.h_100vh{height:100vh}.max-w_100vw{max-width:100vw}.h_40px{height:40px}.w_40px{width:40px}.w_14px{width:14px}.h_14px{height:14px}.bottom_0\\.5{bottom:var(--spacing-0\\.5)}.mb_sm{margin-bottom:var(--spacing-sm)}.lc_1{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.mt_6{margin-top:var(--spacing-6)}.pt_xs{padding-top:var(--spacing-xs)}.pr_xxs{padding-right:var(--spacing-xxs)}.mb_0{margin-bottom:var(--spacing-0)}.h_36px{height:36px}.min-w_24{min-width:24px}.mb_4{margin-bottom:var(--spacing-4)}.top_12{top:12px}.right_12{right:12px}.mt_sm{margin-top:var(--spacing-sm)}.ml_sm{margin-left:var(--spacing-sm)}.pl_1{padding-left:var(--spacing-1)}.bd-b-c_mantine\\.colors\\.defaultBorder{border-bottom-color:var(--colors-mantine-colors-default-border)}.max-h_70vh{max-height:70vh}.mb_2{margin-bottom:var(--spacing-2)}.max-w_8xl{max-width:8xl}.pl_\\[48px\\]{padding-left:48px}.mr_1{margin-right:var(--spacing-1)}.min-h_60px{min-height:60px}.h_var\\(--likec4-icon-size\\,_24px\\){height:var(--likec4-icon-size, 24px)}.w_var\\(--likec4-icon-size\\,_24px\\){width:var(--likec4-icon-size, 24px)}.top_\\[2rem\\]{top:2rem}.left_\\[50\\%\\]{left:50%}.max-w_600px{max-width:600px}.pl_2{padding-left:var(--spacing-2)}.pt_0\\.5{padding-top:var(--spacing-0\\.5)}.w_5px{width:5px}.top_1{top:var(--spacing-1)}.right_0{right:var(--spacing-0)}.w_min-content{width:min-content}.h_min-content{height:min-content}.min-w_200{min-width:200px}.max-w_calc\\(100vw_-_20px\\){max-width:calc(100vw - 20px)}.pt_0{padding-top:var(--spacing-0)}.pb_0{padding-bottom:var(--spacing-0)}.ml_2{margin-left:var(--spacing-2)}.h_xs{height:xs}.pb_8{padding-bottom:var(--spacing-8)}.pt_4{padding-top:var(--spacing-4)}.max-w_220px{max-width:220px}.\\[\\&_\\.action-icon\\]\\:--ai-size_2rem .action-icon{--ai-size: 2rem}[data-mantine-color-scheme=light] .light\\:--icon-color_\\{colors\\.mantine\\.colors\\.gray\\[6\\]\\}{--icon-color: var(--colors-mantine-colors-gray\\[6\\])}[data-mantine-color-scheme=light] .light\\:--view-title-color_\\{colors\\.mantine\\.colors\\.gray\\[7\\]\\}{--view-title-color: var(--colors-mantine-colors-gray\\[7\\])}.\\[\\&_\\.mantine-ThemeIcon-root\\]\\:--ti-size_22px .mantine-ThemeIcon-root{--ti-size: 22px}[data-mantine-color-scheme=dark] .dark\\:--_color_\\[color-mix\\(in_srgb\\,_var\\(--likec4-palette-hiContrast\\)_40\\%\\,_var\\(--likec4-palette-fill\\)\\)\\]{--_color: color-mix(in srgb, var(--likec4-palette-hiContrast) 40%, var(--likec4-palette-fill))}.likec4-root:not([data-likec4-reduced-graphics]) .noReduceGraphics\\:--ai-radius_\\{radii\\.md\\}{--ai-radius: var(--radii-md)}[data-mantine-color-scheme=light] .light\\:bg_mantine\\.colors\\.white{background:var(--colors-mantine-colors-white)}[data-mantine-color-scheme=dark] .dark\\:bg_mantine\\.colors\\.dark\\[6\\]{background:var(--colors-mantine-colors-dark\\[6\\])}.before\\:bg_\\[transparent\\]:before{background:var(--colors-transparent)}[data-mantine-color-scheme=light] .light\\:bg_var\\(--likec4-palette-fill\\)\\/90{--mix-background: color-mix(in srgb, var(--likec4-palette-fill) 90%, transparent);background:var(--mix-background, var(--likec4-palette-fill))}[data-mantine-color-scheme=dark] .dark\\:bg_var\\(--likec4-palette-fill\\)\\/60{--mix-background: color-mix(in srgb, var(--likec4-palette-fill) 60%, transparent);background:var(--mix-background, var(--likec4-palette-fill))}[data-mantine-color-scheme=dark] .dark\\:bg_mantine\\.colors\\.dark\\[5\\]{background:var(--colors-mantine-colors-dark\\[5\\])}[data-mantine-color-scheme=dark] .dark\\:bg_mantine\\.colors\\.dark\\[7\\]{background:var(--colors-mantine-colors-dark\\[7\\])}.\\[\\&\\[data-active\\]\\]\\:bg_mantine\\.colors\\.white[data-active]{background:var(--colors-mantine-colors-white)}[data-mantine-color-scheme=light] .light\\:bg_mantine\\.colors\\.gray\\[1\\]{background:var(--colors-mantine-colors-gray\\[1\\])}.\\[\\&\\[data-missing\\]\\]\\:bg_mantine\\.colors\\.orange\\[8\\]\\/15[data-missing]{--mix-background: color-mix(in srgb, var(--colors-mantine-colors-orange\\[8\\]) 15%, transparent);background:var(--mix-background, var(--colors-mantine-colors-orange\\[8\\]))}.\\[\\&\\[data-missing\\]\\]\\:bg_mantine\\.colors\\.orange\\[8\\]\\/20[data-missing]{--mix-background: color-mix(in srgb, var(--colors-mantine-colors-orange\\[8\\]) 20%, transparent);background:var(--mix-background, var(--colors-mantine-colors-orange\\[8\\]))}[data-mantine-color-scheme=light] .light\\:bg_mantine\\.colors\\.gray\\[3\\]\\/20{--mix-background: color-mix(in srgb, var(--colors-mantine-colors-gray\\[3\\]) 20%, transparent);background:var(--mix-background, var(--colors-mantine-colors-gray\\[3\\]))}[data-mantine-color-scheme=dark] .dark\\:bg_mantine\\.colors\\.dark\\[6\\]\\/80{--mix-background: color-mix(in srgb, var(--colors-mantine-colors-dark\\[6\\]) 80%, transparent);background:var(--mix-background, var(--colors-mantine-colors-dark\\[6\\]))}[data-mantine-color-scheme=light] .light\\:bg_mantine\\.colors\\.white\\/80{--mix-background: color-mix(in srgb, var(--colors-mantine-colors-white) 80%, transparent);background:var(--mix-background, var(--colors-mantine-colors-white))}[data-mantine-color-scheme=light] .light\\:bd-c_mantine\\.colors\\.gray\\[4\\]{border-color:var(--colors-mantine-colors-gray\\[4\\])}[data-mantine-color-scheme=dark] .dark\\:bd-c_mantine\\.colors\\.dark\\[4\\]{border-color:var(--colors-mantine-colors-dark\\[4\\])}.likec4-root:is([data-likec4-diagram-panning=true]) .whenPanning\\:transition_none\\!{transition:none!important}[data-mantine-color-scheme=light] .light\\:bd-c_mantine\\.colors\\.gray\\[2\\]{border-color:var(--colors-mantine-colors-gray\\[2\\])}[data-mantine-color-scheme=dark] .dark\\:bd-c_mantine\\.colors\\.dark\\[7\\]{border-color:var(--colors-mantine-colors-dark\\[7\\])}.likec4-root:is([data-likec4-reduced-graphics]) .reduceGraphics\\:transition_none{transition:none}.likec4-root:not([data-likec4-reduced-graphics]) .noReduceGraphics\\:transition_stroke_130ms_ease-out\\,stroke-width_130ms_ease-out{transition:stroke .13s ease-out,stroke-width .13s ease-out}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .whenHovered\\:bdr_4{border-radius:4px}.\\[\\&_\\.mantine-ThemeIcon-root\\]\\:transition_fast .mantine-ThemeIcon-root{transition:all var(--durations-fast) var(--easings-in-out)}.\\[\\&_\\>_\\*\\]\\:transition_all_130ms_\\{easings\\.inOut\\}>*{transition:all .13s var(--easings-in-out)}.\\[\\&\\[data-active\\]\\]\\:transition_none[data-active]{transition:none}.\\[\\&_\\>_\\*\\]\\:transition_fast>*,.\\[\\&_\\.tabler-icon\\]\\:transition_fast .tabler-icon{transition:all var(--durations-fast) var(--easings-in-out)}.\\[\\&\\[data-missing\\]\\]\\:bd-c_mantine\\.colors\\.orange\\[5\\]\\/20[data-missing]{--mix-borderColor: color-mix(in srgb, var(--colors-mantine-colors-orange\\[5\\]) 20%, transparent);border-color:var(--mix-borderColor, var(--colors-mantine-colors-orange\\[5\\]))}[data-mantine-color-scheme=light] .light\\:bd-c_mantine\\.colors\\.gray\\[3\\]{border-color:var(--colors-mantine-colors-gray\\[3\\])}.\\[\\&\\:last-child_\\.likec4-edge-label\\]\\:bd-b_none:last-child .likec4-edge-label{border-bottom:var(--borders-none)}.\\[\\&_\\>_\\*\\]\\:transition_all_0\\.15s_ease-in>*{transition:all .15s ease-in}[data-mantine-color-scheme=dark] .dark\\:bd-c_transparent{border-color:var(--colors-transparent)}:where(.react-flow__edge.selected,[data-likec4-hovered=true]) .\\[\\:where\\(\\.react-flow__edge\\.selected\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:transition_fill-opacity_150ms_ease-out\\,_stroke_150ms_ease-out\\,_stroke-width_150ms_ease-out{transition:fill-opacity .15s ease-out,stroke .15s ease-out,stroke-width .15s ease-out}.\\[\\&_\\:where\\(\\.likec4-diagram\\,_\\.likec4-compound-node\\,_\\.likec4-element-node\\)\\]\\:cursor_pointer :where(.likec4-diagram,.likec4-compound-node,.likec4-element-node){cursor:pointer}[data-mantine-color-scheme=dark] .dark\\:bg-c_\\[rgb\\(34_34_34_\\/_10\\%\\)\\]{background-color:#2222221a}[data-mantine-color-scheme=light] .light\\:bg-c_\\[rgb\\(15_15_15\\/_20\\%\\)\\]{background-color:#0f0f0f33}.\\[\\&\\:is\\(\\[data-position\\=\\"left\\"\\]\\)\\]\\:c_mantine\\.colors\\.dimmed:is([data-position=left]){color:var(--colors-mantine-colors-dimmed)}.\\[\\&\\:is\\(\\[data-position\\=\\"left\\"\\]\\)\\]\\:us_none:is([data-position=left]){-webkit-user-select:none;user-select:none}.\\[\\&\\:is\\(\\[data-position\\=\\"left\\"\\]\\)\\]\\:pointer-events_none:is([data-position=left]){pointer-events:none}[data-mantine-color-scheme=light] .light\\:fill_\\[\\#222221\\]{fill:#222221}.\\[\\&_\\.tabler-icon\\]\\:c_mantine\\.colors\\.text .tabler-icon{color:var(--colors-mantine-colors-text)}.likec4-root:is([data-likec4-diagram-panning=true]) .whenPanning\\:bx-sh_none\\!{box-shadow:var(--shadows-none)!important}[data-mantine-color-scheme=light] .light\\:c_mantine\\.colors\\.gray\\[7\\]{color:var(--colors-mantine-colors-gray\\[7\\])}[data-mantine-color-scheme=dark] .dark\\:c_mantine\\.colors\\.dark\\[0\\]{color:var(--colors-mantine-colors-dark\\[0\\])}[data-mantine-color-scheme=light] .light\\:bg-c_mantine\\.colors\\.gray\\[2\\]\\/70{--mix-backgroundColor: color-mix(in srgb, var(--colors-mantine-colors-gray\\[2\\]) 70%, transparent);background-color:var(--mix-backgroundColor, var(--colors-mantine-colors-gray\\[2\\]))}[data-mantine-color-scheme=dark] .dark\\:bg-c_mantine\\.colors\\.dark\\[8\\]\\/70{--mix-backgroundColor: color-mix(in srgb, var(--colors-mantine-colors-dark\\[8\\]) 70%, transparent);background-color:var(--mix-backgroundColor, var(--colors-mantine-colors-dark\\[8\\]))}.empty\\:d_none:is(:empty,[data-empty]){display:none}.\\[\\&_\\>_mark\\]\\:bg-c_mantine\\.colors\\.yellow\\[2\\]\\/90>mark{--mix-backgroundColor: color-mix(in srgb, var(--colors-mantine-colors-yellow\\[2\\]) 90%, transparent);background-color:var(--mix-backgroundColor, var(--colors-mantine-colors-yellow\\[2\\]))}[data-mantine-color-scheme=dark] .dark\\:op_0\\.5{opacity:.5}[data-mantine-color-scheme=dark] .dark\\:bg-c_mantine\\.colors\\.dark\\[5\\]\\/80{--mix-backgroundColor: color-mix(in srgb, var(--colors-mantine-colors-dark\\[5\\]) 80%, transparent);background-color:var(--mix-backgroundColor, var(--colors-mantine-colors-dark\\[5\\]))}.placeholder\\:c_mantine\\.colors\\.dimmed::placeholder,.placeholder\\:c_mantine\\.colors\\.dimmed[data-placeholder]{color:var(--colors-mantine-colors-dimmed)}[data-mantine-color-scheme=dark] .dark\\:c_mantine\\.colors\\.dark\\[3\\]{color:var(--colors-mantine-colors-dark\\[3\\])}[data-mantine-color-scheme=light] .light\\:bg-c_\\[rgb\\(250_250_250_\\/_var\\(--_opacity\\,_95\\%\\)\\)\\]{background-color:rgb(250 250 250 / var(--_opacity, 95%))}.likec4-root:not([data-likec4-reduced-graphics]) .noReduceGraphics\\:trs-prop_stroke-width\\,_stroke-opacity{--transition-prop: stroke-width, stroke-opacity;transition-property:stroke-width,stroke-opacity}.likec4-root:not([data-likec4-reduced-graphics]) .noReduceGraphics\\:trs-dur_fast{--transition-duration: var(--durations-fast);transition-duration:var(--durations-fast)}.likec4-root:not([data-likec4-reduced-graphics]) .noReduceGraphics\\:trs-tmf_inOut{--transition-easing: var(--easings-in-out);transition-timing-function:var(--easings-in-out)}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .whenHovered\\:trs-tmf_out{--transition-easing: var(--easings-out);transition-timing-function:var(--easings-out)}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .whenHovered\\:stk-w_calc\\(var\\(--xy-edge-stroke-width\\)_\\+_4\\){stroke-width:calc(var(--xy-edge-stroke-width) + 4)}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .whenHovered\\:stk-op_0\\.2{stroke-opacity:.2}:where(.react-flow__node,.react-flow__edge):is(.selected) .whenSelected\\:stk-w_calc\\(var\\(--xy-edge-stroke-width\\)_\\+_6\\){stroke-width:calc(var(--xy-edge-stroke-width) + 6)}:where(.react-flow__node,.react-flow__edge):is(.selected) .whenSelected\\:stk-op_0\\.25{stroke-opacity:.25}.likec4-root:not([data-likec4-reduced-graphics]) .noReduceGraphics\\:anim-ps_paused{animation-play-state:paused}:where([data-edge-dir=back]) .\\[\\:where\\(\\[data-edge-dir\\=\\'back\\'\\]\\)_\\&\\]\\:anim-dir_reverse{animation-direction:reverse}:where(.react-flow__node,.react-flow__edge):has([data-likec4-dimmed]) .whenDimmed\\:anim-ps_paused{animation-play-state:paused}:where([data-likec4-zoom-small=true]) .smallZoom\\:anim-n_none{animation-name:none}.likec4-root:is([data-likec4-diagram-panning=true]) .whenPanning\\:stk-dsh_none\\!{stroke-dasharray:none!important}.likec4-root:is([data-likec4-diagram-panning=true]) .whenPanning\\:anim-ps_paused{animation-play-state:paused}:where([data-likec4-zoom-small=true]) .smallZoom\\:d_none{display:none}.before\\:content_\\"_\\":before{content:" "}.before\\:pos_absolute:before{position:absolute}.before\\:pointer-events_all:before{pointer-events:all}:where(.react-flow__node.selectable:not(.dragging)) .\\[\\:where\\(\\.react-flow__node\\.selectable\\:not\\(\\.dragging\\)\\)_\\&\\]\\:cursor_pointer{cursor:pointer}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .whenHovered\\:trs-dly_\\.08s{transition-delay:.08s}.likec4-root:is([data-likec4-diagram-panning=true]) .whenPanning\\:pointer-events_none{pointer-events:none}[data-mantine-color-scheme=light] .light\\:c_var\\(--likec4-palette-hiContrast\\){color:var(--likec4-palette-hiContrast)}[data-mantine-color-scheme=dark] .dark\\:c_var\\(--likec4-palette-loContrast\\){color:var(--likec4-palette-loContrast)}[data-mantine-color-scheme=dark] .dark\\:c_mantine\\.colors\\.gray\\[4\\]{color:var(--colors-mantine-colors-gray\\[4\\])}[data-mantine-color-scheme=light] .light\\:c_mantine\\.colors\\.gray\\[8\\]{color:var(--colors-mantine-colors-gray\\[8\\])}[data-mantine-color-scheme=light] .light\\:c_mantine\\.colors\\.gray\\[9\\]{color:var(--colors-mantine-colors-gray\\[9\\])}.\\[\\&\\:is\\(\\[data-position\\=\\"right\\"\\]\\)\\]\\:ms_1:is([data-position=right]){margin-inline-start:var(--spacing-1)}.\\[\\&_\\:where\\(button\\,_\\.action-icon\\,_\\[role\\=\\'dialog\\'\\]\\)\\]\\:pointer-events_all :where(button,.action-icon,[role=dialog]){pointer-events:all}.likec4-root:is([data-likec4-diagram-panning=true]) .whenPanning\\:bx-sh_none{box-shadow:var(--shadows-none)}.backdrop\\:bkdp_auto::backdrop{backdrop-filter:var(--backdrop-blur, ) var(--backdrop-brightness, ) var(--backdrop-contrast, ) var(--backdrop-grayscale, ) var(--backdrop-hue-rotate, ) var(--backdrop-invert, ) var(--backdrop-opacity, ) var(--backdrop-saturate, ) var(--backdrop-sepia, );-webkit-backdrop-filter:var(--backdrop-blur, ) var(--backdrop-brightness, ) var(--backdrop-contrast, ) var(--backdrop-grayscale, ) var(--backdrop-hue-rotate, ) var(--backdrop-invert, ) var(--backdrop-opacity, ) var(--backdrop-saturate, ) var(--backdrop-sepia, )}.backdrop\\:bkdp-blur_var\\(--_blur\\)::backdrop{--backdrop-blur: blur(var(--_blur))}.backdrop\\:bg-c_\\[rgb\\(36_36_36_\\/_var\\(--_opacity\\,_5\\%\\)\\)\\]::backdrop{background-color:rgb(36 36 36 / var(--_opacity, 5%))}[data-mantine-color-scheme=dark] .dark\\:bg-c_mantine\\.colors\\.dark\\[6\\]{background-color:var(--colors-mantine-colors-dark\\[6\\])}.\\[\\&_\\.react-flow__attribution\\]\\:d_none .react-flow__attribution{display:none}[data-mantine-color-scheme=dark] .dark\\:mix-bm_hard-light{mix-blend-mode:hard-light}.\\[\\&_\\:where\\(svg\\,_img\\)\\]\\:pointer-events_none :where(svg,img){pointer-events:none}.\\[\\&_\\:where\\(svg\\,_img\\)\\]\\:filter_drop-shadow\\(0_0_3px_rgb\\(0_0_0_\\/_10\\%\\)\\)_drop-shadow\\(0_1px_8px_rgb\\(0_0_0_\\/_5\\%\\)\\)_drop-shadow\\(1px_1px_16px_rgb\\(0_0_0_\\/_2\\%\\)\\) :where(svg,img){filter:drop-shadow(0 0 3px rgb(0 0 0 / 10%)) drop-shadow(0 1px 8px rgb(0 0 0 / 5%)) drop-shadow(1px 1px 16px rgb(0 0 0 / 2%))}.\\[\\&_img\\]\\:obj-f_contain img{object-fit:contain}.\\[\\&_\\.mantine-ThemeIcon-root\\]\\:c_\\[var\\(--icon-color\\,_\\{colors\\.mantine\\.colors\\.dark\\[2\\]\\}\\)\\] .mantine-ThemeIcon-root{color:var(--icon-color, var(--colors-mantine-colors-dark\\[2\\]))}.\\[\\&\\[data-active\\]\\]\\:bx-sh_xs[data-active]{box-shadow:var(--shadows-xs)}.\\[\\&\\[data-active\\]\\]\\:c_mantine\\.colors\\.defaultColor[data-active]{color:var(--colors-mantine-colors-default-color)}[data-mantine-color-scheme=dark] .dark\\:c_mantine\\.colors\\.dark\\[1\\]{color:var(--colors-mantine-colors-dark\\[1\\])}[data-mantine-color-scheme=dark] .dark\\:c_mantine\\.colors\\.gray\\.lightColor{color:var(--colors-mantine-colors-gray-light-color)}.\\[\\&_\\.tabler-icon\\]\\:op_0\\.65 .tabler-icon{opacity:.65}.\\[\\&\\[data-missing\\]\\]\\:c_mantine\\.colors\\.orange\\[4\\][data-missing]{color:var(--colors-mantine-colors-orange\\[4\\])}.before\\:content_\\"scope\\:\\":before{content:"scope:"}.before\\:fs_xxs:before{font-size:var(--font-sizes-xxs)}.before\\:fw_500:before{font-weight:500}.before\\:lh_1:before{line-height:var(--line-heights-1)}.before\\:c_mantine\\.colors\\.dimmed:before{color:var(--colors-mantine-colors-dimmed)}.before\\:op_0\\.85:before{opacity:.85}.before\\:trf_translateY\\(-100\\%\\)_translateY\\(-2px\\):before{transform:translateY(-100%) translateY(-2px)}.\\[\\&\\[data-zero\\]\\]\\:c_mantine\\.colors\\.dimmed[data-zero]{color:var(--colors-mantine-colors-dimmed)}.\\[\\&_\\.mantine-Text-root\\]\\:c_mantine\\.colors\\.text\\/90 .mantine-Text-root{--mix-color: color-mix(in srgb, var(--colors-mantine-colors-text) 90%, transparent);color:var(--mix-color, var(--colors-mantine-colors-text))}.\\[\\&_\\.mantine-Text-root\\]\\:fs_xs .mantine-Text-root{font-size:var(--font-sizes-xs)}.\\[\\&_\\.mantine-Text-root\\]\\:fw_500 .mantine-Text-root{font-weight:500}.\\[\\&_\\.mantine-Text-root\\]\\:lh_1\\.2 .mantine-Text-root{line-height:1.2}.\\[\\&_\\.mantine-Text-root\\]\\:fs_xxs .mantine-Text-root{font-size:var(--font-sizes-xxs)}.\\[\\&_\\.mantine-Text-root\\]\\:fw_400 .mantine-Text-root{font-weight:400}.\\[\\&_\\.mantine-Text-root\\]\\:lh_xs .mantine-Text-root{line-height:var(--line-heights-xs)}.\\[\\&_\\.mantine-Text-root\\]\\:c_mantine\\.colors\\.dimmed .mantine-Text-root{color:var(--colors-mantine-colors-dimmed)}.\\[\\&\\[data-disabled\\]_\\.mantine-ThemeIcon-root\\]\\:op_0\\.45[data-disabled] .mantine-ThemeIcon-root{opacity:.45}:where(.likec4-view-btn[data-disabled]) .\\[\\:where\\(\\.likec4-view-btn\\[data-disabled\\]\\)_\\&\\]\\:op_0\\.85{opacity:.85}[data-mantine-color-scheme=light] .light\\:c_mantine\\.colors\\.gray\\[5\\]{color:var(--colors-mantine-colors-gray\\[5\\])}.\\[\\&_svg\\,_\\&_img\\]\\:pointer-events_none svg,.\\[\\&_svg\\,_\\&_img\\]\\:pointer-events_none img{pointer-events:none}.\\[\\&\\.likec4-shape-icon_svg\\]\\:stk-w_1\\.5.likec4-shape-icon svg{stroke-width:1.5}:where([data-disabled]) .\\[\\:where\\(\\[data-disabled\\]\\)_\\&\\]\\:op_0\\.4{opacity:.4}:where([data-disabled]) .\\[\\:where\\(\\[data-disabled\\]\\)_\\&\\]\\:op_0\\.85{opacity:.85}[data-mantine-color-scheme=light] .light\\:bg-c_\\[rgb\\(255_255_255_\\/_0\\.6\\)\\]{background-color:#fff9}:where(.react-flow__edge.selected,[data-likec4-hovered=true]) .\\[\\:where\\(\\.react-flow__edge\\.selected\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:vis_visible{visibility:visible}:where(.react-flow__edge.selected,[data-likec4-hovered=true]) .\\[\\:where\\(\\.react-flow__edge\\.selected\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:trs-dly_50ms{transition-delay:50ms}:where(.react-flow__edge.selected,[data-likec4-hovered=true]) .\\[\\:where\\(\\.react-flow__edge\\.selected\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:fill-opacity_1{fill-opacity:1}:where(.react-flow__edge.selected,[data-likec4-hovered=true]) .\\[\\:where\\(\\.react-flow__edge\\.selected\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:stk-w_5{stroke-width:5}.\\[\\&_\\*\\]\\:cursor_grabbing\\! *,.\\[\\&_\\.react-flow__edge-interaction\\]\\:cursor_grabbing\\! .react-flow__edge-interaction{cursor:grabbing!important}[data-mantine-color-scheme=dark] .dark\\:bg-c_mantine\\.colors\\.dark\\[6\\]\\/80{--mix-backgroundColor: color-mix(in srgb, var(--colors-mantine-colors-dark\\[6\\]) 80%, transparent);background-color:var(--mix-backgroundColor, var(--colors-mantine-colors-dark\\[6\\]))}.\\[\\&_\\.mantine-ScrollArea-viewport\\]\\:min-h_100\\% .mantine-ScrollArea-viewport{min-height:100%}:where([data-likec4-shape=browser]) .shapeBrowser\\:right_\\[5px\\]{right:5px}:where([data-likec4-shape=cylinder]) .shapeCylinder\\:top_\\[14px\\]{top:14px}:where([data-likec4-shape=storage]) .shapeStorage\\:top_\\[14px\\]{top:14px}:where([data-likec4-shape=queue]) .shapeQueue\\:top_\\[1px\\]{top:1px}:where([data-likec4-shape=queue]) .shapeQueue\\:right_3{right:var(--spacing-3)}.before\\:top_\\[calc\\(100\\%_-_4px\\)\\]:before{top:calc(100% - 4px)}.before\\:left_0:before{left:var(--spacing-0)}.before\\:w_100\\%:before{width:100%}.before\\:h_24px:before{height:24px}:where([data-likec4-shape=cylinder]) .shapeCylinder\\:bottom_\\[5px\\]{bottom:5px}:where([data-likec4-shape=storage]) .shapeStorage\\:bottom_\\[5px\\]{bottom:5px}:where([data-likec4-shape=queue]) .shapeQueue\\:bottom_0{bottom:var(--spacing-0)}:where([data-likec4-shape=queue]) .shapeQueue\\:pl_\\[14px\\]{padding-left:14px}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .whenHovered\\:h_12{height:12px}[data-mantine-color-scheme=dark] .dark\\:bd-l-c_mantine\\.colors\\.dark\\[4\\]{border-left-color:var(--colors-mantine-colors-dark\\[4\\])}.\\[\\&_\\>_svg\\]\\:w_70\\%>svg{width:70%}.\\[\\&_\\>_svg\\]\\:h_70\\%>svg{height:70%}.\\[\\&_\\.tabler-icon\\]\\:w_65\\% .tabler-icon{width:65%}.\\[\\&_\\.tabler-icon\\]\\:h_65\\% .tabler-icon{height:65%}.\\[\\&_\\:where\\(svg\\,_img\\)\\]\\:w_100\\% :where(svg,img){width:100%}.\\[\\&_\\:where\\(svg\\,_img\\)\\]\\:h_auto :where(svg,img){height:auto}.\\[\\&_\\:where\\(svg\\,_img\\)\\]\\:max-h_100\\% :where(svg,img){max-height:100%}.\\[\\&\\:not\\(\\:has\\(\\.mantine-ScrollArea-root\\)\\)\\]\\:pl_1:not(:has(.mantine-ScrollArea-root)){padding-left:var(--spacing-1)}.\\[\\&\\:not\\(\\:has\\(\\.mantine-ScrollArea-root\\)\\)\\]\\:pr_1:not(:has(.mantine-ScrollArea-root)){padding-right:var(--spacing-1)}.\\[\\&_\\.mantine-ScrollArea-root\\]\\:w_100\\% .mantine-ScrollArea-root{width:100%}.\\[\\&_\\.mantine-ScrollArea-root\\]\\:h_100\\% .mantine-ScrollArea-root{height:100%}.\\[\\&\\[data-level\\=\\'1\\'\\]\\]\\:mb_sm[data-level="1"]{margin-bottom:var(--spacing-sm)}.\\[\\&_\\.tabler-icon\\]\\:w_90\\% .tabler-icon{width:90%}.before\\:top_0:before{top:var(--spacing-0)}.before\\:left_2:before{left:var(--spacing-2)}.\\[\\&\\:last-child_\\.likec4-edge-label\\]\\:mb_0:last-child .likec4-edge-label{margin-bottom:var(--spacing-0)}.\\[\\&_svg\\,_\\&_img\\]\\:w_100\\% svg,.\\[\\&_svg\\,_\\&_img\\]\\:w_100\\% img{width:100%}.\\[\\&_svg\\,_\\&_img\\]\\:h_auto svg,.\\[\\&_svg\\,_\\&_img\\]\\:h_auto img{height:auto}.\\[\\&_svg\\,_\\&_img\\]\\:max-h_100\\% svg,.\\[\\&_svg\\,_\\&_img\\]\\:max-h_100\\% img{max-height:100%}:is(.\\[\\&_\\+_\\&\\]\\:mt_\\[32px\\])+:is(.\\[\\&_\\+_\\&\\]\\:mt_\\[32px\\]){margin-top:32px}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .whenHovered\\:w_7px{width:7px}:where(.react-flow__node,.react-flow__edge):is(.selected) .whenSelected\\:w_7px{width:7px}.focusWithin\\:bg_mantine\\.colors\\.gray\\[4\\]\\/55\\!:focus-within{--mix-background: color-mix(in srgb, var(--colors-mantine-colors-gray\\[4\\]) 55%, transparent) !important;background:var(--mix-background, var(--colors-mantine-colors-gray\\[4\\]))!important}.group:focus-within .groupFocusWithin\\:op_1{opacity:1}.group:focus-within .groupFocusWithin\\:grayscale_0{--grayscale: grayscale(0)}.focus\\:bg_mantine\\.colors\\.primary\\[8\\]:is(:focus,[data-focus]){background:var(--colors-mantine-colors-primary\\[8\\])}.mantine-Tree-node:focus>.mantine-Tree-label .\\[\\.mantine-Tree-node\\:focus_\\>_\\.mantine-Tree-label_\\&\\]\\:bg_mantine\\.colors\\.primary\\[8\\]{background:var(--colors-mantine-colors-primary\\[8\\])}.group:is(:focus,[data-focus]) .groupFocus\\:transition_none{transition:none}.focus\\:ring_none:is(:focus,[data-focus]){outline:var(--borders-none)}.focusVisible\\:ring_none:is(:focus-visible,[data-focus-visible]){outline:var(--borders-none)}.focus\\:bd-c_mantine\\.colors\\.primary\\[9\\]:is(:focus,[data-focus]){border-color:var(--colors-mantine-colors-primary\\[9\\])}.mantine-Tree-node:focus>.mantine-Tree-label .\\[\\.mantine-Tree-node\\:focus_\\>_\\.mantine-Tree-label_\\&\\]\\:ring_none{outline:var(--borders-none)}.mantine-Tree-node:focus>.mantine-Tree-label .\\[\\.mantine-Tree-node\\:focus_\\>_\\.mantine-Tree-label_\\&\\]\\:bd-c_mantine\\.colors\\.primary\\[9\\]{border-color:var(--colors-mantine-colors-primary\\[9\\])}.group:is(:focus,[data-focus]) .groupFocus\\:c_\\[inherit\\]\\!{color:inherit!important}.group:is(:focus,[data-focus]) .groupFocus\\:op_0\\.5{opacity:.5}.group:is(:focus,[data-focus]) .groupFocus\\:op_0\\.8{opacity:.8}.focus\\:bg-c_mantine\\.colors\\.gray\\[2\\]:is(:focus,[data-focus]){background-color:var(--colors-mantine-colors-gray\\[2\\])}.focus\\:c_mantine\\.colors\\.primary\\.lightColor\\!:is(:focus,[data-focus]){color:var(--colors-mantine-colors-primary-light-color)!important}.focus\\:bg-c_mantine\\.colors\\.primary\\.lightHover\\!:is(:focus,[data-focus]){background-color:var(--colors-mantine-colors-primary-light-hover)!important}.group:is(:focus,[data-focus]) .groupFocus\\:c_mantine\\.colors\\.primary\\[0\\]{color:var(--colors-mantine-colors-primary\\[0\\])}.mantine-Tree-node:focus>.mantine-Tree-label .\\[\\.mantine-Tree-node\\:focus_\\>_\\.mantine-Tree-label_\\&\\]\\:c_mantine\\.colors\\.primary\\[0\\]{color:var(--colors-mantine-colors-primary\\[0\\])}.group:is(:focus,[data-focus]) .groupFocus\\:c_mantine\\.colors\\.primary\\[1\\]{color:var(--colors-mantine-colors-primary\\[1\\])}.mantine-Tree-node:focus>.mantine-Tree-label .\\[\\.mantine-Tree-node\\:focus_\\>_\\.mantine-Tree-label_\\&\\]\\:c_mantine\\.colors\\.primary\\[1\\]{color:var(--colors-mantine-colors-primary\\[1\\])}.hover\\:--icon-color_\\{colors\\.mantine\\.colors\\.dark\\[1\\]\\}:is(:hover,[data-hover]){--icon-color: var(--colors-mantine-colors-dark\\[1\\])}.hover\\:--view-title-color_\\{colors\\.mantine\\.colors\\.defaultColor\\}:is(:hover,[data-hover]){--view-title-color: var(--colors-mantine-colors-default-color)}.hover\\:bg_mantine\\.colors\\.defaultHover:is(:hover,[data-hover]){background:var(--colors-mantine-colors-default-hover)}.hover\\:bg_mantine\\.colors\\.gray\\[3\\]:is(:hover,[data-hover]){background:var(--colors-mantine-colors-gray\\[3\\])}.group:is(:hover,[data-hover]) .groupHover\\:bg_mantine\\.colors\\.defaultHover{background:var(--colors-mantine-colors-default-hover)}.hover\\:bg_mantine\\.colors\\.gray\\.lightHover:is(:hover,[data-hover]){background:var(--colors-mantine-colors-gray-light-hover)}.hover\\:bg_mantine\\.colors\\.primary\\[8\\]\\/60:is(:hover,[data-hover]){--mix-background: color-mix(in srgb, var(--colors-mantine-colors-primary\\[8\\]) 60%, transparent);background:var(--mix-background, var(--colors-mantine-colors-primary\\[8\\]))}.group:is(:hover,[data-hover]) .groupHover\\:bg_mantine\\.colors\\.gray\\[3\\]\\/35{--mix-background: color-mix(in srgb, var(--colors-mantine-colors-gray\\[3\\]) 35%, transparent);background:var(--mix-background, var(--colors-mantine-colors-gray\\[3\\]))}.hover\\:td_underline:is(:hover,[data-hover]){text-decoration:underline}.hover\\:bd-c_mantine\\.colors\\.defaultBorder:is(:hover,[data-hover]){border-color:var(--colors-mantine-colors-default-border)}.hover\\:bd-w_4px:is(:hover,[data-hover]){border-width:4px}.hover\\:bd-c_mantine\\.colors\\.dark\\[1\\]:is(:hover,[data-hover]){border-color:var(--colors-mantine-colors-dark\\[1\\])}.hover\\:border-style_solid:is(:hover,[data-hover]){border-style:solid}.\\[\\&\\:is\\(\\:hover\\,_\\[data-selected\\=true\\]\\)_\\>_\\*\\]\\:transition_all_0\\.15s_ease-out:is(:hover,[data-selected=true])>*{transition:all .15s ease-out}.hover\\:ring_none:is(:hover,[data-hover]){outline:var(--borders-none)}.hover\\:bd-c_mantine\\.colors\\.primary\\[9\\]:is(:hover,[data-hover]){border-color:var(--colors-mantine-colors-primary\\[9\\])}.hover\\:transition_stroke_100ms_ease-out\\,_stroke-width_100ms_ease-out:is(:hover,[data-hover]){transition:stroke .1s ease-out,stroke-width .1s ease-out}.hover\\:transition_all_120ms_ease-out:is(:hover,[data-hover]){transition:all .12s ease-out}.hover\\:op_1:is(:hover,[data-hover]){opacity:1}.hover\\:bg-c_mantine\\.colors\\.gray\\[1\\]:is(:hover,[data-hover]){background-color:var(--colors-mantine-colors-gray\\[1\\])}.hover\\:bx-sh_sm:is(:hover,[data-hover]){box-shadow:var(--shadows-sm)}.group:is(:hover,[data-hover]) .groupHover\\:c_mantine\\.colors\\.dimmed{color:var(--colors-mantine-colors-dimmed)}.group:is(:hover,[data-hover]) .groupHover\\:op_0\\.5{opacity:.5}.group:is(:hover,[data-hover]) .groupHover\\:op_0\\.8{opacity:.8}.hover\\:bg-c_mantine\\.colors\\.gray\\[2\\]:is(:hover,[data-hover]){background-color:var(--colors-mantine-colors-gray\\[2\\])}.hover\\:c_\\[var\\(--mantine-color-bright\\)\\]:is(:hover,[data-hover]){color:var(--mantine-color-bright)}.hover\\:c_mantine\\.colors\\.text:is(:hover,[data-hover]){color:var(--colors-mantine-colors-text)}.hover\\:trs-dly_0s:is(:hover,[data-hover]){transition-delay:0s}.hover\\:c_likec4\\.panel\\.action-icon\\.text\\.hover:is(:hover,[data-hover]){color:var(--colors-likec4-panel-action-icon-text-hover)}.hover\\:bg-c_likec4\\.panel\\.action-icon\\.bg\\.hover:is(:hover,[data-hover]){background-color:var(--colors-likec4-panel-action-icon-bg-hover)}.\\[\\&\\:hover_\\>_\\*\\]\\:trs-tmf_out:hover>*{--transition-easing: var(--easings-out);transition-timing-function:var(--easings-out)}.\\[\\&\\:hover_\\>_\\*\\]\\:trf_translateX\\(1\\.6px\\):hover>*{transform:translate(1.6px)}.hover\\:trs-tmf_out:is(:hover,[data-hover]){--transition-easing: var(--easings-out);transition-timing-function:var(--easings-out)}.hover\\:c_mantine\\.colors\\.defaultColor:is(:hover,[data-hover]){color:var(--colors-mantine-colors-default-color)}.group:is(:hover,[data-hover]) .groupHover\\:trs-tmf_out{--transition-easing: var(--easings-out);transition-timing-function:var(--easings-out)}.group:is(:hover,[data-hover]) .groupHover\\:c_mantine\\.colors\\.defaultColor{color:var(--colors-mantine-colors-default-color)}.\\[\\&\\:is\\(\\:hover\\,_\\[data-selected\\=true\\]\\)_\\>_\\*\\]\\:cursor_pointer:is(:hover,[data-selected=true])>*{cursor:pointer}.\\[\\&\\:is\\(\\:hover\\,_\\[data-selected\\=true\\]\\)_\\>_\\*\\]\\:bg-c_mantine\\.colors\\.defaultHover:is(:hover,[data-selected=true])>*{background-color:var(--colors-mantine-colors-default-hover)}.hover\\:bg-c_mantine\\.colors\\.gray\\[0\\]:is(:hover,[data-hover]){background-color:var(--colors-mantine-colors-gray\\[0\\])}.group:is(:hover,[data-hover]) .groupHover\\:op_1{opacity:1}.group:is(:hover,[data-hover]) .groupHover\\:grayscale_0{--grayscale: grayscale(0)}.group:is(:hover,[data-hover]) .groupHover\\:c_mantine\\.colors\\.primary\\[0\\]{color:var(--colors-mantine-colors-primary\\[0\\])}.group:is(:hover,[data-hover]) .groupHover\\:c_mantine\\.colors\\.primary\\[1\\]{color:var(--colors-mantine-colors-primary\\[1\\])}.hover\\:fill-opacity_1:is(:hover,[data-hover]){fill-opacity:1}.hover\\:stk_mantine\\.colors\\.primary\\.filledHover:is(:hover,[data-hover]){stroke:var(--colors-mantine-colors-primary-filled-hover)}.hover\\:stk-w_10:is(:hover,[data-hover]){stroke-width:10}.hover\\:bg-c_mantine\\.colors\\.primary\\[2\\]\\/50:is(:hover,[data-hover]){--mix-backgroundColor: color-mix(in srgb, var(--colors-mantine-colors-primary\\[2\\]) 50%, transparent);background-color:var(--mix-backgroundColor, var(--colors-mantine-colors-primary\\[2\\]))}.group:is(:active,[data-active]) .groupActive\\:op_0\\.5{opacity:.5}.group:is(:active,[data-active]) .groupActive\\:op_0\\.8{opacity:.8}.likec4-root:is([data-likec4-reduced-graphics]) .reduceGraphics\\:\\[\\&_\\.action-icon\\]\\:--ai-radius_0px .action-icon{--ai-radius: 0px}[data-mantine-color-scheme=dark] .dark\\:\\[\\&\\:is\\(\\[data-active\\]\\)\\]\\:bg_mantine\\.colors\\.dark\\[5\\]:is([data-active]){background:var(--colors-mantine-colors-dark\\[5\\])}[data-mantine-color-scheme=light] .light\\:\\[\\&_\\.mantine-SegmentedControl-root\\]\\:bg_mantine\\.colors\\.gray\\[3\\] .mantine-SegmentedControl-root{background:var(--colors-mantine-colors-gray\\[3\\])}.group:is(:hover,[data-hover]) .\\[\\&\\:is\\(\\[data-position\\=\\"left\\"\\]\\)\\]\\:groupHover\\:c_\\[var\\(--badge-color\\)\\]:is([data-position=left]){color:var(--badge-color)}.group:is(:hover,[data-hover]) .\\[\\&\\:is\\(\\[data-position\\=\\"left\\"\\]\\)\\]\\:groupHover\\:op_0\\.7:is([data-position=left]){opacity:.7}[data-mantine-color-scheme=dark] .\\[\\&_\\>_mark\\]\\:dark\\:bg-c_mantine\\.colors\\.yellow\\[5\\]\\/80>mark{--mix-backgroundColor: color-mix(in srgb, var(--colors-mantine-colors-yellow\\[5\\]) 80%, transparent);background-color:var(--mix-backgroundColor, var(--colors-mantine-colors-yellow\\[5\\]))}.group:is(:focus,[data-focus]) .\\[\\&_\\>_mark\\]\\:groupFocus\\:bg-c_\\[transparent\\]>mark{background-color:var(--colors-transparent)}.group:is(:focus,[data-focus]) .\\[\\&_\\>_mark\\]\\:groupFocus\\:c_\\[inherit\\]\\!>mark{color:inherit!important}:where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) :where(.react-flow__node,.react-flow__edge):is(.selected) .whenSelected\\:whenHovered\\:stk-op_0\\.4{stroke-opacity:.4}.likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .whenHovered\\:noReduceGraphics\\:anim-ps_running{animation-play-state:running}.likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__node,.react-flow__edge):has([data-likec4-hovered=true]) .whenHovered\\:noReduceGraphics\\:anim-dly_450ms{animation-delay:.45s}.likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__edge.selected,[data-edge-active=true],[data-edge-animated=true]) .\\[\\:where\\(\\.react-flow__edge\\.selected\\,_\\[data-edge-active\\=\\'true\\'\\]\\,_\\[data-edge-animated\\=\\'true\\'\\]\\)_\\&\\]\\:noReduceGraphics\\:anim-ps_running{animation-play-state:running}.likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__edge.selected,[data-edge-active=true],[data-edge-animated=true]) .\\[\\:where\\(\\.react-flow__edge\\.selected\\,_\\[data-edge-active\\=\\'true\\'\\]\\,_\\[data-edge-animated\\=\\'true\\'\\]\\)_\\&\\]\\:noReduceGraphics\\:anim-dly_0ms{animation-delay:0ms}.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .reduceGraphicsOnPan\\:before\\:d_none:before{display:none}.\\[\\&_\\.mantine-ThemeIcon-root\\]\\:hover\\:c_mantine\\.colors\\.defaultColor .mantine-ThemeIcon-root:is(:hover,[data-hover]){color:var(--colors-mantine-colors-default-color)}[data-mantine-color-scheme=dark] .dark\\:\\[\\&\\:is\\(\\[data-active\\]\\)\\]\\:c_mantine\\.colors\\.white:is([data-active]){color:var(--colors-mantine-colors-white)}[data-mantine-color-scheme=light] .\\[\\&\\[data-missing\\]\\]\\:light\\:c_mantine\\.colors\\.orange\\[8\\][data-missing]{color:var(--colors-mantine-colors-orange\\[8\\])}.\\[\\&_\\.mantine-ScrollArea-viewport\\]\\:\\[\\&_\\>_div\\]\\:min-h_100\\% .mantine-ScrollArea-viewport>div{min-height:100%}.\\[\\&_\\.mantine-ScrollArea-viewport\\]\\:\\[\\&_\\>_div\\]\\:h_100\\% .mantine-ScrollArea-viewport>div{height:100%}.\\[\\&_\\.mantine-ScrollArea-root\\]\\:\\[\\&_\\>_div\\]\\:pl_1 .mantine-ScrollArea-root>div{padding-left:var(--spacing-1)}.\\[\\&_\\.mantine-ScrollArea-root\\]\\:\\[\\&_\\>_div\\]\\:pr_1 .mantine-ScrollArea-root>div{padding-right:var(--spacing-1)}[data-mantine-color-scheme=dark] .focusWithin\\:dark\\:bg_mantine\\.colors\\.dark\\[5\\]\\/55\\!:focus-within{--mix-background: color-mix(in srgb, var(--colors-mantine-colors-dark\\[5\\]) 55%, transparent) !important;background:var(--mix-background, var(--colors-mantine-colors-dark\\[5\\]))!important}[data-mantine-color-scheme=dark] .focus\\:dark\\:bg-c_mantine\\.colors\\.dark\\[4\\]:is(:focus,[data-focus]){background-color:var(--colors-mantine-colors-dark\\[4\\])}[data-mantine-color-scheme=light] .group:is(:focus,[data-focus]) .groupFocus\\:light\\:c_mantine\\.colors\\.white{color:var(--colors-mantine-colors-white)}[data-mantine-color-scheme=light] .mantine-Tree-node:focus>.mantine-Tree-label .\\[\\.mantine-Tree-node\\:focus_\\>_\\.mantine-Tree-label_\\&\\]\\:light\\:c_mantine\\.colors\\.white{color:var(--colors-mantine-colors-white)}[data-mantine-color-scheme=light] .light\\:hover\\:--icon-color_\\{colors\\.mantine\\.colors\\.gray\\[7\\]\\}:is(:hover,[data-hover]){--icon-color: var(--colors-mantine-colors-gray\\[7\\])}[data-mantine-color-scheme=dark] .dark\\:hover\\:bg_mantine\\.colors\\.dark\\[6\\]:is(:hover,[data-hover]){background:var(--colors-mantine-colors-dark\\[6\\])}[data-mantine-color-scheme=dark] .group:is(:hover,[data-hover]) .groupHover\\:dark\\:bg_mantine\\.colors\\.dark\\[5\\]\\/35{--mix-background: color-mix(in srgb, var(--colors-mantine-colors-dark\\[5\\]) 35%, transparent);background:var(--mix-background, var(--colors-mantine-colors-dark\\[5\\]))}[data-mantine-color-scheme=light] .light\\:hover\\:bd-c_mantine\\.colors\\.primary\\[6\\]:is(:hover,[data-hover]){border-color:var(--colors-mantine-colors-primary\\[6\\])}[data-mantine-color-scheme=dark] .hover\\:dark\\:bg-c_mantine\\.colors\\.dark\\[5\\]:is(:hover,[data-hover]){background-color:var(--colors-mantine-colors-dark\\[5\\])}[data-mantine-color-scheme=light] .group:is(:hover,[data-hover]) .groupHover\\:light\\:bg-c_mantine\\.colors\\.gray\\[2\\]{background-color:var(--colors-mantine-colors-gray\\[2\\])}[data-mantine-color-scheme=dark] .group:is(:hover,[data-hover]) .groupHover\\:dark\\:bg-c_mantine\\.colors\\.dark\\[8\\]{background-color:var(--colors-mantine-colors-dark\\[8\\])}[data-mantine-color-scheme=dark] .hover\\:dark\\:bg-c_mantine\\.colors\\.dark\\[4\\]:is(:hover,[data-hover]){background-color:var(--colors-mantine-colors-dark\\[4\\])}[data-mantine-color-scheme=dark] .hover\\:dark\\:bg-c_mantine\\.colors\\.dark\\[5\\]\\/70:is(:hover,[data-hover]){--mix-backgroundColor: color-mix(in srgb, var(--colors-mantine-colors-dark\\[5\\]) 70%, transparent);background-color:var(--mix-backgroundColor, var(--colors-mantine-colors-dark\\[5\\]))}[data-mantine-color-scheme=dark] .dark\\:hover\\:c_mantine\\.colors\\.white:is(:hover,[data-hover]){color:var(--colors-mantine-colors-white)}.hover\\:\\[\\&_\\>_\\:not\\(\\[data-no-transform\\]\\)\\]\\:trs-tmf_out:is(:hover,[data-hover])>:not([data-no-transform]){--transition-easing: var(--easings-out);transition-timing-function:var(--easings-out)}.hover\\:\\[\\&_\\>_\\:not\\(\\[data-no-transform\\]\\)\\]\\:trf_translateX\\(1px\\):is(:hover,[data-hover])>:not([data-no-transform]){transform:translate(1px)}.hover\\:\\[\\&_\\>_\\*\\]\\:trs-tmf_out:is(:hover,[data-hover])>*{--transition-easing: var(--easings-out);transition-timing-function:var(--easings-out)}.hover\\:\\[\\&_\\>_\\*\\]\\:trf_translateX\\(1px\\):is(:hover,[data-hover])>*{transform:translate(1px)}[data-mantine-color-scheme=dark] .hover\\:dark\\:bg-c_mantine\\.colors\\.defaultHover:is(:hover,[data-hover]){background-color:var(--colors-mantine-colors-default-hover)}[data-mantine-color-scheme=dark] .hover\\:dark\\:c_mantine\\.colors\\.white:is(:hover,[data-hover]){color:var(--colors-mantine-colors-white)}[data-mantine-color-scheme=light] .light\\:hover\\:bg-c_mantine\\.colors\\.primary\\[5\\]:is(:hover,[data-hover]){background-color:var(--colors-mantine-colors-primary\\[5\\])}[data-mantine-color-scheme=light] .group:is(:hover,[data-hover]) .groupHover\\:light\\:c_mantine\\.colors\\.white{color:var(--colors-mantine-colors-white)}[data-mantine-color-scheme=light] .group:is(:hover,[data-hover]) .groupHover\\:light\\:c_mantine\\.colors\\.primary\\[0\\]{color:var(--colors-mantine-colors-primary\\[0\\])}[data-mantine-color-scheme=dark] .dark\\:hover\\:bg-c_mantine\\.colors\\.dark\\[3\\]\\/40:is(:hover,[data-hover]){--mix-backgroundColor: color-mix(in srgb, var(--colors-mantine-colors-dark\\[3\\]) 40%, transparent);background-color:var(--mix-backgroundColor, var(--colors-mantine-colors-dark\\[3\\]))}@container (min-width: 24rem){.\\@\\/xs\\:d_flex{display:flex}}@media screen and (min-width: 36rem){.xs\\:max-w_calc\\(100cqw\\){max-width:100cqw}.xs\\:max-w_calc\\(100cqw_-_50px\\){max-width:calc(100cqw - 50px)}.xs\\:max-w_calc\\(100cqw_-_250px\\){max-width:calc(100cqw - 250px)}.xs\\:max-h_calc\\(100cqh_-_200px\\){max-height:calc(100cqh - 200px)}.xs\\:max-h_calc\\(100cqh_-_160px\\){max-height:calc(100cqh - 160px)}.xs\\:h_100cqh{height:100cqh}.xs\\:max-h_calc\\(100cqh_-_70px\\){max-height:calc(100cqh - 70px)}}@container (min-width: 40rem){.\\@\\/sm\\:m_xs{margin:var(--spacing-xs)}.\\@\\/sm\\:gap_xs{gap:var(--spacing-xs)}.\\@\\/sm\\:w_max-content{width:max-content}.\\@\\/sm\\:max-w_calc\\(100vw_-_2_\\*_\\{spacing\\.md\\}\\){max-width:calc(100vw - 2 * var(--spacing-md))}.\\@\\/sm\\:min-w_400{min-width:400px}.\\@\\/sm\\:max-w_550{max-width:550px}}@container (min-width: 40rem){@media screen and (min-width: 36rem){.\\@\\/sm\\:xs\\:max-w_calc\\(100cqw_-_2_\\*_\\{spacing\\.md\\}\\){max-width:calc(100cqw - 2 * var(--spacing-md))}}}@container (min-width: 48rem){.\\@\\/md\\:d_block{display:block}.\\@\\/md\\:d_flex{display:flex}.\\@\\/md\\:d_none{display:none}.\\@\\/md\\:d_\\[inherit\\]{display:inherit}.\\@\\/md\\:ms_2{margin-inline-start:var(--spacing-2)}.\\@\\/md\\:w_\\[64px\\]{width:64px}}@media screen and (min-width: 48rem){.sm\\:pr_\\[30px\\]{padding-right:30px}.sm\\:min-w_300{min-width:300px}.sm\\:max-w_65vw{max-width:65vw}}@media screen and (min-width: 62rem){.md\\:--text-fz_\\{fontSizes\\.md\\}{--text-fz: var(--font-sizes-md)}.md\\:bd-w_4{border-width:4px}.md\\:px_6{padding-inline:var(--spacing-6)}.md\\:pr_\\[50px\\]{padding-right:50px}.md\\:max-w_40vw{max-width:40vw}}@container (min-width: 64rem){.\\@\\/lg\\:max-w_700{max-width:700px}}@media screen and (min-width: 75rem){.lg\\:px_8{padding-inline:var(--spacing-8)}}@container likec4-tree (max-width: 450px){.\\[\\@container_likec4-tree_\\(max-width\\:_450px\\)\\]\\:--likec4-icon-size_18px{--likec4-icon-size: 18px}.\\[\\@container_likec4-tree_\\(max-width\\:_450px\\)\\]\\:gap_0\\.5{gap:var(--spacing-0\\.5)}.\\[\\@container_likec4-tree_\\(max-width\\:_450px\\)\\]\\:flex-d_column-reverse{flex-direction:column-reverse}.\\[\\@container_likec4-tree_\\(max-width\\:_450px\\)\\]\\:ai_flex-start{align-items:flex-start}.\\[\\@container_likec4-tree_\\(max-width\\:_450px\\)\\]\\:d_none{display:none}}}`,Yet={autoContrast:!0,primaryColor:"indigo",cursorType:"pointer",defaultRadius:"sm",fontFamily:"var(--likec4-app-font, var(--likec4-app-font-default))",headings:{fontWeight:"500",sizes:{h1:{fontWeight:"600"},h2:{fontWeight:"500"}}},components:{Portal:M0.extend({defaultProps:{reuseTargetNode:!0}})}};ye({cursor:"pointer","--mantine-cursor-pointer":"pointer","& :where(.likec4-diagram, .likec4-compound-node, .likec4-element-node)":{cursor:"pointer"}});function Wet(e,r){const[n,o]=E.useState([]);return QE(()=>{if(e&&!document.querySelector("style[data-likec4-font]")){const a=document.createElement("style");a.setAttribute("type","text/css"),a.setAttribute("data-likec4-font",""),q8(r)&&a.setAttribute("nonce",r),_0(r)&&a.setAttribute("nonce",r()),a.appendChild(document.createTextNode(Vet)),document.head.appendChild(a)}},[e]),QE(()=>{const a=new CSSStyleSheet;return a.replaceSync(Yte.replaceAll(":where(:root,:host)",".likec4-shadow-root").replaceAll(":root",".likec4-shadow-root").replaceAll(new RegExp("(?{a.replaceSync("")}},[Yte]),n}const Wte=()=>{try{const e=window.getComputedStyle(document.documentElement).colorScheme??"",r=pf(e.split(" "));if(r==="light"||r==="dark")return r}catch{}return null};function Get(e){const r=Pq(),[n,o]=E.useState(Wte);return Vq(vf(()=>o(Wte),100),{attributes:!0,childList:!1,subtree:!1},()=>document.documentElement),e??n??r}function Xet(e,r=!1){if(r===!1)return` +:where([data-likec4-instance="${e}"]) { + display: block; + box-sizing: border-box; + border: 0 solid transparent; + background: transparent; + padding: 0; + margin: 0; + overflow: hidden; + width: 100%; + height: 100%; + min-width: 80px; + min-height: 80px; +} + `.trim();const{width:n,height:o}=r,a=n>o;return` +:where([data-likec4-instance="${e}"]) { + display: block; + box-sizing: border-box; + border: 0 solid transparent; + background: transparent; + padding: 0; + overflow: hidden; + aspect-ratio: ${Math.ceil(n)} / ${Math.ceil(o)}; + ${a?"":` + max-width: min(100%, var(--likec4-view-max-width, ${Math.ceil(n)}px)); + margin-left: auto; + margin-right: auto;`} + width: ${a?"100%":"auto"}; + height: ${a?"auto":"100%"}; + ${a?"min-width: 80px;":"min-height: 80px;"} + max-height: min(100%, var(--likec4-view-max-height, ${Math.ceil(o)}px)); +} +`.trim()}const Ket=qet.div;function Zet({children:e,theme:r=Yet,injectFontCss:n=!0,styleNonce:o,colorScheme:a,keepAspectRatio:i=!1,...l}){const s=Get(a),c=ZW(),u=Xet(c,i),d=E.useRef(null),p=Wet(n,o),f=E.useCallback(()=>d.current??void 0,[d]);let g,b;return H8(o)&&(typeof o=="string"?(b=o,g=()=>o):typeof o=="function"&&(b=o(),g=o)),y.jsxs(y.Fragment,{children:[y.jsx("style",{type:"text/css",nonce:b,dangerouslySetInnerHTML:{__html:u}}),y.jsx(Ket,{ssr:!1,...l,styleSheets:p,"data-likec4-instance":c,children:y.jsx("div",{ref:d,"data-mantine-color-scheme":s,className:"likec4-shadow-root",children:y.jsx(g9,{...a&&{forceColorScheme:a},defaultColorScheme:s,getRootElement:f,...g&&{getStyleNonce:g},cssVariablesSelector:".likec4-shadow-root",theme:r,children:y.jsx(mR,{children:e})})})})]})}const Qet=ye({cursor:"pointer","--mantine-cursor-pointer":"pointer","& :where(.likec4-diagram, .likec4-compound-node, .likec4-element-node)":{cursor:"pointer"}});function Jet({viewId:e,className:r,pannable:n=!1,zoomable:o=!1,keepAspectRatio:a=!0,colorScheme:i,injectFontCss:l=!0,controls:s=!1,background:c="transparent",browser:u=!0,showNavigationButtons:d=!1,showNotations:p,enableFocusMode:f=!1,enableDynamicViewWalkthrough:g=!1,enableElementDetails:b=!1,enableRelationshipDetails:x=!1,enableRelationshipBrowser:w=x,reduceGraphics:k="auto",mantineTheme:C,styleNonce:_,style:T,reactFlowProps:R,renderNodes:A,children:D,...N}){const P=Rze(),[O,B]=E.useState(null),L=it(()=>{B(e)});if(!P)return y.jsx(gR,{children:"LikeC4Model not found. Make sure you provided LikeC4ModelProvider."});const Y=P.findView(e)?.$view;if(!Y)return y.jsx(Tet,{viewId:e});if(Y._stage!=="layouted")return y.jsxs(gR,{children:['LikeC4 View "$',e,'" is not layouted. Make sure you have LikeC4ModelProvider with layouted model.']});const M=O?P.findView(O)?.$view:null,q=(Y.notation?.nodes??[]).length>0;p??=q;const I=u!==!1,U=eq(u)?{}:u,V=$te(Y,N.dynamicViewVariant);return y.jsx(Zet,{injectFontCss:l,theme:C,colorScheme:i,styleNonce:_,keepAspectRatio:a?V:!1,className:Je("likec4-view",r),style:T,children:y.jsxs(mR,{children:[y.jsx(Ote,{view:Y,readonly:!0,pannable:n,zoomable:o,background:c,fitView:!0,fitViewPadding:P2.default,showNotations:p,enableDynamicViewWalkthrough:g,showNavigationButtons:d,experimentalEdgeEditing:!1,enableFocusMode:f,enableRelationshipDetails:x,enableElementDetails:b,enableRelationshipBrowser:w,enableElementTags:!1,controls:s,nodesDraggable:!1,reduceGraphics:k,className:Je("likec4-static-view",I&&Qet),enableSearch:!1,...I&&{onCanvasClick:L,onNodeClick:L},reactFlowProps:R,renderNodes:A,children:D,...N}),M&&y.jsxs(Oy,{openDelay:0,onClose:()=>B(null),children:[y.jsx(Ote,{view:M,pannable:!0,zoomable:!0,background:"dots",onNavigateTo:B,showNavigationButtons:!0,enableDynamicViewWalkthrough:!0,enableFocusMode:!0,enableRelationshipBrowser:!0,enableElementDetails:!0,enableRelationshipDetails:!0,enableSearch:!0,enableElementTags:!0,controls:!0,readonly:!0,fitView:!0,...N,fitViewPadding:P2.withControls,...U,showNotations:U.showNotations??p,renderNodes:A}),y.jsx(Se,{pos:"absolute",top:"1rem",right:"1rem",children:y.jsx(or,{variant:"default",color:"gray",onClick:G=>{G.stopPropagation(),B(null)},children:y.jsx(Hf,{})})})]})]})})}var ett=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:[y.jsx("path",{fill:"#343741",d:"M4 64c0 5.535.777 10.879 2.098 16H84c8.836 0 16-7.164 16-16s-7.164-16-16-16H6.098A63.7 63.7 0 0 0 4 64"}),y.jsx("path",{fill:"#fec514",d:"M111.695 30.648A61.5 61.5 0 0 0 117.922 24C106.188 9.379 88.199 0 68 0 42.715 0 20.957 14.71 10.574 36H98.04a20.12 20.12 0 0 0 13.652-5.352"}),y.jsx("path",{fill:"#00bfb3",d:"M98.04 92H10.577C20.961 113.29 42.715 128 68 128c20.2 0 38.188-9.383 49.922-24a61 61 0 0 0-6.227-6.648A20.13 20.13 0 0 0 98.04 92"})]}),ttt=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:y.jsx("path",{fill:"#F34F29",d:"M124.737 58.378 69.621 3.264c-3.172-3.174-8.32-3.174-11.497 0L46.68 14.71l14.518 14.518c3.375-1.139 7.243-.375 9.932 2.314 2.703 2.706 3.461 6.607 2.294 9.993l13.992 13.993c3.385-1.167 7.292-.413 9.994 2.295 3.78 3.777 3.78 9.9 0 13.679a9.673 9.673 0 0 1-13.683 0 9.68 9.68 0 0 1-2.105-10.521L68.574 47.933l-.002 34.341a9.7 9.7 0 0 1 2.559 1.828c3.778 3.777 3.778 9.898 0 13.683-3.779 3.777-9.904 3.777-13.679 0-3.778-3.784-3.778-9.905 0-13.683a9.7 9.7 0 0 1 3.167-2.11V47.333a9.6 9.6 0 0 1-3.167-2.111c-2.862-2.86-3.551-7.06-2.083-10.576L41.056 20.333 3.264 58.123a8.133 8.133 0 0 0 0 11.5l55.117 55.114c3.174 3.174 8.32 3.174 11.499 0l54.858-54.858a8.135 8.135 0 0 0-.001-11.501"})}),rtt=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:y.jsxs("g",{fill:"#181616",children:[y.jsx("path",{fillRule:"evenodd",d:"M64 5.103c-33.347 0-60.388 27.035-60.388 60.388 0 26.682 17.303 49.317 41.297 57.303 3.017.56 4.125-1.31 4.125-2.905 0-1.44-.056-6.197-.082-11.243-16.8 3.653-20.345-7.125-20.345-7.125-2.747-6.98-6.705-8.836-6.705-8.836-5.48-3.748.413-3.67.413-3.67 6.063.425 9.257 6.223 9.257 6.223 5.386 9.23 14.127 6.562 17.573 5.02.542-3.903 2.107-6.568 3.834-8.076-13.413-1.525-27.514-6.704-27.514-29.843 0-6.593 2.36-11.98 6.223-16.21-.628-1.52-2.695-7.662.584-15.98 0 0 5.07-1.623 16.61 6.19C53.7 35 58.867 34.327 64 34.304c5.13.023 10.3.694 15.127 2.033 11.526-7.813 16.59-6.19 16.59-6.19 3.287 8.317 1.22 14.46.593 15.98 3.872 4.23 6.215 9.617 6.215 16.21 0 23.194-14.127 28.3-27.574 29.796 2.167 1.874 4.097 5.55 4.097 11.183 0 8.08-.07 14.583-.07 16.572 0 1.607 1.088 3.49 4.148 2.897 23.98-7.994 41.263-30.622 41.263-57.294C124.388 32.14 97.35 5.104 64 5.104z",clipRule:"evenodd"}),y.jsx("path",{d:"M26.484 91.806c-.133.3-.605.39-1.035.185-.44-.196-.685-.605-.543-.906.13-.31.603-.395 1.04-.188.44.197.69.61.537.91zm2.446 2.729c-.287.267-.85.143-1.232-.28-.396-.42-.47-.983-.177-1.254.298-.266.844-.14 1.24.28.394.426.472.984.17 1.255zm2.382 3.477c-.37.258-.976.017-1.35-.52-.37-.538-.37-1.183.01-1.44.373-.258.97-.025 1.35.507.368.545.368 1.19-.01 1.452zm3.261 3.361c-.33.365-1.036.267-1.552-.23-.527-.487-.674-1.18-.343-1.544.336-.366 1.045-.264 1.564.23.527.486.686 1.18.333 1.543zm4.5 1.951c-.147.473-.825.688-1.51.486-.683-.207-1.13-.76-.99-1.238.14-.477.823-.7 1.512-.485.683.206 1.13.756.988 1.237m4.943.361c.017.498-.563.91-1.28.92-.723.017-1.308-.387-1.315-.877 0-.503.568-.91 1.29-.924.717-.013 1.306.387 1.306.88zm4.598-.782c.086.485-.413.984-1.126 1.117-.7.13-1.35-.172-1.44-.653-.086-.498.422-.997 1.122-1.126.714-.123 1.354.17 1.444.663zm0 0"})]})}),ntt=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 128 128",...e,children:[y.jsx("defs",{children:y.jsx("path",{id:"Go_svg__a",d:"M18.8 1h90.5v126H18.8z"})}),y.jsx("clipPath",{id:"Go_svg__b",children:y.jsx("use",{xlinkHref:"#Go_svg__a",overflow:"visible"})}),y.jsx("path",{fill:"#F6D2A2",fillRule:"evenodd",d:"M21.1 68.7c.2 3.5 3.7 1.9 5.3.8 1.5-1.1 2-.2 2.1-2.3.1-1.4.2-2.7.2-4.1-2.3-.2-4.8.3-6.7 1.7-.9.7-2.8 3-.9 3.9",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M23 71.2c-.7 0-2-.3-2.2-2.3-.6-.4-.8-.9-.8-1.2-.1-1.2 1.2-2.6 1.9-3.1 1.6-1.2 3.7-1.8 5.9-1.8h1.3v.3c.1 1.1 0 2.2-.1 3.2 0 .3 0 .6-.1.9-.1 1.5-.4 1.7-1.1 2-.3.1-.6.2-1.1.6-.5.3-2.2 1.4-3.7 1.4m4.8-7.8c-2.1 0-4 .6-5.5 1.7-.7.5-1.7 1.7-1.6 2.5 0 .3.2.6.6.8l.2.1v.2c.1 1.6.9 1.8 1.5 1.8 1 0 2.4-.7 3.3-1.3.6-.4 1-.5 1.3-.6.5-.2.6-.2.7-1.4 0-.3 0-.6.1-.9.1-.9.1-1.9.1-2.8-.3-.1-.5-.1-.7-.1",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fill:"#C6B198",fillRule:"evenodd",d:"M21.1 68.7c.5-.2 1.1-.3 1.4-.8",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M21.1 69c-.1 0-.3-.1-.3-.2-.1-.2 0-.4.2-.4.1 0 .2-.1.2-.1.4-.2.8-.3 1-.6.1-.1.3-.2.5-.1.1.1.2.3.1.5-.4.5-.9.7-1.3.8l-.2.1z",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fill:"#6AD7E5",fillRule:"evenodd",d:"M29.3 26.4c-13.6-3.8-3.5-21.1 7.4-14z",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"m29.5 26.8-.3-.1c-7-2-6.9-7-6.7-8.5.5-3.8 4.1-7.8 8.9-7.8 1.9 0 3.7.6 5.5 1.8l.3.2zm1.9-15.7c-4.5 0-7.8 3.7-8.3 7.2-.5 3.6 1.7 6.4 6 7.7l7.1-13.5c-1.5-.9-3.1-1.4-4.8-1.4",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fill:"#6AD7E5",fillRule:"evenodd",d:"M89.6 11.1c10.7-7.5 20.5 9.5 8 13.8z",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M97.5 25.3 89.2 11l.3-.2c1.9-1.3 3.8-2 5.7-2 4.6 0 7.9 3.8 8.6 7.5.3 1.5.6 6.6-6 8.8zm-7.4-14 7.7 13.3c3.9-1.4 5.9-4.4 5.3-8-.6-3.4-3.7-6.9-7.9-6.9-1.7-.1-3.4.4-5.1 1.6",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fill:"#F6D2A2",fillRule:"evenodd",d:"M92 112.3c2.7 1.7 7.7 6.8 3.6 9.3-3.9 3.6-6.1-4-9.6-5 1.5-2 3.4-3.9 6-4.3",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M93.5 122.9c-1.6 0-3-1.6-4.2-3.1-1.1-1.2-2.2-2.5-3.4-2.9l-.5-.1.3-.4c1.2-1.7 3.2-3.9 6.2-4.4h.1l.1.1c1.7 1.1 5.4 4.2 5.3 7.1 0 1.1-.6 2-1.7 2.7-.7.7-1.4 1-2.2 1m-7-6.5c1.2.5 2.2 1.8 3.2 2.9 1.2 1.5 2.4 2.8 3.7 2.8q.9 0 1.8-.9h.1c.9-.6 1.4-1.3 1.4-2.2 0-2.3-2.9-5.2-4.9-6.5-1.8.5-3.6 1.7-5.3 3.9m9.1 5.5c-.1 0-.2-.1-.3-.2-.2-.4-.4-.9-.5-1.3-.3-.8-.6-1.6-1.2-2.2-.1-.1-.1-.3 0-.5.1-.1.3-.1.5 0 .7.7 1.1 1.6 1.4 2.5l.5 1.2c.1.2 0 .4-.1.5z",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fill:"#F6D2A2",fillRule:"evenodd",d:"M43.2 118.1c-3.2.5-5 3.4-7.7 4.9-2.5 1.5-3.5-.5-3.7-.9-.4-.2-.4.2-1-.4-2.3-3.7 2.4-6.4 4.9-8.2 3.5-.8 5.7 2.2 7.5 4.6",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M33.8 123.8c-1.3 0-2-1.1-2.2-1.5h-.1c-.3 0-.5-.1-.9-.5v-.1c-2.2-3.5 1.6-6.2 4.1-8l.9-.6h.2c.4-.1.7-.1 1.1-.1 3 0 4.9 2.6 6.5 4.7l.5.7-.6.1c-1.9.3-3.3 1.5-4.7 2.7-.9.8-1.8 1.5-2.8 2.1-.8.3-1.4.5-2 .5m-2.2-2.1c.1 0 .2 0 .4.1h.1l.1.1c.2.3.7 1.2 1.7 1.2.5 0 1-.2 1.5-.5 1-.5 1.9-1.3 2.7-2 1.3-1.1 2.7-2.3 4.5-2.8-1.5-2-3.3-4.2-5.8-4.2-.3 0-.6 0-.9.1l-.8.6c-2.6 1.8-5.8 4.1-3.9 7.1.1.2.2.3.4.3m.2.7c-.2 0-.4-.2-.3-.4.1-1 .6-1.7 1.1-2.5.3-.4.5-.8.7-1.2.1-.2.3-.2.4-.2.2.1.2.3.2.4-.2.5-.5.9-.8 1.3-.5.7-.9 1.3-1 2.1 0 .4-.1.5-.3.5",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fillRule:"evenodd",d:"M29.9 21.7c-1.8-.9-3.1-2.2-2-4.3 1-1.9 2.9-1.7 4.7-.8zm64.9-1.8c1.8-.9 3.1-2.2 2-4.3-1-1.9-2.9-1.7-4.7-.8z",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{fill:"#F6D2A2",fillRule:"evenodd",d:"M107.1 68.2c-.2 3.5-3.7 1.9-5.3.8-1.5-1.1-2-.2-2.1-2.3-.1-1.4-.2-2.7-.2-4.1 2.3-.2 4.8.3 6.7 1.7 1 .8 2.8 3 .9 3.9",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M105.3 70.7c-1.5 0-3.2-1.1-3.7-1.4s-.8-.5-1.1-.6c-.8-.3-1-.5-1.1-2 0-.3 0-.6-.1-.9-.1-1-.2-2.1-.1-3.2v-.3h1.3c2.2 0 4.3.6 5.9 1.8.7.5 2 1.9 1.9 3.1 0 .4-.2.9-.8 1.2-.2 2-1.5 2.3-2.2 2.3M99.8 63c0 .9 0 1.9.1 2.8 0 .3 0 .6.1.9.1 1.2.2 1.2.7 1.4.3.1.7.3 1.3.6.9.6 2.3 1.3 3.3 1.3.6 0 1.4-.2 1.5-1.8V68l.2-.1c.4-.2.6-.4.6-.8.1-.8-.9-2-1.6-2.5-1.5-1.1-3.5-1.7-5.5-1.7-.2.1-.4.1-.7.1",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fill:"#C6B198",fillRule:"evenodd",d:"M107.1 68.2c-.5-.2-1.1-.3-1.4-.8",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M107.1 68.6h-.1l-.2-.1c-.5-.2-1-.3-1.3-.8-.1-.1-.1-.4.1-.5.1-.1.4-.1.5.1.2.3.6.4 1 .6.1 0 .2.1.2.1.2.1.3.3.2.4s-.3.2-.4.2",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fill:"#6AD7E5",fillRule:"evenodd",d:"M62.8 4c13.6 0 26.3 1.9 33 15 6 14.6 3.8 30.4 4.8 45.9.8 13.3 2.5 28.6-3.6 40.9-6.5 12.9-22.7 16.2-36 15.7-10.5-.4-23.1-3.8-29.1-13.4-6.9-11.2-3.7-27.9-3.2-40.4.6-14.8-4-29.7.9-44.1C34.5 8.5 48.1 5.1 62.8 4",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M63.3 121.9h-2.5c-4.1-.1-10.3-.8-16.4-3.3-5.9-2.4-10.2-5.8-13-10.3-5.6-9.1-4.6-21.6-3.7-32.7.2-2.8.4-5.4.5-7.9.2-5.2-.2-10.6-.7-15.7-.8-9.4-1.6-19.1 1.5-28.5 2.4-7 6.7-12 13.2-15.2 5.1-2.5 11.4-3.9 20.4-4.6C76 3.6 89.3 5.5 96 18.8c4.4 10.7 4.4 22.2 4.5 33.3 0 4.2 0 8.5.3 12.7.1 1.3.2 2.6.2 3.9.8 12.2 1.7 26-3.9 37.2-2.8 5.7-7.7 9.9-14.4 12.6-5.4 2.2-12.2 3.4-19.4 3.4M62.8 4.3c-14.1 1.1-27.9 4.2-33 19.4-3.1 9.3-2.3 18.9-1.5 28.2.4 5.2.9 10.5.7 15.8-.1 2.5-.3 5.1-.5 7.9-.9 11-1.9 23.4 3.6 32.3 2.3 3.7 9.7 12.5 28.8 13.2h2.5c22.1 0 30.3-9.8 33.3-15.6 5.5-11 4.6-24.8 3.9-36.9-.1-1.3-.2-2.6-.2-3.9-.2-4.2-.3-8.5-.3-12.7-.1-11-.1-22.5-4.4-33.1C92.7 13 88.2 9 82 6.7c-6.4-2.1-13.6-2.4-19.2-2.4",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fill:"#fff",fillRule:"evenodd",d:"M65.2 22.2c2.4 14.2 25.6 10.4 22.3-3.9-3-12.8-23.1-9.2-22.3 3.9",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M76.2 31.5c-4.5 0-10.2-2.4-11.4-9.2-.2-3.2.8-6.1 2.9-8.3 2.3-2.5 5.8-3.9 9.4-3.9 4.2 0 9.2 2.2 10.6 8.3.8 3.4.2 6.4-1.7 8.8-2.1 2.6-5.8 4.3-9.8 4.3m-10.7-9.3q.75 4.2 3.9 6.6c1.8 1.4 4.3 2.1 6.8 2.1 3.7 0 7.3-1.6 9.3-4.1 1.8-2.2 2.3-5.1 1.6-8.3-1.3-5.7-6-7.7-10-7.7-3.4 0-6.7 1.4-8.9 3.7-1.9 2-2.9 4.7-2.7 7.7",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fill:"#fff",fillRule:"evenodd",d:"M37.5 24.5c3.2 12.3 22.9 9.2 22.2-3.2-.9-14.8-25.3-12-22.2 3.2",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M48 32.7c-4.3 0-9.3-2.1-10.9-8.1-.7-3.5 0-6.7 2-9.1 2.2-2.7 5.8-4.3 9.7-4.3 5.2 0 10.7 3.1 11.1 10.1.2 2.9-.7 5.5-2.7 7.6-2.1 2.3-5.6 3.8-9.2 3.8m.8-20.8c-3.7 0-7.1 1.5-9.2 4-1.9 2.3-2.5 5.2-1.8 8.5C39.2 30 44 32 48 32c3.4 0 6.7-1.3 8.8-3.6 1.8-1.9 2.7-4.4 2.5-7.1-.2-4.3-3.1-9.4-10.5-9.4",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fill:"#fff",fillRule:"evenodd",d:"M68 39.2c0 1.8.4 3.9.1 5.9-.5.9-1.4 1-2.2 1.3-1.1-.2-2-.9-2.5-1.9-.3-2.2.1-4.4.2-6.6z",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M65.9 46.8c-1.3-.2-2.3-1-2.8-2.1-.2-1.6-.1-3.1 0-4.6.1-.7.1-1.4.1-2.1v-.4l5.1 1.6v.2c0 .6.1 1.2.1 1.9.1 1.3.2 2.7 0 4v.1c-.4.8-1.1 1-1.8 1.3-.2-.1-.4 0-.7.1m-2.2-2.4c.4.9 1.2 1.5 2.1 1.7.2-.1.4-.1.5-.2.6-.2 1.1-.4 1.4-.9.2-1.2.1-2.5 0-3.8 0-.6-.1-1.2-.1-1.7l-3.8-1.2c0 .6-.1 1.2-.1 1.7-.1 1.6-.2 3 0 4.4",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fillRule:"evenodd",d:"M46.3 22.5c0 2-1.5 3.6-3.3 3.6s-3.3-1.6-3.3-3.6 1.5-3.6 3.3-3.6 3.3 1.6 3.3 3.6",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{fill:"#fff",fillRule:"evenodd",d:"M45.2 23.3c0 .5-.4.9-.8.9s-.8-.4-.8-.9.4-.9.8-.9c.5 0 .8.4.8.9",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{fillRule:"evenodd",d:"M74.2 21.6c0 2-1.5 3.6-3.3 3.6s-3.3-1.6-3.3-3.6 1.5-3.6 3.3-3.6 3.3 1.6 3.3 3.6",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{fill:"#fff",fillRule:"evenodd",d:"M73.2 22.4c0 .5-.3.9-.8.9-.4 0-.8-.4-.8-.9s.3-.9.8-.9c.4 0 .8.4.8.9M58.4 39c-1.5 3.5.8 10.6 4.8 5.4-.3-2.2.1-4.4.2-6.6z",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{d:"M60.5 46.6c-.7 0-1.4-.4-1.9-1.2-1.1-1.6-1.3-4.6-.5-6.5l.1-.2 5.5-1.4v.4l-.1 2.2c-.1 1.5-.2 2.9 0 4.4v.1l-.1.1q-1.5 2.1-3 2.1m-1.8-7.3c-.6 1.7-.4 4.4.5 5.7.4.6.8.9 1.3.9.7 0 1.5-.6 2.3-1.6-.2-1.5-.1-3 .1-4.4l.1-1.7z",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fill:"#F6D2A2",fillRule:"evenodd",d:"M58.9 32.2c-2.7.2-4.9 3.5-3.5 6 1.9 3.4 6-.3 8.6 0 3 .1 5.4 3.2 7.8.6 2.7-2.9-1.2-5.7-4.1-7z",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"}),y.jsx("path",{fill:"#231F20",d:"M69.7 40.2c-.9 0-1.8-.4-2.7-.8s-1.9-.8-3-.8h-.3c-.8 0-1.7.3-2.7.7-1.1.4-2.2.7-3.2.7-1.2 0-2.1-.5-2.7-1.6-.7-1.2-.6-2.6.1-3.9.8-1.5 2.2-2.4 3.7-2.6l8.9-.4h.1c2.2.9 4.7 2.6 5.2 4.6.2 1-.1 2-.9 2.9s-1.6 1.2-2.5 1.2M64.1 38c1.1 0 2.2.5 3.2.9.9.4 1.7.7 2.5.7.7 0 1.3-.3 1.9-.9.7-.7.9-1.5.8-2.3-.4-1.7-2.8-3.3-4.7-4.1l-8.7.4c-1.3.1-2.5 1-3.2 2.2-.6 1.1-.6 2.3-.1 3.3.5.9 1.1 1.3 2.1 1.3.9 0 1.9-.4 2.9-.7 1.1-.4 2-.7 3-.7 0-.2.1-.2.3-.1",clipPath:"url(#Go_svg__b)"}),y.jsx("path",{fillRule:"evenodd",d:"M58.6 32.1c-.2-4.7 8.8-5.3 9.8-1.4 1.1 4-9.4 4.9-9.8 1.4",clipPath:"url(#Go_svg__b)",clipRule:"evenodd"})]}),ott=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:[y.jsxs("linearGradient",{id:"Grafana_svg__a",x1:45.842,x2:45.842,y1:89.57,y2:8.802,gradientTransform:"translate(-.23 28.462)scale(1.4011)",gradientUnits:"userSpaceOnUse",children:[y.jsx("stop",{offset:0,stopColor:"#fcee1f"}),y.jsx("stop",{offset:1,stopColor:"#f15b2a"})]}),y.jsx("path",{fill:"url(#Grafana_svg__a)",d:"M120.8 56.9q-.3-3.15-1.2-7.2c-.9-4.05-1.8-5.5-3.2-8.6-1.5-3-3.4-6.2-5.9-9.1-1-1.2-2.1-2.3-3.2-3.5 1.8-6.9-2.1-13-2.1-13-6.7-.4-10.9 2.1-12.4 3.2-.2-.1-.6-.2-.8-.3-1.1-.4-2.3-.9-3.5-1.3-1.2-.3-2.4-.8-3.6-1-1.2-.3-2.5-.6-3.9-.8-.2 0-.4-.1-.7-.1C77.5 6 69.1 2 69.1 2c-9.6 6.2-11.4 14.4-11.4 14.4s0 .2-.1.4c-.6.1-1 .3-1.5.4-.7.2-1.4.4-2.1.8l-2.1.9c-1.4.7-2.8 1.3-4.2 2.1-1.3.8-2.6 1.5-3.9 2.4-.2-.1-.3-.2-.3-.2-12.9-5-24.3 1-24.3 1-1 13.8 5.2 22.3 6.4 23.9-.3.9-.6 1.7-.9 2.5q-1.5 4.65-2.1 9.6c-.1.4-.1 1-.2 1.4C10.5 67.5 7 79.6 7 79.6 16.9 91 28.5 91.7 28.5 91.7c1.4 2.6 3.2 5.2 5.1 7.5.8 1 1.7 1.9 2.5 2.9-3.6 10.3.6 19 .6 19 11.1.4 18.4-4.8 19.9-6.1 1.1.3 2.2.7 3.3 1 3.4.9 6.9 1.4 10.3 1.5h4.5c5.2 7.5 14.4 8.5 14.4 8.5 6.5-6.9 6.9-13.6 6.9-15.2v-.6c1.3-1 2.6-2 4-3.1 2.6-2.3 4.8-5.1 6.8-7.9.2-.2.3-.6.6-.8 7.4.4 12.5-4.6 12.5-4.6-1.2-7.7-5.6-11.4-6.5-12.1l-.1-.1-.1-.1-.1-.1c0-.4.1-.9.1-1.4.1-.9.1-1.7.1-2.5v-3.3c0-.2 0-.4-.1-.7l-.1-.7-.1-.7c-.1-.9-.3-1.7-.4-2.5-.8-3.3-2.1-6.5-3.7-9.2-1.8-2.9-3.9-5.3-6.3-7.5-2.4-2.1-5.1-3.9-7.9-5.1-2.9-1.3-5.7-2.1-8.7-2.4-1.4-.2-3-.2-4.4-.2h-2.3c-.8.1-1.5.2-2.2.3-3 .6-5.7 1.7-8.1 3.1s-4.5 3.3-6.3 5.4-3.1 4.3-4 6.7c-.9 2.3-1.4 4.8-1.5 7.2v2.6c0 .3 0 .6.1.9.1 1.2.3 2.3.7 3.4.7 2.2 1.7 4.2 3 5.9s2.8 3.1 4.4 4.2c1.7 1.1 3.3 1.9 5.1 2.4s3.4.8 5 .7h2.3c.2 0 .4-.1.6-.1s.3-.1.6-.1c.3-.1.8-.2 1.1-.3.7-.2 1.3-.6 2-.8.7-.3 1.2-.7 1.7-1 .1-.1.3-.2.4-.3.6-.4.7-1.2.2-1.8-.4-.4-1.1-.6-1.7-.3-.1.1-.2.1-.4.2-.4.2-1 .4-1.4.6-.6.1-1.1.3-1.7.4-.3 0-.6.1-.9.1h-1.8s-.1 0 0 0h-.7c-.1 0-.3 0-.4-.1-1.2-.2-2.5-.6-3.7-1.1-1.2-.6-2.4-1.3-3.4-2.3-1.1-1-2-2.1-2.8-3.4s-1.2-2.8-1.4-4.2c-.1-.8-.2-1.5-.1-2.3v-.7c0 .1 0 0 0 0V70c0-.4.1-.8.2-1.2.6-3.3 2.2-6.5 4.7-8.9.7-.7 1.3-1.2 2.1-1.7.8-.6 1.5-1 2.3-1.3s1.7-.7 2.5-.9c.9-.2 1.8-.4 2.6-.4.4 0 .9-.1 1.3-.1h.8c.1 0 0 0 0 0h.4c1 .1 2 .2 2.9.4 1.9.4 3.7 1.1 5.5 2.1 3.5 2 6.5 5 8.3 8.6.9 1.8 1.5 3.7 1.9 5.8.1.6.1 1 .2 1.5v2.7c0 .6-.1 1.1-.1 1.7-.1.6-.1 1.1-.2 1.7s-.2 1.1-.3 1.7c-.2 1.1-.7 2.1-1 3.2-.8 2.1-1.9 4.1-3.2 5.8-2.6 3.6-6.3 6.6-10.3 8.5-2.1.9-4.2 1.7-6.4 2q-1.65.3-3.3.3h-1.6c.1 0 0 0 0 0h-.1c-.6 0-1.2 0-1.8-.1-2.4-.2-4.7-.7-7-1.3-2.3-.7-4.5-1.5-6.6-2.6-4.2-2.2-7.9-5.4-10.9-9-1.4-1.9-2.8-3.9-3.9-5.9s-1.9-4.3-2.5-6.5c-.7-2.2-1-4.5-1.1-6.8v-3.5c0-1.1.1-2.3.3-3.5.1-1.2.3-2.3.6-3.5.2-1.2.6-2.3.9-3.5.7-2.3 1.4-4.5 2.4-6.6 2-4.2 4.5-7.9 7.5-10.9.8-.8 1.5-1.4 2.4-2.1.3-.3 1.1-1 2-1.5s1.8-1.1 2.8-1.5c.4-.2.9-.4 1.4-.7.2-.1.4-.2.8-.3.2-.1.4-.2.8-.3 1-.4 2-.8 3-1.1.2-.1.6-.1.8-.2s.6-.1.8-.2c.6-.1 1-.2 1.5-.4.2-.1.6-.1.8-.2.2 0 .6-.1.8-.1s.6-.1.8-.1l.4-.1.4-.1c.2 0 .6-.1.8-.1.3 0 .6-.1.9-.1.2 0 .7-.1.9-.1s.3 0 .6-.1h.7c.3 0 .6 0 .9-.1h.4s.1 0 0 0h4.1c2 .1 4 .3 5.8.7 3.7.7 7.4 1.9 10.6 3.5 3.2 1.5 6.2 3.5 8.6 5.6.1.1.3.2.4.4.1.1.3.2.4.4.3.2.6.6.9.8s.6.6.9.8c.2.3.6.6.8.9 1.1 1.1 2.1 2.3 3 3.4 1.8 2.3 3.2 4.6 4.3 6.8.1.1.1.2.2.4.1.1.1.2.2.4s.2.6.4.8c.1.2.2.6.3.8s.2.6.3.8c.4 1 .8 2 1.1 3 .6 1.5.9 2.9 1.2 4 .1.4.6.8 1 .8.6 0 .9-.4.9-1-.3-1.7-.3-3.1-.4-4.8"})]}),att=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:[y.jsx("path",{fill:"#0074BD",d:"M47.617 98.12s-4.767 2.774 3.397 3.71c9.892 1.13 14.947.968 25.845-1.092 0 0 2.871 1.795 6.873 3.351-24.439 10.47-55.308-.607-36.115-5.969m-2.988-13.665s-5.348 3.959 2.823 4.805c10.567 1.091 18.91 1.18 33.354-1.6 0 0 1.993 2.025 5.132 3.131-29.542 8.64-62.446.68-41.309-6.336"}),y.jsx("path",{fill:"#EA2D2E",d:"M69.802 61.271c6.025 6.935-1.58 13.17-1.58 13.17s15.289-7.891 8.269-17.777c-6.559-9.215-11.587-13.792 15.635-29.58 0 .001-42.731 10.67-22.324 34.187"}),y.jsx("path",{fill:"#0074BD",d:"M102.123 108.229s3.529 2.91-3.888 5.159c-14.102 4.272-58.706 5.56-71.094.171-4.451-1.938 3.899-4.625 6.526-5.192 2.739-.593 4.303-.485 4.303-.485-4.953-3.487-32.013 6.85-13.743 9.815 49.821 8.076 90.817-3.637 77.896-9.468M49.912 70.294s-22.686 5.389-8.033 7.348c6.188.828 18.518.638 30.011-.326 9.39-.789 18.813-2.474 18.813-2.474s-3.308 1.419-5.704 3.053c-23.042 6.061-67.544 3.238-54.731-2.958 10.832-5.239 19.644-4.643 19.644-4.643m40.697 22.747c23.421-12.167 12.591-23.86 5.032-22.285-1.848.385-2.677.72-2.677.72s.688-1.079 2-1.543c14.953-5.255 26.451 15.503-4.823 23.725 0-.002.359-.327.468-.617"}),y.jsx("path",{fill:"#EA2D2E",d:"M76.491 1.587S89.459 14.563 64.188 34.51c-20.266 16.006-4.621 25.13-.007 35.559-11.831-10.673-20.509-20.07-14.688-28.815C58.041 28.42 81.722 22.195 76.491 1.587"}),y.jsx("path",{fill:"#0074BD",d:"M52.214 126.021c22.476 1.437 57-.8 57.817-11.436 0 0-1.571 4.032-18.577 7.231-19.186 3.612-42.854 3.191-56.887.874 0 .001 2.875 2.381 17.647 3.331"})]}),itt=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:y.jsxs("g",{fill:"#486bb3",children:[y.jsx("path",{d:"M56.484 55.098c.37.27.82.43 1.31.43 1.2 0 2.18-.95 2.23-2.13l.05-.03.75-13.26c-.9.11-1.8.26-2.7.46-4.93 1.12-9.2 3.55-12.54 6.83l10.87 7.71zm-1.45 19.43a2.22 2.22 0 0 0-2.58-1.69l-.02-.03-13.05 2.21a26.15 26.15 0 0 0 10.51 13.15l5.06-12.22-.04-.05c.17-.42.23-.89.12-1.37m-4.34-9.41c.44-.12.85-.38 1.16-.76.75-.94.62-2.29-.28-3.07l.01-.05-9.93-8.88a26.07 26.07 0 0 0-3.7 16.48l12.73-3.67zm9.64 3.9 3.66 1.76 3.66-1.75.9-3.95-2.53-3.16h-4.06l-2.54 3.16zm7.6-15.67c.02.46.18.91.49 1.29.75.94 2.1 1.11 3.06.41l.04.02 10.8-7.66c-4.08-3.99-9.4-6.6-15.15-7.3l.75 13.24zm7.58 19.43c-.17-.03-.34-.05-.51-.04-.29.01-.58.09-.85.22a2.23 2.23 0 0 0-1.08 2.89l-.02.02 5.11 12.34c4.93-3.14 8.61-7.83 10.54-13.24l-13.16-2.23zm-9.56 6.54a2.25 2.25 0 0 0-2.04-1.17c-.77.03-1.5.46-1.89 1.18h-.01l-6.42 11.6a26.16 26.16 0 0 0 14.27.73c.88-.2 1.74-.44 2.57-.72l-6.43-11.63h-.05z"}),y.jsx("path",{d:"m124.544 76.788-10.44-45.33a8.01 8.01 0 0 0-4.37-5.43l-42.24-20.18a8.16 8.16 0 0 0-3.92-.78 8.2 8.2 0 0 0-3.1.78l-42.24 20.18a8.06 8.06 0 0 0-4.37 5.43l-10.41 45.34a7.92 7.92 0 0 0 1.1 6.14c.14.22.3.43.46.64l29.24 36.35a8.09 8.09 0 0 0 6.32 3.01l46.89-.01c2.46 0 4.78-1.11 6.32-3.01l29.23-36.36a7.98 7.98 0 0 0 1.53-6.77m-16.07-.55c-.31 1.35-1.76 2.17-3.26 1.85-.01 0-.03 0-.04-.01-.02 0-.03-.01-.05-.02-.21-.05-.47-.09-.65-.14-.86-.23-1.49-.58-2.27-.88-1.67-.6-3.06-1.1-4.41-1.3-.69-.05-1.04.27-1.42.52-.18-.04-.75-.14-1.08-.19-2.42 7.61-7.58 14.21-14.57 18.33.12.29.33.91.42 1.02-.16.43-.4.83-.19 1.49.49 1.27 1.28 2.52 2.24 4.01.46.69.94 1.22 1.36 2.02.1.19.23.48.33.68.65 1.39.17 2.99-1.08 3.59-1.26.61-2.82-.03-3.5-1.43-.1-.2-.23-.46-.31-.65-.36-.82-.48-1.52-.73-2.32-.57-1.68-1.05-3.07-1.73-4.25-.39-.57-.86-.64-1.29-.78-.08-.14-.38-.69-.54-.97-1.4.53-2.84.97-4.34 1.31-6.56 1.49-13.13.89-18.99-1.37l-.57 1.04c-.43.11-.84.23-1.09.53-.92 1.1-1.29 2.86-1.96 4.54-.25.79-.37 1.5-.73 2.32-.08.19-.22.45-.31.64v.01l-.01.01c-.67 1.39-2.23 2.03-3.49 1.43-1.25-.6-1.72-2.2-1.08-3.59.1-.2.22-.49.32-.68.42-.79.89-1.33 1.36-2.02.96-1.5 1.8-2.84 2.29-4.11.12-.42-.06-1-.22-1.43l.46-1.1c-6.73-3.99-12.04-10.34-14.58-18.21l-1.1.19c-.3-.17-.89-.56-1.45-.51-1.35.2-2.74.7-4.41 1.3-.78.3-1.4.64-2.27.87-.18.05-.44.1-.65.15-.02 0-.03.01-.05.02-.01 0-.03 0-.04.01-1.5.32-2.95-.5-3.26-1.85s.65-2.72 2.14-3.08c.01 0 .03-.01.04-.01s.01 0 .02-.01c.21-.05.48-.12.68-.16.88-.17 1.6-.13 2.43-.19 1.77-.19 3.23-.34 4.53-.75.41-.17.81-.74 1.09-1.1l1.06-.31c-1.19-8.22.82-16.28 5.16-22.81l-.81-.72c-.05-.32-.12-1.04-.51-1.46-.99-.93-2.25-1.71-3.76-2.64-.72-.42-1.38-.69-2.1-1.23-.15-.11-.36-.29-.52-.42-.01-.01-.03-.02-.04-.03-1.21-.97-1.49-2.64-.62-3.73.49-.61 1.24-.92 2.01-.89.6.02 1.23.24 1.76.66.17.14.41.32.56.45.68.58 1.09 1.16 1.66 1.77 1.25 1.27 2.28 2.32 3.41 3.08.59.35 1.05.21 1.5.15.15.11.63.46.91.65 4.3-4.57 9.96-7.95 16.52-9.44 1.53-.35 3.05-.58 4.57-.7l.06-1.07c.34-.33.71-.79.82-1.31.11-1.36-.07-2.82-.28-4.59-.12-.82-.31-1.51-.35-2.4-.01-.18 0-.44.01-.65 0-.02-.01-.05-.01-.07 0-1.55 1.13-2.81 2.53-2.81s2.53 1.26 2.53 2.81c0 .22.01.52.01.72-.03.89-.23 1.58-.35 2.4-.21 1.76-.4 3.23-.29 4.59.1.68.5.95.83 1.26.01.18.04.79.06 1.13 8.04.71 15.5 4.39 20.99 10.14l.96-.69c.33.02 1.04.12 1.53-.17 1.13-.76 2.16-1.82 3.41-3.08.57-.61.99-1.18 1.67-1.77.15-.13.39-.31.56-.45 1.21-.97 2.9-.86 3.77.23s.59 2.76-.62 3.73c-.17.14-.39.33-.56.45-.72.53-1.38.8-2.1 1.23-1.51.93-2.77 1.71-3.76 2.64-.47.5-.43.98-.48 1.43-.14.13-.63.57-.9.8a32.8 32.8 0 0 1 4.74 10.95c.92 3.99 1.06 7.97.53 11.8l1.02.3c.18.26.56.89 1.09 1.1 1.3.41 2.76.56 4.53.75.83.07 1.55.03 2.43.19.21.04.52.12.73.17 1.5.37 2.45 1.74 2.14 3.09"}),y.jsx("path",{d:"m86.274 52.358-9.88 8.84.01.03c-.34.3-.6.7-.71 1.18-.27 1.17.44 2.33 1.58 2.65l.01.05 12.79 3.68c.27-2.76.11-5.62-.55-8.48-.66-2.89-1.77-5.56-3.25-7.95"})]})}),ltt=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:y.jsx("path",{fill:"#090",d:"M24.5 50.5c-1.5 0-2.5 1.2-2.5 2.7v14.1l-15.9-16c-.8-.8-2.2-1-3.2-.6S1 52.1 1 53.2v20.7c0 1.5 1.5 2.7 3 2.7s3-1.2 3-2.7V59.8l16.1 16c.5.5 1.2.8 1.9.8.3 0 .4-.1.7-.2 1-.4 1.3-1.4 1.3-2.5V53.3c0-1.5-1-2.8-2.5-2.8m19.7 11.8c-1.4 0-2.7 1.4-2.7 2.8s1.3 2.8 2.7 2.8l6.6.4-1.5 3.7h-8.5l-4.2-7.9 4.3-8.1H50l2.1 4h5.5L54 52.1l-.8-1.1H37.6l-.7 1.2L31 62.5l-.7 1.3.7 1.3 5.8 10.3.8 1.6h15.1l.7-1.7 4.3-9 1.9-4.3h-4.4zM65 50.5c-1.4 0-3 1.3-3 2.7V60h6v-6.7c0-1.5-1.6-2.8-3-2.8m30.4.3c-1-.4-2.4-.2-3.1.6L76 67.4V53.3c0-1.5-1-2.7-2.5-2.7S71 51.8 71 53.3V74c0 1.1.7 2.1 1.7 2.5.3.1.7.2 1 .2.7 0 1.6-.3 2.1-.8l16.2-16V74c0 1.5 1 2.7 2.5 2.7S97 75.5 97 74V53.3c0-1.1-.6-2.1-1.6-2.5m21.8 12.8 8.4-8.4c1.1-1.1 1.1-2.8 0-3.8-1.1-1.1-2.8-1.1-3.8 0l-8.4 8.4-8.4-8.4c-1.1-1.1-2.8-1.1-3.8 0-1.1 1.1-1.1 2.8 0 3.8l8.4 8.4-8.4 8.4c-1.1 1.1-1.1 2.8 0 3.8.5.5 1.2.8 1.9.8s1.4-.3 1.9-.8l8.4-8.4 8.4 8.4c.5.5 1.2.8 1.9.8s1.4-.3 1.9-.8c1.1-1.1 1.1-2.8 0-3.8zM62 73.9c0 1.4 1.5 2.7 3 2.7 1.4 0 3-1.3 3-2.7V62h-6z"})}),stt=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:[y.jsx("path",{d:"M93.809 92.112c.785-6.533.55-7.492 5.416-6.433l1.235.108c3.742.17 8.637-.602 11.513-1.938 6.191-2.873 9.861-7.668 3.758-6.409-13.924 2.873-14.881-1.842-14.881-1.842 14.703-21.815 20.849-49.508 15.543-56.287-14.47-18.489-39.517-9.746-39.936-9.52l-.134.025c-2.751-.571-5.83-.912-9.289-.968-6.301-.104-11.082 1.652-14.709 4.402 0 0-44.683-18.409-42.604 23.151.442 8.841 12.672 66.898 27.26 49.362 5.332-6.412 10.484-11.834 10.484-11.834 2.558 1.699 5.622 2.567 8.834 2.255l.249-.212c-.078.796-.044 1.575.099 2.497-3.757 4.199-2.653 4.936-10.166 6.482-7.602 1.566-3.136 4.355-.221 5.084 3.535.884 11.712 2.136 17.238-5.598l-.22.882c1.474 1.18 1.375 8.477 1.583 13.69.209 5.214.558 10.079 1.621 12.948s2.317 10.256 12.191 8.14c8.252-1.764 14.561-4.309 15.136-27.985"}),y.jsx("path",{d:"M75.458 125.256c-4.367 0-7.211-1.689-8.938-3.32-2.607-2.46-3.641-5.629-4.259-7.522l-.267-.79c-1.244-3.358-1.666-8.193-1.916-14.419-.038-.935-.064-1.898-.093-2.919-.021-.747-.047-1.684-.085-2.664a18.8 18.8 0 0 1-4.962 1.568c-3.079.526-6.389.356-9.84-.507-2.435-.609-4.965-1.871-6.407-3.82-4.203 3.681-8.212 3.182-10.396 2.453-3.853-1.285-7.301-4.896-10.542-11.037-2.309-4.375-4.542-10.075-6.638-16.943-3.65-11.96-5.969-24.557-6.175-28.693C4.292 23.698 7.777 14.44 15.296 9.129 27.157.751 45.128 5.678 51.68 7.915c4.402-2.653 9.581-3.944 15.433-3.851 3.143.051 6.136.327 8.916.823 2.9-.912 8.628-2.221 15.185-2.139 12.081.144 22.092 4.852 28.949 13.615 4.894 6.252 2.474 19.381.597 26.651-2.642 10.226-7.271 21.102-12.957 30.57 1.544.011 3.781-.174 6.961-.831 6.274-1.295 8.109 2.069 8.607 3.575 1.995 6.042-6.677 10.608-9.382 11.864-3.466 1.609-9.117 2.589-13.745 2.377l-.202-.013-1.216-.107-.12 1.014-.116.991c-.311 11.999-2.025 19.598-5.552 24.619-3.697 5.264-8.835 6.739-13.361 7.709-1.544.33-2.947.474-4.219.474m-9.19-43.671c2.819 2.256 3.066 6.501 3.287 14.434.028.99.054 1.927.089 2.802.106 2.65.355 8.855 1.327 11.477.137.371.26.747.39 1.146 1.083 3.316 1.626 4.979 6.309 3.978 3.931-.843 5.952-1.599 7.534-3.851 2.299-3.274 3.585-9.86 3.821-19.575l4.783.116-4.75-.57.14-1.186c.455-3.91.783-6.734 3.396-8.602 2.097-1.498 4.486-1.353 6.389-1.01-2.091-1.58-2.669-3.433-2.823-4.193l-.399-1.965 1.121-1.663c6.457-9.58 11.781-21.354 14.609-32.304 2.906-11.251 2.02-17.226 1.134-18.356-11.729-14.987-32.068-8.799-34.192-8.097l-.359.194-1.8.335-.922-.191c-2.542-.528-5.366-.82-8.393-.869-4.756-.08-8.593 1.044-11.739 3.431l-2.183 1.655-2.533-1.043c-5.412-2.213-21.308-6.662-29.696-.721-4.656 3.298-6.777 9.76-6.305 19.207.156 3.119 2.275 14.926 5.771 26.377 4.831 15.825 9.221 21.082 11.054 21.693.32.108 1.15-.537 1.976-1.529a271 271 0 0 1 10.694-12.07l2.77-2.915 3.349 2.225c1.35.897 2.839 1.406 4.368 1.502l7.987-6.812-1.157 11.808c-.026.265-.039.626.065 1.296l.348 2.238-1.51 1.688-.174.196 4.388 2.025z"}),y.jsx("path",{fill:"#336791",d:"M115.731 77.44c-13.925 2.873-14.882-1.842-14.882-1.842 14.703-21.816 20.849-49.51 15.545-56.287C101.924.823 76.875 9.566 76.457 9.793l-.135.024c-2.751-.571-5.83-.911-9.291-.967-6.301-.103-11.08 1.652-14.707 4.402 0 0-44.684-18.408-42.606 23.151.442 8.842 12.672 66.899 27.26 49.363 5.332-6.412 10.483-11.834 10.483-11.834 2.559 1.699 5.622 2.567 8.833 2.255l.25-.212c-.078.796-.042 1.575.1 2.497-3.758 4.199-2.654 4.936-10.167 6.482-7.602 1.566-3.136 4.355-.22 5.084 3.534.884 11.712 2.136 17.237-5.598l-.221.882c1.473 1.18 2.507 7.672 2.334 13.557s-.29 9.926.871 13.082c1.16 3.156 2.316 10.256 12.192 8.14 8.252-1.768 12.528-6.351 13.124-13.995.422-5.435 1.377-4.631 1.438-9.49l.767-2.3c.884-7.367.14-9.743 5.225-8.638l1.235.108c3.742.17 8.639-.602 11.514-1.938 6.19-2.871 9.861-7.667 3.758-6.408"}),y.jsx("path",{fill:"#fff",d:"M75.957 122.307c-8.232 0-10.84-6.519-11.907-9.185-1.562-3.907-1.899-19.069-1.551-31.503a1.59 1.59 0 0 1 1.64-1.55 1.594 1.594 0 0 1 1.55 1.639c-.401 14.341.168 27.337 1.324 30.229 1.804 4.509 4.54 8.453 12.275 6.796 7.343-1.575 10.093-4.359 11.318-11.46.94-5.449 2.799-20.951 3.028-24.01a1.593 1.593 0 0 1 1.71-1.472 1.597 1.597 0 0 1 1.472 1.71c-.239 3.185-2.089 18.657-3.065 24.315-1.446 8.387-5.185 12.191-13.794 14.037-1.463.313-2.792.453-4 .454M31.321 90.466a6.7 6.7 0 0 1-2.116-.35c-5.347-1.784-10.44-10.492-15.138-25.885-3.576-11.717-5.842-23.947-6.041-27.922-.589-11.784 2.445-20.121 9.02-24.778 13.007-9.216 34.888-.44 35.813-.062a1.596 1.596 0 0 1-1.207 2.955c-.211-.086-21.193-8.492-32.768-.285-5.622 3.986-8.203 11.392-7.672 22.011.167 3.349 2.284 15.285 5.906 27.149 4.194 13.742 8.967 22.413 13.096 23.79.648.216 2.62.873 5.439-2.517A245 245 0 0 1 45.88 73.046a1.596 1.596 0 0 1 2.304 2.208c-.048.05-4.847 5.067-10.077 11.359-2.477 2.979-4.851 3.853-6.786 3.853m69.429-13.445a1.596 1.596 0 0 1-1.322-2.487c14.863-22.055 20.08-48.704 15.612-54.414-5.624-7.186-13.565-10.939-23.604-11.156-7.433-.16-13.341 1.738-14.307 2.069l-.243.099c-.971.305-1.716-.227-1.997-.849a1.6 1.6 0 0 1 .631-2.025c.046-.027.192-.089.429-.176l-.021.006.021-.007c1.641-.601 7.639-2.4 15.068-2.315 11.108.118 20.284 4.401 26.534 12.388 2.957 3.779 2.964 12.485.019 23.887-3.002 11.625-8.651 24.118-15.497 34.277-.306.457-.81.703-1.323.703m.76 10.21c-2.538 0-4.813-.358-6.175-1.174-1.4-.839-1.667-1.979-1.702-2.584-.382-6.71 3.32-7.878 5.208-8.411-.263-.398-.637-.866-1.024-1.349-1.101-1.376-2.609-3.26-3.771-6.078-.182-.44-.752-1.463-1.412-2.648-3.579-6.418-11.026-19.773-6.242-26.612 2.214-3.165 6.623-4.411 13.119-3.716C97.6 28.837 88.5 10.625 66.907 10.271c-6.494-.108-11.82 1.889-15.822 5.93-8.96 9.049-8.636 25.422-8.631 25.586a1.595 1.595 0 1 1-3.19.084c-.02-.727-.354-17.909 9.554-27.916C53.455 9.272 59.559 6.96 66.96 7.081c13.814.227 22.706 7.25 27.732 13.101 5.479 6.377 8.165 13.411 8.386 15.759.165 1.746-1.088 2.095-1.341 2.147l-.576.013c-6.375-1.021-10.465-.312-12.156 2.104-3.639 5.201 3.406 17.834 6.414 23.229.768 1.376 1.322 2.371 1.576 2.985.988 2.396 2.277 4.006 3.312 5.3.911 1.138 1.7 2.125 1.982 3.283.131.23 1.99 2.98 13.021.703 2.765-.57 4.423-.083 4.93 1.45.997 3.015-4.597 6.532-7.694 7.97-2.775 1.29-7.204 2.106-11.036 2.106m-4.696-4.021c.35.353 2.101.962 5.727.806 3.224-.138 6.624-.839 8.664-1.786 2.609-1.212 4.351-2.567 5.253-3.492l-.5.092c-7.053 1.456-12.042 1.262-14.828-.577a6 6 0 0 1-.54-.401c-.302.119-.581.197-.78.253-1.58.443-3.214.902-2.996 5.105m-45.562 8.915c-1.752 0-3.596-.239-5.479-.71-1.951-.488-5.24-1.957-5.19-4.37.057-2.707 3.994-3.519 5.476-3.824 5.354-1.103 5.703-1.545 7.376-3.67.488-.619 1.095-1.39 1.923-2.314 1.229-1.376 2.572-2.073 3.992-2.073.989 0 1.8.335 2.336.558 1.708.708 3.133 2.42 3.719 4.467.529 1.847.276 3.625-.71 5.006-3.237 4.533-7.886 6.93-13.443 6.93m-7.222-4.943c.481.372 1.445.869 2.518 1.137 1.631.408 3.213.615 4.705.615 4.546 0 8.196-1.882 10.847-5.594.553-.774.387-1.757.239-2.274-.31-1.083-1.08-2.068-1.873-2.397-.43-.178-.787-.314-1.115-.314-.176 0-.712 0-1.614 1.009a41 41 0 0 0-1.794 2.162c-2.084 2.646-3.039 3.544-9.239 4.821-1.513.31-2.289.626-2.674.835m12.269-7.36a1.596 1.596 0 0 1-1.575-1.354 8 8 0 0 1-.08-.799c-4.064-.076-7.985-1.82-10.962-4.926-3.764-3.927-5.477-9.368-4.699-14.927.845-6.037.529-11.366.359-14.229-.047-.796-.081-1.371-.079-1.769.003-.505.013-1.844 4.489-4.113 1.592-.807 4.784-2.215 8.271-2.576 5.777-.597 9.585 1.976 10.725 7.246 3.077 14.228.244 20.521-1.825 25.117-.385.856-.749 1.664-1.04 2.447l-.257.69c-1.093 2.931-2.038 5.463-1.748 7.354a1.595 1.595 0 0 1-1.335 1.819zM42.464 42.26l.062 1.139c.176 2.974.504 8.508-.384 14.86-.641 4.585.759 9.06 3.843 12.276 2.437 2.542 5.644 3.945 8.94 3.945h.068c.369-1.555.982-3.197 1.642-4.966l.255-.686c.329-.884.714-1.74 1.122-2.646 1.991-4.424 4.47-9.931 1.615-23.132-.565-2.615-1.936-4.128-4.189-4.627-4.628-1.022-11.525 2.459-12.974 3.837m9.63-.677c-.08.564 1.033 2.07 2.485 2.271 1.449.203 2.689-.975 2.768-1.539s-1.033-1.186-2.485-1.388-2.691.092-2.768.656m2.818 2.826-.407-.028c-.9-.125-1.81-.692-2.433-1.518-.219-.29-.576-.852-.505-1.354.101-.736.999-1.177 2.4-1.177.313 0 .639.023.967.069.766.106 1.477.327 2.002.62.91.508.977 1.075.936 1.368-.112.813-1.405 2.02-2.96 2.02m-2.289-2.732c.045.348.907 1.496 2.029 1.651l.261.018c1.036 0 1.81-.815 1.901-1.082-.096-.182-.762-.634-2.025-.81a6 6 0 0 0-.821-.059c-.812 0-1.243.183-1.345.282m43.605-1.245c.079.564-1.033 2.07-2.484 2.272-1.45.202-2.691-.975-2.771-1.539-.076-.564 1.036-1.187 2.486-1.388 1.45-.203 2.689.092 2.769.655m-2.819 2.56c-1.396 0-2.601-1.086-2.7-1.791-.115-.846 1.278-1.489 2.712-1.688.316-.044.629-.066.93-.066 1.238 0 2.058.363 2.14.949.053.379-.238.964-.739 1.492-.331.347-1.026.948-1.973 1.079zm.943-3.013q-.416 0-.856.061c-1.441.201-2.301.779-2.259 1.089.048.341.968 1.332 2.173 1.332l.297-.021c.787-.109 1.378-.623 1.66-.919.443-.465.619-.903.598-1.052-.028-.198-.56-.49-1.613-.49m3.965 32.843a1.594 1.594 0 0 1-1.324-2.483c3.398-5.075 2.776-10.25 2.175-15.255-.257-2.132-.521-4.337-.453-6.453.07-2.177.347-3.973.614-5.71.317-2.058.617-4.002.493-6.31a1.595 1.595 0 1 1 3.186-.172c.142 2.638-.197 4.838-.525 6.967-.253 1.643-.515 3.342-.578 5.327-.061 1.874.178 3.864.431 5.97.64 5.322 1.365 11.354-2.691 17.411a1.6 1.6 0 0 1-1.328.708"})]}),ctt=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:y.jsx("path",{fill:"#e75225",d:"M63.66 2.477c33.477.007 60.957 27.296 60.914 60.5-.043 33.703-27.41 60.617-61.613 60.593-33.441-.023-60.477-27.343-60.453-61.086C2.53 29.488 30.066 2.47 63.66 2.477m-18.504 21.25c.766 3.777.024 7.3-1.113 10.765-.785 2.399-1.871 4.711-2.52 7.145-1.07 4.008-2.28 8.039-2.726 12.136-.64 5.895 1.676 11.086 5.64 16.25l-18.222-3.835c.031.574 0 .792.062.976 1.727 5.074 4.766 9.348 8.172 13.379.36.426 1.18.644 1.79.644 18.167.036 36.335.032 54.503.008.563 0 1.317-.105 1.66-.468 3.895-4.094 6.871-8.758 8.735-14.63l-19.29 3.778c1.274-2.496 2.723-4.688 3.56-7.098 2.855-8.242 1.671-16.21-2.427-23.726-3.289-6.031-6.324-12.035-4.683-19.305-3.473 3.434-4.809 7.8-5.656 12.3-.832 4.434-1.325 8.93-1.97 13.43-.093-.136-.21-.238-.23-.355a13 13 0 0 1-.168-1.422c-.394-7.367-1.832-14.465-4.87-21.246-1.786-3.988-3.758-8.07-1.915-12.832-1.246.66-2.375 1.313-3.183 2.246-2.41 2.785-3.407 6.13-3.664 9.793-.22 3.13-.52 6.274-1.102 9.352-.61 3.234-1.574 6.402-3.75 9.375-.875-6.348-.973-12.63-6.633-16.66M92 86.75H35.016v9.898H92zm-45.684 15.016c-.046 8.242 8.348 14.382 18.723 13.937 8.602-.371 16.211-7.137 15.559-13.937zm0 0"})}),utt=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:y.jsxs("g",{fill:"#61DAFB",children:[y.jsx("circle",{cx:64,cy:64,r:11.4}),y.jsx("path",{d:"M107.3 45.2c-2.2-.8-4.5-1.6-6.9-2.3.6-2.4 1.1-4.8 1.5-7.1 2.1-13.2-.2-22.5-6.6-26.1-1.9-1.1-4-1.6-6.4-1.6-7 0-15.9 5.2-24.9 13.9-9-8.7-17.9-13.9-24.9-13.9-2.4 0-4.5.5-6.4 1.6-6.4 3.7-8.7 13-6.6 26.1.4 2.3.9 4.7 1.5 7.1-2.4.7-4.7 1.4-6.9 2.3C8.2 50 1.4 56.6 1.4 64s6.9 14 19.3 18.8c2.2.8 4.5 1.6 6.9 2.3-.6 2.4-1.1 4.8-1.5 7.1-2.1 13.2.2 22.5 6.6 26.1 1.9 1.1 4 1.6 6.4 1.6 7.1 0 16-5.2 24.9-13.9 9 8.7 17.9 13.9 24.9 13.9 2.4 0 4.5-.5 6.4-1.6 6.4-3.7 8.7-13 6.6-26.1-.4-2.3-.9-4.7-1.5-7.1 2.4-.7 4.7-1.4 6.9-2.3 12.5-4.8 19.3-11.4 19.3-18.8s-6.8-14-19.3-18.8M92.5 14.7c4.1 2.4 5.5 9.8 3.8 20.3-.3 2.1-.8 4.3-1.4 6.6-5.2-1.2-10.7-2-16.5-2.5-3.4-4.8-6.9-9.1-10.4-13 7.4-7.3 14.9-12.3 21-12.3 1.3 0 2.5.3 3.5.9M81.3 74c-1.8 3.2-3.9 6.4-6.1 9.6-3.7.3-7.4.4-11.2.4-3.9 0-7.6-.1-11.2-.4q-3.3-4.8-6-9.6c-1.9-3.3-3.7-6.7-5.3-10 1.6-3.3 3.4-6.7 5.3-10 1.8-3.2 3.9-6.4 6.1-9.6 3.7-.3 7.4-.4 11.2-.4 3.9 0 7.6.1 11.2.4q3.3 4.8 6 9.6c1.9 3.3 3.7 6.7 5.3 10-1.7 3.3-3.4 6.6-5.3 10m8.3-3.3c1.5 3.5 2.7 6.9 3.8 10.3-3.4.8-7 1.4-10.8 1.9 1.2-1.9 2.5-3.9 3.6-6 1.2-2.1 2.3-4.2 3.4-6.2M64 97.8c-2.4-2.6-4.7-5.4-6.9-8.3 2.3.1 4.6.2 6.9.2s4.6-.1 6.9-.2c-2.2 2.9-4.5 5.7-6.9 8.3m-18.6-15c-3.8-.5-7.4-1.1-10.8-1.9 1.1-3.3 2.3-6.8 3.8-10.3 1.1 2 2.2 4.1 3.4 6.1 1.2 2.2 2.4 4.1 3.6 6.1m-7-25.5c-1.5-3.5-2.7-6.9-3.8-10.3 3.4-.8 7-1.4 10.8-1.9-1.2 1.9-2.5 3.9-3.6 6-1.2 2.1-2.3 4.2-3.4 6.2M64 30.2c2.4 2.6 4.7 5.4 6.9 8.3-2.3-.1-4.6-.2-6.9-.2s-4.6.1-6.9.2c2.2-2.9 4.5-5.7 6.9-8.3m22.2 21-3.6-6c3.8.5 7.4 1.1 10.8 1.9-1.1 3.3-2.3 6.8-3.8 10.3-1.1-2.1-2.2-4.2-3.4-6.2M31.7 35c-1.7-10.5-.3-17.9 3.8-20.3 1-.6 2.2-.9 3.5-.9 6 0 13.5 4.9 21 12.3-3.5 3.8-7 8.2-10.4 13-5.8.5-11.3 1.4-16.5 2.5-.6-2.3-1-4.5-1.4-6.6M7 64c0-4.7 5.7-9.7 15.7-13.4 2-.8 4.2-1.5 6.4-2.1 1.6 5 3.6 10.3 6 15.6-2.4 5.3-4.5 10.5-6 15.5C15.3 75.6 7 69.6 7 64m28.5 49.3c-4.1-2.4-5.5-9.8-3.8-20.3.3-2.1.8-4.3 1.4-6.6 5.2 1.2 10.7 2 16.5 2.5 3.4 4.8 6.9 9.1 10.4 13-7.4 7.3-14.9 12.3-21 12.3-1.3 0-2.5-.3-3.5-.9M96.3 93c1.7 10.5.3 17.9-3.8 20.3-1 .6-2.2.9-3.5.9-6 0-13.5-4.9-21-12.3 3.5-3.8 7-8.2 10.4-13 5.8-.5 11.3-1.4 16.5-2.5.6 2.3 1 4.5 1.4 6.6m9-15.6c-2 .8-4.2 1.5-6.4 2.1-1.6-5-3.6-10.3-6-15.6 2.4-5.3 4.5-10.5 6-15.5 13.8 4 22.1 10 22.1 15.6 0 4.7-5.8 9.7-15.7 13.4"})]})}),dtt=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:[y.jsx("path",{fill:"#A41E11",d:"M121.8 93.1c-6.7 3.5-41.4 17.7-48.8 21.6s-11.5 3.8-17.3 1S13 98.1 6.3 94.9c-3.3-1.6-5-2.9-5-4.2V78s48-10.5 55.8-13.2c7.8-2.8 10.4-2.9 17-.5s46.1 9.5 52.6 11.9v12.5c0 1.3-1.5 2.7-4.9 4.4"}),y.jsx("path",{fill:"#D82C20",d:"M121.8 80.5C115.1 84 80.4 98.2 73 102.1s-11.5 3.8-17.3 1S13 85.4 6.3 82.2C-.3 79-.5 76.8 6 74.3c6.5-2.6 43.2-17 51-19.7 7.8-2.8 10.4-2.9 17-.5s41.1 16.1 47.6 18.5c6.7 2.4 6.9 4.4.2 7.9"}),y.jsx("path",{fill:"#A41E11",d:"M121.8 72.5C115.1 76 80.4 90.2 73 94.1c-7.4 3.8-11.5 3.8-17.3 1S13 77.4 6.3 74.2c-3.3-1.6-5-2.9-5-4.2V57.3s48-10.5 55.8-13.2c7.8-2.8 10.4-2.9 17-.5s46.1 9.5 52.6 11.9V68c0 1.3-1.5 2.7-4.9 4.5"}),y.jsx("path",{fill:"#D82C20",d:"M121.8 59.8c-6.7 3.5-41.4 17.7-48.8 21.6-7.4 3.8-11.5 3.8-17.3 1S13 64.7 6.3 61.5s-6.8-5.4-.3-7.9c6.5-2.6 43.2-17 51-19.7 7.8-2.8 10.4-2.9 17-.5s41.1 16.1 47.6 18.5c6.7 2.4 6.9 4.4.2 7.9"}),y.jsx("path",{fill:"#A41E11",d:"M121.8 51c-6.7 3.5-41.4 17.7-48.8 21.6-7.4 3.8-11.5 3.8-17.3 1C49.9 70.9 13 56 6.3 52.8c-3.3-1.6-5.1-2.9-5.1-4.2V35.9s48-10.5 55.8-13.2c7.8-2.8 10.4-2.9 17-.5s46.1 9.5 52.6 11.9v12.5c.1 1.3-1.4 2.6-4.8 4.4"}),y.jsx("path",{fill:"#D82C20",d:"M121.8 38.3C115.1 41.8 80.4 56 73 59.9c-7.4 3.8-11.5 3.8-17.3 1S13 43.3 6.3 40.1s-6.8-5.4-.3-7.9c6.5-2.6 43.2-17 51-19.7 7.8-2.8 10.4-2.9 17-.5s41.1 16.1 47.6 18.5c6.7 2.4 6.9 4.4.2 7.8"}),y.jsx("path",{fill:"#fff",d:"m80.4 26.1-10.8 1.2-2.5 5.8-3.9-6.5-12.5-1.1 9.3-3.4-2.8-5.2 8.8 3.4 8.2-2.7L72 23zM66.5 54.5l-20.3-8.4 29.1-4.4z"}),y.jsx("ellipse",{cx:38.4,cy:35.4,fill:"#fff",rx:15.5,ry:6}),y.jsx("path",{fill:"#7A0C00",d:"m93.3 27.7 17.2 6.8-17.2 6.8z"}),y.jsx("path",{fill:"#AD2115",d:"m74.3 35.3 19-7.6v13.6l-1.9.8z"})]}),ptt=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:y.jsx("path",{fill:"#e15919",d:"M57.646.004c-2.269.064-4.51 1.143-6.384 3.223-1.03 1.146-1.905 2.51-2.63 3.855-1.89 3.54-2.262 7.547-2.962 11.43l-3.852 21.81c-.148.856-.532 1.21-1.3 1.455l-28.268 8.98c-2.06.673-4.125 1.543-5.947 2.7-5.558 3.53-6.38 9.338-2.207 14.438 1.842 2.256 4.216 3.843 6.85 4.996l17.603 7.843c.147.08.304.132.463.162l3.717 2.682s-3.7 40.948 3.246 43.781c-.061-.01-.41-.082-.41-.082s.704.761 2.603.537c1.454.27 1.262.226.074-.01 2.583-.334 7.337-2.497 15.578-10.784a47 47 0 0 0 1.776-1.676l17.8-19.217 4.163 1.465c.15.207.367.34.714.443l19.823 6.031c2.709.836 5.389 1.448 8.277 1.026 5.156-.755 8.951-5 8.9-10.192-.02-2.28-.82-4.339-1.87-6.324l-13.128-24.898c-.418-.787-.405-1.296.196-2l22.054-25.922c1.428-1.703 2.717-3.529 3.465-5.645 1.643-4.67-.482-8.382-5.33-9.289-2.229-.398-4.427-.188-6.6.385l-31.597 8.395c-.93.25-1.39.075-1.895-.772l-12.9-21.434c-.975-1.615-2.14-3.194-3.477-4.527C62.212.89 59.915-.059 57.646.004m.944 19.736c.51.358.768.727 1.01 1.125l13.88 23.13c.382.628.725.85 1.485.648l24.443-6.497 5.885-1.54c-.087.493-.302.79-.537 1.068l-20.16 23.672c-.57.688-.623 1.17-.194 1.976l12.743 24.16.585 1.237-.015.02-22.727-6.264-.006-.018-4.298-1.205-25.493 28.256 4.663-37.15-4.184-1.82.008-.007-23.674-9.4c.454-.413.86-.585 1.285-.717l28.777-9.096c.676-.21 1.061-.47 1.125-1.242l.403-2.355 3.875-21.807 1.12-6.174z"})}),htt=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:[y.jsx("path",{fill:"#85ea2d",d:"M63.999 124.945c-33.607 0-60.95-27.34-60.95-60.949C3.05 30.388 30.392 3.048 64 3.048s60.95 27.342 60.95 60.95c0 33.607-27.343 60.946-60.95 60.946z"}),y.jsx("path",{fill:"#173647",d:"M40.3 43.311c-.198 2.19.072 4.454-.073 6.668-.173 2.217-.444 4.407-.888 6.596-.615 3.126-2.56 5.489-5.24 7.458 5.218 3.396 5.807 8.662 6.152 14.003.172 2.88.098 5.785.394 8.638.221 2.215 1.082 2.782 3.372 2.854.935.025 1.894 0 2.978 0v6.842c-6.768 1.156-12.354-.762-13.734-6.496a39.3 39.3 0 0 1-.836-6.4c-.148-2.287.097-4.577-.074-6.864-.492-6.277-1.305-8.393-7.308-8.689v-7.8c.441-.1.86-.174 1.302-.223 3.298-.172 4.701-1.182 5.414-4.43a37.5 37.5 0 0 0 .616-5.536c.247-3.569.148-7.21.763-10.754.86-5.094 4.01-7.556 9.254-7.852 1.476-.074 2.978 0 4.676 0v6.99c-.714.05-1.33.147-1.969.147-4.258-.148-4.48 1.304-4.8 4.848zm8.195 16.193h-.099c-2.462-.123-4.578 1.796-4.702 4.258-.122 2.485 1.797 4.603 4.259 4.724h.295c2.436.148 4.527-1.724 4.676-4.16v-.245c.05-2.486-1.944-4.527-4.43-4.577zm15.43 0c-2.386-.074-4.38 1.796-4.454 4.159 0 .149 0 .271.024.418 0 2.684 1.821 4.406 4.578 4.406 2.707 0 4.406-1.772 4.406-4.553-.025-2.682-1.823-4.455-4.554-4.43m15.801 0a4.596 4.596 0 0 0-4.676 4.454 4.515 4.515 0 0 0 4.528 4.528h.05c2.264.394 4.553-1.796 4.701-4.429.122-2.437-2.092-4.553-4.604-4.553Zm21.682.369c-2.855-.123-4.284-1.083-4.996-3.79a27.4 27.4 0 0 1-.811-5.292c-.198-3.298-.174-6.62-.395-9.918-.516-7.826-6.177-10.557-14.397-9.205v6.792c1.304 0 2.313 0 3.322.025 1.748.024 3.077.69 3.249 2.634.172 1.772.172 3.568.344 5.365.346 3.57.542 7.187 1.157 10.706.542 2.904 2.536 5.07 5.02 6.841-4.355 2.929-5.636 7.113-5.857 11.814-.122 3.223-.196 6.472-.368 9.721-.148 2.953-1.181 3.913-4.16 3.987-.835.024-1.648.098-2.583.148v6.964c1.748 0 3.347.1 4.946 0 4.971-.295 7.974-2.706 8.96-7.531.417-2.658.662-5.34.737-8.023.171-2.46.148-4.946.394-7.382.369-3.815 2.116-5.389 5.93-5.636a5 5 0 0 0 1.06-.245v-7.801c-.64-.074-1.084-.148-1.552-.173zM64 6.1c31.977 0 57.9 25.92 57.9 57.898 0 31.977-25.923 57.899-57.9 57.899-31.976 0-57.898-25.922-57.898-57.9C6.102 32.023 32.024 6.101 64 6.101m0-6.1C28.71 0 0 28.71 0 64c0 35.288 28.71 63.998 64 63.998s64-28.71 64-64S99.289.002 64 .002Z"})]});const ftt={"tech:elasticsearch":ett,"tech:git":ttt,"tech:github":rtt,"tech:go":ntt,"tech:grafana":ott,"tech:java":att,"tech:kubernetes":itt,"tech:nginx":ltt,"tech:postgresql":stt,"tech:prometheus":ctt,"tech:react":utt,"tech:redis":dtt,"tech:spark":ptt,"tech:swagger":htt};function mtt(e){const r=ftt[e.node.icon??""];return r?y.jsx(r,e):null}function gtt(e,r,n){let o=a=>e(a,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function Gte(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return gtt(e,r,n);throw Error("Wrong number of arguments")}function ytt(...e){return Gte(btt,e)}function btt(e,r){let n={};for(let[o,a]of Object.entries(e))n[o]=r(a,o,e);return n}function Xte(...e){return Gte(By,e)}function By(e,r){if(e===r||Object.is(e,r))return!0;if(typeof e!="object"||typeof r!="object"||e===null||r===null||Object.getPrototypeOf(e)!==Object.getPrototypeOf(r))return!1;if(Array.isArray(e))return vtt(e,r);if(e instanceof Map)return xtt(e,r);if(e instanceof Set)return wtt(e,r);if(e instanceof Date)return e.getTime()===r.getTime();if(e instanceof RegExp)return e.toString()===r.toString();if(Object.keys(e).length!==Object.keys(r).length)return!1;for(let[n,o]of Object.entries(e))if(!(n in r)||!By(o,r[n]))return!1;return!0}function vtt(e,r){if(e.length!==r.length)return!1;for(let[n,o]of e.entries())if(!By(o,r[n]))return!1;return!0}function xtt(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e.entries())if(!r.has(n)||!By(o,r.get(n)))return!1;return!0}function wtt(e,r){if(e.size!==r.size)return!1;let n=[...r];for(let o of e){let a=!1;for(let[i,l]of n.entries())if(By(o,l)){a=!0,n.splice(i,1);break}if(!a)return!1}return!0}let vl=[],Ru=0;const h4=4;let f4=0,Kte=e=>{let r=[],n={get(){return n.lc||n.listen(()=>{})(),n.value},lc:0,listen(o){return n.lc=r.push(o),()=>{for(let i=Ru+h4;i(e.events=e.events||{},e.events[n+g4]||(e.events[n+g4]=o(a=>{e.events[n].reduceRight((i,l)=>(l(i),i),{shared:{},...a})})),e.events[n]=e.events[n]||[],e.events[n].push(r),()=>{let a=e.events[n],i=a.indexOf(r);a.splice(i,1),a.length||(delete e.events[n],e.events[n+g4](),delete e.events[n+g4])}),Ett=1e3,Stt=(e,r)=>_tt(e,n=>{let o=r(n);o&&e.events[m4].push(o)},ktt,n=>{let o=e.listen;e.listen=(...i)=>(!e.lc&&!e.active&&(e.active=!0,n()),o(...i));let a=e.off;return e.events[m4]=[],e.off=()=>{a(),setTimeout(()=>{if(e.active&&!e.lc){e.active=!1;for(let i of e.events[m4])i();e.events[m4]=[]}},Ett)},()=>{e.listen=o,e.off=a}}),Ctt=(e,r,n)=>{Array.isArray(e)||(e=[e]);let o,a,i=()=>{if(a===f4)return;a=f4;let u=e.map(d=>d.get());if(!o||u.some((d,p)=>d!==o[p])){o=u;let d=r(...u);d&&d.then&&d.t?d.then(p=>{o===u&&l.set(p)}):(l.set(d),a=f4)}},l=Kte(void 0),s=l.get;l.get=()=>(i(),s());let c=i;return Stt(l,()=>{let u=e.map(d=>d.listen(c));return i(),()=>{for(let d of u)d()}}),l},Zte=(e,r)=>Ctt(e,r);function Ttt(e,r,n){let o=new Set(r).add(void 0);return e.listen((a,i,l)=>{o.has(l)&&n(a,i,l)})}let xR=(e,r)=>n=>{e.current!==n&&(e.current=n,r())};function Qte(e,{keys:r,deps:n=[e,r]}={}){let o=E.useRef();o.current=e.get();let a=E.useCallback(l=>(xR(o,l)(e.value),r?.length>0?Ttt(e,r,xR(o,l)):e.listen(xR(o,l))),n),i=()=>o.current;return E.useSyncExternalStore(a,i,i)}const Rtt=e=>{const r=Zte(e,s=>Dd.create(s));function n(s){const c=e.get();if(Xte(c,s))return;const u={...s,views:ytt(s.views,d=>{const p=c.views[d.id];return Xte(p,d)?p:d})};e.set(u)}const o=Zte(e,s=>Object.values(s.views));function a(){return Qte(r)}function i(){return Qte(o)}function l(s){const[c,u]=E.useState(e.value?.views[s]??null);return E.useEffect(()=>e.subscribe(d=>{u(d.views[s]??null)}),[s]),c}return{updateModel:n,$likec4model:r,useLikeC4Model:a,useLikeC4Views:i,useLikeC4View:l}},Att=Kte({_stage:"layouted",projectId:"architecture",project:{id:"architecture",title:"architecture"},specification:{tags:{internal:{color:"tomato"}},elements:{actor:{style:{shape:"person",color:"green"}},component:{style:{}},container:{style:{opacity:20}},internalComponent:{style:{color:"muted",opacity:15}},schema:{style:{}},step:{style:{}},system:{style:{}},workflow:{style:{}}},relationships:{},deployments:{cloud:{style:{}},environment:{style:{}},computeressource:{style:{}},paas:{style:{}},kubernetes:{style:{}},cluster:{style:{}},namespace:{style:{}}},customColors:{}},elements:{edfbuilder_workflow:{style:{},title:"EDFbuilder",kind:"workflow",id:"edfbuilder_workflow"},argocdworkflow:{style:{},title:"EDP ArgoCD Setup Workflow",kind:"workflow",id:"argocdworkflow"},edpworkflow:{style:{},title:"EDP Infrastructure Setup Workflow",kind:"workflow",id:"edpworkflow"},applicationspecification:{style:{},description:{txt:"The application specification describes the application and its components. It is used to generate the application and its components."},title:"application-specification",kind:"component",id:"applicationspecification"},forgejoRunner:{style:{},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},title:"Forgejo Runner",kind:"component",id:"forgejoRunner"},forgejoRunnerWorker:{style:{},description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},title:"Forgejo Runner Worker",kind:"component",id:"forgejoRunnerWorker"},promtail:{style:{},description:{txt:"Log shipper agent for Loki"},title:"Promtail",kind:"component",id:"promtail"},edfbuilder:{style:{shape:"rectangle",icon:"tech:go"},technology:"Golang",description:{txt:"EDP Foundry Builder"},title:"edfbuilder",kind:"component",id:"edfbuilder"},elasticsearch:{style:{opacity:20,icon:"tech:elasticsearch"},technology:"Elasticsearch",description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of +addressing a growing number of use cases. It centrally stores your data so you can +discover the expected and uncover the unexpected.`},title:"Elasticsearch",kind:"container",id:"elasticsearch"},objectstorage:{style:{opacity:20},technology:"S3 Object Storage",description:{txt:"s3 Object Storage"},title:"s3 Object Storage",kind:"container",id:"objectstorage"},postgres:{style:{opacity:20,icon:"tech:postgresql"},technology:"PostgreSQL",description:{txt:`PostgreSQL is a powerful, open source object-relational database system. +It has more than 15 years of active development and a proven architecture +that has earned it a strong reputation for reliability, data integrity, +and correctness.`},title:"PostgreSQL",kind:"container",id:"postgres"},redis:{style:{opacity:20,icon:"tech:redis"},technology:"Redis",description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},title:"Redis",kind:"container",id:"redis"},developer:{style:{shape:"person",color:"green"},description:{txt:"The regular user of the platform"},title:"Developer",kind:"actor",id:"developer"},platformdeveloper:{style:{shape:"person",color:"gray"},description:{txt:"The EDP engineer"},title:"Platform Developer",kind:"actor",id:"platformdeveloper"},otherProductLifecycleRoles:{style:{shape:"person",color:"green"},description:{txt:"Coworking roles in the outer loop"},title:"Reviewer, Tester, Auditors, Operators",kind:"actor",id:"otherProductLifecycleRoles"},customers:{style:{shape:"person",color:"amber"},description:{txt:"Consumers of your Application"},title:"End Customers",kind:"actor",id:"customers"},cloud:{style:{},technology:"IaaS/PaaS",description:{txt:"Cloud environments"},title:"Cloud",kind:"system",id:"cloud"},enterprise:{style:{},description:{txt:"The customers' enterprise systems"},title:"Customers' Enterprise Systems",kind:"system",id:"enterprise"},edf:{style:{icon:"tech:kubernetes"},technology:"Kubernetes",description:{txt:"EDP Foundry is a platform for building and deploying EDPs tenantwise."},title:"EDF",kind:"system",id:"edf"},edp:{style:{icon:"tech:kubernetes"},technology:"Kubernetes",description:{txt:"EDP Edge Development Platform"},title:"EDP",kind:"system",id:"edp"},localbox:{style:{},technology:"Linux/Windows/Mac",description:{txt:"A local development system"},title:"localbox",kind:"system",id:"localbox"},"edfbuilder_workflow.runEDP":{style:{opacity:25},title:"Run edpbuilder script",kind:"step",id:"edfbuilder_workflow.runEDP"},"edfbuilder_workflow.applyEDFBuilder":{style:{opacity:15},title:"Applies EDFbuilder resource (and triggers creation)",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder"},"applicationspecification.application_gitrepo":{style:{icon:"tech:git"},technology:"Git",description:{txt:"Git Application Repository"},title:"Git App Repo",kind:"component",id:"applicationspecification.application_gitrepo"},"applicationspecification.applicationspec_gitrepo":{style:{icon:"tech:git"},technology:"Git",description:{txt:"Git Application Specification Repository"},title:"Git AppSpec Repo",kind:"component",id:"applicationspecification.applicationspec_gitrepo"},"edp.api":{style:{opacity:20,icon:"tech:swagger"},description:{txt:"API for the EDP platform"},title:"API",kind:"container",id:"edp.api"},"edp.argoCD":{style:{opacity:20},description:{txt:"GitOps Service"},title:"ArgoCD",kind:"container",id:"edp.argoCD"},"edp.ui":{style:{opacity:20},description:{txt:"Developer Portal"},title:"Backstage",kind:"container",id:"edp.ui"},"edp.crossplane":{style:{opacity:20},tags:["internal"],description:{txt:"Declarative management of ressources"},title:"Crossplane",kind:"container",id:"edp.crossplane"},"edp.externalSecrets":{style:{opacity:20},tags:["internal"],description:{txt:"Provider to access externally stored Kubernetes secrets"},title:"external-secrets",kind:"container",id:"edp.externalSecrets"},"edp.forgejo":{style:{opacity:20,icon:"tech:go"},technology:"Golang",description:{txt:`Fully managed DevOps Platform +offering capabilities like +code version controling +collaboration and ticketing +and security scanning`},title:"Forgejo",kind:"container",id:"edp.forgejo"},"edp.forgejoActions":{style:{icon:"tech:go"},technology:"Golang",description:{txt:"Continuous Integration like Github Actions"},title:"Forgejo Actions",kind:"component",id:"edp.forgejoActions"},"edp.imageregistry":{style:{icon:"tech:go"},technology:"Golang",description:{txt:"Container Image Registry"},title:"Forgejo OCI Image Registry",kind:"component",id:"edp.imageregistry"},"edp.forgejogit":{style:{icon:"tech:git"},title:"ForgejoGit",kind:"component",id:"edp.forgejogit"},"edp.grafana":{style:{opacity:20,icon:"tech:grafana"},description:{txt:"Data visualization and monitoring"},title:"Grafana",kind:"container",id:"edp.grafana"},"edp.ingressNginx":{style:{opacity:20},tags:["internal"],description:{txt:"Ingress Controller for incoming http(s) traffic"},title:"Ingress",kind:"container",id:"edp.ingressNginx"},"edp.keycloak":{style:{opacity:20},description:{txt:"Single Sign On for all EDP products"},title:"Keycloak",kind:"container",id:"edp.keycloak"},"edp.kyverno":{style:{opacity:20},tags:["internal"],description:{txt:"Policy-as-Code"},title:"Kyverno",kind:"container",id:"edp.kyverno"},"edp.loki":{style:{opacity:20},description:{txt:"Log aggregation system"},title:"Loki",kind:"container",id:"edp.loki"},"edp.mailhog":{style:{opacity:20},description:{txt:"Web and API based SMTP testing"},title:"Mailhog",kind:"container",id:"edp.mailhog"},"edp.minio":{style:{opacity:20},description:{txt:"S3 compatible blob storage"},title:"Minio",kind:"container",id:"edp.minio"},"edp.monitoring":{style:{opacity:20},description:{txt:"Observability system to monitor deployed components"},title:"Monitoring",kind:"container",id:"edp.monitoring"},"edp.openbao":{style:{opacity:20},description:{txt:"Secure secret storage"},title:"OpenBao",kind:"container",id:"edp.openbao"},"edp.prometheus":{style:{opacity:20,icon:"tech:prometheus"},description:{txt:"Monitoring and alerting toolkit"},title:"Prometheus",kind:"container",id:"edp.prometheus"},"edp.spark":{style:{opacity:20},tags:["internal"],description:{txt:"Allows running Spark applications on K8s"},title:"Spark",kind:"container",id:"edp.spark"},"edp.velero":{style:{opacity:20},tags:["internal"],description:{txt:"Backup Kubernetes resources"},title:"Velero",kind:"container",id:"edp.velero"},"cloud.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"cloud.application"},"edp.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"edp.application"},"edp.testApp":{style:{opacity:20},description:{txt:"Testapp to validate deployments"},title:"Fibonacci",kind:"container",id:"edp.testApp"},"localbox.application":{style:{color:"primary"},technology:"DSL",description:{txt:"An application description"},title:"application",kind:"schema",id:"localbox.application"},"localbox.git":{style:{icon:"tech:git"},technology:"Git",description:{txt:"local git"},title:"git",kind:"component",id:"localbox.git"},"edfbuilder_workflow.runEDP.createCrossplaneNS":{style:{},title:"Create Crossplane namespace",kind:"step",id:"edfbuilder_workflow.runEDP.createCrossplaneNS"},"edfbuilder_workflow.runEDP.installCrossplaneHelm":{style:{},title:"Install Crossplane Helm Chart",kind:"step",id:"edfbuilder_workflow.runEDP.installCrossplaneHelm"},"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders":{style:{},title:"Install Crossplane Functions and Providers",kind:"step",id:"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders"},"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders":{style:{},title:"Wait for Crossplane Functions and Providers to become available",kind:"step",id:"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders"},"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount":{style:{},title:"Apply cluster-admin role to crossplane shell provider service account",kind:"step",id:"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount"},"edfbuilder_workflow.runEDP.createArgoCdNS":{style:{},title:"Create ArgoCD namespace",kind:"step",id:"edfbuilder_workflow.runEDP.createArgoCdNS"},"edfbuilder_workflow.runEDP.createGiteaNS":{style:{},title:"Create Gitea namespace",kind:"step",id:"edfbuilder_workflow.runEDP.createGiteaNS"},"edfbuilder_workflow.runEDP.createArgoCdTlsCert":{style:{},title:"Create TLS Cert for Argo",kind:"step",id:"edfbuilder_workflow.runEDP.createArgoCdTlsCert"},"edfbuilder_workflow.runEDP.createGiteaTlsCert":{style:{},title:"Create TLS Cert for Forgejo",kind:"step",id:"edfbuilder_workflow.runEDP.createGiteaTlsCert"},"edfbuilder_workflow.runEDP.createEDFBuilderDefinition":{style:{},title:"Create EDFbuilder crossplane definition (defines API)",kind:"step",id:"edfbuilder_workflow.runEDP.createEDFBuilderDefinition"},"edfbuilder_workflow.runEDP.createEDFBuilderComposition":{style:{},title:"Create EDFbuilder crossplane composition (defines what happens when EDFbuilder is applied)",kind:"step",id:"edfbuilder_workflow.runEDP.createEDFBuilderComposition"},"edfbuilder_workflow.applyEDFBuilder.setEnvVars":{style:{},title:"Set required environment variables",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.setEnvVars"},"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf":{style:{},title:"Make kube.conf write/readbale",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf"},"edfbuilder_workflow.applyEDFBuilder.setWorkDir":{style:{},title:"Set workdir to /tmp/rundir",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.setWorkDir"},"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo":{style:{},title:"Clone steps repo and checkout desired branch",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo"},"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues":{style:{},title:"Hydrate Stacks with values",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues"},"edfbuilder_workflow.applyEDFBuilder.createNamespaces":{style:{},title:"Create all required namespaces",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createNamespaces"},"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass":{style:{},title:"Create Admin Password for Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass"},"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass":{style:{},title:"Create Grafana Admin Password",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass"},"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD":{style:{},title:"Apply ServiceMonitor CRDs for Prometheus",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD"},"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart":{style:{},title:"Git clone ingress-nginx helm chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart"},"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx":{style:{},title:"Install ingress-nginx from cloned chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx"},"edfbuilder_workflow.applyEDFBuilder.waitForIngress":{style:{},title:"Wait till ingress-nginx is ready",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.waitForIngress"},"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm":{style:{},title:"Git clone ArgoCD Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm"},"edfbuilder_workflow.applyEDFBuilder.installArgoCD":{style:{},title:"Install ArgoCD Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installArgoCD"},"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress":{style:{},title:"Install ingress for ArgoCD",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress"},"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart":{style:{},title:"Git clone Forgejo Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart"},"edfbuilder_workflow.applyEDFBuilder.installForgejo":{style:{},title:"Install Forgejo Helm Chart",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installForgejo"},"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress":{style:{},title:"Install ingress for Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress"},"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD":{style:{},title:"Wait till ArgoCD is available",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD"},"edfbuilder_workflow.applyEDFBuilder.waitForForgejo":{style:{},title:"Wait till Forgejo is available",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.waitForForgejo"},"edfbuilder_workflow.applyEDFBuilder.createForgejoUser":{style:{},title:"Create technical user for Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createForgejoUser"},"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo":{style:{},title:"Create repository for EDP state in Forgejo",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo"},"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner":{style:{},title:"Install Forgejo Runner deployment",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner"},"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner":{style:{},title:"Create registration token secret for runner",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner"},"edfbuilder_workflow.applyEDFBuilder.configGitIdentity":{style:{},title:"Configure Git identity",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configGitIdentity"},"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider":{style:{},title:"Configure Crossplane ArgoCD provider",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider"},"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider":{style:{},title:"Configure Crossplane Kind provider",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider"},"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo":{style:{},title:"Git push hydrated stacks to Forgejo isntance",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo"},"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry":{style:{},title:"Configure Docker Registry for Argo Workflows",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry"},"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser":{style:{},title:"Create packages user and token in Forgejo (unused?)",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser"},"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks":{style:{},title:"Apply all selected ArgoCD stacks",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks"},"edfbuilder_workflow.applyEDFBuilder.cleanup":{style:{},title:"Cleanup work folder and unset all env vars",kind:"step",id:"edfbuilder_workflow.applyEDFBuilder.cleanup"},"edp.argoCD.argocdServer":{style:{},title:"ArgoCD Server",kind:"component",id:"edp.argoCD.argocdServer"},"edp.argoCD.argocdAppController":{style:{},title:"ApplicationController",kind:"component",id:"edp.argoCD.argocdAppController"},"edp.argoCD.argocdAppSetController":{style:{},title:"ApplicationSeetController",kind:"component",id:"edp.argoCD.argocdAppSetController"},"edp.argoCD.argocdRedis":{style:{icon:"tech:redis"},technology:"Redis",title:"Redis",kind:"component",id:"edp.argoCD.argocdRedis"},"edp.argoCD.argocdRepoServer":{style:{},title:"Repo Server",kind:"component",id:"edp.argoCD.argocdRepoServer"},"edp.ui.backstage":{style:{icon:"tech:react",shape:"browser"},title:"Backstage",kind:"component",id:"edp.ui.backstage"},"edp.ui.database":{style:{shape:"storage",icon:"tech:postgresql"},technology:"Postgresql",title:"Database",kind:"component",id:"edp.ui.database"},"edp.crossplane.crossplane":{style:{},title:"Crossplane",kind:"component",id:"edp.crossplane.crossplane"},"edp.crossplane.crossplaneFunction":{style:{},title:"Function Patch and Transform",kind:"component",id:"edp.crossplane.crossplaneFunction"},"edp.crossplane.crossplaneRbacManager":{style:{},title:"RBAC Manager",kind:"component",id:"edp.crossplane.crossplaneRbacManager"},"edp.crossplane.providerArgoCD":{style:{},title:"ArgoCD Provider",kind:"component",id:"edp.crossplane.providerArgoCD"},"edp.crossplane.providerKind":{style:{},title:"Kind Provider",kind:"component",id:"edp.crossplane.providerKind"},"edp.crossplane.providerShell":{style:{},title:"Shell Provider",kind:"component",id:"edp.crossplane.providerShell"},"edp.externalSecrets.externalSecrets":{style:{},title:"external-secrets controller",kind:"component",id:"edp.externalSecrets.externalSecrets"},"edp.externalSecrets.certController":{style:{},title:"cert-controller",kind:"component",id:"edp.externalSecrets.certController"},"edp.externalSecrets.webhook":{style:{},title:"webhook",kind:"component",id:"edp.externalSecrets.webhook"},"edp.forgejo.forgejocollaboration":{style:{icon:"tech:github"},title:"Collaboration",kind:"component",id:"edp.forgejo.forgejocollaboration"},"edp.forgejo.forgejoproject":{style:{icon:"tech:github"},title:"Project Mgmt",kind:"component",id:"edp.forgejo.forgejoproject"},"edp.ingressNginx.ingressNginx":{style:{icon:"tech:nginx"},technology:"Nginx",title:"ingress-nginx",kind:"component",id:"edp.ingressNginx.ingressNginx"},"edp.keycloak.keycloak":{style:{icon:"tech:java"},technology:"Java",title:"Keycloak",kind:"component",id:"edp.keycloak.keycloak"},"edp.keycloak.keycloakDB":{style:{shape:"storage",icon:"tech:postgresql"},technology:"Postgresql",title:"Database",kind:"component",id:"edp.keycloak.keycloakDB"},"edp.mailhog.mailhog":{style:{icon:"tech:go"},technology:"Golang",title:"Mailhog",kind:"component",id:"edp.mailhog.mailhog"},"edp.minio.minio":{style:{shape:"storage"},technology:"Minio",title:"S3 Blob Storage",kind:"component",id:"edp.minio.minio"},"edp.monitoring.alloy":{style:{icon:"tech:grafana",multiple:!0},description:{txt:"Open Telemetry Collector"},title:"Alloy",kind:"component",id:"edp.monitoring.alloy"},"edp.monitoring.loki":{style:{opacity:20,icon:"tech:grafana"},description:{txt:"Log aggregation system"},title:"Loki",kind:"container",id:"edp.monitoring.loki"},"edp.openbao.openbao":{style:{shape:"storage"},technology:"Openbao",title:"Openbao",kind:"component",id:"edp.openbao.openbao"},"edp.openbao.agentInjector":{style:{},title:"Agent Injector",kind:"component",id:"edp.openbao.agentInjector"},"edp.spark.sparkoperator":{style:{icon:"tech:spark"},technology:"Spark",title:"Spark Operator",kind:"component",id:"edp.spark.sparkoperator"},"edp.velero.velero":{style:{},title:"Velero",kind:"component",id:"edp.velero.velero"},"edp.testApp.fibonacci":{style:{icon:"tech:go"},technology:"Golang",title:"Fibonacci",kind:"component",id:"edp.testApp.fibonacci"},"edp.monitoring.loki.queryFrontend":{style:{},title:"Query Frontend",kind:"component",id:"edp.monitoring.loki.queryFrontend"},"edp.monitoring.loki.distributor":{style:{},title:"Distributor",kind:"component",id:"edp.monitoring.loki.distributor"},"edp.monitoring.loki.gateway":{style:{},title:"Gateway",kind:"component",id:"edp.monitoring.loki.gateway"},"edp.monitoring.loki.ingestor":{style:{},title:"Ingestor",kind:"component",id:"edp.monitoring.loki.ingestor"},"edp.monitoring.loki.querier":{style:{},title:"Querier",kind:"component",id:"edp.monitoring.loki.querier"}},relations:{zgprrj:{title:"",source:{model:"edfbuilder_workflow.runEDP.createCrossplaneNS"},target:{model:"edfbuilder_workflow.runEDP.installCrossplaneHelm"},id:"zgprrj"},hkqe1q:{title:"",source:{model:"edfbuilder_workflow.runEDP.installCrossplaneHelm"},target:{model:"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders"},id:"hkqe1q"},"7hhs3w":{title:"",source:{model:"edfbuilder_workflow.runEDP.installCrossplaneFunctionsAndProviders"},target:{model:"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders"},id:"7hhs3w"},xjeqlb:{title:"",source:{model:"edfbuilder_workflow.runEDP.waitForCrossplaneFunctionsAndProviders"},target:{model:"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount"},id:"xjeqlb"},"1nhvr49":{title:"",source:{model:"edfbuilder_workflow.runEDP.setupCrossplaneServiceAccount"},target:{model:"edfbuilder_workflow.runEDP.createArgoCdNS"},id:"1nhvr49"},i203to:{title:"",source:{model:"edfbuilder_workflow.runEDP.createArgoCdNS"},target:{model:"edfbuilder_workflow.runEDP.createGiteaNS"},id:"i203to"},"1b9cczp":{title:"",source:{model:"edfbuilder_workflow.runEDP.createGiteaNS"},target:{model:"edfbuilder_workflow.runEDP.createArgoCdTlsCert"},id:"1b9cczp"},i514he:{title:"",source:{model:"edfbuilder_workflow.runEDP.createArgoCdTlsCert"},target:{model:"edfbuilder_workflow.runEDP.createGiteaTlsCert"},id:"i514he"},"13ashxq":{title:"",source:{model:"edfbuilder_workflow.runEDP.createGiteaTlsCert"},target:{model:"edfbuilder_workflow.runEDP.createEDFBuilderDefinition"},id:"13ashxq"},"14kigg4":{title:"",source:{model:"edfbuilder_workflow.runEDP.createEDFBuilderDefinition"},target:{model:"edfbuilder_workflow.runEDP.createEDFBuilderComposition"},id:"14kigg4"},"1y9fees":{title:"",source:{model:"edfbuilder_workflow.runEDP.createEDFBuilderComposition"},target:{model:"edfbuilder_workflow.applyEDFBuilder"},id:"1y9fees"},"1pfgmn3":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.setEnvVars"},target:{model:"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf"},id:"1pfgmn3"},"11gwuq3":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.readWriteKubeConf"},target:{model:"edfbuilder_workflow.applyEDFBuilder.setWorkDir"},id:"11gwuq3"},"1ddvozk":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.setWorkDir"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo"},id:"1ddvozk"},c4bphp:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneStacksRepo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues"},id:"c4bphp"},"22u12c":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.hydrateStacksWithValues"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createNamespaces"},id:"22u12c"},"1veymj5":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createNamespaces"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass"},id:"1veymj5"},"1bx48yr":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createGiteaAdminPass"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass"},id:"1bx48yr"},pbq0ly:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createGrafanaPass"},target:{model:"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD"},id:"pbq0ly"},"1tj029j":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.applyServiceMonitorCRD"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart"},id:"1tj029j"},ukdpc6:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneIngressNginxChart"},target:{model:"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx"},id:"ukdpc6"},tm63b8:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.isntallIngressNginx"},target:{model:"edfbuilder_workflow.applyEDFBuilder.waitForIngress"},id:"tm63b8"},mnqt5q:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.waitForIngress"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm"},id:"mnqt5q"},c3zfur:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneArgoCDHelm"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCD"},id:"c3zfur"},"157ptzn":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCD"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress"},id:"157ptzn"},"8kcuka":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDIngress"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart"},id:"8kcuka"},"5sub2k":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.cloneForgejoHelmChart"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejo"},id:"5sub2k"},z8qrfi:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress"},id:"z8qrfi"},"1dqe9ri":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoIngress"},target:{model:"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD"},id:"1dqe9ri"},"12iu5vk":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.waitForArgoCD"},target:{model:"edfbuilder_workflow.applyEDFBuilder.waitForForgejo"},id:"12iu5vk"},"1xhuuis":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.waitForForgejo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoUser"},id:"1xhuuis"},vhezff:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoUser"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo"},id:"vhezff"},"1dow3tq":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createForgejoRepo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner"},id:"1dow3tq"},"1k46mx8":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installForgejoRunner"},target:{model:"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner"},id:"1k46mx8"},f5bybq:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.registerForgejoRunner"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configGitIdentity"},id:"f5bybq"},"8g1uqn":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configGitIdentity"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider"},id:"8g1uqn"},"9c504z":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneArgoCDProvider"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider"},id:"9c504z"},"19gp6kf":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configCrossplaneKindProvider"},target:{model:"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo"},id:"19gp6kf"},h55zvp:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.uploadStacksToForgjo"},target:{model:"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry"},id:"h55zvp"},"1b7dj03":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.configArgoDockerRegistry"},target:{model:"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser"},id:"1b7dj03"},"1bk65oi":{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.createPackagesForgejoUser"},target:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks"},id:"1bk65oi"},rsncrl:{title:"",source:{model:"edfbuilder_workflow.applyEDFBuilder.installArgoCDStacks"},target:{model:"edfbuilder_workflow.applyEDFBuilder.cleanup"},id:"rsncrl"},"18dtot7":{title:"register",source:{model:"forgejoRunner"},target:{model:"edp.forgejoActions"},id:"18dtot7"},"1oxlsu0":{title:"boots one",source:{model:"edfbuilder"},target:{model:"edf"},id:"1oxlsu0"},s1l7g7:{title:"runs",source:{model:"platformdeveloper"},target:{model:"edfbuilder"},id:"s1l7g7"},yfhhi5:{title:"read/write",source:{model:"edp.argoCD.argocdServer"},target:{model:"edp.argoCD.argocdRedis"},id:"yfhhi5"},iullhy:{title:"read/write",source:{model:"edp.argoCD.argocdRepoServer"},target:{model:"edp.argoCD.argocdRedis"},id:"iullhy"},"10vkxaf":{title:"read/write",source:{model:"edp.argoCD.argocdAppController"},target:{model:"edp.argoCD.argocdRedis"},id:"10vkxaf"},i8z0mi:{title:"read/write",source:{model:"edp.argoCD.argocdAppSetController"},target:{model:"edp.argoCD.argocdRedis"},id:"i8z0mi"},"6mupa0":{title:"Syncs git repo",source:{model:"edp.argoCD.argocdRepoServer"},target:{model:"edp.forgejogit"},id:"6mupa0"},c23sak:{title:"reads/writes",source:{model:"edp.ui.backstage"},target:{model:"edp.ui.database"},id:"c23sak"},"1pbc22f":{title:"runs workflows",source:{model:"edp.forgejoActions"},target:{model:"forgejoRunner"},id:"1pbc22f"},"13uvtiq":{title:"get metrics and alerts",source:{model:"edp.grafana"},target:{model:"edp.prometheus"},id:"13uvtiq"},"1n1utzc":{title:"get logs",source:{model:"edp.grafana"},target:{model:"edp.loki"},id:"1n1utzc"},"123efwn":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.forgejo"},id:"123efwn"},h3rut2:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.keycloak.keycloak"},id:"h3rut2"},"1p30hav":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.openbao.openbao"},id:"1p30hav"},"1yssos5":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.argoCD.argocdServer"},id:"1yssos5"},v8c8aq:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.ui.backstage"},id:"v8c8aq"},fe65w2:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.minio.minio"},id:"fe65w2"},"1jvab2g":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.monitoring.alloy"},id:"1jvab2g"},fs60l7:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.monitoring.loki.queryFrontend"},id:"fs60l7"},"1i5f8um":{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.testApp.fibonacci"},id:"1i5f8um"},ofdedh:{title:"https",source:{model:"edp.ingressNginx.ingressNginx"},target:{model:"edp.mailhog.mailhog"},id:"ofdedh"},"18zxrhs":{title:"reads/writes",source:{model:"edp.keycloak.keycloak"},target:{model:"edp.keycloak.keycloakDB"},id:"18zxrhs"},"11ollyi":{title:"pushes logs",source:{model:"edp.monitoring.alloy"},target:{model:"edp.monitoring.loki.distributor"},id:"11ollyi"},"1mazt1x":{title:"store backups",source:{model:"edp.velero.velero"},target:{model:"edp.minio.minio"},id:"1mazt1x"},"5hkplj":{title:"inner loop development",source:{model:"developer"},target:{model:"localbox"},id:"5hkplj"},"1pp73vj":{title:"outer loop development",source:{model:"developer"},target:{model:"edp"},id:"1pp73vj"},yk9zv2:{title:"manages project",source:{model:"developer"},target:{model:"edp.ui"},id:"yk9zv2"},"12036hb":{title:"manages code",source:{model:"developer"},target:{model:"edp.forgejo"},id:"12036hb"},jpl8ll:{title:"authenticates",source:{model:"developer"},target:{model:"edp.keycloak"},id:"jpl8ll"},"1ghp31l":{title:"manages deployments",source:{model:"developer"},target:{model:"edp.argoCD"},id:"1ghp31l"},"1xiorre":{title:"monitors",source:{model:"developer"},target:{model:"edp.grafana"},id:"1xiorre"},"1woleh6":{title:"create and maintain apps",source:{model:"developer"},target:{model:"edp.ui.backstage"},id:"1woleh6"},"177bm2y":{title:"pushes and pull images",source:{model:"developer"},target:{model:"edp.imageregistry"},id:"177bm2y"},"1l9a3pd":{title:"uses API",source:{model:"developer"},target:{model:"edp.api"},id:"1l9a3pd"},"1uzzn9j":{title:"uses git",source:{model:"developer"},target:{model:"edp.forgejogit"},id:"1uzzn9j"},lb4xas:{title:"act according to responibility",source:{model:"otherProductLifecycleRoles"},target:{model:"edp"},id:"lb4xas"},"1g2ebwc":{title:"uses your app",source:{model:"customers"},target:{model:"cloud"},id:"1g2ebwc"},nc44l9:{title:"app specific dependencies",source:{model:"enterprise"},target:{model:"cloud"},id:"nc44l9"},wsm3kf:{title:"builds many",source:{model:"edf"},target:{model:"edp"},id:"wsm3kf"},v8v12:{title:"develops EDP and EDF",source:{model:"platformdeveloper"},target:{model:"edf"},id:"v8v12"},"615gvx":{title:"integrates",source:{model:"edp"},target:{model:"enterprise"},id:"615gvx"},gerdx4:{title:"deploys and observes",source:{model:"edp"},target:{model:"cloud"},id:"gerdx4"},wvo8i:{title:"",source:{model:"edp"},target:{model:"localbox"},id:"wvo8i"},"1mp9fps":{title:"inner-outer-loop synchronization",source:{model:"localbox"},target:{model:"edp"},id:"1mp9fps"},"1abvxlh":{title:"company integration",source:{model:"localbox"},target:{model:"enterprise"},id:"1abvxlh"}},globals:{predicates:{},dynamicPredicates:{},styles:{text_large:[{targets:[{wildcard:!0}],style:{size:"xl"}}]}},views:{index:{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/kind/kind.c4",description:null,title:"Local Kind Deployment",id:"index",autoLayout:{direction:"TB"},hash:"cf34a295f16e82dd6247cce8320ba2fd47dad7ba",bounds:{x:0,y:0,width:12717,height:1755},nodes:[{id:"local",parent:null,level:0,children:["local.ingressNginx","local.velero","local.crossplane","local.externalSecrets","local.monitoring","local.backstage","local.argocd","local.gitea","local.keycloak","local.openbao","local.fibonacci","local.mailhog","local.minio","local.spark.sparkoperator"],inEdges:[],outEdges:[],deploymentRef:"local",title:"Local kind-cluster",kind:"environment",technology:"Kind",color:"primary",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"Local kind-cluster environment for EDP, typically run by edpbuilder"},tags:[],style:{opacity:15,size:"md"},depth:2,x:1797,y:8,width:10912,height:1102,labelBBox:{x:6,y:0,width:127,height:15}},{id:"otc-faas",parent:null,level:0,children:[],inEdges:[],outEdges:[],deploymentRef:"otc-faas",title:"OTC prototype FaaS",kind:"cloud",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:"OTC environments for Prototype faaS."},tags:[],style:{opacity:15,size:"md"},x:0,y:150,width:320,height:180,labelBBox:{x:30,y:54,width:259,height:67}},{id:"otc-edpFoundry",parent:null,level:0,children:["otc-edpFoundry.forgejoRunnerInfrastructure","otc-edpFoundry.cce","otc-edpFoundry.workflowSetupEDPInfrastructure","otc-edpFoundry.workflowSetupArgoCDInfrastructure"],inEdges:[],outEdges:["r3wxut","1sng0q0","e3benz"],deploymentRef:"otc-edpFoundry",title:"OTC EDP Foundry Central Service clusters",kind:"cloud",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:`OTC environments for the central EDP Foundry services. This is kubernetes clusters and other infrastructure like nodes and vms, and optionally platform services. All is set up by IaC terraform and edpbuilder. + +A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP. +Optionally we will have a WebUI/API/CLI`},tags:[],style:{opacity:15,size:"md"},depth:1,x:385,y:79,width:870,height:981,labelBBox:{x:6,y:0,width:280,height:15}},{id:"local.ingressNginx",parent:"local",level:1,children:["local.ingressNginx.ingressNginx"],inEdges:[],outEdges:["15juth8","p2br4p","o229dq","2vnvvg","4ix58c","1hr2s5j","1nksp5g","m2japo","4drflo","ihlgsc"],deploymentRef:"local.ingressNginx",title:"ingress-nginx",kind:"namespace",color:"primary",shape:"rectangle",modelRef:"edp.ingressNginx.ingressNginx",icon:"tech:nginx",tags:[],style:{opacity:15,size:"md"},depth:1,x:4500,y:97,width:384,height:265,labelBBox:{x:6,y:0,width:92,height:15}},{id:"local.velero",parent:"local",level:1,children:["local.velero.velero"],inEdges:[],outEdges:["3znaik"],deploymentRef:"local.velero",title:"Velero",kind:"namespace",color:"primary",shape:"rectangle",modelRef:"edp.velero.velero",tags:[],style:{opacity:15,size:"md"},depth:1,x:7785,y:97,width:384,height:265,labelBBox:{x:6,y:0,width:49,height:15}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure",parent:"otc-edpFoundry",level:1,children:[],inEdges:[],outEdges:["109g3jm"],deploymentRef:"otc-edpFoundry.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},x:450,y:150,width:342,height:180,labelBBox:{x:18,y:54,width:306,height:66}},{id:"local.crossplane",parent:"local",level:1,children:["local.crossplane.crossplane","local.crossplane.crossplaneFunction","local.crossplane.crossplaneRbacManager","local.crossplane.providerArgoCD","local.crossplane.providerKind","local.crossplane.providerShell"],inEdges:[],outEdges:[],deploymentRef:"local.crossplane",title:"crossplane-system",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:8219,y:79,width:2670,height:301,labelBBox:{x:6,y:0,width:129,height:15}},{id:"local.crossplane.crossplane",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Crossplane",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.crossplane",modelRef:"edp.crossplane.crossplane",x:8269,y:150,width:320,height:180,labelBBox:{x:107,y:74,width:105,height:24}},{id:"local.crossplane.crossplaneFunction",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Function Patch and Transform",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.crossplaneFunction",modelRef:"edp.crossplane.crossplaneFunction",x:8719,y:150,width:320,height:180,labelBBox:{x:24,y:74,width:273,height:24}},{id:"local.crossplane.crossplaneRbacManager",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"RBAC Manager",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.crossplaneRbacManager",modelRef:"edp.crossplane.crossplaneRbacManager",x:9169,y:150,width:320,height:180,labelBBox:{x:88,y:74,width:144,height:24}},{id:"local.crossplane.providerArgoCD",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"ArgoCD Provider",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.providerArgoCD",modelRef:"edp.crossplane.providerArgoCD",x:9619,y:150,width:320,height:180,labelBBox:{x:82,y:74,width:155,height:24}},{id:"local.crossplane.providerKind",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Kind Provider",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.providerKind",modelRef:"edp.crossplane.providerKind",x:10069,y:150,width:320,height:180,labelBBox:{x:98,y:74,width:124,height:24}},{id:"local.crossplane.providerShell",parent:"local.crossplane",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Shell Provider",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.crossplane.providerShell",modelRef:"edp.crossplane.providerShell",x:10519,y:150,width:320,height:180,labelBBox:{x:96,y:74,width:129,height:24}},{id:"local.externalSecrets",parent:"local",level:1,children:["local.externalSecrets.certController","local.externalSecrets.externalSecrets","local.externalSecrets.webhook"],inEdges:[],outEdges:[],deploymentRef:"local.externalSecrets",title:"external-secrets",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:10939,y:79,width:1320,height:301,labelBBox:{x:6,y:0,width:119,height:15}},{id:"local.externalSecrets.certController",parent:"local.externalSecrets",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"cert-controller",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.externalSecrets.certController",modelRef:"edp.externalSecrets.certController",x:10989,y:150,width:320,height:180,labelBBox:{x:97,y:74,width:126,height:24}},{id:"local.externalSecrets.externalSecrets",parent:"local.externalSecrets",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"external-secrets controller",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.externalSecrets.externalSecrets",modelRef:"edp.externalSecrets.externalSecrets",x:11439,y:150,width:320,height:180,labelBBox:{x:43,y:74,width:234,height:24}},{id:"local.externalSecrets.webhook",parent:"local.externalSecrets",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"webhook",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.externalSecrets.webhook",modelRef:"edp.externalSecrets.webhook",x:11889,y:150,width:320,height:180,labelBBox:{x:118,y:74,width:84,height:24}},{id:"local.monitoring",parent:"local",level:1,children:["local.monitoring.gateway","local.monitoring.ingestor","local.monitoring.querier","local.monitoring.alloy","local.monitoring.queryFrontend","local.monitoring.distributor"],inEdges:["1hr2s5j","1nksp5g"],outEdges:[],deploymentRef:"local.monitoring",title:"monitoring",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:2317,y:79,width:1320,height:981,labelBBox:{x:6,y:0,width:75,height:15}},{id:"local.monitoring.gateway",parent:"local.monitoring",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Gateway",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.monitoring.gateway",modelRef:"edp.monitoring.loki.gateway",x:2367,y:150,width:320,height:180,labelBBox:{x:119,y:74,width:83,height:24}},{id:"local.monitoring.ingestor",parent:"local.monitoring",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Ingestor",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.monitoring.ingestor",modelRef:"edp.monitoring.loki.ingestor",x:2817,y:150,width:320,height:180,labelBBox:{x:122,y:74,width:76,height:24}},{id:"local.monitoring.querier",parent:"local.monitoring",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Querier",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.monitoring.querier",modelRef:"edp.monitoring.loki.querier",x:3267,y:150,width:320,height:180,labelBBox:{x:125,y:74,width:71,height:24}},{id:"local.ingressNginx.ingressNginx",parent:"local.ingressNginx",level:2,children:[],inEdges:[],outEdges:["15juth8","p2br4p","o229dq","2vnvvg","4ix58c","1hr2s5j","1nksp5g","m2japo","4drflo","ihlgsc"],kind:"instance",title:"ingress-nginx",technology:"Nginx",tags:[],icon:"tech:nginx",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.ingressNginx.ingressNginx",modelRef:"edp.ingressNginx.ingressNginx",x:4532,y:150,width:320,height:180,labelBBox:{x:85,y:65,width:181,height:45}},{id:"local.velero.velero",parent:"local.velero",level:2,children:[],inEdges:[],outEdges:["3znaik"],kind:"instance",title:"Velero",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.velero.velero",modelRef:"edp.velero.velero",x:7817,y:150,width:320,height:180,labelBBox:{x:129,y:74,width:62,height:24}},{id:"otc-edpFoundry.cce",parent:"otc-edpFoundry",level:1,children:[],inEdges:["109g3jm"],outEdges:["llfvob","fil3na"],deploymentRef:"otc-edpFoundry.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"primary",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},x:457,y:497,width:327,height:180,labelBBox:{x:46,y:54,width:266,height:67}},{id:"local.backstage",parent:"local",level:1,children:["local.backstage.backstage","local.backstage.database"],inEdges:["15juth8"],outEdges:[],deploymentRef:"local.backstage",title:"backstage",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:4571,y:426,width:420,height:634,labelBBox:{x:6,y:0,width:74,height:15}},{id:"local.argocd",parent:"local",level:1,children:["local.argocd.argocdAppController","local.argocd.argocdAppSetController","local.argocd.argocdRepoServer","local.argocd.argocdServer","local.argocd.argocdRedis"],inEdges:["p2br4p"],outEdges:[],deploymentRef:"local.argocd",title:"argocd",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:5041,y:426,width:1770,height:634,labelBBox:{x:6,y:0,width:53,height:15}},{id:"local.gitea",parent:"local",level:1,children:["local.gitea.forgejo"],inEdges:["o229dq"],outEdges:[],deploymentRef:"local.gitea",title:"gitea",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:6861,y:444,width:404,height:265,labelBBox:{x:6,y:0,width:38,height:15}},{id:"local.keycloak",parent:"local",level:1,children:["local.keycloak.keycloak","local.keycloak.keycloakDB"],inEdges:["2vnvvg"],outEdges:[],deploymentRef:"local.keycloak",title:"keycloak",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:1847,y:426,width:420,height:634,labelBBox:{x:6,y:0,width:66,height:15}},{id:"local.openbao",parent:"local",level:1,children:["local.openbao.openbao","local.openbao.agentInjector"],inEdges:["m2japo"],outEdges:[],deploymentRef:"local.openbao",title:"openbao",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:7315,y:79,width:420,height:648,labelBBox:{x:6,y:0,width:60,height:15}},{id:"local.fibonacci",parent:"local",level:1,children:["local.fibonacci.fibonacci"],inEdges:["4drflo"],outEdges:[],deploymentRef:"local.fibonacci",title:"fibonacci-app",kind:"namespace",color:"primary",shape:"rectangle",modelRef:"edp.testApp.fibonacci",icon:"tech:go",tags:[],style:{opacity:15,size:"md"},depth:1,x:3687,y:444,width:384,height:265,labelBBox:{x:6,y:0,width:91,height:15}},{id:"local.mailhog",parent:"local",level:1,children:["local.mailhog.mailhog"],inEdges:["ihlgsc"],outEdges:[],deploymentRef:"local.mailhog",title:"Mailhog",kind:"namespace",color:"primary",shape:"rectangle",modelRef:"edp.mailhog.mailhog",icon:"tech:go",tags:[],style:{opacity:15,size:"md"},depth:1,x:4137,y:444,width:384,height:265,labelBBox:{x:6,y:0,width:56,height:15}},{id:"local.minio",parent:"local",level:1,children:["local.minio.minio"],inEdges:["3znaik","4ix58c"],outEdges:[],deploymentRef:"local.minio",title:"minio-backup",kind:"namespace",color:"primary",shape:"storage",modelRef:"edp.minio.minio",tags:[],style:{opacity:15,size:"md"},depth:1,x:7785,y:444,width:384,height:265,labelBBox:{x:6,y:0,width:86,height:15}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure",parent:"otc-edpFoundry",level:1,children:[],inEdges:["llfvob"],outEdges:["r3wxut","e3benz"],deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure",title:"EDP infrastructure Workflow",kind:"computeressource",color:"primary",shape:"rectangle",description:{txt:"EDP infrastructure Workflow"},tags:[],style:{opacity:15,size:"md"},x:435,y:830,width:320,height:180,labelBBox:{x:32,y:63,width:255,height:48}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",parent:"otc-edpFoundry",level:1,children:[],inEdges:["fil3na"],outEdges:["1sng0q0"],deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",title:"EDP ArgoCD Workflow",kind:"computeressource",color:"primary",shape:"rectangle",description:{txt:"EDP Setup ArgoCD Workflow"},tags:[],style:{opacity:15,size:"md"},x:885,y:830,width:320,height:180,labelBBox:{x:55,y:63,width:210,height:48}},{id:"local.backstage.backstage",parent:"local.backstage",level:2,children:[],inEdges:["15juth8"],outEdges:["19kg5y"],kind:"instance",title:"Backstage",tags:[],icon:"tech:react",color:"primary",shape:"browser",style:{opacity:15,size:"md"},deploymentRef:"local.backstage.backstage",modelRef:"edp.ui.backstage",x:4621,y:497,width:320,height:180,labelBBox:{x:97,y:74,width:156,height:24}},{id:"local.argocd.argocdAppController",parent:"local.argocd",level:2,children:[],inEdges:[],outEdges:["1gfgfhk"],kind:"instance",title:"ApplicationController",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.argocd.argocdAppController",modelRef:"edp.argoCD.argocdAppController",x:5091,y:497,width:320,height:180,labelBBox:{x:66,y:74,width:189,height:24}},{id:"local.argocd.argocdAppSetController",parent:"local.argocd",level:2,children:[],inEdges:[],outEdges:["qfu5xm"],kind:"instance",title:"ApplicationSeetController",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.argocd.argocdAppSetController",modelRef:"edp.argoCD.argocdAppSetController",x:5541,y:497,width:320,height:180,labelBBox:{x:45,y:74,width:230,height:24}},{id:"local.argocd.argocdRepoServer",parent:"local.argocd",level:2,children:[],inEdges:[],outEdges:["g7xnzs"],kind:"instance",title:"Repo Server",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.argocd.argocdRepoServer",modelRef:"edp.argoCD.argocdRepoServer",x:5991,y:497,width:320,height:180,labelBBox:{x:102,y:74,width:116,height:24}},{id:"local.argocd.argocdServer",parent:"local.argocd",level:2,children:[],inEdges:["p2br4p"],outEdges:["fon3rk"],kind:"instance",title:"ArgoCD Server",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.argocd.argocdServer",modelRef:"edp.argoCD.argocdServer",x:6441,y:497,width:320,height:180,labelBBox:{x:90,y:74,width:140,height:24}},{id:"local.gitea.forgejo",parent:"local.gitea",level:2,children:[],inEdges:["o229dq"],outEdges:[],kind:"instance",title:"Forgejo",description:{txt:`Fully managed DevOps Platform +offering capabilities like +code version controling +collaboration and ticketing +and security scanning`},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"local.gitea.forgejo",modelRef:"edp.forgejo",navigateTo:"forgejo",x:6893,y:497,width:340,height:180,labelBBox:{x:46,y:18,width:278,height:139}},{id:"local.keycloak.keycloak",parent:"local.keycloak",level:2,children:[],inEdges:["2vnvvg"],outEdges:["4zwy1m"],kind:"instance",title:"Keycloak",technology:"Java",tags:[],icon:"tech:java",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.keycloak.keycloak",modelRef:"edp.keycloak.keycloak",x:1897,y:497,width:320,height:180,labelBBox:{x:104,y:65,width:143,height:45}},{id:"local.monitoring.alloy",parent:"local.monitoring",level:2,children:[],inEdges:["1hr2s5j"],outEdges:["sb2j38"],kind:"instance",title:"Alloy",description:{txt:"Open Telemetry Collector"},tags:[],icon:"tech:grafana",color:"primary",shape:"rectangle",style:{opacity:15,size:"md",multiple:!0},deploymentRef:"local.monitoring.alloy",modelRef:"edp.monitoring.alloy",x:3267,y:497,width:320,height:180,labelBBox:{x:59,y:63,width:233,height:48}},{id:"local.monitoring.queryFrontend",parent:"local.monitoring",level:2,children:[],inEdges:["1nksp5g"],outEdges:[],kind:"instance",title:"Query Frontend",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.monitoring.queryFrontend",modelRef:"edp.monitoring.loki.queryFrontend",x:2817,y:497,width:320,height:180,labelBBox:{x:88,y:74,width:144,height:24}},{id:"local.openbao.openbao",parent:"local.openbao",level:2,children:[],inEdges:["m2japo"],outEdges:[],kind:"instance",title:"Openbao",technology:"Openbao",tags:[],color:"primary",shape:"storage",style:{opacity:15,size:"md"},deploymentRef:"local.openbao.openbao",modelRef:"edp.openbao.openbao",x:7365,y:497,width:320,height:180,labelBBox:{x:117,y:65,width:86,height:45}},{id:"local.openbao.agentInjector",parent:"local.openbao",level:2,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Agent Injector",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.openbao.agentInjector",modelRef:"edp.openbao.agentInjector",x:7365,y:150,width:320,height:180,labelBBox:{x:96,y:74,width:127,height:24}},{id:"local.fibonacci.fibonacci",parent:"local.fibonacci",level:2,children:[],inEdges:["4drflo"],outEdges:[],kind:"instance",title:"Fibonacci",technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.fibonacci.fibonacci",modelRef:"edp.testApp.fibonacci",x:3719,y:497,width:320,height:180,labelBBox:{x:101,y:65,width:148,height:45}},{id:"local.mailhog.mailhog",parent:"local.mailhog",level:2,children:[],inEdges:["ihlgsc"],outEdges:[],kind:"instance",title:"Mailhog",technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.mailhog.mailhog",modelRef:"edp.mailhog.mailhog",x:4169,y:497,width:320,height:180,labelBBox:{x:109,y:65,width:132,height:45}},{id:"local.minio.minio",parent:"local.minio",level:2,children:[],inEdges:["3znaik","4ix58c"],outEdges:[],kind:"instance",title:"S3 Blob Storage",technology:"Minio",tags:[],color:"primary",shape:"storage",style:{opacity:15,size:"md"},deploymentRef:"local.minio.minio",modelRef:"edp.minio.minio",x:7817,y:497,width:320,height:180,labelBBox:{x:85,y:65,width:150,height:45}},{id:"otc-edp-per-tenant",parent:null,level:0,children:["otc-edp-per-tenant.forgejoRunnerInfrastructure","otc-edp-per-tenant.cce","otc-edp-per-tenant.cloudServices"],inEdges:["r3wxut","1sng0q0","e3benz"],outEdges:[],deploymentRef:"otc-edp-per-tenant",title:"OTC EDP per tenant cluster",kind:"cloud",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:`OTC environment for EDP. EDP is the environment a customer gets from us. + + This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry.`},tags:[],style:{opacity:15,size:"md"},depth:1,x:1305,y:79,width:442,height:1668,labelBBox:{x:6,y:0,width:181,height:15}},{id:"local.backstage.database",parent:"local.backstage",level:2,children:[],inEdges:["19kg5y"],outEdges:[],kind:"instance",title:"Database",technology:"Postgresql",tags:[],icon:"tech:postgresql",color:"primary",shape:"storage",style:{opacity:15,size:"md"},deploymentRef:"local.backstage.database",modelRef:"edp.ui.database",x:4621,y:830,width:320,height:180,labelBBox:{x:101,y:64,width:148,height:46}},{id:"local.argocd.argocdRedis",parent:"local.argocd",level:2,children:[],inEdges:["1gfgfhk","qfu5xm","g7xnzs","fon3rk"],outEdges:[],kind:"instance",title:"Redis",technology:"Redis",tags:[],icon:"tech:redis",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.argocd.argocdRedis",modelRef:"edp.argoCD.argocdRedis",x:6216,y:830,width:320,height:180,labelBBox:{x:119,y:64,width:113,height:46}},{id:"local.keycloak.keycloakDB",parent:"local.keycloak",level:2,children:[],inEdges:["4zwy1m"],outEdges:[],kind:"instance",title:"Database",technology:"Postgresql",tags:[],icon:"tech:postgresql",color:"primary",shape:"storage",style:{opacity:15,size:"md"},deploymentRef:"local.keycloak.keycloakDB",modelRef:"edp.keycloak.keycloakDB",x:1897,y:830,width:320,height:180,labelBBox:{x:101,y:64,width:148,height:46}},{id:"local.monitoring.distributor",parent:"local.monitoring",level:2,children:[],inEdges:["sb2j38"],outEdges:[],kind:"instance",title:"Distributor",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.monitoring.distributor",modelRef:"edp.monitoring.loki.distributor",x:3267,y:830,width:320,height:180,labelBBox:{x:112,y:74,width:95,height:24}},{id:"otc-edp-per-tenant.forgejoRunnerInfrastructure",parent:"otc-edp-per-tenant",level:1,children:[],inEdges:[],outEdges:["fkkf8y"],deploymentRef:"otc-edp-per-tenant.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},x:1355,y:150,width:342,height:180,labelBBox:{x:18,y:54,width:306,height:66}},{id:"otc-edp-per-tenant.cce",parent:"otc-edp-per-tenant",level:1,children:[],inEdges:["fkkf8y","r3wxut","1sng0q0"],outEdges:["pit45i"],deploymentRef:"otc-edp-per-tenant.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"primary",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},x:1358,y:1206,width:327,height:180,labelBBox:{x:46,y:53,width:266,height:67}},{id:"otc-edp-per-tenant.cloudServices",parent:"otc-edp-per-tenant",level:1,children:[],inEdges:["pit45i","e3benz"],outEdges:[],deploymentRef:"otc-edp-per-tenant.cloudServices",title:"EDP Cloud Services",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",description:{txt:"EDP Cloud Services"},tags:[],style:{opacity:15,size:"md"},x:1362,y:1517,width:320,height:180,labelBBox:{x:67,y:53,width:185,height:67}},{id:"local.spark.sparkoperator",parent:"local",level:1,children:[],inEdges:[],outEdges:[],kind:"instance",title:"Spark Operator",technology:"Spark",tags:[],icon:"tech:spark",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"local.spark.sparkoperator",modelRef:"edp.spark.sparkoperator",x:12339,y:150,width:320,height:180,labelBBox:{x:76,y:65,width:198,height:45}}],edges:[{id:"pit45i",source:"otc-edp-per-tenant.cce",target:"otc-edp-per-tenant.cloudServices",label:null,dotpos:"e,1522,1517.1 1522,1386 1522,1423.8 1522,1468 1522,1506.9",points:[[1522,1386],[1522,1424],[1522,1468],[1522,1507]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["1fzhjm9","15njmlz","hks76r","1w18ve8"],color:"gray",line:"dashed",head:"normal"},{id:"fkkf8y",source:"otc-edp-per-tenant.forgejoRunnerInfrastructure",target:"otc-edp-per-tenant.cce",label:"registers",dotpos:"e,1522.4,1206.3 1525.7,330.32 1524.9,525.74 1523.2,991.45 1522.4,1195.9",points:[[1526,330],[1525,526],[1523,991],[1522,1196]],labelBBox:{x:1525,y:742,width:58,height:18},parent:"otc-edp-per-tenant",relations:["g9oj4f"],color:"gray",line:"dashed",head:"normal"},{id:"r3wxut",source:"otc-edpFoundry.workflowSetupEDPInfrastructure",target:"otc-edp-per-tenant.cce",label:"deploys edp to otc.cce",dotpos:"e,1358.4,1241.5 676.85,1010.2 716.36,1047.4 766.71,1087.3 820.02,1110.2 848.79,1122.6 859.29,1112.2 890.02,1118.2 1047.4,1149 1222.7,1199.3 1348.7,1238.5",points:[[677,1010],[716,1047],[767,1087],[820,1110],[849,1123],[859,1112],[890,1118],[1047,1149],[1223,1199],[1349,1238]],labelBBox:{x:996,y:1118,width:143,height:18},parent:null,relations:["uk77s5"],color:"gray",line:"dashed",head:"normal"},{id:"1sng0q0",source:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",target:"otc-edp-per-tenant.cce",label:null,dotpos:"e,1399.5,1206.1 1149.9,1010.1 1188.3,1042.1 1232.3,1078.2 1273,1110.2 1311,1140 1352.9,1171.6 1391.3,1200",points:[[1150,1010],[1188,1042],[1232,1078],[1273,1110],[1311,1140],[1353,1172],[1391,1200]],labelBBox:null,parent:null,relations:["jde35l"],color:"gray",line:"dashed",head:"normal"},{id:"e3benz",source:"otc-edpFoundry.workflowSetupEDPInfrastructure",target:"otc-edp-per-tenant.cloudServices",label:"deploys edp to otc.paas",dotpos:"e,1362.4,1523 687.94,1010 792.92,1108 971.11,1267.5 1139.1,1386 1206.6,1433.6 1285,1480 1353.3,1517.9",points:[[688,1010],[793,1108],[971,1268],[1139,1386],[1207,1434],[1285,1480],[1353,1518]],labelBBox:{x:1140,y:1284,width:152,height:18},parent:null,relations:["1pfc6bl"],color:"gray",line:"dashed",head:"normal"},{id:"llfvob",source:"otc-edpFoundry.cce",target:"otc-edpFoundry.workflowSetupEDPInfrastructure",label:"invokes",dotpos:"e,602.01,830.31 614.05,677.05 610.59,721.08 606.4,774.44 602.83,819.85",points:[[614,677],[611,721],[606,774],[603,820]],labelBBox:{x:610,y:742,width:51,height:18},parent:"otc-edpFoundry",relations:["dola40"],color:"gray",line:"dashed",head:"normal"},{id:"fil3na",source:"otc-edpFoundry.cce",target:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",label:"invokes",dotpos:"e,931.23,830.42 734.92,677.27 793.02,722.59 863.73,777.76 922.95,823.96",points:[[735,677],[793,723],[864,778],[923,824]],labelBBox:{x:847,y:742,width:51,height:18},parent:"otc-edpFoundry",relations:["1f5y9gc"],color:"gray",line:"dashed",head:"normal"},{id:"109g3jm",source:"otc-edpFoundry.forgejoRunnerInfrastructure",target:"otc-edpFoundry.cce",label:"registers",dotpos:"e,621.02,497.56 621.02,330.25 621.02,378.24 621.02,437.64 621.02,487.15",points:[[621,330],[621,378],[621,438],[621,487]],labelBBox:{x:622,y:395,width:58,height:18},parent:"otc-edpFoundry",relations:["1umzqdy"],color:"gray",line:"dashed",head:"normal"},{id:"19kg5y",source:"local.backstage.backstage",target:"local.backstage.database",label:"reads/writes",dotpos:"e,4781,829.44 4781,677.05 4781,720.81 4781,773.79 4781,819.02",points:[[4781,677],[4781,721],[4781,774],[4781,819]],labelBBox:{x:4782,y:742,width:79,height:18},parent:"local.backstage",relations:["c23sak"],color:"gray",line:"dashed",head:"normal"},{id:"1gfgfhk",source:"local.argocd.argocdAppController",target:"local.argocd.argocdRedis",label:"read/write",dotpos:"e,6216.3,901.97 5378.2,677.38 5409.1,696.06 5442.9,714.1 5476,727.4 5719.6,825.15 6021.1,876.43 6206,900.62",points:[[5378,677],[5409,696],[5443,714],[5476,727],[5720,825],[6021,876],[6206,901]],labelBBox:{x:5570,y:742,width:65,height:18},parent:"local.argocd",relations:["10vkxaf"],color:"gray",line:"dashed",head:"normal"},{id:"qfu5xm",source:"local.argocd.argocdAppSetController",target:"local.argocd.argocdRedis",label:"read/write",dotpos:"e,6216.1,857.88 5837.8,677.39 5866.5,694.78 5896.9,712.29 5926,727.4 6016.5,774.29 6121,819.37 6206.6,854.03",points:[[5838,677],[5866,695],[5897,712],[5926,727],[6017,774],[6121,819],[6207,854]],labelBBox:{x:5999,y:742,width:65,height:18},parent:"local.argocd",relations:["i8z0mi"],color:"gray",line:"dashed",head:"normal"},{id:"g7xnzs",source:"local.argocd.argocdRepoServer",target:"local.argocd.argocdRedis",label:"read/write",dotpos:"e,6315.6,830.31 6211.3,677.05 6241.7,721.73 6278.6,776.01 6309.8,821.85",points:[[6211,677],[6242,722],[6279,776],[6310,822]],labelBBox:{x:6271,y:742,width:65,height:18},parent:"local.argocd",relations:["iullhy"],color:"gray",line:"dashed",head:"normal"},{id:"fon3rk",source:"local.argocd.argocdServer",target:"local.argocd.argocdRedis",label:"read/write",dotpos:"e,6436.5,830.31 6540.7,677.05 6510.3,721.73 6473.4,776.01 6442.2,821.85",points:[[6541,677],[6510,722],[6473,776],[6442,822]],labelBBox:{x:6496,y:742,width:65,height:18},parent:"local.argocd",relations:["yfhhi5"],color:"gray",line:"dashed",head:"normal"},{id:"4zwy1m",source:"local.keycloak.keycloak",target:"local.keycloak.keycloakDB",label:"reads/writes",dotpos:"e,2057,829.44 2057,677.05 2057,720.81 2057,773.79 2057,819.02",points:[[2057,677],[2057,721],[2057,774],[2057,819]],labelBBox:{x:2058,y:742,width:79,height:18},parent:"local.keycloak",relations:["18zxrhs"],color:"gray",line:"dashed",head:"normal"},{id:"sb2j38",source:"local.monitoring.alloy",target:"local.monitoring.distributor",label:"pushes logs",dotpos:"e,3427,830.31 3427,677.05 3427,721.08 3427,774.44 3427,819.85",points:[[3427,677],[3427,721],[3427,774],[3427,820]],labelBBox:{x:3428,y:742,width:79,height:18},parent:"local.monitoring",relations:["11ollyi"],color:"gray",line:"dashed",head:"normal"},{id:"15juth8",source:"local.ingressNginx.ingressNginx",target:"local.backstage.backstage",label:"https",dotpos:"e,4758.1,497.56 4714.9,330.25 4727.3,378.34 4742.7,437.89 4755.5,487.46",points:[[4715,330],[4727,378],[4743,438],[4756,487]],labelBBox:{x:4738,y:395,width:34,height:18},parent:"local",relations:["v8c8aq"],color:"gray",line:"dashed",head:"normal"},{id:"p2br4p",source:"local.ingressNginx.ingressNginx",target:"local.argocd.argocdServer",label:"https",dotpos:"e,6499.6,497.57 4851.9,248.67 5216.5,266.89 6099.4,320.8 6376,426.2 6416.6,441.65 6456.6,466.2 6491.3,491.48",points:[[4852,249],[5216,267],[6099,321],[6376,426],[6417,442],[6457,466],[6491,491]],labelBBox:{x:6330,y:395,width:34,height:18},parent:"local",relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"o229dq",source:"local.ingressNginx.ingressNginx",target:"local.gitea.forgejo",label:"https",dotpos:"e,6965.2,497.59 4852,244.07 5286.1,253.04 6477.9,289.78 6843,426.2 6883.4,441.28 6922.9,465.94 6957.1,491.45",points:[[4852,244],[5286,253],[6478,290],[6843,426],[6883,441],[6923,466],[6957,491]],labelBBox:{x:6816,y:395,width:34,height:18},parent:"local",relations:["123efwn"],color:"gray",line:"dashed",head:"normal"},{id:"2vnvvg",source:"local.ingressNginx.ingressNginx",target:"local.keycloak.keycloak",label:"https",dotpos:"e,2155.6,497.46 4532.3,279.97 4343.6,323.42 4019.7,391.47 3737,418.2 3696.9,422 2323.4,413.93 2285,426.2 2241.9,439.98 2199.8,465.12 2163.7,491.47",points:[[4532,280],[4344,323],[4020,391],[3737,418],[3697,422],[2323,414],[2285,426],[2242,440],[2200,465],[2164,491]],labelBBox:{x:3922,y:395,width:34,height:18},parent:"local",relations:["h3rut2"],color:"gray",line:"dashed",head:"normal"},{id:"3znaik",source:"local.velero.velero",target:"local.minio.minio",label:"store backups",dotpos:"e,7977,496.66 7977,330.25 7977,377.96 7977,436.95 7977,486.28",points:[[7977,330],[7977,378],[7977,437],[7977,486]],labelBBox:{x:7978,y:395,width:91,height:18},parent:"local",relations:["1mazt1x"],color:"gray",line:"dashed",head:"normal"},{id:"4ix58c",source:"local.ingressNginx.ingressNginx",target:"local.minio.minio",label:"https",dotpos:"e,7884.4,496.97 4851.9,249.75 5473.5,282.35 7698,400.56 7767,426.2 7806.1,440.71 7843.8,465.08 7876.3,490.49",points:[[4852,250],[5474,282],[7698,401],[7767,426],[7806,441],[7844,465],[7876,490]],labelBBox:{x:7696,y:395,width:34,height:18},parent:"local",relations:["fe65w2"],color:"gray",line:"dashed",head:"normal"},{id:"1hr2s5j",source:"local.ingressNginx.ingressNginx",target:"local.monitoring.alloy",label:"https",dotpos:"e,3526,497.55 4532.2,304.14 4419.1,345.23 4262.7,395.4 4120,418.2 4069,426.36 3704.2,410.2 3655,426.2 3612,440.2 3570.1,465.32 3534.1,491.58",points:[[4532,304],[4419,345],[4263,395],[4120,418],[4069,426],[3704,410],[3655,426],[3612,440],[3570,465],[3534,492]],labelBBox:{x:4233,y:395,width:34,height:18},parent:"local",relations:["1jvab2g"],color:"gray",line:"dashed",head:"normal"},{id:"1nksp5g",source:"local.ingressNginx.ingressNginx",target:"local.monitoring.queryFrontend",label:"https",dotpos:"e,3074.5,497.4 4532.1,289.49 4380.2,332.64 4144.4,392.92 3935,418.2 3894.6,423.08 3240.7,413.59 3202,426.2 3159.6,440.02 3118.3,464.95 3082.9,491.09",points:[[4532,289],[4380,333],[4144,393],[3935,418],[3895,423],[3241,414],[3202,426],[3160,440],[3118,465],[3083,491]],labelBBox:{x:4083,y:395,width:34,height:18},parent:"local",relations:["fs60l7"],color:"gray",line:"dashed",head:"normal"},{id:"m2japo",source:"local.ingressNginx.ingressNginx",target:"local.openbao.openbao",label:"https",dotpos:"e,7424.1,497.86 4851.9,241.61 5346.1,243.99 6842.9,264.7 7297,426.2 7338.9,441.09 7380.1,465.93 7415.7,491.66",points:[[4852,242],[5346,244],[6843,265],[7297,426],[7339,441],[7380,466],[7416,492]],labelBBox:{x:7263,y:395,width:34,height:18},parent:"local",relations:["1p30hav"],color:"gray",line:"dashed",head:"normal"},{id:"4drflo",source:"local.ingressNginx.ingressNginx",target:"local.fibonacci.fibonacci",label:"https",dotpos:"e,3978.1,497.54 4532.1,329.85 4462.3,363.96 4378.3,399.27 4298,418.2 4256.2,428.05 4145.6,412.33 4105,426.2 4063,440.55 4021.9,465.39 3986.5,491.29",points:[[4532,330],[4462,364],[4378,399],[4298,418],[4256,428],[4146,412],[4105,426],[4063,441],[4022,465],[3986,491]],labelBBox:{x:4367,y:395,width:34,height:18},parent:"local",relations:["1i5f8um"],color:"gray",line:"dashed",head:"normal"},{id:"ihlgsc",source:"local.ingressNginx.ingressNginx",target:"local.mailhog.mailhog",label:"https",dotpos:"e,4422.5,497.56 4598.5,330.25 4546.9,379.35 4482.7,440.38 4429.9,490.55",points:[[4599,330],[4547,379],[4483,440],[4430,491]],labelBBox:{x:4522,y:395,width:34,height:18},parent:"local",relations:["ofdedh"],color:"gray",line:"dashed",head:"normal"}]},"edp-per-tenant":{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/otc/edp.c4",description:null,title:"EDP per tenant",id:"edp-per-tenant",autoLayout:{direction:"TB"},hash:"e666149b946cddee8281b75a555e7577841d84ba",bounds:{x:0,y:0,width:2010,height:1175},nodes:[{id:"otc-edp-per-tenant",parent:null,level:0,children:["otc-edp-per-tenant.forgejoRunnerInfrastructure","otc-edp-per-tenant.cce","otc-edp-per-tenant.cloudServices"],inEdges:[],outEdges:[],deploymentRef:"otc-edp-per-tenant",title:"OTC EDP per tenant cluster",kind:"cloud",technology:"OTC",color:"slate",shape:"rectangle",description:{txt:`OTC environment for EDP. EDP is the environment a customer gets from us. + + This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry.`},tags:[],style:{opacity:15,size:"md"},depth:3,x:8,y:8,width:1994,height:1159,labelBBox:{x:6,y:0,width:181,height:15}},{id:"otc-edp-per-tenant.forgejoRunnerInfrastructure",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner"],inEdges:[],outEdges:["1dcszi5"],deploymentRef:"otc-edp-per-tenant.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},depth:1,x:321,y:150,width:384,height:266,labelBBox:{x:6,y:0,width:235,height:15}},{id:"otc-edp-per-tenant.cce",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.cce.edp"],inEdges:["1dcszi5"],outEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],deploymentRef:"otc-edp-per-tenant.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"red",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},depth:2,x:755,y:79,width:954,height:719,labelBBox:{x:6,y:0,width:54,height:15}},{id:"otc-edp-per-tenant.cce.edp",parent:"otc-edp-per-tenant.cce",level:2,children:["otc-edp-per-tenant.cce.edp.externalSecrets","otc-edp-per-tenant.cce.edp.ingressNginx","otc-edp-per-tenant.cce.edp.argoCD","otc-edp-per-tenant.cce.edp.forgejo"],inEdges:["1dcszi5"],outEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],deploymentRef:"otc-edp-per-tenant.cce.edp",title:"EDP",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:787,y:132,width:890,height:634,labelBBox:{x:6,y:0,width:27,height:15}},{id:"otc-edp-per-tenant.cce.edp.externalSecrets",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:[],outEdges:[],kind:"instance",title:"external-secrets",description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.externalSecrets",modelRef:"edp.externalSecrets",navigateTo:"externalSecrets",x:837,y:204,width:320,height:180,labelBBox:{x:39,y:54,width:242,height:65}},{id:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",parent:"otc-edp-per-tenant.forgejoRunnerInfrastructure",level:2,children:[],inEdges:[],outEdges:["1dcszi5"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:353,y:204,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edp-per-tenant.cce.edp.ingressNginx",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:[],outEdges:["1ir70dd","1kr1wg1"],kind:"instance",title:"Ingress",description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.ingressNginx",modelRef:"edp.ingressNginx",navigateTo:"ingressNginx",x:1287,y:204,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:65}},{id:"otc-edp-per-tenant.cce.edp.argoCD",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:["1ir70dd"],outEdges:[],kind:"instance",title:"ArgoCD",description:{txt:"GitOps Service"},tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.argoCD",modelRef:"edp.argoCD",navigateTo:"argoCD",x:1307,y:536,width:320,height:180,labelBBox:{x:108,y:63,width:105,height:48}},{id:"otc-edp-per-tenant.cce.edp.forgejo",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:["1kr1wg1","1dcszi5"],outEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],kind:"instance",title:"Forgejo",description:{txt:`Fully managed DevOps Platform +offering capabilities like +code version controling +collaboration and ticketing +and security scanning`},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.forgejo",modelRef:"edp.forgejo",navigateTo:"forgejo",x:837,y:536,width:340,height:180,labelBBox:{x:46,y:18,width:278,height:139}},{id:"otc-edp-per-tenant.cloudServices",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.cloudServices.postgres","otc-edp-per-tenant.cloudServices.redis","otc-edp-per-tenant.cloudServices.objectstorage","otc-edp-per-tenant.cloudServices.elasticsearch"],inEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],outEdges:[],deploymentRef:"otc-edp-per-tenant.cloudServices",title:"EDP Cloud Services",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",description:{txt:"EDP Cloud Services"},tags:[],style:{opacity:15,size:"md"},depth:1,x:58,y:815,width:1894,height:302,labelBBox:{x:6,y:0,width:127,height:15}},{id:"otc-edp-per-tenant.cloudServices.postgres",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["8msu1q"],outEdges:[],kind:"instance",title:"PostgreSQL",description:{txt:`PostgreSQL is a powerful, open source object-relational database system. +It has more than 15 years of active development and a proven architecture +that has earned it a strong reputation for reliability, data integrity, +and correctness.`},technology:"PostgreSQL",tags:[],icon:"tech:postgresql",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.postgres",modelRef:"postgres",x:108,y:887,width:354,height:180,labelBBox:{x:46,y:17,width:292,height:139}},{id:"otc-edp-per-tenant.cloudServices.redis",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["120qe5o"],outEdges:[],kind:"instance",title:"Redis",description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},technology:"Redis",tags:[],icon:"tech:redis",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.redis",modelRef:"redis",x:592,y:887,width:359,height:180,labelBBox:{x:47,y:26,width:297,height:121}},{id:"otc-edp-per-tenant.cloudServices.objectstorage",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["ealiax"],outEdges:[],kind:"instance",title:"s3 Object Storage",description:{txt:"s3 Object Storage"},technology:"S3 Object Storage",tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.objectstorage",modelRef:"objectstorage",x:1082,y:887,width:320,height:180,labelBBox:{x:78,y:53,width:164,height:67}},{id:"otc-edp-per-tenant.cloudServices.elasticsearch",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["1trj5u6"],outEdges:[],kind:"instance",title:"Elasticsearch",description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of +addressing a growing number of use cases. It centrally stores your data so you can +discover the expected and uncover the unexpected.`},technology:"Elasticsearch",tags:[],icon:"tech:elasticsearch",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.elasticsearch",modelRef:"elasticsearch",x:1532,y:887,width:370,height:180,labelBBox:{x:46,y:17,width:308,height:139}}],edges:[{id:"1ir70dd",source:"otc-edp-per-tenant.cce.edp.ingressNginx",target:"otc-edp-per-tenant.cce.edp.argoCD",label:"https",dotpos:"e,1461.6,536.51 1452.4,383.25 1455,427.28 1458.2,480.64 1461,526.05",points:[[1452,383],[1455,427],[1458,481],[1461,526]],labelBBox:{x:1459,y:448,width:34,height:18},parent:"otc-edp-per-tenant.cce.edp",relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"1kr1wg1",source:"otc-edp-per-tenant.cce.edp.ingressNginx",target:"otc-edp-per-tenant.cce.edp.forgejo",label:"https",dotpos:"e,1125.1,536.62 1328.8,383.47 1268.4,428.89 1194.8,484.19 1133.3,530.44",points:[[1329,383],[1268,429],[1195,484],[1133,530]],labelBBox:{x:1241,y:448,width:34,height:18},parent:"otc-edp-per-tenant.cce.edp",relations:["123efwn"],color:"gray",line:"dashed",head:"normal"},{id:"1dcszi5",source:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",target:"otc-edp-per-tenant.cce.edp.forgejo",label:"registers",dotpos:"e,874.42,536.62 645.71,383.47 713.81,429.07 796.79,484.64 866.04,531.01",points:[[646,383],[714,429],[797,485],[866,531]],labelBBox:{x:776,y:448,width:58,height:18},parent:"otc-edp-per-tenant",relations:["g9oj4f"],color:"gray",line:"dashed",head:"normal"},{id:"8msu1q",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.postgres",label:null,dotpos:"e,408.47,886.62 836.84,684.1 743.28,717.71 626.38,763.79 527,815.4 490.05,834.59 451.75,858.08 416.81,881.1",points:[[837,684],[743,718],[626,764],[527,815],[490,835],[452,858],[417,881]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["hks76r"],color:"gray",line:"dashed",head:"normal"},{id:"120qe5o",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.redis",label:null,dotpos:"e,832,886.69 947.09,716.17 913.73,765.59 872.15,827.21 837.87,877.99",points:[[947,716],[914,766],[872,827],[838,878]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["1w18ve8"],color:"gray",line:"dashed",head:"normal"},{id:"ealiax",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.objectstorage",label:null,dotpos:"e,1182,886.69 1066.9,716.17 1100.3,765.59 1141.9,827.21 1176.1,877.99",points:[[1067,716],[1100,766],[1142,827],[1176,878]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["15njmlz"],color:"gray",line:"dashed",head:"normal"},{id:"1trj5u6",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.elasticsearch",label:null,dotpos:"e,1604.5,886.79 1103.6,716.4 1143.6,747.92 1192.2,780.08 1242,798.4 1336.1,833 1371.9,783.6 1467,815.4 1512.1,830.47 1557.1,855.46 1596.3,881.27",points:[[1104,716],[1144,748],[1192,780],[1242,798],[1336,833],[1372,784],[1467,815],[1512,830],[1557,855],[1596,881]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["1fzhjm9"],color:"gray",line:"dashed",head:"normal"}]},"edp-foundry-central-service":{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/otc/foundry.c4",description:null,title:"EDP Foundry Central Service",id:"edp-foundry-central-service",autoLayout:{direction:"TB"},hash:"8f8eb235b0e8ff555a22ed61d124ba68e67e5ee2",bounds:{x:0,y:0,width:3894,height:1218},nodes:[{id:"otc-edpFoundry",parent:null,level:0,children:["otc-edpFoundry.cce","otc-edpFoundry.forgejoRunnerInfrastructure","otc-edpFoundry.workflowSetupEDPInfrastructure","otc-edpFoundry.workflowSetupArgoCDInfrastructure"],inEdges:[],outEdges:[],deploymentRef:"otc-edpFoundry",title:"OTC EDP Foundry Central Service clusters",kind:"cloud",technology:"OTC",color:"slate",shape:"rectangle",description:{txt:`OTC environments for the central EDP Foundry services. This is kubernetes clusters and other infrastructure like nodes and vms, and optionally platform services. All is set up by IaC terraform and edpbuilder. + +A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP. +Optionally we will have a WebUI/API/CLI`},tags:[],style:{opacity:15,size:"md"},depth:3,x:8,y:8,width:3878,height:1202,labelBBox:{x:6,y:0,width:280,height:15}},{id:"otc-edpFoundry.cce",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.cce.internalServices","otc-edpFoundry.cce.centralObservability"],inEdges:["628xl1"],outEdges:["84397w","1oz2va9"],deploymentRef:"otc-edpFoundry.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"red",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},depth:2,x:58,y:79,width:2360,height:755,labelBBox:{x:6,y:0,width:54,height:15}},{id:"otc-edpFoundry.cce.internalServices",parent:"otc-edpFoundry.cce",level:2,children:["otc-edpFoundry.cce.internalServices.externalSecrets","otc-edpFoundry.cce.internalServices.ingressNginx","otc-edpFoundry.cce.internalServices.argoCD","otc-edpFoundry.cce.internalServices.forgejo","otc-edpFoundry.cce.internalServices.openbao"],inEdges:["628xl1"],outEdges:["84397w","1oz2va9"],deploymentRef:"otc-edpFoundry.cce.internalServices",title:"EDP Foundry Internal Services",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:1028,y:150,width:1340,height:634,labelBBox:{x:6,y:0,width:201,height:15}},{id:"otc-edpFoundry.cce.internalServices.externalSecrets",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:[],outEdges:[],kind:"instance",title:"external-secrets",description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.externalSecrets",modelRef:"edp.externalSecrets",navigateTo:"externalSecrets",x:1308,y:222,width:320,height:180,labelBBox:{x:39,y:54,width:242,height:65}},{id:"otc-edpFoundry.cce.centralObservability",parent:"otc-edpFoundry.cce",level:2,children:["otc-edpFoundry.cce.centralObservability.grafana","otc-edpFoundry.cce.centralObservability.prometheus","otc-edpFoundry.cce.centralObservability.loki"],inEdges:[],outEdges:[],deploymentRef:"otc-edpFoundry.cce.centralObservability",title:"EDP Foundry Central Observability",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:108,y:150,width:870,height:634,labelBBox:{x:6,y:0,width:232,height:15}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner"],inEdges:[],outEdges:["628xl1"],deploymentRef:"otc-edpFoundry.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"green",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},depth:1,x:2468,y:168,width:384,height:266,labelBBox:{x:6,y:0,width:235,height:15}},{id:"otc-edpFoundry.cce.centralObservability.grafana",parent:"otc-edpFoundry.cce.centralObservability",level:3,children:[],inEdges:[],outEdges:["qykxlm","yv49z5"],kind:"instance",title:"Grafana",description:{txt:"Data visualization and monitoring"},tags:[],icon:"tech:grafana",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.centralObservability.grafana",modelRef:"edp.grafana",x:289,y:222,width:345,height:180,labelBBox:{x:47,y:63,width:283,height:47}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner",parent:"otc-edpFoundry.forgejoRunnerInfrastructure",level:2,children:[],inEdges:[],outEdges:["628xl1"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:2500,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edpFoundry.cce.centralObservability.prometheus",parent:"otc-edpFoundry.cce.centralObservability",level:3,children:[],inEdges:["qykxlm"],outEdges:[],kind:"instance",title:"Prometheus",description:{txt:"Monitoring and alerting toolkit"},tags:[],icon:"tech:prometheus",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.centralObservability.prometheus",modelRef:"edp.prometheus",x:158,y:554,width:320,height:180,labelBBox:{x:46,y:63,width:258,height:48}},{id:"otc-edpFoundry.cce.centralObservability.loki",parent:"otc-edpFoundry.cce.centralObservability",level:3,children:[],inEdges:["yv49z5"],outEdges:[],kind:"instance",title:"Loki",description:{txt:"Log aggregation system"},tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.centralObservability.loki",modelRef:"edp.loki",x:608,y:554,width:320,height:180,labelBBox:{x:78,y:63,width:164,height:48}},{id:"otc-edpFoundry.cce.internalServices.ingressNginx",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:[],outEdges:["17kru01","170pc3l","u5oqat"],kind:"instance",title:"Ingress",description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.ingressNginx",modelRef:"edp.ingressNginx",navigateTo:"ingressNginx",x:1988,y:222,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:65}},{id:"otc-edpFoundry.cce.internalServices.argoCD",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:["17kru01"],outEdges:[],kind:"instance",title:"ArgoCD",description:{txt:"GitOps Service"},tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.argoCD",modelRef:"edp.argoCD",navigateTo:"argoCD",x:1078,y:554,width:320,height:180,labelBBox:{x:108,y:63,width:105,height:48}},{id:"otc-edpFoundry.cce.internalServices.forgejo",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:["170pc3l","628xl1"],outEdges:["84397w","1oz2va9"],kind:"instance",title:"Forgejo",description:{txt:`Fully managed DevOps Platform +offering capabilities like +code version controling +collaboration and ticketing +and security scanning`},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.forgejo",modelRef:"edp.forgejo",navigateTo:"forgejo",x:1978,y:554,width:340,height:180,labelBBox:{x:46,y:18,width:278,height:139}},{id:"otc-edpFoundry.cce.internalServices.openbao",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:["u5oqat"],outEdges:[],kind:"instance",title:"OpenBao",description:{txt:"Secure secret storage"},tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.openbao",modelRef:"edp.openbao",x:1528,y:554,width:320,height:180,labelBBox:{x:85,y:63,width:151,height:48}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner","otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker","otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow"],inEdges:["84397w"],outEdges:[],deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure",title:"EDP infrastructure Workflow",kind:"computeressource",color:"amber",shape:"rectangle",description:{txt:"EDP infrastructure Workflow"},tags:[],style:{opacity:15,size:"md"},depth:1,x:2902,y:150,width:442,height:1010,labelBBox:{x:6,y:0,width:201,height:15}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner","otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker","otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow"],inEdges:["1oz2va9"],outEdges:[],deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",title:"EDP ArgoCD Workflow",kind:"computeressource",color:"amber",shape:"rectangle",description:{txt:"EDP Setup ArgoCD Workflow"},tags:[],style:{opacity:15,size:"md"},depth:1,x:3394,y:150,width:442,height:1010,labelBBox:{x:6,y:0,width:149,height:15}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",level:2,children:[],inEdges:["84397w"],outEdges:["1hnil62"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:2961,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",level:2,children:[],inEdges:["1oz2va9"],outEdges:["1gtxobu"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:3466,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",level:2,children:[],inEdges:["1hnil62"],outEdges:["ekzztw"],kind:"instance",title:"Forgejo Runner Worker",description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",modelRef:"forgejoRunnerWorker",x:2954,y:554,width:333,height:180,labelBBox:{x:18,y:45,width:297,height:84}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker",parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",level:2,children:[],inEdges:["1gtxobu"],outEdges:["b9ntr8"],kind:"instance",title:"Forgejo Runner Worker",description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker",modelRef:"forgejoRunnerWorker",x:3452,y:554,width:333,height:180,labelBBox:{x:18,y:45,width:297,height:84}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow",parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",level:2,children:[],inEdges:["ekzztw"],outEdges:[],kind:"instance",title:"EDP Infrastructure Setup Workflow",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow",modelRef:"edpworkflow",x:2952,y:930,width:342,height:180,labelBBox:{x:14,y:74,width:314,height:24}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow",parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",level:2,children:[],inEdges:["b9ntr8"],outEdges:[],kind:"instance",title:"EDP Infrastructure Setup Workflow",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow",modelRef:"edpworkflow",x:3444,y:930,width:342,height:180,labelBBox:{x:14,y:74,width:314,height:24}}],edges:[{id:"17kru01",source:"otc-edpFoundry.cce.internalServices.ingressNginx",target:"otc-edpFoundry.cce.internalServices.argoCD",label:"https",dotpos:"e,1397.8,579.34 1988.2,367.11 1849,415.06 1642,487.45 1463,554.4 1445,561.14 1426.2,568.31 1407.6,575.55",points:[[1988,367],[1849,415],[1642,487],[1463,554],[1445,561],[1426,568],[1408,576]],labelBBox:{x:1689,y:466,width:34,height:18},parent:"otc-edpFoundry.cce.internalServices",relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"170pc3l",source:"otc-edpFoundry.cce.internalServices.ingressNginx",target:"otc-edpFoundry.cce.internalServices.forgejo",label:"https",dotpos:"e,2148,554.51 2148,401.25 2148,445.28 2148,498.64 2148,544.05",points:[[2148,401],[2148,445],[2148,499],[2148,544]],labelBBox:{x:2149,y:466,width:34,height:18},parent:"otc-edpFoundry.cce.internalServices",relations:["123efwn"],color:"gray",line:"dashed",head:"normal"},{id:"u5oqat",source:"otc-edpFoundry.cce.internalServices.ingressNginx",target:"otc-edpFoundry.cce.internalServices.openbao",label:"https",dotpos:"e,1811.5,554.62 2024.4,401.47 1961.1,446.98 1884.1,502.41 1819.6,548.73",points:[[2024,401],[1961,447],[1884,502],[1820,549]],labelBBox:{x:1933,y:466,width:34,height:18},parent:"otc-edpFoundry.cce.internalServices",relations:["1p30hav"],color:"gray",line:"dashed",head:"normal"},{id:"qykxlm",source:"otc-edpFoundry.cce.centralObservability.grafana",target:"otc-edpFoundry.cce.centralObservability.prometheus",label:"get metrics and alerts",dotpos:"e,356.7,554.51 423.41,401.25 404.12,445.56 380.72,499.31 360.87,544.91",points:[[423,401],[404,446],[381,499],[361,545]],labelBBox:{x:395,y:466,width:138,height:18},parent:"otc-edpFoundry.cce.centralObservability",relations:["13uvtiq"],color:"gray",line:"dashed",head:"normal"},{id:"yv49z5",source:"otc-edpFoundry.cce.centralObservability.grafana",target:"otc-edpFoundry.cce.centralObservability.loki",label:"get logs",dotpos:"e,685.77,554.51 544,401.25 585.59,446.21 636.17,500.89 678.74,546.91",points:[[544,401],[586,446],[636,501],[679,547]],labelBBox:{x:625,y:466,width:53,height:18},parent:"otc-edpFoundry.cce.centralObservability",relations:["1n1utzc"],color:"gray",line:"dashed",head:"normal"},{id:"84397w",source:"otc-edpFoundry.cce.internalServices.forgejo",target:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",label:"invokes",dotpos:"e,2961,399.55 2318.4,604.81 2469.6,568.24 2695.1,507.91 2884,433.6 2906.3,424.83 2929.3,414.65 2951.8,403.98",points:[[2318,605],[2470,568],[2695,508],[2884,434],[2906,425],[2929,415],[2952,404]],labelBBox:{x:2787,y:466,width:51,height:18},parent:"otc-edpFoundry",relations:["dola40"],color:"gray",line:"dashed",head:"normal"},{id:"1hnil62",source:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",target:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",label:"runs",dotpos:"e,3121,554.51 3121,401.25 3121,445.28 3121,498.64 3121,544.05",points:[[3121,401],[3121,445],[3121,499],[3121,544]],labelBBox:{x:3122,y:466,width:31,height:18},parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",relations:["7kqly3"],color:"gray",line:"dashed",head:"normal"},{id:"ekzztw",source:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",target:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow",label:"executes",dotpos:"e,3122.5,930.28 3121.5,733.99 3121.8,789.89 3122.2,862.2 3122.5,920.03",points:[[3121,734],[3122,790],[3122,862],[3122,920]],labelBBox:{x:3123,y:842,width:60,height:18},parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",relations:["12hf1w4"],color:"gray",line:"dashed",head:"normal"},{id:"1oz2va9",source:"otc-edpFoundry.cce.internalServices.forgejo",target:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",label:"invokes",dotpos:"e,3524.7,401.42 2318.4,622.3 2654.2,580.67 3369.9,491.78 3376,489.4 3425.8,470.06 3475.1,438.64 3516.5,407.61",points:[[2318,622],[2654,581],[3370,492],[3376,489],[3426,470],[3475,439],[3517,408]],labelBBox:{x:3422,y:466,width:51,height:18},parent:"otc-edpFoundry",relations:["1f5y9gc"],color:"gray",line:"dashed",head:"normal"},{id:"1gtxobu",source:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",target:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker",label:"runs",dotpos:"e,3620.9,554.51 3624.1,401.25 3623.2,445.28 3622.1,498.64 3621.1,544.05",points:[[3624,401],[3623,445],[3622,499],[3621,544]],labelBBox:{x:3624,y:466,width:31,height:18},parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",relations:["hqie0"],color:"gray",line:"dashed",head:"normal"},{id:"b9ntr8",source:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker",target:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow",label:"executes",dotpos:"e,3616,930.28 3618.1,733.99 3617.5,789.89 3616.7,862.2 3616.1,920.03",points:[[3618,734],[3617,790],[3617,862],[3616,920]],labelBBox:{x:3618,y:842,width:60,height:18},parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",relations:["1j16hqv"],color:"gray",line:"dashed",head:"normal"},{id:"628xl1",source:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner",target:"otc-edpFoundry.cce.internalServices.forgejo",label:"registers",dotpos:"e,2285.4,554.62 2522.5,401.47 2451.9,447.07 2365.9,502.64 2294.1,549.01",points:[[2522,401],[2452,447],[2366,503],[2294,549]],labelBBox:{x:2420,y:466,width:58,height:18},parent:"otc-edpFoundry",relations:["1umzqdy"],color:"gray",line:"dashed",head:"normal"}]},"forgejo-as-a-service":{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/otc/foundry-and-edp.c4",description:null,title:"Forgejo as a Service",id:"forgejo-as-a-service",autoLayout:{direction:"TB"},hash:"04b470ef03e0995fc0d9fa8ac4c4c0a494f74722",bounds:{x:0,y:0,width:5468,height:1994},nodes:[{id:"otc-edpFoundry",parent:null,level:0,children:["otc-edpFoundry.cce","otc-edpFoundry.forgejoRunnerInfrastructure","otc-edpFoundry.workflowSetupEDPInfrastructure","otc-edpFoundry.workflowSetupArgoCDInfrastructure"],inEdges:[],outEdges:["1asm38z","1or831y","ejqwjt"],deploymentRef:"otc-edpFoundry",title:"OTC EDP Foundry Central Service clusters",kind:"cloud",technology:"OTC",color:"slate",shape:"rectangle",description:{txt:`OTC environments for the central EDP Foundry services. This is kubernetes clusters and other infrastructure like nodes and vms, and optionally platform services. All is set up by IaC terraform and edpbuilder. + +A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP. +Optionally we will have a WebUI/API/CLI`},tags:[],style:{opacity:15,size:"md"},depth:3,x:2052,y:8,width:3408,height:1609,labelBBox:{x:6,y:0,width:280,height:15}},{id:"otc-edpFoundry.cce",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.cce.internalServices","otc-edpFoundry.cce.centralObservability"],inEdges:["628xl1"],outEdges:["84397w","1oz2va9"],deploymentRef:"otc-edpFoundry.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"red",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},depth:2,x:2594,y:79,width:1890,height:1488,labelBBox:{x:6,y:0,width:54,height:15}},{id:"otc-edpFoundry.cce.internalServices",parent:"otc-edpFoundry.cce",level:2,children:["otc-edpFoundry.cce.internalServices.externalSecrets","otc-edpFoundry.cce.internalServices.ingressNginx","otc-edpFoundry.cce.internalServices.argoCD","otc-edpFoundry.cce.internalServices.forgejo","otc-edpFoundry.cce.internalServices.openbao"],inEdges:["628xl1"],outEdges:["84397w","1oz2va9"],deploymentRef:"otc-edpFoundry.cce.internalServices",title:"EDP Foundry Internal Services",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:2644,y:883,width:1790,height:634,labelBBox:{x:6,y:0,width:201,height:15}},{id:"otc-edpFoundry.cce.internalServices.externalSecrets",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:[],outEdges:[],kind:"instance",title:"external-secrets",description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.externalSecrets",modelRef:"edp.externalSecrets",navigateTo:"externalSecrets",x:2694,y:1287,width:320,height:180,labelBBox:{x:39,y:54,width:242,height:66}},{id:"otc-edpFoundry.cce.centralObservability",parent:"otc-edpFoundry.cce",level:2,children:["otc-edpFoundry.cce.centralObservability.grafana","otc-edpFoundry.cce.centralObservability.prometheus","otc-edpFoundry.cce.centralObservability.loki"],inEdges:[],outEdges:[],deploymentRef:"otc-edpFoundry.cce.centralObservability",title:"EDP Foundry Central Observability",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:3349,y:150,width:870,height:634,labelBBox:{x:6,y:0,width:232,height:15}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner"],inEdges:[],outEdges:["628xl1"],deploymentRef:"otc-edpFoundry.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"green",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},depth:1,x:5026,y:168,width:384,height:266,labelBBox:{x:6,y:0,width:235,height:15}},{id:"otc-edp-per-tenant",parent:null,level:0,children:["otc-edp-per-tenant.forgejoRunnerInfrastructure","otc-edp-per-tenant.cce","otc-edp-per-tenant.cloudServices"],inEdges:["1asm38z","1or831y","ejqwjt"],outEdges:[],deploymentRef:"otc-edp-per-tenant",title:"OTC EDP per tenant cluster",kind:"cloud",technology:"OTC",color:"slate",shape:"rectangle",description:{txt:`OTC environment for EDP. EDP is the environment a customer gets from us. + + This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry.`},tags:[],style:{opacity:15,size:"md"},depth:3,x:8,y:97,width:1994,height:1889,labelBBox:{x:6,y:0,width:181,height:15}},{id:"otc-edp-per-tenant.forgejoRunnerInfrastructure",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner"],inEdges:[],outEdges:["1dcszi5"],deploymentRef:"otc-edp-per-tenant.forgejoRunnerInfrastructure",title:"EDP ForgejoRunner infrastructure",kind:"computeressource",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},tags:[],style:{opacity:15,size:"md"},depth:1,x:608,y:168,width:384,height:266,labelBBox:{x:6,y:0,width:235,height:15}},{id:"otc-edpFoundry.cce.centralObservability.grafana",parent:"otc-edpFoundry.cce.centralObservability",level:3,children:[],inEdges:[],outEdges:["qykxlm","yv49z5"],kind:"instance",title:"Grafana",description:{txt:"Data visualization and monitoring"},tags:[],icon:"tech:grafana",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.centralObservability.grafana",modelRef:"edp.grafana",x:3530,y:222,width:345,height:180,labelBBox:{x:47,y:63,width:283,height:47}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner",parent:"otc-edpFoundry.forgejoRunnerInfrastructure",level:2,children:[],inEdges:[],outEdges:["628xl1"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:5058,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edp-per-tenant.cce",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.cce.edp"],inEdges:["1or831y","ejqwjt","1dcszi5"],outEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],deploymentRef:"otc-edp-per-tenant.cce",title:"OTC CCE",kind:"kubernetes",technology:"Kubernetes",color:"red",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine"},tags:[],style:{opacity:15,size:"md"},depth:2,x:548,y:830,width:1404,height:719,labelBBox:{x:6,y:0,width:54,height:15}},{id:"otc-edp-per-tenant.cce.edp",parent:"otc-edp-per-tenant.cce",level:2,children:["otc-edp-per-tenant.cce.edp.externalSecrets","otc-edp-per-tenant.cce.edp.ingressNginx","otc-edp-per-tenant.cce.edp.argoCD","otc-edp-per-tenant.cce.edp.forgejo"],inEdges:["1or831y","ejqwjt","1dcszi5"],outEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],deploymentRef:"otc-edp-per-tenant.cce.edp",title:"EDP",kind:"cluster",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:580,y:883,width:1340,height:634,labelBBox:{x:6,y:0,width:27,height:15}},{id:"otc-edp-per-tenant.cce.edp.externalSecrets",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:[],outEdges:[],kind:"instance",title:"external-secrets",description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.externalSecrets",modelRef:"edp.externalSecrets",navigateTo:"externalSecrets",x:1550,y:1287,width:320,height:180,labelBBox:{x:39,y:54,width:242,height:66}},{id:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",parent:"otc-edp-per-tenant.forgejoRunnerInfrastructure",level:2,children:[],inEdges:[],outEdges:["1dcszi5"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:640,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edpFoundry.cce.centralObservability.prometheus",parent:"otc-edpFoundry.cce.centralObservability",level:3,children:[],inEdges:["qykxlm"],outEdges:[],kind:"instance",title:"Prometheus",description:{txt:"Monitoring and alerting toolkit"},tags:[],icon:"tech:prometheus",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.centralObservability.prometheus",modelRef:"edp.prometheus",x:3399,y:554,width:320,height:180,labelBBox:{x:46,y:63,width:258,height:48}},{id:"otc-edpFoundry.cce.centralObservability.loki",parent:"otc-edpFoundry.cce.centralObservability",level:3,children:[],inEdges:["yv49z5"],outEdges:[],kind:"instance",title:"Loki",description:{txt:"Log aggregation system"},tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.centralObservability.loki",modelRef:"edp.loki",x:3849,y:554,width:320,height:180,labelBBox:{x:78,y:63,width:164,height:48}},{id:"otc-edpFoundry.cce.internalServices.ingressNginx",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:[],outEdges:["17kru01","170pc3l","u5oqat"],kind:"instance",title:"Ingress",description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.ingressNginx",modelRef:"edp.ingressNginx",navigateTo:"ingressNginx",x:4054,y:955,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:65}},{id:"otc-edpFoundry.cce.internalServices.argoCD",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:["17kru01"],outEdges:[],kind:"instance",title:"ArgoCD",description:{txt:"GitOps Service"},tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.argoCD",modelRef:"edp.argoCD",navigateTo:"argoCD",x:3144,y:1287,width:320,height:180,labelBBox:{x:108,y:63,width:105,height:48}},{id:"otc-edpFoundry.cce.internalServices.forgejo",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:["170pc3l","628xl1"],outEdges:["84397w","1oz2va9"],kind:"instance",title:"Forgejo",description:{txt:`Fully managed DevOps Platform +offering capabilities like +code version controling +collaboration and ticketing +and security scanning`},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.forgejo",modelRef:"edp.forgejo",navigateTo:"forgejo",x:4044,y:1287,width:340,height:180,labelBBox:{x:46,y:18,width:278,height:139}},{id:"otc-edpFoundry.cce.internalServices.openbao",parent:"otc-edpFoundry.cce.internalServices",level:3,children:[],inEdges:["u5oqat"],outEdges:[],kind:"instance",title:"OpenBao",description:{txt:"Secure secret storage"},tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edpFoundry.cce.internalServices.openbao",modelRef:"edp.openbao",x:3594,y:1287,width:320,height:180,labelBBox:{x:85,y:63,width:151,height:48}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner","otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker","otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow"],inEdges:["84397w"],outEdges:["1asm38z","1or831y"],deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure",title:"EDP infrastructure Workflow",kind:"computeressource",color:"amber",shape:"rectangle",description:{txt:"EDP infrastructure Workflow"},tags:[],style:{opacity:15,size:"md"},depth:1,x:4534,y:150,width:442,height:1035,labelBBox:{x:6,y:0,width:201,height:15}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",parent:"otc-edpFoundry",level:1,children:["otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner","otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker","otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow"],inEdges:["1oz2va9"],outEdges:["ejqwjt"],deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",title:"EDP ArgoCD Workflow",kind:"computeressource",color:"amber",shape:"rectangle",description:{txt:"EDP Setup ArgoCD Workflow"},tags:[],style:{opacity:15,size:"md"},depth:1,x:2102,y:150,width:442,height:1035,labelBBox:{x:6,y:0,width:149,height:15}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",level:2,children:[],inEdges:["84397w"],outEdges:["1hnil62"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:4595,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",level:2,children:[],inEdges:["1oz2va9"],outEdges:["1gtxobu"],kind:"instance",title:"Forgejo Runner",description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:2163,y:222,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",level:2,children:[],inEdges:["1hnil62"],outEdges:["ekzztw"],kind:"instance",title:"Forgejo Runner Worker",description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",modelRef:"forgejoRunnerWorker",x:4588,y:554,width:333,height:180,labelBBox:{x:18,y:45,width:297,height:84}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker",parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",level:2,children:[],inEdges:["1gtxobu"],outEdges:["b9ntr8"],kind:"instance",title:"Forgejo Runner Worker",description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker",modelRef:"forgejoRunnerWorker",x:2156,y:554,width:333,height:180,labelBBox:{x:18,y:45,width:297,height:84}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow",parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",level:2,children:[],inEdges:["ekzztw"],outEdges:["1asm38z","1or831y"],kind:"instance",title:"EDP Infrastructure Setup Workflow",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow",modelRef:"edpworkflow",x:4584,y:955,width:342,height:180,labelBBox:{x:14,y:74,width:314,height:24}},{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow",parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",level:2,children:[],inEdges:["b9ntr8"],outEdges:["ejqwjt"],kind:"instance",title:"EDP Infrastructure Setup Workflow",tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow",modelRef:"edpworkflow",x:2152,y:955,width:342,height:180,labelBBox:{x:14,y:74,width:314,height:24}},{id:"otc-edp-per-tenant.cce.edp.ingressNginx",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:[],outEdges:["1ir70dd","1kr1wg1"],kind:"instance",title:"Ingress",description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.ingressNginx",modelRef:"edp.ingressNginx",navigateTo:"ingressNginx",x:1100,y:955,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:65}},{id:"otc-edp-per-tenant.cce.edp.argoCD",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:["ejqwjt","1ir70dd"],outEdges:[],kind:"instance",title:"ArgoCD",description:{txt:"GitOps Service"},tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.argoCD",modelRef:"edp.argoCD",navigateTo:"argoCD",x:1100,y:1287,width:320,height:180,labelBBox:{x:108,y:63,width:105,height:48}},{id:"otc-edp-per-tenant.cce.edp.forgejo",parent:"otc-edp-per-tenant.cce.edp",level:3,children:[],inEdges:["1kr1wg1","1dcszi5"],outEdges:["8msu1q","120qe5o","ealiax","1trj5u6"],kind:"instance",title:"Forgejo",description:{txt:`Fully managed DevOps Platform +offering capabilities like +code version controling +collaboration and ticketing +and security scanning`},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cce.edp.forgejo",modelRef:"edp.forgejo",navigateTo:"forgejo",x:630,y:1287,width:340,height:180,labelBBox:{x:46,y:18,width:278,height:139}},{id:"otc-edp-per-tenant.cloudServices",parent:"otc-edp-per-tenant",level:1,children:["otc-edp-per-tenant.cloudServices.postgres","otc-edp-per-tenant.cloudServices.redis","otc-edp-per-tenant.cloudServices.objectstorage","otc-edp-per-tenant.cloudServices.elasticsearch"],inEdges:["1asm38z","8msu1q","120qe5o","ealiax","1trj5u6"],outEdges:[],deploymentRef:"otc-edp-per-tenant.cloudServices",title:"EDP Cloud Services",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",description:{txt:"EDP Cloud Services"},tags:[],style:{opacity:15,size:"md"},depth:1,x:58,y:1634,width:1894,height:302,labelBBox:{x:6,y:0,width:127,height:15}},{id:"otc-edp-per-tenant.cloudServices.postgres",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["8msu1q"],outEdges:[],kind:"instance",title:"PostgreSQL",description:{txt:`PostgreSQL is a powerful, open source object-relational database system. +It has more than 15 years of active development and a proven architecture +that has earned it a strong reputation for reliability, data integrity, +and correctness.`},technology:"PostgreSQL",tags:[],icon:"tech:postgresql",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.postgres",modelRef:"postgres",x:1548,y:1706,width:354,height:180,labelBBox:{x:46,y:17,width:292,height:139}},{id:"otc-edp-per-tenant.cloudServices.redis",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["120qe5o"],outEdges:[],kind:"instance",title:"Redis",description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},technology:"Redis",tags:[],icon:"tech:redis",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.redis",modelRef:"redis",x:608,y:1706,width:359,height:180,labelBBox:{x:47,y:26,width:297,height:121}},{id:"otc-edp-per-tenant.cloudServices.objectstorage",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["ealiax"],outEdges:[],kind:"instance",title:"s3 Object Storage",description:{txt:"s3 Object Storage"},technology:"S3 Object Storage",tags:[],color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.objectstorage",modelRef:"objectstorage",x:1098,y:1706,width:320,height:180,labelBBox:{x:78,y:53,width:164,height:67}},{id:"otc-edp-per-tenant.cloudServices.elasticsearch",parent:"otc-edp-per-tenant.cloudServices",level:2,children:[],inEdges:["1trj5u6"],outEdges:[],kind:"instance",title:"Elasticsearch",description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of +addressing a growing number of use cases. It centrally stores your data so you can +discover the expected and uncover the unexpected.`},technology:"Elasticsearch",tags:[],icon:"tech:elasticsearch",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otc-edp-per-tenant.cloudServices.elasticsearch",modelRef:"elasticsearch",x:108,y:1706,width:370,height:180,labelBBox:{x:46,y:17,width:308,height:139}}],edges:[{id:"17kru01",source:"otc-edpFoundry.cce.internalServices.ingressNginx",target:"otc-edpFoundry.cce.internalServices.argoCD",label:"https",dotpos:"e,3463.8,1312.3 4054.2,1100.1 3915,1148.1 3708,1220.4 3529,1287.4 3511,1294.1 3492.2,1301.3 3473.6,1308.5",points:[[4054,1100],[3915,1148],[3708,1220],[3529,1287],[3511,1294],[3492,1301],[3474,1309]],labelBBox:{x:3755,y:1199,width:34,height:18},parent:"otc-edpFoundry.cce.internalServices",relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"170pc3l",source:"otc-edpFoundry.cce.internalServices.ingressNginx",target:"otc-edpFoundry.cce.internalServices.forgejo",label:"https",dotpos:"e,4214,1287.5 4214,1134.2 4214,1178.3 4214,1231.6 4214,1277",points:[[4214,1134],[4214,1178],[4214,1232],[4214,1277]],labelBBox:{x:4215,y:1199,width:34,height:18},parent:"otc-edpFoundry.cce.internalServices",relations:["123efwn"],color:"gray",line:"dashed",head:"normal"},{id:"u5oqat",source:"otc-edpFoundry.cce.internalServices.ingressNginx",target:"otc-edpFoundry.cce.internalServices.openbao",label:"https",dotpos:"e,3877.5,1287.6 4090.4,1134.5 4027.1,1180 3950.1,1235.4 3885.6,1281.7",points:[[4090,1134],[4027,1180],[3950,1235],[3886,1282]],labelBBox:{x:3999,y:1199,width:34,height:18},parent:"otc-edpFoundry.cce.internalServices",relations:["1p30hav"],color:"gray",line:"dashed",head:"normal"},{id:"qykxlm",source:"otc-edpFoundry.cce.centralObservability.grafana",target:"otc-edpFoundry.cce.centralObservability.prometheus",label:"get metrics and alerts",dotpos:"e,3597.7,554.51 3664.4,401.25 3645.1,445.56 3621.7,499.31 3601.9,544.91",points:[[3664,401],[3645,446],[3622,499],[3602,545]],labelBBox:{x:3636,y:466,width:138,height:18},parent:"otc-edpFoundry.cce.centralObservability",relations:["13uvtiq"],color:"gray",line:"dashed",head:"normal"},{id:"yv49z5",source:"otc-edpFoundry.cce.centralObservability.grafana",target:"otc-edpFoundry.cce.centralObservability.loki",label:"get logs",dotpos:"e,3926.8,554.51 3785,401.25 3826.6,446.21 3877.2,500.89 3919.7,546.91",points:[[3785,401],[3827,446],[3877,501],[3920,547]],labelBBox:{x:3866,y:466,width:53,height:18},parent:"otc-edpFoundry.cce.centralObservability",relations:["1n1utzc"],color:"gray",line:"dashed",head:"normal"},{id:"84397w",source:"otc-edpFoundry.cce.internalServices.forgejo",target:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",label:"invokes",dotpos:"e,4871.9,401.35 4384,1358.7 4589.5,1333.3 4917.1,1279 4991,1184.6 5006.1,1165.4 5006.3,601.48 4987,554.4 4964.1,498.68 4921.8,448.48 4879.5,408.45",points:[[4384,1359],[4590,1333],[4917,1279],[4991,1185],[5006,1165],[5006,601],[4987,554],[4964,499],[4922,448],[4880,408]],labelBBox:{x:5002,y:799,width:51,height:18},parent:"otc-edpFoundry",relations:["dola40"],color:"gray",line:"dashed",head:"normal"},{id:"1hnil62",source:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",target:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",label:"runs",dotpos:"e,4755,554.51 4755,401.25 4755,445.28 4755,498.64 4755,544.05",points:[[4755,401],[4755,445],[4755,499],[4755,544]],labelBBox:{x:4756,y:466,width:31,height:18},parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",relations:["7kqly3"],color:"gray",line:"dashed",head:"normal"},{id:"ekzztw",source:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",target:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow",label:"executes",dotpos:"e,4755,954.66 4755,734.27 4755,796.6 4755,879.99 4755,944.48",points:[[4755,734],[4755,797],[4755,880],[4755,944]],labelBBox:{x:4756,y:799,width:60,height:18},parent:"otc-edpFoundry.workflowSetupEDPInfrastructure",relations:["12hf1w4"],color:"gray",line:"dashed",head:"normal"},{id:"1oz2va9",source:"otc-edpFoundry.cce.internalServices.forgejo",target:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",label:"invokes",dotpos:"e,2425.7,401.35 4043.6,1308.6 4022,1301 4000.1,1293.7 3979,1287.4 3850.3,1249.1 3807.5,1275.1 3684,1222.4 3176,1005.8 2655,593.8 2433.5,407.87",points:[[4044,1309],[4022,1301],[4e3,1294],[3979,1287],[3850,1249],[3808,1275],[3684,1222],[3176,1006],[2655,594],[2433,408]],labelBBox:{x:2970,y:799,width:51,height:18},parent:"otc-edpFoundry",relations:["1f5y9gc"],color:"gray",line:"dashed",head:"normal"},{id:"1gtxobu",source:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",target:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker",label:"runs",dotpos:"e,2323,554.51 2323,401.25 2323,445.28 2323,498.64 2323,544.05",points:[[2323,401],[2323,445],[2323,499],[2323,544]],labelBBox:{x:2324,y:466,width:31,height:18},parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",relations:["hqie0"],color:"gray",line:"dashed",head:"normal"},{id:"b9ntr8",source:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker",target:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow",label:"executes",dotpos:"e,2323,954.66 2323,734.27 2323,796.6 2323,879.99 2323,944.48",points:[[2323,734],[2323,797],[2323,880],[2323,944]],labelBBox:{x:2324,y:799,width:60,height:18},parent:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",relations:["1j16hqv"],color:"gray",line:"dashed",head:"normal"},{id:"628xl1",source:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner",target:"otc-edpFoundry.cce.internalServices.forgejo",label:"registers",dotpos:"e,4384.3,1373.5 5231.3,401.47 5254.9,597.41 5277.7,1061.9 4995,1222.4 4808.3,1328.4 4560.5,1362.5 4394.6,1372.9",points:[[5231,401],[5255,597],[5278,1062],[4995,1222],[4808,1328],[4561,1362],[4395,1373]],labelBBox:{x:5232,y:799,width:58,height:18},parent:"otc-edpFoundry",relations:["1umzqdy"],color:"gray",line:"dashed",head:"normal"},{id:"ejqwjt",source:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow",target:"otc-edp-per-tenant.cce.edp.argoCD",label:null,dotpos:"e,1419.9,1309.5 2152,1115.5 2089.7,1139.4 2018.3,1165 1952,1184.6 1748.2,1244.9 1688.2,1225.3 1485,1287.4 1466.9,1292.9 1448.1,1299.3 1429.6,1306",points:[[2152,1115],[2090,1139],[2018,1165],[1952,1185],[1748,1245],[1688,1225],[1485,1287],[1467,1293],[1448,1299],[1430,1306]],labelBBox:null,parent:null,relations:["jde35l"],color:"gray",line:"dashed",head:"normal"},{id:"1ir70dd",source:"otc-edp-per-tenant.cce.edp.ingressNginx",target:"otc-edp-per-tenant.cce.edp.argoCD",label:"https",dotpos:"e,1260,1287.5 1260,1134.2 1260,1178.3 1260,1231.6 1260,1277",points:[[1260,1134],[1260,1178],[1260,1232],[1260,1277]],labelBBox:{x:1261,y:1199,width:34,height:18},parent:"otc-edp-per-tenant.cce.edp",relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"1kr1wg1",source:"otc-edp-per-tenant.cce.edp.ingressNginx",target:"otc-edp-per-tenant.cce.edp.forgejo",label:"https",dotpos:"e,923.46,1287.6 1136.4,1134.5 1073.1,1180 996.05,1235.4 931.65,1281.7",points:[[1136,1134],[1073,1180],[996,1235],[932,1282]],labelBBox:{x:1045,y:1199,width:34,height:18},parent:"otc-edp-per-tenant.cce.edp",relations:["123efwn"],color:"gray",line:"dashed",head:"normal"},{id:"1dcszi5",source:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",target:"otc-edp-per-tenant.cce.edp.forgejo",label:"registers",dotpos:"e,800,1287.4 800,401.47 800,598.41 800,1070.4 800,1276.9",points:[[800,401],[800,598],[800,1070],[800,1277]],labelBBox:{x:801,y:799,width:58,height:18},parent:"otc-edp-per-tenant",relations:["g9oj4f"],color:"gray",line:"dashed",head:"normal"},{id:"8msu1q",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.postgres",label:null,dotpos:"e,1618.1,1705.6 859.94,1467.1 901.94,1521.2 963.27,1585.7 1035,1617.4 1080.6,1637.5 1435.6,1619.1 1483,1634.4 1527.5,1648.7 1571.5,1673.7 1609.5,1699.7",points:[[860,1467],[902,1521],[963,1586],[1035,1617],[1081,1638],[1436,1619],[1483,1634],[1527,1649],[1571,1674],[1610,1700]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["hks76r"],color:"gray",line:"dashed",head:"normal"},{id:"120qe5o",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.redis",label:null,dotpos:"e,790.57,1705.6 797.44,1467.2 795.51,1534 792.87,1625.8 790.87,1695.1",points:[[797,1467],[796,1534],[793,1626],[791,1695]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["1w18ve8"],color:"gray",line:"dashed",head:"normal"},{id:"ealiax",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.objectstorage",label:null,dotpos:"e,1140.6,1705.7 882.38,1467.3 926.38,1513.4 982.22,1569.9 1035,1617.4 1065.7,1645 1100,1673.4 1132.4,1699.2",points:[[882,1467],[926,1513],[982,1570],[1035,1617],[1066,1645],[1100,1673],[1132,1699]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["15njmlz"],color:"gray",line:"dashed",head:"normal"},{id:"1trj5u6",source:"otc-edp-per-tenant.cce.edp.forgejo",target:"otc-edp-per-tenant.cloudServices.elasticsearch",label:null,dotpos:"e,401.41,1705.6 691.86,1467.2 608.89,1535.3 494.54,1629.2 409.54,1698.9",points:[[692,1467],[609,1535],[495,1629],[410,1699]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["1fzhjm9"],color:"gray",line:"dashed",head:"normal"},{id:"1asm38z",source:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow",target:"otc-edp-per-tenant.cloudServices",label:"deploys edp to otc.paas",dotpos:"e,1952,1792.7 4738.6,1134.4 4709.3,1265.2 4634.5,1506.1 4466,1617.4 4259.7,1753.6 2589.5,1785.4 1962.1,1792.6",points:[[4739,1134],[4709,1265],[4634,1506],[4466,1617],[4260,1754],[2590,1785],[1962,1793]],labelBBox:{x:3219,y:1730,width:152,height:18},parent:null,relations:["1pfc6bl"],color:"gray",line:"dashed",head:"normal"},{id:"1or831y",source:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow",target:"otc-edp-per-tenant.cce.edp",label:"deploys edp to otc.cce",dotpos:"e,1920,1323.8 4602.1,1134.5 4559.4,1155 4512.1,1173.9 4466,1184.6 4365.7,1207.9 2714.5,1189.2 2612,1199.6 2376.8,1223.4 2111.8,1278.8 1930.2,1321.4",points:[[4602,1134],[4559,1155],[4512,1174],[4466,1185],[4366,1208],[2714,1189],[2612,1200],[2377,1223],[2112,1279],[1930,1321]],labelBBox:{x:3117,y:1173,width:143,height:18},parent:null,relations:["uk77s5"],color:"gray",line:"dashed",head:"normal"}]},"otc-faas":{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/otc/otc-faas.c4",description:null,title:"OTC Prototype FaaS",id:"otc-faas",autoLayout:{direction:"TB"},hash:"e4aa9cf8218ee52688aa6e4b51a564a0b34f7773",bounds:{x:0,y:0,width:2086,height:802},nodes:[{id:"otc-faas",parent:null,level:0,children:["otc-faas.dev","otc-faas.prod"],inEdges:[],outEdges:[],deploymentRef:"otc-faas",title:"OTC prototype FaaS",kind:"cloud",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:"OTC environments for Prototype faaS."},tags:[],style:{opacity:15,size:"md"},depth:3,x:8,y:8,width:2070,height:786,labelBBox:{x:6,y:0,width:131,height:15}},{id:"otc-faas.dev",parent:"otc-faas",level:1,children:["otc-faas.dev.cce","otc-faas.dev.observability","otc-faas.dev.cloudServices"],inEdges:[],outEdges:[],deploymentRef:"otc-faas.dev",title:"tenant Dev",kind:"environment",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:"*.t09.de"},tags:[],style:{opacity:15,size:"md"},depth:2,x:58,y:79,width:972,height:665,labelBBox:{x:6,y:0,width:74,height:15}},{id:"otc-faas.dev.cce",parent:"otc-faas.dev",level:2,children:["otc-faas.dev.cce.edp"],inEdges:[],outEdges:["p747qx"],deploymentRef:"otc-faas.dev.cce",title:"Central Forgejo",kind:"kubernetes",technology:"Kubernetes",color:"primary",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"*.t09.de"},tags:[],style:{opacity:15,size:"md"},depth:1,x:108,y:150,width:454,height:266,labelBBox:{x:6,y:0,width:113,height:15}},{id:"otc-faas.dev.observability",parent:"otc-faas.dev",level:2,children:[],inEdges:[],outEdges:[],deploymentRef:"otc-faas.dev.observability",title:"Observability",kind:"kubernetes",technology:"Kubernetes",color:"primary",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"*.t09.de"},tags:[],style:{opacity:15,size:"md"},x:660,y:204,width:320,height:180,labelBBox:{x:86,y:53,width:178,height:67}},{id:"otc-faas.prod",parent:"otc-faas",level:1,children:["otc-faas.prod.cce","otc-faas.prod.observability","otc-faas.prod.cloudServices"],inEdges:[],outEdges:[],deploymentRef:"otc-faas.prod",title:"Tenant Prod",kind:"environment",technology:"OTC",color:"primary",shape:"rectangle",description:{txt:"*.buildth.ing"},tags:[],style:{opacity:15,size:"md"},depth:2,x:1080,y:79,width:948,height:665,labelBBox:{x:6,y:0,width:83,height:15}},{id:"otc-faas.prod.cce",parent:"otc-faas.prod",level:2,children:["otc-faas.prod.cce.edp"],inEdges:[],outEdges:["tb8sk9"],deploymentRef:"otc-faas.prod.cce",title:"Central Forgejo",kind:"kubernetes",technology:"Kubernetes",color:"primary",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"*.buildth.ing"},tags:[],style:{opacity:15,size:"md"},depth:1,x:1130,y:150,width:430,height:266,labelBBox:{x:6,y:0,width:113,height:15}},{id:"otc-faas.dev.cce.edp",parent:"otc-faas.dev.cce",level:3,children:[],inEdges:[],outEdges:["p747qx"],deploymentRef:"otc-faas.dev.cce.edp",title:"Forgejo Dev for platform team",kind:"cluster",color:"primary",shape:"rectangle",modelRef:"edp.forgejo",icon:"tech:go",description:{txt:"t09.de"},tags:[],style:{opacity:15,size:"md"},navigateTo:"forgejo",x:140,y:204,width:389,height:180,labelBBox:{x:46,y:63,width:328,height:47}},{id:"otc-faas.prod.observability",parent:"otc-faas.prod",level:2,children:[],inEdges:[],outEdges:[],deploymentRef:"otc-faas.prod.observability",title:"Observability",kind:"kubernetes",technology:"Kubernetes",color:"primary",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"*.buildth.ing"},tags:[],style:{opacity:15,size:"md"},x:1658,y:204,width:320,height:180,labelBBox:{x:86,y:53,width:178,height:67}},{id:"otc-faas.prod.cce.edp",parent:"otc-faas.prod.cce",level:3,children:[],inEdges:[],outEdges:["tb8sk9"],deploymentRef:"otc-faas.prod.cce.edp",title:"Forgejo for all EDP-tenants",kind:"cluster",color:"primary",shape:"rectangle",modelRef:"edp.forgejo",icon:"tech:go",description:{txt:"buildth.ing"},tags:[],style:{opacity:15,size:"md"},navigateTo:"forgejo",x:1162,y:204,width:365,height:180,labelBBox:{x:46,y:63,width:304,height:47}},{id:"otc-faas.dev.cloudServices",parent:"otc-faas.dev",level:2,children:[],inEdges:["p747qx"],outEdges:[],deploymentRef:"otc-faas.dev.cloudServices",title:"EDP Cloud Services",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",description:{txt:"EDP Cloud Services (Postgres, Redis, etc."},tags:[],style:{opacity:15,size:"md"},x:173,y:514,width:323,height:180,labelBBox:{x:18,y:53,width:287,height:67}},{id:"otc-faas.prod.cloudServices",parent:"otc-faas.prod",level:2,children:[],inEdges:["tb8sk9"],outEdges:[],deploymentRef:"otc-faas.prod.cloudServices",title:"EDP Cloud Services",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",description:{txt:"EDP Cloud Services (Postgres, Redis, etc."},tags:[],style:{opacity:15,size:"md"},x:1183,y:514,width:323,height:180,labelBBox:{x:18,y:53,width:287,height:67}}],edges:[{id:"p747qx",source:"otc-faas.dev.cce.edp",target:"otc-faas.dev.cloudServices",label:null,dotpos:"e,335,513.75 335,383.27 335,420.88 335,464.86 335,503.52",points:[[335,383],[335,421],[335,465],[335,504]],labelBBox:null,parent:"otc-faas.dev",relations:["dz2rdn"],color:"gray",line:"dashed",head:"normal"},{id:"tb8sk9",source:"otc-faas.prod.cce.edp",target:"otc-faas.prod.cloudServices",label:null,dotpos:"e,1345,513.75 1345,383.27 1345,420.88 1345,464.86 1345,503.52",points:[[1345,383],[1345,421],[1345,465],[1345,504]],labelBBox:null,parent:"otc-faas.prod",relations:["2shw6y"],color:"gray",line:"dashed",head:"normal"}]},"view_gitops-inner-outer-loop_15":{_type:"dynamic",tags:null,links:null,_stage:"layouted",sourcePath:"views/dynamic/cicd/gitops-inner-outer-loop.c4",description:null,title:"outer-ci-loop",id:"view_gitops-inner-outer-loop_15",variant:"diagram",autoLayout:{direction:"LR"},hash:"d85bdffdca5f49220457db75761ae8ba47744c16",sequenceLayout:{actors:[{id:"localbox.git",x:32,y:52,width:320,height:180,ports:[{id:"step-01_source",cx:160,cy:338,height:40,type:"source",position:"right"}]},{id:"edp.forgejogit",x:448,y:52,width:320,height:180,ports:[{id:"step-01_target",cx:160,cy:338,height:24,type:"target",position:"left"},{id:"step-02_source",cx:160,cy:360,height:40,type:"source",position:"right"},{id:"step-04_target",cx:160,cy:475,height:24,type:"target",position:"right"},{id:"step-05_source",cx:160,cy:568,height:40,type:"source",position:"right"}]},{id:"forgejoRunner",x:832,y:52,width:320,height:180,ports:[{id:"step-02_target",cx:160,cy:360,height:24,type:"target",position:"left"},{id:"step-03_source",cx:160,cy:382,height:40,type:"source",position:"right"},{id:"step-04_source",cx:160,cy:475,height:40,type:"source",position:"left"}]},{id:"edp.imageregistry",x:1216,y:52,width:373,height:180,ports:[{id:"step-03_target",cx:187,cy:382,height:24,type:"target",position:"left"},{id:"step-07_target",cx:187,cy:683,height:24,type:"target",position:"right"}]},{id:"edp.argoCD",x:1649,y:52,width:320,height:180,ports:[{id:"step-05_target",cx:160,cy:568,height:24,type:"target",position:"left"},{id:"step-06_source",cx:160,cy:590,height:40,type:"source",position:"right"}]},{id:"cloud",x:2033,y:52,width:320,height:180,ports:[{id:"step-06_target",cx:160,cy:590,height:24,type:"target",position:"left"},{id:"step-07_source",cx:160,cy:683,height:40,type:"source",position:"left"}]}],compounds:[{depth:0,x:0,y:0,width:384,height:527,id:"localbox",origin:"localbox"},{depth:0,x:416,y:0,width:384,height:735,id:"edp-1",origin:"edp"},{depth:0,x:1184,y:0,width:817,height:828,id:"edp-2",origin:"edp"}],steps:[{id:"step-01",sourceHandle:"step-01_source",targetHandle:"step-01_target",labelBBox:{width:91,height:27}},{id:"step-02",sourceHandle:"step-02_source",targetHandle:"step-02_target",labelBBox:{width:92,height:27}},{id:"step-03",sourceHandle:"step-03_source",targetHandle:"step-03_target",labelBBox:{width:159,height:27}},{id:"step-04",sourceHandle:"step-04_source",targetHandle:"step-04_target",labelBBox:{width:174,height:27}},{id:"step-05",sourceHandle:"step-05_source",targetHandle:"step-05_target",labelBBox:{width:164,height:27}},{id:"step-06",sourceHandle:"step-06_source",targetHandle:"step-06_target",labelBBox:{width:161,height:27}},{id:"step-07",sourceHandle:"step-07_source",targetHandle:"step-07_target",labelBBox:{width:113,height:27}}],parallelAreas:[],bounds:{x:0,y:0,width:2353,height:828}},bounds:{x:0,y:0,width:2150,height:1243},nodes:[{id:"localbox",parent:null,level:0,children:["localbox.git"],inEdges:[],outEdges:["step-01"],title:"localbox",modelRef:"localbox",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A local development system"},tags:[],technology:"Linux/Windows/Mac",kind:"system",depth:1,x:8,y:306,width:384,height:265,labelBBox:{x:6,y:0,width:66,height:15}},{id:"localbox.git",parent:"localbox",level:1,children:[],inEdges:[],outEdges:["step-01"],title:"git",modelRef:"localbox.git",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:15,size:"md"},description:{txt:"local git"},tags:[],technology:"Git",kind:"component",x:40,y:359,width:320,height:180,labelBBox:{x:119,y:53,width:113,height:67}},{id:"edp",parent:null,level:0,children:["edp.forgejogit","edp.imageregistry","edp.argoCD","edp.forgejo"],inEdges:["step-01","step-03","step-04","step-07"],outEdges:["step-02","step-06"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"secondary",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",depth:1,navigateTo:"edp",x:528,y:8,width:1064,height:861,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edp.forgejogit",parent:"edp",level:1,children:[],inEdges:["step-01","step-04"],outEdges:["step-02","step-05"],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"secondary",icon:"tech:git",style:{opacity:15,size:"md"},tags:[],kind:"component",x:595,y:359,width:320,height:180,labelBBox:{x:97,y:74,width:155,height:24}},{id:"forgejoRunner",parent:null,level:0,children:[],inEdges:["step-02"],outEdges:["step-03","step-04"],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:1232,y:909,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:102}},{id:"edp.imageregistry",parent:"edp",level:1,children:[],inEdges:["step-03","step-07"],outEdges:[],title:"Forgejo OCI Image Registry",modelRef:"edp.imageregistry",shape:"rectangle",color:"secondary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"Container Image Registry"},tags:[],technology:"Golang",kind:"component",x:568,y:649,width:373,height:180,labelBBox:{x:46,y:53,width:311,height:67}},{id:"edp.argoCD",parent:"edp",level:1,children:[],inEdges:["step-05"],outEdges:["step-06"],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"secondary",style:{opacity:20,size:"md"},description:{txt:"GitOps Service"},tags:[],kind:"container",navigateTo:"argoCD",x:1232,y:495,width:320,height:180,labelBBox:{x:107,y:63,width:105,height:48}},{id:"cloud",parent:null,level:0,children:[],inEdges:["step-06"],outEdges:["step-07"],title:"Cloud",modelRef:"cloud",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Cloud environments"},tags:[],technology:"IaaS/PaaS",kind:"system",x:1830,y:1063,width:320,height:180,labelBBox:{x:91,y:53,width:137,height:67}},{id:"edp.forgejo",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"Forgejo",modelRef:"edp.forgejo",shape:"rectangle",color:"gray",icon:"tech:go",style:{opacity:20,size:"md"},description:{txt:`Fully managed DevOps Platform +offering capabilities like +code version controling +collaboration and ticketing +and security scanning`},tags:[],technology:"Golang",kind:"container",isCustomized:!0,navigateTo:"forgejo",x:585,y:69,width:340,height:180,labelBBox:{x:45,y:17,width:279,height:139}}],edges:[{id:"step-01",source:"localbox.git",target:"edp.forgejogit",label:"git push",dotpos:"e,594.97,449 359.74,449 430.11,449 512.98,449 584.5,449",points:[[360,449],[430,449],[513,449],[585,449]],labelBBox:{x:429,y:417,width:75,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@0"},{id:"step-02",source:"edp.forgejogit",target:"forgejoRunner",label:"on push",dotpos:"e,1243.2,909.08 895.71,538.9 1008.4,612.21 1151.2,707.77 1171.7,734 1218.9,794.54 1183.7,836.08 1231.7,896 1233.2,897.83 1234.7,899.63 1236.2,901.41",points:[[896,539],[1008,612],[1151,708],[1172,734],[1219,795],[1184,836],[1232,896],[1233,898],[1235,900],[1236,901]],labelBBox:{x:1051,y:582,width:76,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@1"},{id:"step-03",source:"forgejoRunner",target:"edp.imageregistry",label:"pushes new image",dotpos:"e,823.44,828.86 1231.8,1011.9 1158.8,1011.9 1072.7,1003.2 1001.2,971.8 934.18,942.34 874.24,886.42 830.35,836.77",points:[[1232,1012],[1159,1012],[1073,1003],[1001,972],[934,942],[874,886],[830,837]],labelBBox:{x:1018,y:940,width:143,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@2"},{id:"step-04",source:"forgejoRunner",target:"edp.forgejogit",label:"pushes new appspec",dotpos:"s,892.11,538.97 899.79,546.08 915.25,560.79 929.55,576.84 941.18,594 994.62,672.87 940.47,726.37 1001.2,799.8 1033.6,839.02 1138.8,891.76 1231.7,933.12",points:[[900,546],[915,561],[930,577],[941,594],[995,673],[940,726],[1001,800],[1034,839],[1139,892],[1232,933]],labelBBox:{x:1010,y:768,width:158,height:19},dir:"back",parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@3"},{id:"step-05",source:"edp.forgejogit",target:"edp.argoCD",label:"triggers deployment",dotpos:"e,1231.9,550.99 914.25,482.97 1007.9,503.03 1126.5,528.41 1221.9,548.84",points:[[914,483],[1008,503],[1126,528],[1222,549]],labelBBox:{x:1015,y:473,width:148,height:19},parent:"edp",relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@4"},{id:"step-06",source:"edp.argoCD",target:"cloud",label:"deploys application",dotpos:"e,1894.7,1063.3 1486.9,674.69 1596,778.69 1775.3,949.49 1887.4,1056.4",points:[[1487,675],[1596,779],[1775,949],[1887,1056]],labelBBox:{x:1621,y:769,width:145,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@5"},{id:"step-07",source:"cloud",target:"edp.imageregistry",label:"pulls image",dotpos:"s,812.1,828.53 817.94,836.93 897.44,950.49 1047,1129 1231.7,1182.8 1431.9,1241.1 1674.4,1215.8 1830.1,1188.1",points:[[818,837],[897,950],[1047,1129],[1232,1183],[1432,1241],[1674,1216],[1830,1188]],labelBBox:{x:1346,y:1151,width:97,height:19},dir:"back",parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@6"}]},edpbuilderworkflow:{_type:"element",tags:null,links:null,viewOf:"edfbuilder",_stage:"layouted",sourcePath:"views/edp/edfbuilder.c4",description:{txt:"Describes the process how to create an EDP instance"},title:"edfbuilder",id:"edpbuilderworkflow",autoLayout:{direction:"LR",nodeSep:110,rankSep:120},hash:"40921acf4f52bd8d6d2ac3a0d1810b3b7bc13b2a",bounds:{x:0,y:0,width:320,height:180},nodes:[{id:"edfbuilder",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"edfbuilder",modelRef:"edfbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"EDP Foundry Builder"},tags:[],technology:"Golang",kind:"component",x:0,y:0,width:320,height:180,labelBBox:{x:74,y:53,width:203,height:67}}],edges:[]},edp:{_type:"element",tags:null,links:null,viewOf:"edp",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Context view",id:"edp",autoLayout:{direction:"TB"},hash:"28d4204eb300a4296f82769be0ee6d6ba8d0882b",bounds:{x:0,y:0,width:5229,height:943},nodes:[{id:"forgejoRunner",parent:null,level:0,children:[],inEdges:["stl3mw"],outEdges:["1cy1y20"],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:0,y:392,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:102}},{id:"developer",parent:null,level:0,children:[],inEdges:[],outEdges:["1y3lcyj","1ttqc1r","170qzun","1bt83vj","1nv0w41","1agven9","3nxrq7","bfgapq"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:25,size:"md"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:4909,y:69,width:320,height:180,labelBBox:{x:53,y:63,width:214,height:48}},{id:"edp",parent:null,level:0,children:["edp.forgejoActions","edp.api","edp.argoCD","edp.ui","edp.forgejo","edp.imageregistry","edp.grafana","edp.keycloak","edp.forgejogit","edp.loki","edp.prometheus","edp.mailhog","edp.minio","edp.monitoring","edp.openbao","edp.testApp","edp.application"],inEdges:["1cy1y20","1y3lcyj","1ttqc1r","170qzun","1bt83vj","1nv0w41","1agven9","3nxrq7","bfgapq"],outEdges:["stl3mw"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:25,size:"md"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",depth:1,navigateTo:"idp",x:390,y:8,width:4479,height:927,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edp.forgejoActions",parent:"edp",level:1,children:[],inEdges:["1cy1y20"],outEdges:["stl3mw"],title:"Forgejo Actions",modelRef:"edp.forgejoActions",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:25,size:"md"},description:{txt:"Continuous Integration like Github Actions"},tags:[],technology:"Golang",kind:"component",x:430,y:69,width:350,height:180,labelBBox:{x:46,y:44,width:288,height:86}},{id:"edp.api",parent:"edp",level:1,children:[],inEdges:["1y3lcyj"],outEdges:[],title:"API",modelRef:"edp.api",shape:"rectangle",color:"primary",icon:"tech:swagger",style:{opacity:25,size:"md"},description:{txt:"API for the EDP platform"},tags:[],kind:"container",x:3649,y:392,width:320,height:180,labelBBox:{x:62,y:63,width:226,height:48}},{id:"edp.argoCD",parent:"edp",level:1,children:[],inEdges:["1ttqc1r"],outEdges:["f6xyb4"],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"GitOps Service"},tags:[],kind:"container",navigateTo:"argoCD",x:4079,y:392,width:320,height:180,labelBBox:{x:108,y:63,width:105,height:48}},{id:"edp.ui",parent:"edp",level:1,children:[],inEdges:["170qzun"],outEdges:[],title:"Backstage",modelRef:"edp.ui",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Developer Portal"},tags:[],kind:"container",x:4509,y:392,width:320,height:180,labelBBox:{x:102,y:63,width:116,height:48}},{id:"edp.forgejo",parent:"edp",level:1,children:[],inEdges:["1bt83vj"],outEdges:[],title:"Forgejo",modelRef:"edp.forgejo",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:25,size:"md"},description:{txt:`Fully managed DevOps Platform +offering capabilities like +code version controling +collaboration and ticketing +and security scanning`},tags:[],technology:"Golang",kind:"container",navigateTo:"forgejo",x:1830,y:392,width:340,height:180,labelBBox:{x:46,y:17,width:278,height:139}},{id:"edp.imageregistry",parent:"edp",level:1,children:[],inEdges:["1nv0w41"],outEdges:[],title:"Forgejo OCI Image Registry",modelRef:"edp.imageregistry",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:25,size:"md"},description:{txt:"Container Image Registry"},tags:[],technology:"Golang",kind:"component",x:2280,y:392,width:373,height:180,labelBBox:{x:47,y:53,width:311,height:67}},{id:"edp.grafana",parent:"edp",level:1,children:[],inEdges:["3nxrq7"],outEdges:["1tfxhhz","1adt45o"],title:"Grafana",modelRef:"edp.grafana",shape:"rectangle",color:"primary",icon:"tech:grafana",style:{opacity:25,size:"md"},description:{txt:"Data visualization and monitoring"},tags:[],kind:"container",x:2763,y:392,width:345,height:180,labelBBox:{x:47,y:63,width:283,height:48}},{id:"edp.keycloak",parent:"edp",level:1,children:[],inEdges:["bfgapq"],outEdges:[],title:"Keycloak",modelRef:"edp.keycloak",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Single Sign On for all EDP products"},tags:[],kind:"container",navigateTo:"keycloak",x:3219,y:392,width:320,height:180,labelBBox:{x:39,y:63,width:242,height:48}},{id:"edp.forgejogit",parent:"edp",level:1,children:[],inEdges:["1agven9","f6xyb4"],outEdges:[],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"md"},tags:[],kind:"component",x:4079,y:715,width:320,height:180,labelBBox:{x:97,y:74,width:156,height:24}},{id:"edp.loki",parent:"edp",level:1,children:[],inEdges:["1tfxhhz"],outEdges:[],title:"Loki",modelRef:"edp.loki",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Log aggregation system"},tags:[],kind:"container",x:2561,y:715,width:320,height:180,labelBBox:{x:78,y:63,width:164,height:47}},{id:"edp.prometheus",parent:"edp",level:1,children:[],inEdges:["1adt45o"],outEdges:[],title:"Prometheus",modelRef:"edp.prometheus",shape:"rectangle",color:"primary",icon:"tech:prometheus",style:{opacity:25,size:"md"},description:{txt:"Monitoring and alerting toolkit"},tags:[],kind:"container",x:2991,y:715,width:320,height:180,labelBBox:{x:46,y:63,width:258,height:47}},{id:"edp.mailhog",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Web and API based SMTP testing"},tags:[],kind:"container",navigateTo:"mailhog",x:890,y:69,width:320,height:180,labelBBox:{x:44,y:63,width:232,height:48}},{id:"edp.minio",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"Minio",modelRef:"edp.minio",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"S3 compatible blob storage"},tags:[],kind:"container",navigateTo:"minio",x:1320,y:69,width:320,height:180,labelBBox:{x:67,y:63,width:186,height:48}},{id:"edp.monitoring",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"Monitoring",modelRef:"edp.monitoring",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Observability system to monitor deployed components"},tags:[],kind:"container",navigateTo:"monitoring",x:1860,y:69,width:320,height:180,labelBBox:{x:21,y:54,width:278,height:66}},{id:"edp.openbao",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"OpenBao",modelRef:"edp.openbao",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Secure secret storage"},tags:[],kind:"container",x:430,y:392,width:320,height:180,labelBBox:{x:85,y:63,width:151,height:48}},{id:"edp.testApp",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Testapp to validate deployments"},tags:[],kind:"container",navigateTo:"testapp",x:860,y:392,width:320,height:180,labelBBox:{x:50,y:63,width:220,height:48}},{id:"edp.application",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"application",modelRef:"edp.application",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"An application description"},tags:[],technology:"DSL",kind:"schema",x:1400,y:392,width:320,height:180,labelBBox:{x:73,y:53,width:175,height:67}}],edges:[{id:"1cy1y20",source:"forgejoRunner",target:"edp.forgejoActions",label:"register",dotpos:"e,430.23,247.69 241.41,392.19 269.67,363.9 302.52,333.63 335.34,309.2 362.09,289.28 391.8,270.23 421.45,252.8",points:[[241,392],[270,364],[303,334],[335,309],[362,289],[392,270],[421,253]],labelBBox:{x:336,y:309,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"1y3lcyj",source:"developer",target:"edp.api",label:"uses API",dotpos:"e,3968.7,410.28 4909.1,244.68 4904.7,246.27 4900.4,247.79 4896,249.2 4732.6,302.52 4683.6,281.55 4514,309.2 4296,344.73 4236.3,330.98 4024,392 4009,396.32 3993.6,401.37 3978.3,406.83",points:[[4909,245],[4905,246],[4900,248],[4896,249],[4733,303],[4684,282],[4514,309],[4296,345],[4236,331],[4024,392],[4009,396],[3994,401],[3978,407]],labelBBox:{x:4515,y:309,width:60,height:18},parent:null,relations:["1l9a3pd"],color:"gray",line:"dashed",head:"normal"},{id:"1ttqc1r",source:"developer",target:"edp.argoCD",label:"manages deployments",dotpos:"e,4398.9,414.45 4909.4,243.91 4904.9,245.75 4900.4,247.51 4896,249.2 4797,287.01 4766,276.46 4665.2,309.2 4569.3,340.33 4547.5,354.32 4454,392 4439.2,397.97 4423.8,404.22 4408.4,410.52",points:[[4909,244],[4905,246],[4900,248],[4896,249],[4797,287],[4766,276],[4665,309],[4569,340],[4548,354],[4454,392],[4439,398],[4424,404],[4408,411]],labelBBox:{x:4666,y:309,width:145,height:18},parent:null,relations:["1ghp31l"],color:"gray",line:"dashed",head:"normal"},{id:"170qzun",source:"developer",target:"edp.ui",label:"manages project",dotpos:"e,4767.9,392.21 4944.9,249.03 4918.7,268.47 4891.5,289.22 4866.5,309.2 4836.5,333.25 4804.7,360.19 4775.6,385.47",points:[[4945,249],[4919,268],[4891,289],[4867,309],[4836,333],[4805,360],[4776,385]],labelBBox:{x:4868,y:309,width:108,height:18},parent:null,relations:["yk9zv2","1woleh6"],color:"gray",line:"dashed",head:"normal"},{id:"1bt83vj",source:"developer",target:"edp.forgejo",label:"manages code",dotpos:"e,2170.2,408.41 4909.3,245.41 4904.9,246.79 4900.4,248.06 4896,249.2 4470.7,359.05 3358.2,276.52 2920.2,309.2 2609.9,332.34 2526.7,315.74 2225,392 2210.2,395.74 2195.1,400.2 2180.1,405.12",points:[[4909,245],[4905,247],[4900,248],[4896,249],[4471,359],[3358,277],[2920,309],[2610,332],[2527,316],[2225,392],[2210,396],[2195,400],[2180,405]],labelBBox:{x:2921,y:309,width:96,height:18},parent:null,relations:["12036hb"],color:"gray",line:"dashed",head:"normal"},{id:"1nv0w41",source:"developer",target:"edp.imageregistry",label:"pushes and pull images",dotpos:"e,2653.6,407.48 4909.3,245.36 4904.9,246.76 4900.4,248.04 4896,249.2 4562.4,336.85 3688.7,280.27 3344.9,309.2 3060.5,333.14 2985.2,323.73 2708,392 2693.4,395.61 2678.4,399.82 2663.4,404.41",points:[[4909,245],[4905,247],[4900,248],[4896,249],[4562,337],[3689,280],[3345,309],[3060,333],[2985,324],[2708,392],[2693,396],[2678,400],[2663,404]],labelBBox:{x:3346,y:309,width:151,height:18},parent:null,relations:["177bm2y"],color:"gray",line:"dashed",head:"normal"},{id:"1agven9",source:"developer",target:"edp.forgejogit",label:"uses git",dotpos:"e,4398.8,781.42 5051.3,249 5028.2,341.96 4979.1,486.12 4884,572 4750.9,692.23 4550.9,751.24 4408.9,779.44",points:[[5051,249],[5028,342],[4979,486],[4884,572],[4751,692],[4551,751],[4409,779]],labelBBox:{x:5005,y:470,width:52,height:18},parent:null,relations:["1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"3nxrq7",source:"developer",target:"edp.grafana",label:"monitors",dotpos:"e,3108.5,408.4 4909.3,245.25 4904.8,246.68 4900.4,248 4896,249.2 4675.3,309.5 4096.2,289.17 3868.3,309.2 3554.4,336.8 3469.8,315.67 3164,392 3148.9,395.77 3133.5,400.29 3118.1,405.25",points:[[4909,245],[4905,247],[4900,248],[4896,249],[4675,310],[4096,289],[3868,309],[3554,337],[3470,316],[3164,392],[3149,396],[3133,400],[3118,405]],labelBBox:{x:3869,y:309,width:58,height:18},parent:null,relations:["1xiorre"],color:"gray",line:"dashed",head:"normal"},{id:"bfgapq",source:"developer",target:"edp.keycloak",label:"authenticates",dotpos:"e,3538.8,409.46 4909.2,245.06 4904.8,246.54 4900.4,247.93 4896,249.2 4613.1,331.45 4528.6,277.01 4235.7,309.2 3949.9,340.62 3871.9,317.96 3594,392 3579.1,395.97 3563.9,400.73 3548.8,405.96",points:[[4909,245],[4905,247],[4900,248],[4896,249],[4613,331],[4529,277],[4236,309],[3950,341],[3872,318],[3594,392],[3579,396],[3564,401],[3549,406]],labelBBox:{x:4237,y:309,width:87,height:18},parent:null,relations:["jpl8ll"],color:"gray",line:"dashed",head:"normal"},{id:"f6xyb4",source:"edp.argoCD",target:"edp.forgejogit",label:"Syncs git repo",dotpos:"e,4239,714.97 4239,571.93 4239,613.13 4239,662.24 4239,704.63",points:[[4239,572],[4239,613],[4239,662],[4239,705]],labelBBox:{x:4240,y:632,width:93,height:18},parent:"edp",relations:["6mupa0"],color:"gray",line:"dashed",head:"normal"},{id:"1tfxhhz",source:"edp.grafana",target:"edp.loki",label:"get logs",dotpos:"e,2780.6,714.97 2876.4,571.93 2848.5,613.66 2815.1,663.49 2786.4,706.24",points:[[2876,572],[2848,614],[2815,663],[2786,706]],labelBBox:{x:2836,y:632,width:53,height:18},parent:"edp",relations:["1n1utzc"],color:"gray",line:"dashed",head:"normal"},{id:"1adt45o",source:"edp.grafana",target:"edp.prometheus",label:"get metrics and alerts",dotpos:"e,3091.5,714.97 2995.6,571.93 3023.6,613.66 3057,663.49 3085.6,706.24",points:[[2996,572],[3024,614],[3057,663],[3086,706]],labelBBox:{x:3051,y:632,width:138,height:18},parent:"edp",relations:["13uvtiq"],color:"gray",line:"dashed",head:"normal"},{id:"stl3mw",source:"edp.forgejoActions",target:"forgejoRunner",label:"runs workflows",dotpos:"e,319.93,392.23 511.82,249.14 480.79,276.98 445.37,306.94 411.02,332 385.14,350.88 356.74,369.52 328.64,386.89",points:[[512,249],[481,277],[445,307],[411,332],[385,351],[357,370],[329,387]],labelBBox:{x:440,y:309,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"}]},keycloak:{_type:"element",tags:null,links:null,viewOf:"edp.keycloak",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Keycloak",id:"keycloak",autoLayout:{direction:"TB"},hash:"528a426001df41ee3034ded0cc7ae02a1bd96842",bounds:{x:0,y:0,width:927,height:560},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["119ru5h"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:48,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.keycloak",parent:null,level:0,children:["edp.keycloak.keycloak","edp.keycloak.keycloakDB"],inEdges:["119ru5h"],outEdges:[],title:"Keycloak",modelRef:"edp.keycloak",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Single Sign On for all EDP products"},tags:[],kind:"container",depth:1,x:8,y:271,width:911,height:281,labelBBox:{x:6,y:0,width:66,height:15}},{id:"edp.keycloak.keycloak",parent:"edp.keycloak",level:1,children:[],inEdges:["119ru5h"],outEdges:["kn0x70"],title:"Keycloak",modelRef:"edp.keycloak.keycloak",shape:"rectangle",color:"primary",icon:"tech:java",style:{opacity:15,size:"md"},tags:[],technology:"Java",kind:"component",x:48,y:332,width:320,height:180,labelBBox:{x:103,y:64,width:144,height:46}},{id:"edp.keycloak.keycloakDB",parent:"edp.keycloak",level:1,children:[],inEdges:["kn0x70"],outEdges:[],title:"Database",modelRef:"edp.keycloak.keycloakDB",shape:"storage",color:"primary",icon:"tech:postgresql",style:{opacity:15,size:"md"},tags:[],technology:"Postgresql",kind:"component",x:559,y:332,width:320,height:180,labelBBox:{x:101,y:64,width:148,height:46}}],edges:[{id:"119ru5h",source:"edp.ingressNginx",target:"edp.keycloak.keycloak",label:"https",dotpos:"e,208,332.26 208,179.87 208,223.7 208,276.72 208,321.86",points:[[208,180],[208,224],[208,277],[208,322]],labelBBox:{x:209,y:240,width:34,height:18},parent:null,relations:["h3rut2"],color:"gray",line:"dashed",head:"normal"},{id:"kn0x70",source:"edp.keycloak.keycloak",target:"edp.keycloak.keycloakDB",label:"reads/writes",dotpos:"e,558.2,422 367.93,422 425.1,422 489.73,422 547.81,422",points:[[368,422],[425,422],[490,422],[548,422]],labelBBox:{x:424,y:396,width:79,height:18},parent:"edp.keycloak",relations:["18zxrhs"],color:"gray",line:"dashed",head:"normal"}]},forgejo:{_type:"element",tags:null,links:null,viewOf:"edp.forgejo",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Forgejo",id:"forgejo",autoLayout:{direction:"TB"},hash:"e58fa1188b5809568e6fb20b5adc1584fef396d8",bounds:{x:0,y:0,width:846,height:528},nodes:[{id:"edp.forgejo",parent:null,level:0,children:["edp.forgejo.forgejocollaboration","edp.forgejo.forgejoproject"],inEdges:["1dgzzfb"],outEdges:[],title:"Forgejo",modelRef:"edp.forgejo",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:20,size:"md"},description:{txt:`Fully managed DevOps Platform +offering capabilities like +code version controling +collaboration and ticketing +and security scanning`},tags:[],technology:"Golang",kind:"container",depth:1,x:8,y:239,width:830,height:281,labelBBox:{x:6,y:0,width:58,height:15}},{id:"edp.forgejo.forgejocollaboration",parent:"edp.forgejo",level:1,children:[],inEdges:[],outEdges:[],title:"Collaboration",modelRef:"edp.forgejo.forgejocollaboration",shape:"rectangle",color:"primary",icon:"tech:github",style:{opacity:15,size:"md"},tags:[],kind:"component",x:48,y:300,width:320,height:180,labelBBox:{x:85,y:74,width:180,height:24}},{id:"edp.forgejo.forgejoproject",parent:"edp.forgejo",level:1,children:[],inEdges:[],outEdges:[],title:"Project Mgmt",modelRef:"edp.forgejo.forgejoproject",shape:"rectangle",color:"primary",icon:"tech:github",style:{opacity:15,size:"md"},tags:[],kind:"component",x:478,y:300,width:320,height:180,labelBBox:{x:85,y:74,width:180,height:24}},{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["1dgzzfb"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:48,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}}],edges:[{id:"1dgzzfb",source:"edp.ingressNginx",target:"edp.forgejo",label:"https",dotpos:"e,208,238.8 208,179.6 208,195.09 208,211.63 208,228.36",points:[[208,180],[208,195],[208,212],[208,228]],labelBBox:{x:173,y:186,width:34,height:18},parent:null,relations:["123efwn"],color:"gray",line:"dashed",head:"normal"}]},crossplane:{_type:"element",tags:null,links:null,viewOf:"edp.crossplane",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Crossplane",id:"crossplane",autoLayout:{direction:"TB"},hash:"21cafdc6d03bbe02437c3a01524d368cfd652a88",bounds:{x:0,y:0,width:1276,height:597},nodes:[{id:"edp.crossplane",parent:null,level:0,children:["edp.crossplane.crossplane","edp.crossplane.crossplaneFunction","edp.crossplane.crossplaneRbacManager","edp.crossplane.providerArgoCD","edp.crossplane.providerKind","edp.crossplane.providerShell"],inEdges:[],outEdges:[],title:"Crossplane",modelRef:"edp.crossplane",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Declarative management of ressources"},tags:["internal"],kind:"container",depth:1,x:8,y:8,width:1260,height:581,labelBBox:{x:6,y:0,width:80,height:15}},{id:"edp.crossplane.crossplane",parent:"edp.crossplane",level:1,children:[],inEdges:[],outEdges:[],title:"Crossplane",modelRef:"edp.crossplane.crossplane",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:48,y:69,width:320,height:180,labelBBox:{x:107,y:74,width:105,height:24}},{id:"edp.crossplane.crossplaneFunction",parent:"edp.crossplane",level:1,children:[],inEdges:[],outEdges:[],title:"Function Patch and Transform",modelRef:"edp.crossplane.crossplaneFunction",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:478,y:69,width:320,height:180,labelBBox:{x:23,y:74,width:273,height:24}},{id:"edp.crossplane.crossplaneRbacManager",parent:"edp.crossplane",level:1,children:[],inEdges:[],outEdges:[],title:"RBAC Manager",modelRef:"edp.crossplane.crossplaneRbacManager",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:908,y:69,width:320,height:180,labelBBox:{x:88,y:74,width:144,height:24}},{id:"edp.crossplane.providerArgoCD",parent:"edp.crossplane",level:1,children:[],inEdges:[],outEdges:[],title:"ArgoCD Provider",modelRef:"edp.crossplane.providerArgoCD",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:48,y:369,width:320,height:180,labelBBox:{x:82,y:74,width:155,height:24}},{id:"edp.crossplane.providerKind",parent:"edp.crossplane",level:1,children:[],inEdges:[],outEdges:[],title:"Kind Provider",modelRef:"edp.crossplane.providerKind",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:478,y:369,width:320,height:180,labelBBox:{x:98,y:74,width:124,height:24}},{id:"edp.crossplane.providerShell",parent:"edp.crossplane",level:1,children:[],inEdges:[],outEdges:[],title:"Shell Provider",modelRef:"edp.crossplane.providerShell",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:908,y:369,width:320,height:180,labelBBox:{x:96,y:74,width:129,height:24}}],edges:[]},externalSecrets:{_type:"element",tags:null,links:null,viewOf:"edp.externalSecrets",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"external-secrets",id:"externalSecrets",autoLayout:{direction:"TB"},hash:"b3af3338d1f389aa939be93f7233de72e9cf818b",bounds:{x:0,y:0,width:846,height:597},nodes:[{id:"edp.externalSecrets",parent:null,level:0,children:["edp.externalSecrets.externalSecrets","edp.externalSecrets.certController","edp.externalSecrets.webhook"],inEdges:[],outEdges:[],title:"external-secrets",modelRef:"edp.externalSecrets",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],kind:"container",depth:1,x:8,y:8,width:830,height:581,labelBBox:{x:6,y:0,width:119,height:15}},{id:"edp.externalSecrets.externalSecrets",parent:"edp.externalSecrets",level:1,children:[],inEdges:[],outEdges:[],title:"external-secrets controller",modelRef:"edp.externalSecrets.externalSecrets",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:48,y:69,width:320,height:180,labelBBox:{x:43,y:74,width:234,height:24}},{id:"edp.externalSecrets.certController",parent:"edp.externalSecrets",level:1,children:[],inEdges:[],outEdges:[],title:"cert-controller",modelRef:"edp.externalSecrets.certController",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:478,y:69,width:320,height:180,labelBBox:{x:97,y:74,width:126,height:24}},{id:"edp.externalSecrets.webhook",parent:"edp.externalSecrets",level:1,children:[],inEdges:[],outEdges:[],title:"webhook",modelRef:"edp.externalSecrets.webhook",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:48,y:369,width:320,height:180,labelBBox:{x:118,y:74,width:84,height:24}}],edges:[]},velero:{_type:"element",tags:null,links:null,viewOf:"edp.velero",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Velero",id:"velero",autoLayout:{direction:"TB"},hash:"31cb339645f3556f63935e842bc8b051e3e17e78",bounds:{x:0,y:0,width:826,height:564},nodes:[{id:"edp.velero",parent:null,level:0,children:["edp.velero.velero"],inEdges:[],outEdges:["13dald4"],title:"Velero",modelRef:"edp.velero",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Backup Kubernetes resources"},tags:["internal"],kind:"container",depth:1,x:434,y:8,width:384,height:265,labelBBox:{x:6,y:0,width:49,height:15}},{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["mcc3r"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:0,y:384,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.velero.velero",parent:"edp.velero",level:1,children:[],inEdges:[],outEdges:["13dald4"],title:"Velero",modelRef:"edp.velero.velero",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:466,y:61,width:320,height:180,labelBBox:{x:129,y:74,width:62,height:24}},{id:"edp.minio",parent:null,level:0,children:[],inEdges:["13dald4","mcc3r"],outEdges:[],title:"Minio",modelRef:"edp.minio",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"S3 compatible blob storage"},tags:[],kind:"container",navigateTo:"minio",x:466,y:384,width:320,height:180,labelBBox:{x:67,y:63,width:186,height:48}}],edges:[{id:"13dald4",source:"edp.velero.velero",target:"edp.minio",label:"store backups",dotpos:"e,626.02,384.17 626.02,241.13 626.02,282.33 626.02,331.44 626.02,373.83",points:[[626,241],[626,282],[626,331],[626,374]],labelBBox:{x:627,y:301,width:91,height:18},parent:null,relations:["1mazt1x"],color:"gray",line:"dashed",head:"normal"},{id:"mcc3r",source:"edp.ingressNginx",target:"edp.minio",label:"https",dotpos:"e,466.11,474 319.74,474 363.61,474 411.35,474 455.79,474",points:[[320,474],[364,474],[411,474],[456,474]],labelBBox:{x:376,y:448,width:34,height:18},parent:null,relations:["fe65w2"],color:"gray",line:"dashed",head:"normal"}]},minio:{_type:"element",tags:null,links:null,viewOf:"edp.minio",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Minio",id:"minio",autoLayout:{direction:"TB"},hash:"0fb400499e182662d442885af28e9f6c9738a4da",bounds:{x:0,y:0,width:750,height:544},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["jfb4ud"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:0,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.velero",parent:null,level:0,children:[],inEdges:[],outEdges:["wqj1c3"],title:"Velero",modelRef:"edp.velero",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Backup Kubernetes resources"},tags:["internal"],kind:"container",navigateTo:"velero",x:430,y:0,width:320,height:180,labelBBox:{x:58,y:63,width:205,height:48}},{id:"edp.minio",parent:null,level:0,children:["edp.minio.minio"],inEdges:["jfb4ud","wqj1c3"],outEdges:[],title:"Minio",modelRef:"edp.minio",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"S3 compatible blob storage"},tags:[],kind:"container",depth:1,x:183,y:271,width:384,height:265,labelBBox:{x:6,y:0,width:36,height:15}},{id:"edp.minio.minio",parent:"edp.minio",level:1,children:[],inEdges:["jfb4ud","wqj1c3"],outEdges:[],title:"S3 Blob Storage",modelRef:"edp.minio.minio",shape:"storage",color:"primary",style:{opacity:15,size:"md"},tags:[],technology:"Minio",kind:"component",x:215,y:324,width:320,height:180,labelBBox:{x:85,y:64,width:150,height:46}}],edges:[{id:"jfb4ud",source:"edp.ingressNginx",target:"edp.minio.minio",label:"https",dotpos:"e,314.96,323.05 219.34,179.84 247.25,221.64 280.62,271.62 309.29,314.56",points:[[219,180],[247,222],[281,272],[309,315]],labelBBox:{x:275,y:240,width:34,height:18},parent:null,relations:["fe65w2"],color:"gray",line:"dashed",head:"normal"},{id:"wqj1c3",source:"edp.velero",target:"edp.minio.minio",label:"store backups",dotpos:"e,435.08,323.05 530.7,179.84 502.79,221.64 469.42,271.62 440.75,314.56",points:[[531,180],[503,222],[469,272],[441,315]],labelBBox:{x:490,y:240,width:91,height:18},parent:null,relations:["1mazt1x"],color:"gray",line:"dashed",head:"normal"}]},monitoring:{_type:"element",tags:null,links:null,viewOf:"edp.monitoring",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Monitoring",id:"monitoring",autoLayout:{direction:"TB"},hash:"0eedaf64b05f32fb962d9b885c9c7febad53741c",bounds:{x:0,y:0,width:878,height:645},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["j52jq6","15c9gki"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:510,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.monitoring",parent:null,level:0,children:["edp.monitoring.loki","edp.monitoring.alloy"],inEdges:["j52jq6","15c9gki"],outEdges:[],title:"Monitoring",modelRef:"edp.monitoring",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Observability system to monitor deployed components"},tags:[],kind:"container",depth:2,x:8,y:271,width:862,height:366,labelBBox:{x:6,y:0,width:75,height:15}},{id:"edp.monitoring.loki",parent:"edp.monitoring",level:1,children:["edp.monitoring.loki.queryFrontend"],inEdges:["15c9gki"],outEdges:[],title:"Loki",modelRef:"edp.monitoring.loki",shape:"rectangle",color:"primary",icon:"tech:grafana",style:{opacity:20,size:"md"},description:{txt:"Log aggregation system"},tags:[],kind:"container",depth:1,x:48,y:332,width:384,height:265,labelBBox:{x:6,y:0,width:30,height:15}},{id:"edp.monitoring.alloy",parent:"edp.monitoring",level:1,children:[],inEdges:["j52jq6"],outEdges:[],title:"Alloy",modelRef:"edp.monitoring.alloy",shape:"rectangle",color:"primary",icon:"tech:grafana",style:{opacity:15,size:"md",multiple:!0},description:{txt:"Open Telemetry Collector"},tags:[],kind:"component",x:510,y:385,width:320,height:180,labelBBox:{x:59,y:63,width:233,height:48}},{id:"edp.monitoring.loki.queryFrontend",parent:"edp.monitoring.loki",level:2,children:[],inEdges:["15c9gki"],outEdges:[],title:"Query Frontend",modelRef:"edp.monitoring.loki.queryFrontend",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:80,y:385,width:320,height:180,labelBBox:{x:88,y:74,width:144,height:24}}],edges:[{id:"j52jq6",source:"edp.ingressNginx",target:"edp.monitoring.alloy",label:"https",dotpos:"e,670,385.47 670,179.88 670,238.29 670,314.8 670,375.17",points:[[670,180],[670,238],[670,315],[670,375]],labelBBox:{x:671,y:240,width:34,height:18},parent:null,relations:["1jvab2g"],color:"gray",line:"dashed",head:"normal"},{id:"15c9gki",source:"edp.ingressNginx",target:"edp.monitoring.loki.queryFrontend",label:"https",dotpos:"e,302.37,385.41 521.62,179.94 481.62,206.88 439.6,238.08 404,270.8 369.46,302.55 336.06,341.85 308.52,377.41",points:[[522,180],[482,207],[440,238],[404,271],[369,303],[336,342],[309,377]],labelBBox:{x:438,y:240,width:34,height:18},parent:null,relations:["fs60l7"],color:"gray",line:"dashed",head:"normal"}]},ingressNginx:{_type:"element",tags:null,links:null,viewOf:"edp.ingressNginx",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Ingress",id:"ingressNginx",autoLayout:{direction:"TB"},hash:"7a821addac59ba362551aa1d990ed1be9968679c",bounds:{x:0,y:0,width:3780,height:564},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:["edp.ingressNginx.ingressNginx"],inEdges:[],outEdges:["1poylyw","llqgvs","75xltk","dh7ut5","1bv0wod","68hu20","nx2xew","momp7g","8cmkj7"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",depth:1,x:1708,y:8,width:384,height:265,labelBBox:{x:6,y:0,width:54,height:15}},{id:"edp.ingressNginx.ingressNginx",parent:"edp.ingressNginx",level:1,children:[],inEdges:[],outEdges:["1poylyw","llqgvs","75xltk","dh7ut5","1bv0wod","68hu20","nx2xew","momp7g","8cmkj7"],title:"ingress-nginx",modelRef:"edp.ingressNginx.ingressNginx",shape:"rectangle",color:"primary",icon:"tech:nginx",style:{opacity:15,size:"md"},tags:[],technology:"Nginx",kind:"component",x:1740,y:61,width:320,height:180,labelBBox:{x:85,y:64,width:181,height:46}},{id:"edp.argoCD",parent:null,level:0,children:[],inEdges:["1poylyw"],outEdges:[],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"GitOps Service"},tags:[],kind:"container",navigateTo:"argoCD",x:0,y:384,width:320,height:180,labelBBox:{x:108,y:63,width:105,height:48}},{id:"edp.ui",parent:null,level:0,children:[],inEdges:["llqgvs"],outEdges:[],title:"Backstage",modelRef:"edp.ui",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Developer Portal"},tags:[],kind:"container",x:430,y:384,width:320,height:180,labelBBox:{x:102,y:63,width:116,height:48}},{id:"edp.forgejo",parent:null,level:0,children:[],inEdges:["75xltk"],outEdges:[],title:"Forgejo",modelRef:"edp.forgejo",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:20,size:"md"},description:{txt:`Fully managed DevOps Platform +offering capabilities like +code version controling +collaboration and ticketing +and security scanning`},tags:[],technology:"Golang",kind:"container",navigateTo:"forgejo",x:860,y:384,width:340,height:180,labelBBox:{x:46,y:17,width:278,height:139}},{id:"edp.keycloak",parent:null,level:0,children:[],inEdges:["dh7ut5"],outEdges:[],title:"Keycloak",modelRef:"edp.keycloak",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Single Sign On for all EDP products"},tags:[],kind:"container",navigateTo:"keycloak",x:1310,y:384,width:320,height:180,labelBBox:{x:39,y:63,width:242,height:48}},{id:"edp.mailhog",parent:null,level:0,children:[],inEdges:["1bv0wod"],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Web and API based SMTP testing"},tags:[],kind:"container",navigateTo:"mailhog",x:1740,y:384,width:320,height:180,labelBBox:{x:44,y:63,width:232,height:48}},{id:"edp.minio",parent:null,level:0,children:[],inEdges:["68hu20"],outEdges:[],title:"Minio",modelRef:"edp.minio",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"S3 compatible blob storage"},tags:[],kind:"container",navigateTo:"minio",x:2170,y:384,width:320,height:180,labelBBox:{x:67,y:63,width:186,height:48}},{id:"edp.monitoring",parent:null,level:0,children:[],inEdges:["nx2xew"],outEdges:[],title:"Monitoring",modelRef:"edp.monitoring",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Observability system to monitor deployed components"},tags:[],kind:"container",navigateTo:"monitoring",x:2600,y:384,width:320,height:180,labelBBox:{x:21,y:54,width:278,height:66}},{id:"edp.openbao",parent:null,level:0,children:[],inEdges:["momp7g"],outEdges:[],title:"OpenBao",modelRef:"edp.openbao",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Secure secret storage"},tags:[],kind:"container",x:3030,y:384,width:320,height:180,labelBBox:{x:85,y:63,width:151,height:48}},{id:"edp.testApp",parent:null,level:0,children:[],inEdges:["8cmkj7"],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Testapp to validate deployments"},tags:[],kind:"container",navigateTo:"testapp",x:3460,y:384,width:320,height:180,labelBBox:{x:50,y:63,width:220,height:48}}],edges:[{id:"1poylyw",source:"edp.ingressNginx.ingressNginx",target:"edp.argoCD",label:"https",dotpos:"e,319.96,401.87 1740.1,163.73 1459.5,186.77 861.79,248.41 375.02,384 360.03,388.17 344.69,393.11 329.44,398.47",points:[[1740,164],[1459,187],[862,248],[375,384],[360,388],[345,393],[329,398]],labelBBox:{x:704,y:301,width:34,height:18},parent:null,relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"llqgvs",source:"edp.ingressNginx.ingressNginx",target:"edp.ui",label:"https",dotpos:"e,749.97,403.03 1740.4,176.52 1525.1,211.47 1131,282.97 805.02,384 790.08,388.63 774.74,393.9 759.47,399.5",points:[[1740,177],[1525,211],[1131,283],[805,384],[790,389],[775,394],[759,400]],labelBBox:{x:1102,y:301,width:34,height:18},parent:null,relations:["v8c8aq"],color:"gray",line:"dashed",head:"normal"},{id:"75xltk",source:"edp.ingressNginx.ingressNginx",target:"edp.forgejo",label:"https",dotpos:"e,1200.3,405 1740.1,208.08 1609.3,254.18 1419.6,321.88 1255,384 1240.3,389.56 1225.1,395.4 1209.8,401.31",points:[[1740,208],[1609,254],[1420,322],[1255,384],[1240,390],[1225,395],[1210,401]],labelBBox:{x:1468,y:301,width:34,height:18},parent:null,relations:["123efwn"],color:"gray",line:"dashed",head:"normal"},{id:"dh7ut5",source:"edp.ingressNginx.ingressNginx",target:"edp.keycloak",label:"https",dotpos:"e,1589.1,384.17 1780.8,241.13 1723.7,283.73 1655.3,334.77 1597.2,378.11",points:[[1781,241],[1724,284],[1655,335],[1597,378]],labelBBox:{x:1699,y:301,width:34,height:18},parent:null,relations:["h3rut2"],color:"gray",line:"dashed",head:"normal"},{id:"1bv0wod",source:"edp.ingressNginx.ingressNginx",target:"edp.mailhog",label:"https",dotpos:"e,1900,384.17 1900,241.13 1900,282.33 1900,331.44 1900,373.83",points:[[1900,241],[1900,282],[1900,331],[1900,374]],labelBBox:{x:1901,y:301,width:34,height:18},parent:null,relations:["ofdedh"],color:"gray",line:"dashed",head:"normal"},{id:"68hu20",source:"edp.ingressNginx.ingressNginx",target:"edp.minio",label:"https",dotpos:"e,2211,384.17 2019.2,241.13 2076.3,283.73 2144.7,334.77 2202.8,378.11",points:[[2019,241],[2076,284],[2145,335],[2203,378]],labelBBox:{x:2129,y:301,width:34,height:18},parent:null,relations:["fe65w2"],color:"gray",line:"dashed",head:"normal"},{id:"nx2xew",source:"edp.ingressNginx.ingressNginx",target:"edp.monitoring",label:"https",dotpos:"e,2600.1,405.82 2059.8,207.26 2190.8,252.97 2380.8,320.52 2545,384 2559.8,389.73 2575.2,395.8 2590.5,401.97",points:[[2060,207],[2191,253],[2381,321],[2545,384],[2560,390],[2575,396],[2591,402]],labelBBox:{x:2370,y:301,width:34,height:18},parent:null,relations:["1jvab2g","fs60l7"],color:"gray",line:"dashed",head:"normal"},{id:"momp7g",source:"edp.ingressNginx.ingressNginx",target:"edp.openbao",label:"https",dotpos:"e,3030,403.09 2059.9,177.4 2271.9,212.91 2656.5,284.63 2975,384 2990,388.66 3005.3,393.94 3020.6,399.56",points:[[2060,177],[2272,213],[2657,285],[2975,384],[2990,389],[3005,394],[3021,400]],labelBBox:{x:2744,y:301,width:34,height:18},parent:null,relations:["1p30hav"],color:"gray",line:"dashed",head:"normal"},{id:"8cmkj7",source:"edp.ingressNginx.ingressNginx",target:"edp.testApp",label:"https",dotpos:"e,3460.1,401.91 2060,164.18 2337.9,187.76 2925.9,250.03 3405,384 3420,388.19 3435.3,393.13 3450.6,398.51",points:[[2060,164],[2338,188],[2926,250],[3405,384],[3420,388],[3435,393],[3451,399]],labelBBox:{x:3165,y:301,width:34,height:18},parent:null,relations:["1i5f8um"],color:"gray",line:"dashed",head:"normal"}]},testapp:{_type:"element",tags:null,links:null,viewOf:"edp.testApp",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Fibonacci",id:"testapp",autoLayout:{direction:"TB"},hash:"d8f40f5cfab10e6e91c79feeef6be3240922c723",bounds:{x:0,y:0,width:400,height:544},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["1tefjx2"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:40,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.testApp",parent:null,level:0,children:["edp.testApp.fibonacci"],inEdges:["1tefjx2"],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Testapp to validate deployments"},tags:[],kind:"container",depth:1,x:8,y:271,width:384,height:265,labelBBox:{x:6,y:0,width:65,height:15}},{id:"edp.testApp.fibonacci",parent:"edp.testApp",level:1,children:[],inEdges:["1tefjx2"],outEdges:[],title:"Fibonacci",modelRef:"edp.testApp.fibonacci",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},tags:[],technology:"Golang",kind:"component",x:40,y:324,width:320,height:180,labelBBox:{x:101,y:64,width:148,height:46}}],edges:[{id:"1tefjx2",source:"edp.ingressNginx",target:"edp.testApp.fibonacci",label:"https",dotpos:"e,200,324.17 200,179.84 200,221.37 200,270.98 200,313.74",points:[[200,180],[200,221],[200,271],[200,314]],labelBBox:{x:201,y:240,width:34,height:18},parent:null,relations:["1i5f8um"],color:"gray",line:"dashed",head:"normal"}]},mailhog:{_type:"element",tags:null,links:null,viewOf:"edp.mailhog",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Mailhog",id:"mailhog",autoLayout:{direction:"TB"},hash:"b9e703c2ceb2b2a400194d90ac7caa94525ac068",bounds:{x:0,y:0,width:400,height:544},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["axipfp"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:40,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.mailhog",parent:null,level:0,children:["edp.mailhog.mailhog"],inEdges:["axipfp"],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Web and API based SMTP testing"},tags:[],kind:"container",depth:1,x:8,y:271,width:384,height:265,labelBBox:{x:6,y:0,width:56,height:15}},{id:"edp.mailhog.mailhog",parent:"edp.mailhog",level:1,children:[],inEdges:["axipfp"],outEdges:[],title:"Mailhog",modelRef:"edp.mailhog.mailhog",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},tags:[],technology:"Golang",kind:"component",x:40,y:324,width:320,height:180,labelBBox:{x:109,y:64,width:132,height:46}}],edges:[{id:"axipfp",source:"edp.ingressNginx",target:"edp.mailhog.mailhog",label:"https",dotpos:"e,200,324.17 200,179.84 200,221.37 200,270.98 200,313.74",points:[[200,180],[200,221],[200,271],[200,314]],labelBBox:{x:201,y:240,width:34,height:18},parent:null,relations:["ofdedh"],color:"gray",line:"dashed",head:"normal"}]},spark:{_type:"element",tags:null,links:null,viewOf:"edp.spark",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"Spark",id:"spark",autoLayout:{direction:"TB"},hash:"1ec41779bad408405a96c4063aa06b24ec2aace8",bounds:{x:0,y:0,width:400,height:281},nodes:[{id:"edp.spark",parent:null,level:0,children:["edp.spark.sparkoperator"],inEdges:[],outEdges:[],title:"Spark",modelRef:"edp.spark",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Allows running Spark applications on K8s"},tags:["internal"],kind:"container",depth:1,x:8,y:8,width:384,height:265,labelBBox:{x:6,y:0,width:43,height:15}},{id:"edp.spark.sparkoperator",parent:"edp.spark",level:1,children:[],inEdges:[],outEdges:[],title:"Spark Operator",modelRef:"edp.spark.sparkoperator",shape:"rectangle",color:"primary",icon:"tech:spark",style:{opacity:15,size:"md"},tags:[],technology:"Spark",kind:"component",x:40,y:61,width:320,height:180,labelBBox:{x:76,y:64,width:198,height:46}}],edges:[]},argoCD:{_type:"element",tags:null,links:null,viewOf:"edp.argoCD",_stage:"layouted",sourcePath:"views/edp/edp.c4",description:null,title:"ArgoCD",id:"argoCD",autoLayout:{direction:"TB"},hash:"53d798ca0a34dbe3ebf9b43318a151943ecaec33",bounds:{x:0,y:0,width:2058,height:883},nodes:[{id:"edp.ingressNginx",parent:null,level:0,children:[],inEdges:[],outEdges:["ce0h9c"],title:"Ingress",modelRef:"edp.ingressNginx",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Ingress Controller for incoming http(s) traffic"},tags:["internal"],kind:"container",navigateTo:"ingressNginx",x:48,y:0,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edp.argoCD",parent:null,level:0,children:["edp.argoCD.argocdServer","edp.argoCD.argocdAppController","edp.argoCD.argocdAppSetController","edp.argoCD.argocdRepoServer","edp.argoCD.argocdRedis"],inEdges:["ce0h9c"],outEdges:["1e5s57z"],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"GitOps Service"},tags:[],kind:"container",depth:1,x:8,y:271,width:1690,height:604,labelBBox:{x:6,y:0,width:53,height:15}},{id:"edp.argoCD.argocdServer",parent:"edp.argoCD",level:1,children:[],inEdges:["ce0h9c"],outEdges:["124uc06"],title:"ArgoCD Server",modelRef:"edp.argoCD.argocdServer",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:48,y:332,width:320,height:180,labelBBox:{x:90,y:74,width:140,height:24}},{id:"edp.argoCD.argocdAppController",parent:"edp.argoCD",level:1,children:[],inEdges:[],outEdges:["doh0se"],title:"ApplicationController",modelRef:"edp.argoCD.argocdAppController",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:478,y:332,width:320,height:180,labelBBox:{x:66,y:74,width:189,height:24}},{id:"edp.argoCD.argocdAppSetController",parent:"edp.argoCD",level:1,children:[],inEdges:[],outEdges:["ekc7mk"],title:"ApplicationSeetController",modelRef:"edp.argoCD.argocdAppSetController",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:908,y:332,width:320,height:180,labelBBox:{x:45,y:74,width:230,height:24}},{id:"edp.argoCD.argocdRepoServer",parent:"edp.argoCD",level:1,children:[],inEdges:[],outEdges:["173l3xq","1e5s57z"],title:"Repo Server",modelRef:"edp.argoCD.argocdRepoServer",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},tags:[],kind:"component",x:1338,y:332,width:320,height:180,labelBBox:{x:102,y:74,width:116,height:24}},{id:"edp.argoCD.argocdRedis",parent:"edp.argoCD",level:1,children:[],inEdges:["124uc06","doh0se","ekc7mk","173l3xq"],outEdges:[],title:"Redis",modelRef:"edp.argoCD.argocdRedis",shape:"rectangle",color:"primary",icon:"tech:redis",style:{opacity:15,size:"md"},tags:[],technology:"Redis",kind:"component",x:693,y:655,width:320,height:180,labelBBox:{x:118,y:64,width:114,height:46}},{id:"edp.forgejogit",parent:null,level:0,children:[],inEdges:["1e5s57z"],outEdges:[],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:15,size:"md"},tags:[],kind:"component",x:1738,y:655,width:320,height:180,labelBBox:{x:97,y:74,width:156,height:24}}],edges:[{id:"ce0h9c",source:"edp.ingressNginx",target:"edp.argoCD.argocdServer",label:"https",dotpos:"e,208,332.26 208,179.87 208,223.7 208,276.72 208,321.86",points:[[208,180],[208,224],[208,277],[208,322]],labelBBox:{x:209,y:240,width:34,height:18},parent:null,relations:["1yssos5"],color:"gray",line:"dashed",head:"normal"},{id:"124uc06",source:"edp.argoCD.argocdServer",target:"edp.argoCD.argocdRedis",label:"read/write",dotpos:"e,693.08,664.26 367.85,502.5 463.9,550.27 586.02,611.01 683.7,659.6",points:[[368,503],[464,550],[586,611],[684,660]],labelBBox:{x:551,y:572,width:65,height:18},parent:"edp.argoCD",relations:["yfhhi5"],color:"gray",line:"dashed",head:"normal"},{id:"doh0se",source:"edp.argoCD.argocdAppController",target:"edp.argoCD.argocdRedis",label:"read/write",dotpos:"e,782.56,654.82 687.71,511.63 703.62,538.73 721.74,568.36 739.53,594.8 751,611.84 763.71,629.54 776.36,646.54",points:[[688,512],[704,539],[722,568],[740,595],[751,612],[764,630],[776,647]],labelBBox:{x:741,y:572,width:65,height:18},parent:"edp.argoCD",relations:["10vkxaf"],color:"gray",line:"dashed",head:"normal"},{id:"ekc7mk",source:"edp.argoCD.argocdAppSetController",target:"edp.argoCD.argocdRedis",label:"read/write",dotpos:"e,912.53,654.97 1008.4,511.93 980.43,553.66 947.04,603.49 918.38,646.24",points:[[1008,512],[980,554],[947,603],[918,646]],labelBBox:{x:968,y:572,width:65,height:18},parent:"edp.argoCD",relations:["i8z0mi"],color:"gray",line:"dashed",head:"normal"},{id:"173l3xq",source:"edp.argoCD.argocdRepoServer",target:"edp.argoCD.argocdRedis",label:"read/write",dotpos:"e,1012.9,664.26 1338.1,502.5 1242.1,550.27 1120,611.01 1022.3,659.6",points:[[1338,503],[1242,550],[1120,611],[1022,660]],labelBBox:{x:1196,y:572,width:65,height:18},parent:"edp.argoCD",relations:["iullhy"],color:"gray",line:"dashed",head:"normal"},{id:"1e5s57z",source:"edp.argoCD.argocdRepoServer",target:"edp.forgejogit",label:"Syncs git repo",dotpos:"e,1787.2,654.97 1608.9,511.93 1661.9,554.44 1725.4,605.36 1779.3,648.64",points:[[1609,512],[1662,554],[1725,605],[1779,649]],labelBBox:{x:1711,y:572,width:93,height:18},parent:null,relations:["6mupa0"],color:"gray",line:"dashed",head:"normal"}]},idp:{_type:"element",tags:null,links:null,viewOf:"edp",_stage:"layouted",sourcePath:"views/edp/edp-as-idp.c4",description:null,title:"EDP as IDP",id:"idp",autoLayout:{direction:"TB"},hash:"d1e4c998ee263bce5b2572834b6a9a7b6d6391f5",bounds:{x:-784,y:-470,width:6725,height:2278},nodes:[{id:"developer",parent:null,level:0,children:[],inEdges:[],outEdges:["1w9cpb2","1y3lcyj","1agven9","1nv0w41","3nxrq7","bfgapq"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:25,size:"xl"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:-784,y:-301,width:520,height:290,labelBBox:{x:111,y:108,width:298,height:64}},{id:"@gr1",parent:null,kind:"@group",title:"EDP",color:"primary",shape:"rectangle",children:["@gr2","@gr5","@gr6","@gr7"],inEdges:["1w9cpb2","1y3lcyj","1agven9","1nv0w41","3nxrq7","bfgapq"],outEdges:[],level:0,depth:3,tags:[],style:{border:"dashed",opacity:15},x:29,y:-451,width:2412,height:2259,labelBBox:{x:6,y:0,width:27,height:15}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Developer Control Plane",color:"primary",shape:"rectangle",children:["@gr3","@gr4"],inEdges:["1w9cpb2","1y3lcyj","1agven9"],outEdges:[],level:0,depth:2,tags:[],style:{border:"dashed",opacity:15},x:69,y:-401,width:2332,height:890,labelBBox:{x:6,y:0,width:170,height:15}},{id:"@gr3",parent:"@gr2",kind:"@group",title:"Frontend",color:"primary",shape:"rectangle",children:["edp.ui.backstage","edp.api"],inEdges:["1w9cpb2","1y3lcyj"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:110,y:-351,width:2246,height:384,labelBBox:{x:6,y:0,width:65,height:15}},{id:"@gr4",parent:"@gr2",kind:"@group",title:"Version Control",color:"primary",shape:"rectangle",children:["applicationspecification.application_gitrepo","applicationspecification.applicationspec_gitrepo","edp.forgejogit"],inEdges:["1agven9"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:109,y:59,width:2252,height:390,labelBBox:{x:6,y:0,width:111,height:15}},{id:"@gr5",parent:"@gr1",kind:"@group",title:"Integration & Delivery Plane",color:"primary",shape:"rectangle",children:["forgejoRunner","edp.imageregistry","edp.argoCD"],inEdges:["1nv0w41"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:925,y:542,width:1456,height:773,labelBBox:{x:6,y:0,width:189,height:15}},{id:"@gr6",parent:"@gr1",kind:"@group",title:"Monitoring Plane",color:"primary",shape:"rectangle",children:["edp.monitoring","edp.grafana"],inEdges:["3nxrq7"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:117,y:963,width:2262,height:388,labelBBox:{x:6,y:0,width:116,height:15}},{id:"@gr7",parent:"@gr1",kind:"@group",title:"Security Plane",color:"primary",shape:"rectangle",children:["edp.keycloak","edp.kyverno","edp.externalSecrets","edp.openbao"],inEdges:["bfgapq"],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:116,y:1382,width:2266,height:386,labelBBox:{x:6,y:0,width:100,height:15}},{id:"edp.ui.backstage",parent:"@gr3",level:1,children:[],inEdges:["1w9cpb2"],outEdges:[],title:"Backstage",modelRef:"edp.ui.backstage",shape:"browser",color:"primary",icon:"tech:react",style:{opacity:25,size:"xl"},tags:[],kind:"component",x:150,y:-301,width:520,height:290,labelBBox:{x:179,y:123,width:192,height:32}},{id:"edp.api",parent:"@gr3",level:1,children:[],inEdges:["1y3lcyj"],outEdges:[],title:"API",modelRef:"edp.api",shape:"rectangle",color:"primary",icon:"tech:swagger",style:{opacity:25,size:"xl"},description:{txt:"API for the EDP platform"},tags:[],kind:"container",x:1796,y:-297,width:520,height:290,labelBBox:{x:129,y:108,width:292,height:64}},{id:"applicationspecification.application_gitrepo",parent:"@gr4",level:1,children:[],inEdges:[],outEdges:[],title:"Git App Repo",modelRef:"applicationspecification.application_gitrepo",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"xl"},description:{txt:"Git Application Repository"},tags:[],technology:"Git",kind:"component",x:958,y:119,width:520,height:290,labelBBox:{x:123,y:96,width:304,height:89}},{id:"applicationspecification.applicationspec_gitrepo",parent:"@gr4",level:1,children:[],inEdges:[],outEdges:[],title:"Git AppSpec Repo",modelRef:"applicationspecification.applicationspec_gitrepo",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"xl"},description:{txt:"Git Application Specification Repository"},tags:[],technology:"Git",kind:"component",x:1801,y:119,width:520,height:290,labelBBox:{x:114,y:83,width:322,height:114}},{id:"edp.forgejogit",parent:"@gr4",level:1,children:[],inEdges:["1agven9"],outEdges:[],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"xl"},tags:[],kind:"component",x:149,y:109,width:520,height:290,labelBBox:{x:179,y:123,width:192,height:32}},{id:"forgejoRunner",parent:"@gr5",level:1,children:[],inEdges:[],outEdges:[],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:965,y:985,width:520,height:290,labelBBox:{x:69,y:71,width:382,height:139}},{id:"edp.imageregistry",parent:"@gr5",level:1,children:[],inEdges:["1nv0w41"],outEdges:[],title:"Forgejo OCI Image Registry",modelRef:"edp.imageregistry",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:25,size:"xl"},description:{txt:"Container Image Registry"},tags:[],technology:"Golang",kind:"component",x:965,y:595,width:522,height:290,labelBBox:{x:70,y:96,width:410,height:89}},{id:"edp.argoCD",parent:"@gr5",level:1,children:[],inEdges:[],outEdges:[],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"GitOps Service"},tags:[],kind:"container",navigateTo:"argoCD",x:1821,y:592,width:520,height:290,labelBBox:{x:187,y:108,width:145,height:64}},{id:"edp.monitoring",parent:"@gr6",level:1,children:[],inEdges:[],outEdges:[],title:"Monitoring",modelRef:"edp.monitoring",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Observability system to monitor deployed components"},tags:[],kind:"container",navigateTo:"monitoring",x:1819,y:1021,width:520,height:290,labelBBox:{x:66,y:96,width:388,height:88}},{id:"edp.grafana",parent:"@gr6",level:1,children:[],inEdges:["3nxrq7"],outEdges:[],title:"Grafana",modelRef:"edp.grafana",shape:"rectangle",color:"primary",icon:"tech:grafana",style:{opacity:25,size:"xl"},description:{txt:"Data visualization and monitoring"},tags:[],kind:"container",x:157,y:1013,width:520,height:290,labelBBox:{x:89,y:108,width:372,height:64}},{id:"edp.keycloak",parent:"@gr7",level:1,children:[],inEdges:["bfgapq"],outEdges:[],title:"Keycloak",modelRef:"edp.keycloak",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Single Sign On for all EDP products"},tags:[],kind:"container",navigateTo:"keycloak",x:156,y:1438,width:520,height:290,labelBBox:{x:92,y:108,width:337,height:64}},{id:"edp.kyverno",parent:"@gr7",level:1,children:[],inEdges:[],outEdges:[],title:"Kyverno",modelRef:"edp.kyverno",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Policy-as-Code"},tags:["internal"],kind:"container",x:1267,y:1433,width:520,height:290,labelBBox:{x:187,y:108,width:146,height:64}},{id:"edp.externalSecrets",parent:"@gr7",level:1,children:[],inEdges:[],outEdges:[],title:"external-secrets",modelRef:"edp.externalSecrets",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Provider to access externally stored Kubernetes secrets"},tags:["internal"],kind:"container",navigateTo:"externalSecrets",x:1822,y:1432,width:520,height:290,labelBBox:{x:92,y:96,width:337,height:88}},{id:"edp.openbao",parent:"@gr7",level:1,children:[],inEdges:[],outEdges:[],title:"OpenBao",modelRef:"edp.openbao",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Secure secret storage"},tags:[],kind:"container",x:711,y:1437,width:520,height:290,labelBBox:{x:155,y:108,width:209,height:64}}],edges:[{id:"1w9cpb2",source:"developer",target:"edp.ui.backstage",label:"create and maintain apps",dotpos:"e,1840.8,633.87 5888.3,380.18 5537.3,435.39 4891.5,528.84 4336,564.42 4303.2,566.51 2004.4,563.02 1973,572.42 1930.6,585.1 1888.5,605.48 1849.6,628.59",points:[[5890,380],[5539,435],[4893,529],[4338,564],[4305,567],[2004,563],[1973,572],[1931,585],[1888,605],[1850,629]],labelBBox:{x:-57,y:-156,width:161,height:18},parent:null,relations:["1woleh6"],color:"gray",line:"dashed",head:"normal",controlPoints:[{x:-139.8,y:-156}]},{id:"1y3lcyj",source:"developer",target:"edp.api",label:"uses API",dotpos:"e,2494.7,633.74 5888.2,397.27 5631.2,453.06 5225.9,532.44 4870,564.42 4839.2,567.19 2670.9,564.31 2641,572.42 2594.4,585.07 2547.6,605.53 2504,628.75",points:[[5890,397],[5633,453],[5228,532],[4872,564],[4841,567],[2671,564],[2641,572],[2594,585],[2548,606],[2504,629]],labelBBox:{x:775,y:-442,width:60,height:18},parent:null,relations:["1l9a3pd"],color:"gray",line:"dashed",head:"normal",controlPoints:[{x:1165,y:-470}]},{id:"1agven9",source:"developer",target:"edp.forgejogit",label:"uses git",dotpos:"e,1199.9,633.62 5888.4,368.77 5435.9,421.39 4472.9,525.91 3656,564.42 3623.7,565.94 1361.9,563.12 1331,572.42 1288.9,585.06 1247.2,605.35 1208.6,628.36",points:[[5890,369],[5438,421],[4474,526],[3657,564],[3625,566],[1362,563],[1331,572],[1289,585],[1247,605],[1209,628]],labelBBox:{x:-73,y:103,width:52,height:18},parent:null,relations:["1uzzn9j"],color:"gray",line:"dashed",head:"normal",controlPoints:[{x:-141.45616438356166,y:77.2}]},{id:"1nv0w41",source:"developer",target:"edp.imageregistry",label:"pushes and pull images",dotpos:"e,3790,633.69 5888.3,438.36 5749.8,486.81 5575.2,539.64 5414,564.42 5373,570.72 3960.7,560.44 3921,572.42 3878.9,585.1 3837.2,605.41 3798.7,628.42",points:[[5890,438],[5752,487],[5577,540],[5416,564],[5375,571],[3963,560],[3923,572],[3881,585],[3839,605],[3800,628]],labelBBox:{x:205,y:439,width:151,height:18},parent:null,relations:["177bm2y"],color:"gray",line:"dashed",head:"normal",controlPoints:[{x:-191,y:271}]},{id:"3nxrq7",source:"developer",target:"edp.grafana",label:"monitors",dotpos:"e,3150,633.65 5888.1,415.01 5693.7,468.76 5420.3,535.68 5175,564.42 5122.7,570.54 3331.4,557.26 3281,572.42 3238.9,585.08 3197.2,605.37 3158.6,628.38",points:[[5890,415],[5696,469],[5422,536],[5177,564],[5125,571],[3331,557],[3281,572],[3239,585],[3197,605],[3159,628]],labelBBox:{x:-213,y:553,width:58,height:18},parent:null,relations:["1xiorre"],color:"gray",line:"dashed",head:"normal",controlPoints:[{x:-11,y:920}]},{id:"bfgapq",source:"developer",target:"edp.keycloak",label:"authenticates",dotpos:"e,5717.2,633.79 5938.9,481.38 5870.6,528.36 5794.5,580.63 5725.6,628.03",points:[[5941,481],[5873,528],[5797,581],[5728,628]],labelBBox:{x:-273,y:789,width:87,height:18},parent:null,relations:["jpl8ll"],color:"gray",line:"dashed",head:"normal",controlPoints:[{x:-75,y:1296}]}],hasLayoutDrift:!0},edporchestrator:{_type:"element",tags:null,links:null,viewOf:"edp",_stage:"layouted",sourcePath:"views/edp/edp-as-orchestrator.c4",description:null,title:"EDP as Orchestrator",id:"edporchestrator",autoLayout:{direction:"TB"},hash:"3b527fd6f99efa02fc730d4569c0a0ccc75b4ef3",bounds:{x:-236,y:14,width:1338,height:1005},nodes:[{id:"@gr1",parent:null,kind:"@group",title:"EDP",color:"primary",shape:"rectangle",children:["@gr2","@gr3","@gr4","@gr5","@gr6"],inEdges:[],outEdges:[],level:0,depth:2,tags:[],style:{border:"dashed",opacity:15},x:-236,y:19,width:1340,height:1001,labelBBox:{x:6,y:0,width:27,height:15}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Developer Control Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:48,y:69,width:320,height:180,labelBBox:{x:49,y:74,width:222,height:24}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Integration & Delivery Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:478,y:69,width:320,height:180,labelBBox:{x:34,y:74,width:252,height:24}},{id:"@gr4",parent:"@gr1",kind:"@group",title:"Monitoring Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:48,y:369,width:320,height:180,labelBBox:{x:83,y:74,width:154,height:24}},{id:"@gr5",parent:"@gr1",kind:"@group",title:"Security Plane",color:"primary",shape:"rectangle",children:[],inEdges:[],outEdges:[],level:0,depth:0,tags:[],style:{border:"dashed",opacity:15},x:478,y:369,width:320,height:180,labelBBox:{x:94,y:74,width:133,height:24}},{id:"@gr6",parent:"@gr1",kind:"@group",title:"Backend",color:"primary",shape:"rectangle",children:["edp.argoCD","edp.crossplane"],inEdges:[],outEdges:[],level:0,depth:1,tags:[],style:{border:"dashed",opacity:15},x:-196,y:599,width:1260,height:381,labelBBox:{x:6,y:0,width:59,height:15}},{id:"edp.argoCD",parent:"@gr6",level:1,children:[],inEdges:[],outEdges:[],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Declarative management of platform tools"},tags:[],kind:"container",isCustomized:!0,navigateTo:"argoCD",x:-156,y:649,width:520,height:290,labelBBox:{x:64,y:109,width:393,height:63}},{id:"edp.crossplane",parent:"@gr6",level:1,children:[],inEdges:[],outEdges:[],title:"Crossplane",modelRef:"edp.crossplane",shape:"rectangle",color:"primary",style:{opacity:25,size:"xl"},description:{txt:"Declarative management of ressources"},tags:["internal"],kind:"container",navigateTo:"crossplane",x:504,y:650,width:520,height:290,labelBBox:{x:75,y:109,width:369,height:63}}],edges:[],hasLayoutDrift:!0},"application-transition":{_type:"element",tags:null,links:null,_stage:"layouted",sourcePath:"views/high-level-concept/application-transition.c4",description:null,title:"application-transistion",id:"application-transition",autoLayout:{direction:"TB"},hash:"024761d9274cbfc35558ae3606770e2c3e3afd0f",bounds:{x:0,y:0,width:1032,height:934},nodes:[{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["@gr2","@gr3","developer","otherProductLifecycleRoles"],inEdges:[],outEdges:["17brhnu"],level:0,depth:3,tags:[],style:{border:"none",opacity:20},x:8,y:8,width:1016,height:645,labelBBox:{x:6,y:0,width:114,height:15}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Devops inner-loop",color:"gray",shape:"rectangle",children:["localbox"],inEdges:["zjg544","6szgsj"],outEdges:["1uo6k6b"],level:0,depth:2,tags:[],style:{border:"none",opacity:30},x:48,y:263,width:448,height:350,labelBBox:{x:6,y:0,width:122,height:15}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Devops outer-loop",color:"gray",shape:"rectangle",children:["edp"],inEdges:["1okgiq5","1wupl5x","1uo6k6b"],outEdges:["17brhnu","6szgsj"],level:0,depth:2,tags:[],style:{border:"none",opacity:30},x:536,y:263,width:448,height:350,labelBBox:{x:6,y:0,width:126,height:15}},{id:"cloud",parent:null,level:0,children:["cloud.application"],inEdges:["17brhnu"],outEdges:[],title:"Cloud",modelRef:"cloud",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Cloud environments"},tags:[],technology:"IaaS/PaaS",kind:"system",depth:1,x:568,y:661,width:384,height:265,labelBBox:{x:6,y:0,width:43,height:15}},{id:"cloud.application",parent:"cloud",level:1,children:[],inEdges:[],outEdges:[],title:"application",modelRef:"cloud.application",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"An application description"},tags:[],technology:"DSL",kind:"schema",x:600,y:714,width:320,height:180,labelBBox:{x:73,y:54,width:175,height:67}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["zjg544","1okgiq5"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:127,y:69,width:320,height:180,labelBBox:{x:53,y:63,width:214,height:48}},{id:"otherProductLifecycleRoles",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1wupl5x"],title:"Reviewer, Tester, Auditors, Operators",modelRef:"otherProductLifecycleRoles",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:572,y:69,width:375,height:180,labelBBox:{x:18,y:63,width:340,height:48}},{id:"localbox",parent:"@gr2",level:1,children:["localbox.application"],inEdges:["zjg544","6szgsj"],outEdges:["1uo6k6b"],title:"localbox",modelRef:"localbox",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A local development system"},tags:[],technology:"Linux/Windows/Mac",kind:"system",depth:1,x:80,y:316,width:384,height:265,labelBBox:{x:6,y:0,width:66,height:15}},{id:"localbox.application",parent:"localbox",level:2,children:[],inEdges:[],outEdges:[],title:"application",modelRef:"localbox.application",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"An application description"},tags:[],technology:"DSL",kind:"schema",x:112,y:369,width:320,height:180,labelBBox:{x:73,y:53,width:175,height:68}},{id:"edp",parent:"@gr3",level:1,children:["edp.application"],inEdges:["1okgiq5","1wupl5x","1uo6k6b"],outEdges:["17brhnu","6szgsj"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",depth:1,navigateTo:"edp",x:568,y:316,width:384,height:265,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edp.application",parent:"edp",level:2,children:[],inEdges:[],outEdges:[],title:"application",modelRef:"edp.application",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"An application description"},tags:[],technology:"DSL",kind:"schema",x:600,y:369,width:320,height:180,labelBBox:{x:73,y:53,width:175,height:68}}],edges:[{id:"zjg544",source:"developer",target:"localbox",label:"inner loop development",dotpos:"e,279.16,316 282.54,248.8 281.64,266.75 280.66,286.09 279.68,305.53",points:[[283,249],[282,267],[281,286],[280,306]],labelBBox:{x:130,y:282,width:150,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop development",dotpos:"e,572.31,316 446.79,237.41 461.91,245.66 476.86,254.19 491,262.8 515.03,277.44 539.66,293.58 563.79,310.14",points:[[447,237],[462,246],[477,254],[491,263],[515,277],[540,294],[564,310]],labelBBox:{x:360,y:252,width:150,height:18},parent:"@gr1",relations:["1pp73vj","yk9zv2","12036hb","jpl8ll","1ghp31l","1xiorre","1woleh6","177bm2y","1l9a3pd","1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"act according to responibility",dotpos:"e,760,316 760,248.8 760,266.75 760,286.09 760,305.53",points:[[760,249],[760,267],[760,286],[760,306]],labelBBox:{x:578,y:282,width:181,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"inner-outer-loop synchronization",dotpos:"e,568,459.2 464,459.2 495.2,459.2 526.41,459.2 557.62,459.2",points:[[464,459],[495,459],[526,459],[558,459]],labelBBox:{x:414,y:459,width:204,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploys and observes",dotpos:"e,760,661.2 760,581.2 760,603.74 760,627.57 760,650.92",points:[[760,581],[760,604],[760,628],[760,651]],labelBBox:{x:619,y:598,width:140,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,dotpos:"e,464,459.2 568,459.2 536.79,459.2 505.57,459.2 474.36,459.2",points:[[568,459],[537,459],[506,459],[474,459]],labelBBox:null,parent:"@gr1",relations:["wvo8i"],color:"gray",line:"dashed",head:"normal"}]},landscape:{_type:"element",tags:null,links:null,_stage:"layouted",sourcePath:"views/high-level-concept/platform-context/developer-landscape.c4",description:null,title:"Developer Landscape View",id:"landscape",autoLayout:{direction:"LR",nodeSep:100,rankSep:100},hash:"935f6f233559cbc0c96d352aa507e5eceefdfa9d",bounds:{x:0,y:0,width:3184,height:1479},nodes:[{id:"applicationspecification",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"application-specification",modelRef:"applicationspecification",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"The application specification describes the application and its components. It is used to generate the application and its components."},tags:[],kind:"component",x:0,y:280,width:338,height:180,labelBBox:{x:18,y:45,width:303,height:84}},{id:"forgejoRunnerWorker",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Forgejo Runner Worker",modelRef:"forgejoRunnerWorker",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],kind:"component",x:482,y:280,width:333,height:180,labelBBox:{x:18,y:45,width:297,height:84}},{id:"promtail",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Promtail",modelRef:"promtail",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Log shipper agent for Loki"},tags:[],kind:"component",x:1022,y:280,width:320,height:180,labelBBox:{x:71,y:63,width:177,height:48}},{id:"elasticsearch",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Elasticsearch",modelRef:"elasticsearch",shape:"rectangle",color:"primary",icon:"tech:elasticsearch",style:{opacity:20,size:"md"},description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of +addressing a growing number of use cases. It centrally stores your data so you can +discover the expected and uncover the unexpected.`},tags:[],technology:"Elasticsearch",kind:"container",x:1652,y:280,width:370,height:180,labelBBox:{x:46,y:17,width:308,height:139}},{id:"objectstorage",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"s3 Object Storage",modelRef:"objectstorage",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"s3 Object Storage"},tags:[],technology:"S3 Object Storage",kind:"container",x:9,y:0,width:320,height:180,labelBBox:{x:78,y:53,width:164,height:67}},{id:"postgres",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"PostgreSQL",modelRef:"postgres",shape:"rectangle",color:"primary",icon:"tech:postgresql",style:{opacity:20,size:"md"},description:{txt:`PostgreSQL is a powerful, open source object-relational database system. +It has more than 15 years of active development and a proven architecture +that has earned it a strong reputation for reliability, data integrity, +and correctness.`},tags:[],technology:"PostgreSQL",kind:"container",x:472,y:0,width:354,height:180,labelBBox:{x:46,y:17,width:292,height:139}},{id:"redis",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Redis",modelRef:"redis",shape:"rectangle",color:"primary",icon:"tech:redis",style:{opacity:20,size:"md"},description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},tags:[],technology:"Redis",kind:"container",x:1002,y:0,width:359,height:180,labelBBox:{x:46,y:26,width:297,height:121}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["mox1r9","x7to90"],title:"Platform Developer",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"md"},description:{txt:"The EDP engineer"},tags:[],kind:"actor",x:9,y:1299,width:320,height:180,labelBBox:{x:73,y:63,width:175,height:48}},{id:"customers",parent:null,level:0,children:[],inEdges:[],outEdges:["8fboq4"],title:"End Customers",modelRef:"customers",shape:"person",color:"amber",style:{opacity:15,size:"md"},description:{txt:"Consumers of your Application"},tags:[],kind:"actor",x:2273,y:405,width:320,height:180,labelBBox:{x:55,y:63,width:208,height:48}},{id:"forgejoRunner",parent:null,level:0,children:[],inEdges:["5mpoyf"],outEdges:["1lyfj4n"],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:2273,y:1188,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:102}},{id:"edfbuilder",parent:null,level:0,children:[],inEdges:["mox1r9"],outEdges:["lnq8uj"],title:"edfbuilder",modelRef:"edfbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"EDP Foundry Builder"},tags:[],technology:"Golang",kind:"component",navigateTo:"edpbuilderworkflow",x:489,y:1179,width:320,height:180,labelBBox:{x:74,y:53,width:203,height:67}},{id:"edf",parent:null,level:0,children:[],inEdges:["lnq8uj","x7to90"],outEdges:["109bf6k"],title:"EDF",modelRef:"edf",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Foundry is a platform for building and deploying EDPs tenantwise."},tags:[],technology:"Kubernetes",kind:"system",x:1021,y:1286,width:321,height:180,labelBBox:{x:46,y:35,width:259,height:103}},{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["developer","otherProductLifecycleRoles","@gr2","@gr3"],inEdges:["1lyfj4n","109bf6k"],outEdges:["1tbee2v","5mpoyf","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:954,y:500,width:1129,height:746,labelBBox:{x:6,y:0,width:114,height:15}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["zjg544","1okgiq5"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:1022,y:664,width:320,height:180,labelBBox:{x:52,y:63,width:214,height:48}},{id:"otherProductLifecycleRoles",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1wupl5x"],title:"Reviewer, Tester, Auditors, Operators",modelRef:"otherProductLifecycleRoles",shape:"person",color:"green",style:{opacity:15,size:"md"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:994,y:994,width:375,height:180,labelBBox:{x:18,y:63,width:340,height:48}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Devops inner-loop",color:"gray",shape:"rectangle",children:["localbox"],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:1645,y:561,width:384,height:265,labelBBox:{x:6,y:0,width:122,height:15}},{id:"localbox",parent:"@gr2",level:1,children:[],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],title:"localbox",modelRef:"localbox",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"A local development system"},tags:[],technology:"Linux/Windows/Mac",kind:"system",x:1677,y:614,width:320,height:180,labelBBox:{x:65,y:53,width:191,height:67}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Devops outer-loop",color:"gray",shape:"rectangle",children:["edp"],inEdges:["1lyfj4n","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:1632,y:941,width:411,height:265,labelBBox:{x:6,y:0,width:126,height:15}},{id:"edp",parent:"@gr3",level:1,children:[],inEdges:["1lyfj4n","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",navigateTo:"edp",x:1664,y:994,width:346,height:180,labelBBox:{x:46,y:53,width:284,height:67}},{id:"enterprise",parent:null,level:0,children:[],inEdges:["1tbee2v","35ru8e"],outEdges:["iwd51q"],title:"Customers' Enterprise Systems",modelRef:"enterprise",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"The customers' enterprise systems"},tags:[],kind:"system",x:2273,y:685,width:320,height:180,labelBBox:{x:18,y:63,width:283,height:48}},{id:"cloud",parent:null,level:0,children:[],inEdges:["8fboq4","iwd51q","17brhnu"],outEdges:[],title:"Cloud",modelRef:"cloud",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Cloud environments"},tags:[],technology:"IaaS/PaaS",kind:"system",x:2864,y:685,width:320,height:180,labelBBox:{x:91,y:53,width:137,height:67}}],edges:[{id:"lnq8uj",source:"edfbuilder",target:"edf",label:"boots one",dotpos:"e,1020.8,1343.8 808.82,1301 872.42,1313.9 945.81,1328.7 1010.5,1341.7",points:[[809,1301],[872,1314],[946,1329],[1010,1342]],labelBBox:{x:877,y:1293,width:66,height:18},parent:null,relations:["1oxlsu0"],color:"gray",line:"dashed",head:"normal"},{id:"mox1r9",source:"platformdeveloper",target:"edfbuilder",label:"runs",dotpos:"e,489.02,1308.9 329.05,1349.1 377.18,1337 430.23,1323.7 479,1311.5",points:[[329,1349],[377,1337],[430,1324],[479,1311]],labelBBox:{x:390,y:1306,width:31,height:18},parent:null,relations:["s1l7g7"],color:"gray",line:"dashed",head:"normal"},{id:"x7to90",source:"platformdeveloper",target:"edf",label:"develops EDP and EDF",dotpos:"e,1021,1406.5 329.12,1415.8 375.04,1422.4 425.33,1428.5 471.88,1431.8 628.93,1442.9 669.17,1444.1 826.13,1431.8 886.74,1427.1 952.64,1417.8 1011,1408.2",points:[[329,1416],[375,1422],[425,1429],[472,1432],[629,1443],[669,1444],[826,1432],[887,1427],[953,1418],[1011,1408]],labelBBox:{x:573,y:1409,width:152,height:18},parent:null,relations:["v8v12"],color:"gray",line:"dashed",head:"normal"},{id:"8fboq4",source:"customers",target:"cloud",label:"uses your app",dotpos:"e,2863.6,699.44 2592.6,570.59 2673.5,609.07 2772,655.86 2854.2,694.95",points:[[2593,571],[2674,609],[2772,656],[2854,695]],labelBBox:{x:2682,y:578,width:92,height:18},parent:null,relations:["1g2ebwc"],color:"gray",line:"dashed",head:"normal"},{id:"iwd51q",source:"enterprise",target:"cloud",label:"app specific dependencies",dotpos:"e,2863.6,775 2592.6,775 2673.2,775 2771.2,775 2853.2,775",points:[[2593,775],[2673,775],[2771,775],[2853,775]],labelBBox:{x:2644,y:752,width:169,height:18},parent:null,relations:["nc44l9"],color:"gray",line:"dashed",head:"normal"},{id:"zjg544",source:"developer",target:"localbox",label:"inner loop development",dotpos:"e,1677.3,716.15 1341.2,741.86 1439.8,734.32 1566.5,724.63 1667,716.94",points:[[1341,742],[1440,734],[1566,725],[1667,717]],labelBBox:{x:1436,y:700,width:150,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1tbee2v",source:"localbox",target:"enterprise",label:"company integration",dotpos:"e,2272.7,755.99 1996.8,722.98 2078.7,732.79 2178.8,744.76 2262.3,754.75",points:[[1997,723],[2079,733],[2179,745],[2262,755]],labelBBox:{x:2091,y:711,width:130,height:18},parent:null,relations:["1abvxlh"],color:"gray",line:"dashed",head:"normal"},{id:"1lyfj4n",source:"forgejoRunner",target:"edp",label:"register",dotpos:"e,1950.6,1173.8 2272.9,1279.9 2214.2,1276.5 2148.1,1267.7 2090.5,1247.8 2044.6,1232 1998.8,1206.1 1959,1179.5",points:[[2273,1280],[2214,1276],[2148,1268],[2090,1248],[2045,1232],[1999,1206],[1959,1179]],labelBBox:{x:2131,y:1225,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"109bf6k",source:"edf",target:"edp",label:"builds many",dotpos:"e,1758,1173.7 1342.2,1365 1423.3,1354.4 1521.6,1333.9 1602.1,1293.8 1657.5,1266.2 1709.7,1221.9 1750.7,1181",points:[[1342,1365],[1423,1354],[1522,1334],[1602,1294],[1657,1266],[1710,1222],[1751,1181]],labelBBox:{x:1471,y:1271,width:79,height:18},parent:null,relations:["wsm3kf"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop development",dotpos:"e,1663.8,997 1341.2,834.09 1435.8,881.87 1556.2,942.7 1654.6,992.38",points:[[1341,834],[1436,882],[1556,943],[1655,992]],labelBBox:{x:1436,y:857,width:150,height:18},parent:"@gr1",relations:["1pp73vj","yk9zv2","12036hb","jpl8ll","1ghp31l","1xiorre","1woleh6","177bm2y","1l9a3pd","1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"act according to responibility",dotpos:"e,1663.9,1084 1369.4,1084 1458.6,1084 1564.9,1084 1653.5,1084",points:[[1369,1084],[1459,1084],[1565,1084],[1654,1084]],labelBBox:{x:1420,y:1061,width:181,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"inner-outer-loop synchronization",dotpos:"e,1837.1,994.43 1837.1,793.96 1837.1,851.06 1837.1,925.03 1837.1,983.98",points:[[1837,794],[1837,851],[1837,925],[1837,984]],labelBBox:{x:1721,y:882,width:204,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"5mpoyf",source:"edp",target:"forgejoRunner",label:"runs workflows",dotpos:"e,2272.6,1221 2010.3,1136.2 2076.8,1156.8 2153.4,1181 2222.5,1204 2235.6,1208.4 2249.1,1212.9 2262.7,1217.6",points:[[2010,1136],[2077,1157],[2153,1181],[2223,1204],[2236,1208],[2249,1213],[2263,1218]],labelBBox:{x:2108,y:1140,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploys and observes",dotpos:"e,2863.7,842.58 2010.1,1059.2 2164.3,1035 2395.9,993.65 2592.6,937.8 2680.5,912.84 2775.8,877.65 2854.2,846.37",points:[[2010,1059],[2164,1035],[2396,994],[2593,938],[2680,913],[2776,878],[2854,846]],labelBBox:{x:2362,y:915,width:140,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"35ru8e",source:"edp",target:"enterprise",label:"integrates",dotpos:"e,2272.6,846.44 1986.3,994.11 2020.2,974.39 2056.3,954.02 2090.5,936 2146,906.68 2207.8,876.73 2263.4,850.74",points:[[1986,994],[2020,974],[2056,954],[2090,936],[2146,907],[2208,877],[2263,851]],labelBBox:{x:2124,y:848,width:65,height:18},parent:null,relations:["615gvx"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,dotpos:"e,1837.1,793.84 1837.1,994.2 1837.1,930.8 1837.1,867.41 1837.1,804.01",points:[[1837,994],[1837,931],[1837,867],[1837,804]],labelBBox:null,parent:"@gr1",relations:["wvo8i"],color:"gray",line:"dashed",head:"normal"}]},"developer-landscape-with-foundry":{_type:"element",tags:null,links:null,_stage:"layouted",sourcePath:"views/high-level-concept/platform-context/developer-landscape-with-foundry.c4",description:null,title:"Developer Landscape View (with Foundry)",id:"developer-landscape-with-foundry",autoLayout:{direction:"LR",nodeSep:100,rankSep:100},hash:"0acebaf8856c7ebe2770ebc20d06bd63ccd795d3",bounds:{x:0,y:0,width:4259,height:2072},nodes:[{id:"applicationspecification",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"application-specification",modelRef:"applicationspecification",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"The application specification describes the application and its components. It is used to generate the application and its components."},tags:[],kind:"component",x:0,y:390,width:520,height:290,labelBBox:{x:49,y:84,width:422,height:113}},{id:"forgejoRunnerWorker",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Forgejo Runner Worker",modelRef:"forgejoRunnerWorker",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"A worker is a service that runs a job invoked by a runner. A worker typically is a container."},tags:[],kind:"component",x:653,y:390,width:520,height:290,labelBBox:{x:53,y:84,width:415,height:113}},{id:"promtail",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Promtail",modelRef:"promtail",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Log shipper agent for Loki"},tags:[],kind:"component",x:1352,y:390,width:520,height:290,labelBBox:{x:136,y:109,width:247,height:63}},{id:"elasticsearch",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Elasticsearch",modelRef:"elasticsearch",shape:"rectangle",color:"primary",icon:"tech:elasticsearch",style:{opacity:20,size:"xl"},description:{txt:`Elasticsearch is a distributed, RESTful search and analytics engine capable of +addressing a growing number of use cases. It centrally stores your data so you can +discover the expected and uncover the unexpected.`},tags:[],technology:"Elasticsearch",kind:"container",x:2166,y:390,width:520,height:290,labelBBox:{x:71,y:46,width:407,height:189}},{id:"objectstorage",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"s3 Object Storage",modelRef:"objectstorage",shape:"rectangle",color:"primary",style:{opacity:20,size:"xl"},description:{txt:"s3 Object Storage"},tags:[],technology:"S3 Object Storage",kind:"container",x:0,y:0,width:520,height:290,labelBBox:{x:146,y:96,width:228,height:89}},{id:"postgres",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"PostgreSQL",modelRef:"postgres",shape:"rectangle",color:"primary",icon:"tech:postgresql",style:{opacity:20,size:"xl"},description:{txt:`PostgreSQL is a powerful, open source object-relational database system. +It has more than 15 years of active development and a proven architecture +that has earned it a strong reputation for reliability, data integrity, +and correctness.`},tags:[],technology:"PostgreSQL",kind:"container",x:653,y:0,width:520,height:290,labelBBox:{x:83,y:46,width:384,height:189}},{id:"redis",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Redis",modelRef:"redis",shape:"rectangle",color:"primary",icon:"tech:redis",style:{opacity:20,size:"xl"},description:{txt:"Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker."},tags:[],technology:"Redis",kind:"container",x:1352,y:0,width:520,height:290,labelBBox:{x:79,y:58,width:391,height:165}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["mox1r9","x7to90"],title:"Platform Developer",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"xl"},description:{txt:"The EDP engineer"},tags:[],kind:"actor",x:0,y:1782,width:520,height:290,labelBBox:{x:138,y:109,width:244,height:63}},{id:"customers",parent:null,level:0,children:[],inEdges:[],outEdges:["8fboq4"],title:"End Customers",modelRef:"customers",shape:"person",color:"amber",style:{opacity:15,size:"xl"},description:{txt:"Consumers of your Application"},tags:[],kind:"actor",x:2948,y:460,width:520,height:290,labelBBox:{x:115,y:109,width:290,height:63}},{id:"forgejoRunner",parent:null,level:0,children:[],inEdges:["5mpoyf"],outEdges:["1lyfj4n"],title:"Forgejo Runner",modelRef:"forgejoRunner",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"A runner is a service that runs jobs triggered by Forgejo. A runner can have different technical implementations like a container or a VM."},tags:[],kind:"component",x:2948,y:1463,width:520,height:290,labelBBox:{x:69,y:71,width:382,height:139}},{id:"edfbuilder",parent:null,level:0,children:[],inEdges:["mox1r9"],outEdges:["lnq8uj"],title:"edfbuilder",modelRef:"edfbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"xl"},description:{txt:"EDP Foundry Builder"},tags:[],technology:"Golang",kind:"component",navigateTo:"edpbuilderworkflow",x:653,y:1592,width:520,height:290,labelBBox:{x:146,y:96,width:259,height:89}},{id:"edf",parent:null,level:0,children:[],inEdges:["lnq8uj","x7to90"],outEdges:["109bf6k"],title:"EDF",modelRef:"edf",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"xl"},description:{txt:"EDP Foundry is a platform for building and deploying EDPs tenantwise."},tags:[],technology:"Kubernetes",kind:"system",x:1352,y:1726,width:520,height:290,labelBBox:{x:106,y:71,width:338,height:139}},{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["developer","otherProductLifecycleRoles","@gr2","@gr3"],inEdges:["1lyfj4n","109bf6k"],outEdges:["1tbee2v","5mpoyf","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:1301,y:720,width:1457,height:966,labelBBox:{x:6,y:0,width:114,height:15}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["zjg544","1okgiq5"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"xl"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:1352,y:884,width:520,height:290,labelBBox:{x:111,y:109,width:298,height:63}},{id:"otherProductLifecycleRoles",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1wupl5x"],title:"Reviewer, Tester, Auditors, Operators",modelRef:"otherProductLifecycleRoles",shape:"person",color:"green",style:{opacity:15,size:"xl"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:1341,y:1324,width:542,height:290,labelBBox:{x:34,y:109,width:474,height:63}},{id:"@gr2",parent:"@gr1",kind:"@group",title:"Devops inner-loop",color:"gray",shape:"rectangle",children:["localbox"],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:2134,y:781,width:584,height:375,labelBBox:{x:6,y:0,width:122,height:15}},{id:"localbox",parent:"@gr2",level:1,children:[],inEdges:["zjg544","6szgsj"],outEdges:["1tbee2v","1uo6k6b"],title:"localbox",modelRef:"localbox",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"A local development system"},tags:[],technology:"Linux/Windows/Mac",kind:"system",x:2166,y:834,width:520,height:290,labelBBox:{x:127,y:96,width:265,height:89}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Devops outer-loop",color:"gray",shape:"rectangle",children:["edp"],inEdges:["1lyfj4n","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:2134,y:1271,width:584,height:375,labelBBox:{x:6,y:0,width:126,height:15}},{id:"edp",parent:"@gr3",level:1,children:[],inEdges:["1lyfj4n","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"primary",icon:"tech:kubernetes",style:{opacity:15,size:"xl"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",navigateTo:"edp",x:2166,y:1324,width:520,height:290,labelBBox:{x:88,y:96,width:373,height:89}},{id:"enterprise",parent:null,level:0,children:[],inEdges:["1tbee2v","35ru8e"],outEdges:["iwd51q"],title:"Customers' Enterprise Systems",modelRef:"enterprise",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"The customers' enterprise systems"},tags:[],kind:"system",x:2948,y:850,width:520,height:290,labelBBox:{x:62,y:109,width:395,height:63}},{id:"cloud",parent:null,level:0,children:[],inEdges:["8fboq4","iwd51q","17brhnu"],outEdges:[],title:"Cloud",modelRef:"cloud",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Cloud environments"},tags:[],technology:"IaaS/PaaS",kind:"system",x:3739,y:850,width:520,height:290,labelBBox:{x:164,y:96,width:191,height:89}}],edges:[{id:"lnq8uj",source:"edfbuilder",target:"edf",label:"boots one",dotpos:"e,1352.1,1821.2 1173.2,1786.8 1228.2,1797.4 1286.4,1808.6 1341.8,1819.2",points:[[1173,1787],[1228,1797],[1286,1809],[1342,1819]],labelBBox:{x:1224,y:1775,width:66,height:18},parent:null,relations:["1oxlsu0"],color:"gray",line:"dashed",head:"normal"},{id:"mox1r9",source:"platformdeveloper",target:"edfbuilder",label:"runs",dotpos:"e,653.31,1812.6 519.84,1851.5 560.42,1839.7 602.44,1827.4 643.24,1815.5",points:[[520,1852],[560,1840],[602,1827],[643,1816]],labelBBox:{x:571,y:1809,width:31,height:18},parent:null,relations:["s1l7g7"],color:"gray",line:"dashed",head:"normal"},{id:"x7to90",source:"platformdeveloper",target:"edf",label:"develops EDP and EDF",dotpos:"e,1352,1929 519.89,1948 564.36,1950.8 610.14,1953.3 653.29,1954.8 884.28,1963 943.24,1976.6 1173.3,1954.8 1228.2,1949.6 1286.3,1940.8 1341.7,1930.8",points:[[520,1948],[564,1951],[610,1953],[653,1955],[884,1963],[943,1977],[1173,1955],[1228,1950],[1286,1941],[1342,1931]],labelBBox:{x:837,y:1932,width:152,height:18},parent:null,relations:["v8v12"],color:"gray",line:"dashed",head:"normal"},{id:"8fboq4",source:"customers",target:"cloud",label:"uses your app",dotpos:"e,3738.8,867.02 3467.6,732.98 3551.6,774.49 3644.9,820.62 3729.6,862.47",points:[[3468,733],[3552,774],[3645,821],[3730,862]],labelBBox:{x:3557,y:742,width:92,height:18},parent:null,relations:["1g2ebwc"],color:"gray",line:"dashed",head:"normal"},{id:"iwd51q",source:"enterprise",target:"cloud",label:"app specific dependencies",dotpos:"e,3738.8,995.01 3467.6,995.01 3551.2,995.01 3644,995.01 3728.3,995.01",points:[[3468,995],[3551,995],[3644,995],[3728,995]],labelBBox:{x:3519,y:972,width:169,height:18},parent:null,relations:["nc44l9"],color:"gray",line:"dashed",head:"normal"},{id:"zjg544",source:"developer",target:"localbox",label:"inner loop development",dotpos:"e,2165.7,994.95 1871.6,1013.1 1962.2,1007.5 2064.1,1001.2 2155.5,995.58",points:[[1872,1013],[1962,1007],[2064,1001],[2155,996]],labelBBox:{x:1949,y:975,width:150,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1tbee2v",source:"localbox",target:"enterprise",label:"company integration",dotpos:"e,2947.9,989.7 2685.5,984.32 2766.4,985.98 2855.8,987.81 2937.4,989.49",points:[[2686,984],[2766,986],[2856,988],[2937,989]],labelBBox:{x:2767,y:963,width:130,height:18},parent:null,relations:["1abvxlh"],color:"gray",line:"dashed",head:"normal"},{id:"1lyfj4n",source:"forgejoRunner",target:"edp",label:"register",dotpos:"e,2685.3,1595.3 2947.7,1633.4 2887.4,1633.9 2823.9,1630 2765.6,1617.8 2742.2,1612.9 2718.5,1606.3 2695,1598.6",points:[[2948,1633],[2887,1634],[2824,1630],[2766,1618],[2742,1613],[2718,1606],[2695,1599]],labelBBox:{x:2806,y:1595,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"109bf6k",source:"edf",target:"edp",label:"builds many",dotpos:"e,2282.4,1613.8 1871.7,1823.6 1952.7,1802.7 2040.4,1773.6 2115.5,1733.8 2171.8,1703.9 2226.8,1662.2 2274.5,1620.8",points:[[1872,1824],[1953,1803],[2040,1774],[2116,1734],[2172,1704],[2227,1662],[2274,1621]],labelBBox:{x:1985,y:1711,width:79,height:18},parent:null,relations:["wsm3kf"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop development",dotpos:"e,2165.7,1328.7 1871.6,1169.3 1962.6,1218.6 2064.9,1274 2156.6,1323.7",points:[[1872,1169],[1963,1219],[2065,1274],[2157,1324]],labelBBox:{x:1949,y:1180,width:150,height:18},parent:"@gr1",relations:["1pp73vj","yk9zv2","12036hb","jpl8ll","1ghp31l","1xiorre","1woleh6","177bm2y","1l9a3pd","1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"act according to responibility",dotpos:"e,2165.6,1469 1882.9,1469 1970.5,1469 2067.7,1469 2155.2,1469",points:[[1883,1469],[1970,1469],[2068,1469],[2155,1469]],labelBBox:{x:1934,y:1446,width:181,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"inner-outer-loop synchronization",dotpos:"e,2425.5,1324.3 2425.5,1123.8 2425.5,1183.6 2425.5,1253 2425.5,1313.8",points:[[2426,1124],[2426,1184],[2426,1253],[2426,1314]],labelBBox:{x:2309,y:1212,width:204,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"5mpoyf",source:"edp",target:"forgejoRunner",label:"runs workflows",dotpos:"e,2947.9,1561.9 2685.5,1515.1 2766.6,1529.6 2856.2,1545.6 2937.9,1560.1",points:[[2686,1515],[2767,1530],[2856,1546],[2938,1560]],labelBBox:{x:2783,y:1507,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploys and observes",dotpos:"e,3738.8,1110.4 2685.5,1416.5 2898,1370.8 3205.5,1298.4 3467.7,1212.8 3554.1,1184.6 3646.3,1148.8 3729.2,1114.4",points:[[2685,1417],[2898,1371],[3205,1298],[3468,1213],[3554,1185],[3646,1149],[3729,1114]],labelBBox:{x:3138,y:1190,width:140,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"35ru8e",source:"edp",target:"enterprise",label:"integrates",dotpos:"e,2947.9,1111.3 2603.1,1324.3 2654.1,1285.4 2710.8,1244.8 2765.6,1211 2820,1177.4 2880.4,1145 2938.6,1115.9",points:[[2603,1324],[2654,1285],[2711,1245],[2766,1211],[2820,1177],[2880,1145],[2939,1116]],labelBBox:{x:2799,y:1115,width:65,height:18},parent:null,relations:["615gvx"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,dotpos:"e,2425.5,1123.9 2425.5,1324 2425.5,1260.7 2425.5,1197.4 2425.5,1134",points:[[2426,1324],[2426,1261],[2426,1197],[2426,1134]],labelBBox:null,parent:"@gr1",relations:["wvo8i"],color:"gray",line:"dashed",head:"normal"}]}},deployments:{elements:{local:{style:{icon:"tech:kubernetes"},kind:"environment",description:{txt:"Local kind-cluster environment for EDP, typically run by edpbuilder"},technology:"Kind",title:"Local kind-cluster",id:"local"},"otc-edp-per-tenant":{style:{},kind:"cloud",description:{txt:`OTC environment for EDP. EDP is the environment a customer gets from us. + + This is kubernetes clusters and other infrastructure like nodes and vms, and platform services. All is set up by IaC-pipelines in the Foundry.`},technology:"OTC",title:"OTC EDP per tenant cluster",id:"otc-edp-per-tenant"},"otc-faas":{style:{},kind:"cloud",description:{txt:"OTC environments for Prototype faaS."},technology:"OTC",title:"OTC prototype FaaS",id:"otc-faas"},"otc-edpFoundry":{style:{},kind:"cloud",description:{txt:`OTC environments for the central EDP Foundry services. This is kubernetes clusters and other infrastructure like nodes and vms, and optionally platform services. All is set up by IaC terraform and edpbuilder. + +A tenant is a folder in Foundry-Config-Forgejo. On merge triggers reconciliation to EDP. +Optionally we will have a WebUI/API/CLI`},technology:"OTC",title:"OTC EDP Foundry Central Service clusters",id:"otc-edpFoundry"},"local.backstage":{style:{},kind:"namespace",title:"backstage",id:"local.backstage"},"local.argocd":{style:{},kind:"namespace",title:"argocd",id:"local.argocd"},"local.gitea":{style:{},kind:"namespace",title:"gitea",id:"local.gitea"},"local.keycloak":{style:{},kind:"namespace",title:"keycloak",id:"local.keycloak"},"local.crossplane":{style:{},kind:"namespace",title:"crossplane-system",id:"local.crossplane"},"local.externalSecrets":{style:{},kind:"namespace",title:"external-secrets",id:"local.externalSecrets"},"local.velero":{style:{},kind:"namespace",title:"velero",id:"local.velero"},"local.minio":{style:{},kind:"namespace",title:"minio-backup",id:"local.minio"},"local.monitoring":{style:{},kind:"namespace",title:"monitoring",id:"local.monitoring"},"local.ingressNginx":{style:{},kind:"namespace",title:"ingress-nginx",id:"local.ingressNginx"},"local.openbao":{style:{},kind:"namespace",title:"openbao",id:"local.openbao"},"local.fibonacci":{style:{},kind:"namespace",title:"fibonacci-app",id:"local.fibonacci"},"local.mailhog":{style:{},kind:"namespace",title:"mailhog",id:"local.mailhog"},"local.spark":{style:{},kind:"namespace",title:"spark",id:"local.spark"},"otc-edp-per-tenant.cce":{style:{icon:"tech:kubernetes"},kind:"kubernetes",description:{txt:"OTC Container Cluster Engine"},technology:"Kubernetes",title:"OTC CCE",id:"otc-edp-per-tenant.cce"},"otc-edp-per-tenant.cloudServices":{style:{},kind:"paas",description:{txt:"EDP Cloud Services"},technology:"Cloud Services",title:"EDP Cloud Services",id:"otc-edp-per-tenant.cloudServices"},"otc-edp-per-tenant.forgejoRunnerInfrastructure":{style:{},kind:"computeressource",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},title:"EDP ForgejoRunner infrastructure",id:"otc-edp-per-tenant.forgejoRunnerInfrastructure"},"otc-faas.dev":{style:{},kind:"environment",description:{txt:"*.t09.de"},technology:"OTC",title:"tenant Dev",id:"otc-faas.dev"},"otc-faas.prod":{style:{},kind:"environment",description:{txt:"*.buildth.ing"},technology:"OTC",title:"Tenant Prod",id:"otc-faas.prod"},"otc-edpFoundry.cce":{style:{icon:"tech:kubernetes"},kind:"kubernetes",description:{txt:"OTC Container Cluster Engine"},technology:"Kubernetes",title:"OTC CCE",id:"otc-edpFoundry.cce"},"otc-edpFoundry.workflowSetupEDPInfrastructure":{style:{},kind:"computeressource",description:{txt:"EDP infrastructure Workflow"},title:"EDP infrastructure Workflow",id:"otc-edpFoundry.workflowSetupEDPInfrastructure"},"otc-edpFoundry.workflowSetupArgoCDInfrastructure":{style:{},kind:"computeressource",description:{txt:"EDP Setup ArgoCD Workflow"},title:"EDP ArgoCD Workflow",id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure"},"otc-edpFoundry.forgejoRunnerInfrastructure":{style:{},kind:"computeressource",description:{txt:"Infrastructure for Forgejo runners like pods, vms, lxds, etc"},title:"EDP ForgejoRunner infrastructure",id:"otc-edpFoundry.forgejoRunnerInfrastructure"},"local.backstage.backstage":{id:"local.backstage.backstage",element:"edp.ui.backstage",style:{}},"local.backstage.database":{id:"local.backstage.database",element:"edp.ui.database",style:{}},"local.argocd.argocdAppController":{id:"local.argocd.argocdAppController",element:"edp.argoCD.argocdAppController",style:{}},"local.argocd.argocdAppSetController":{id:"local.argocd.argocdAppSetController",element:"edp.argoCD.argocdAppSetController",style:{}},"local.argocd.argocdRedis":{id:"local.argocd.argocdRedis",element:"edp.argoCD.argocdRedis",style:{}},"local.argocd.argocdRepoServer":{id:"local.argocd.argocdRepoServer",element:"edp.argoCD.argocdRepoServer",style:{}},"local.argocd.argocdServer":{id:"local.argocd.argocdServer",element:"edp.argoCD.argocdServer",style:{}},"local.gitea.forgejo":{id:"local.gitea.forgejo",element:"edp.forgejo",style:{}},"local.gitea.forgejoRunner":{id:"local.gitea.forgejoRunner",element:"forgejoRunner",style:{}},"local.keycloak.keycloak":{id:"local.keycloak.keycloak",element:"edp.keycloak.keycloak",style:{}},"local.keycloak.keycloakDB":{id:"local.keycloak.keycloakDB",element:"edp.keycloak.keycloakDB",style:{}},"local.crossplane.crossplane":{id:"local.crossplane.crossplane",element:"edp.crossplane.crossplane",style:{}},"local.crossplane.crossplaneFunction":{id:"local.crossplane.crossplaneFunction",element:"edp.crossplane.crossplaneFunction",style:{}},"local.crossplane.crossplaneRbacManager":{id:"local.crossplane.crossplaneRbacManager",element:"edp.crossplane.crossplaneRbacManager",style:{}},"local.crossplane.providerArgoCD":{id:"local.crossplane.providerArgoCD",element:"edp.crossplane.providerArgoCD",style:{}},"local.crossplane.providerKind":{id:"local.crossplane.providerKind",element:"edp.crossplane.providerKind",style:{}},"local.crossplane.providerShell":{id:"local.crossplane.providerShell",element:"edp.crossplane.providerShell",style:{}},"local.externalSecrets.certController":{id:"local.externalSecrets.certController",element:"edp.externalSecrets.certController",style:{}},"local.externalSecrets.externalSecrets":{id:"local.externalSecrets.externalSecrets",element:"edp.externalSecrets.externalSecrets",style:{}},"local.externalSecrets.webhook":{id:"local.externalSecrets.webhook",element:"edp.externalSecrets.webhook",style:{}},"local.velero.velero":{id:"local.velero.velero",element:"edp.velero.velero",style:{}},"local.minio.minio":{id:"local.minio.minio",element:"edp.minio.minio",style:{}},"local.monitoring.alloy":{id:"local.monitoring.alloy",element:"edp.monitoring.alloy",style:{}},"local.monitoring.distributor":{id:"local.monitoring.distributor",element:"edp.monitoring.loki.distributor",style:{}},"local.monitoring.gateway":{id:"local.monitoring.gateway",element:"edp.monitoring.loki.gateway",style:{}},"local.monitoring.ingestor":{id:"local.monitoring.ingestor",element:"edp.monitoring.loki.ingestor",style:{}},"local.monitoring.querier":{id:"local.monitoring.querier",element:"edp.monitoring.loki.querier",style:{}},"local.monitoring.queryFrontend":{id:"local.monitoring.queryFrontend",element:"edp.monitoring.loki.queryFrontend",style:{}},"local.ingressNginx.ingressNginx":{id:"local.ingressNginx.ingressNginx",element:"edp.ingressNginx.ingressNginx",style:{}},"local.openbao.openbao":{id:"local.openbao.openbao",element:"edp.openbao.openbao",style:{}},"local.openbao.agentInjector":{id:"local.openbao.agentInjector",element:"edp.openbao.agentInjector",style:{}},"local.fibonacci.fibonacci":{id:"local.fibonacci.fibonacci",element:"edp.testApp.fibonacci",style:{}},"local.mailhog.mailhog":{id:"local.mailhog.mailhog",element:"edp.mailhog.mailhog",style:{}},"local.spark.sparkoperator":{id:"local.spark.sparkoperator",element:"edp.spark.sparkoperator",style:{}},"otc-edp-per-tenant.cce.edp":{style:{},kind:"cluster",title:"EDP",id:"otc-edp-per-tenant.cce.edp"},"otc-edp-per-tenant.cloudServices.postgres":{id:"otc-edp-per-tenant.cloudServices.postgres",element:"postgres",style:{}},"otc-edp-per-tenant.cloudServices.redis":{id:"otc-edp-per-tenant.cloudServices.redis",element:"redis",style:{}},"otc-edp-per-tenant.cloudServices.objectstorage":{id:"otc-edp-per-tenant.cloudServices.objectstorage",element:"objectstorage",style:{}},"otc-edp-per-tenant.cloudServices.elasticsearch":{id:"otc-edp-per-tenant.cloudServices.elasticsearch",element:"elasticsearch",style:{}},"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner":{id:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner",element:"forgejoRunner",style:{}},"otc-faas.dev.cce":{style:{icon:"tech:kubernetes"},kind:"kubernetes",description:{txt:"*.t09.de"},technology:"Kubernetes",title:"Central Forgejo",id:"otc-faas.dev.cce"},"otc-faas.dev.cloudServices":{style:{},kind:"paas",description:{txt:"EDP Cloud Services (Postgres, Redis, etc."},technology:"Cloud Services",title:"EDP Cloud Services",id:"otc-faas.dev.cloudServices"},"otc-faas.dev.observability":{style:{icon:"tech:kubernetes"},kind:"kubernetes",description:{txt:"*.t09.de"},technology:"Kubernetes",title:"Observability",id:"otc-faas.dev.observability"},"otc-faas.prod.cce":{style:{icon:"tech:kubernetes"},kind:"kubernetes",description:{txt:"*.buildth.ing"},technology:"Kubernetes",title:"Central Forgejo",id:"otc-faas.prod.cce"},"otc-faas.prod.cloudServices":{style:{},kind:"paas",description:{txt:"EDP Cloud Services (Postgres, Redis, etc."},technology:"Cloud Services",title:"EDP Cloud Services",id:"otc-faas.prod.cloudServices"},"otc-faas.prod.observability":{style:{icon:"tech:kubernetes"},kind:"kubernetes",description:{txt:"*.buildth.ing"},technology:"Kubernetes",title:"Observability",id:"otc-faas.prod.observability"},"otc-edpFoundry.cce.internalServices":{style:{},kind:"cluster",title:"EDP Foundry Internal Services",id:"otc-edpFoundry.cce.internalServices"},"otc-edpFoundry.cce.centralObservability":{style:{},kind:"cluster",title:"EDP Foundry Central Observability",id:"otc-edpFoundry.cce.centralObservability"},"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner":{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner",element:"forgejoRunner",style:{}},"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker":{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker",element:"forgejoRunnerWorker",style:{}},"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow":{id:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow",element:"edpworkflow",style:{}},"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner":{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner",element:"forgejoRunner",style:{}},"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker":{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker",element:"forgejoRunnerWorker",style:{}},"otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow":{id:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow",element:"edpworkflow",style:{}},"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner":{id:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner",element:"forgejoRunner",style:{}},"otc-edp-per-tenant.cce.edp.argoCD":{id:"otc-edp-per-tenant.cce.edp.argoCD",element:"edp.argoCD",style:{}},"otc-edp-per-tenant.cce.edp.forgejoRunner":{id:"otc-edp-per-tenant.cce.edp.forgejoRunner",element:"forgejoRunner",style:{}},"otc-edp-per-tenant.cce.edp.forgejo":{id:"otc-edp-per-tenant.cce.edp.forgejo",element:"edp.forgejo",style:{}},"otc-edp-per-tenant.cce.edp.externalSecrets":{id:"otc-edp-per-tenant.cce.edp.externalSecrets",element:"edp.externalSecrets",style:{}},"otc-edp-per-tenant.cce.edp.ingressNginx":{id:"otc-edp-per-tenant.cce.edp.ingressNginx",element:"edp.ingressNginx",style:{}},"otc-faas.dev.cce.edp":{style:{},kind:"cluster",description:{txt:"t09.de"},title:"Forgejo Dev for platform team",id:"otc-faas.dev.cce.edp"},"otc-faas.prod.cce.edp":{style:{},kind:"cluster",title:"Forgejo for all EDP-tenants",id:"otc-faas.prod.cce.edp"},"otc-edpFoundry.cce.internalServices.argoCD":{id:"otc-edpFoundry.cce.internalServices.argoCD",element:"edp.argoCD",style:{}},"otc-edpFoundry.cce.internalServices.forgejo":{id:"otc-edpFoundry.cce.internalServices.forgejo",element:"edp.forgejo",style:{}},"otc-edpFoundry.cce.internalServices.externalSecrets":{id:"otc-edpFoundry.cce.internalServices.externalSecrets",element:"edp.externalSecrets",style:{}},"otc-edpFoundry.cce.internalServices.openbao":{id:"otc-edpFoundry.cce.internalServices.openbao",element:"edp.openbao",style:{}},"otc-edpFoundry.cce.internalServices.ingressNginx":{id:"otc-edpFoundry.cce.internalServices.ingressNginx",element:"edp.ingressNginx",style:{}},"otc-edpFoundry.cce.centralObservability.grafana":{id:"otc-edpFoundry.cce.centralObservability.grafana",element:"edp.grafana",style:{}},"otc-edpFoundry.cce.centralObservability.prometheus":{id:"otc-edpFoundry.cce.centralObservability.prometheus",element:"edp.prometheus",style:{}},"otc-edpFoundry.cce.centralObservability.loki":{id:"otc-edpFoundry.cce.centralObservability.loki",element:"edp.loki",style:{}},"otc-faas.dev.cce.edp.forgejo":{id:"otc-faas.dev.cce.edp.forgejo",element:"edp.forgejo",style:{}},"otc-faas.prod.cce.edp.forgejo":{id:"otc-faas.prod.cce.edp.forgejo",element:"edp.forgejo",title:"Forgejo for all EDP-tenants",description:{txt:"buildth.ing"},style:{}}},relations:{g9oj4f:{title:"registers",source:{deployment:"otc-edp-per-tenant.forgejoRunnerInfrastructure.forgejoRunner"},target:{deployment:"otc-edp-per-tenant.cce.edp.forgejo"},id:"g9oj4f"},"1fzhjm9":{source:{deployment:"otc-edp-per-tenant.cce.edp.forgejo"},target:{deployment:"otc-edp-per-tenant.cloudServices.elasticsearch"},id:"1fzhjm9"},"15njmlz":{source:{deployment:"otc-edp-per-tenant.cce.edp.forgejo"},target:{deployment:"otc-edp-per-tenant.cloudServices.objectstorage"},id:"15njmlz"},hks76r:{source:{deployment:"otc-edp-per-tenant.cce.edp.forgejo"},target:{deployment:"otc-edp-per-tenant.cloudServices.postgres"},id:"hks76r"},"1w18ve8":{source:{deployment:"otc-edp-per-tenant.cce.edp.forgejo"},target:{deployment:"otc-edp-per-tenant.cloudServices.redis"},id:"1w18ve8"},dz2rdn:{source:{deployment:"otc-faas.dev.cce.edp.forgejo"},target:{deployment:"otc-faas.dev.cloudServices"},id:"dz2rdn"},"2shw6y":{source:{deployment:"otc-faas.prod.cce.edp.forgejo"},target:{deployment:"otc-faas.prod.cloudServices"},id:"2shw6y"},"7kqly3":{title:"runs",source:{deployment:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner"},target:{deployment:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker"},id:"7kqly3"},"12hf1w4":{title:"executes",source:{deployment:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunnerWorker"},target:{deployment:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow"},id:"12hf1w4"},uk77s5:{title:"deploys edp to otc.cce",source:{deployment:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow"},target:{deployment:"otc-edp-per-tenant.cce.edp"},id:"uk77s5"},"1pfc6bl":{title:"deploys edp to otc.paas",source:{deployment:"otc-edpFoundry.workflowSetupEDPInfrastructure.edpworkflow"},target:{deployment:"otc-edp-per-tenant.cloudServices"},id:"1pfc6bl"},hqie0:{title:"runs",source:{deployment:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner"},target:{deployment:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker"},id:"hqie0"},"1j16hqv":{title:"executes",source:{deployment:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunnerWorker"},target:{deployment:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow"},id:"1j16hqv"},jde35l:{source:{deployment:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.edpworkflow"},target:{deployment:"otc-edp-per-tenant.cce.edp.argoCD"},id:"jde35l"},"1umzqdy":{title:"registers",source:{deployment:"otc-edpFoundry.forgejoRunnerInfrastructure.forgejoRunner"},target:{deployment:"otc-edpFoundry.cce.internalServices.forgejo"},id:"1umzqdy"},dola40:{title:"invokes",source:{deployment:"otc-edpFoundry.cce.internalServices.forgejo"},target:{deployment:"otc-edpFoundry.workflowSetupEDPInfrastructure.forgejoRunner"},id:"dola40"},"1f5y9gc":{title:"invokes",source:{deployment:"otc-edpFoundry.cce.internalServices.forgejo"},target:{deployment:"otc-edpFoundry.workflowSetupArgoCDInfrastructure.forgejoRunner"},id:"1f5y9gc"}}},imports:{}}),{useLikeC4Model:Ntt}=Rtt(Att);function Dtt({children:e}){const r=Ntt();return y.jsx(Cet,{likec4model:r,children:e})}function $tt(e){return y.jsx(Dtt,{children:y.jsx(Jet,{renderIcon:mtt,...e})})}var wR={exports:{}},Fy={},kR={exports:{}},_R={};/** +* @license React +* scheduler.production.js +* +* Copyright (c) Meta Platforms, Inc. and affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var Jte;function Ptt(){return Jte||(Jte=1,(function(e){function r(I,U){var V=I.length;I.push(U);e:for(;0>>1,F=I[G];if(0>>1;Ga(z,V))Wa(X,z)?(I[G]=X,I[W]=V,G=W):(I[G]=z,I[Q]=V,G=Q);else if(Wa(X,V))I[G]=X,I[W]=V,G=W;else break e}}return U}function a(I,U){var V=I.sortIndex-U.sortIndex;return V!==0?V:I.id-U.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();e.unstable_now=function(){return l.now()-s}}var c=[],u=[],d=1,p=null,f=3,g=!1,b=!1,x=!1,w=!1,k=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;function T(I){for(var U=n(u);U!==null;){if(U.callback===null)o(u);else if(U.startTime<=I)o(u),U.sortIndex=U.expirationTime,r(c,U);else break;U=n(u)}}function R(I){if(x=!1,T(I),!b)if(n(c)!==null)b=!0,A||(A=!0,L());else{var U=n(u);U!==null&&q(R,U.startTime-I)}}var A=!1,D=-1,N=5,P=-1;function O(){return w?!0:!(e.unstable_now()-PI&&O());){var G=p.callback;if(typeof G=="function"){p.callback=null,f=p.priorityLevel;var F=G(p.expirationTime<=I);if(I=e.unstable_now(),typeof F=="function"){p.callback=F,T(I),U=!0;break t}p===n(c)&&o(c),T(I)}else o(c);p=n(c)}if(p!==null)U=!0;else{var J=n(u);J!==null&&q(R,J.startTime-I),U=!1}}break e}finally{p=null,f=V,g=!1}U=void 0}}finally{U?L():A=!1}}}var L;if(typeof _=="function")L=function(){_(B)};else if(typeof MessageChannel<"u"){var Y=new MessageChannel,M=Y.port2;Y.port1.onmessage=B,L=function(){M.postMessage(null)}}else L=function(){k(B,0)};function q(I,U){D=k(function(){I(e.unstable_now())},U)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(I){I.callback=null},e.unstable_forceFrameRate=function(I){0>I||125G?(I.sortIndex=V,r(u,I),n(c)===null&&I===n(u)&&(x?(C(D),D=-1):x=!0,q(R,V-G))):(I.sortIndex=F,r(c,I),b||g||(b=!0,A||(A=!0,L()))),I},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(I){var U=f;return function(){var V=f;f=U;try{return I.apply(this,arguments)}finally{f=V}}}})(_R)),_R}var ere;function Ott(){return ere||(ere=1,kR.exports=Ptt()),kR.exports}/** +* @license React +* react-dom-client.production.js +* +* Copyright (c) Meta Platforms, Inc. and affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/var tre;function Mtt(){if(tre)return Fy;tre=1;var e=Ott(),r=q_(),n=CM();function o(h){var m="https://react.dev/errors/"+h;if(1F||(h.current=G[F],G[F]=null,F--)}function z(h,m){F++,G[F]=h.current,h.current=m}var W=J(null),X=J(null),Z=J(null),oe=J(null);function ee(h,m){switch(z(Z,m),z(X,h),z(W,null),m.nodeType){case 9:case 11:h=(h=m.documentElement)&&(h=h.namespaceURI)?Gge(h):0;break;default:if(h=m.tagName,m=m.namespaceURI)m=Gge(m),h=Xge(m,h);else switch(h){case"svg":h=1;break;case"math":h=2;break;default:h=0}}Q(W),z(W,h)}function re(){Q(W),Q(X),Q(Z)}function pe(h){h.memoizedState!==null&&z(oe,h);var m=W.current,v=Xge(m,h.type);m!==v&&(z(X,h),z(W,v))}function Ce(h){X.current===h&&(Q(W),Q(X)),oe.current===h&&(Q(oe),jv._currentValue=V)}var ce=Object.prototype.hasOwnProperty,de=e.unstable_scheduleCallback,be=e.unstable_cancelCallback,Me=e.unstable_shouldYield,Xe=e.unstable_requestPaint,Ge=e.unstable_now,_t=e.unstable_getCurrentPriorityLevel,Qe=e.unstable_ImmediatePriority,St=e.unstable_UserBlockingPriority,Ke=e.unstable_NormalPriority,We=e.unstable_LowPriority,st=e.unstable_IdlePriority,Et=e.log,$n=e.unstable_setDisableYieldValue,_e=null,we=null;function rt(h){if(typeof Et=="function"&&$n(h),we&&typeof we.setStrictMode=="function")try{we.setStrictMode(_e,h)}catch{}}var at=Math.clz32?Math.clz32:$t,Dt=Math.log,Wr=Math.LN2;function $t(h){return h>>>=0,h===0?32:31-(Dt(h)/Wr|0)|0}var Tr=256,vo=4194304;function Pn(h){var m=h&42;if(m!==0)return m;switch(h&-h){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return h&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return h&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return h}}function Fr(h,m,v){var S=h.pendingLanes;if(S===0)return 0;var $=0,j=h.suspendedLanes,K=h.pingedLanes;h=h.warmLanes;var te=S&134217727;return te!==0?(S=te&~j,S!==0?$=Pn(S):(K&=te,K!==0?$=Pn(K):v||(v=te&~h,v!==0&&($=Pn(v))))):(te=S&~j,te!==0?$=Pn(te):K!==0?$=Pn(K):v||(v=S&~h,v!==0&&($=Pn(v)))),$===0?0:m!==0&&m!==$&&(m&j)===0&&(j=$&-$,v=m&-m,j>=v||j===32&&(v&4194048)!==0)?m:$}function no(h,m){return(h.pendingLanes&~(h.suspendedLanes&~h.pingedLanes)&m)===0}function ur(h,m){switch(h){case 1:case 2:case 4:case 8:case 64:return m+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return m+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ha(){var h=Tr;return Tr<<=1,(Tr&4194048)===0&&(Tr=256),h}function _s(){var h=vo;return vo<<=1,(vo&62914560)===0&&(vo=4194304),h}function Qp(h){for(var m=[],v=0;31>v;v++)m.push(h);return m}function Cc(h,m){h.pendingLanes|=m,m!==268435456&&(h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0)}function Ub(h,m,v,S,$,j){var K=h.pendingLanes;h.pendingLanes=v,h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0,h.expiredLanes&=v,h.entangledLanes&=v,h.errorRecoveryDisabledLanes&=v,h.shellSuspendCounter=0;var te=h.entanglements,se=h.expirationTimes,ge=h.hiddenUpdates;for(v=K&~v;0)":-1$||se[S]!==ge[$]){var Te=` +`+se[S].replace(" at new "," at ");return h.displayName&&Te.includes("")&&(Te=Te.replace("",h.displayName)),Te}while(1<=S&&0<=$);break}}}finally{oh=!1,Error.prepareStackTrace=v}return(v=h?h.displayName||h.name:"")?Ni(v):""}function Xb(h){switch(h.tag){case 26:case 27:case 5:return Ni(h.type);case 16:return Ni("Lazy");case 13:return Ni("Suspense");case 19:return Ni("SuspenseList");case 0:case 15:return ah(h.type,!1);case 11:return ah(h.type.render,!1);case 1:return ah(h.type,!0);case 31:return Ni("Activity");default:return""}}function $g(h){try{var m="";do m+=Xb(h),h=h.return;while(h);return m}catch(v){return` +Error generating stack: `+v.message+` +`+v.stack}}function Lo(h){switch(typeof h){case"bigint":case"boolean":case"number":case"string":case"undefined":return h;case"object":return h;default:return""}}function Pg(h){var m=h.type;return(h=h.nodeName)&&h.toLowerCase()==="input"&&(m==="checkbox"||m==="radio")}function Kb(h){var m=Pg(h)?"checked":"value",v=Object.getOwnPropertyDescriptor(h.constructor.prototype,m),S=""+h[m];if(!h.hasOwnProperty(m)&&typeof v<"u"&&typeof v.get=="function"&&typeof v.set=="function"){var $=v.get,j=v.set;return Object.defineProperty(h,m,{configurable:!0,get:function(){return $.call(this)},set:function(K){S=""+K,j.call(this,K)}}),Object.defineProperty(h,m,{enumerable:v.enumerable}),{getValue:function(){return S},setValue:function(K){S=""+K},stopTracking:function(){h._valueTracker=null,delete h[m]}}}}function Yu(h){h._valueTracker||(h._valueTracker=Kb(h))}function Wu(h){if(!h)return!1;var m=h._valueTracker;if(!m)return!0;var v=m.getValue(),S="";return h&&(S=Pg(h)?h.checked?"true":"false":h.value),h=S,h!==v?(m.setValue(h),!0):!1}function Gu(h){if(h=h||(typeof document<"u"?document:void 0),typeof h>"u")return null;try{return h.activeElement||h.body}catch{return h.body}}var Zb=/[\n"\\]/g;function zo(h){return h.replace(Zb,function(m){return"\\"+m.charCodeAt(0).toString(16)+" "})}function Bl(h,m,v,S,$,j,K,te){h.name="",K!=null&&typeof K!="function"&&typeof K!="symbol"&&typeof K!="boolean"?h.type=K:h.removeAttribute("type"),m!=null?K==="number"?(m===0&&h.value===""||h.value!=m)&&(h.value=""+Lo(m)):h.value!==""+Lo(m)&&(h.value=""+Lo(m)):K!=="submit"&&K!=="reset"||h.removeAttribute("value"),m!=null?ih(h,K,Lo(m)):v!=null?ih(h,K,Lo(v)):S!=null&&h.removeAttribute("value"),$==null&&j!=null&&(h.defaultChecked=!!j),$!=null&&(h.checked=$&&typeof $!="function"&&typeof $!="symbol"),te!=null&&typeof te!="function"&&typeof te!="symbol"&&typeof te!="boolean"?h.name=""+Lo(te):h.removeAttribute("name")}function Og(h,m,v,S,$,j,K,te){if(j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"&&(h.type=j),m!=null||v!=null){if(!(j!=="submit"&&j!=="reset"||m!=null))return;v=v!=null?""+Lo(v):"",m=m!=null?""+Lo(m):v,te||m===h.value||(h.value=m),h.defaultValue=m}S=S??$,S=typeof S!="function"&&typeof S!="symbol"&&!!S,h.checked=te?h.checked:!!S,h.defaultChecked=!!S,K!=null&&typeof K!="function"&&typeof K!="symbol"&&typeof K!="boolean"&&(h.name=K)}function ih(h,m,v){m==="number"&&Gu(h.ownerDocument)===h||h.defaultValue===""+v||(h.defaultValue=""+v)}function Di(h,m,v,S){if(h=h.options,m){m={};for(var $=0;$"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wP=!1;if(Rc)try{var Jb={};Object.defineProperty(Jb,"passive",{get:function(){wP=!0}}),window.addEventListener("test",Jb,Jb),window.removeEventListener("test",Jb,Jb)}catch{wP=!1}var Xu=null,kP=null,I5=null;function Qhe(){if(I5)return I5;var h,m=kP,v=m.length,S,$="value"in Xu?Xu.value:Xu.textContent,j=$.length;for(h=0;h=rv),ofe=" ",afe=!1;function ife(h,m){switch(h){case"keyup":return Okt.indexOf(m.keyCode)!==-1;case"keydown":return m.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function lfe(h){return h=h.detail,typeof h=="object"&&"data"in h?h.data:null}var zg=!1;function Ikt(h,m){switch(h){case"compositionend":return lfe(m);case"keypress":return m.which!==32?null:(afe=!0,ofe);case"textInput":return h=m.data,h===ofe&&afe?null:h;default:return null}}function Lkt(h,m){if(zg)return h==="compositionend"||!TP&&ife(h,m)?(h=Qhe(),I5=kP=Xu=null,zg=!1,h):null;switch(h){case"paste":return null;case"keypress":if(!(m.ctrlKey||m.altKey||m.metaKey)||m.ctrlKey&&m.altKey){if(m.char&&1=m)return{node:v,offset:m-h};h=S}e:{for(;v;){if(v.nextSibling){v=v.nextSibling;break e}v=v.parentNode}v=void 0}v=mfe(v)}}function yfe(h,m){return h&&m?h===m?!0:h&&h.nodeType===3?!1:m&&m.nodeType===3?yfe(h,m.parentNode):"contains"in h?h.contains(m):h.compareDocumentPosition?!!(h.compareDocumentPosition(m)&16):!1:!1}function bfe(h){h=h!=null&&h.ownerDocument!=null&&h.ownerDocument.defaultView!=null?h.ownerDocument.defaultView:window;for(var m=Gu(h.document);m instanceof h.HTMLIFrameElement;){try{var v=typeof m.contentWindow.location.href=="string"}catch{v=!1}if(v)h=m.contentWindow;else break;m=Gu(h.document)}return m}function NP(h){var m=h&&h.nodeName&&h.nodeName.toLowerCase();return m&&(m==="input"&&(h.type==="text"||h.type==="search"||h.type==="tel"||h.type==="url"||h.type==="password")||m==="textarea"||h.contentEditable==="true")}var Vkt=Rc&&"documentMode"in document&&11>=document.documentMode,jg=null,DP=null,iv=null,$P=!1;function vfe(h,m,v){var S=v.window===v?v.document:v.nodeType===9?v:v.ownerDocument;$P||jg==null||jg!==Gu(S)||(S=jg,"selectionStart"in S&&NP(S)?S={start:S.selectionStart,end:S.selectionEnd}:(S=(S.ownerDocument&&S.ownerDocument.defaultView||window).getSelection(),S={anchorNode:S.anchorNode,anchorOffset:S.anchorOffset,focusNode:S.focusNode,focusOffset:S.focusOffset}),iv&&av(iv,S)||(iv=S,S=C_(DP,"onSelect"),0>=K,$-=K,Nc=1<<32-at(m)+$|v<<$|S,Dc=j+h}else Nc=1<j?j:8;var K=I.T,te={};I.T=te,yO(h,!1,m,v);try{var se=$(),ge=I.S;if(ge!==null&&ge(te,se),se!==null&&typeof se=="object"&&typeof se.then=="function"){var Te=e5t(se,S);wv(h,m,Te,Wa(h))}else wv(h,m,S,Wa(h))}catch(Ne){wv(h,m,{then:function(){},status:"rejected",reason:Ne},Wa())}finally{U.p=j,I.T=K}}function a5t(){}function mO(h,m,v,S){if(h.tag!==5)throw Error(o(476));var $=xme(h).queue;vme(h,$,m,V,v===null?a5t:function(){return wme(h),v(S)})}function xme(h){var m=h.memoizedState;if(m!==null)return m;m={memoizedState:V,baseState:V,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Oc,lastRenderedState:V},next:null};var v={};return m.next={memoizedState:v,baseState:v,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Oc,lastRenderedState:v},next:null},h.memoizedState=m,h=h.alternate,h!==null&&(h.memoizedState=m),m}function wme(h){var m=xme(h).next.queue;wv(h,m,{},Wa())}function gO(){return jo(jv)}function kme(){return In().memoizedState}function _me(){return In().memoizedState}function i5t(h){for(var m=h.return;m!==null;){switch(m.tag){case 24:case 3:var v=Wa();h=Qu(v);var S=Ju(m,h,v);S!==null&&(Ga(S,m,v),mv(S,m,v)),m={cache:YP()},h.payload=m;return}m=m.return}}function l5t(h,m,v){var S=Wa();v={lane:S,revertLane:0,action:v,hasEagerState:!1,eagerState:null,next:null},i_(h)?Sme(m,v):(v=IP(h,m,v,S),v!==null&&(Ga(v,h,S),Cme(v,m,S)))}function Eme(h,m,v){var S=Wa();wv(h,m,v,S)}function wv(h,m,v,S){var $={lane:S,revertLane:0,action:v,hasEagerState:!1,eagerState:null,next:null};if(i_(h))Sme(m,$);else{var j=h.alternate;if(h.lanes===0&&(j===null||j.lanes===0)&&(j=m.lastRenderedReducer,j!==null))try{var K=m.lastRenderedState,te=j(K,v);if($.hasEagerState=!0,$.eagerState=te,Ha(te,K))return U5(h,m,$,0),Rr===null&&H5(),!1}catch{}finally{}if(v=IP(h,m,$,S),v!==null)return Ga(v,h,S),Cme(v,m,S),!0}return!1}function yO(h,m,v,S){if(S={lane:2,revertLane:XO(),action:S,hasEagerState:!1,eagerState:null,next:null},i_(h)){if(m)throw Error(o(479))}else m=IP(h,v,S,2),m!==null&&Ga(m,h,2)}function i_(h){var m=h.alternate;return h===Bt||m!==null&&m===Bt}function Sme(h,m){Xg=e_=!0;var v=h.pending;v===null?m.next=m:(m.next=v.next,v.next=m),h.pending=m}function Cme(h,m,v){if((v&4194048)!==0){var S=m.lanes;S&=h.pendingLanes,v|=S,m.lanes=v,Hu(h,v)}}var l_={readContext:jo,use:r_,useCallback:dn,useContext:dn,useEffect:dn,useImperativeHandle:dn,useLayoutEffect:dn,useInsertionEffect:dn,useMemo:dn,useReducer:dn,useRef:dn,useState:dn,useDebugValue:dn,useDeferredValue:dn,useTransition:dn,useSyncExternalStore:dn,useId:dn,useHostTransitionStatus:dn,useFormState:dn,useActionState:dn,useOptimistic:dn,useMemoCache:dn,useCacheRefresh:dn},Tme={readContext:jo,use:r_,useCallback:function(h,m){return ma().memoizedState=[h,m===void 0?null:m],h},useContext:jo,useEffect:ume,useImperativeHandle:function(h,m,v){v=v!=null?v.concat([h]):null,a_(4194308,4,fme.bind(null,m,h),v)},useLayoutEffect:function(h,m){return a_(4194308,4,h,m)},useInsertionEffect:function(h,m){a_(4,2,h,m)},useMemo:function(h,m){var v=ma();m=m===void 0?null:m;var S=h();if(bh){rt(!0);try{h()}finally{rt(!1)}}return v.memoizedState=[S,m],S},useReducer:function(h,m,v){var S=ma();if(v!==void 0){var $=v(m);if(bh){rt(!0);try{v(m)}finally{rt(!1)}}}else $=m;return S.memoizedState=S.baseState=$,h={pending:null,lanes:0,dispatch:null,lastRenderedReducer:h,lastRenderedState:$},S.queue=h,h=h.dispatch=l5t.bind(null,Bt,h),[S.memoizedState,h]},useRef:function(h){var m=ma();return h={current:h},m.memoizedState=h},useState:function(h){h=dO(h);var m=h.queue,v=Eme.bind(null,Bt,m);return m.dispatch=v,[h.memoizedState,v]},useDebugValue:hO,useDeferredValue:function(h,m){var v=ma();return fO(v,h,m)},useTransition:function(){var h=dO(!1);return h=vme.bind(null,Bt,h.queue,!0,!1),ma().memoizedState=h,[!1,h]},useSyncExternalStore:function(h,m,v){var S=Bt,$=ma();if(ir){if(v===void 0)throw Error(o(407));v=v()}else{if(v=m(),Rr===null)throw Error(o(349));(rr&124)!==0||Gfe(S,m,v)}$.memoizedState=v;var j={value:v,getSnapshot:m};return $.queue=j,ume(Kfe.bind(null,S,j,h),[h]),S.flags|=2048,Zg(9,o_(),Xfe.bind(null,S,j,v,m),null),v},useId:function(){var h=ma(),m=Rr.identifierPrefix;if(ir){var v=Dc,S=Nc;v=(S&~(1<<32-at(S)-1)).toString(32)+v,m="«"+m+"R"+v,v=t_++,0gt?(lo=ct,ct=null):lo=ct.sibling;var ar=ve(he,ct,fe[gt],Re);if(ar===null){ct===null&&(ct=lo);break}h&&ct&&ar.alternate===null&&m(he,ct),ue=j(ar,ue,gt),Vt===null?ot=ar:Vt.sibling=ar,Vt=ar,ct=lo}if(gt===fe.length)return v(he,ct),ir&&ph(he,gt),ot;if(ct===null){for(;gtgt?(lo=ct,ct=null):lo=ct.sibling;var gd=ve(he,ct,ar.value,Re);if(gd===null){ct===null&&(ct=lo);break}h&&ct&&gd.alternate===null&&m(he,ct),ue=j(gd,ue,gt),Vt===null?ot=gd:Vt.sibling=gd,Vt=gd,ct=lo}if(ar.done)return v(he,ct),ir&&ph(he,gt),ot;if(ct===null){for(;!ar.done;gt++,ar=fe.next())ar=Ne(he,ar.value,Re),ar!==null&&(ue=j(ar,ue,gt),Vt===null?ot=ar:Vt.sibling=ar,Vt=ar);return ir&&ph(he,gt),ot}for(ct=S(ct);!ar.done;gt++,ar=fe.next())ar=ke(ct,he,gt,ar.value,Re),ar!==null&&(h&&ar.alternate!==null&&ct.delete(ar.key===null?gt:ar.key),ue=j(ar,ue,gt),Vt===null?ot=ar:Vt.sibling=ar,Vt=ar);return h&&ct.forEach(function(c_t){return m(he,c_t)}),ir&&ph(he,gt),ot}function vr(he,ue,fe,Re){if(typeof fe=="object"&&fe!==null&&fe.type===b&&fe.key===null&&(fe=fe.props.children),typeof fe=="object"&&fe!==null){switch(fe.$$typeof){case f:e:{for(var ot=fe.key;ue!==null;){if(ue.key===ot){if(ot=fe.type,ot===b){if(ue.tag===7){v(he,ue.sibling),Re=$(ue,fe.props.children),Re.return=he,he=Re;break e}}else if(ue.elementType===ot||typeof ot=="object"&&ot!==null&&ot.$$typeof===N&&Ame(ot)===ue.type){v(he,ue.sibling),Re=$(ue,fe.props),_v(Re,fe),Re.return=he,he=Re;break e}v(he,ue);break}else m(he,ue);ue=ue.sibling}fe.type===b?(Re=uh(fe.props.children,he.mode,Re,fe.key),Re.return=he,he=Re):(Re=V5(fe.type,fe.key,fe.props,null,he.mode,Re),_v(Re,fe),Re.return=he,he=Re)}return K(he);case g:e:{for(ot=fe.key;ue!==null;){if(ue.key===ot)if(ue.tag===4&&ue.stateNode.containerInfo===fe.containerInfo&&ue.stateNode.implementation===fe.implementation){v(he,ue.sibling),Re=$(ue,fe.children||[]),Re.return=he,he=Re;break e}else{v(he,ue);break}else m(he,ue);ue=ue.sibling}Re=jP(fe,he.mode,Re),Re.return=he,he=Re}return K(he);case N:return ot=fe._init,fe=ot(fe._payload),vr(he,ue,fe,Re)}if(q(fe))return xt(he,ue,fe,Re);if(L(fe)){if(ot=L(fe),typeof ot!="function")throw Error(o(150));return fe=ot.call(fe),ft(he,ue,fe,Re)}if(typeof fe.then=="function")return vr(he,ue,s_(fe),Re);if(fe.$$typeof===_)return vr(he,ue,X5(he,fe),Re);c_(he,fe)}return typeof fe=="string"&&fe!==""||typeof fe=="number"||typeof fe=="bigint"?(fe=""+fe,ue!==null&&ue.tag===6?(v(he,ue.sibling),Re=$(ue,fe),Re.return=he,he=Re):(v(he,ue),Re=zP(fe,he.mode,Re),Re.return=he,he=Re),K(he)):v(he,ue)}return function(he,ue,fe,Re){try{kv=0;var ot=vr(he,ue,fe,Re);return Qg=null,ot}catch(ct){if(ct===hv||ct===Z5)throw ct;var Vt=Ua(29,ct,null,he.mode);return Vt.lanes=Re,Vt.return=he,Vt}finally{}}}var Jg=Nme(!0),Dme=Nme(!1),Ii=J(null),Rs=null;function td(h){var m=h.alternate;z(Hn,Hn.current&1),z(Ii,h),Rs===null&&(m===null||Gg.current!==null||m.memoizedState!==null)&&(Rs=h)}function $me(h){if(h.tag===22){if(z(Hn,Hn.current),z(Ii,h),Rs===null){var m=h.alternate;m!==null&&m.memoizedState!==null&&(Rs=h)}}else rd()}function rd(){z(Hn,Hn.current),z(Ii,Ii.current)}function Mc(h){Q(Ii),Rs===h&&(Rs=null),Q(Hn)}var Hn=J(0);function u_(h){for(var m=h;m!==null;){if(m.tag===13){var v=m.memoizedState;if(v!==null&&(v=v.dehydrated,v===null||v.data==="$?"||lM(v)))return m}else if(m.tag===19&&m.memoizedProps.revealOrder!==void 0){if((m.flags&128)!==0)return m}else if(m.child!==null){m.child.return=m,m=m.child;continue}if(m===h)break;for(;m.sibling===null;){if(m.return===null||m.return===h)return null;m=m.return}m.sibling.return=m.return,m=m.sibling}return null}function bO(h,m,v,S){m=h.memoizedState,v=v(S,m),v=v==null?m:d({},m,v),h.memoizedState=v,h.lanes===0&&(h.updateQueue.baseState=v)}var vO={enqueueSetState:function(h,m,v){h=h._reactInternals;var S=Wa(),$=Qu(S);$.payload=m,v!=null&&($.callback=v),m=Ju(h,$,S),m!==null&&(Ga(m,h,S),mv(m,h,S))},enqueueReplaceState:function(h,m,v){h=h._reactInternals;var S=Wa(),$=Qu(S);$.tag=1,$.payload=m,v!=null&&($.callback=v),m=Ju(h,$,S),m!==null&&(Ga(m,h,S),mv(m,h,S))},enqueueForceUpdate:function(h,m){h=h._reactInternals;var v=Wa(),S=Qu(v);S.tag=2,m!=null&&(S.callback=m),m=Ju(h,S,v),m!==null&&(Ga(m,h,v),mv(m,h,v))}};function Pme(h,m,v,S,$,j,K){return h=h.stateNode,typeof h.shouldComponentUpdate=="function"?h.shouldComponentUpdate(S,j,K):m.prototype&&m.prototype.isPureReactComponent?!av(v,S)||!av($,j):!0}function Ome(h,m,v,S){h=m.state,typeof m.componentWillReceiveProps=="function"&&m.componentWillReceiveProps(v,S),typeof m.UNSAFE_componentWillReceiveProps=="function"&&m.UNSAFE_componentWillReceiveProps(v,S),m.state!==h&&vO.enqueueReplaceState(m,m.state,null)}function vh(h,m){var v=m;if("ref"in m){v={};for(var S in m)S!=="ref"&&(v[S]=m[S])}if(h=h.defaultProps){v===m&&(v=d({},v));for(var $ in h)v[$]===void 0&&(v[$]=h[$])}return v}var d_=typeof reportError=="function"?reportError:function(h){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var m=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof h=="object"&&h!==null&&typeof h.message=="string"?String(h.message):String(h),error:h});if(!window.dispatchEvent(m))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",h);return}console.error(h)};function Mme(h){d_(h)}function Ime(h){console.error(h)}function Lme(h){d_(h)}function p_(h,m){try{var v=h.onUncaughtError;v(m.value,{componentStack:m.stack})}catch(S){setTimeout(function(){throw S})}}function zme(h,m,v){try{var S=h.onCaughtError;S(v.value,{componentStack:v.stack,errorBoundary:m.tag===1?m.stateNode:null})}catch($){setTimeout(function(){throw $})}}function xO(h,m,v){return v=Qu(v),v.tag=3,v.payload={element:null},v.callback=function(){p_(h,m)},v}function jme(h){return h=Qu(h),h.tag=3,h}function Bme(h,m,v,S){var $=v.type.getDerivedStateFromError;if(typeof $=="function"){var j=S.value;h.payload=function(){return $(j)},h.callback=function(){zme(m,v,S)}}var K=v.stateNode;K!==null&&typeof K.componentDidCatch=="function"&&(h.callback=function(){zme(m,v,S),typeof $!="function"&&(sd===null?sd=new Set([this]):sd.add(this));var te=S.stack;this.componentDidCatch(S.value,{componentStack:te!==null?te:""})})}function c5t(h,m,v,S,$){if(v.flags|=32768,S!==null&&typeof S=="object"&&typeof S.then=="function"){if(m=v.alternate,m!==null&&uv(m,v,$,!0),v=Ii.current,v!==null){switch(v.tag){case 13:return Rs===null?qO():v.alternate===null&&nn===0&&(nn=3),v.flags&=-257,v.flags|=65536,v.lanes=$,S===XP?v.flags|=16384:(m=v.updateQueue,m===null?v.updateQueue=new Set([S]):m.add(S),YO(h,S,$)),!1;case 22:return v.flags|=65536,S===XP?v.flags|=16384:(m=v.updateQueue,m===null?(m={transitions:null,markerInstances:null,retryQueue:new Set([S])},v.updateQueue=m):(v=m.retryQueue,v===null?m.retryQueue=new Set([S]):v.add(S)),YO(h,S,$)),!1}throw Error(o(435,v.tag))}return YO(h,S,$),qO(),!1}if(ir)return m=Ii.current,m!==null?((m.flags&65536)===0&&(m.flags|=256),m.flags|=65536,m.lanes=$,S!==HP&&(h=Error(o(422),{cause:S}),cv($i(h,v)))):(S!==HP&&(m=Error(o(423),{cause:S}),cv($i(m,v))),h=h.current.alternate,h.flags|=65536,$&=-$,h.lanes|=$,S=$i(S,v),$=xO(h.stateNode,S,$),QP(h,$),nn!==4&&(nn=2)),!1;var j=Error(o(520),{cause:S});if(j=$i(j,v),Nv===null?Nv=[j]:Nv.push(j),nn!==4&&(nn=2),m===null)return!0;S=$i(S,v),v=m;do{switch(v.tag){case 3:return v.flags|=65536,h=$&-$,v.lanes|=h,h=xO(v.stateNode,S,h),QP(v,h),!1;case 1:if(m=v.type,j=v.stateNode,(v.flags&128)===0&&(typeof m.getDerivedStateFromError=="function"||j!==null&&typeof j.componentDidCatch=="function"&&(sd===null||!sd.has(j))))return v.flags|=65536,$&=-$,v.lanes|=$,$=jme($),Bme($,h,v,S),QP(v,$),!1}v=v.return}while(v!==null);return!1}var Fme=Error(o(461)),ao=!1;function xo(h,m,v,S){m.child=h===null?Dme(m,null,v,S):Jg(m,h.child,v,S)}function Hme(h,m,v,S,$){v=v.render;var j=m.ref;if("ref"in S){var K={};for(var te in S)te!=="ref"&&(K[te]=S[te])}else K=S;return gh(m),S=nO(h,m,v,K,j,$),te=oO(),h!==null&&!ao?(aO(h,m,$),Ic(h,m,$)):(ir&&te&&BP(m),m.flags|=1,xo(h,m,S,$),m.child)}function Ume(h,m,v,S,$){if(h===null){var j=v.type;return typeof j=="function"&&!LP(j)&&j.defaultProps===void 0&&v.compare===null?(m.tag=15,m.type=j,qme(h,m,j,S,$)):(h=V5(v.type,null,S,m,m.mode,$),h.ref=m.ref,h.return=m,m.child=h)}if(j=h.child,!RO(h,$)){var K=j.memoizedProps;if(v=v.compare,v=v!==null?v:av,v(K,S)&&h.ref===m.ref)return Ic(h,m,$)}return m.flags|=1,h=Ac(j,S),h.ref=m.ref,h.return=m,m.child=h}function qme(h,m,v,S,$){if(h!==null){var j=h.memoizedProps;if(av(j,S)&&h.ref===m.ref)if(ao=!1,m.pendingProps=S=j,RO(h,$))(h.flags&131072)!==0&&(ao=!0);else return m.lanes=h.lanes,Ic(h,m,$)}return wO(h,m,v,S,$)}function Vme(h,m,v){var S=m.pendingProps,$=S.children,j=h!==null?h.memoizedState:null;if(S.mode==="hidden"){if((m.flags&128)!==0){if(S=j!==null?j.baseLanes|v:v,h!==null){for($=m.child=h.child,j=0;$!==null;)j=j|$.lanes|$.childLanes,$=$.sibling;m.childLanes=j&~S}else m.childLanes=0,m.child=null;return Yme(h,m,S,v)}if((v&536870912)!==0)m.memoizedState={baseLanes:0,cachePool:null},h!==null&&K5(m,j!==null?j.cachePool:null),j!==null?qfe(m,j):eO(),$me(m);else return m.lanes=m.childLanes=536870912,Yme(h,m,j!==null?j.baseLanes|v:v,v)}else j!==null?(K5(m,j.cachePool),qfe(m,j),rd(),m.memoizedState=null):(h!==null&&K5(m,null),eO(),rd());return xo(h,m,$,v),m.child}function Yme(h,m,v,S){var $=GP();return $=$===null?null:{parent:Fn._currentValue,pool:$},m.memoizedState={baseLanes:v,cachePool:$},h!==null&&K5(m,null),eO(),$me(m),h!==null&&uv(h,m,S,!0),null}function h_(h,m){var v=m.ref;if(v===null)h!==null&&h.ref!==null&&(m.flags|=4194816);else{if(typeof v!="function"&&typeof v!="object")throw Error(o(284));(h===null||h.ref!==v)&&(m.flags|=4194816)}}function wO(h,m,v,S,$){return gh(m),v=nO(h,m,v,S,void 0,$),S=oO(),h!==null&&!ao?(aO(h,m,$),Ic(h,m,$)):(ir&&S&&BP(m),m.flags|=1,xo(h,m,v,$),m.child)}function Wme(h,m,v,S,$,j){return gh(m),m.updateQueue=null,v=Yfe(m,S,v,$),Vfe(h),S=oO(),h!==null&&!ao?(aO(h,m,j),Ic(h,m,j)):(ir&&S&&BP(m),m.flags|=1,xo(h,m,v,j),m.child)}function Gme(h,m,v,S,$){if(gh(m),m.stateNode===null){var j=Ug,K=v.contextType;typeof K=="object"&&K!==null&&(j=jo(K)),j=new v(S,j),m.memoizedState=j.state!==null&&j.state!==void 0?j.state:null,j.updater=vO,m.stateNode=j,j._reactInternals=m,j=m.stateNode,j.props=S,j.state=m.memoizedState,j.refs={},KP(m),K=v.contextType,j.context=typeof K=="object"&&K!==null?jo(K):Ug,j.state=m.memoizedState,K=v.getDerivedStateFromProps,typeof K=="function"&&(bO(m,v,K,S),j.state=m.memoizedState),typeof v.getDerivedStateFromProps=="function"||typeof j.getSnapshotBeforeUpdate=="function"||typeof j.UNSAFE_componentWillMount!="function"&&typeof j.componentWillMount!="function"||(K=j.state,typeof j.componentWillMount=="function"&&j.componentWillMount(),typeof j.UNSAFE_componentWillMount=="function"&&j.UNSAFE_componentWillMount(),K!==j.state&&vO.enqueueReplaceState(j,j.state,null),yv(m,S,j,$),gv(),j.state=m.memoizedState),typeof j.componentDidMount=="function"&&(m.flags|=4194308),S=!0}else if(h===null){j=m.stateNode;var te=m.memoizedProps,se=vh(v,te);j.props=se;var ge=j.context,Te=v.contextType;K=Ug,typeof Te=="object"&&Te!==null&&(K=jo(Te));var Ne=v.getDerivedStateFromProps;Te=typeof Ne=="function"||typeof j.getSnapshotBeforeUpdate=="function",te=m.pendingProps!==te,Te||typeof j.UNSAFE_componentWillReceiveProps!="function"&&typeof j.componentWillReceiveProps!="function"||(te||ge!==K)&&Ome(m,j,S,K),Zu=!1;var ve=m.memoizedState;j.state=ve,yv(m,S,j,$),gv(),ge=m.memoizedState,te||ve!==ge||Zu?(typeof Ne=="function"&&(bO(m,v,Ne,S),ge=m.memoizedState),(se=Zu||Pme(m,v,se,S,ve,ge,K))?(Te||typeof j.UNSAFE_componentWillMount!="function"&&typeof j.componentWillMount!="function"||(typeof j.componentWillMount=="function"&&j.componentWillMount(),typeof j.UNSAFE_componentWillMount=="function"&&j.UNSAFE_componentWillMount()),typeof j.componentDidMount=="function"&&(m.flags|=4194308)):(typeof j.componentDidMount=="function"&&(m.flags|=4194308),m.memoizedProps=S,m.memoizedState=ge),j.props=S,j.state=ge,j.context=K,S=se):(typeof j.componentDidMount=="function"&&(m.flags|=4194308),S=!1)}else{j=m.stateNode,ZP(h,m),K=m.memoizedProps,Te=vh(v,K),j.props=Te,Ne=m.pendingProps,ve=j.context,ge=v.contextType,se=Ug,typeof ge=="object"&&ge!==null&&(se=jo(ge)),te=v.getDerivedStateFromProps,(ge=typeof te=="function"||typeof j.getSnapshotBeforeUpdate=="function")||typeof j.UNSAFE_componentWillReceiveProps!="function"&&typeof j.componentWillReceiveProps!="function"||(K!==Ne||ve!==se)&&Ome(m,j,S,se),Zu=!1,ve=m.memoizedState,j.state=ve,yv(m,S,j,$),gv();var ke=m.memoizedState;K!==Ne||ve!==ke||Zu||h!==null&&h.dependencies!==null&&G5(h.dependencies)?(typeof te=="function"&&(bO(m,v,te,S),ke=m.memoizedState),(Te=Zu||Pme(m,v,Te,S,ve,ke,se)||h!==null&&h.dependencies!==null&&G5(h.dependencies))?(ge||typeof j.UNSAFE_componentWillUpdate!="function"&&typeof j.componentWillUpdate!="function"||(typeof j.componentWillUpdate=="function"&&j.componentWillUpdate(S,ke,se),typeof j.UNSAFE_componentWillUpdate=="function"&&j.UNSAFE_componentWillUpdate(S,ke,se)),typeof j.componentDidUpdate=="function"&&(m.flags|=4),typeof j.getSnapshotBeforeUpdate=="function"&&(m.flags|=1024)):(typeof j.componentDidUpdate!="function"||K===h.memoizedProps&&ve===h.memoizedState||(m.flags|=4),typeof j.getSnapshotBeforeUpdate!="function"||K===h.memoizedProps&&ve===h.memoizedState||(m.flags|=1024),m.memoizedProps=S,m.memoizedState=ke),j.props=S,j.state=ke,j.context=se,S=Te):(typeof j.componentDidUpdate!="function"||K===h.memoizedProps&&ve===h.memoizedState||(m.flags|=4),typeof j.getSnapshotBeforeUpdate!="function"||K===h.memoizedProps&&ve===h.memoizedState||(m.flags|=1024),S=!1)}return j=S,h_(h,m),S=(m.flags&128)!==0,j||S?(j=m.stateNode,v=S&&typeof v.getDerivedStateFromError!="function"?null:j.render(),m.flags|=1,h!==null&&S?(m.child=Jg(m,h.child,null,$),m.child=Jg(m,null,v,$)):xo(h,m,v,$),m.memoizedState=j.state,h=m.child):h=Ic(h,m,$),h}function Xme(h,m,v,S){return sv(),m.flags|=256,xo(h,m,v,S),m.child}var kO={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function _O(h){return{baseLanes:h,cachePool:Ife()}}function EO(h,m,v){return h=h!==null?h.childLanes&~v:0,m&&(h|=Li),h}function Kme(h,m,v){var S=m.pendingProps,$=!1,j=(m.flags&128)!==0,K;if((K=j)||(K=h!==null&&h.memoizedState===null?!1:(Hn.current&2)!==0),K&&($=!0,m.flags&=-129),K=(m.flags&32)!==0,m.flags&=-33,h===null){if(ir){if($?td(m):rd(),ir){var te=rn,se;if(se=te){e:{for(se=te,te=Ts;se.nodeType!==8;){if(!te){te=null;break e}if(se=Ul(se.nextSibling),se===null){te=null;break e}}te=se}te!==null?(m.memoizedState={dehydrated:te,treeContext:dh!==null?{id:Nc,overflow:Dc}:null,retryLane:536870912,hydrationErrors:null},se=Ua(18,null,null,0),se.stateNode=te,se.return=m,m.child=se,Wo=m,rn=null,se=!0):se=!1}se||fh(m)}if(te=m.memoizedState,te!==null&&(te=te.dehydrated,te!==null))return lM(te)?m.lanes=32:m.lanes=536870912,null;Mc(m)}return te=S.children,S=S.fallback,$?(rd(),$=m.mode,te=f_({mode:"hidden",children:te},$),S=uh(S,$,v,null),te.return=m,S.return=m,te.sibling=S,m.child=te,$=m.child,$.memoizedState=_O(v),$.childLanes=EO(h,K,v),m.memoizedState=kO,S):(td(m),SO(m,te))}if(se=h.memoizedState,se!==null&&(te=se.dehydrated,te!==null)){if(j)m.flags&256?(td(m),m.flags&=-257,m=CO(h,m,v)):m.memoizedState!==null?(rd(),m.child=h.child,m.flags|=128,m=null):(rd(),$=S.fallback,te=m.mode,S=f_({mode:"visible",children:S.children},te),$=uh($,te,v,null),$.flags|=2,S.return=m,$.return=m,S.sibling=$,m.child=S,Jg(m,h.child,null,v),S=m.child,S.memoizedState=_O(v),S.childLanes=EO(h,K,v),m.memoizedState=kO,m=$);else if(td(m),lM(te)){if(K=te.nextSibling&&te.nextSibling.dataset,K)var ge=K.dgst;K=ge,S=Error(o(419)),S.stack="",S.digest=K,cv({value:S,source:null,stack:null}),m=CO(h,m,v)}else if(ao||uv(h,m,v,!1),K=(v&h.childLanes)!==0,ao||K){if(K=Rr,K!==null&&(S=v&-v,S=(S&42)!==0?1:Jp(S),S=(S&(K.suspendedLanes|v))!==0?0:S,S!==0&&S!==se.retryLane))throw se.retryLane=S,Hg(h,S),Ga(K,h,S),Fme;te.data==="$?"||qO(),m=CO(h,m,v)}else te.data==="$?"?(m.flags|=192,m.child=h.child,m=null):(h=se.treeContext,rn=Ul(te.nextSibling),Wo=m,ir=!0,hh=null,Ts=!1,h!==null&&(Oi[Mi++]=Nc,Oi[Mi++]=Dc,Oi[Mi++]=dh,Nc=h.id,Dc=h.overflow,dh=m),m=SO(m,S.children),m.flags|=4096);return m}return $?(rd(),$=S.fallback,te=m.mode,se=h.child,ge=se.sibling,S=Ac(se,{mode:"hidden",children:S.children}),S.subtreeFlags=se.subtreeFlags&65011712,ge!==null?$=Ac(ge,$):($=uh($,te,v,null),$.flags|=2),$.return=m,S.return=m,S.sibling=$,m.child=S,S=$,$=m.child,te=h.child.memoizedState,te===null?te=_O(v):(se=te.cachePool,se!==null?(ge=Fn._currentValue,se=se.parent!==ge?{parent:ge,pool:ge}:se):se=Ife(),te={baseLanes:te.baseLanes|v,cachePool:se}),$.memoizedState=te,$.childLanes=EO(h,K,v),m.memoizedState=kO,S):(td(m),v=h.child,h=v.sibling,v=Ac(v,{mode:"visible",children:S.children}),v.return=m,v.sibling=null,h!==null&&(K=m.deletions,K===null?(m.deletions=[h],m.flags|=16):K.push(h)),m.child=v,m.memoizedState=null,v)}function SO(h,m){return m=f_({mode:"visible",children:m},h.mode),m.return=h,h.child=m}function f_(h,m){return h=Ua(22,h,null,m),h.lanes=0,h.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},h}function CO(h,m,v){return Jg(m,h.child,null,v),h=SO(m,m.pendingProps.children),h.flags|=2,m.memoizedState=null,h}function Zme(h,m,v){h.lanes|=m;var S=h.alternate;S!==null&&(S.lanes|=m),qP(h.return,m,v)}function TO(h,m,v,S,$){var j=h.memoizedState;j===null?h.memoizedState={isBackwards:m,rendering:null,renderingStartTime:0,last:S,tail:v,tailMode:$}:(j.isBackwards=m,j.rendering=null,j.renderingStartTime=0,j.last=S,j.tail=v,j.tailMode=$)}function Qme(h,m,v){var S=m.pendingProps,$=S.revealOrder,j=S.tail;if(xo(h,m,S.children,v),S=Hn.current,(S&2)!==0)S=S&1|2,m.flags|=128;else{if(h!==null&&(h.flags&128)!==0)e:for(h=m.child;h!==null;){if(h.tag===13)h.memoizedState!==null&&Zme(h,v,m);else if(h.tag===19)Zme(h,v,m);else if(h.child!==null){h.child.return=h,h=h.child;continue}if(h===m)break e;for(;h.sibling===null;){if(h.return===null||h.return===m)break e;h=h.return}h.sibling.return=h.return,h=h.sibling}S&=1}switch(z(Hn,S),$){case"forwards":for(v=m.child,$=null;v!==null;)h=v.alternate,h!==null&&u_(h)===null&&($=v),v=v.sibling;v=$,v===null?($=m.child,m.child=null):($=v.sibling,v.sibling=null),TO(m,!1,$,v,j);break;case"backwards":for(v=null,$=m.child,m.child=null;$!==null;){if(h=$.alternate,h!==null&&u_(h)===null){m.child=$;break}h=$.sibling,$.sibling=v,v=$,$=h}TO(m,!0,v,null,j);break;case"together":TO(m,!1,null,null,void 0);break;default:m.memoizedState=null}return m.child}function Ic(h,m,v){if(h!==null&&(m.dependencies=h.dependencies),ld|=m.lanes,(v&m.childLanes)===0)if(h!==null){if(uv(h,m,v,!1),(v&m.childLanes)===0)return null}else return null;if(h!==null&&m.child!==h.child)throw Error(o(153));if(m.child!==null){for(h=m.child,v=Ac(h,h.pendingProps),m.child=v,v.return=m;h.sibling!==null;)h=h.sibling,v=v.sibling=Ac(h,h.pendingProps),v.return=m;v.sibling=null}return m.child}function RO(h,m){return(h.lanes&m)!==0?!0:(h=h.dependencies,!!(h!==null&&G5(h)))}function u5t(h,m,v){switch(m.tag){case 3:ee(m,m.stateNode.containerInfo),Ku(m,Fn,h.memoizedState.cache),sv();break;case 27:case 5:pe(m);break;case 4:ee(m,m.stateNode.containerInfo);break;case 10:Ku(m,m.type,m.memoizedProps.value);break;case 13:var S=m.memoizedState;if(S!==null)return S.dehydrated!==null?(td(m),m.flags|=128,null):(v&m.child.childLanes)!==0?Kme(h,m,v):(td(m),h=Ic(h,m,v),h!==null?h.sibling:null);td(m);break;case 19:var $=(h.flags&128)!==0;if(S=(v&m.childLanes)!==0,S||(uv(h,m,v,!1),S=(v&m.childLanes)!==0),$){if(S)return Qme(h,m,v);m.flags|=128}if($=m.memoizedState,$!==null&&($.rendering=null,$.tail=null,$.lastEffect=null),z(Hn,Hn.current),S)break;return null;case 22:case 23:return m.lanes=0,Vme(h,m,v);case 24:Ku(m,Fn,h.memoizedState.cache)}return Ic(h,m,v)}function Jme(h,m,v){if(h!==null)if(h.memoizedProps!==m.pendingProps)ao=!0;else{if(!RO(h,v)&&(m.flags&128)===0)return ao=!1,u5t(h,m,v);ao=(h.flags&131072)!==0}else ao=!1,ir&&(m.flags&1048576)!==0&&Afe(m,W5,m.index);switch(m.lanes=0,m.tag){case 16:e:{h=m.pendingProps;var S=m.elementType,$=S._init;if(S=$(S._payload),m.type=S,typeof S=="function")LP(S)?(h=vh(S,h),m.tag=1,m=Gme(null,m,S,h,v)):(m.tag=0,m=wO(null,m,S,h,v));else{if(S!=null){if($=S.$$typeof,$===T){m.tag=11,m=Hme(null,m,S,h,v);break e}else if($===D){m.tag=14,m=Ume(null,m,S,h,v);break e}}throw m=M(S)||S,Error(o(306,m,""))}}return m;case 0:return wO(h,m,m.type,m.pendingProps,v);case 1:return S=m.type,$=vh(S,m.pendingProps),Gme(h,m,S,$,v);case 3:e:{if(ee(m,m.stateNode.containerInfo),h===null)throw Error(o(387));S=m.pendingProps;var j=m.memoizedState;$=j.element,ZP(h,m),yv(m,S,null,v);var K=m.memoizedState;if(S=K.cache,Ku(m,Fn,S),S!==j.cache&&VP(m,[Fn],v,!0),gv(),S=K.element,j.isDehydrated)if(j={element:S,isDehydrated:!1,cache:K.cache},m.updateQueue.baseState=j,m.memoizedState=j,m.flags&256){m=Xme(h,m,S,v);break e}else if(S!==$){$=$i(Error(o(424)),m),cv($),m=Xme(h,m,S,v);break e}else{switch(h=m.stateNode.containerInfo,h.nodeType){case 9:h=h.body;break;default:h=h.nodeName==="HTML"?h.ownerDocument.body:h}for(rn=Ul(h.firstChild),Wo=m,ir=!0,hh=null,Ts=!0,v=Dme(m,null,S,v),m.child=v;v;)v.flags=v.flags&-3|4096,v=v.sibling}else{if(sv(),S===$){m=Ic(h,m,v);break e}xo(h,m,S,v)}m=m.child}return m;case 26:return h_(h,m),h===null?(v=n1e(m.type,null,m.pendingProps,null))?m.memoizedState=v:ir||(v=m.type,h=m.pendingProps,S=R_(Z.current).createElement(v),S[On]=m,S[oo]=h,ko(S,v,h),tn(S),m.stateNode=S):m.memoizedState=n1e(m.type,h.memoizedProps,m.pendingProps,h.memoizedState),null;case 27:return pe(m),h===null&&ir&&(S=m.stateNode=e1e(m.type,m.pendingProps,Z.current),Wo=m,Ts=!0,$=rn,dd(m.type)?(sM=$,rn=Ul(S.firstChild)):rn=$),xo(h,m,m.pendingProps.children,v),h_(h,m),h===null&&(m.flags|=4194304),m.child;case 5:return h===null&&ir&&(($=S=rn)&&(S=z5t(S,m.type,m.pendingProps,Ts),S!==null?(m.stateNode=S,Wo=m,rn=Ul(S.firstChild),Ts=!1,$=!0):$=!1),$||fh(m)),pe(m),$=m.type,j=m.pendingProps,K=h!==null?h.memoizedProps:null,S=j.children,oM($,j)?S=null:K!==null&&oM($,K)&&(m.flags|=32),m.memoizedState!==null&&($=nO(h,m,r5t,null,null,v),jv._currentValue=$),h_(h,m),xo(h,m,S,v),m.child;case 6:return h===null&&ir&&((h=v=rn)&&(v=j5t(v,m.pendingProps,Ts),v!==null?(m.stateNode=v,Wo=m,rn=null,h=!0):h=!1),h||fh(m)),null;case 13:return Kme(h,m,v);case 4:return ee(m,m.stateNode.containerInfo),S=m.pendingProps,h===null?m.child=Jg(m,null,S,v):xo(h,m,S,v),m.child;case 11:return Hme(h,m,m.type,m.pendingProps,v);case 7:return xo(h,m,m.pendingProps,v),m.child;case 8:return xo(h,m,m.pendingProps.children,v),m.child;case 12:return xo(h,m,m.pendingProps.children,v),m.child;case 10:return S=m.pendingProps,Ku(m,m.type,S.value),xo(h,m,S.children,v),m.child;case 9:return $=m.type._context,S=m.pendingProps.children,gh(m),$=jo($),S=S($),m.flags|=1,xo(h,m,S,v),m.child;case 14:return Ume(h,m,m.type,m.pendingProps,v);case 15:return qme(h,m,m.type,m.pendingProps,v);case 19:return Qme(h,m,v);case 31:return S=m.pendingProps,v=m.mode,S={mode:S.mode,children:S.children},h===null?(v=f_(S,v),v.ref=m.ref,m.child=v,v.return=m,m=v):(v=Ac(h.child,S),v.ref=m.ref,m.child=v,v.return=m,m=v),m;case 22:return Vme(h,m,v);case 24:return gh(m),S=jo(Fn),h===null?($=GP(),$===null&&($=Rr,j=YP(),$.pooledCache=j,j.refCount++,j!==null&&($.pooledCacheLanes|=v),$=j),m.memoizedState={parent:S,cache:$},KP(m),Ku(m,Fn,$)):((h.lanes&v)!==0&&(ZP(h,m),yv(m,null,null,v),gv()),$=h.memoizedState,j=m.memoizedState,$.parent!==S?($={parent:S,cache:S},m.memoizedState=$,m.lanes===0&&(m.memoizedState=m.updateQueue.baseState=$),Ku(m,Fn,S)):(S=j.cache,Ku(m,Fn,S),S!==$.cache&&VP(m,[Fn],v,!0))),xo(h,m,m.pendingProps.children,v),m.child;case 29:throw m.pendingProps}throw Error(o(156,m.tag))}function Lc(h){h.flags|=4}function ege(h,m){if(m.type!=="stylesheet"||(m.state.loading&4)!==0)h.flags&=-16777217;else if(h.flags|=16777216,!s1e(m)){if(m=Ii.current,m!==null&&((rr&4194048)===rr?Rs!==null:(rr&62914560)!==rr&&(rr&536870912)===0||m!==Rs))throw fv=XP,Lfe;h.flags|=8192}}function m_(h,m){m!==null&&(h.flags|=4),h.flags&16384&&(m=h.tag!==22?_s():536870912,h.lanes|=m,n1|=m)}function Ev(h,m){if(!ir)switch(h.tailMode){case"hidden":m=h.tail;for(var v=null;m!==null;)m.alternate!==null&&(v=m),m=m.sibling;v===null?h.tail=null:v.sibling=null;break;case"collapsed":v=h.tail;for(var S=null;v!==null;)v.alternate!==null&&(S=v),v=v.sibling;S===null?m||h.tail===null?h.tail=null:h.tail.sibling=null:S.sibling=null}}function Gr(h){var m=h.alternate!==null&&h.alternate.child===h.child,v=0,S=0;if(m)for(var $=h.child;$!==null;)v|=$.lanes|$.childLanes,S|=$.subtreeFlags&65011712,S|=$.flags&65011712,$.return=h,$=$.sibling;else for($=h.child;$!==null;)v|=$.lanes|$.childLanes,S|=$.subtreeFlags,S|=$.flags,$.return=h,$=$.sibling;return h.subtreeFlags|=S,h.childLanes=v,m}function d5t(h,m,v){var S=m.pendingProps;switch(FP(m),m.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Gr(m),null;case 1:return Gr(m),null;case 3:return v=m.stateNode,S=null,h!==null&&(S=h.memoizedState.cache),m.memoizedState.cache!==S&&(m.flags|=2048),Pc(Fn),re(),v.pendingContext&&(v.context=v.pendingContext,v.pendingContext=null),(h===null||h.child===null)&&(lv(m)?Lc(m):h===null||h.memoizedState.isDehydrated&&(m.flags&256)===0||(m.flags|=1024,$fe())),Gr(m),null;case 26:return v=m.memoizedState,h===null?(Lc(m),v!==null?(Gr(m),ege(m,v)):(Gr(m),m.flags&=-16777217)):v?v!==h.memoizedState?(Lc(m),Gr(m),ege(m,v)):(Gr(m),m.flags&=-16777217):(h.memoizedProps!==S&&Lc(m),Gr(m),m.flags&=-16777217),null;case 27:Ce(m),v=Z.current;var $=m.type;if(h!==null&&m.stateNode!=null)h.memoizedProps!==S&&Lc(m);else{if(!S){if(m.stateNode===null)throw Error(o(166));return Gr(m),null}h=W.current,lv(m)?Nfe(m):(h=e1e($,S,v),m.stateNode=h,Lc(m))}return Gr(m),null;case 5:if(Ce(m),v=m.type,h!==null&&m.stateNode!=null)h.memoizedProps!==S&&Lc(m);else{if(!S){if(m.stateNode===null)throw Error(o(166));return Gr(m),null}if(h=W.current,lv(m))Nfe(m);else{switch($=R_(Z.current),h){case 1:h=$.createElementNS("http://www.w3.org/2000/svg",v);break;case 2:h=$.createElementNS("http://www.w3.org/1998/Math/MathML",v);break;default:switch(v){case"svg":h=$.createElementNS("http://www.w3.org/2000/svg",v);break;case"math":h=$.createElementNS("http://www.w3.org/1998/Math/MathML",v);break;case"script":h=$.createElement("div"),h.innerHTML="