diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md new file mode 100644 index 0000000..40a0a94 --- /dev/null +++ b/.claude/CLAUDE.md @@ -0,0 +1,74 @@ +# Technical Documentation Guidelines + +You are an expert technical writer with deep expertise in creating clear, concise, and well-structured documentation. Your goal is to produce documentation that flows naturally while maintaining technical accuracy. + +## Core Principles + +### 1. Conciseness and Clarity +- Use clear, direct language +- Eliminate unnecessary words and redundancy +- Make every sentence count +- Prefer active voice over passive voice +- Use short paragraphs (3-5 sentences maximum) + +### 2. Structure and Organization +- Start with the most important information +- Use logical hierarchies with consistent heading levels +- Group related concepts together +- Provide clear navigation through table of contents when appropriate +- Use lists for sequential steps or related items + +### 3. Flow and Readability +- Ensure smooth transitions between sections +- Connect ideas logically +- Build complexity gradually +- Use examples to illustrate concepts +- Maintain consistent terminology throughout + +### 4. Technical Accuracy +- Be precise with technical terms +- Include relevant code examples that are tested and functional +- Document edge cases and limitations +- Provide accurate command syntax and parameters +- Link to related documentation when appropriate + +## Documentation Structure + +### Standard Document Layout +1. **Title** - Clear, descriptive heading +2. **Overview** - Brief introduction (2-3 sentences) +3. **Prerequisites** - What the reader needs to know or have +4. **Main Content** - Organized in logical sections +5. **Examples** - Practical, real-world use cases +6. **Troubleshooting** - Common issues and solutions (when applicable) +7. **Related Resources** - Links to additional documentation + +### Code Examples +- Provide complete, runnable examples +- Include comments for complex logic +- Show expected output +- Use consistent formatting and syntax highlighting + +### Commands and APIs +- Show full syntax with all parameters +- Indicate required vs optional parameters +- Provide parameter descriptions +- Include return values or output format + +## Writing Style + +- **Be direct**: "Configure the database" not "You should configure the database" +- **Be specific**: "Set timeout to 30 seconds" not "Set an appropriate timeout" +- **Be consistent**: Use the same terms for the same concepts +- **Be complete**: Don't assume implicit knowledge; explain as needed + +## When Uncertain + +**If you don't know something or need clarification:** +- Ask specific questions +- Request examples or use cases +- Clarify technical details or edge cases +- Verify terminology and naming conventions +- Confirm target audience and their expected knowledge level + +Your expertise is in writing excellent documentation. Use your judgment to create documentation that serves the reader's needs effectively. When in doubt, ask rather than guess. diff --git a/.envrc.example b/.envrc.example new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc.example @@ -0,0 +1 @@ +use flake diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ae56f2a..042cdda 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -22,11 +22,11 @@ jobs: 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}" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 8168687..50db5ca 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -26,11 +26,11 @@ jobs: 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}" @@ -100,7 +100,7 @@ jobs: 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) @@ -108,7 +108,7 @@ jobs: 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< - [Brief one-line description of the component] ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### C4 charts - -Embed C4 charts this way: - -1. add a likec4-view with the name of the view -{{< likec4-view view="components-template-documentation" project="architecture" title="Example Documentation Diagram" >}} - -2. create the LikeC4 view somewhere in ```./resources/edp-likec4/views```, the example above is in ```./resources/edp-likec4/views/documentation/components-template-documentation.c4``` - -3. run ```task likec4:generate``` to create the webcomponent - -4. if you are in ```task:serve``` hot-reload mode the view will show up directly - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/_index.md b/content/en/docs/components/_index.md deleted file mode 100644 index a50ba3b..0000000 --- a/content/en/docs/components/_index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Components" -linkTitle: "Components" -weight: 30 -description: > - Overview of EDP platform components and their integration. ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: Stephan -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -This section documents all components of the Edge Developer Platform based on the product structure. - -## Component Categories - -The EDP consists of the following main component categories: - -* **Orchestrator**: Platform and infrastructure orchestration -* **Forgejo & CI/CD**: Source code management and automation -* **Deployments**: Deployment targets and edge connectivity -* **Dev Environments**: Development environment provisioning -* **Physical Environments**: Runtime infrastructure - -### Product Component Structure - -[TODO] Links - -![alt text](website-and-documentation_resources_product-structure.svg) diff --git a/content/en/docs/components/deployments/_index.md b/content/en/docs/components/deployments/_index.md deleted file mode 100644 index c68c6ff..0000000 --- a/content/en/docs/components/deployments/_index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Deployments" -linkTitle: "Deployments" -weight: 40 -description: > - Deployment targets and edge connectivity solutions. ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6733](https://jira.telekom-mms.com/browse/IPCEICIS-6733) -* **Assignee**: Patrick -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -Deployment components manage connections to various deployment targets including cloud infrastructure and edge devices. - -## Components - -* **OTC**: Open Telekom Cloud deployment target -* **EdgeConnect**: Secure edge connectivity solution diff --git a/content/en/docs/components/deployments/edgeconnect/_index.md b/content/en/docs/components/deployments/edgeconnect/_index.md deleted file mode 100644 index d31bd74..0000000 --- a/content/en/docs/components/deployments/edgeconnect/_index.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "EdgeConnect" -linkTitle: "EdgeConnect" -weight: 20 -description: > - Secure connectivity solution for edge devices and environments ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6734](https://jira.telekom-mms.com/browse/IPCEICIS-6734) -* **Assignee**: Waldemar -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/deployments/edgeconnect/edgeconnect-client.md b/content/en/docs/components/deployments/edgeconnect/edgeconnect-client.md deleted file mode 100644 index 7c08aca..0000000 --- a/content/en/docs/components/deployments/edgeconnect/edgeconnect-client.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "EdgeConnect Client" -linkTitle: "EdgeConnect Client" -weight: 30 -description: > - Client software for establishing EdgeConnect connections ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6734](https://jira.telekom-mms.com/browse/IPCEICIS-6734) -* **Assignee**: Waldemar -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/deployments/edgeconnect/edgeconnect-sdk.md b/content/en/docs/components/deployments/edgeconnect/edgeconnect-sdk.md deleted file mode 100644 index 152d044..0000000 --- a/content/en/docs/components/deployments/edgeconnect/edgeconnect-sdk.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "EdgeConnect SDK" -linkTitle: "EdgeConnect SDK" -weight: 10 -description: > - Software Development Kit for establishing EdgeConnect connections ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6734](https://jira.telekom-mms.com/browse/IPCEICIS-6734) -* **Assignee**: Waldemar -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/deployments/otc.md b/content/en/docs/components/deployments/otc.md deleted file mode 100644 index 2ee32f5..0000000 --- a/content/en/docs/components/deployments/otc.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "OTC (Open Telekom Cloud)" -linkTitle: "OTC" -weight: 10 -description: > - Open Telekom Cloud deployment and infrastructure target ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6733](https://jira.telekom-mms.com/browse/IPCEICIS-6733) -* **Assignee**: Patrick -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/dev-environments.md b/content/en/docs/components/dev-environments.md deleted file mode 100644 index 71a9fa7..0000000 --- a/content/en/docs/components/dev-environments.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Development Environments" -linkTitle: "DevEnvironments" -weight: 30 -description: > - Development environment provisioning and management ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/documentationsystem.md b/content/en/docs/components/documentationsystem.md deleted file mode 100644 index d3b182a..0000000 --- a/content/en/docs/components/documentationsystem.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Documentation System" -linkTitle: "Documentation System" -weight: 100 -description: The developer 'documentation as code' documentation System we use ourselfes and over to use for each development team. ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6736](https://jira.telekom-mms.com/browse/IPCEICIS-6736) -* **Assignee**: Stephan -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -The Orchestration manages platform and infrastructure provisioning, providing the foundation for the EDP deployment model. - -## Sub-Components - -* **Infrastructure Provisioning**: Low-level infrastructure deployment (infra-deploy, infra-catalogue) -* **Platform Provisioning**: Platform-level component deployment via Stacks diff --git a/content/en/docs/components/forgejo/_index.md b/content/en/docs/components/forgejo/_index.md deleted file mode 100644 index bc41163..0000000 --- a/content/en/docs/components/forgejo/_index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Forgejo" -linkTitle: "Forgejo" -weight: 20 -description: > - Self-hosted Git service with project management and CI/CD capabilities. ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -Forgejo provides source code management, project management, and CI/CD automation for the EDP. - -## Sub-Components - -* **Project Management**: Issue tracking and project management features -* **Actions**: CI/CD automation (see CI/CD section) diff --git a/content/en/docs/components/forgejo/actions/_index.md b/content/en/docs/components/forgejo/actions/_index.md deleted file mode 100644 index e450675..0000000 --- a/content/en/docs/components/forgejo/actions/_index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Forgejo Actions" -linkTitle: "Forgejo Actions" -weight: 20 -description: Forgejo Actions. ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6730](https://jira.telekom-mms.com/browse/IPCEICIS-6730) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -Forgejo provides source code management, project management, and CI/CD automation for the EDP. - -## Sub-Components - -* **Project Management**: Issue tracking and project management features -* **Actions**: CI/CD automation (see CI/CD section) diff --git a/content/en/docs/components/forgejo/actions/actions.md b/content/en/docs/components/forgejo/actions/actions.md deleted file mode 100644 index c8d4d85..0000000 --- a/content/en/docs/components/forgejo/actions/actions.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: "Forgejo Actions" -linkTitle: "Actions" -weight: 10 -description: GitHub Actions-compatible CI/CD automation ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/forgejo/actions/runner-orchestration.md b/content/en/docs/components/forgejo/actions/runner-orchestration.md deleted file mode 100644 index 151fff8..0000000 --- a/content/en/docs/components/forgejo/actions/runner-orchestration.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: "Runner Orchestration" -linkTitle: "Runner Orchestration" -weight: 30 -description: GARM ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/forgejo/actions/runner.md b/content/en/docs/components/forgejo/actions/runner.md deleted file mode 100644 index 8a15857..0000000 --- a/content/en/docs/components/forgejo/actions/runner.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Action Runner" -linkTitle: "Runner" -weight: 20 -description: > - Self-hosted runner infrastructure with orchestration capabilities ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/forgejo/forgejo.md b/content/en/docs/components/forgejo/forgejo.md deleted file mode 100644 index c358644..0000000 --- a/content/en/docs/components/forgejo/forgejo.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: "Forgejo Integration, Extension, and Community Collaboration" -linkTitle: Forgejo Software Forge -date: "2025-11-17" -description: "Summary of the project's work integrating GARM with Forgejo and contributing key features back to the community." -tags: ["Forgejo", "GARM", "CI/CD", "OSS", "Community", "Project Report"] -categories: ["Workpackage Results"] -weight: 10 ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6731](https://jira.telekom-mms.com/browse/IPCEICIS-6731) -* **Assignee**: Daniel -* **Status**: Draft -* **Last Updated**: 2025-11-17 -* **TODO**: - * [ ] Add concrete quick start steps - * [ ] Include prerequisites and access information - * [ ] Create first application tutorial -* **Review/Feedback**: - * [ ] Stephan: - * in general: - * [ ] some parts are worth to go th 'Governance' - * [ ] perhaps we should remove the emojis? - * [ ] perhaps we should avoid the impression that the text was copy/pated from AI - * some details/further ideas: - * [ ] where is it, this Forgejo? Why is it called 'edp.buildth.ing'? - * [ ] what are the components we use - package managament, actions, ... - * [ ] Friendly users? organisations? Public/private stuff? - * [ ] App Management discussions (we don't!)? - * [ ] what about code snippets how forgejo is deployed? SSO? user base? Federation options? - * [ ] storages, Redis, Postgres ... deployment options ... helm charts ... - * [ ] Migrations we did, where is the migration code? - * [ ] git POSIX filesystem concurrency discussion, S/3 bucket - * [ ] what is our general experience? - * [ ] repository centric domain data model - * [ ] how did we develop? which version did we take first? how did we upgrade? - * [ ] which development flows did we use? which pipleines? - * [ ] provide codeberg links for the PRs - * [ ] provide architecture drawings and repo links for the cache registry thing - * [ ] provide a hight level actions arch diagram from the perspective of forgejo - link to the GARM component here -{{% /alert %}} - -## 🧾 Result short description / cognitions - -Here is the management summary of the work package results: - -* **📈 Strategic Selection:** We chose **[Forgejo](https://forgejo.org/)** as the project's self-hosted Git service. This decision was based on several key strategic factors: - * **EU-Based & Data Sovereignty:** The project is stewarded by **[Codeberg e.V.](https://docs.codeberg.org/getting-started/what-is-codeberg/)**, a non-profit based in Berlin, Germany. This is a massive win for our "funding agency" stakeholders, as it aligns with **GDPR, compliance, and data sovereignty goals**. It's governed by EU laws, not a US tech entity. - * **True Open Source (GPL v3+):** Forgejo is a community-driven fork of Gitea, created to *guarantee* it stays 100% free and open-source (FOSS). - * **License Protects Our Contributions:** It uses the **GPL v3+ "copyleft" license**. This is *perfect* for our collaboration goal. It legally ensures that the features we contribute back (like GARM support) can **never be taken and locked into a proprietary, closed-source product by anyone**. It protects our work and keeps the community open. - -* **⚙️ Core Use Case:** Forgejo is used for all project source code **versioning** and as the backbone for our **CI/CD (Continuous Integration/Continuous Deployment)** pipelines. - -* **🛠️ Key Extension (GARM Support):** The main technical achievement was integrating **[GARM (GitHub Actions Runner Manager)](https://github.com/cloudbase/garm)**. This was *not* supported by Forgejo out-of-the-box. - -* **✨ Required Enhancements:** To make GARM work, our team developed and implemented several critical features: - * Webhook support for workflow events (to tell runners when to start). - * Support for ephemeral runners (for secure, clean-slate builds every time). - * GitHub API-compatible endpoints (to allow the runners to register themselves correctly). - -* **💖 Community Contribution:** We didn't just keep this for ourselves! We contributed all these features **directly back to the upstream Forgejo community**. This wasn't just a code-dump; we actively collaborated via **issues**, **feature requests**, and **pull requests (PRs) on [codeberg.org](https://codeberg.org/)**. - -* **🚀 Bonus Functionality:** We also implemented **artifact caching**. This configures Forgejo to act as a **pull-through proxy** for remote container registries (like Docker Hub), which seriously speeds up our build times and saves bandwidth. diff --git a/content/en/docs/components/forgejo/project-mgmt.md b/content/en/docs/components/forgejo/project-mgmt.md deleted file mode 100644 index b98dd7f..0000000 --- a/content/en/docs/components/forgejo/project-mgmt.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Project Management" -linkTitle: "Forgejo Project Mgmt" -weight: 50 -description: > - Project and issue management capabilities within Forgejo ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/orchestration/_index.md b/content/en/docs/components/orchestration/_index.md deleted file mode 100644 index 6246d1b..0000000 --- a/content/en/docs/components/orchestration/_index.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Orchestratiion" -linkTitle: "Orchestration" -weight: 10 -description: > - Platform and infrastructure orchestration components. ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6734](https://jira.telekom-mms.com/browse/IPCEICIS-6734) -* **Assignee**: Stephan -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -The Orchestration manages platform and infrastructure provisioning, providing the foundation for the EDP deployment model. - -## Sub-Components - -* **Infrastructure Provisioning**: Low-level infrastructure deployment (infra-deploy, infra-catalogue) -* **Platform Provisioning**: Platform-level component deployment via Stacks diff --git a/content/en/docs/components/orchestration/application.md b/content/en/docs/components/orchestration/application.md deleted file mode 100644 index 976aeba..0000000 --- a/content/en/docs/components/orchestration/application.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Application Orchestration" -linkTitle: "Application Orchestration" -weight: 30 -description: > - Application-level component provisioning via Stacks ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/orchestration/infrastructure/_index.md b/content/en/docs/components/orchestration/infrastructure/_index.md deleted file mode 100644 index fc84a9d..0000000 --- a/content/en/docs/components/orchestration/infrastructure/_index.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Infrastructure Orchestration" -linkTitle: "Infrastructure Orchestration" -weight: 10 -description: > - Infrastructure deployment and catalog management (infra-deploy, infra-catalogue) ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6732](https://jira.telekom-mms.com/browse/IPCEICIS-6732) -* **Assignee**: Martin -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/orchestration/infrastructure/provider.md b/content/en/docs/components/orchestration/infrastructure/provider.md deleted file mode 100644 index 236c0cc..0000000 --- a/content/en/docs/components/orchestration/infrastructure/provider.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: "Provider" -linkTitle: "Provider" -weight: 20 -description: Used Provider we deploy on ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6732](https://jira.telekom-mms.com/browse/IPCEICIS-6732) -* **Assignee**: Martin -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/orchestration/infrastructure/terraform.md b/content/en/docs/components/orchestration/infrastructure/terraform.md deleted file mode 100644 index 69e1813..0000000 --- a/content/en/docs/components/orchestration/infrastructure/terraform.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Terrafrom" -linkTitle: "Terraform" -weight: 10 -description: > - Infrastructure deployment and catalog management (infra-deploy, infra-catalogue) ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6732](https://jira.telekom-mms.com/browse/IPCEICIS-6732) -* **Assignee**: Martin -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/orchestration/platform.md b/content/en/docs/components/orchestration/platform.md deleted file mode 100644 index baa528f..0000000 --- a/content/en/docs/components/orchestration/platform.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Platform Orchestration" -linkTitle: "Platform Orchestration" -weight: 20 -description: > - Platform-level component provisioning via Stacks ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/orchestration/stacks/_index.md b/content/en/docs/components/orchestration/stacks/_index.md deleted file mode 100644 index f8d30b1..0000000 --- a/content/en/docs/components/orchestration/stacks/_index.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Stacks" -linkTitle: "Stacks" -weight: 40 -description: > - Platform-level component provisioning via Stacks ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6729](https://jira.telekom-mms.com/browse/IPCEICIS-6729) -* **Assignee**: Stephan -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/orchestration/stacks/component-1.md b/content/en/docs/components/orchestration/stacks/component-1.md deleted file mode 100644 index 4f6b18c..0000000 --- a/content/en/docs/components/orchestration/stacks/component-1.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Component 1" -linkTitle: "Component 1" -weight: 20 -description: > - Component 1 ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TBD] -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/orchestration/stacks/component-2.md b/content/en/docs/components/orchestration/stacks/component-2.md deleted file mode 100644 index 0244aa7..0000000 --- a/content/en/docs/components/orchestration/stacks/component-2.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Component 2" -linkTitle: "Component 2" -weight: 30 -description: > - Component 2 ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TBD] -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/physical-envs/_index.md b/content/en/docs/components/physical-envs/_index.md deleted file mode 100644 index d81421d..0000000 --- a/content/en/docs/components/physical-envs/_index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "Physical Environments" -linkTitle: "Physical Envs" -weight: 60 -description: > - Physical runtime environments and infrastructure providers. ---- - -Physical environment components provide the runtime infrastructure for deploying and running applications. - -## Components - -* **Docker**: Container runtime -* **Kubernetes**: Container orchestration -* **LXC**: Linux Containers -* **Provider**: Infrastructure provider abstraction diff --git a/content/en/docs/components/physical-envs/docker.md b/content/en/docs/components/physical-envs/docker.md deleted file mode 100644 index ee1b9fb..0000000 --- a/content/en/docs/components/physical-envs/docker.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Docker" -linkTitle: "Docker" -weight: 10 -description: > - Container runtime for running containerized applications ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/physical-envs/kubernetes.md b/content/en/docs/components/physical-envs/kubernetes.md deleted file mode 100644 index f2a5128..0000000 --- a/content/en/docs/components/physical-envs/kubernetes.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Kubernetes" -linkTitle: "Kubernetes" -weight: 20 -description: > - Container orchestration platform for managing containerized workloads ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/physical-envs/lxc.md b/content/en/docs/components/physical-envs/lxc.md deleted file mode 100644 index dfc9783..0000000 --- a/content/en/docs/components/physical-envs/lxc.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "LXC" -linkTitle: "LXC" -weight: 30 -description: > - Linux Containers for lightweight system-level virtualization ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/physical-envs/provider.md b/content/en/docs/components/physical-envs/provider.md deleted file mode 100644 index 9a96897..0000000 --- a/content/en/docs/components/physical-envs/provider.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Infrastructure Provider" -linkTitle: "Provider" -weight: 40 -description: > - Infrastructure provider abstraction for managing physical resources ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-XXX](https://your-jira/browse/TICKET-XXX) -* **Assignee**: [Name or Team] -* **Status**: Draft -* **Last Updated**: YYYY-MM-DD -* **TODO**: - * [ ] Add detailed component description - * [ ] Include usage examples and code samples - * [ ] Add architecture diagrams - * [ ] Review and finalize content -{{% /alert %}} - -## Overview - -[Detailed description of the component - what it is, what it does, and why it exists] - -## Key Features - -* [Feature 1] -* [Feature 2] -* [Feature 3] - -## Purpose in EDP - -[Explain the role this component plays in the Edge Developer Platform and how it contributes to the overall platform capabilities] - -## Repository - -**Code**: [Link to source code repository] - -**Documentation**: [Link to component-specific documentation] - -## Getting Started - -### Prerequisites - -* [Prerequisite 1] -* [Prerequisite 2] - -### Quick Start - -[Step-by-step guide to get started with this component] - -1. [Step 1] -2. [Step 2] -3. [Step 3] - -### Verification - -[How to verify the component is working correctly] - -## Usage Examples - -### [Use Case 1] - -[Example with code/commands showing common use case] - -```bash -# Example commands -``` - -### [Use Case 2] - -[Another common scenario] - -## Integration Points - -* **[Component A]**: [How it integrates] -* **[Component B]**: [How it integrates] -* **[Component C]**: [How it integrates] - -## Architecture - -[Optional: Add architectural diagrams and descriptions] - -### Component Architecture (C4) - -[Add C4 Container or Component diagrams showing the internal structure] - -### Sequence Diagrams - -[Add sequence diagrams showing key interaction flows with other components] - -### Deployment Architecture - -[Add infrastructure and deployment diagrams showing how the component is deployed] - -## Configuration - -[Key configuration options and how to set them] - -## Troubleshooting - -### [Common Issue 1] - -**Problem**: [Description] - -**Solution**: [How to fix] - -### [Common Issue 2] - -**Problem**: [Description] - -**Solution**: [How to fix] - -## Status - -**Maturity**: [Production / Beta / Experimental] - -## Additional Resources - -* [Link to external documentation] -* [Link to community resources] -* [Link to related components] - -## Documentation Notes - -[Instructions for team members filling in this documentation - remove this section once complete] diff --git a/content/en/docs/components/website-and-documentation_resources_product-structure.svg b/content/en/docs/components/website-and-documentation_resources_product-structure.svg deleted file mode 100644 index f757e88..0000000 --- a/content/en/docs/components/website-and-documentation_resources_product-structure.svg +++ /dev/null @@ -1,2 +0,0 @@ -EDPForgejoOrchestrationInfrastructure-ProvisioningTerraforminfra-deploy,infra-cataloguePlatform-ProvisioningStacksComponent 1Component XProject-mgmtActionsRunnerRunner-OrchestrationDeploymentsOTCEdgeConnectEdgeConnectClientProviderDevEnvironmentsPhysicalEnvsDockerKubernetesLXCeDF Product Structure TreeDocumentationSystemApplication-ProvisioningCI/CDComponent 2OperatorVMEdgeConnect SDKLocalDockerRemoteEnvPipelines \ No newline at end of file diff --git a/content/en/docs/documentation-guide/_index.md b/content/en/docs/documentation-guide/_index.md deleted file mode 100644 index fa0ccb3..0000000 --- a/content/en/docs/documentation-guide/_index.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -title: "WiP Documentation Guide" -linkTitle: "WiP Doc Guide" -weight: 1 -description: Guidelines and templates for creating EDP documentation. This page will be removed in the final documentation. ---- - -{{% alert title="WiP - Only during creation phase" %}} -This page will be removed in the final documentation. -{{% /alert %}} - -## Purpose - -This guide helps team members create consistent, high-quality documentation for the Edge Developer Platform. - - -## Documentation Principles - -### 1. Focus on Outcomes - -1. Describe how the platform is comprised and which Products we deliver -2. If you need inspiration for our EDP product structure look at [EDP product structure tree](../components/website-and-documentation_resources_product-structure.svg) -2. Include links to repositories for deeper technical information or for not beeing too verbose and redundant with existing doumentation within the IPCEI-CIS scope or our EDP repos scope. - -### 2. Write for the Audience - -1. **Developers**: How to use the software products -2. **Engineers**: Architecture -3. **Auditors**: Project history, decisions, compliance information - -### 3. Keep It Concise - -1. Top-down approach: start with overview, drill down as needed -2. Less is more - avoid deep nested structures -3. Avoid emojis -4. **When using AI**: Review the text that you paste, check integration into the rest of the documentation - -### 4. Maintain Quality - -1. Use present tense ("The system processes..." not "will process") -2. Run `task test:quick` before committing changes - -## Documentation Structure - -The EDP documentation is organized into five main sections: - -### 1. Platform Overview - -High-level introduction to EDP, target audience, purpose, and product structure. - -**Content focus**: Why EDP exists, who uses it, what it provides - -### 2. Getting Started - -Onboarding guides and quick start instructions. - -**Content focus**: Prerequisites, step-by-step setup, first application deployment - -### 3. Components - -Detailed documentation for each platform component. - -**Content focus**: What each component does, how to use it, integration points - -**Template**: Use `components/TEMPLATE.md` as starting point - -### 4. Operations - -Deployment, monitoring, troubleshooting, and maintenance procedures. - -**Content focus**: How to operate the platform, resolve issues, maintain health - -### 5. Governance - -Project history, architecture decisions, compliance, and audit information. - -**Content focus**: Why decisions were made, project evolution, external relations - -## Writing Documentation - -### Components - -#### Using Templates - -In section 'Components' Templates are provided for common documentation types: - -* **Component Documentation**: `content/en/docs/components/TEMPLATE.md` - -#### Content Structure - -Follow this pattern for component documentation: - -1. **Overview**: What it is and what it does -2. **Key Features**: Bullet list of main capabilities -3. **Purpose in EDP**: Why it's part of the platform -4. **Getting Started**: Quick start guide -5. **Usage Examples**: Common scenarios -6. **Integration Points**: How it connects to other components -7. **Status**: Current maturity level -8. **Documentation Notes**: Instructions for filling in details (remove when complete) - -### Frontmatter - -Every markdown file starts with YAML frontmatter according to [Docsy](https://www.docsy.dev/docs/adding-content/content/#page-frontmatter): - -```yaml ---- -title: "Full Page Title" -linkTitle: "Short Nav Title" -weight: 10 -description: > - Brief description for search and previews. ---- -``` - -* **title**: Full page title (appears in page header) -* **linkTitle**: Shorter title for navigation menu -* **weight**: Sort order (lower numbers appear first) -* **description**: Brief summary for SEO and page previews - -## Testing Documentation - -Before committing changes: - -```bash -# Run all tests -task test:quick - -# Build site locally -task build - -# Preview changes -task serve -``` - -## Adding New Sections - -When adding a new documentation section: - -1. Create directory: `content/en/docs/[section-name]/` -2. Create index file: `_index.md` with frontmatter -3. Add weight to control sort order -4. Update navigation in parent `_index.md` if needed -5. Test with `task test` - -## Reference - -* **Main README**: `/doc/README-technical-writer.md` -* **Component Template**: `/content/en/docs/components/TEMPLATE.md` -* **Hugo Documentation**: -* **Docsy Theme**: diff --git a/content/en/docs/edgeconnect/_index.md b/content/en/docs/edgeconnect/_index.md new file mode 100644 index 0000000..4c419d3 --- /dev/null +++ b/content/en/docs/edgeconnect/_index.md @@ -0,0 +1,46 @@ +--- +title: EdgeConnect +linkTitle: EdgeConnect Cloud +weight: 20 +description: > + Sovereign edge cloud for running applications +--- + +## Overview + +EdgeConnect is a custom cloud provided by the project as a whole. It has several goals, including retaining sovereign control over cloud compute resources, and supporting sustainability-aware infrastructure choices. + +While EdgeConnect is managed outwith our Edge Developer Platform, we have produced a number of tools to facilitate its use and broaden its applicability. These are an [SDK](/docs/edgeconnect/edgeconnect-sdk/), command-line [client](/docs/edgeconnect/edgeconnect-client/), bespoke [provider](/docs/edgeconnect/terraform-provider/) for [Terraform](https://developer.hashicorp.com/terraform), and tailor-made [Forgejo Actions](/docs/edgeconnect/edgeconnect-actions/). + +{{< likec4-view view="edgeconnect-context" project="architecture" title="EdgeConnect Context View: Users, Tooling and Control Plane" >}} + +The diagram summarizes how EdgeConnect is typically consumed and operated. Developers and automation do not interact with edge clusters directly; instead they use stable entry points (CLI, SDK, Terraform) that talk to the EdgeConnect API. + +EdgeConnect itself is shown as a single cloud boundary that contains the control plane (API + controllers) and the managed resource model (e.g., App, AppInstance). Controllers continuously reconcile the desired state expressed via the API and drive deployments into the runtime. + +EDP appears here as an external consumer: it can automate provisioning and deployment workflows (for example via Terraform) while EdgeConnect remains a separately managed cloud. This separation clarifies responsibilities: EDP orchestrates delivery processes, EdgeConnect provides the target runtime and lifecycle management. + +## Key Features + +* Managed by the broader project, not specifically by EDP +* Focus on sovereignty and sustainability +* Utilities such as [CLI](/docs/edgeconnect/edgeconnect-client/) and [Terraform provider](/docs/edgeconnect/terraform-provider/) encourage widespread platform use +* [EDP](/docs/edp/) products such as [Forgejo](/docs/edp/forgejo/) are hosted on [OTC](/docs/edp/deployment/otc/) rather than EdgeConnect + +## Purpose in EDP + +EdgeConnect is documented here because it is a key deployment target and integration point for the broader platform. Even though EdgeConnect is operated separately from EDP (and core EDP services are hosted on OTC), EDP tooling and automation frequently needs to provision or deploy workloads into EdgeConnect in a consistent, repeatable way. + +Working with EdgeConnect also helps ensure that our developer workflows and platform components remain portable and “cloud-ready” beyond a single environment. By integrating with a sovereign system and making sustainability-aware choices visible in practice, we align platform engineering with the project’s wider goals and enable closer collaboration with the teams operating the EdgeConnect cloud. + +### Access + +* [Gardener console access](https://gardener.apps.mg3.mdb.osc.live/namespace/garden-platform/shoots) + - Choose `Log in with mg3` then `platform` before entering credentials set up by the Platform Team. +* [Edge cluster](https://hub.apps.edge.platform.mg3.mdb.osc.live/) +* [Orca cluster](https://hub.apps.orca.platform.mg3.mdb.osc.live/) + + +### Notes + +Documentation for EdgeConnect is provided using other systems, including Confluence. \ No newline at end of file diff --git a/content/en/docs/edgeconnect/edgeconnect-actions.md b/content/en/docs/edgeconnect/edgeconnect-actions.md new file mode 100644 index 0000000..31712f5 --- /dev/null +++ b/content/en/docs/edgeconnect/edgeconnect-actions.md @@ -0,0 +1,286 @@ +--- +title: Forgejo Actions +linkTitle: Forgejo Actions +weight: 40 +description: > + CI/CD actions for automated EdgeConnect deployment and deletion +--- + +## Overview + +The EdgeConnect Actions are custom composite actions for use in [Forgejo](/docs/edp/forgejo/actions/)/[GitHub Actions](https://forgejo.org/docs/latest/user/actions/github-actions/) that automate EdgeConnect application deployments in CI/CD pipelines. They wrap the [EdgeConnect Client](/docs/edgeconnect/edgeconnect-client/) to provide a simple, declarative way to deploy and delete applications without manual CLI installation or configuration. + +Two actions are available: +- **edge-connect-deploy-action**: Deploys applications using declarative YAML configuration +- **edge-connect-delete-action**: Deletes applications and their instances from EdgeConnect + +## Key Features + +* **Zero installation**: Actions automatically download and use the EdgeConnect Client +* **Declarative workflow**: Deploy applications using YAML configuration files +* **CI/CD optimized**: Designed for automated pipelines with auto-approve and dry-run support +* **Version pinning**: Specify exact EdgeConnect Client version for reproducible builds +* **Secrets management**: Credentials passed securely through workflow secrets +* **Compatible with GitHub and Forgejo Actions**: Works in both ecosystems + +## Purpose in EDP + +CI/CD automation is essential for modern development workflows. While the [EdgeConnect Client](/docs/edgeconnect/edgeconnect-client/) provides powerful deployment capabilities, integrating it into CI/CD pipelines requires downloading binaries, managing credentials, and configuring authentication for each workflow run. + +These actions eliminate that boilerplate by: +- Automatically fetching the correct Client version +- Handling authentication setup +- Providing a clean, reusable action interface +- Reducing pipeline configuration to a few lines + +This enables teams to focus on application configuration rather than pipeline plumbing, while maintaining the full power of declarative EdgeConnect deployments. + +The actions complement the [Terraform provider](/docs/edgeconnect/terraform-provider/) by offering a simpler option for teams already using Forgejo/GitHub Actions who want deployment automation without adopting Terraform. + +## Repository + +**Deploy Action**: https://edp.buildth.ing/DevFW-CICD/edge-connect-deploy-action + +**Delete Action**: https://edp.buildth.ing/DevFW-CICD/edge-connect-delete-action + +**Demo Repository**: https://edp.buildth.ing/DevFW-CICD/edgeconnect-action-demo + +## Getting Started + +### Prerequisites + +* Forgejo or GitHub repository with Actions enabled +* EdgeConnect access credentials (username and password) +* `EdgeConnectConfig.yaml` file defining your application (see [YAML Configuration Format](/docs/edgeconnect/edgeconnect-client/#yaml-configuration-format)) +* For Kubernetes apps: K8s manifest file referenced in the config +* Repository secrets configured with EdgeConnect credentials + +### Quick Start + +1. Create an `EdgeConnectConfig.yaml` file in your repository defining your application (see [Client documentation](/docs/edgeconnect/edgeconnect-client/#yaml-configuration-format)) +2. Add EdgeConnect credentials as repository secrets: + - `EDGEXR_PLATFORM_USERNAME` + - `EDGEXR_PLATFORM_PASSWORD` +3. Create a workflow file (e.g., `.forgejo/workflows/deploy.yaml`) using the action +4. Commit and push to trigger the workflow + +### Verification + +After the workflow runs successfully: +- Check the workflow logs for deployment status +- Verify resources appear in the [EdgeConnect console](https://hub.apps.edge.platform.mg3.mdb.osc.live/) +- Test application endpoints are accessible + +## Usage Examples + +### Minimal Deploy Action + +```yaml +- name: Deploy to EdgeConnect + uses: https://edp.buildth.ing/DevFW-CICD/edge-connect-deploy-action@main + with: + configFile: ./EdgeConnectConfig.yaml + baseUrl: https://hub.apps.edge.platform.mg3.mdb.osc.live + username: ${{ secrets.EDGEXR_PLATFORM_USERNAME }} + password: ${{ secrets.EDGEXR_PLATFORM_PASSWORD }} +``` + +### Minimal Delete Action + +```yaml +- name: Delete from EdgeConnect + uses: https://edp.buildth.ing/DevFW-CICD/edge-connect-delete-action@main + with: + configFile: ./EdgeConnectConfig.yaml + baseUrl: https://hub.apps.edge.platform.mg3.mdb.osc.live + username: ${{ secrets.EDGEXR_PLATFORM_USERNAME }} + password: ${{ secrets.EDGEXR_PLATFORM_PASSWORD }} +``` + +### Complete Workflow Example + +A typical deployment workflow that builds, tags, and deploys: + +```yaml +name: deploy + +on: + workflow_run: + workflows: [build] + types: + - completed + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Update manifest with image tag + run: | + sha="${{ github.sha }}" + shortSha="${sha:0:7}" + echo "Setting image version to: registry.example.com/myapp:${shortSha}" + sed -i "s@###IMAGETAG###@registry.example.com/myapp:${shortSha}@g" ./k8s-deployment.yaml + + - name: Deploy to EdgeConnect + uses: https://edp.buildth.ing/DevFW-CICD/edge-connect-deploy-action@main + with: + configFile: ./EdgeConnectConfig.yaml + baseUrl: https://hub.apps.edge.platform.mg3.mdb.osc.live + username: ${{ secrets.EDGEXR_PLATFORM_USERNAME }} + password: ${{ secrets.EDGEXR_PLATFORM_PASSWORD }} +``` + +### Dry-Run Mode + +Preview changes without applying them: + +```yaml +- name: Preview deployment + uses: https://edp.buildth.ing/DevFW-CICD/edge-connect-deploy-action@main + with: + configFile: ./EdgeConnectConfig.yaml + dryRun: 'true' + baseUrl: https://hub.apps.edge.platform.mg3.mdb.osc.live + username: ${{ secrets.EDGEXR_PLATFORM_USERNAME }} + password: ${{ secrets.EDGEXR_PLATFORM_PASSWORD }} +``` + +### Version Pinning + +Use a specific EdgeConnect Client version: + +```yaml +- name: Deploy with specific version + uses: https://edp.buildth.ing/DevFW-CICD/edge-connect-deploy-action@main + with: + configFile: ./EdgeConnectConfig.yaml + version: 'v2.0.1' + baseUrl: https://hub.apps.edge.platform.mg3.mdb.osc.live + username: ${{ secrets.EDGEXR_PLATFORM_USERNAME }} + password: ${{ secrets.EDGEXR_PLATFORM_PASSWORD }} +``` + +## Integration Points + +* **EdgeConnect Client**: Actions download and execute the Client CLI tool +* **EdgeConnect SDK**: Client uses the SDK for all API interactions +* **Forgejo/GitHub Actions**: Native integration with both action ecosystems +* **EdgeConnect API**: All operations communicate with EdgeConnect platform APIs +* **Container Registries**: Works with any registry for application images + +## Configuration + +### Action Inputs + +Both deploy and delete actions accept the same inputs: + +| Input | Required | Default | Description | +|-------|----------|---------|-------------| +| `configFile` | Yes | - | Path to EdgeConnectConfig.yaml file | +| `baseUrl` | Yes | - | EdgeConnect API base URL (e.g., https://hub.apps.edge.platform.mg3.mdb.osc.live) | +| `username` | Yes | - | EdgeConnect username for authentication | +| `password` | Yes | - | EdgeConnect password for authentication | +| `dryRun` | No | `false` | Preview changes without applying (set to `'true'` to enable) | +| `version` | No | `v2.0.1` | EdgeConnect Client version to download and use | + +### YAML Configuration File + +The `configFile` parameter points to an `EdgeConnectConfig.yaml` that defines your application and deployment targets. See the [EdgeConnect Client YAML Configuration Format](/docs/edgeconnect/edgeconnect-client/#yaml-configuration-format) for the complete specification. + +Example structure: + +```yaml +kind: edgeconnect-deployment +metadata: + name: "my-app" + appVersion: "1.0.0" + organization: "myorg" +spec: + k8sApp: + manifestFile: "./k8s-deployment.yaml" + infraTemplate: + - region: "EU" + cloudletOrg: "TelekomOp" + cloudletName: "Munich" + flavorName: "EU.small" +``` + +### Secrets Management + +Configure repository secrets in Forgejo/GitHub: + +1. Navigate to repository Settings → Secrets +2. Add secrets: + - Name: `EDGEXR_PLATFORM_USERNAME`, Value: your EdgeConnect username + - Name: `EDGEXR_PLATFORM_PASSWORD`, Value: your EdgeConnect password +3. Reference in workflows using `${{ secrets.SECRET_NAME }}` + +## Troubleshooting + +### Action Fails with "Failed to download edge-connect-client" + +**Problem**: Action cannot download the Client binary + +**Solution**: +- Verify the `version` parameter matches an actual release version + - Ensure the release exists at https://edp.buildth.ing/DevFW-CICD/edge-connect-client/releases +- Check network connectivity from the runner +- Try using default version by omitting the `version` parameter + +### Authentication Errors + +**Problem**: "authentication failed" or "unauthorized" errors + +**Solution**: +- Verify secrets are correctly configured in repository settings +- Check secret names match exactly (case-sensitive) +- Ensure `baseUrl` is correct for your target environment (Edge vs Orca) +- Confirm credentials work by testing with the [client](../edgeconnect-client/) + +### "Configuration validation failed" + +**Problem**: YAML configuration file validation errors + +**Solution**: +- Verify `configFile` path is correct relative to repository root +- Check YAML syntax is valid (use a YAML validator) +- Ensure all required fields are present (see [Client docs](/docs/edgeconnect/edgeconnect-client/#yaml-configuration-format)) +- Verify manifest file paths in the config exist and are correct + +### Resources Not Appearing in Console + +**Problem**: Action succeeds but resources don't appear in EdgeConnect console + +**Solution**: +- Verify you're checking the correct environment (Edge vs Orca) +- Ensure `baseUrl` parameter matches the console you're viewing +- Check organization name in config matches your console access +- Review action logs for any warnings or skipped operations + +### Deployment Succeeds but App Doesn't Work + +**Problem**: Deployment completes but application is not functioning + +**Solution**: +- Check application logs in the EdgeConnect console +- Verify image tags are correct (common issue with placeholder replacement) +- Ensure manifest files reference correct image registry and paths +- Check network configuration allows required outbound connections +- Verify cloudlet has sufficient resources for the specified flavor + +## Status + +**Maturity**: Production + +## Additional Resources + +* [EdgeConnect Client Documentation](/docs/edgeconnect/edgeconnect-client/) +* [EdgeConnect SDK Documentation](/docs/edgeconnect/edgeconnect-sdk/) +* [Terraform Provider Documentation](/docs/edgeconnect/terraform-provider/) +* [EdgeConnect Console](https://hub.apps.edge.platform.mg3.mdb.osc.live/) +* [Demo Repository](https://edp.buildth.ing/DevFW-CICD/edgeconnect-action-demo) +* [Forgejo Actions Documentation](https://forgejo.org/docs/latest/user/actions/) diff --git a/content/en/docs/edgeconnect/edgeconnect-client.md b/content/en/docs/edgeconnect/edgeconnect-client.md new file mode 100644 index 0000000..5e1aeb1 --- /dev/null +++ b/content/en/docs/edgeconnect/edgeconnect-client.md @@ -0,0 +1,246 @@ +--- +title: EdgeConnect Client +linkTitle: Client +weight: 20 +description: > + Client software for establishing EdgeConnect connections +--- + +## Overview + +The EdgeConnect Client is a command-line tool for managing EdgeConnect applications and instances. It is built using our Golang [SDK](/docs/edgeconnect/edgeconnect-sdk/), and supports functionality to create, destroy, describe and list various resources. + +The tool provides both imperative commands (for direct resource management) and declarative workflows (using YAML configuration files) to deploy applications across multiple edge cloudlets. It supports different EdgeConnect deployment environments through an API version selector. + +## Key Features + +* **Dual workflow support**: Imperative commands for direct operations, declarative YAML for infrastructure-as-code +* **Multi-cloudlet deployment**: Deploy applications to multiple edge locations from a single configuration +* **Deployment planning**: Preview and approve changes before applying them (dry-run mode) +* **Environment compatibility**: Works with different EdgeConnect deployment environments (configured via `api-version`) +* **CI/CD ready**: Designed for automated deployments with auto-approve and exit codes + +## Purpose in EDP + +No system can be considered useful unless it is actually, in practice, used. While the Edge Connect [console](https://hub.apps.edge.platform.mg3.mdb.osc.live/) and [API](https://swagger.edge.platform.mg3.mdb.osc.live/) are essential tools to allow the platform to be used by developers, there are numerous use cases for interaction that is automated but simpler to use than an API. + +The EdgeConnect Client bridges the gap between manual console operations and direct API integration, enabling automated deployments in CI/CD pipelines, infrastructure-as-code workflows, and scripted operations while maintaining simplicity and usability. + +## Repository + +**Code**: https://edp.buildth.ing/DevFW-CICD/edge-connect-client + +**Releases**: https://edp.buildth.ing/DevFW-CICD/edge-connect-client/releases + +## Getting Started + +### Prerequisites + +* Access credentials for the EdgeConnect platform (username and password) +* Knowledge of your target deployment environment (determines `api-version` setting) +* For Kubernetes deployments: K8s manifest files +* For Docker deployments: Docker image reference + +### Quick Start + +1. Download the Edge Connect Client binary from the Forgejo [releases page](https://edp.buildth.ing/DevFW-CICD/edge-connect-client/releases) for your platform (Linux, macOS, or Windows) +2. Extract and move to your PATH: `tar -xzf edge-connect-client_*.tar.gz && sudo mv edge-connect /usr/local/bin/` +3. Configure authentication using environment variables or a config file (see Configuration section) +4. Verify installation: `edge-connect --help` + +### Verification + +Run `edge-connect app list --org --region ` to verify you can authenticate and communicate with the EdgeConnect API. + +## Usage Examples + +### Declarative Deployment (Recommended) + +Create an `EdgeConnectConfig.yaml` file defining your application and deployment targets, then apply it: + +```bash +edge-connect apply -f EdgeConnectConfig.yaml +``` + +Use `--dry-run` to preview changes without applying them, and `--auto-approve` for automated CI/CD workflows. + +### Imperative Commands + +Direct resource management using CLI commands: + +```bash +# Create an application +edge-connect app create --org myorg --name myapp --version 1.0.0 --region EU + +# Create an instance on a specific cloudlet +edge-connect instance create --org myorg --name myinstance \ + --app myapp --version 1.0.0 --region EU \ + --cloudlet Munich --cloudlet-org TelekomOp --flavor EU.small + +# List resources +edge-connect app list --org myorg --region EU +edge-connect instance list --org myorg --region EU + +# Delete resources +edge-connect instance delete --org myorg --name myinstance --region EU \ + --cloudlet Munich --cloudlet-org TelekomOp +edge-connect app delete --org myorg --name myapp --version 1.0.0 --region EU +``` + +## Integration Points + +* **EdgeConnect API**: Communicates with EdgeConnect platform APIs for all resource operations +* **EdgeConnect SDK**: Built on top of the Golang SDK, sharing authentication and client implementation +* **CI/CD Pipelines**: Designed for integration with GitLab CI, GitHub Actions, and other automation tools +* **Infrastructure-as-Code**: YAML configuration files enable GitOps workflows + +## Configuration + +### Global Settings + +The client can be configured via config file, environment variables, or command-line flags (in order of precedence: flags > env vars > config file). + +**Config File** (`~/.edge-connect.yaml` or use `--config` flag): + +```yaml +base_url: "https://hub.apps.edge.platform.mg3.mdb.osc.live" +username: "your-username@example.com" +password: "your-password" +api_version: "v2" # v1 or v2 - identifies deployment environment +``` + +**Environment Variables**: + +- `EDGE_CONNECT_BASE_URL`: API base URL +- `EDGE_CONNECT_USERNAME`: Authentication username +- `EDGE_CONNECT_PASSWORD`: Authentication password +- `EDGE_CONNECT_API_VERSION`: API version selector (v1 or v2, default: v2) + +**Global Flags** (available on all commands): + +- `--base-url`: API base URL +- `--username`: Authentication username +- `--password`: Authentication password +- `--api-version`: API version selector (v1 or v2) - specifies which deployment environment to target +- `--config`: Path to config file +- `--debug`: Enable debug logging + +**Note on API Versions**: The `api-version` setting (v1 or v2) is an internal label used to distinguish between different EdgeConnect deployment environments, not an official API version designation from the platform. + +### Commands + +**App Management** (`edge-connect app `): + +CLI command `app` corresponds to **App** in the platform console. + +- `create`: Create app (flags: `--org`, `--name`, `--version`, `--region`) +- `show`: Show app details (flags: same as create) +- `list`: List apps (flags: `--org`, `--region`, optional: `--name`, `--version`) +- `delete`: Delete app (flags: `--org`, `--name`, `--version`, `--region`) + +**App Instance Management** (`edge-connect instance `): + +CLI command `instance` corresponds to **App Instance** in the platform console. + +- `create`: Create app instance (flags: `--org`, `--name`, `--app`, `--version`, `--region`, `--cloudlet`, `--cloudlet-org`, `--flavor`) +- `show`: Show app instance details (flags: `--org`, `--name`, `--cloudlet`, `--cloudlet-org`, `--region`, `--app-id`) +- `list`: List app instances (flags: same as show, all optional) +- `delete`: Delete app instance (flags: `--org`, `--name`, `--cloudlet`, `--cloudlet-org`, `--region`) + +**Declarative Operations**: + +- `apply`: Deploy from YAML (flags: `-f `, `--dry-run`, `--auto-approve`) +- `delete`: Delete from YAML (flags: `-f `, `--dry-run`, `--auto-approve`) + +### YAML Configuration Format + +The `EdgeConnectConfig.yaml` file defines apps and their deployment targets: + +```yaml +kind: edgeconnect-deployment +metadata: + name: "my-app" # App name (required) + appVersion: "1.0.0" # App version (required) + organization: "myorg" # Organization (required) + +spec: + # Choose ONE: k8sApp OR dockerApp + k8sApp: + manifestFile: "./k8s-deployment.yaml" # Path to K8s manifest + + # OR dockerApp: + # image: "registry.example.com/myimage:tag" + # manifestFile: "./docker-compose.yaml" # Optional + + # Deployment targets (at least one required) + infraTemplate: + - region: "EU" # Region (required) + cloudletOrg: "TelekomOp" # Cloudlet provider (required) + cloudletName: "Munich" # Cloudlet name (required) + flavorName: "EU.small" # Instance size (required) + - region: "US" + cloudletOrg: "TelekomOp" + cloudletName: "gardener-shepherd-test" + flavorName: "default" + + # Optional network configuration + network: + outboundConnections: + - protocol: "tcp" # tcp, udp, or icmp + portRangeMin: 80 + portRangeMax: 80 + remoteCIDR: "0.0.0.0/0" + - protocol: "tcp" + portRangeMin: 443 + portRangeMax: 443 + remoteCIDR: "0.0.0.0/0" + + # Optional deployment strategy (default: recreate) + deploymentStrategy: "recreate" # recreate, blue-green, or rolling +``` + +**Key Points**: +- Manifest file paths are relative to the config file location +- Multiple `infraTemplate` entries deploy to multiple cloudlets simultaneously +- Network configuration is optional; outbound connections default to platform settings +- Deployment strategy currently only supports "recreate" (others planned) + +## Troubleshooting + +### Authentication Failures + +**Problem**: Errors like "authentication failed" or "unauthorized" + +**Solution**: +- Verify credentials are correct in config file or environment variables +- Ensure `base_url` includes the scheme (https://) and has no trailing path +- Check that you're connecting to the correct cloud instance (Edge or Orca) +- Ensure the correct `api-version` is set for your deployment environment + +### "Configuration validation failed" Errors + +**Problem**: YAML configuration file validation errors + +**Solution**: +- Check that all required fields are present (name, appVersion, organization) +- Ensure you have exactly one of `k8sApp` or `dockerApp` (not both, not neither) +- Verify manifest file paths exist relative to the config file location +- Check for leading/trailing whitespace in string values +- Ensure at least one `infraTemplate` entry is defined + +### Wrong API Version or Cloud Instance + +**Problem**: Commands work but resources don't appear in the console, or vice versa + +**Solution**: Verify both the `base_url` and `api-version` match your target environment. There are two cloud instances (Edge and Orca) with different URLs and API versions. Check with your platform administrator for the correct configuration. + +## Status + +**Maturity**: Production + +## Additional Resources + +* [EdgeConnect SDK Documentation](/docs/edgeconnect/edgeconnect-sdk/) +* **Edge Cloud**: [Console](https://hub.apps.edge.platform.mg3.mdb.osc.live/) | [API Docs](https://swagger.edge.platform.mg3.mdb.osc.live/) +* **Orca Cloud**: [Console](https://hub.apps.orca.platform.mg3.mdb.osc.live/) | [API Docs](https://swagger.orca.platform.mg3.mdb.osc.live/) +* [Source Code Repository](https://edp.buildth.ing/DevFW-CICD/edge-connect-client) diff --git a/content/en/docs/edgeconnect/edgeconnect-sdk.md b/content/en/docs/edgeconnect/edgeconnect-sdk.md new file mode 100644 index 0000000..7b8046b --- /dev/null +++ b/content/en/docs/edgeconnect/edgeconnect-sdk.md @@ -0,0 +1,70 @@ +--- +title: EdgeConnect SDK +linkTitle: SDK +weight: 10 +description: > + Software Development Kit for interacting with EdgeConnect +--- + +## Overview + +The EdgeConnect SDK is a Go library which provides a simple method for interacting with Edge Connect within programs. It is designed to be used by other tools, such as the [EdgeConnect Client](/docs/edgeconnect/edgeconnect-client/) or [Terraform provider](/docs/edgeconnect/terraform-provider/), + +## Key Features + +* Allows querying endpoints without the need to manage API calls and responses directly +* Wraps the existing [Edge Connect API](https://swagger.edge.platform.mg3.mdb.osc.live/) +* Supports multiple unnumbered versions of the API + +## Purpose in EDP + +No system can be considered useful unless it is actually, in practice, used. While the Edge Connect [console](https://hub.apps.edge.platform.mg3.mdb.osc.live/) and [API](https://swagger.edge.platform.mg3.mdb.osc.live/) are essential tools to allow the platform to be used by developers, there are numerous use cases for interaction that is automated but simpler to use than an API. These include a [command-line tool](/docs/edgeconnect/edgeconnect-client/) and [Terraform provider](/docs/edgeconnect/terraform-provider/). + +While each such tool could simply independently wrap existing endpoints, this is generally too low-level for sustainable development. It would involve extensive boilerplate code in each such package, plus small changes to API endpoints or error handling may require constant rework. + +To avoid this, the Edge Connect SDK aims to provide a common library for interacting with EdgeConnect, allowing the abstraction of HTTP requests and authentication procedures while nonetheless allowing access directly to the endpoints available. + +## Repository + +**Code**: https://edp.buildth.ing/DevFW-CICD/edge-connect-client + +**Documentation**: https://edp.buildth.ing/DevFW-CICD/edge-connect-client/src/branch/main/sdk + +## Getting Started + +### Prerequisites + +* Golang +* Edge Connect credentials + +### Quick Start + +[Step-by-step guide to get started with this component] + +1. Simply [import](https://edp.buildth.ing/DevFW-CICD/edge-connect-client/src/branch/main/sdk#installation) the SDK to your project +2. [Initialise and configure](https://edp.buildth.ing/DevFW-CICD/edge-connect-client/src/branch/main/sdk#configuration-options) a client with your credentials +3. [Build](https://edp.buildth.ing/DevFW-CICD/edge-connect-client/src/branch/main/sdk#examples) your code around the existing endpoints + +### Verification + +[How to verify the component is working correctly] + +## Usage Examples + +See [README](https://edp.buildth.ing/DevFW-CICD/edge-connect-client/src/branch/main/sdk#examples) for simple code examples, or repositories for [EdgeConnect Client](/docs/edgeconnect/edgeconnect-client/) and [Terraform provider](/docs/edgeconnect/terraform-provider/) for full projects relying on it. + +## Troubleshooting + +### Varying code versions + +**Problem**: While the Edge Connect API does not (at time of writing) have different semantic versions, it does have different iterations which function differently. The SDK provides two different libraries, labelled [v1](https://edp.buildth.ing/DevFW-CICD/edge-connect-client/src/branch/main/sdk/edgeconnect) and [v2](https://edp.buildth.ing/DevFW-CICD/edge-connect-client/src/branch/main/sdk/edgeconnect/v2) and referring to API definitions similarly stored as [v1](https://edp.buildth.ing/DevFW-CICD/edge-connect-client/src/branch/main/api/swagger_v1.json) and [v2](https://edp.buildth.ing/DevFW-CICD/edge-connect-client/src/branch/main/api/swagger_v2.json). + +**Solution**: If you receive errors when using the SDK, consider changing the version you import: +```go +import v1 "edp.buildth.ing/DevFW-CICD/edge-connect-client/sdk/edgeconnect" +import v2 "edp.buildth.ing/DevFW-CICD/edge-connect-client/v2/sdk/edgeconnect/v2" +``` + +## Status + +**Maturity**: Beta diff --git a/content/en/docs/edgeconnect/terraform-provider.md b/content/en/docs/edgeconnect/terraform-provider.md new file mode 100644 index 0000000..5dbbd4c --- /dev/null +++ b/content/en/docs/edgeconnect/terraform-provider.md @@ -0,0 +1,80 @@ +--- +title: Terraform provider for Edge cloud +linkTitle: Terraform provider +weight: 30 +description: Custom Terraform provider for orchestrating Edge deployments +--- + +## Overview + +This work-in-progress Terraform provider for Edge cloud allows orchestration of selected resources using flexible, concise [HCL](https://developer.hashicorp.com/terraform/language). This allows deployment to Edge Cloud through a familiar format, abstracting away specific endpoints and authentication elements, and allowing seamless combination of Edge resources with others: on OTC, other clouds, or local utilities. + +## Key Features + +* Interact with Apps and AppInstances using widely-used Terraform framework +* Using Terraform's systems, provide minimal configuration: just an endpoint and credentials, then no need to deal with headers or other API boilerplate +* Also works with community-driven OpenTofu +* Provider currently under development: more features can be added when requested. + +## Purpose in EDP + +Interacting with infrastructure is a complex process, with many parameters and components working together. Doing so by clicking buttons in a web UI ("ClickOps") is extremely difficult to scale, rapidly becoming highly confusing. + +Instead, automations are possible through APIs and SDKs. Working directly with an API (e.g. via `curl`) inevitably tends to involve large amounts of boilerplate code to manage authentication, rarely-changing configuration such as region/tenant selection, and more. When one resource (say, a web server) must interact with another (say, a DNS record), the cross-references further increase this complexity. + +An SDK mitigates this complexity when coding software, by providing library functions which interact with the API in abstracted ways which require a minimum of necessary information. Our SDK for Edge Connect is described in a [separate section](/docs/edgeconnect/edgeconnect-sdk/). + +However, when simply wanting to deploy infrastructure in isolation - say, updating the status of a Kubernetes or App resource after a change in configuration - an SDK is still an overly complicated tool. + +This is where [Terraform](https://developer.hashicorp.com/terraform) or its community-led alternative [OpenTofu](https://opentofu.org/), come in. They provide a simple language for defining resources, with a level of abstraction that retains the power and flexibility of the API while greatly simplifying definitions and execution. + +Terraform is widely used for major infrastructure systems such as [AWS](https://registry.terraform.io/providers/hashicorp/aws/latest/docs), [Azure](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs) or general [Kubernetes](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs). However, it is highly flexible, supporting a range of resource types which are not inherently tied to infrastructure: [file](https://registry.terraform.io/search/providers?q=file) manipulation; package setup through [Ansible](https://registry.terraform.io/providers/ansible/aap/1.4.0); secret generation in [Vault](https://registry.terraform.io/providers/hashicorp/vault/latest/docs). + +As a result of this breadth of functionality and cross-compatibility, Terraform support is considered by some as necessary for a platform to be used 'seriously' - that is, at scale, or in major workloads. Our provider thus unlocks broad market relevance for the platform in a way few other tools or features could. + +## Repository + +**Code**: https://edp.buildth.ing/DevFW-CICD/terraform-provider-edge-connect + +**Documentation**: Provider is intended to ultimately wrap each resource-based endpoint of the [Edge API](https://swagger.edge.platform.mg3.mdb.osc.live/), but currently supports a limited [subset of resources](https://edp.buildth.ing/DevFW-CICD/terraform-provider-edge-connect#resources). + +## Getting Started + +### Prerequisites + +* [Terraform](https://developer.hashicorp.com/terraform) or [OpenTofu](https://opentofu.org/) +* Edge access and credentials + +### Quick Start + +1. Configure Terraform to use the provider by [including it](https://edp.buildth.ing/DevFW-CICD/terraform-provider-edge-connect#using-terraform-registry-recommended) in `provider.tf` +1. In the same directory, create terraform resources in `.tf` files according to the [spec](https://edp.buildth.ing/DevFW-CICD/terraform-provider-edge-connect#resources) +1. [Set up credentials](https://edp.buildth.ing/DevFW-CICD/terraform-provider-edge-connect/src/branch/main/README.md#provider-configuration) using environment variables or a `provider` block +1. Run `terraform init` in the directory +1. Execute `terraform plan` and/or `terraform apply` to deploy your application +1. `terraform destroy` can be used to remove all deployed resources + +### Verification + +If `terraform apply` completes successfully (without errors), the provider is working correctly. You can also manually validate in the Edge UI that your resources have been deployed/reconfigured as Terraform indicated. + + +## Status + +**Maturity**: Experimental + +## Additional Resources + +* [Terralist](https://www.terralist.io/) +* [Terraform](https://developer.hashicorp.com/terraform) +* [OpenTofu](https://opentofu.org/) +* [Edge Connect API](https://swagger.edge.platform.mg3.mdb.osc.live) + +## Integration Points + +* **Edge Connect SDK**: The provider uses the [Edge Connect SDK](http://localhost:1313/docs/components/deployments/edgeconnect/edgeconnect-sdk/) under the hood. +* **Terralist**: The provider is published using a [custom instance](https://terralist.garm-provider-test.t09.de/) of [Terralist](https://www.terralist.io/). This [can only](https://edp.buildth.ing/DevFW-CICD/stacks/src/commit/5b438097bbd027f0025d6198c34c22f856392a03/template/stacks/terralist/terralist/values.yaml#L9-L38) be written to with a login via [Forgejo](https://edp.buildth.ing/), but can be read publicly. + +### Component Architecture (C4) + + diff --git a/content/en/docs/edp/_index.md b/content/en/docs/edp/_index.md new file mode 100644 index 0000000..d0d5108 --- /dev/null +++ b/content/en/docs/edp/_index.md @@ -0,0 +1,52 @@ +--- +title: Edge Developer Platform +linkTitle: Edge Developer Platform +weight: 10 +description: > + A platform to support developers working in the Edge, based around Forgejo +--- + +## Purpose + +The Edge Developer Platform (EDP) is a comprehensive DevOps platform designed to enable developers to build, deploy, and operate cloud-native applications at the edge. It provides an integrated suite of tools and services covering the entire software development lifecycle. + +{{< likec4-view view="application-transition" project="architecture" title="EDP Context View: Edge Developer Platform Components and User Interaction" >}} + +The magenta **EDP** represents the developer platform: a shared, productized layer that enables modern DevOps by standardizing how applications are described, built, deployed, and observed. In the **inner loop**, developers iterate locally (fast feedback: code → run → test). EDP then connects that work to an **outer loop** where additional roles (review, test, operations, audit/compliance) contribute feedback and controls for production readiness. + +In this modern DevOps setup, EDP acts as the hub: it synchronizes with local development and **deploys applications to target clouds** (for example, an EdgeConnect cloud), while providing the operational capabilities needed to run them safely. Agentic AI can support both loops—for example by assisting developers with implementation and testing in the inner loop, and by automating reviews, policy checks, release notes, and deployment verification (including drift detection and remediation) in the outer loop. + + +## Product Structure + +EDP consists of multiple integrated components organized in layers: + +### Core Platform Services + +The foundation layer provides essential platform capabilities including source code management, CI/CD, and container orchestration. + +For documentation, see: [Basic Platform Concepts](./deployment/basics/) and [Forgejo](./forgejo/) + +### Developer Experience + +Tools and services that developers interact with directly to build, test, and deploy applications. + +For documentation, see: [Forgejo](./forgejo/) and [Deployment](./deployment/) + +### Infrastructure & Operations + +Infrastructure automation, observability, and operational tooling for platform management. + +For documentation, see: [Operations](./operations/) and [Infrastructure as Code](./deployment/infrastructure/) + +## Getting Started + +EDP is available at https://edp.buildth.ing. + +EDP includes a Forgejo instance that hosts both public and private repositories containing all EDP components. + +To request access and get onboarded, start with the welcome repository: + +- https://edp.buildth.ing/edp-team/welcome + +Once you have access to the repositories, you can explore the EDP documentation according to the product structure above. diff --git a/content/en/docs/edp/deployment/_index.md b/content/en/docs/edp/deployment/_index.md new file mode 100644 index 0000000..0fee1b0 --- /dev/null +++ b/content/en/docs/edp/deployment/_index.md @@ -0,0 +1,509 @@ +--- +title: Deployment +linkTitle: Deployment +weight: 10 +description: > + Platform-level component provisioning via Stacks - Orchestrating the platform infrastructure itself +--- + +## Overview + +Platform Orchestration refers to the automation and management of the platform infrastructure itself. This includes the provisioning, configuration, and lifecycle management of all components that make up the Internal Developer Platform (IDP). + +In the context of IPCEI-CIS, Platform Orchestration means: + +- **Platform Bootstrap**: Initial setup of Kubernetes clusters and core services +- **Platform Services Management**: Deployment and management of ArgoCD, Forgejo, Keycloak, etc. +- **Infrastructure-as-Code**: Declarative management using Terraform and GitOps +- **Multi-Cluster Orchestration**: Coordination across different Kubernetes clusters +- **Platform Stacks**: Reusable bundles of platform components (CNOE concept) + +### Target Audience + +Platform Orchestration is primarily aimed at: + +- **Platform Engineering Teams**: Teams that build and operate the IDP +- **Infrastructure Architects**: Those responsible for the platform architecture +- **SRE Teams**: Teams responsible for reliability and operations + +## Key Features + +### Declarative Platform Definition + +The entire platform is defined declaratively as code: + +- **GitOps-First**: Everything is versioned in Git and traceable +- **Reproducibility**: The platform can be rebuilt at any time +- **Environment Parity**: Consistency between Dev, Test, and Production +- **Auditability**: Complete history of all changes + +### Self-Bootstrapping + +The platform can bootstrap itself: + +1. **Initial Bootstrap**: Minimal tool (like `idpbuilder`) starts the platform +2. **Self-Management**: After bootstrap, ArgoCD takes over management +3. **Continuous Reconciliation**: Platform is continuously reconciled with Git state +4. **Self-Healing**: Automatic recovery on deviations + +### Stack-based Composition + +Platform components are organized as reusable stacks (CNOE concept): + +- **Modularity**: Components can be updated individually +- **Reusability**: Stacks can be used across different environments +- **Composability**: Compose complex platforms from simple building blocks +- **Versioning**: Stacks can be versioned and tested + +**In IPCEI-CIS**: The stacks concept from CNOE is the core organizational principle for platform components. + +### Multi-Cluster Support + +Platform Orchestration supports different cluster topologies: + +- **Control Plane + Worker Clusters**: Centralized control, distributed workloads +- **Hub-and-Spoke**: One management cluster manages multiple target clusters +- **Federation**: Coordination across multiple independent clusters + +## Purpose in EDP + +Platform Orchestration is the foundation of the IPCEI-CIS Edge Developer Platform. It enables: + +### Foundation for Developer Self-Service + +Platform Orchestration ensures all services are available that developers need for self-service: + +- **GitOps Engine** (ArgoCD) for continuous deployment +- **Source Control** (Forgejo) for code and configuration management +- **Identity Management** (Keycloak) for authentication and authorization +- **Observability** (Grafana, Prometheus) for monitoring and logging +- **CI/CD** (Forgejo Actions/Pipelines) for automated build and test + +### Consistency Across Environments + +Through declarative definition, consistency is guaranteed: + +- Development, test, and production environments are identically configured +- No "configuration drift" between environments +- Predictable behavior across all stages + +### Platform as Code + +The platform itself is treated like software: + +- **Version Control**: All changes are versioned in Git +- **Code Review**: Platform changes go through review processes +- **Testing**: Platform configurations can be tested +- **Rollback**: Easy rollback on problems + +### Reduced Operational Overhead + +Automation reduces manual effort: + +- No manual installation steps +- Automatic updates and patching +- Self-healing on failures +- Standardized deployment processes + +## Repository + +**CNOE Reference Implementation**: [cnoe-io/stacks](https://github.com/cnoe-io/stacks) + +**CNOE idpbuilder**: [cnoe-io/idpbuilder](https://github.com/cnoe-io/idpbuilder) + +**Documentation**: [CNOE.io Documentation](https://cnoe.io/docs/) + +## Getting Started + +### Prerequisites + +- **Docker**: For local Kubernetes clusters (Kind) +- **kubectl**: Kubernetes CLI tool +- **Git**: For repository management +- **idpbuilder**: CNOE bootstrap tool + +### Quick Start + +Platform Orchestration with CNOE Reference Implementation: + +```bash +# 1. Install idpbuilder +curl -fsSL https://cnoe.io/install.sh | bash + +# 2. Bootstrap platform +idpbuilder create \ + --use-path-routing \ + --package-dir https://github.com/cnoe-io/stacks//ref-implementation + +# 3. Wait for platform ready (ca. 10 minutes) +kubectl get applications -A +``` + +### Verification + +Verify the platform is running correctly: + +```bash +# Get platform secrets (credentials) +idpbuilder get secrets + +# Check all ArgoCD applications +kubectl get applications -n argocd + +# Expected: All applications "Synced" and "Healthy" +``` + +Access URLs (with path-routing): + +- **ArgoCD**: `https://cnoe.localtest.me:8443/argocd` +- **Forgejo**: `https://cnoe.localtest.me:8443/gitea` +- **Keycloak**: `https://cnoe.localtest.me:8443/keycloak` + +## Usage Examples + +### Use Case 1: Platform Bootstrap + +Initial bootstrapping of a new platform instance: + +```bash +idpbuilder create \ + --use-path-routing \ + --package-dir https://github.com/cnoe-io/stacks//ref-implementation \ + --log-level debug + +# Workflow: +# 1. Creates Kind cluster +# 2. Installs ingress-nginx +# 3. Clones and installs ArgoCD +# 4. Installs Forgejo +# 5. Waits for core services +# 6. Creates technical users +# 7. Configures Git repositories +# 8. Installs remaining stacks via ArgoCD +``` + +After approximately 10 minutes, the platform is fully deployed. + +### Use Case 2: Adding New Platform Components + +Add new platform components via ArgoCD: + +```bash +# Create ArgoCD Application for new component +cat < + +# 2. View sync status +argocd app sync --dry-run + +# 3. Force sync +argocd app sync --force + +# 4. Check for errors in ArgoCD logs +kubectl logs -n argocd deployment/argocd-application-controller +``` + +### Git Repository Connection Issues + +**Problem**: ArgoCD cannot access Git repository + +**Solution**: + +```bash +# 1. Verify repository configuration +argocd repo list + +# 2. Test connection +argocd repo get https://your-git-repo + +# 3. Check credentials +kubectl get secret -n argocd + +# 4. Re-add repository with correct credentials +argocd repo add https://your-git-repo \ + --username \ + --password +``` + +## Platform Orchestration Best Practices + +Based on experience and [CNCF Guidelines](https://tag-app-delivery.cncf.io/whitepapers/platforms/): + +1. **Start Simple**: Begin with the CNOE reference stack, extend gradually +2. **Automate Everything**: Manual platform changes are anti-pattern +3. **Monitor Continuously**: Use observability tools for platform health +4. **Document Well**: Platform documentation is essential for adoption +5. **Version Everything**: All platform components should be versioned +6. **Test Changes**: Platform updates should be tested in non-prod +7. **Plan for Disaster**: Backup and disaster recovery strategies are important +8. **Use Stacks**: Organize platform components as reusable stacks + +## Status + +**Maturity**: Production (for CNOE Reference Implementation) + +**Stability**: Stable + +**Support**: Community Support via CNOE Community + +## Additional Resources + +### CNOE Resources + +- [CNOE Official Website](https://cnoe.io/) +- [CNOE GitHub Organization](https://github.com/cnoe-io) +- [CNOE Reference Implementation](https://github.com/cnoe-io/stacks) +- [CNOE Community Slack](https://cloud-native.slack.com/archives/C05TN9WFN5S) + +### Platform Engineering + +- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) +- [Platform Engineering Maturity Model](https://tag-app-delivery.cncf.io/whitepapers/platform-eng-maturity-model/) +- [Team Topologies](https://teamtopologies.com/) - Organizational patterns + +### GitOps + +- [GitOps Working Group](https://opengitops.dev/) +- [ArgoCD Best Practices](https://argo-cd.readthedocs.io/en/stable/user-guide/best_practices/) +- [GitOps Principles](https://opengitops.dev/) + +### CNOE Stacks + +- [Understanding CNOE Stacks](https://cnoe.io/docs/reference-implementation/stacks/) +- [Creating Custom Stacks](https://cnoe.io/docs/reference-implementation/customization/) diff --git a/content/en/docs/edp/deployment/basics/_index.md b/content/en/docs/edp/deployment/basics/_index.md new file mode 100644 index 0000000..075022d --- /dev/null +++ b/content/en/docs/edp/deployment/basics/_index.md @@ -0,0 +1,479 @@ +--- +title: Basic Concepts +linkTitle: Basic Concepts +weight: 1 +description: > + Platform-level component provisioning via Stacks - Orchestrating the platform infrastructure itself +--- + +## Overview + +Platform Orchestration refers to the automation and management of the platform infrastructure itself. This includes the provisioning, configuration, and lifecycle management of all components that make up the Internal Developer Platform (IDP). + +In the context of IPCEI-CIS, Platform Orchestration means: + +- **Platform Bootstrap**: Initial setup of Kubernetes clusters and core services +- **Platform Services Management**: Deployment and management of ArgoCD, Forgejo, Keycloak, etc. +- **Infrastructure-as-Code**: Declarative management using Terraform and GitOps +- **Multi-Cluster Orchestration**: Coordination across different Kubernetes clusters +- **Platform Stacks**: Reusable bundles of platform components (CNOE concept) + +### Target Audience + +Platform Orchestration is primarily aimed at: + +- **Platform Engineering Teams**: Teams that build and operate the IDP +- **Infrastructure Architects**: Those responsible for the platform architecture +- **SRE Teams**: Teams responsible for reliability and operations + +## Key Features + +### Declarative Platform Definition + +The entire platform is defined declaratively as code: + +- **GitOps-First**: Everything is versioned in Git and traceable +- **Reproducibility**: The platform can be rebuilt at any time +- **Environment Parity**: Consistency between Dev, Test, and Production +- **Auditability**: Complete history of all changes + +### Self-Bootstrapping + +The platform can bootstrap itself: + +1. **Initial Bootstrap**: Minimal tool (like `idpbuilder`) starts the platform +2. **Self-Management**: After bootstrap, ArgoCD takes over management +3. **Continuous Reconciliation**: Platform is continuously reconciled with Git state +4. **Self-Healing**: Automatic recovery on deviations + +### Stack-based Composition + +Platform components are organized as reusable stacks (CNOE concept): + +- **Modularity**: Components can be updated individually +- **Reusability**: Stacks can be used across different environments +- **Composability**: Compose complex platforms from simple building blocks +- **Versioning**: Stacks can be versioned and tested + +**In IPCEI-CIS**: The stacks concept from CNOE is the core organizational principle for platform components. + +### Multi-Cluster Support + +Platform Orchestration supports different cluster topologies: + +- **Control Plane + Worker Clusters**: Centralized control, distributed workloads +- **Hub-and-Spoke**: One management cluster manages multiple target clusters +- **Federation**: Coordination across multiple independent clusters + +## Purpose in EDP + +Platform Orchestration is the foundation of the IPCEI-CIS Edge Developer Platform. It enables: + +### Foundation for Developer Self-Service + +Platform Orchestration ensures all services are available that developers need for self-service: + +- **GitOps Engine** (ArgoCD) for continuous deployment +- **Source Control** (Forgejo) for code and configuration management +- **Identity Management** (Keycloak) for authentication and authorization +- **Observability** (Grafana, Prometheus) for monitoring and logging +- **CI/CD** (Forgejo Actions/Pipelines) for automated build and test + +### Consistency Across Environments + +Through declarative definition, consistency is guaranteed: + +- Development, test, and production environments are identically configured +- No "configuration drift" between environments +- Predictable behavior across all stages + +### Platform as Code + +The platform itself is treated like software: + +- **Version Control**: All changes are versioned in Git +- **Code Review**: Platform changes go through review processes +- **Testing**: Platform configurations can be tested +- **Rollback**: Easy rollback on problems + +### Reduced Operational Overhead + +Automation reduces manual effort: + +- No manual installation steps +- Automatic updates and patching +- Self-healing on failures +- Standardized deployment processes + +## Repository + +**CNOE Reference Implementation**: [cnoe-io/stacks](https://github.com/cnoe-io/stacks) + +**CNOE idpbuilder**: [cnoe-io/idpbuilder](https://github.com/cnoe-io/idpbuilder) + +**Documentation**: [CNOE.io Documentation](https://cnoe.io/docs/) + +## Getting Started + +### Prerequisites + +- **Docker**: For local Kubernetes clusters (Kind) +- **kubectl**: Kubernetes CLI tool +- **Git**: For repository management +- **idpbuilder**: CNOE bootstrap tool + +### Quick Start + +Platform Orchestration with CNOE Reference Implementation: + +```bash +# 1. Install idpbuilder +curl -fsSL https://cnoe.io/install.sh | bash + +# 2. Bootstrap platform +idpbuilder create \ + --use-path-routing \ + --package-dir https://github.com/cnoe-io/stacks//ref-implementation + +# 3. Wait for platform ready (ca. 10 minutes) +kubectl get applications -A +``` + +### Verification + +Verify the platform is running correctly: + +```bash +# Get platform secrets (credentials) +idpbuilder get secrets + +# Check all ArgoCD applications +kubectl get applications -n argocd + +# Expected: All applications "Synced" and "Healthy" +``` + +Access URLs (with path-routing): + +- **ArgoCD**: `https://cnoe.localtest.me:8443/argocd` +- **Forgejo**: `https://cnoe.localtest.me:8443/gitea` +- **Keycloak**: `https://cnoe.localtest.me:8443/keycloak` + +## Usage Examples + +### Use Case 1: Platform Bootstrap + +Initial bootstrapping of a new platform instance: + +```bash +idpbuilder create \ + --use-path-routing \ + --package-dir https://github.com/cnoe-io/stacks//ref-implementation \ + --log-level debug + +# Workflow: +# 1. Creates Kind cluster +# 2. Installs ingress-nginx +# 3. Clones and installs ArgoCD +# 4. Installs Forgejo +# 5. Waits for core services +# 6. Creates technical users +# 7. Configures Git repositories +# 8. Installs remaining stacks via ArgoCD +``` + +After approximately 10 minutes, the platform is fully deployed. + +### Use Case 2: Adding New Platform Components + +Add new platform components via ArgoCD: + +```bash +# Create ArgoCD Application for new component +cat <}} + +### Platform Bootstrap Sequence + +The idpbuilder executes the following workflow: + +1. Create Kind Kubernetes cluster +2. Install ingress-nginx controller +3. Install ArgoCD +4. Install Forgejo Git server +5. Wait for services to be ready +6. Create technical users in Forgejo +7. Create repository for platform state in Forgejo +8. Push platform stacks to Forgejo +9. Create ArgoCD Applications for all stacks +10. ArgoCD takes over continuous synchronization + +### Deployment Architecture + +The platform is deployed in different namespaces: + +- `argocd`: ArgoCD and its components +- `gitea`: Forgejo Git server +- `keycloak`: Identity and access management +- `observability`: Prometheus, Grafana, etc. +- `ingress-nginx`: Ingress controller + +## Configuration + +### idpbuilder Configuration + +Key configuration options for idpbuilder: + +```bash +# Path-based routing (recommended for local development) +idpbuilder create --use-path-routing + +# Custom package directory +idpbuilder create --package-dir /path/to/custom/packages + +# Custom Kind cluster config +idpbuilder create --kind-config custom-kind.yaml + +# Enable debug logging +idpbuilder create --log-level debug +``` + +### ArgoCD Configuration + +Important ArgoCD configurations for platform orchestration: + +```yaml +# argocd-cm ConfigMap +data: + # Enable automatic sync + application.instanceLabelKey: argocd.argoproj.io/instance + + # Repository credentials + repositories: | + - url: https://github.com/cnoe-io/stacks + name: cnoe-stacks + type: git + + # Resource exclusions + resource.exclusions: | + - apiGroups: + - cilium.io + kinds: + - CiliumIdentity +``` + +### Platform Stack Configuration + +Configuration of platform stacks via Kustomize: + +```yaml +# kustomization.yaml +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +namespace: platform-system + +resources: + - argocd-app.yaml + - forgejo-app.yaml + - keycloak-app.yaml + +patches: + - target: + kind: Application + patch: |- + - op: add + path: /spec/syncPolicy + value: + automated: + prune: true + selfHeal: true +``` + +## Troubleshooting + +### Platform not reachable + +**Problem**: After `idpbuilder create`, platform services are not reachable + +**Solution**: + +```bash +# 1. Check if all pods are running +kubectl get pods -A + +# 2. Check ArgoCD application status +kubectl get applications -n argocd + +# 3. Check ingress +kubectl get ingress -A + +# 4. Verify DNS resolution +nslookup cnoe.localtest.me + +# 5. Check idpbuilder logs +idpbuilder get logs +``` + +### ArgoCD Applications not synchronized + +**Problem**: ArgoCD Applications show status "OutOfSync" + +**Solution**: + +```bash +# 1. Check application details +argocd app get + +# 2. View sync status +argocd app sync --dry-run + +# 3. Force sync +argocd app sync --force + +# 4. Check for errors in ArgoCD logs +kubectl logs -n argocd deployment/argocd-application-controller +``` + +### Git Repository Connection Issues + +**Problem**: ArgoCD cannot access Git repository + +**Solution**: + +```bash +# 1. Verify repository configuration +argocd repo list + +# 2. Test connection +argocd repo get https://your-git-repo + +# 3. Check credentials +kubectl get secret -n argocd + +# 4. Re-add repository with correct credentials +argocd repo add https://your-git-repo \ + --username \ + --password +``` + +## Platform Orchestration Best Practices + +Based on experience and [CNCF Guidelines](https://tag-app-delivery.cncf.io/whitepapers/platforms/): + +1. **Start Simple**: Begin with the CNOE reference stack, extend gradually +2. **Automate Everything**: Manual platform changes are anti-pattern +3. **Monitor Continuously**: Use observability tools for platform health +4. **Document Well**: Platform documentation is essential for adoption +5. **Version Everything**: All platform components should be versioned +6. **Test Changes**: Platform updates should be tested in non-prod +7. **Plan for Disaster**: Backup and disaster recovery strategies are important +8. **Use Stacks**: Organize platform components as reusable stacks + +## Status + +**Maturity**: Production (for CNOE Reference Implementation) + +**Stability**: Stable + +**Support**: Community Support via CNOE Community + +## Additional Resources + +### CNOE Resources + +- [CNOE Official Website](https://cnoe.io/) +- [CNOE GitHub Organization](https://github.com/cnoe-io) +- [CNOE Reference Implementation](https://github.com/cnoe-io/stacks) +- [CNOE Community Slack](https://cloud-native.slack.com/archives/C05TN9WFN5S) + +### Platform Engineering + +- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) +- [Platform Engineering Maturity Model](https://tag-app-delivery.cncf.io/whitepapers/platform-eng-maturity-model/) +- [Team Topologies](https://teamtopologies.com/) - Organizational patterns + +### GitOps + +- [GitOps Working Group](https://opengitops.dev/) +- [ArgoCD Best Practices](https://argo-cd.readthedocs.io/en/stable/user-guide/best_practices/) +- [GitOps Principles](https://opengitops.dev/) + +### CNOE Stacks + +- [Understanding CNOE Stacks](https://cnoe.io/docs/reference-implementation/stacks/) +- [Creating Custom Stacks](https://cnoe.io/docs/reference-implementation/customization/) diff --git a/content/en/docs/edp/deployment/basics/application.md b/content/en/docs/edp/deployment/basics/application.md new file mode 100644 index 0000000..8151aa1 --- /dev/null +++ b/content/en/docs/edp/deployment/basics/application.md @@ -0,0 +1,776 @@ +--- +title: "Application Orchestration" +linkTitle: "Application Orchestration" +weight: 30 +description: > + Application deployment via CI/CD pipelines and GitOps - Orchestrating application deployments +--- + +## Overview + +Application Orchestration deals with the automation of application deployment and lifecycle management. It encompasses the entire workflow from source code to running application in production. + +In the context of IPCEI-CIS, Application Orchestration includes: + +- **CI/CD Pipelines**: Automated build, test, and deployment pipelines +- **GitOps Deployment**: Declarative application deployment via ArgoCD +- **Progressive Delivery**: Canary deployments, blue-green deployments +- **Application Configuration**: Environment-specific configuration management +- **Golden Paths**: Standardized deployment templates and workflows + +### Target Audience + +Application Orchestration is primarily for: + +- **Application Developers**: Teams developing and deploying applications +- **DevOps Teams**: Teams responsible for deployment automation +- **Product Teams**: Teams responsible for application lifecycle + +## Key Features + +### Automated CI/CD Pipelines + +Forgejo Actions provides GitHub Actions-compatible CI/CD: + +- **Build Automation**: Automatic building of container images +- **Test Automation**: Automated unit, integration, and E2E tests +- **Security Scanning**: Vulnerability scanning of dependencies and images +- **Artifact Publishing**: Publishing to container registries +- **Deployment Triggering**: Automatic deployment after successful build + +### GitOps-based Deployment + +ArgoCD enables declarative application deployment: + +- **Declarative Configuration**: Applications defined as Kubernetes manifests +- **Automated Sync**: Automatic synchronization between Git and cluster +- **Rollback Capability**: Easy rollback to previous versions +- **Multi-Environment**: Consistent deployment across Dev/Test/Prod +- **Health Monitoring**: Continuous monitoring of application health + +### Progressive Delivery + +Support for advanced deployment strategies: + +- **Canary Deployments**: Gradual rollout to subset of users +- **Blue-Green Deployments**: Zero-downtime deployments with instant rollback +- **A/B Testing**: Traffic splitting for feature testing +- **Feature Flags**: Dynamic feature enablement without deployment + +### Configuration Management + +Flexible configuration for different environments: + +- **Environment Variables**: Configuration via environment variables +- **ConfigMaps**: Kubernetes-native configuration +- **Secrets Management**: Secure handling of sensitive data +- **External Secrets**: Integration with external secret stores (Vault, etc.) + +## Purpose in EDP + +Application Orchestration is the core of developer experience in IPCEI-CIS Edge Developer Platform. + +### Developer Self-Service + +Developers can deploy applications independently: + +- **Self-Service Deployment**: No dependency on operations team +- **Standardized Workflows**: Clear, documented deployment processes +- **Fast Feedback**: Quick feedback through automated pipelines +- **Environment Parity**: Consistent behavior across all environments + +### Quality and Security + +Automated checks ensure quality and security: + +- **Automated Testing**: All changes are automatically tested +- **Security Scans**: Vulnerability scanning of dependencies and images +- **Policy Enforcement**: Automated policy checks (OPA, Kyverno) +- **Compliance**: Auditability of all deployments + +### Efficiency and Productivity + +Automation increases team efficiency: + +- **Faster Time-to-Market**: Faster deployment of new features +- **Reduced Manual Work**: Automation of repetitive tasks +- **Fewer Errors**: Fewer manual mistakes through automation +- **Better Collaboration**: Clear interfaces between Dev and Ops + +## Repository + +**Forgejo**: [forgejo.org](https://forgejo.org/) + +**Forgejo Actions**: [Forgejo Actions Documentation](https://forgejo.org/docs/latest/user/actions/) + +**ArgoCD**: [argoproj.github.io/cd](https://argoproj.github.io/cd/) + +## Getting Started + +### Prerequisites + +- **Forgejo Account**: Access to Forgejo instance +- **Kubernetes Cluster**: Target cluster for deployments +- **ArgoCD Access**: Access to ArgoCD instance +- **Git**: For repository management + +### Quick Start: Application Deployment + +1. **Create Application Repository** + +```bash +# Create new repository in Forgejo +git init my-application +cd my-application + +# Add application code and Dockerfile +cat > Dockerfile <}} + +### CI/CD Pipeline Architecture + +Typical Forgejo Actions pipeline stages: + +1. **Checkout**: Clone source code +2. **Build**: Compile application and dependencies +3. **Test**: Run unit and integration tests +4. **Security Scan**: Scan dependencies and code for vulnerabilities +5. **Build Image**: Create container image +6. **Push Image**: Push to container registry +7. **Update Manifests**: Update Kubernetes manifests with new image tag +8. **Notify**: Send notifications on success/failure + +## Configuration + +### Forgejo Actions Configuration + +Example for Node.js application: + +```yaml +name: CI/CD Pipeline + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main ] + +env: + REGISTRY: registry.example.com + IMAGE_NAME: ${{ github.repository }} + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: '18' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Run tests + run: npm test + + - name: Run linter + run: npm run lint + + security: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + scan-type: 'fs' + scan-ref: '.' + format: 'sarif' + output: 'trivy-results.sarif' + + build-and-push: + needs: [test, security] + runs-on: ubuntu-latest + if: github.event_name == 'push' + steps: + - uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to Registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_PASSWORD }} + + - name: Extract metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + type=sha,prefix={{branch}}- + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + cache-from: type=gha + cache-to: type=gha,mode=max +``` + +### ArgoCD Application Configuration + +Complete configuration example: + +```yaml +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: my-application + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + + source: + repoURL: https://forgejo.example.com/myteam/my-application + targetRevision: main + path: k8s/overlays/production + + # Kustomize options + kustomize: + version: v5.0.0 + images: + - my-app=registry.example.com/my-app:v1.2.3 + + destination: + server: https://kubernetes.default.svc + namespace: production + + # Sync policy + syncPolicy: + automated: + prune: true # Delete resources not in Git + selfHeal: true # Override manual changes + allowEmpty: false # Don't delete everything on empty repo + + syncOptions: + - CreateNamespace=true + - PruneLast=true + - RespectIgnoreDifferences=true + + retry: + limit: 5 + backoff: + duration: 5s + factor: 2 + maxDuration: 3m + + # Ignore differences (avoid sync loops) + ignoreDifferences: + - group: apps + kind: Deployment + jsonPointers: + - /spec/replicas # Ignore if HPA manages replicas +``` + +## Troubleshooting + +### Pipeline Fails + +**Problem**: Forgejo Actions pipeline fails + +**Solution**: + +```bash +# 1. Check pipeline logs in Forgejo UI +# Navigate to: Repository → Actions → Select failed run + +# 2. Check runner status +# In Forgejo: Site Admin → Actions → Runners + +# 3. Check runner logs +kubectl logs -n forgejo-runner deployment/act-runner + +# 4. Test pipeline locally with act +act -l # List available jobs +act -j build # Run specific job +``` + +### ArgoCD Application OutOfSync + +**Problem**: Application shows "OutOfSync" status + +**Solution**: + +```bash +# 1. Check differences +argocd app diff my-application + +# 2. View sync status details +argocd app get my-application + +# 3. Manual sync +argocd app sync my-application + +# 4. Hard refresh (ignore cache) +argocd app sync my-application --force + +# 5. Check for ignored differences +argocd app get my-application --show-operation +``` + +### Application Deployment Fails + +**Problem**: Application pod crashes after deployment + +**Solution**: + +```bash +# 1. Check pod status +kubectl get pods -n production + +# 2. View pod logs +kubectl logs -n production deployment/my-application + +# 3. Describe pod for events +kubectl describe pod -n production + +# 4. Check resource limits +kubectl top pod -n production + +# 5. Rollback via ArgoCD +argocd app rollback my-application +``` + +### Image Pull Errors + +**Problem**: Kubernetes cannot pull container image + +**Solution**: + +```bash +# 1. Verify image exists +docker pull registry.example.com/my-app:v1.2.3 + +# 2. Check image pull secret +kubectl get secret -n production regcred + +# 3. Create image pull secret if missing +kubectl create secret docker-registry regcred \ + --docker-server=registry.example.com \ + --docker-username=user \ + --docker-password=password \ + -n production + +# 4. Reference secret in deployment +kubectl patch deployment my-application -n production \ + -p '{"spec":{"template":{"spec":{"imagePullSecrets":[{"name":"regcred"}]}}}}' +``` + +## Best Practices + +### Golden Path Templates + +Provide standardized templates for common use cases: + +1. **Web Application Template**: Node.js, Python, Go web services +2. **API Service Template**: RESTful API with OpenAPI +3. **Batch Job Template**: Kubernetes CronJob configurations +4. **Microservice Template**: Service mesh integration + +Example repository template structure: + +```text +application-template/ +├── .forgejo/ +│ └── workflows/ +│ ├── build.yaml +│ ├── test.yaml +│ └── deploy.yaml +├── k8s/ +│ ├── base/ +│ └── overlays/ +├── src/ +│ └── ... +├── Dockerfile +├── README.md +└── .gitignore +``` + +### Deployment Checklist + +Before deploying to production: + +- ✅ All tests passing +- ✅ Security scans completed +- ✅ Resource limits defined +- ✅ Health checks configured +- ✅ Monitoring and alerts set up +- ✅ Backup strategy defined +- ✅ Rollback plan documented +- ✅ Team notified about deployment + +### Configuration Management + +- Use ConfigMaps for non-sensitive configuration +- Use Secrets for sensitive data +- Use External Secrets Operator for vault integration +- Never commit secrets to Git +- Use environment-specific overlays (Kustomize) +- Document all configuration options + +## Status + +**Maturity**: Production + +**Stability**: Stable + +**Support**: Internal Platform Team + +## Additional Resources + +### Forgejo + +- [Forgejo Documentation](https://forgejo.org/docs/latest/) +- [Forgejo Actions Guide](https://forgejo.org/docs/latest/user/actions/) +- [Forgejo API Reference](https://forgejo.org/docs/latest/api/) + +### ArgoCD + +- [ArgoCD Documentation](https://argo-cd.readthedocs.io/) +- [ArgoCD Best Practices](https://argo-cd.readthedocs.io/en/stable/user-guide/best_practices/) +- [ArgoCD Sync Waves](https://argo-cd.readthedocs.io/en/stable/user-guide/sync-waves/) + +### GitOps + +- [GitOps Principles](https://opengitops.dev/) +- [GitOps Patterns](https://www.gitops.tech/) +- [Kubernetes Deployment Strategies](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy) + +### CI/CD + +- [GitHub Actions Documentation](https://docs.github.com/en/actions) (Forgejo Actions compatible) +- [Docker Best Practices](https://docs.docker.com/develop/dev-best-practices/) +- [Container Security Best Practices](https://kubernetes.io/docs/concepts/security/pod-security-standards/) diff --git a/content/en/docs/edp/deployment/basics/orchestration.md b/content/en/docs/edp/deployment/basics/orchestration.md new file mode 100644 index 0000000..b8df19e --- /dev/null +++ b/content/en/docs/edp/deployment/basics/orchestration.md @@ -0,0 +1,224 @@ +--- +title: Platform Orchestration +linkTitle: Platform Orchestration +weight: 1 +description: > + Orchestration in the context of Platform Engineering - coordinating infrastructure, platform, and application delivery. +--- + +## Overview + +Orchestration in the context of Platform Engineering refers to the coordinated automation and management of infrastructure, platform, and application components throughout their entire lifecycle. It is a fundamental concept that bridges the gap between declarative specifications (what should be deployed) and actual execution (how it is deployed). + +## The Role of Orchestration in Platform Engineering + +Platform Engineering has emerged as a discipline to improve developer experience and reduce cognitive load on development teams ([CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/)). Orchestration is the central mechanism that enables this vision: + +1. **Automation of Complex Workflows**: Orchestration coordinates multiple steps and dependencies automatically +2. **Consistency and Reproducibility**: Guaranteed, repeatable deployments across different environments +3. **Self-Service Capabilities**: Developers can independently orchestrate resources and deployments +4. **Governance and Compliance**: Centralized control over policies and best practices + +### What Does Orchestration Do? + +Orchestration systems perform the following tasks: + +- **Workflow Coordination**: Coordination of complex, multi-step deployment processes +- **Dependency Management**: Resolution and management of dependencies between components +- **State Management**: Continuous monitoring and reconciliation between desired and actual state +- **Resource Provisioning**: Automatic provisioning of infrastructure and services +- **Configuration Management**: Management of configurations across different environments +- **Health Monitoring**: Monitoring the health of deployed resources + +## Three Layers of Orchestration + +In modern Platform Engineering, we distinguish three fundamental layers of orchestration: + +### [Infrastructure Orchestration](../infrastructure/) + +Infrastructure Orchestration deals with the lowest level - the physical and virtual infrastructure layer. This includes: + +- Provisioning of compute, network, and storage resources +- Cloud resource management (VMs, networking, storage) +- Infrastructure-as-Code deployment (Terraform, etc.) +- Bare metal and hypervisor management + +**Target Audience**: Infrastructure Engineers, Cloud Architects + +**Note**: Detailed documentation for Infrastructure Orchestration is maintained separately. + +More details: [Infrastructure Orchestration →](../infrastructure/) + +### [Platform Orchestration](../otc/) + +Platform Orchestration focuses on deploying and managing the platform itself - the services and tools that development teams use. This includes: + +- Installation and configuration of Kubernetes clusters +- Deployment of platform services (GitOps tools, Observability, Security) +- Management of platform components via Stacks +- Multi-cluster orchestration + +**Target Audience**: Platform Engineering Teams, SRE Teams + +**In IPCEI-CIS**: Platform orchestration is realized using the CNOE stack concept with ArgoCD and Forgejo. + +More details: [Platform Orchestration →](../otc/) + +### [Application Orchestration](application/) + +Application Orchestration concentrates on the deployment and lifecycle management of applications running on the platform. This includes: + +- Deployment of microservices and containerized applications +- CI/CD pipeline orchestration +- Configuration management and secrets handling +- Application health monitoring and auto-scaling + +**Target Audience**: Application Developers, DevOps Engineers + +**In IPCEI-CIS**: Application orchestration uses Forgejo pipelines for CI/CD and ArgoCD for GitOps-based deployment. + +More details: [Application Orchestration →](application/) + +## GitOps as Orchestration Paradigm + +A central approach in modern platform orchestration solutions is **GitOps**. GitOps uses Git repositories as the single source of truth for declarative infrastructure and applications: + +- **Declarative Approach**: The desired state is defined in Git +- **Automatic Synchronization**: Controllers monitor Git and reconcile the live state +- **Audit Trail**: All changes are traceable in Git history +- **Rollback Capability**: Easy rollback through Git revert + +### Continuous Reconciliation + +An important concept is **continuous reconciliation**: + +1. The orchestrator monitors both the source (Git) and the target (e.g., Kubernetes cluster) +2. Deviations trigger automatic corrective actions +3. Health checks validate that the desired state has been achieved +4. Drift detection warns of unexpected changes + +## Orchestration Tools in IPCEI-CIS + +Within the IPCEI-CIS platform, we utilize the [CNOE (Cloud Native Operational Excellence)](https://cnoe.io/) stack concept with the following orchestration components: + +### ArgoCD + +- **Continuous Delivery** for Kubernetes based on GitOps +- Synchronizes Kubernetes manifests from Git repositories +- Supports Helm Charts, Kustomize, Jsonnet, and plain YAML +- Multi-cluster deployment capabilities +- Application Sets for parameterized deployments + +**Role in IPCEI-CIS**: ArgoCD is the central component for GitOps-based deployment management. After the initial bootstrapping phase, ArgoCD takes over the technical coordination of all components. + +### Forgejo + +- **Git Repository Management** and source control +- **CI/CD Pipelines** via Forgejo Actions (GitHub Actions compatible) +- **Developer Portal Capabilities** (initially planned, project discontinued) +- Package registry and artifact management +- Integration with ArgoCD for GitOps workflows + +**Role in IPCEI-CIS**: Forgejo serves as the Git repository host and CI/CD engine. It was initially planned as a developer portal (similar to Backstage's role in other stacks) but this aspect was not fully realized before project completion. + +**Note on Backstage**: In typical CNOE implementations, Backstage serves as the developer portal providing golden paths through software templates. IPCEI-CIS initially planned to use Forgejo for this purpose but the project concluded before full implementation. + +### Terraform + +- **Infrastructure-as-Code** provisioning +- Multi-cloud resource management +- State management for infrastructure +- Integration with Forgejo pipelines for automated deployment + +**Role in IPCEI-CIS**: Terraform handles infrastructure provisioning at the infrastructure orchestration layer, integrated into automated workflows via Forgejo pipelines. + +### CNOE Stacks Concept + +- **Modular Platform Components** bundled as stacks +- Reusable, composable platform building blocks +- Version-controlled stack definitions +- GitOps-based stack deployment via ArgoCD + +**Role in IPCEI-CIS**: The stacks concept from CNOE provides the structural foundation for platform orchestration, enabling modular deployment and management of platform components. + +## The Orchestration Workflow + +A typical orchestration workflow in the IPCEI-CIS platform: + +{{< likec4-view view="orchestration_workflow" title="Orchestration Workflow" >}} + +**Workflow Steps**: + +1. **Definition**: Developer defines application/infrastructure as code +2. **Commit**: Changes are committed to Forgejo Git repository +3. **CI Pipeline**: Forgejo Actions build, test, and package the application +4. **Sync**: ArgoCD detects changes and triggers deployment +5. **Provision**: Terraform orchestrates required cloud resources (if needed) +6. **Deploy**: Application is deployed to Kubernetes +7. **Monitor**: Continuous monitoring and health checks +8. **Reconcile**: Automatic correction on drift detection + +## Benefits of Coordinated Orchestration + +The integration of infrastructure, platform, and application orchestration provides crucial advantages: + +- **Reduced Complexity**: Developers don't need to know all infrastructure details +- **Faster Time-to-Market**: Automated workflows accelerate deployments +- **Consistency**: Standardized patterns across all teams +- **Governance**: Central policies are automatically enforced +- **Scalability**: Platform teams can support many application teams +- **Self-Service**: Developers can provision services independently +- **Audit and Compliance**: Complete traceability through Git history + +## Best Practices + +Successful orchestration follows proven principles ([Platform Engineering Principles](https://platformengineering.org/blog/what-is-platform-engineering)): + +1. **Platform as a Product**: Treat the platform as a product with focus on user experience +2. **Self-Service First**: Enable developers to use services autonomously +3. **Documentation**: Comprehensive documentation of golden paths +4. **Feedback Loops**: Continuous improvement through user feedback +5. **Thin Platform Layer**: Use managed services where possible instead of building everything +6. **Progressive Disclosure**: Offer different abstraction levels +7. **Focus on Common Problems**: Solve recurring problems centrally +8. **Treat Glue as Valuable**: Integration of different tools is valuable +9. **Clear Mission**: Define clear goals and responsibilities + +## Avoiding Anti-Patterns + +Common mistakes in platform orchestration ([How to fail at Platform Engineering](https://www.cncf.io/blog/2024/03/08/how-to-fail-at-platform-engineering/)): + +- **Product Misfit**: Building platform without involving developers +- **Overly Complex Design**: Too many features and unnecessary complexity +- **Swiss Knife Syndrome**: Trying to solve all problems with one tool +- **Insufficient Documentation**: Missing or outdated documentation +- **Siloed Development**: Platform and development teams working in isolation +- **Stagnant Platform**: Platform not continuously evolved + +## Sub-Components + +The orchestration component includes the following sub-areas: + +- **[Infrastructure Orchestration](infrastructure/)**: Low-level infrastructure deployment and provisioning +- **[Platform Orchestration](platform/)**: Platform-level component deployment via Stacks +- **[Application Orchestration](application/)**: Application-level deployment and CI/CD +- **[Stacks](stacks/)**: Reusable component bundles and compositions + +## Further Resources + +### Fundamentals + +- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) - Comprehensive paper on Platform Engineering +- [Platform Engineering Definition](https://platformengineering.org/blog/what-is-platform-engineering) - What is Platform Engineering? +- [Team Topologies](https://teamtopologies.com/) - Organizational structures for modern teams + +### GitOps + +- [GitOps Principles](https://opengitops.dev/) - Official GitOps principles +- [ArgoCD Documentation](https://argo-cd.readthedocs.io/) - ArgoCD documentation + +### Tools + +- [CNOE.io](https://cnoe.io/) - Cloud Native Operational Excellence Framework +- [Forgejo](https://forgejo.org/) - Self-hosted Git service with CI/CD +- [Terraform](https://www.terraform.io/) - Infrastructure as Code tool diff --git a/content/en/docs/edp/deployment/infrastructure/_index.md b/content/en/docs/edp/deployment/infrastructure/_index.md new file mode 100644 index 0000000..fb5ea99 --- /dev/null +++ b/content/en/docs/edp/deployment/infrastructure/_index.md @@ -0,0 +1,201 @@ +--- +title: Infrastructure as Code +linkTitle: Infrastructure as Code +weight: 10 +description: > + Managing infrastructure through machine-readable definition files rather than manual configuration +--- + +## Overview + +Infrastructure as Code (IaC) is the practice of managing and provisioning infrastructure through code rather than manual processes. Instead of clicking through web consoles or running one-off commands, infrastructure is defined in version-controlled files that can be executed repeatedly to produce identical environments. + +This approach treats infrastructure with the same rigor as application code: it's versioned, reviewed, tested, and deployed through automated pipelines. + +## Why Infrastructure as Code? + +### The problem with manual infrastructure + +Traditional infrastructure management faces several challenges: + +- **Inconsistency**: Manual steps vary between operators and environments +- **Undocumented**: Critical knowledge exists only in operators' heads +- **Error-Prone**: Human mistakes during repetitive tasks +- **Slow**: Manual provisioning takes hours or days +- **Untrackable**: No audit trail of what changed, when, or why +- **Irreproducible**: Difficulty recreating environments exactly + +### The IaC solution + +Infrastructure as Code addresses these challenges by making infrastructure: + +**Declarative** - Describe the desired state, not the steps to achieve it. The IaC tool handles the implementation details. + +**Versioned** - Every infrastructure change is committed to Git, providing complete history and the ability to rollback. + +**Automated** - Infrastructure deploys through pipelines without human intervention, eliminating manual errors. + +**Testable** - Infrastructure changes can be validated before production deployment. + +**Documented** - The code itself is the documentation, always current and accurate. + +**Reproducible** - The same code produces identical infrastructure every time, across all environments. + +## Core Concepts + +### Declarative vs imperative + +**Imperative** approaches specify the exact steps: "Create a server, then install software, then configure networking." + +**Declarative** approaches specify the desired outcome: "I need a server with this software and network configuration." The IaC tool determines the necessary steps. + +Most modern IaC tools use the declarative approach, making them more maintainable and resilient. + +### State Management + +IaC tools maintain a "state" - a record of what infrastructure currently exists. When you change your code and re-run the tool, it compares the desired state (your code) with the actual state (what exists) and makes only the necessary changes. + +This enables: +- **Drift detection** - Identify manual changes made outside IaC +- **Safe updates** - Modify only what changed +- **Dependency management** - Update resources in the correct order + +### Idempotency + +Running the same IaC code multiple times produces the same result. If infrastructure already matches the code, the tool makes no changes. This property is called idempotency and is essential for reliable automation. + +## Infrastructure as Code in EDP + +The Edge Developer Platform uses IaC extensively: + +### Terraform and Terragrunt + +[Terraform](terraform/) is our primary IaC tool for provisioning cloud resources. We use [Terragrunt](https://terragrunt.gruntwork.io/) as an orchestration layer to manage multiple Terraform modules and reduce code duplication. + +Our implementation includes: +- **[infra-catalogue](https://edp.buildth.ing/DevFW/infra-catalogue)** - Reusable infrastructure components (modules, units, and stacks) +- **[infra-deploy](https://edp.buildth.ing/DevFW/infra-deploy)** - Full environment definitions using catalogue components + +### Platform stacks + +We organize infrastructure into [stacks](stacks/) - coherent bundles of related components: + +- **[Core Stack](stacks/core/)** - Essential platform services +- **[Forgejo Stack](stacks/forgejo/)** - Source control and CI/CD +- **[Observability Stack](stacks/observability/)** - Monitoring and logging +- **[OTC Stack](stacks/otc/)** - Cloud provider resources +- **[Coder Stack](stacks/coder/)** - Development environments +- **[Terralist Stack](stacks/terralist/)** - Terraform registry + +Each stack is defined as code, versioned independently, and can be deployed across different environments. + +### GitOps integration + +Our IaC integrates with GitOps principles: + +1. All infrastructure definitions live in Git repositories +2. Changes go through code review processes +3. Automated pipelines deploy infrastructure +4. ArgoCD continuously reconciles Kubernetes resources with Git state + +This creates an auditable, automated, and reliable deployment process. + +## Benefits realized + +### Consistency across environments + +Development, testing, and production environments are deployed from the same code. This eliminates the "works on my machine" problem at the infrastructure level. + +### Rapid environment provisioning + +A complete EDP environment can be provisioned in minutes rather than days. This enables: +- Quick disaster recovery +- Easy creation of test environments +- Fast onboarding for new team members + +### Reduced operational risk + +Code review catches infrastructure errors before deployment. Automated testing validates changes. Version control enables instant rollback if problems occur. + +### Knowledge sharing + +Infrastructure configuration is explicit and discoverable in code. New team members can understand the platform by reading the repository rather than shadowing experienced operators. + +### Compliance and auditability + +Every infrastructure change is tracked in Git history with author, timestamp, and reason. This provides audit trails required for compliance and simplifies troubleshooting. + +## Getting started + +To work with EDP's Infrastructure as Code: + +1. **Understand Terraform basics** - Review [Terraform documentation](https://developer.hashicorp.com/terraform) +2. **Explore infra-catalogue** - Browse [infra-catalogue](https://edp.buildth.ing/DevFW/infra-catalogue) to understand available components +3. **Review existing deployments** - Examine [infra-deploy](https://edp.buildth.ing/DevFW/infra-deploy) to see how components are composed +4. **Follow the Terraform guide** - See [Terraform-based deployment](terraform/) for detailed instructions + +## Best Practices + +Based on our experience building and operating IaC: + +**Version everything** - All infrastructure code belongs in version control. No exceptions. + +**Keep it simple** - Start with basic modules. Add abstraction only when duplication becomes painful. + +**Test before production** - Deploy infrastructure changes to test environments first. + +**Use meaningful commit messages** - Explain why changes were made, not just what changed. + +**Review all changes** - Infrastructure changes should go through the same review process as application code. + +**Document assumptions** - Use code comments to explain non-obvious decisions. + +**Manage secrets securely** - Never commit credentials to version control. Use secret management tools. + +**Plan for drift** - Regularly compare actual infrastructure with code state to detect manual changes. + +## Challenges and limitations + +Infrastructure as Code is powerful but has challenges: + +**Learning curve** - Teams need to learn IaC tools and practices. Initial productivity may decrease. + +**State management complexity** - State files must be stored securely and accessed by multiple team members. State corruption can cause serious issues. + +**Provider limitations** - Not all infrastructure can be managed as code. Some resources require manual configuration. + +**Breaking changes** - Poorly written code can destroy infrastructure. Safeguards and testing are essential. + +**Tool lock-in** - Switching IaC tools (e.g., Terraform to Pulumi) requires rewriting infrastructure code. + +Despite these challenges, the benefits far outweigh the costs for any infrastructure of meaningful complexity. + +## Why we invest in IaC + +The IPCEI-CIS Edge Developer Platform requires reliable, reproducible infrastructure. Manual provisioning cannot meet these requirements at scale. + +By investing in Infrastructure as Code: +- We can deploy complete environments consistently +- Platform engineers can focus on improvement rather than repetitive tasks +- Infrastructure changes are transparent and auditable +- New team members can contribute confidently +- Disaster recovery becomes routine rather than heroic + +Our IaC tools ([infra-catalogue](https://edp.buildth.ing/DevFW/infra-catalogue) and [infra-deploy](https://edp.buildth.ing/DevFW/infra-deploy)) embody these principles and enable the platform's reliability. + +## Additional Resources + +### Terraform Ecosystem +- [Terraform Documentation](https://developer.hashicorp.com/terraform) +- [OpenTofu](https://opentofu.org/) - Community-driven Terraform fork +- [Terragrunt](https://terragrunt.gruntwork.io/) - Terraform orchestration + +### Infrastructure as Code Concepts +- [Infrastructure as Code book](https://www.oreilly.com/library/view/infrastructure-as-code/9781098114664/) by Kief Morris +- [Terraform Best Practices](https://www.terraform-best-practices.com/) +- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) + +### EDP-Specific Resources +- [Terraform-based deployment](terraform/) - Detailed deployment guide +- [Infrastructure Stacks](stacks/) - Reusable component bundles +- [Platform Orchestration](../) - How IaC fits into overall deployment diff --git a/content/en/docs/edp/deployment/infrastructure/deploy-pipeline-success.png b/content/en/docs/edp/deployment/infrastructure/deploy-pipeline-success.png new file mode 100644 index 0000000..82d1e64 Binary files /dev/null and b/content/en/docs/edp/deployment/infrastructure/deploy-pipeline-success.png differ diff --git a/content/en/docs/edp/deployment/infrastructure/deploy-pipeline.png b/content/en/docs/edp/deployment/infrastructure/deploy-pipeline.png new file mode 100644 index 0000000..07e6956 Binary files /dev/null and b/content/en/docs/edp/deployment/infrastructure/deploy-pipeline.png differ diff --git a/content/en/docs/edp/deployment/infrastructure/stacks/_index.md b/content/en/docs/edp/deployment/infrastructure/stacks/_index.md new file mode 100644 index 0000000..d4b44fb --- /dev/null +++ b/content/en/docs/edp/deployment/infrastructure/stacks/_index.md @@ -0,0 +1,519 @@ +--- +title: "Stacks" +linkTitle: "Stacks" +weight: 40 +description: > + Platform-level component provisioning via Stacks +--- + +## Overview + +The `stacks` and `stacks-instances` repositories form the core of a GitOps-based system for provisioning Edge Developer Platforms (EDP). They implement a template-instance pattern that enables the deployment of reusable platform components across different environments. The concept of "stacks" originates from the CNOE.io project (Cloud Native Operational Excellence), which can be traced through the evolutionary development from `edpbuilder` (derived from CNOE.io's `EDPbuilder`) to `infra-deploy`. + +## Key Features of the Everything-as-Code Stacks Approach + +This declarative Stacks provisioning architecture is characterized by the following central properties: + +### Complete Code Declaration + +**Platform as Code**: All Kubernetes resources, Helm charts, and application manifests are declaratively versioned as YAML files. The entire platform topology is traceable in Git. + +**Configuration as Code**: Environment-specific configurations are generated through template hydration, not manually edited. Gomplate transforms generic templates into concrete configurations. + +### GitOps-Native Architecture + +**Single Source of Truth**: Git is the sole source of truth for the desired state of all infrastructure and platform components. + +**Declarative State Management**: ArgoCD continuously synchronizes the actual state with the desired state defined in Git. Deviations are automatically corrected. + +**Audit Trail**: Every change to infrastructure or platform is documented through Git commits, with author, timestamp, and change description. + +**Pull-based Deployment**: ArgoCD pulls changes from Git, rather than external systems requiring push access to the cluster. This significantly increases security. + +### Template-Instance Separation + +**DRY Principle (Don't Repeat Yourself)**: Common platform components are defined once as templates and reused for all environments. + +**Environment Promotion**: New environments can be quickly created through template hydration. Consistency across environments is guaranteed. + +**Centralized Maintainability**: Updates to stack definitions can be made centrally in the `stacks` repository and then selectively rolled out to instances. + +**Customization Points**: Despite reuse, environment-specific customizations remain possible through values files and manifest overlays. + +### Modular Composition + +**Stack-based Architecture**: Platform capabilities are organized into independent, reusable stacks (core, otc, forgejo, observability). + +**Selective Deployment**: Through the `STACKS` environment variable, only required components can be deployed selectively. + +**Mix-and-Match**: Different stack combinations yield different platform profiles (Development, Production, Observability clusters). + +**Pluggable Components**: New stacks can be added without modifying existing ones. + +### Environment Agnosticism + +**Cloud Provider Abstraction**: Templates are formulated generically. Provider-specific details are introduced through hydration. + +**Multi-Cloud Ready**: The architecture supports various cloud providers (currently OTC, historically KIND, extensible to AWS/Azure/GCP). + +**Environment Variables as Interface**: All environment-specific aspects are controlled through clearly defined environment variables. + +**Portable Definitions**: Stack definitions can be ported between environments and even cloud providers. + +### Self-Healing and Drift Detection + +**Automated Reconciliation**: ArgoCD detects deviations from the desired state and corrects them automatically. + +**Continuous Monitoring**: Permanent monitoring of cluster state compared to Git definition. + +**Declarative State Recovery**: After failures or manual changes, the declared state is automatically restored. + +**Sync Policies**: Configurable sync strategies (automated, manual, with pruning) per application. + +### Secrets Management + +**Secrets Outside Git**: Sensitive data is not stored in Git but generated at runtime or injected from secret stores. + +**Generated Credentials**: Passwords, tokens, and secrets are generated during deployment and directly created as Kubernetes Secrets. + +**Sealed Secrets Ready**: The architecture is compatible with Sealed Secrets or External Secrets Operators for encrypted secret storage in Git. + +**Credential Rotation**: Secrets can be regenerated through re-deployment. + +### Observability and Auditability + +**Declarative Monitoring**: Observability stacks are part of the Platform-as-Code definition. + +**Deployment History**: Complete history of all deployments and changes through Git log. + +**ArgoCD UI**: Graphical representation of sync status and application topology. + +**Infrastructure Events**: Terraform state changes and Terragrunt outputs document infrastructure changes. + +### Idempotence and Reproducibility + +**Idempotent Operations**: Repeated execution of the same declaration leads to the same result without side effects. + +**Deterministic Builds**: Same input parameters (Git commit + environment variables) produce identical environments. + +**Disaster Recovery**: Complete environments can be rebuilt from code without restoring backups. + +**Testing in Production-Like Environments**: Development and staging environments are code-identical to production, only with different parameter values. + +## Purpose in EDP + +A 'stack' is the declarative description for the platform provisionning in an EDP installation. + +## Repository + +**Code**: +* [Stacks Templates Repo](https://edp.buildth.ing/DevFW-CICD/stacks) +* [Stacks Instances Repo, used for ArgoCD Gitops](https://edp.buildth.ing/DevFW-CICD/stacks-instances) +* [EDP Stacks Deployment mechanism](https://edp.buildth.ing/DevFW/infra-deploy) + +**Documentation**: [Link to component-specific documentation] +* [Outdated: The former 'edpbuilder' as script, derived from CNOE's 'idpbuilder](https://edp.buildth.ing/DevFW/edpbuilder) + + +## The stacks Repository + +### Purpose and Structure + +The `stacks` repository contains reusable template definitions for platform components. It serves as a central library of building blocks from which Edge Developer Platforms can be composed. + +``` +stacks/ +└── template/ + ├── edfbuilder.yaml + ├── registry/ + │ ├── core.yaml + │ ├── otc.yaml + │ ├── forgejo.yaml + │ ├── observability.yaml + │ └── observability-client.yaml + └── stacks/ + ├── core/ + ├── otc/ + ├── forgejo/ + ├── observability/ + └── observability-client/ +``` + +### Components + +**edfbuilder.yaml**: The central bootstrap definition. This is an ArgoCD Application that references the `registry` directory and serves as the entry point for the entire platform provisioning. + +**registry/**: Contains ArgoCD ApplicationSets that function as a meta-layer. Each file defines a category of stacks (e.g., core, forgejo, observability) and references the corresponding subdirectory in `stacks/`. + +**stacks/**: The actual platform components, organized into thematic categories: + +- **core**: Fundamental components such as ArgoCD, CloudNative PostgreSQL, Dex (SSO) +- **otc**: Cloud-provider-specific components for Open Telekom Cloud (cert-manager, ingress-nginx, StorageClasses) +- **forgejo**: Git server and CI runners +- **observability**: Central observability components (Grafana, Victoria Metrics Stack) +- **observability-client**: Client-side metrics collection for non-observability clusters + +Each stack consists of: +- YAML definitions (primarily ArgoCD Applications) +- `values.yaml` files for Helm charts +- `manifests/` directories for additional Kubernetes resources + +### Templating Mechanism + +The templates use Gomplate with delimiter syntax `{{{ }}}` for environment variables: + +```yaml +repoURL: "https://{{{ .Env.CLIENT_REPO_DOMAIN }}}/{{{ .Env.CLIENT_REPO_ORG_NAME }}}" +path: "{{{ .Env.CLIENT_REPO_ID }}}/{{{ .Env.DOMAIN }}}/stacks/core" +``` + +These placeholders are replaced with environment-specific values during the deployment phase. + +## The stacks-instances Repository + +### Purpose and Structure + +The `stacks-instances` repository contains the materialized, environment-specific configurations. While `stacks` provides the blueprints, `stacks-instances` contains the actual deployment definitions for concrete environments. + +``` +stacks-instances/ +└── otc/ + ├── osctest.t09.de/ + │ ├── edfbuilder.yaml + │ ├── registry/ + │ └── stacks/ + ├── backup-test-manu.t09.de/ + │ ├── edfbuilder.yaml + │ ├── registry/ + │ └── stacks/ + └── ... +``` + +### Organizational Principle + +The structure follows the schema `{cloud-provider}/{domain}/`: + +- **cloud-provider**: Identifies the cloud environment (e.g., `otc` for Open Telekom Cloud) +- **domain**: The fully qualified domain name of the environment (e.g., `osctest.t09.de`) + +Each environment replicates the structure of `stacks/template`, but with resolved template variables and environment-specific customizations. + +### Usage by ArgoCD + +ArgoCD synchronizes directly from this repository. Applications reference paths such as: + +```yaml +source: + path: "otc/osctest.t09.de/stacks/core" + repoURL: "https://edp.buildth.ing/DevFW-CICD/stacks-instances" + targetRevision: HEAD +``` + +This enables true GitOps: every change to the configurations is traceable through Git commits and automatically synchronized by ArgoCD in the target environment. + +## The infra-deploy Repository + +### Role in the Overall Architecture + +The `infra-deploy` repository is the orchestration layer that coordinates both infrastructure and platform provisioning. It represents the evolution of `edpbuilder`, which was originally derived from the CNOE.io project's `EDPbuilder`. + +### Two-Phase Provisioning + +**Phase 1: Infrastructure Provisioning** + +Uses Terragrunt Stacks (experimental feature) to provision cloud resources: + +``` +infra-deploy/ +├── root.hcl +├── non-prod/ +│ ├── tenant.hcl +│ ├── dns_zone/ +│ │ ├── terragrunt.hcl +│ │ ├── terragrunt.stack.hcl +│ │ └── terragrunt.values.hcl +│ └── testing/ +├── prod/ +└── templates/ + └── forgejo/ + ├── terragrunt.hcl + └── terragrunt.stack.hcl +``` + +Terragrunt Stacks provision: +- VPC and network segments +- Kubernetes clusters (CCE on OTC) +- Managed databases (RDS PostgreSQL) +- Load balancers and DNS entries +- Security groups and other cloud resources + +**Phase 2: Platform Provisioning** + +The script `scripts/edp-install.sh` executes the following steps: + +1. **Template Hydration**: + - Checkout of the `stacks` repository + - Execution of Gomplate to resolve template variables + - Generation of environment-specific manifests + +2. **Instance Management**: + - Checkout/update of the `stacks-instances` repository + - During CI execution: commit and push of the new instance + +3. **Secrets Management**: + - Generation of credentials (database passwords, SSO secrets, API tokens) + - Creation of Kubernetes Secrets + +4. **Bootstrap**: + - Helm-based installation of ArgoCD + - Application of `edfbuilder.yaml` or selective registry entries + +5. **GitOps Handover**: + - ArgoCD takes over further synchronization from `stacks-instances` + - Continuous monitoring and self-healing + +### GitHub Actions Workflows + +The `.github/workflows/` directory contains three central workflows: + +**deploy.yaml**: Complete deployment pipeline with the following inputs: +- Cluster environment and tenant (prod/non-prod) +- Node flavor and availability zone +- Stack selection (core, otc, forgejo, observability, etc.) +- Infra-catalogue version + +**plan.yaml**: Terraform/Terragrunt plan preview without execution + +**destroy.yaml**: Controlled teardown of environments + +## Deployment Workflow + +The complete provisioning process proceeds as follows: + +1. **Initiation**: GitHub Actions workflow is triggered (manually or automatically) + +2. **Environment Preparation**: + ```bash + export CLUSTER_ENVIRONMENT=qa-stage + cd scripts + ./new-otc-env.sh # Creates Terragrunt configuration if new + ``` + +3. **Infrastructure Provisioning**: + ```bash + ./ensure-cluster.sh otc + # Internally executes: + # - ./ensure-otc-cluster.sh + # - terragrunt stack run apply + ``` + +4. **Platform Provisioning**: + ```bash + ./edp-install.sh + # Executes: + # - Checkout of stacks + # - Gomplate hydration + # - Checkout/update of stacks-instances + # - Secrets generation + # - ArgoCD installation + # - Bootstrap of stacks + ``` + +5. **ArgoCD Synchronization**: ArgoCD continuously reads from `stacks-instances` and synchronizes the desired state + +## The CNOE.io Stacks Concept + +The term "stacks" originates from the Cloud Native Operational Excellence (CNOE.io) project. The core idea is the composition of platform capabilities from modular, reusable building blocks. + +### Principles + +**Modularity**: Each stack is a self-contained unit with clear dependencies + +**Composability**: Stacks can be freely combined to create different platform profiles + +**Declarativeness**: All configurations are declarative and GitOps-capable + +**Environment-agnostic**: Templates are generic; environment specifics are introduced through hydration + +### Stack Selection and Combinations + +The environment variable `STACKS` controls which components are deployed: + +```bash +# Complete EDP with central observability +STACKS="core,otc,forgejo,observability" + +# Application cluster with client-side observability +STACKS="core,otc,forgejo,observability-client" + +# Minimal development environment +STACKS="core,forgejo" +``` + +## Data Flow and Dependencies + +``` +┌─────────────────┐ +│ GitHub Actions │ +│ (deploy.yaml) │ +└────────┬────────┘ + │ + ├─> Phase 1: Infrastructure + │ ┌──────────────────┐ + │ │ infra-deploy │ + │ │ (Terragrunt) │ + │ └────────┬─────────┘ + │ │ + │ v + │ ┌──────────────────┐ + │ │ Cloud Provider │ + │ │ (OTC) │ + │ │ - VPC │ + │ │ - K8s Cluster │ + │ │ - RDS │ + │ └──────────────────┘ + │ + └─> Phase 2: Platform + ┌──────────────────┐ + │ edp-install.sh │ + └────────┬─────────┘ + │ + ├─> Checkout: stacks (Templates) + │ └─> Gomplate Hydration + │ + ├─> Checkout/Update: stacks-instances + │ + ├─> Secrets Generation + │ + ├─> ArgoCD Installation (Helm) + │ + └─> Bootstrap (edfbuilder.yaml) + │ + v + ┌────────────────┐ + │ ArgoCD │ + └────────┬───────┘ + │ + └─> Continuous Synchronization + from stacks-instances + │ + v + ┌──────────────┐ + │ Kubernetes │ + │ Cluster │ + └──────────────┘ +``` + +## Historical Context: edpbuilder to infra-deploy + +The evolution from `edpbuilder` to `infra-deploy` demonstrates the maturation of the architecture: + +**edpbuilder** (Origin): +- Directly derived from CNOE.io's `EDPbuilder` +- Focus on local KIND clusters +- Manual configuration +- Monolithic structure + +**infra-deploy** (Current): +- Production-ready for cloud deployments (OTC) +- Terragrunt-based infrastructure orchestration +- CI/CD integration via GitHub Actions +- Clear separation between infrastructure and platform +- Template-instance separation through stacks/stacks-instances + +## Technical Particularities + +### Gomplate Templating + +Gomplate is used with custom delimiters `{{{ }}}` to avoid conflicts with Helm templating (`{{ }}`): + +```bash +gomplate --input-dir="stacks/template" \ + --output-dir="work" \ + --left-delim "{{{" \ + --right-delim "}}}" +``` + +### Terragrunt Experimental Stacks + +The use of Terragrunt Stacks requires the experimental flag: + +```bash +export TG_EXPERIMENT_MODE=true +terragrunt stack run apply +``` + +This enables hierarchical organization of Terraform modules with dependency management. + +### ArgoCD ApplicationSets + +The registry pattern uses ArgoCD Applications that reference directories: + +```yaml +source: + path: "otc/osctest.t09.de/stacks/core" +``` + +ArgoCD automatically detects all YAML files in the path and synchronizes them as Applications. + +## Best Practices and Patterns + +**Immutable Infrastructure**: Every environment is fully defined in Git + +**Secrets Outside Git**: Sensitive data is generated at runtime or injected from secret stores + +**Progressive Rollouts**: New environments start as template instances, then are individually customized + +**Version Pinning**: Critical components (Helm charts, Terragrunt modules) are pinned to specific versions + +**Namespace Isolation**: Each stack deploys into dedicated namespaces + +**Self-Healing**: ArgoCD's automated sync policy enables automatic drift correction + +## Usage Examples + +### Deployment by Pipeline + +The platform deployment is the second part of the EDP installtaion. First there is the infrastructure setup, which ends with a created kubernetes cluster. Then the platform provisioning by the defined stacks is done. Both is runnable by the `deploy`pipelien in `infra-deploy`: + + +![alt text](./deploy-action.png) + +The green pipeline looks liek this: + +![alt text](./green-deploy-pipeline.png) + +### Local setup with 'kind' + +It's also possible to just run the second part, the stcks provisionning. Then you need to have a kubernetes cluster already running, which is e.g. feasable by a local kind-cluster. + +So imagine, you want to to the stacks 'core,observability' on your local machine. Then you can run the local entzr + +```bash +# have kind insatlled +# in /infra-deploy + +# provide a kind cluster +kind delete clusters --all +./scripts/ensure-kind-cluster.sh -r + +# provide some emnv vars +export TERRAFORM=/bin/bash +export LOADBALANCER_ID=ABC +export DOMAIN=ABC +export DOMAIN_GITEA=ABC +export OS_ACCESS_KEY=ABC +export OS_SECRET_KEY=ABC +export STACKS=core,observability + +# deploy +./scripts/edp-install.sh +``` + +## Status + +**Maturity**: [Production] + +## Additional Resources + +* [CNOE](https://cnoe.io/docs/overview/cnoe) diff --git a/content/en/docs/edp/deployment/infrastructure/stacks/coder.md b/content/en/docs/edp/deployment/infrastructure/stacks/coder.md new file mode 100644 index 0000000..31c8794 --- /dev/null +++ b/content/en/docs/edp/deployment/infrastructure/stacks/coder.md @@ -0,0 +1,368 @@ +--- +title: "Coder" +linkTitle: "Coder" +weight: 20 +description: > + Cloud Development Environments for secure, scalable remote development +--- + +## Overview + +Coder is an enterprise cloud development environment (CDE) platform that provisions secure, consistent remote development workspaces. As part of the Edge Developer Platform, Coder enables developers to work in standardized, on-demand environments defined as code, moving development workloads from local machines to centrally managed infrastructure. + +The Coder stack deploys a self-hosted Coder instance with PostgreSQL database backend, integrated authentication, and edge connectivity capabilities. + +## Key Features + +* **Infrastructure as Code Workspaces**: Development environments defined using Terraform templates +* **IDE Agnostic**: Supports browser-based IDEs, VS Code, JetBrains IDEs, and other development tools +* **Secure Remote Access**: Workspaces run in controlled cloud or on-premises infrastructure +* **On-Demand Provisioning**: Developers create ephemeral or persistent workspaces as needed +* **AI Agent Support**: Secure execution environment for AI coding assistants +* **Template-Based Deployment**: Reusable workspace templates ensure consistency across teams + +## Repository + +**Code**: [Coder Stack Templates](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/coder) + +**Documentation**: +* [Coder Official Documentation](https://coder.com/docs) +* [Coder GitHub Repository](https://github.com/coder/coder) + +## Getting Started + +### Prerequisites + +* Kubernetes cluster with ArgoCD installed (provided by `core` stack) +* CloudNativePG operator (provided by `core` stack) +* Ingress controller configured (provided by `otc` stack) +* cert-manager for TLS certificate management (provided by `otc` stack) +* Domain name configured via `DOMAIN_GITEA` environment variable + +### Quick Start + +The Coder stack is deployed as part of the EDP installation process: + +1. **Trigger Deploy Pipeline** + - Go to [Infra Deploy Pipeline](https://edp.buildth.ing/DevFW/infra-deploy/actions?workflow=deploy.yaml) + - Click on Run workflow + - Enter a name in "Select environment directory to deploy". This must be DNS Compatible. (if you enter `test-me` then the domain will be `coder.test-me.t09.de`) + - Execute workflow + +2. **ArgoCD Synchronization** + ArgoCD automatically deploys: + - PostgreSQL database cluster (CloudNativePG) + - Coder application (Helm chart v2.28.3) + - Ingress configuration with TLS + - Database credentials and edge connectivity secrets + +### Verification + +Verify the Coder deployment: + +```bash +# Check ArgoCD application status +kubectl get application coder -n argocd + +# Verify Coder pods are running +kubectl get pods -n coder + +# Check PostgreSQL cluster status +kubectl get cluster coder-db -n coder + +# Verify ingress configuration +kubectl get ingress -n coder +``` + +Access the Coder web interface at `https://coder.{DOMAIN_GITEA}`. + +## Architecture + +### Component Architecture + +The Coder stack consists of: + +**Coder Control Plane**: +- Web application for workspace management +- API server for workspace provisioning +- Terraform executor for infrastructure operations + +**PostgreSQL Database**: +- Single-instance CloudNativePG cluster +- Stores workspace metadata, templates, and user data +- Managed database user with `coder-db-user` secret +- 10Gi persistent storage on `csi-disk` storage class + +**Networking**: +- ClusterIP service for internal communication +- Nginx ingress with TLS termination +- cert-manager integration for automatic certificate management + +## Configuration + +### Environment Variables + +The Coder application is configured through environment variables in `values.yaml`: + +**Access Configuration**: +- `CODER_ACCESS_URL`: Public URL where Coder is accessible (`https://coder.{DOMAIN_GITEA}`) + +**Database Configuration**: +- `CODER_PG_CONNECTION_URL`: PostgreSQL connection string (from `coder-db-user` secret) + +**Authentication**: +- `CODER_OAUTH2_GITHUB_DEFAULT_PROVIDER_ENABLE`: GitHub OAuth integration (disabled by default) + +**Edge Connectivity**: +- `EDGE_CONNECT_ENDPOINT`: Edge connection endpoint (from `edge-credential` secret) +- `EDGE_CONNECT_USERNAME`: Edge authentication username +- `EDGE_CONNECT_PASSWORD`: Edge authentication password + +### Helm Chart Configuration + +Key Helm values configured in `stacks/coder/coder/values.yaml`: + +```yaml +coder: + env: + - name: CODER_ACCESS_URL + value: "https://coder.{DOMAIN_GITEA}" + - name: CODER_PG_CONNECTION_URL + valueFrom: + secretKeyRef: + name: coder-db-user + key: uri + + service: + type: ClusterIP + + ingress: + enable: true + className: nginx + host: "coder.{DOMAIN_GITEA}" + annotations: + cert-manager.io/cluster-issuer: main + tls: + enable: true + secretName: coder-tls-secret +``` + +**Important**: Do not override `CODER_HTTP_ADDRESS`, `CODER_TLS_ENABLE`, `CODER_TLS_CERT_FILE`, or `CODER_TLS_KEY_FILE` as these are managed by the Helm chart. + +### PostgreSQL Database Configuration + +Defined in `stacks/coder/coder/manifests/postgres.yaml`: + +**Cluster Specification**: +- 1 instance (single-node cluster) +- Primary update strategy: unsupervised +- Resource requests/limits: 1 CPU, 1Gi memory +- Storage: 10Gi using `csi-disk` storage class + +**Managed Roles**: +- User: `coder` +- Permissions: createdb, login +- Password stored in `coder-db-user` secret + +### ArgoCD Application Configuration + +**Registry Application** (`template/registry/coder.yaml`): +- Name: `coder-reg` +- Manages the Coder stack directory +- Automated sync with prune and self-heal enabled + +**Stack Application** (`template/stacks/coder/coder.yaml`): +- Name: `coder` +- Deploys Coder Helm chart v2.28.3 from `https://helm.coder.com/v2` +- Automated self-healing enabled +- Creates namespace automatically +- References values from `stacks-instances` repository + +## Usage Examples + +### Creating a Workspace Template + +After deployment, create workspace templates using Terraform: + +1. **Access Coder Dashboard** + ```bash + open https://coder.${DOMAIN_GITEA} + ``` + +2. **Create Template Repository** + Create a Git repository with a Terraform template: + ```hcl + # main.tf + terraform { + required_providers { + coder = { + source = "coder/coder" + version = "~> 0.12" + } + kubernetes = { + source = "hashicorp/kubernetes" + version = "~> 2.23" + } + } + } + + resource "coder_agent" "main" { + os = "linux" + arch = "amd64" + } + + resource "kubernetes_pod" "main" { + metadata { + name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}" + namespace = "coder-workspaces" + } + spec { + container { + name = "dev" + image = "codercom/enterprise-base:ubuntu" + command = ["sh", "-c", coder_agent.main.init_script] + } + } + } + ``` + +3. **Push Template to Coder** + ```bash + coder templates push kubernetes-dev + ``` + +### Provisioning a Development Workspace + +```bash +# Create a new workspace from template +coder create my-workspace --template kubernetes-dev + +# Connect via SSH +coder ssh my-workspace + +# Open in VS Code +coder open my-workspace --ide vscode + +# Stop workspace when not in use +coder stop my-workspace + +# Delete workspace +coder delete my-workspace +``` + +### Integrating with Platform Services + +Access EDP platform services from Coder workspaces: + +```bash +# Connect to platform PostgreSQL +psql "postgresql://myuser@postgres.core.svc.cluster.local:5432/mydb" + +# Access Forgejo +git clone https://forgejo.${DOMAIN_GITEA}/myorg/myrepo.git + +# Query platform metrics +curl https://grafana.${DOMAIN}/api/datasources +``` + +## Integration Points + +* **Core Stack**: Depends on ArgoCD for deployment orchestration and CloudNativePG operator for database management +* **OTC Stack**: Requires ingress-nginx controller and cert-manager for external access and TLS +* **Forgejo Stack**: Workspace templates can integrate with platform Git repositories +* **Observability Stack**: Workspace metrics can be collected by platform observability tools +* **Dex (SSO)**: Can be configured for centralized authentication (requires additional configuration) + +## Troubleshooting + +### Coder Pods Not Starting + +**Problem**: Coder pods remain in `Pending` or `CrashLoopBackOff` state + +**Solution**: +1. Check PostgreSQL cluster status: + ```bash + kubectl get cluster coder-db -n coder + kubectl describe cluster coder-db -n coder + ``` + +2. Verify database credentials secret: + ```bash + kubectl get secret coder-db-user -n coder + kubectl get secret coder-db-user -n coder -o jsonpath='{.data.uri}' | base64 -d + ``` + +3. Check Coder logs: + ```bash + kubectl logs -n coder -l app=coder + ``` + +### Cannot Access Coder UI + +**Problem**: Coder web interface is not accessible at configured URL + +**Solution**: +1. Verify ingress configuration: + ```bash + kubectl get ingress -n coder + kubectl describe ingress -n coder + ``` + +2. Check TLS certificate status: + ```bash + kubectl get certificate -n coder + kubectl describe certificate coder-tls-secret -n coder + ``` + +3. Verify DNS resolution: + ```bash + nslookup coder.${DOMAIN_GITEA} + ``` + +### Database Connection Errors + +**Problem**: Coder cannot connect to PostgreSQL database + +**Solution**: +1. Verify PostgreSQL cluster health: + ```bash + kubectl get pods -n coder -l cnpg.io/cluster=coder-db + kubectl logs -n coder -l cnpg.io/cluster=coder-db + ``` + +2. Check database and user creation: + ```bash + kubectl get database coder -n coder + kubectl exec -it coder-db-1 -n coder -- psql -U postgres -c "\l" + kubectl exec -it coder-db-1 -n coder -- psql -U postgres -c "\du" + ``` + +3. Test connection string: + ```bash + kubectl exec -it coder-db-1 -n coder -- psql "$(kubectl get secret coder-db-user -n coder -o jsonpath='{.data.uri}' | base64 -d)" + ``` + +### Workspace Provisioning Fails + +**Problem**: Workspaces fail to provision from templates + +**Solution**: +1. Check Coder provisioner logs: + ```bash + kubectl logs -n coder -l app=coder --tail=100 + ``` + +2. Verify Kubernetes permissions for workspace creation: + ```bash + kubectl auth can-i create pods --as=system:serviceaccount:coder:coder -n coder-workspaces + ``` + +3. Review template Terraform configuration for errors + +## Additional Resources + +* [Coder Documentation](https://coder.com/docs) +* [Coder Templates Repository](https://github.com/coder/coder) +* [CloudNativePG Documentation](https://cloudnative-pg.io/) +* [ArgoCD Documentation](https://argo-cd.readthedocs.io/) +* [Coder Blog: 2025 Launch Week](https://coder.com/blog/launch-week-2025-instant-infrastructure) diff --git a/content/en/docs/edp/deployment/infrastructure/stacks/core.md b/content/en/docs/edp/deployment/infrastructure/stacks/core.md new file mode 100644 index 0000000..a6d9fd7 --- /dev/null +++ b/content/en/docs/edp/deployment/infrastructure/stacks/core.md @@ -0,0 +1,480 @@ +--- +title: "Core" +linkTitle: "Core" +weight: 10 +description: > + Essential infrastructure components for GitOps, database management, and single sign-on +--- + +## Overview + +The Core stack provides foundational infrastructure components required by all other Edge Developer Platform stacks. It establishes the base layer for continuous deployment, database services, and centralized authentication, enabling a secure, scalable platform architecture. + +The Core stack deploys ArgoCD for GitOps orchestration, CloudNativePG for PostgreSQL database management, and Dex for OpenID Connect single sign-on capabilities. + +## Key Features + +* **GitOps Continuous Deployment**: ArgoCD manages declarative infrastructure and application deployments +* **Database Operator**: CloudNativePG provides enterprise-grade PostgreSQL clusters for platform services +* **Single Sign-On**: Dex offers centralized OIDC authentication across platform components +* **Automated Synchronization**: Self-healing deployments with automatic drift correction +* **Role-Based Access Control**: Integrated RBAC for secure platform administration +* **TLS Certificate Management**: Automated certificate provisioning and renewal + +## Repository + +**Code**: [Core Stack Templates](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/core) + +**Documentation**: +* [ArgoCD Documentation](https://argo-cd.readthedocs.io/) +* [CloudNativePG Documentation](https://cloudnative-pg.io/) +* [Dex Documentation](https://dexidp.io/docs/) + +## Getting Started + +### Prerequisites + +* Kubernetes cluster (1.24+) +* kubectl configured with cluster access +* Ingress controller (nginx recommended) +* cert-manager for TLS certificate management +* Domain names configured for platform services + +### Quick Start + +The Core stack is deployed as the foundation of the EDP installation: + +1. **Trigger Deploy Pipeline** + - Go to [Infra Deploy Pipeline](https://edp.buildth.ing/DevFW/infra-deploy/actions?workflow=deploy.yaml) + - Click on Run workflow + - Enter a name in "Select environment directory to deploy". This must be DNS Compatible. (if you enter `test-me` then domains will be `argocd.test-me.t09.de`, `dex.test-me.t09.de`) + - Execute workflow + +2. **ArgoCD Bootstrap** + The deployment automatically provisions: + - ArgoCD control plane in `argocd` namespace + - CloudNativePG operator in `cloudnative-pg` namespace + - Dex identity provider in `dex` namespace + - Ingress configurations with TLS certificates + - OIDC authentication integration + +### Verification + +Verify the Core stack deployment: + +```bash +# Check ArgoCD installation +kubectl get application -n argocd +kubectl get pods -n argocd + +# Verify CloudNativePG operator +kubectl get pods -n cloudnative-pg +kubectl get crd | grep cnpg.io + +# Check Dex deployment +kubectl get pods -n dex +kubectl get ingress -n dex + +# Verify ingress configurations +kubectl get ingress -n argocd +``` + +Access ArgoCD at `https://argocd.{DOMAIN}` and authenticate via Dex SSO. Or use username `admin` and the secret inside of kubernetes `argocd/argocd-initial-admin-secret` as password `kubectl get secret -n argocd argocd-initial-admin-secret -ojson | jq -r .data.password | base64 -d`. + +## Architecture + +### Component Architecture + +The Core stack establishes a three-tier foundation: + +**ArgoCD Control Plane**: +- Application management and GitOps reconciliation +- Multi-repository tracking with automated sync +- Resource health monitoring and drift detection +- Integrated RBAC with SSO authentication + +**CloudNativePG Operator**: +- PostgreSQL cluster lifecycle management +- Automated backup and recovery +- High availability and failover +- Storage provisioning via CSI drivers + +**Dex Identity Provider**: +- OpenID Connect authentication service +- Multiple connector support (Forgejo/Gitea, LDAP, SAML) +- Static client registration for platform services +- Token issuance and validation + +### Networking + +**Ingress Architecture**: +- nginx ingress controller for external access +- TLS termination with cert-manager integration +- Domain-based routing for platform services + +**Kubernetes Services**: +- Internal service communication via ClusterIP +- DNS-based service discovery +- Network policies for security segmentation + +## Configuration + +### ArgoCD Configuration + +Deployed via Helm chart v9.1.5 with custom values in `stacks/core/argocd/values.yaml`: + +**OIDC Authentication**: +```yaml +configs: + cm: + url: "https://{DOMAIN_ARGOCD}" + oidc.config: | + name: Forgejo + issuer: https://{DOMAIN_DEX} + clientID: controller-argocd-dex + clientSecret: $dex-controller-argocd-dex:dex-controller-argocd-dex + requestedScopes: ["openid", "profile", "email", "groups"] +``` + +**RBAC Policy**: +```yaml +policy.csv: | + g, DevFW, role:admin +``` + +**Server Settings**: +- Insecure mode enabled (TLS handled by ingress) +- Annotation-based resource tracking +- 60-second reconciliation timeout +- Resource exclusions for ProviderConfigUsage and CiliumIdentity + +### CloudNativePG Configuration + +Deployed via Helm chart v0.26.1 with values in `stacks/core/cloudnative-pg/values.yaml`: + +**Operator Settings**: +- Namespace: `cloudnative-pg` +- Automated database cluster provisioning +- Custom resource definitions for Cluster, Database, and Pooler resources + +**Storage Configuration**: +- Uses `csi-disk` storage class by default +- PVC provisioning for PostgreSQL data +- Backup storage integration (S3-compatible) + +### Dex Configuration + +Deployed via Helm chart v0.23.0 with values in `stacks/core/dex/values.yaml`: + +**Issuer Configuration**: +```yaml +config: + issuer: https://{DOMAIN_DEX} + storage: + type: memory # Use persistent storage for production + oauth2: + skipApprovalScreen: true + alwaysShowLoginScreen: false +``` + +**Forgejo Connector**: +```yaml +connectors: + - type: gitea + id: forgejo + name: Forgejo + config: + clientID: $FORGEJO_CLIENT_ID + clientSecret: $FORGEJO_CLIENT_SECRET + redirectURI: https://{DOMAIN_DEX}/callback + baseURL: https://edp.buildth.ing + orgs: + - name: DevFW +``` + +**Static OAuth2 Clients**: +- ArgoCD: `controller-argocd-dex` +- Grafana: `controller-grafana-dex` + +### Environment Variables + +Core stack services use the following environment variables: + +**Domain Configuration**: +- `DOMAIN_ARGOCD`: ArgoCD web interface URL +- `DOMAIN_DEX`: Dex authentication service URL +- `DOMAIN_GITEA`: Forgejo/Gitea repository URL +- `DOMAIN_GRAFANA`: Grafana observability dashboard URL + +**Repository Configuration**: +- `CLIENT_REPO_ID`: Repository identifier for stack configurations +- `CLIENT_REPO_DOMAIN`: Git repository domain +- `CLIENT_REPO_ORG_NAME`: Organization name for stack instances + +## Usage Examples + +### Managing Applications with ArgoCD + +Access and manage applications through ArgoCD: + +```bash +# Login to ArgoCD CLI +argocd login argocd.${DOMAIN} --sso + +# List all applications +argocd app list + +# Get application status +argocd app get coder + +# Sync application manually +argocd app sync coder + +# View application logs +argocd app logs coder + +# Diff application state +argocd app diff coder +``` + +### Creating a PostgreSQL Database + +Deploy a PostgreSQL cluster using CloudNativePG: + +```yaml +# database-cluster.yaml +apiVersion: postgresql.cnpg.io/v1 +kind: Cluster +metadata: + name: app-db + namespace: my-app +spec: + instances: 3 + storage: + size: 20Gi + storageClass: csi-disk + postgresql: + parameters: + max_connections: "100" + shared_buffers: "256MB" + bootstrap: + initdb: + database: appdb + owner: appuser +``` + +Apply the configuration: + +```bash +kubectl apply -f database-cluster.yaml + +# Check cluster status +kubectl get cluster app-db -n my-app +kubectl get pods -n my-app -l cnpg.io/cluster=app-db + +# Get connection credentials +kubectl get secret app-db-app -n my-app -o jsonpath='{.data.password}' | base64 -d +``` + +### Configuring SSO for Applications + +Add OAuth2 applications to Dex for SSO integration: + +```yaml +# Add to dex values.yaml +staticClients: + - id: my-app-client + redirectURIs: + - 'https://myapp.{DOMAIN}/callback' + name: 'My Application' + secretEnv: MY_APP_CLIENT_SECRET +``` + +Configure the application to use Dex: + +```bash +# Application OIDC configuration +OIDC_ISSUER=https://dex.${DOMAIN} +OIDC_CLIENT_ID=my-app-client +OIDC_CLIENT_SECRET=${MY_APP_CLIENT_SECRET} +OIDC_REDIRECT_URI=https://myapp.${DOMAIN}/callback +``` + +### Deploying Applications via ArgoCD + +Create an ArgoCD Application manifest: + +```yaml +# my-app.yaml +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: my-app + namespace: argocd +spec: + project: default + source: + repoURL: 'https://github.com/myorg/my-app' + targetRevision: main + path: k8s + destination: + server: 'https://kubernetes.default.svc' + namespace: my-app + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true +``` + +Push it to [stacks instances](https://edp.buildth.ing/DevFW-CICD/stacks-instances) to be picked up by argo + +## Integration Points + +* **All Stacks**: Core stack is a prerequisite for all other EDP stacks +* **OTC Stack**: Provides ingress-nginx and cert-manager dependencies +* **Coder Stack**: Uses CloudNativePG for workspace database management +* **Forgejo Stack**: Integrates with Dex for SSO and ArgoCD for deployment +* **Observability Stack**: Uses Dex for Grafana authentication and ArgoCD for deployment +* **Provider Stack**: Deploys Terraform providers via ArgoCD + +## Troubleshooting + +### ArgoCD Not Accessible + +**Problem**: Cannot access ArgoCD web interface + +**Solution**: +1. Verify ingress configuration: + ```bash + kubectl get ingress -n argocd + kubectl describe ingress -n argocd + ``` + +2. Check ArgoCD server status: + ```bash + kubectl get pods -n argocd + kubectl logs -n argocd -l app.kubernetes.io/name=argocd-server + ``` + +3. Verify TLS certificate: + ```bash + kubectl get certificate -n argocd + kubectl describe certificate -n argocd + ``` + +4. Test DNS resolution: + ```bash + nslookup argocd.${DOMAIN} + ``` + +### Dex Authentication Failing + +**Problem**: SSO login fails or redirects incorrectly + +**Solution**: +1. Check Dex logs: + ```bash + kubectl logs -n dex -l app.kubernetes.io/name=dex + ``` + +2. Verify Forgejo connector configuration: + ```bash + kubectl get secret -n dex + kubectl get configmap -n dex dex -o yaml + ``` + +3. Test Dex issuer endpoint: + ```bash + curl https://dex.${DOMAIN}/.well-known/openid-configuration + ``` + +4. Verify OAuth2 client credentials match in both Dex and consuming application + +### CloudNativePG Operator Not Running + +**Problem**: PostgreSQL clusters fail to provision + +**Solution**: +1. Check operator status: + ```bash + kubectl get pods -n cloudnative-pg + kubectl logs -n cloudnative-pg -l app.kubernetes.io/name=cloudnative-pg + ``` + +2. Verify CRDs are installed: + ```bash + kubectl get crd | grep cnpg.io + kubectl describe crd clusters.postgresql.cnpg.io + ``` + +3. Check operator logs for errors: + ```bash + kubectl logs -n cloudnative-pg -l app.kubernetes.io/name=cloudnative-pg --tail=100 + ``` + +### Application Sync Failures + +**Problem**: ArgoCD applications remain out of sync or fail to deploy + +**Solution**: +1. Check application status: + ```bash + argocd app get + kubectl describe application -n argocd + ``` + +2. Review sync operation logs: + ```bash + argocd app logs + ``` + +3. Verify repository access: + ```bash + argocd repo list + argocd repo get + ``` + +4. Check for resource conflicts or missing dependencies: + ```bash + kubectl get events -n --sort-by='.lastTimestamp' + ``` + +### Database Connection Issues + +**Problem**: Applications cannot connect to CloudNativePG databases + +**Solution**: +1. Verify cluster is ready: + ```bash + kubectl get cluster -n + kubectl describe cluster -n + ``` + +2. Check database credentials secret: + ```bash + kubectl get secret -app -n + kubectl get secret -app -n -o yaml + ``` + +3. Test connection from a pod: + ```bash + kubectl run -it --rm psql-test --image=postgres:16 --restart=Never -- \ + psql "$(kubectl get secret -app -n -o jsonpath='{.data.uri}' | base64 -d)" + ``` + +4. Review PostgreSQL logs: + ```bash + kubectl logs -n -1 + ``` + +## Additional Resources + +* [ArgoCD Documentation](https://argo-cd.readthedocs.io/) +* [ArgoCD Best Practices](https://argo-cd.readthedocs.io/en/stable/user-guide/best_practices/) +* [CloudNativePG Documentation](https://cloudnative-pg.io/) +* [CloudNativePG Architecture](https://cloudnative-pg.io/documentation/current/architecture/) +* [Dex Documentation](https://dexidp.io/docs/) +* [Dex Connectors](https://dexidp.io/docs/connectors/) +* [OpenID Connect Specification](https://openid.net/connect/) diff --git a/content/en/docs/edp/deployment/infrastructure/stacks/deploy-action.png b/content/en/docs/edp/deployment/infrastructure/stacks/deploy-action.png new file mode 100644 index 0000000..836bd24 Binary files /dev/null and b/content/en/docs/edp/deployment/infrastructure/stacks/deploy-action.png differ diff --git a/content/en/docs/edp/deployment/infrastructure/stacks/forgejo.md b/content/en/docs/edp/deployment/infrastructure/stacks/forgejo.md new file mode 100644 index 0000000..b4b2ee1 --- /dev/null +++ b/content/en/docs/edp/deployment/infrastructure/stacks/forgejo.md @@ -0,0 +1,532 @@ +--- +title: "Forgejo" +linkTitle: "Forgejo" +weight: 30 +description: > + Self-hosted Git service with built-in CI/CD capabilities +--- + +## Overview + +Forgejo is a self-hosted Git service that provides repository hosting, code collaboration, and integrated CI/CD workflows. As part of the Edge Developer Platform, Forgejo serves as the central code repository and continuous integration system, offering a complete DevOps platform with Git hosting, issue tracking, and automated build pipelines. + +The Forgejo stack deploys a Forgejo server instance with PostgreSQL database backend, MinIO object storage, and Forgejo Runners for executing CI/CD workflows. + +## Key Features + +* **Git Repository Hosting**: Full-featured Git server with web interface for code management +* **Built-in CI/CD**: Forgejo Actions provide GitHub Actions-compatible workflow automation +* **Issue Tracking**: Integrated project management with issues, milestones, and pull requests +* **Container Registry**: Built-in Docker registry for container image storage +* **Code Review**: Pull request workflows with inline comments and approval processes +* **Scalable Runners**: Distributed runner architecture with Docker-in-Docker execution +* **S3 Object Storage**: MinIO integration for artifacts, LFS objects, and backups + +## Repository + +**Code**: [Forgejo Stack Templates](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/forgejo) + +**Documentation**: +* [Forgejo Official Documentation](https://forgejo.org/docs/latest/) +* [Forgejo Actions Documentation](https://forgejo.org/docs/latest/user/actions/) +* [Forgejo Helm Chart Repository](https://code.forgejo.org/forgejo-helm/forgejo-helm) + +## Getting Started + +### Prerequisites + +* Kubernetes cluster with ArgoCD installed (provided by `core` stack) +* CloudNativePG operator (provided by `core` stack) +* Ingress controller configured (provided by `otc` stack) +* cert-manager for TLS certificate management (provided by `otc` stack) +* Infrastructure deployed through [Infra Deploy](https://edp.buildth.ing/DevFW/infra-deploy) + +### Quick Start + +The Forgejo stack is deployed as part of the EDP installation process: + +1. **Trigger Deploy Pipeline** + - Go to [Infra Deploy Pipeline](https://edp.buildth.ing/DevFW/infra-deploy/actions?workflow=deploy.yaml) + - Click on Run workflow + - Enter a name in "Select environment directory to deploy". This must be DNS Compatible. (if you enter `test-me` then the domain will be `forgejo.test-me.t09.de`) + - Execute workflow + +2. **ArgoCD Synchronization** + ArgoCD automatically deploys: + - Forgejo server (Helm chart v12.0.0) + - PostgreSQL database cluster (CloudNativePG) + - Forgejo Runners with Docker-in-Docker execution + - Ingress configuration with TLS + - Database credentials and storage secrets + +### Verification + +Verify the Forgejo deployment: + +```bash +# Check ArgoCD applications status +kubectl get application forgejo-server -n argocd +kubectl get application forgejo-runner -n argocd + +# Verify Forgejo server pods are running +kubectl get pods -n gitea + +# Check PostgreSQL cluster status +kubectl get cluster -n gitea + +# Verify Forgejo runners are active +kubectl get pods -n gitea -l app=forgejo-runner + +# Verify ingress configuration +kubectl get ingress -n gitea +``` + +Access the Forgejo web interface at `https://{DOMAIN_GITEA}`. + +## Architecture + +### Component Architecture + +The Forgejo stack consists of: + +**Forgejo Server**: +- Web application for Git repository management +- API server for Git operations and CI/CD orchestration +- Issue tracker and project management interface +- Container registry for Docker images +- Artifact storage via MinIO object storage + +**Forgejo Runners**: +- 3-replica runner deployment for parallel job execution +- Docker-in-Docker (DinD) architecture for containerized builds +- Runner image: `code.forgejo.org/forgejo/runner:6.4.0` +- Build container: `docker:28.0.4-dind` +- Supports GitHub Actions-compatible workflows + +**Storage Architecture**: +- 200Gi persistent volume for Git repositories (GPSSD storage) +- OTC S3 object storage for LFS objects and artifacts +- Encrypted volumes using KMS key integration +- S3-compatible backup storage (100GB) + +**Networking**: +- SSH LoadBalancer service on port 32222 for Git operations +- HTTPS ingress with TLS termination for web interface +- Internal service communication via ClusterIP + +## Configuration + +### Forgejo Server Configuration + +The Forgejo server is configured through Helm values in `stacks/forgejo/forgejo-server/values.yaml`: + +**Application Settings**: +- `FORGEJO_IMAGE_TAG`: Forgejo container image version +- Application name: "EDP" +- Slogan: "Build your thing in minutes" +- User registration: Disabled by default +- Email notifications: Enabled + +**Storage Configuration**: +```yaml +persistence: + size: 200Gi + storageClass: csi-disk + annotations: + everest.io/crypt-key-id: "{KMS_KEY_ID}" + everest.io/disk-volume-type: GPSSD +``` + +**Database Configuration**: +Database credentials are sourced from Kubernetes secrets: +- `POSTGRES_HOST`: PostgreSQL hostname +- `POSTGRES_DB`: Database name +- `POSTGRES_USER`: Database username +- `POSTGRES_PASSWORD`: Database password +- SSL verification enabled + +**Object Storage**: +- Endpoint: `obs.eu-de.otc.t-systems.com` +- Credentials from `gitea/forgejo-cloud-credentials` secret +- Used for artifacts, LFS objects, and backups + +**External Services**: +- Redis for caching and session management +- Elasticsearch for issue indexing +- SMTP for email notifications + +**SSH Configuration**: +```yaml +service: + ssh: + type: LoadBalancer + port: 32222 +``` + +### Forgejo Runner Configuration + +Defined in `stacks/forgejo/forgejo-runner/dind-docker.yaml`: + +**Deployment Specification**: +- 3 replicas for parallel execution +- Runner version: 6.4.0 +- Docker DinD version: 28.0.4 + +**Runner Registration**: +- Offline registration using secret token +- Instance URL from configuration +- Predefined labels for Ubuntu 22.04 and latest + +**Container Configuration**: +```yaml +runner: + image: code.forgejo.org/forgejo/runner:6.4.0 + privileged: true + securityContext: + runAsUser: 0 + allowPrivilegeEscalation: true + +dind: + image: docker:28.0.4-dind + privileged: true + tlsCertDir: /certs +``` + +**Volume Management**: +- Docker certificates volume for TLS communication +- Runner data volume for registration and configuration +- Shared socket for container communication + +### ArgoCD Application Configuration + +**Server Application** (`template/stacks/forgejo/forgejo-server.yaml`): +- Name: `forgejo-server` +- Namespace: `gitea` +- Helm chart v12.0.0 from `https://code.forgejo.org/forgejo-helm/forgejo-helm.git` +- Automated self-healing enabled +- Values from `stacks-instances` repository + +**Runner Application** (`template/stacks/forgejo/forgejo-runner.yaml`): +- Name: `forgejo-runner` +- Namespace: `argocd` +- Deployment manifests from `stacks-instances` repository +- Automated sync with unlimited retries + +## Usage Examples + +### Creating Your First Repository + +After deployment, create and use Git repositories: + +1. **Access Forgejo Interface** + ```bash + open https://${DOMAIN_GITEA} + ``` + +2. **Create a New Repository** + - Click "+" icon in top right + - Select "New Repository" + - Enter repository name and description + - Choose visibility (public/private) + - Initialize with README if desired + +3. **Clone and Push Code** + ```bash + # Clone the repository + git clone https://${DOMAIN_GITEA}/myorg/myrepo.git + cd myrepo + + # Add your code + echo "# My Project" > README.md + git add README.md + git commit -m "Initial commit" + + # Push to Forgejo + git push origin main + ``` + +### Setting Up CI/CD with Forgejo Actions + +Create automated workflows using Forgejo Actions: + +1. **Create Workflow File** + ```bash + mkdir -p .forgejo/workflows + cat > .forgejo/workflows/build.yaml << 'EOF' + name: Build and Test + + on: + push: + branches: [main] + pull_request: + branches: [main] + + jobs: + build: + runs-on: ubuntu-22.04 + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: '1.21' + + - name: Build + run: go build -v ./... + + - name: Test + run: go test -v ./... + EOF + ``` + +2. **Commit and Push Workflow** + ```bash + git add .forgejo/workflows/build.yaml + git commit -m "Add CI/CD workflow" + git push origin main + ``` + +3. **Monitor Workflow Execution** + - Navigate to repository in Forgejo web interface + - Click "Actions" tab + - View workflow runs and logs + +### Building and Publishing Container Images + +Use Forgejo to build and store Docker images: + +```yaml +# .forgejo/workflows/docker.yaml +name: Build Container Image + +on: + push: + tags: ['v*'] + +jobs: + build: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build image + run: | + docker build -t forgejo.${DOMAIN_GITEA}/myorg/myapp:${GITHUB_REF_NAME} . + + - name: Login to registry + run: | + echo "${{ secrets.REGISTRY_PASSWORD }}" | \ + docker login forgejo.${DOMAIN_GITEA} -u "${{ secrets.REGISTRY_USER }}" --password-stdin + + - name: Push image + run: | + docker push forgejo.${DOMAIN_GITEA}/myorg/myapp:${GITHUB_REF_NAME} +``` + +### Using SSH for Git Operations + +Configure SSH access for Git operations: + +```bash +# Generate SSH key if needed +ssh-keygen -t ed25519 -C "your_email@example.com" + +# Add public key to Forgejo +# Navigate to: Settings -> SSH / GPG Keys -> Add Key + +# Configure SSH host +cat >> ~/.ssh/config << EOF +Host forgejo.${DOMAIN_GITEA} + Port 32222 + User git +EOF + +# Clone repository via SSH +git clone ssh://git@forgejo.${DOMAIN_GITEA}:32222/myorg/myrepo.git +``` + +## Integration Points + +* **Core Stack**: Depends on ArgoCD for deployment orchestration and CloudNativePG operator for database management +* **OTC Stack**: Requires ingress-nginx controller and cert-manager for external access and TLS +* **Coder Stack**: Development workspaces can clone repositories and trigger CI/CD workflows +* **Observability Stack**: Prometheus metrics collection enabled via ServiceMonitor +* **Dex (SSO)**: Can be configured for centralized authentication integration + +## Troubleshooting + +### Forgejo Server Not Starting + +**Problem**: Forgejo server pods remain in `Pending` or `CrashLoopBackOff` state + +**Solution**: +1. Check PostgreSQL cluster status: + ```bash + kubectl get cluster -n gitea + kubectl describe cluster -n gitea + ``` + +2. Verify database credentials: + ```bash + kubectl get secret -n gitea | grep postgres + ``` + +3. Check Forgejo server logs: + ```bash + kubectl logs -n gitea -l app=forgejo + ``` + +4. Verify MinIO connectivity: + ```bash + kubectl get secret minio-credential -n gitea + kubectl logs -n gitea -l app=forgejo | grep -i minio + ``` + +### Cannot Access Forgejo Web Interface + +**Problem**: Forgejo web interface is not accessible at configured URL + +**Solution**: +1. Verify ingress configuration: + ```bash + kubectl get ingress -n gitea + kubectl describe ingress -n gitea + ``` + +2. Check TLS certificate status: + ```bash + kubectl get certificate -n gitea + kubectl describe certificate -n gitea + ``` + +3. Verify DNS resolution: + ```bash + nslookup forgejo.${DOMAIN_GITEA} + ``` + +4. Test service connectivity: + ```bash + kubectl port-forward -n gitea svc/forgejo-http 3000:3000 + curl http://localhost:3000 + ``` + +### Git Operations Fail Over SSH + +**Problem**: Cannot clone or push repositories via SSH + +**Solution**: +1. Verify SSH service is exposed: + ```bash + kubectl get svc -n gitea -l app=forgejo + ``` + +2. Check LoadBalancer external IP: + ```bash + kubectl get svc -n gitea forgejo-ssh -o wide + ``` + +3. Test SSH connectivity: + ```bash + ssh -T -p 32222 git@${DOMAIN_GITEA} + ``` + +4. Verify SSH public key is added to Forgejo account + +### Forgejo Runners Not Executing Jobs + +**Problem**: CI/CD workflows remain queued or fail to execute + +**Solution**: +1. Check runner pod status: + ```bash + kubectl get pods -n gitea -l app=forgejo-runner + kubectl logs -n gitea -l app=forgejo-runner + ``` + +2. Verify runner registration: + ```bash + kubectl exec -n gitea -it deployment/forgejo-runner -- \ + forgejo-runner status + ``` + +3. Check Docker-in-Docker daemon: + ```bash + kubectl logs -n gitea -l app=forgejo-runner -c dind + ``` + +4. Verify runner token secret exists: + ```bash + kubectl get secret -n gitea | grep runner + ``` + +5. Check Forgejo server can communicate with runners: + ```bash + kubectl logs -n gitea -l app=forgejo | grep -i runner + ``` + +### Database Connection Errors + +**Problem**: Forgejo cannot connect to PostgreSQL database + +**Solution**: +1. Verify PostgreSQL cluster health: + ```bash + kubectl get pods -n gitea -l cnpg.io/cluster + kubectl logs -n gitea -l cnpg.io/cluster + ``` + +2. Test database connection: + ```bash + kubectl exec -n gitea -it -- \ + psql -U postgres -c "\l" + ``` + +3. Verify database credentials secret: + ```bash + kubectl get secret -n gitea -o yaml | grep POSTGRES + ``` + +4. Check database connection from Forgejo pod: + ```bash + kubectl exec -n gitea -it -- \ + nc -zv 5432 + ``` + +### Storage Issues + +**Problem**: Repository pushes fail or object storage errors occur + +**Solution**: +1. Check PVC status and capacity: + ```bash + kubectl get pvc -n gitea + kubectl describe pvc -n gitea + ``` + +2. Verify MinIO credentials and connectivity: + ```bash + kubectl get secret minio-credential -n gitea + kubectl logs -n gitea -l app=forgejo | grep -i "s3\|minio" + ``` + +3. Check available storage space: + ```bash + kubectl exec -n gitea -it -- df -h + ``` + +4. Review storage class configuration: + ```bash + kubectl get storageclass csi-disk -o yaml + ``` + +## Additional Resources + +* [Forgejo Documentation](https://forgejo.org/docs/latest/) +* [Forgejo Actions User Guide](https://forgejo.org/docs/latest/user/actions/) +* [Forgejo Helm Chart Documentation](https://code.forgejo.org/forgejo-helm/forgejo-helm) +* [Forgejo Runner Documentation](https://code.forgejo.org/forgejo/runner) +* [CloudNativePG Documentation](https://cloudnative-pg.io/) +* [ArgoCD Documentation](https://argo-cd.readthedocs.io/) diff --git a/content/en/docs/edp/deployment/infrastructure/stacks/green-deploy-pipeline.png b/content/en/docs/edp/deployment/infrastructure/stacks/green-deploy-pipeline.png new file mode 100644 index 0000000..f3acf77 Binary files /dev/null and b/content/en/docs/edp/deployment/infrastructure/stacks/green-deploy-pipeline.png differ diff --git a/content/en/docs/edp/deployment/infrastructure/stacks/observability-client.md b/content/en/docs/edp/deployment/infrastructure/stacks/observability-client.md new file mode 100644 index 0000000..89382c2 --- /dev/null +++ b/content/en/docs/edp/deployment/infrastructure/stacks/observability-client.md @@ -0,0 +1,500 @@ +--- +title: "Observability Client" +linkTitle: "Observability Client" +weight: 60 +description: > + Core observability components for metrics collection, log aggregation, and monitoring +--- + +## Overview + +The Observability Client stack provides essential monitoring and observability infrastructure for Kubernetes environments. As part of the Edge Developer Platform, it deploys client-side components that collect, process, and forward metrics and logs to centralized observability systems. + +The stack integrates three core components: Kubernetes Metrics Server for resource metrics, Vector for log collection and forwarding, and Victoria Metrics for comprehensive metrics monitoring and alerting. + +## Key Features + +* **Resource Metrics**: Real-time CPU and memory metrics via Kubernetes Metrics Server +* **Log Aggregation**: Unified log collection and forwarding with Vector +* **Metrics Monitoring**: Comprehensive metrics collection, storage, and alerting with Victoria Metrics +* **Prometheus Compatibility**: Full Prometheus protocol support for metrics scraping +* **Multi-Tenant Support**: Configurable tenant isolation for metrics and logs +* **Automated Alerting**: Pre-configured alert rules with Alertmanager integration +* **Grafana Integration**: Built-in dashboard provisioning and datasource configuration + +## Repository + +**Code**: [Observability Client Stack Templates](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/observability-client) + +**Documentation**: +* [Kubernetes Metrics Server](https://github.com/kubernetes-sigs/metrics-server) +* [Vector Documentation](https://vector.dev/docs/) +* [Victoria Metrics Documentation](https://docs.victoriametrics.com/) + +## Getting Started + +### Prerequisites + +* Kubernetes cluster with ArgoCD installed (provided by `core` stack) +* cert-manager for certificate management (provided by `otc` stack) +* Observability backend services for receiving metrics and logs + +### Quick Start + +The Observability Client stack is deployed as part of the EDP installation process: + +1. **Trigger Deploy Pipeline** + - Go to [Infra Deploy Pipeline](https://edp.buildth.ing/DevFW/infra-deploy/actions?workflow=deploy.yaml) + - Click on Run workflow + - Enter a name in "Select environment directory to deploy". This must be DNS Compatible. + - Execute workflow + +2. **ArgoCD Synchronization** + ArgoCD automatically deploys: + - Metrics Server (Helm chart v3.12.2) + - Vector agent (Helm chart v0.43.0) + - Victoria Metrics k8s-stack (Helm chart v0.48.1) + - ServiceMonitor resources for Prometheus scraping + - Authentication secrets for remote write endpoints + +### Verification + +Verify the Observability Client deployment: + +```bash +# Check ArgoCD application status +kubectl get application -n argocd | grep -E "metrics-server|vector|vm-client" + +# Verify Metrics Server is running +kubectl get pods -n observability -l app.kubernetes.io/name=metrics-server + +# Test metrics API +kubectl top nodes +kubectl top pods -A + +# Verify Vector pods are running +kubectl get pods -n observability -l app.kubernetes.io/name=vector + +# Check Victoria Metrics components +kubectl get pods -n observability -l app.kubernetes.io/name=victoria-metrics-k8s-stack + +# Verify ServiceMonitor resources +kubectl get servicemonitor -n observability +``` + +## Architecture + +### Component Architecture + +The Observability Client stack consists of three integrated components: + +**Metrics Server**: +- Collects resource metrics (CPU, memory) from kubelet +- Provides Metrics API for kubectl top and HPA +- Lightweight aggregator for cluster-wide resource usage +- Exposes ServiceMonitor for Prometheus scraping + +**Vector Agent**: +- DaemonSet deployment for log collection across all nodes +- Processes and transforms Kubernetes logs +- Forwards logs to centralized Elasticsearch backend +- Injects cluster metadata and environment information +- Supports compression and bulk operations + +**Victoria Metrics Stack**: +- VMAgent: Scrapes metrics from Kubernetes components and applications +- VMAlertmanager: Manages alert routing and notifications +- VMOperator: Manages VictoriaMetrics CRDs and lifecycle +- Integration with remote Victoria Metrics storage +- Supports multi-tenant metrics isolation + +### Data Flow + +``` +Kubernetes Resources → Metrics Server → Metrics API + ↓ + ServiceMonitor → VMAgent → Remote VictoriaMetrics + +Application Logs → Vector Agent → Transform → Remote Elasticsearch + +Prometheus Exporters → VMAgent → Remote VictoriaMetrics → VMAlertmanager +``` + +## Configuration + +### Metrics Server Configuration + +Configured in `stacks/observability-client/metrics-server/values.yaml`: + +```yaml +metrics: + enabled: true +serviceMonitor: + enabled: true +``` + +**Key Settings**: +- Enables metrics collection endpoint +- Exposes ServiceMonitor for Prometheus-compatible scraping +- Deployed via Helm chart from `https://kubernetes-sigs.github.io/metrics-server/` + +### Vector Configuration + +Configured in `stacks/observability-client/vector/values.yaml`: + +**Role**: Agent (DaemonSet deployment across nodes) + +**Authentication**: +Credentials sourced from `simple-user-secret`: +- `VECTOR_USER`: Username for remote write authentication +- `VECTOR_PASSWORD`: Password for remote write authentication + +**Data Sources**: +- `k8s`: Collects Kubernetes container logs +- `internal_metrics`: Gathers Vector internal metrics + +**Log Processing**: +```yaml +transforms: + parser: + - Parse JSON from log messages + - Inject cluster environment metadata + - Remove original message field +``` + +**Output Sink**: +- Elasticsearch bulk API (v8) +- Basic authentication with environment variables +- Gzip compression enabled +- Custom headers: AccountID and ProjectID + +### Victoria Metrics Stack Configuration + +Configured in `stacks/observability-client/vm-client-stack/values.yaml`: + +**Operator Settings**: +- Enabled with admission webhooks +- Managed by cert-manager for ArgoCD compatibility + +**VMAgent Configuration**: +- Basic authentication for remote write +- Credentials from `vm-remote-write-secret` +- Stream parsing enabled +- Drop original labels to reduce memory footprint + +**Monitoring Targets**: +- Node exporter for hardware metrics +- kube-state-metrics for Kubernetes object states +- Kubelet metrics (cadvisor) +- Kubernetes control plane components (API server, etcd, scheduler, controller manager) +- CoreDNS metrics + +**Alertmanager Integration**: +- Slack notification templates +- Configurable routing rules +- TLS support for secure communication + +**Storage Options**: +- VMSingle: Single-node deployment +- VMCluster: Distributed deployment with replication +- Configurable retention period + +## ArgoCD Application Configuration + +**Metrics Server Application** (`template/stacks/observability-client/metrics-server.yaml`): +- Name: `metrics-server` +- Chart version: 3.12.2 +- Automated sync with self-heal enabled +- Namespace: `observability` + +**Vector Application** (`template/stacks/observability-client/vector.yaml`): +- Name: `vector` +- Chart version: 0.43.0 +- Automated sync with self-heal enabled +- Namespace: `observability` + +**Victoria Metrics Application** (`template/stacks/observability-client/vm-client-stack.yaml`): +- Name: `vm-client` +- Chart version: 0.48.1 +- Automated sync with self-heal enabled +- Namespace: `observability` +- References manifests from instance repository + +## Usage Examples + +### Querying Resource Metrics + +Access resource metrics collected by Metrics Server: + +```bash +# View node resource usage +kubectl top nodes + +# View pod resource usage across all namespaces +kubectl top pods -A + +# View pod resource usage in specific namespace +kubectl top pods -n observability + +# Sort pods by CPU usage +kubectl top pods -A --sort-by=cpu + +# Sort pods by memory usage +kubectl top pods -A --sort-by=memory +``` + +### Using Metrics for Autoscaling + +Create Horizontal Pod Autoscaler based on metrics: + +```yaml +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: myapp-hpa +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: myapp + minReplicas: 2 + maxReplicas: 10 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: 70 +``` + +### Accessing Application Logs + +Vector automatically collects logs from all containers. View logs in your centralized Elasticsearch/Kibana: + +```bash +# Logs are automatically forwarded to Elasticsearch +# Access via Kibana dashboard or Elasticsearch API + +# Example: Query logs via Elasticsearch API +curl -u $VECTOR_USER:$VECTOR_PASSWORD \ + -X GET "https://elasticsearch.example.com/_search" \ + -H 'Content-Type: application/json' \ + -d '{ + "query": { + "match": { + "kubernetes.namespace": "my-namespace" + } + } + }' +``` + +### Querying Victoria Metrics + +Query metrics collected by Victoria Metrics: + +```bash +# Access Victoria Metrics query API +# Metrics are forwarded to remote Victoria Metrics instance + +# Example PromQL queries: +# - Container CPU usage: container_cpu_usage_seconds_total +# - Pod memory usage: container_memory_usage_bytes +# - Node disk I/O: node_disk_io_time_seconds_total + +# Query via Victoria Metrics API +curl -X POST https://victoriametrics.example.com/api/v1/query \ + -d 'query=up' \ + -d 'time=2025-12-16T00:00:00Z' +``` + +### Creating Custom ServiceMonitors + +Expose application metrics for collection: + +```yaml +apiVersion: v1 +kind: Service +metadata: + name: myapp-metrics + labels: + app: myapp +spec: + ports: + - name: metrics + port: 8080 + targetPort: 8080 + selector: + app: myapp +--- +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: myapp-monitor + namespace: observability +spec: + selector: + matchLabels: + app: myapp + endpoints: + - port: metrics + path: /metrics + interval: 30s +``` + +## Integration Points + +* **Core Stack**: Depends on ArgoCD for deployment orchestration +* **OTC Stack**: Requires cert-manager for certificate management +* **Observability Stack**: Forwards metrics and logs to centralized observability backend +* **All Application Stacks**: Collects metrics and logs from all platform applications + +## Troubleshooting + +### Metrics Server Not Responding + +**Problem**: `kubectl top` commands fail or return no data + +**Solution**: +1. Check Metrics Server pod status: + ```bash + kubectl get pods -n observability -l app.kubernetes.io/name=metrics-server + kubectl logs -n observability -l app.kubernetes.io/name=metrics-server + ``` + +2. Verify kubelet metrics endpoint: + ```bash + kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes + ``` + +3. Check ServiceMonitor configuration: + ```bash + kubectl get servicemonitor -n observability -o yaml + ``` + +### Vector Not Forwarding Logs + +**Problem**: Logs are not appearing in Elasticsearch + +**Solution**: +1. Check Vector agent status: + ```bash + kubectl get pods -n observability -l app.kubernetes.io/name=vector + kubectl logs -n observability -l app.kubernetes.io/name=vector --tail=50 + ``` + +2. Verify authentication secret: + ```bash + kubectl get secret simple-user-secret -n observability + kubectl get secret simple-user-secret -n observability -o jsonpath='{.data.username}' | base64 -d + ``` + +3. Test Elasticsearch connectivity: + ```bash + kubectl exec -it -n observability $(kubectl get pod -n observability -l app.kubernetes.io/name=vector -o jsonpath='{.items[0].metadata.name}') -- \ + curl -u $VECTOR_USER:$VECTOR_PASSWORD https://elasticsearch.example.com/_cluster/health + ``` + +4. Check Vector internal metrics: + ```bash + kubectl port-forward -n observability svc/vector 9090:9090 + curl http://localhost:9090/metrics + ``` + +### Victoria Metrics Not Scraping + +**Problem**: Metrics are not being collected or forwarded + +**Solution**: +1. Check VMAgent status: + ```bash + kubectl get pods -n observability -l app.kubernetes.io/name=vmagent + kubectl logs -n observability -l app.kubernetes.io/name=vmagent + ``` + +2. Verify remote write secret: + ```bash + kubectl get secret vm-remote-write-secret -n observability + kubectl get secret vm-remote-write-secret -n observability -o jsonpath='{.data.username}' | base64 -d + ``` + +3. Check ServiceMonitor targets: + ```bash + kubectl get servicemonitor -n observability + kubectl describe servicemonitor metrics-server -n observability + ``` + +4. Verify operator is running: + ```bash + kubectl get pods -n observability -l app.kubernetes.io/name=victoria-metrics-operator + kubectl logs -n observability -l app.kubernetes.io/name=victoria-metrics-operator + ``` + +### High Memory Usage + +**Problem**: Victoria Metrics or Vector consuming excessive memory + +**Solution**: +1. For Victoria Metrics, verify `dropOriginalLabels` is enabled: + ```bash + kubectl get vmagent -n observability -o yaml | grep dropOriginalLabels + ``` + +2. Reduce scrape intervals for high-cardinality metrics: + ```yaml + # Edit ServiceMonitor + spec: + endpoints: + - interval: 60s # Increase from 30s + ``` + +3. Filter unnecessary logs in Vector: + ```yaml + # Add filter transform to Vector configuration + transforms: + filter: + type: filter + condition: '.kubernetes.namespace != "kube-system"' + ``` + +4. Check resource limits: + ```bash + kubectl describe pod -n observability -l app.kubernetes.io/name=vmagent + kubectl describe pod -n observability -l app.kubernetes.io/name=vector + ``` + +### Certificate Issues + +**Problem**: TLS certificate errors in logs + +**Solution**: +1. Verify cert-manager is running: + ```bash + kubectl get pods -n cert-manager + ``` + +2. Check certificate status: + ```bash + kubectl get certificate -n observability + kubectl describe certificate -n observability + ``` + +3. Review webhook configuration: + ```bash + kubectl get validatingwebhookconfigurations | grep victoria-metrics + kubectl get mutatingwebhookconfigurations | grep victoria-metrics + ``` + +4. Restart operator if needed: + ```bash + kubectl rollout restart deployment victoria-metrics-operator -n observability + ``` + +## Additional Resources + +* [Kubernetes Metrics Server Documentation](https://github.com/kubernetes-sigs/metrics-server) +* [Vector Documentation](https://vector.dev/docs/) +* [Victoria Metrics Documentation](https://docs.victoriametrics.com/) +* [Victoria Metrics Operator](https://docs.victoriametrics.com/operator/) +* [Prometheus Operator API](https://prometheus-operator.dev/docs/operator/api/) +* [ArgoCD Documentation](https://argo-cd.readthedocs.io/) diff --git a/content/en/docs/edp/deployment/infrastructure/stacks/observability.md b/content/en/docs/edp/deployment/infrastructure/stacks/observability.md new file mode 100644 index 0000000..2a7b3a4 --- /dev/null +++ b/content/en/docs/edp/deployment/infrastructure/stacks/observability.md @@ -0,0 +1,581 @@ +--- +title: "Observability" +linkTitle: "Observability" +weight: 50 +description: > + Comprehensive monitoring, metrics, and logging for Kubernetes infrastructure +--- + +## Overview + +The Observability stack provides enterprise-grade monitoring, metrics collection, and logging capabilities for the Edge Developer Platform. Built on VictoriaMetrics and Grafana, it offers a complete observability solution with pre-configured dashboards, alerting, and SSO integration. + +The stack deploys VictoriaMetrics for metrics storage and querying, Grafana for visualization, VictoriaLogs for log aggregation, and VMAuth for authenticated access to monitoring endpoints. + +## Key Features + +* **Metrics Collection**: VictoriaMetrics-based Kubernetes monitoring with long-term storage +* **Visualization**: Grafana with pre-built dashboards for ArgoCD, Ingress-Nginx, and infrastructure components +* **Log Aggregation**: VictoriaLogs for centralized logging with Grafana integration +* **SSO Integration**: OAuth authentication through Dex with role-based access control +* **Alerting**: Alertmanager with email notifications for critical events +* **Secure Access**: TLS-enabled ingress with authentication proxy (VMAuth) +* **Persistent Storage**: Encrypted volumes with configurable retention policies + +## Repository + +**Code**: [Observability Stack Templates](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/observability) + +**Documentation**: +* [VictoriaMetrics Documentation](https://docs.victoriametrics.com/) +* [Grafana Documentation](https://grafana.com/docs/) +* [Grafana Operator Documentation](https://grafana.github.io/grafana-operator/) + +## Getting Started + +### Prerequisites + +* Kubernetes cluster with ArgoCD installed (provided by `core` stack) +* Ingress controller configured (provided by `otc` stack) +* cert-manager for TLS certificate management (provided by `otc` stack) +* Dex SSO provider (provided by `core` stack) +* Infrastructure deployed through [Infra Deploy](https://edp.buildth.ing/DevFW/infra-deploy) + +### Quick Start + +The Observability stack is deployed as part of the EDP installation process: + +1. **Trigger Deploy Pipeline** + - Go to [Infra Deploy Pipeline](https://edp.buildth.ing/DevFW/infra-deploy/actions?workflow=deploy.yaml) + - Click on Run workflow + - Enter a name in "Select environment directory to deploy". This must be DNS Compatible. (if you enter `test-me` then domains will be `vmauth.test-me.t09.de` and `grafana.test-me.t09.de`) + - Execute workflow + +2. **ArgoCD Synchronization** + ArgoCD automatically deploys: + - VictoriaMetrics Operator and components + - VictoriaMetrics Single (metrics storage) + - VMAuth (authentication proxy) + - Alertmanager (alerting) + - Grafana Operator + - Grafana instance with OAuth + - VictoriaLogs datasource + - Pre-configured dashboards + - Ingress configurations with TLS + +### Verification + +Verify the Observability deployment: + +```bash +# Check ArgoCD applications status +kubectl get application grafana-operator -n argocd +kubectl get application victoria-k8s-stack -n argocd + +# Verify VictoriaMetrics components are running +kubectl get pods -n observability + +# Check Grafana instance status +kubectl get grafana grafana -n observability + +# Verify ingress configurations +kubectl get ingress -n observability +``` + +Access the monitoring interfaces: +* Grafana: `https://grafana.{DOMAIN_O12Y}` + +## Architecture + +### Component Architecture + +The Observability stack consists of multiple integrated components: + +**VictoriaMetrics Components**: +- **VictoriaMetrics Operator**: Manages VictoriaMetrics custom resources +- **VictoriaMetrics Single**: Standalone metrics storage with 20Gi storage and 1-month retention +- **VMAgent**: Scrapes metrics from Kubernetes components (kubelet, CoreDNS, kube-apiserver, etcd) +- **VMAuth**: Authentication proxy on port 8427 for secure metrics access +- **VMAlertmanager**: Handles alert routing and notifications + +**Grafana Components**: +- **Grafana Operator**: Manages Grafana instances and dashboards as Kubernetes resources +- **Grafana Instance**: Web application for metrics visualization with OAuth authentication +- **Pre-configured Dashboards**: ArgoCD, Ingress-Nginx, VictoriaLogs monitoring + +**Logging**: +- **VictoriaLogs**: Log aggregation service integrated as Grafana datasource + +**Storage**: +- VictoriaMetrics Single: 20Gi persistent storage on `csi-disk` storage class +- Grafana: 10Gi persistent storage on `csi-disk` storage class with KMS encryption +- Configurable retention: 1 month for metrics, minimum 24 hours enforced + +**Networking**: +- Nginx ingress with TLS termination for Grafana and VMAuth +- cert-manager integration for automatic certificate management +- Internal ClusterIP services for component communication + +## Configuration + +### VictoriaMetrics Configuration + +Key configuration in `stacks/observability/victoria-k8s-stack/values.yaml`: + +**Operator Settings**: +```yaml +victoria-metrics-operator: + enabled: true + operator: + enable_converter_ownership: true + admissionWebhooks: + certManager: + enabled: true + issuer: + name: main +``` + +**Storage Configuration**: +```yaml +vmsingle: + enabled: true + spec: + retentionPeriod: "1" + storage: + storageClassName: csi-disk + resources: + requests: + storage: 20Gi +``` + +**VMAuth Configuration**: +```yaml +vmauth: + enabled: true + spec: + port: "8427" + ingress: + enabled: true + ingressClassName: nginx + hosts: + - name: "{{{ .Env.DOMAIN_O12Y }}}" + tls: + - secretName: vmauth-tls-secret + hosts: + - "{{{ .Env.DOMAIN_O12Y }}}" + annotations: + cert-manager.io/cluster-issuer: main +``` + +**Monitoring Targets**: +- Kubelet (cadvisor, probes, resources metrics) +- CoreDNS +- etcd +- kube-apiserver + +**Disabled Collectors** (to avoid alerts on managed clusters): +- kube-controller-manager +- kube-scheduler +- kube-proxy + +### Alertmanager Configuration + +Email alerting configured in `values.yaml`: + +```yaml +alertmanager: + spec: + externalURL: "https://{{{ .Env.DOMAIN_O12Y }}}" + configSecret: vmalertmanager-config + config: + route: + routes: + - matchers: + - severity =~ "critical|major" + receiver: mail + receivers: + - name: 'mail' + email_configs: + - to: 'alerts@example.com' + from: 'monitoring@example.com' + smarthost: 'mail.mms-support.de:465' + auth_username: + name: email-user-credentials + key: username + auth_password: + name: email-user-credentials + key: password +``` + +### Grafana Configuration + +Grafana instance configuration in `stacks/observability/grafana-operator/manifests/grafana.yaml`: + +**OAuth/SSO Integration**: +```yaml +config: + auth.generic_oauth: + enabled: "true" + disable_login_form: "true" + client_id: "$__env{GF_AUTH_GENERIC_OAUTH_CLIENT_ID}" + client_secret: "$__env{GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET}" + scopes: "openid email profile offline_access groups" + auth_url: "https://dex.{DOMAIN}/auth" + token_url: "https://dex.{DOMAIN}/token" + api_url: "https://dex.{DOMAIN}/userinfo" + role_attribute_path: "contains(groups[*], 'DevFW') && 'Admin' || 'Viewer'" +``` + +**Storage**: +```yaml +deployment: + spec: + template: + spec: + volumes: + - name: grafana-data + persistentVolumeClaim: + claimName: grafana-pvc + +persistentVolumeClaim: + spec: + storageClassName: csi-disk + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi +``` + +**Ingress**: +```yaml +ingress: + spec: + ingressClassName: nginx + rules: + - host: "{{{ .Env.DOMAIN_GRAFANA }}}" + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: grafana-service + port: + number: 3000 + tls: + - hosts: + - "{{{ .Env.DOMAIN_GRAFANA }}}" + secretName: grafana-tls-secret +``` + +### ArgoCD Application Configuration + +**Grafana Operator Application** (`template/stacks/observability/grafana-operator.yaml`): +- Name: `grafana-operator` +- Chart: `grafana-operator` v5.18.0 from `ghcr.io/grafana/helm-charts` +- Automated sync with self-healing enabled +- Namespace: `observability` + +**VictoriaMetrics Stack Application** (`template/stacks/observability/victoria-k8s-stack.yaml`): +- Name: `victoria-k8s-stack` +- Chart: `victoria-metrics-k8s-stack` v0.48.1 from `https://victoriametrics.github.io/helm-charts/` +- Automated self-healing enabled +- Creates namespace automatically + +## Usage Examples + +### Accessing Grafana + +Access Grafana through SSO: + +1. **Navigate to Grafana** + ```bash + open https://grafana.${DOMAIN_GRAFANA} + ``` + +2. **Authenticate via Dex** + - Click "Sign in with OAuth" + - Authenticate through configured identity provider + - Users in `DevFW` group receive Admin role, others receive Viewer role + +### Querying Metrics + +Query VictoriaMetrics directly: + +```bash +# Access VMAuth endpoint +curl -u username:password https://vmauth.${DOMAIN_O12Y}/api/v1/query \ + -d 'query=up' | jq + +# Query pod CPU usage +curl -u username:password https://vmauth.${DOMAIN_O12Y}/api/v1/query \ + -d 'query=container_cpu_usage_seconds_total' | jq + +# Query with time range +curl -u username:password https://vmauth.${DOMAIN_O12Y}/api/v1/query_range \ + -d 'query=container_memory_usage_bytes' \ + -d 'start=2024-01-01T00:00:00Z' \ + -d 'end=2024-01-01T23:59:59Z' \ + -d 'step=5m' | jq +``` + +### Creating Custom Dashboards + +Create custom Grafana dashboards as Kubernetes resources: + +```yaml +apiVersion: grafana.integreatly.org/v1beta1 +kind: GrafanaDashboard +metadata: + name: custom-app-dashboard + namespace: observability +spec: + instanceSelector: + matchLabels: + dashboards: "grafana" + json: | + { + "dashboard": { + "title": "Custom Application Metrics", + "panels": [ + { + "title": "Request Rate", + "targets": [ + { + "expr": "rate(http_requests_total[5m])", + "datasource": "VictoriaMetrics" + } + ] + } + ] + } + } +``` + +Apply the dashboard: + +```bash +kubectl apply -f custom-dashboard.yaml +``` + +### Viewing Logs in Grafana + +Access VictoriaLogs through Grafana: + +1. Navigate to Grafana `https://grafana.${DOMAIN_GRAFANA}` +2. Go to Explore +3. Select "VictoriaLogs" datasource +4. Use LogQL queries: + ``` + {namespace="default"} + {app="nginx"} |= "error" + {namespace="observability"} | json | level="error" + ``` + +### Setting Up Custom Alerts + +Create custom alert rules using VMRule: + +```yaml +apiVersion: operator.victoriametrics.com/v1beta1 +kind: VMRule +metadata: + name: custom-app-alerts + namespace: observability +spec: + groups: + - name: custom-app + interval: 30s + rules: + - alert: HighErrorRate + expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.05 + for: 5m + labels: + severity: critical + annotations: + summary: "High error rate detected" + description: "Error rate is {{ $value }} requests/sec" +``` + +Push the alert rule to [stacks instances](https://edp.buildth.ing/DevFW-CICD/stacks-instances/src/branch/main/otc/observability.t09.de/stacks/observability/victoria-k8s-stack/manifests) + +## Integration Points + +* **Core Stack**: Depends on ArgoCD for deployment orchestration +* **OTC Stack**: Requires ingress-nginx controller and cert-manager for external access and TLS +* **Dex (SSO)**: Integrated for Grafana authentication with role-based access control +* **All Platform Services**: Automatically collects metrics from Kubernetes components and platform services +* **Application Stacks**: Provides monitoring for Coder, Forgejo, and other deployed services + +## Troubleshooting + +### VictoriaMetrics Pods Not Starting + +**Problem**: VictoriaMetrics components remain in `Pending` or `CrashLoopBackOff` state + +**Solution**: +1. Check VictoriaMetrics resources: + ```bash + kubectl get vmsingle,vmagent,vmalertmanager -n observability + kubectl describe vmsingle vmsingle -n observability + ``` + +2. Verify persistent volume claims: + ```bash + kubectl get pvc -n observability + kubectl describe pvc vmstorage-vmsingle-0 -n observability + ``` + +3. Check operator logs: + ```bash + kubectl logs -n observability -l app.kubernetes.io/name=victoria-metrics-operator + ``` + +### Grafana Not Accessible + +**Problem**: Grafana web interface is not accessible at configured URL + +**Solution**: +1. Verify Grafana instance status: + ```bash + kubectl get grafana grafana -n observability + kubectl describe grafana grafana -n observability + ``` + +2. Check Grafana pod logs: + ```bash + kubectl logs -n observability -l app=grafana + ``` + +3. Verify ingress configuration: + ```bash + kubectl get ingress -n observability + kubectl describe ingress grafana-ingress -n observability + ``` + +4. Check TLS certificate status: + ```bash + kubectl get certificate -n observability + kubectl describe certificate grafana-tls-secret -n observability + ``` + +### OAuth Authentication Failing + +**Problem**: Cannot authenticate to Grafana via SSO + +**Solution**: +1. Verify Dex is running: + ```bash + kubectl get pods -n core -l app=dex + kubectl logs -n core -l app=dex + ``` + +2. Check OAuth client secret: + ```bash + kubectl get secret dex-grafana-client -n observability + kubectl describe secret dex-grafana-client -n observability + ``` + +3. Review Grafana OAuth configuration: + ```bash + kubectl get grafana grafana -n observability -o yaml | grep -A 20 auth.generic_oauth + ``` + +4. Check Grafana logs for OAuth errors: + ```bash + kubectl logs -n observability -l app=grafana | grep -i oauth + ``` + +### Metrics Not Appearing + +**Problem**: Metrics not showing up in Grafana or VictoriaMetrics + +**Solution**: +1. Check VMAgent scraping status: + ```bash + kubectl get vmagent -n observability + kubectl logs -n observability -l app.kubernetes.io/name=vmagent + ``` + +2. Verify service monitors are created: + ```bash + kubectl get vmservicescrape -n observability + kubectl get vmpodscrape -n observability + ``` + +3. Check target endpoints: + ```bash + # Access VMAgent UI (port-forward if needed) + kubectl port-forward -n observability svc/vmagent 8429:8429 + open http://localhost:8429/targets + ``` + +4. Verify VictoriaMetrics Single is accepting data: + ```bash + kubectl logs -n observability -l app.kubernetes.io/name=vmsingle + ``` + +### Alerts Not Sending + +**Problem**: Alertmanager not sending email notifications + +**Solution**: +1. Verify Alertmanager configuration: + ```bash + kubectl get vmalertmanager -n observability + kubectl describe vmalertmanager vmalertmanager -n observability + ``` + +2. Check email credentials secret: + ```bash + kubectl get secret email-user-credentials -n observability + kubectl describe secret email-user-credentials -n observability + ``` + +3. Review Alertmanager logs: + ```bash + kubectl logs -n observability -l app.kubernetes.io/name=vmalertmanager + ``` + +4. Test alert firing manually: + ```bash + # Access Alertmanager UI + kubectl port-forward -n observability svc/vmalertmanager 9093:9093 + open http://localhost:9093 + ``` + +### High Storage Usage + +**Problem**: VictoriaMetrics storage running out of space + +**Solution**: +1. Check current storage usage: + ```bash + kubectl exec -it -n observability vmsingle-0 -- df -h /storage + ``` + +2. Reduce retention period in `values.yaml`: + ```yaml + vmsingle: + spec: + retentionPeriod: "15d" # Reduce from 1 month + ``` + +3. Increase PVC size: + ```bash + kubectl patch pvc vmstorage-vmsingle-0 -n observability \ + -p '{"spec":{"resources":{"requests":{"storage":"50Gi"}}}}' + ``` + +4. Monitor storage metrics in Grafana for capacity planning + +## Additional Resources + +* [VictoriaMetrics Documentation](https://docs.victoriametrics.com/) +* [VictoriaMetrics Operator Documentation](https://docs.victoriametrics.com/operator/) +* [Grafana Documentation](https://grafana.com/docs/grafana/latest/) +* [Grafana Operator Documentation](https://grafana.github.io/grafana-operator/docs/) +* [VictoriaLogs Documentation](https://docs.victoriametrics.com/victorialogs/) +* [Prometheus Querying Basics](https://prometheus.io/docs/prometheus/latest/querying/basics/) +* [PromQL for VictoriaMetrics](https://docs.victoriametrics.com/metricsql/) diff --git a/content/en/docs/edp/deployment/infrastructure/stacks/otc.md b/content/en/docs/edp/deployment/infrastructure/stacks/otc.md new file mode 100644 index 0000000..45f506c --- /dev/null +++ b/content/en/docs/edp/deployment/infrastructure/stacks/otc.md @@ -0,0 +1,526 @@ +--- +title: "OTC" +linkTitle: "OTC" +weight: 10 +description: > + Open Telekom Cloud infrastructure components for ingress, TLS, and storage +--- + +## Overview + +The OTC (Open Telekom Cloud) stack provides essential infrastructure components for deploying applications on Open Telekom Cloud environments. It configures ingress routing, automated TLS certificate management, and cloud-native storage provisioning tailored specifically for OTC's Kubernetes infrastructure. + +This stack serves as a foundational layer that other platform stacks depend on for external access, secure communication, and persistent storage. + +## Key Features + +* **Automated TLS Certificate Management**: Let's Encrypt integration via cert-manager for automatic certificate provisioning and renewal +* **Cloud Load Balancer Integration**: Nginx ingress controller configured with OTC-specific Elastic Load Balancer (ELB) annotations +* **Native Storage Provisioning**: Default StorageClass using Huawei FlexVolume provisioner for block storage +* **Prometheus Metrics**: Built-in monitoring capabilities for ingress traffic and performance +* **High Availability**: Rolling update strategy with minimal downtime +* **HTTP-01 Challenge Support**: ACME validation through ingress for certificate issuance + +## Repository + +**Code**: [OTC Stack Templates](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/otc) + +**Documentation**: +* [cert-manager Documentation](https://cert-manager.io/docs/) +* [ingress-nginx Documentation](https://kubernetes.github.io/ingress-nginx/) +* [Open Telekom Cloud Documentation](https://docs.otc.t-systems.com/) + +## Getting Started + +### Prerequisites + +* Kubernetes cluster running on Open Telekom Cloud +* ArgoCD installed (provided by `core` stack) +* Environment variables configured: + - `LOADBALANCER_ID`: OTC Elastic Load Balancer ID + - `LOADBALANCER_IP`: OTC Elastic Load Balancer IP address + - `CLIENT_REPO_DOMAIN`: Git repository domain + - `CLIENT_REPO_ORG_NAME`: Git repository organization + - `CLIENT_REPO_ID`: Client repository identifier + - `DOMAIN`: Domain name for the environment + +### Quick Start + +The OTC stack is deployed as part of the EDP installation process: + +1. **Trigger Deploy Pipeline** + - Go to [Infra Deploy Pipeline](https://edp.buildth.ing/DevFW/infra-deploy/actions?workflow=deploy.yaml) + - Click on Run workflow + - Enter a name in "Select environment directory to deploy". This must be DNS Compatible. + - Execute workflow + +2. **ArgoCD Synchronization** + ArgoCD automatically deploys: + - cert-manager with ClusterIssuer for Let's Encrypt + - ingress-nginx controller with OTC load balancer integration + - Default StorageClass for OTC block storage + +### Verification + +Verify the OTC stack deployment: + +```bash +# Check ArgoCD applications status +kubectl get application otc -n argocd +kubectl get application cert-manager -n argocd +kubectl get application ingress-nginx -n argocd +kubectl get application storageclass -n argocd + +# Verify cert-manager pods +kubectl get pods -n cert-manager + +# Check ingress-nginx controller +kubectl get pods -n ingress-nginx + +# Verify ClusterIssuer status +kubectl get clusterissuer main + +# Check StorageClass +kubectl get storageclass default +``` + +## Architecture + +### Component Architecture + +The OTC stack consists of three primary components: + +**cert-manager**: +- Automates TLS certificate lifecycle management +- Integrates with Let's Encrypt ACME server (production endpoint) +- Uses HTTP-01 challenge validation via ingress +- Creates and manages certificates as Kubernetes resources +- Single replica deployment + +**ingress-nginx**: +- Kubernetes ingress controller based on Nginx +- Routes external traffic to internal services +- Integrated with OTC Elastic Load Balancer (ELB) +- Supports TLS termination with cert-manager issued certificates +- Rolling update strategy with max 1 unavailable pod +- Prometheus metrics exporter with ServiceMonitor + +**StorageClass**: +- Default storage provisioner for persistent volumes +- Uses Huawei FlexVolume driver (`flexvolume-huawei.com/fuxivol`) +- SATA block storage type +- Immediate volume binding mode +- Supports dynamic volume expansion + +### Integration Flow + +``` +External Traffic → OTC ELB → ingress-nginx → Kubernetes Services + ↓ + cert-manager (TLS certificates) + ↓ + Let's Encrypt ACME +``` + +## Configuration + +### cert-manager Configuration + +**Helm Values** (`stacks/otc/cert-manager/values.yaml`): + +```yaml +crds: + enabled: true +replicaCount: 1 +``` + +**ClusterIssuer** (`stacks/otc/cert-manager/manifests/clusterissuer.yaml`): + +```yaml +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: main +spec: + acme: + email: admin@think-ahead.tech + server: https://acme-v02.api.letsencrypt.org/directory + privateKeySecretRef: + name: cluster-issuer-account-key + solvers: + - http01: + ingress: + ingressClassName: nginx +``` + +**Key Settings**: +- CRDs installed automatically +- Production Let's Encrypt ACME endpoint +- HTTP-01 validation through nginx ingress +- ClusterIssuer named `main` for cluster-wide certificate issuance + +### ingress-nginx Configuration + +**Helm Values** (`stacks/otc/ingress-nginx/values.yaml`): + +```yaml +controller: + updateStrategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 1 + service: + annotations: + kubernetes.io/elb.class: union + kubernetes.io/elb.port: '80' + kubernetes.io/elb.id: {{{ .Env.LOADBALANCER_ID }}} + kubernetes.io/elb.ip: {{{ .Env.LOADBALANCER_IP }}} + ingressClassResource: + name: nginx + allowSnippetAnnotations: true + config: + proxy-buffer-size: 32k + use-forwarded-headers: "true" + metrics: + enabled: true + serviceMonitor: + additionalLabels: + release: "ingress-nginx" + enabled: true +``` + +**Key Settings**: +- **OTC Load Balancer Integration**: Annotations configure connection to OTC ELB +- **Rolling Updates**: Minimizes downtime with 1 pod unavailable during updates +- **Snippet Annotations**: Enabled for advanced ingress configuration (idpbuilder compatibility) +- **Proxy Buffer**: 32k buffer size for handling large headers +- **Forwarded Headers**: Preserves original client information through proxies +- **Metrics**: Prometheus ServiceMonitor for observability + +### StorageClass Configuration + +**StorageClass** (`stacks/otc/storageclass/storageclass.yaml`): + +```yaml +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + annotations: + storageclass.beta.kubernetes.io/is-default-class: "true" + name: default +parameters: + kubernetes.io/hw:passthrough: "true" + kubernetes.io/storagetype: BS + kubernetes.io/volumetype: SATA + kubernetes.io/zone: eu-de-02 +provisioner: flexvolume-huawei.com/fuxivol +reclaimPolicy: Delete +volumeBindingMode: Immediate +allowVolumeExpansion: true +``` + +**Key Settings**: +- **Default StorageClass**: Automatically used when no StorageClass specified +- **OTC Zone**: Provisioned in `eu-de-02` availability zone +- **SATA Volumes**: Block storage (BS) with SATA performance tier +- **Volume Expansion**: Supports resizing persistent volumes dynamically +- **Reclaim Policy**: Volumes deleted when PersistentVolumeClaim is removed + +### ArgoCD Application Configuration + +**Registry Application** (`template/registry/otc.yaml`): +- Name: `otc` +- Manages the OTC stack directory +- Automated sync with prune and self-heal enabled +- Creates namespaces automatically + +**Component Applications**: + +**cert-manager** (referenced in stack): +- Deploys cert-manager Helm chart +- Automated self-healing enabled +- Includes ClusterIssuer manifest for Let's Encrypt + +**ingress-nginx** (`template/stacks/otc/ingress-nginx.yaml`): +- Deploys from official Kubernetes ingress-nginx repository +- Chart version: helm-chart-4.12.1 +- References environment-specific values from stacks-instances repository + +**storageclass** (`template/stacks/otc/storageclass.yaml`): +- Deploys StorageClass manifest +- Managed as ArgoCD Application +- Automated sync with unlimited retries + +## Usage Examples + +### Creating an Ingress with Automatic TLS + +Create an ingress resource that automatically provisions a TLS certificate: + +```yaml +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: my-app + namespace: my-namespace + annotations: + cert-manager.io/cluster-issuer: main + nginx.ingress.kubernetes.io/ssl-redirect: "true" +spec: + ingressClassName: nginx + tls: + - hosts: + - myapp.example.com + secretName: myapp-tls + rules: + - host: myapp.example.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: my-app-service + port: + number: 80 +``` + +cert-manager will automatically: +1. Detect the ingress with `cert-manager.io/cluster-issuer` annotation +2. Create a Certificate resource +3. Request certificate from Let's Encrypt using HTTP-01 challenge +4. Store certificate in `myapp-tls` secret +5. Renew certificate before expiration + +### Creating a PersistentVolumeClaim + +Use the default OTC StorageClass for persistent storage: + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: my-data + namespace: my-namespace +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + storageClassName: csi-disk +``` + +### Expanding an Existing Volume + +Resize a persistent volume by editing the PVC: + +```bash +# Edit the PVC storage request +kubectl patch pvc my-data -n my-namespace -p '{"spec":{"resources":{"requests":{"storage":"20Gi"}}}}' + +# Verify expansion +kubectl get pvc my-data -n my-namespace +``` + +The volume will expand automatically due to `allowVolumeExpansion: true` in the StorageClass. + +### Custom Ingress Configuration + +Use nginx ingress snippets for advanced routing: + +```yaml +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: advanced-app + annotations: + cert-manager.io/cluster-issuer: main + nginx.ingress.kubernetes.io/configuration-snippet: | + more_set_headers "X-Custom-Header: value"; + if ($http_user_agent ~* "bot") { + return 403; + } +spec: + ingressClassName: nginx + rules: + - host: app.example.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: app-service + port: + number: 8080 +``` + +## Integration Points + +* **Core Stack**: Requires ArgoCD for deployment orchestration +* **All Application Stacks**: Depends on OTC stack for: + - External access via ingress-nginx + - TLS certificates via cert-manager + - Persistent storage via default StorageClass +* **Observability Stack**: ingress-nginx metrics exported to Prometheus +* **Coder Stack**: Uses ingress and cert-manager for workspace access +* **Forgejo Stack**: Requires ingress and TLS for Git repository access + +## Troubleshooting + +### Certificate Issuance Fails + +**Problem**: Certificate remains in `Pending` state and is not issued + +**Solution**: +1. Check Certificate status: + ```bash + kubectl get certificate -A + kubectl describe certificate -n + ``` + +2. Verify ClusterIssuer is ready: + ```bash + kubectl get clusterissuer main + kubectl describe clusterissuer main + ``` + +3. Check cert-manager logs: + ```bash + kubectl logs -n cert-manager -l app=cert-manager + ``` + +4. Verify HTTP-01 challenge can reach ingress: + ```bash + kubectl get challenges -A + kubectl describe challenge -n + ``` + +5. Common issues: + - DNS not pointing to load balancer IP + - Firewall blocking HTTP (port 80) traffic + - Ingress class not set to `nginx` + - Let's Encrypt rate limits exceeded + +### Ingress Controller Not Ready + +**Problem**: ingress-nginx pods are not running or LoadBalancer service has no external IP + +**Solution**: +1. Check ingress controller status: + ```bash + kubectl get pods -n ingress-nginx + kubectl logs -n ingress-nginx -l app.kubernetes.io/component=controller + ``` + +2. Verify LoadBalancer service: + ```bash + kubectl get svc -n ingress-nginx + kubectl describe svc ingress-nginx-controller -n ingress-nginx + ``` + +3. Check OTC load balancer annotations: + ```bash + kubectl get svc ingress-nginx-controller -n ingress-nginx -o yaml + ``` + +4. Verify environment variables are set correctly: + - `LOADBALANCER_ID` matches OTC ELB ID + - `LOADBALANCER_IP` matches ELB public IP + +5. Check OTC console for ELB configuration and health checks + +### Storage Provisioning Fails + +**Problem**: PersistentVolumeClaim remains in `Pending` state + +**Solution**: +1. Check PVC status: + ```bash + kubectl get pvc -A + kubectl describe pvc -n + ``` + +2. Verify StorageClass exists and is default: + ```bash + kubectl get storageclass + kubectl describe storageclass default + ``` + +3. Check volume provisioner logs: + ```bash + kubectl logs -n kube-system -l app=csi-disk-plugin + ``` + +4. Common issues: + - Insufficient quota in OTC project + - Invalid zone configuration (must be `eu-de-02`) + - Requested storage size exceeds limits + - Missing IAM permissions for volume creation + +### Ingress Returns 503 Service Unavailable + +**Problem**: Ingress configured but returns 503 error + +**Solution**: +1. Verify backend service exists: + ```bash + kubectl get svc -n + kubectl get endpoints -n + ``` + +2. Check if pods are ready: + ```bash + kubectl get pods -n -l + ``` + +3. Verify ingress configuration: + ```bash + kubectl describe ingress -n + ``` + +4. Check nginx ingress logs: + ```bash + kubectl logs -n ingress-nginx -l app.kubernetes.io/component=controller --tail=100 + ``` + +5. Test service connectivity from ingress controller: + ```bash + kubectl exec -n ingress-nginx -- curl http://..svc.cluster.local: + ``` + +### TLS Certificate Shows as Invalid + +**Problem**: Browser shows certificate warning or certificate details are incorrect + +**Solution**: +1. Verify certificate is ready: + ```bash + kubectl get certificate -n + ``` + +2. Check certificate contents: + ```bash + kubectl get secret -n -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -text -noout + ``` + +3. Ensure certificate covers the correct domain: + ```bash + kubectl describe certificate -n + ``` + +4. Force certificate renewal if expired or incorrect: + ```bash + kubectl delete certificate -n + # cert-manager will automatically recreate it + ``` + +## Additional Resources + +* [cert-manager Documentation](https://cert-manager.io/docs/) +* [ingress-nginx User Guide](https://kubernetes.github.io/ingress-nginx/user-guide/) +* [Open Telekom Cloud Documentation](https://docs.otc.t-systems.com/) +* [Let's Encrypt Documentation](https://letsencrypt.org/docs/) +* [Kubernetes Ingress Concepts](https://kubernetes.io/docs/concepts/services-networking/ingress/) +* [Kubernetes Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/) diff --git a/content/en/docs/edp/deployment/infrastructure/stacks/terralist.md b/content/en/docs/edp/deployment/infrastructure/stacks/terralist.md new file mode 100644 index 0000000..1c62d62 --- /dev/null +++ b/content/en/docs/edp/deployment/infrastructure/stacks/terralist.md @@ -0,0 +1,418 @@ +--- +title: "Terralist" +linkTitle: "Terralist" +weight: 21 +description: > + Private Terraform Module and Provider Registry with OAuth authentication +--- + +## Overview + +Terralist is an open-source private Terraform registry for modules and providers that implements the HashiCorp registry protocol. As part of the Edge Developer Platform, Terralist enables teams to securely store, version, and distribute internal Terraform modules and providers with built-in authentication and documentation capabilities. + +The Terralist stack deploys a self-hosted instance with OAuth2 authentication, persistent storage, and integrated ingress for secure access. + +## Key Features + +* **Private Module Registry**: Securely host and distribute confidential Terraform modules and providers +* **HashiCorp Protocol Compatible**: Works seamlessly with `terraform` CLI and standard registry workflows +* **OAuth2 Authentication**: Integrated OIDC authentication supporting `terraform login` command +* **Documentation Interface**: Web UI to visualize artifacts with automatic module documentation +* **Flexible Storage**: Supports local storage or remote cloud buckets with presigned URLs +* **Git Integration**: Works with mono-repositories while leveraging Terraform version attributes +* **API Management**: RESTful API for programmatic module and provider management + +## Repository + +**Code**: [Terralist Stack Templates](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/terralist) + +**Documentation**: +* [Terralist Official Documentation](https://www.terralist.io/) +* [Terralist GitHub Repository](https://github.com/terralist/terralist) +* [Getting Started Guide](https://www.terralist.io/getting-started/) + +## Getting Started + +### Prerequisites + +* Kubernetes cluster with ArgoCD installed (provided by `core` stack) +* Ingress controller configured (provided by `otc` stack) +* cert-manager for TLS certificate management (provided by `otc` stack) +* Domain name configured via `DOMAIN_GITEA` environment variable +* OAuth2 provider configured (Dex or external provider) + +### Quick Start + +The Terralist stack is deployed as part of the EDP installation process: + +1. **Trigger Deploy Pipeline** + - Go to [Infra Deploy Pipeline](https://edp.buildth.ing/DevFW/infra-deploy/actions?workflow=deploy.yaml) + - Click on Run workflow + - Enter a name in "Select environment directory to deploy". This must be DNS Compatible. (if you enter `test-me` then the domain will be `terralist.test-me.t09.de`) + - Execute workflow + +2. **ArgoCD Synchronization** + ArgoCD automatically deploys: + - Terralist application (Helm chart v0.8.1) + - Persistent volume for module storage + - Ingress configuration with TLS + - OAuth2 credentials and configuration + +### Verification + +Verify the Terralist deployment: + +```bash +# Check ArgoCD application status +kubectl get application terralist -n argocd + +# Verify Terralist pods are running +kubectl get pods -n terralist + +# Check persistent volume claim +kubectl get pvc -n terralist + +# Verify ingress configuration +kubectl get ingress -n terralist +``` + +Access the Terralist web interface at `https://terralist.{DOMAIN_GITEA}`. + +## Architecture + +### Component Architecture + +The Terralist stack consists of: + +**Terralist Application**: +- Web interface for module and provider management +- REST API for programmatic access +- OAuth2 authentication handler +- Module documentation renderer + +**Storage Layer**: +- SQLite database for metadata and configuration +- Local filesystem storage for modules and providers +- Persistent volume with 10Gi capacity on `csi-disk` storage class +- Optional cloud bucket integration for remote storage + +**Networking**: +- Nginx ingress with TLS termination +- cert-manager integration for automatic certificate management +- OAuth2 callback endpoint configuration + +## Configuration + +### Environment Variables + +The Terralist application is configured through environment variables in `values.yaml`: + +**OAuth2 Configuration**: +- `TERRALIST_AUTHORITY_URL`: OIDC provider authority URL (from `terralist-oidc-secrets` secret) +- `TERRALIST_CLIENT_ID`: OAuth2 client identifier +- `TERRALIST_CLIENT_SECRET`: OAuth2 client secret +- `TERRALIST_TOKEN_SIGNING_SECRET`: Secret for token signing and validation + +**Storage Configuration**: +- SQLite database at `/data/database.db` +- Module storage at `/data/modules` + +### Helm Chart Configuration + +Key Helm values configured in `stacks/terralist/terralist/values.yaml`: + +```yaml +controllers: + main: + strategy: Recreate + containers: + main: + env: + - name: TERRALIST_AUTHORITY_URL + valueFrom: + secretKeyRef: + name: terralist-oidc-secrets + key: authority_url + - name: TERRALIST_CLIENT_ID + valueFrom: + secretKeyRef: + name: terralist-oidc-secrets + key: client_id + +ingress: + main: + enabled: true + className: nginx + hosts: + - host: "terralist.{DOMAIN_GITEA}" + paths: + - path: / + service: + identifier: main + annotations: + cert-manager.io/cluster-issuer: main + tls: + - secretName: terralist-tls-secret + hosts: + - "terralist.{DOMAIN_GITEA}" + +persistence: + data: + enabled: true + size: 10Gi + storageClass: csi-disk + accessMode: ReadWriteOnce +``` + +### ArgoCD Application Configuration + +**Registry Application** (`template/registry/terralist.yaml`): +- Name: `terralist-reg` +- Manages the Terralist stack directory +- Automated sync with prune and self-heal enabled + +**Stack Application** (`template/stacks/terralist/terralist.yaml`): +- Name: `terralist` +- Deploys Terralist Helm chart v0.8.1 from `https://github.com/terralist/helm-charts` +- Automated self-healing enabled +- Creates namespace automatically +- References values from `stacks-instances` repository + +## Usage Examples + +### Authenticating with Terralist + +Configure Terraform CLI to use your private registry: + +```bash +# Authenticate using OAuth2 +terraform login terralist.${DOMAIN_GITEA} + +# This opens a browser window for OAuth2 authentication +# After successful login, credentials are stored in ~/.terraform.d/credentials.tfrc.json +``` + +### Publishing a Module + +Publish a module to your private registry: + +1. **Create Module Structure** + ```bash + my-module/ + ├── main.tf + ├── variables.tf + ├── outputs.tf + └── README.md + ``` + +2. **Tag and Push via API** + ```bash + # Package module + tar -czf my-module-1.0.0.tar.gz my-module/ + + # Upload to Terralist (requires authentication token) + curl -X POST https://terralist.${DOMAIN_GITEA}/v1/modules/my-org/my-module/my-provider/1.0.0 \ + -H "Authorization: Bearer ${TERRALIST_TOKEN}" \ + -F "file=@my-module-1.0.0.tar.gz" + ``` + +### Consuming Private Modules + +Use modules from your private registry in Terraform configurations: + +```hcl +# Configure Terraform to use private registry +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 5.0" + } + } +} + +# Reference module from private registry +module "vpc" { + source = "terralist.${DOMAIN_GITEA}/my-org/vpc/aws" + version = "1.0.0" + + cidr_block = "10.0.0.0/16" + environment = "production" +} +``` + +### Browsing Module Documentation + +Access the Terralist web interface to view module documentation: + +```bash +# Open Terralist UI +open https://terralist.${DOMAIN_GITEA} + +# Browse available modules +# - View module versions +# - Read generated documentation +# - Access module sources +# - Copy usage examples +``` + +### Managing Modules via API + +```bash +# List all modules +curl -H "Authorization: Bearer ${TERRALIST_TOKEN}" \ + https://terralist.${DOMAIN_GITEA}/v1/modules + +# Get specific module versions +curl -H "Authorization: Bearer ${TERRALIST_TOKEN}" \ + https://terralist.${DOMAIN_GITEA}/v1/modules/my-org/my-module/my-provider + +# Delete a module version +curl -X DELETE -H "Authorization: Bearer ${TERRALIST_TOKEN}" \ + https://terralist.${DOMAIN_GITEA}/v1/modules/my-org/my-module/my-provider/1.0.0 +``` + +## Integration Points + +* **Core Stack**: Depends on ArgoCD for deployment orchestration +* **OTC Stack**: Requires ingress-nginx controller and cert-manager for external access and TLS +* **Dex (SSO)**: Integrates with platform OAuth2 provider for authentication +* **Forgejo Stack**: Modules can be sourced from platform Git repositories +* **Observability Stack**: Application metrics can be collected by platform monitoring tools + +## Troubleshooting + +### Terralist Pod Not Starting + +**Problem**: Terralist pod remains in `Pending` or `CrashLoopBackOff` state + +**Solution**: +1. Check persistent volume claim status: + ```bash + kubectl get pvc -n terralist + kubectl describe pvc data-terralist-0 -n terralist + ``` + +2. Verify OAuth2 credentials secret: + ```bash + kubectl get secret terralist-oidc-secrets -n terralist + kubectl describe secret terralist-oidc-secrets -n terralist + ``` + +3. Check Terralist logs: + ```bash + kubectl logs -n terralist -l app.kubernetes.io/name=terralist + ``` + +### Cannot Access Terralist UI + +**Problem**: Terralist web interface is not accessible at configured URL + +**Solution**: +1. Verify ingress configuration: + ```bash + kubectl get ingress -n terralist + kubectl describe ingress -n terralist + ``` + +2. Check TLS certificate status: + ```bash + kubectl get certificate -n terralist + kubectl describe certificate terralist-tls-secret -n terralist + ``` + +3. Verify DNS resolution: + ```bash + nslookup terralist.${DOMAIN_GITEA} + ``` + +### OAuth2 Authentication Fails + +**Problem**: `terraform login` or web authentication fails + +**Solution**: +1. Verify OAuth2 configuration in secret: + ```bash + kubectl get secret terralist-oidc-secrets -n terralist -o yaml + ``` + +2. Check OAuth2 provider (Dex) is accessible: + ```bash + curl https://dex.${DOMAIN_GITEA}/.well-known/openid-configuration + ``` + +3. Verify callback URL is correctly configured in OAuth2 provider: + ``` + Expected callback: https://terralist.${DOMAIN_GITEA}/auth/cli/callback + ``` + +4. Check Terralist logs for authentication errors: + ```bash + kubectl logs -n terralist -l app.kubernetes.io/name=terralist | grep -i auth + ``` + +### Module Upload Fails + +**Problem**: Cannot upload modules via API or UI + +**Solution**: +1. Verify authentication token is valid: + ```bash + # Test token with API call + curl -H "Authorization: Bearer ${TERRALIST_TOKEN}" \ + https://terralist.${DOMAIN_GITEA}/v1/modules + ``` + +2. Check persistent volume has available space: + ```bash + kubectl exec -n terralist -it terralist-0 -- df -h /data + ``` + +3. Verify module package format is correct: + ```bash + # Module should be a gzipped tar archive + tar -tzf my-module-1.0.0.tar.gz + ``` + +4. Review upload logs: + ```bash + kubectl logs -n terralist -l app.kubernetes.io/name=terralist --tail=50 + ``` + +### Terraform Cannot Download Modules + +**Problem**: `terraform init` fails to download modules from private registry + +**Solution**: +1. Verify authentication credentials exist: + ```bash + cat ~/.terraform.d/credentials.tfrc.json + ``` + +2. Re-authenticate if needed: + ```bash + terraform logout terralist.${DOMAIN_GITEA} + terraform login terralist.${DOMAIN_GITEA} + ``` + +3. Test module availability via API: + ```bash + curl -H "Authorization: Bearer ${TERRALIST_TOKEN}" \ + https://terralist.${DOMAIN_GITEA}/v1/modules/my-org/my-module/my-provider + ``` + +4. Check module source URL format in Terraform configuration: + ```hcl + # Correct format + source = "terralist.${DOMAIN_GITEA}/org/module/provider" + + # Not: https://terralist.${DOMAIN_GITEA}/... + ``` + +## Additional Resources + +* [Terralist Documentation](https://www.terralist.io/) +* [Terralist GitHub Repository](https://github.com/terralist/terralist) +* [Terraform Registry Protocol](https://developer.hashicorp.com/terraform/internals/module-registry-protocol) +* [Private Module Registries Guide](https://developer.hashicorp.com/terraform/registry/private) +* [ArgoCD Documentation](https://argo-cd.readthedocs.io/) diff --git a/content/en/docs/edp/deployment/infrastructure/terraform.md b/content/en/docs/edp/deployment/infrastructure/terraform.md new file mode 100644 index 0000000..3c0bf6c --- /dev/null +++ b/content/en/docs/edp/deployment/infrastructure/terraform.md @@ -0,0 +1,100 @@ +--- +title: Terraform-based deployment of EDP +linkTitle: Terraform +weight: 10 +description: > + As-code definitions of EDP clusters, so they can be deployed reliably and consistently on OTC whenever needed. +--- + +## Overview + +The [infra-deploy](https://edp.buildth.ing/DevFW/infra-deploy) and [infra-catalogue](https://edp.buildth.ing/DevFW/infra-catalogue) repositories work together to provide a framework for deploying Edge Developer Platform instances. + +`infra-catalogue` contains individual, atomic infrastructure components: `terraform` modules and `terragrunt` [units](https://edp.buildth.ing/DevFW/infra-catalogue/src/branch/main/units) and [stacks](https://edp.buildth.ing/DevFW/infra-catalogue/src/branch/main/stacks), such as [Kubernetes clusters](https://edp.buildth.ing/DevFW/infra-catalogue/src/branch/main/modules/kubernetes) and [Postgres databases](https://edp.buildth.ing/DevFW/infra-catalogue/src/branch/main/units/postgres/terragrunt.hcl). + +`infra-deploy` then contains full [definitions](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/prod) of stacks built using these components - such as the production site at [edp.buildth.ing](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/prod/edp). It also includes [scripts](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/scripts) with which to deploy these stacks. + +Note that both repositories rely on the wide range of features available on [OTC](https://console.otc.t-systems.com). Several of these features, such as S3-compatible storage and on-demand managed Postgres instances, are not yet available on more sovereign clouds such as [Edge](https://hub.apps.edge.platform.mg3.mdb.osc.live/), so these are not currently supported. + +## Key Features + +* 'Catalogue' of infrastructure stacks to be used in deployments +* Definition of deployment stacks for each environment in prod or dev +* Scripts to govern deployment, installation and drift-correction of EDP + +## Purpose in EDP + +For our Edge Developer Platform to be reliable it must be deployable in a consistent manner. When errors occur, or after any manual alterations, the system can then be safely reset to a working state. This state should be provided in code to allow for automated validation and deployment, and to allow it to be deployed from an always-identical CI/CD pipeline rather than a variable local deployment environment. + +## Repositories + +**Infra-deploy**: [https://edp.buildth.ing/DevFW/infra-deploy](https://edp.buildth.ing/DevFW/infra-deploy) + +**Infra-catalogue**: [https://edp.buildth.ing/DevFW/infra-catalogue](https://edp.buildth.ing/DevFW/infra-catalogue) + +## Getting Started + +### Prerequisites + +* [Docker](https://docs.docker.com/) +* [Kubernetes management](https://kubernetes.io/docs/reference/kubectl/) +* Access to [OTC](https://console.otc.t-systems.com/console/) +* HashiCorp [Terraform](https://developer.hashicorp.com/terraform) or its open-source equivalent, [OpenTofu](https://opentofu.org/) +* [Terragrunt](https://terragrunt.gruntwork.io/), an orchestrator for Terraform stacks + +### Quick Start + +1. Set up OTC credentials per [README section](https://edp.buildth.ing/DevFW/infra-deploy#installation-on-otc) +2. Set cluster environment and run install script per [README section](https://edp.buildth.ing/DevFW/infra-deploy#using-the-edpbuilder) + +Alternatively, manually trigger automated [deployment pipeline](https://edp.buildth.ing/DevFW/infra-deploy/actions?workflow=deploy.yaml). +- You will be asked for essential information like the deployment name and tenant. +- Any fields marked `INITIAL` only need to be set when first creating an environment +- Thereafter, the cached values are used and the `INITIAL` values provided to the pipeline are ignored. + - Specifically, they are cached in a `terragrunt.values.hcl` file within `infra-deploy//`, where both variables are set in the pipeline + - e.g. [prod/edp](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/prod/edp/terragrunt.values.hcl) or [nonprod/garm-provider-test](https://edp.buildth.ing/DevFW/infra-deploy/src/commit/189632811944d3d3bc41e26c09262de8f215f82b/non-prod/garm-provider-test/terragrunt.values.hcl) + +### Verification + +After the deploymenet completes, and a short startup time, you should be able to access your Forgejo instance at `.buildth.ing` (production tenant) or `.t09.de` (non-prod tenant). `` is the name you provided in the deployment pipeline, or the $CLUSTER_ENVIRONMENT variable when running manually. + +For example, the primary production cluster is called [edp](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/prod/edp) and can be accessed at [edp.buildth.ing](https://edp.buildth.ing). + +#### Screens + +Deployment using production pipeline: + +![Running the deployment pipeline](../deploy-pipeline.png) +... +![Successful deploy pipeline logs](../deploy-pipeline-success.png) + +## Configuration + +Configuration of clusters is done in two ways. The first, mentioned above, is to provide `INITIAL` configuration when creating a new cluster. Thereafter, configuration is done within the relevant `infra-deploy/` directory (e.g. [prod/edp](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/prod/edp)). Variables may be changed within the [terragrunt.values.hcl](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/prod/edp/terragrunt.values.hcl) file, but equally the [terragrunt.stack.hcl](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/prod/edp/terragrunt.stack.hcl) file contains references to the lower-level code set up in `infra-catalogue`. + +These are organised in layers, according to Terragrunt's natural structure. First is a [stack](https://edp.buildth.ing/DevFW/infra-catalogue/src/branch/main/stacks), a high-level abstraction for a whole cluster. This in turn [references](https://edp.buildth.ing/DevFW/infra-catalogue/src/branch/main/stacks/forgejo/terragrunt.stack.hcl) terragrunt [units](https://edp.buildth.ing/DevFW/infra-catalogue/src/branch/main/units), which in turn are wrappers around standard _Terraform_ [modules](https://edp.buildth.ing/DevFW/infra-catalogue/src/branch/main/modules). +When deployed, the Terraform modules require a `provider.tf` file which is automatically generated by Terragrunt using [tenant-level](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/prod/tenant.hcl) and [global](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/root.hcl) configuration stored in `infra-deploy`. + +When deploying manually (e.g. with [install.sh](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/install.sh)), you can observe these layers as Terragrunt will cache them on your machine, within the `.terragrunt-stack/` directory generated within [/\/\/](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/prod/edp). + +## Troubleshooting + +### Version updates + +**Problem**: Updates to `infra-catalogue` are not immediately reflected in deployed clusters, even after running [deploy](https://edp.buildth.ing/DevFW/infra-deploy/actions?workflow=deploy.yaml). + +**Solution**: Versions must be updated. +Each cluster deployment specifies a [catalogue version](https://edp.buildth.ing/DevFW/infra-deploy/src/commit/189632811944d3d3bc41e26c09262de8f215f82b/prod/edp/terragrunt.values.hcl#L7) in its `terragrunt.values.hcl`; this refers to a tag in [infra-catalogue](https://edp.buildth.ing/DevFW/infra-catalogue/releases/tag/v2.0.6). Within `infra-catalogue`, stacks reference units and modules from the same tag. + +Thus, to test a new change to `infra-catalogue`, first make a new [tag](https://edp.buildth.ing/DevFW/infra-catalogue/tags), then update the relevant [values file](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/prod/edp/terragrunt.values.hcl) to point to it. + + +## Status + +**Maturity**: TRL-9 + +## Additional Resources + +- [Terraform](https://developer.hashicorp.com/terraform) +- [OpenTofu](https://opentofu.org/), the community-driven replacement for Terraform +- [Terragrunt](https://terragrunt.gruntwork.io/) diff --git a/content/en/docs/edp/deployment/otc/_index.md b/content/en/docs/edp/deployment/otc/_index.md new file mode 100644 index 0000000..d19d1b8 --- /dev/null +++ b/content/en/docs/edp/deployment/otc/_index.md @@ -0,0 +1,91 @@ +--- +title: Deploying to OTC +linkTitle: Deploying to OTC +weight: 100 +description: > + Open Telekom Cloud as deployment and infrastructure target +--- + +## Overview + +OTC, Open Telekom Cloud, is one of the cloud platform offerings by Deutsche +Telekom and offers GDPR compliant cloud services. The system is based on +OpenStack. + +## Key Features + +- Managed Kubernetes +- Managed services including + - Databases + - RDS PostgreSQL + - ElasticSearch + - S3 compatible storage + - DNS Management + - Backup & Restore of Kubernetes volumes and managed services + +## Purpose in EDP + +OTC is used to host core infrastructure to provide the primary, public EDP +instance and as a test bed for Kubernetes based workloads that would eventually +be deployed to EdgeConnect. + +Service components such as Forgejo, Grafana, Garm, and Coder are deployed in OTC +Kubernetes utilizing managed services for databases and storage to reduce the +maintenance and setup burden on the team. + +Services and workloads are primarily provisioned using Terraform. + +## Repository + +**Code**: + +- - Terraform modules of various + system components +- - Runs deployment worklows, + contains base configuration of deployed system instances and various + deployment scripts +- - Template of a system + configuration divided into multiple, deployable application stacks +- - System configurations + of deployed instances hydrated from the `stacks` template + +**Terraform Provider**: + +- + +**Documentation**: + +- +- + +**OTC Console** + +- + +## Managed Services + +EDP instances heavily utilize Open Telekom Cloud's (OTC) managed services to +simplify operations, enhance reliability, and allow the team to focus on +application development rather than infrastructure management. The core +components of each deployed instance run within the managed Kubernetes service. + +The following managed services are integral to EDP deployments: + +- **Cloud Container Engine (CCE)**: The managed Kubernetes service that forms + the foundation of each EDP instance, hosting all containerized core components + and workloads. +- **Relational Database Service (RDS) for PostgreSQL**: Provides scalable and + reliable PostgreSQL database instances, primarily used by applications such as + Forgejo. +- **Object Storage Service (OBS)**: Offers S3-compatible object storage for + storing backups, application data (e.g., for Forgejo), and other static + assets. +- **Cloud Search Service (CSS)**: An optional service providing robust search + capabilities, specifically used for Forgejo's indexing and search + functionalities. +- **Networking**: Essential networking components, including Virtual Private + Clouds (VPCs), Load Balancers, and DNS management, which facilitate secure and + efficient communication within the EDP ecosystem. +- **Cloud Backup and Recovery (CBR)**: Vaults are configured to automatically + back up persistent volumes created by CCE instances, ensuring data resilience + and disaster recovery readiness. diff --git a/content/en/docs/edp/deployment/otc/environments.md b/content/en/docs/edp/deployment/otc/environments.md new file mode 100644 index 0000000..ae517d0 --- /dev/null +++ b/content/en/docs/edp/deployment/otc/environments.md @@ -0,0 +1,42 @@ +--- +title: EDP Environments in OTC +linkTitle: Environments +weight: 10 +description: > + Instances of EDP are deployed into distinct OTC environments +--- + +## Architecture + +Two distinct tenants are utilized within OTC to enforce a strict separation +between production (`prod`) and non-production (`non-prod`) environments. This +segregation ensures isolated resource management, security policies, and +operational workflows, preventing any potential cross-contamination or impact +between critical production systems and development/testing activities. + +- **Production Tenant:** This tenant is exclusively dedicated to production + workloads and is bound to the primary domain `buildth.ing`. All + production-facing EDP instances and associated infrastructure reside within + this tenant, leveraging `buildth.ing` for public access and service discovery. + Within this tenant, each EDP instance is typically dedicated to a specific + customer. This design decision provides robust data separation, addressing + critical privacy and compliance requirements by isolating customer data. It + also allows for independent upgrade paths and maintenance windows for + individual customer instances, minimizing impact on other customers while + still benefiting from centralized management and deployment strategies. The + primary `edp.buildth.ing` instance and the `observability.buildth.ing` + instance are exceptions to this customer-dedicated model, serving foundational + platform roles. +- **Non-Production Tenant:** This tenant hosts all development, testing, and + staging environments, bound to the primary domain `t09.de`. This setup allows + for flexible experimentation and robust testing without impacting production + stability. + +Each tenant is designed to accommodate multiple instances of the product, EDP. +These instances are dynamically provisioned and typically bound to specific +subdomains, which inherit from their respective primary tenant domain (e.g., +`my-test.t09.de` for a non-production instance or `customer-a.buildth.ing` for a +production instance). This subdomain structure facilitates logical separation +and routing for individual EDP deployments. + + diff --git a/content/en/docs/edp/deployment/otc/instances.md b/content/en/docs/edp/deployment/otc/instances.md new file mode 100644 index 0000000..6b6d51d --- /dev/null +++ b/content/en/docs/edp/deployment/otc/instances.md @@ -0,0 +1,113 @@ +--- +title: Managing Instances +linkTitle: Managing Instances +weight: 50 +description: > + Managing instances of EDP deployed in OTC +--- + +## Deployment Strategy + +The core of the deployment strategy revolves around the primary production EDP +instance, `edp.buildth.ing`. This instance acts as a centralized control plane +and code repository, storing all application code, configuration, and deployment +pipelines. It is generally responsible for orchestrating the deployment and +updates of most other EDP instances across both production and non-production +tenants, ensuring consistency and automation. + + + +### Circular Dependency Issue + +However, a unique circular dependency exists with `observability.buildth.ing`. +While `edp.buildth.ing` manages most deployments, it cannot manage its _own_ +lifecycle. Attempting to upgrade `edp.buildth.ing` itself through its own +mechanisms could lead to critical components becoming unavailable during the +process (e.g., internal container registries going offline), preventing the +system from restarting successfully. To mitigate this, `edp.buildth.ing` is +instead deployed and managed by `observability.buildth.ing`, with all its +essential deployment dependencies located within the observability environment. +Crucially, git repositories and other resources like container images are +synchronized from `edp.buildth.ing` to the observability instance, as +`observability.buildth.ing` itself does not produce artifacts. In turn, +`edp.buildth.ing` is responsible for deploying and managing +`observability.buildth.ing` itself. This creates a carefully managed circular +relationship that ensures both critical components can be deployed and +maintained effectively without single points of failure related to +self-management. + +## Configuration + +This section outlines the processes for deploying and managing the configuration +of EDP instances within the Open Telekom Cloud (OTC) environment. Deployments +are primarily driven by Forgejo Actions and leverage Terraform for +infrastructure provisioning and lifecycle management, adhering to GitOps +principles. + +### Deployment Workflows + +The lifecycle management of EDP instances is orchestrated through a set of +dedicated workflows within the `infra-deploy` Forgejo +[repository](https://edp.buildth.ing/DevFW/infra-deploy), hosted on +`edp.buildth.ing`. These workflows are designed to emulate the standard +Terraform lifecycle, offering `plan`, `deploy`, and `destroy` operations. + +- **Triggering Deployments**: Workflows are manually initiated and require + explicit configuration of an OTC tenant and an environment to accurately + target a specific system instance. + +- **`plan` Workflow**: + - Executes a dry-run of the proposed deployment. + - Outputs the detailed `terraform plan`, showing all anticipated + infrastructure changes. + - Shows the diff of the configuration that would be applied to the + `stacks-instances` repository, reflecting changes derived from the `stacks` + repository. + +- **`deploy` Workflow**: + - Utilized for both the initial creation of new EDP instances and subsequent + updates to existing deployments. + - For new instance creation, all required configuration fields must be + populated. + - **Important Considerations**: + - Configuration fields explicitly marked as "(INITIAL)" are foundational + and, once set during the initial deployment, cannot be altered through the + workflow without manual modification of the underlying Git configuration. + - Certain changes to the configuration may lead to extensive infrastructure + redeployments, which could potentially result in data loss if not + carefully managed and accompanied by appropriate backup strategies. + +- **`destroy` Workflow**: + - Initiates the deprovisioning and complete removal of an existing EDP system + instance from the OTC environment. + - While the infrastructure is torn down, the corresponding configuration entry + is intentionally retained within the `stacks-instances` repository for + historical tracking or potential re-creation. + +> NOTE: When deploying a new instance of EDP it is bootstrapped with random +> secrets including admin logins. Initial admin credentials for individual +> components are printed in workflow output. They can be retrieved from the +> secrets withing Kubernetes at a later point in time. + + + Deploy workflow form + + +### Configuration Management + +The configuration for deployed EDP instances is systematically managed across +several Git repositories to ensure version control, traceability, and adherence +to GitOps practices. + +- **Base Configuration**: A foundational configuration entry for each deployed + system instance is stored directly within the `infra-deploy` repository. +- **Complete System Configuration**: The comprehensive configuration for a + system instance, derived from the `stacks` template repository, is maintained + in the `stacks-instances` repository. +- **GitOps Synchronization**: ArgoCD continuously monitors the + `stacks-instances` repository. It automatically detects and synchronizes any + discrepancies between the desired state defined in Git and the actual state of + the deployed system within the OTC Kubernetes cluster. The configurations in + the `stacks-instances` repository are organized by OTC tenant and instance + name. ArgoCD monitors only the portion of the repository that is relevant to + its specific instance. diff --git a/content/en/docs/edp/deployment/otc/workflow-deploy-form.png b/content/en/docs/edp/deployment/otc/workflow-deploy-form.png new file mode 100644 index 0000000..5f3694f Binary files /dev/null and b/content/en/docs/edp/deployment/otc/workflow-deploy-form.png differ diff --git a/content/en/docs/edp/documentationsystem.md b/content/en/docs/edp/documentationsystem.md new file mode 100644 index 0000000..1d8a337 --- /dev/null +++ b/content/en/docs/edp/documentationsystem.md @@ -0,0 +1,31 @@ +--- +title: "Documentation System" +linkTitle: "Documentation System" +weight: 100 +description: This documentation system, built on the 'documentation as code' principle, is used internally and recommended for all development teams. +--- + +Embracing the powerful philosophy of **Documentation as Code**, the entire +documentation is authored and meticulously maintained as plain text Markdown +files. These files are stored within a Git repository, allowing for the +leveraging of version control to track changes, facilitate collaborative +contributions, and ensure a robust review process, much like source code. + +The documentation source code is hosted at +. The `README` +files within this repository provide detailed instructions on how to contribute +to and build the documentation. It is primarily powered by +[Hugo](https://gohugo.io/), a fast and flexible static site generator, which +transforms the Markdown content into a production-ready website. To enhance +clarity and understanding, sophisticated diagramming tools are integrated: +[Mermaid.js](https://mermaid.js.org/) for creating dynamic charts and diagrams +from text, and [LikeC4](https://likec4.dev/) for generating C4 model +architecture diagrams directly within the documentation. + +Changes pushed to the `main` branch of the repository automatically trigger the +continuous integration and deployment (CI/CD) pipeline. This process is +orchestrated using [Forgejo Actions](/docs/edp/forgejo/actions/), which +automates the build of the static site. Subsequently, the updated documentation +is automatically deployed to . This streamlined +workflow guarantees that the documentation is always current, accurately +reflecting the latest system state, and readily accessible to all stakeholders. diff --git a/content/en/docs/edp/forgejo/_index.md b/content/en/docs/edp/forgejo/_index.md new file mode 100644 index 0000000..df33f90 --- /dev/null +++ b/content/en/docs/edp/forgejo/_index.md @@ -0,0 +1,108 @@ +--- +title: Forgejo +linkTitle: Forgejo +weight: 5 +description: Forgejo provides source code management, project management, and CI/CD automation for the EDP. +--- + +The internal service is officially designated as the Edge Developer Platform (EDP). It is hosted at **[edp.buildth.ing](https://edp.buildth.ing)**. The domain selection followed a democratic team process to establish a unique identity distinct from standard corporate naming conventions. + +![alt text](image.png) + +![alt text](image-1.png) + +## Technical Architecture & Deployment + +### Infrastructure Stack + +The platform is hosted on the **Open Telekom Cloud (OTC)**. The infrastructure adheres to Infrastructure-as-Code (IaC) principles. + +* **Deployment Method:** The official Forgejo Helm Chart is deployed via **ArgoCD**. +* **Infrastructure Provisioning:** **Terraform** is used to provision all underlying OTC services, including: + * **Container Orchestration**: CCE (Cloud Container Engine): Kubernetes + * **Database:** RDS (Distributed Cache Service): PostgreSQL + * **Caching:** DCS (Distributed Cache Service): Redis + * **Object Storage:** OBS (Object Storage Service, S3-compatible): for user data (avatars, attachments). + * **Search:** CSS (Cloud Search Service): Elasticsearch + +### The "Self-Replicating" Pipeline + +A key architectural feature is the ability of the platform to maintain itself. A Forgejo Action can trigger the deployment script, which runs Terraform and syncs ArgoCD, effectively allowing "Forgejo to create/update Forgejo." + +```mermaid +graph TD + subgraph "Open Telekom Cloud (OTC)" + subgraph "Control Plane" + Dev[DevOps Engineer] -->|Triggers| Pipeline[Deployment Pipeline] + Pipeline -->|Executes| TF[Terraform] + end + + subgraph "Provisioned Infrastructure" + TF -->|Provisions| CCE[(CCE K8s Cluster)] + TF -->|Provisions| RDS[(RDS PostgreSQL)] + TF -->|Provisions| Redis[(DCS Redis)] + TF -->|Provisions| S3[(OBS S3 Bucket)] + TF -->|Provisions| CSS[(CSS Elasticsearch)] + end + + subgraph "Application Layer (on CCE K8s)" + Pipeline -->|Helm Chart| Argo[ArgoCD] + Argo -->|Deploys| ForgejoApp[Forgejo] + end + + CCE -- Runs --> Argo + CCE -- Runs --> ForgejoApp + ForgejoApp -->|Connects| RDS + ForgejoApp -->|Connects| Redis + ForgejoApp -->|Connects| S3 + ForgejoApp -->|Connects| CSS + end +``` + +### Migration History + +The initial environment was a manual setup on the Open Sovereign Cloud (OSC). Once the automation stack (Terraform/ArgoCD) was matured, the platform was migrated to the current OTC environment. + +## Application Extensions + +### Core Functionality + +Beyond standard Git versioning, the platform utilizes: + +* **Releases:** Hosting binaries for software distribution (e.g., Edge Connect CLI). +* **CI/CD:** Extensive pipeline usage for build, test, and deployment automation. +* **Note on Issues:** While initially used, issue tracking was migrated to JIRA to align with the broader IPCEI program standards. + +### GARM (Git-based Actions Runner Manager) + +The primary technical innovation was the integration of [GARM](./actions/runner-orchestration.md) to enable ephemeral, scalable runners. This required extending Forgejo's capabilities to support GitHub-compatible runner registration and webhook events. + +## Development Methodology & Contributions + +### Workflow + +* **Branching Strategy:** Trunk-based development was utilized to ensure rapid integration. +* **Collaboration:** The team adopted **Mob Programming**. This practice proved essential for knowledge sharing and onboarding junior developers, creating a resilient and high-intensity learning environment. +* **Versions:** The platform evolved from Forgejo v7/8 to the current v11.0.3-edp1. An upgrade is pending to leverage the latest upstream GARM features. + +### Open Source Contributions + +We actively contributed our extensions back to the upstream Forgejo project in [a list of Codeberg.org pull requests](../../governance/_index.md#forgejo) + + +### Artifact Caching (Pull-Through Proxy) + +We implemented a feature allowing Forgejo to act as a pull-through proxy for remote container registries, optimizing bandwidth and build speeds. + +* [Source Code Branch: refactor-remote-registry-client](https://edp.buildth.ing/DevFW/edp-forgejo/src/branch/refactor-remote-registry-client) + +## Key Performance Indicators (KPIs) + +These KPIs measure the effectiveness of the Forgejo setup and quantify our strategic commitment to the Forgejo community. + +| KPI | Description | Target / Benchmark | +| :--- | :--- | :--- | +| **Deployment Frequency** | Frequency of successful pipeline executions. | High (Daily/On-demand) | +| **Artifact Cache Hit Rate** | Percentage of build requests served by the local Forgejo proxy. | > 90% (Reduced external traffic) | +| **Upstream Contribution** | Percentage of GARM-related features contributed back to Codeberg. | 100% (No vendor lock-in) | +| **PR Resolution Time** | Average time for upstream community review and merge. | < 14 days (Healthy collaboration) | diff --git a/content/en/docs/edp/forgejo/actions/_index.md b/content/en/docs/edp/forgejo/actions/_index.md new file mode 100644 index 0000000..7dbf9ed --- /dev/null +++ b/content/en/docs/edp/forgejo/actions/_index.md @@ -0,0 +1,132 @@ +--- +title: Forgejo Actions +linkTitle: Forgejo Actions +weight: 10 +description: GitHub Actions-compatible CI/CD automation +--- + +## Overview + +[Forgejo Actions](https://forgejo.org/docs/next/user/actions/reference/) is a built-in CI/CD automation system that enables developers to define and execute workflows directly within their Forgejo repositories. As a continuous integration and continuous deployment platform, Forgejo Actions automates software development tasks such as building, testing, packaging, and deploying applications whenever specific events occur in your repository. + +Forgejo Actions provides [GitHub Actions similarity](https://forgejo.org/docs/latest/user/actions/github-actions/), allowing teams to easily adapt existing GitHub Actions workflows and marketplace actions with minimal or no modifications. This compatibility significantly reduces migration effort for teams transitioning from GitHub to Forgejo, while maintaining familiar syntax and workflow patterns. + +Workflows are defined using YAML files stored in the `.forgejo/workflows/` directory of your repository. Each workflow consists of one or more jobs that execute on action runners when triggered by repository events such as pushes, pull requests, tags, or manual dispatch. This enables automation of repetitive development tasks, ensuring consistent build and deployment processes across your software delivery pipeline. + +By integrating CI/CD directly into the repository management platform, Forgejo Actions eliminates the need for external CI/CD systems, reducing infrastructure complexity and providing a unified development experience. + +## Key Features + +* **Automated Workflow Execution** - Execute automated workflows triggered by repository events such as code pushes, pull requests, tag creation, or manual dispatch, enabling continuous integration and deployment without manual intervention +* **GitHub Actions Similarity** - Maintains similarity with GitHub Actions syntax and workflows, allowing reuse of existing actions from the GitHub marketplace and simplifying migration from GitHub-based CI/CD pipelines + +## Purpose in EDP + +Forgejo Actions enables EDP customers to execute complete CI/CD pipelines directly on the platform for building, testing, packaging, and deploying software. This integrated automation capability is fundamental to the EDP value proposition. + +Without native CI/CD automation, customers would face significant integration overhead connecting external CI/CD systems to their EDP workflows. This fragmentation would complicate pipeline management, increase operational complexity, and reduce the platform's effectiveness as a unified development solution. + +Since Forgejo Actions is natively integrated into Forgejo, EDP provides this critical CI/CD capability with minimal additional infrastructure. Customers benefit from seamless automation without requiring separate tool provisioning, authentication configuration, or cross-system integration maintenance. + +## Getting Started + +### Prerequisites + +* Installed Forgejo +* Installed Forgejo runner (see [Runner Installation Quick Start](/docs/edp/forgejo/actions/runners/#quick-start)) + +### Quick Start + +1. Create a repository +2. Create file `/.forgejo/workflows/example.yaml` + +```yaml +# example.yaml +name: example + +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Hello World + run: | + echo "Hello World!" +``` + +1. Navigate to Actions > example.yaml > Run workflow + +### Verification + +See the logs, there should appear a "Hello World!" in "Hello World" Step + +## Usage Examples + +### Use actions to deploy infrastructure + +See [infra-deploy](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/.github/workflows/deploy.yaml) repository as a example + +### Use goreleaser to build, test, package and release a project + +This pipeline is triggered when a tag with the prefix `v` is pushed to the repository. +Then, it fetches the current repository with all tags and checks out the version for the current run. + +After that the application is being built. + +```yaml +# .github/workflows/release.yaml +name: ci + +on: + push: + tags: + - v* + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up Go + uses: actions/setup-go@v6 + with: + go-version: ">=1.25.1" + - name: Test code + run: make test + - name: Import GPG key + id: import_gpg + uses: https://github.com/crazy-max/ghaction-import-gpg@v6 + with: + gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} + passphrase: ${{ secrets.GPG_PASSPHRASE }} + - name: Run GoReleaser + uses: https://github.com/goreleaser/goreleaser-action@v6 + env: + GITEA_TOKEN: ${{ secrets.PACKAGES_TOKEN }} + GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }} + with: + args: release --clean +``` + +## Troubleshooting + +### The job is not being executed by a runner + +**Problem**: The job is not being picked up by a runner + +**Solution**: Probably, there is currently no runner available with the label defined in your job `runs-on` attribute. Check the available runner for your repository by navigating to the repository settings > Actions > Runners. Now you can see all available runners and their Labels. Choose on of them as your `runs-on` attribute. + +## Status + +**Maturity**: Production + +## Additional Resources + +* [Forgejo Actions](https://forgejo.org/docs/next/user/actions/reference/) +* [GitHub Actions](https://github.com/features/actions) +* [GitHub Actions similarity](https://forgejo.org/docs/latest/user/actions/github-actions/) diff --git a/content/en/docs/edp/forgejo/actions/runners/_index.md b/content/en/docs/edp/forgejo/actions/runners/_index.md new file mode 100644 index 0000000..f54a8e4 --- /dev/null +++ b/content/en/docs/edp/forgejo/actions/runners/_index.md @@ -0,0 +1,178 @@ +--- +title: Runners +linkTitle: Runners +weight: 20 +description: > + Self-hosted runner infrastructure with orchestration capabilities +--- + +## Overview + +Action runners are the execution environment for Forgejo Actions workflows. By design, runners execute remote code submitted through CI/CD pipelines, making their architecture highly dependent on the underlying infrastructure and security requirements. + +The primary objective in any runner setup is the separation and isolation of individual runs. Since runners are specifically built to execute arbitrary code from repositories, proper isolation is critical to prevent data and secret leakage between different pipeline executions. Each runner must be thoroughly cleaned or recreated after every job to ensure no residual data persists that could compromise subsequent runs. + +Beyond isolation concerns, action runners represent high-value targets for supply chain attacks. Runners frequently compile, build, and package software binaries that may be distributed to thousands or millions of end users. Compromising a runner could allow attackers to inject malicious code directly into the software supply chain, making runner security a critical consideration in any deployment. + +This document explores different runner architectures, examining their security characteristics, operational trade-offs, and suitability for various infrastructure environments and showing off an example deployment using a Containerized Kubernetes environment. + +## Key Features + +* Consistent environment for Forgejo Actions +* Primary location to execute code e.g. deployments +* Good [security practices](/docs/edp/forgejo/actions/runners/garm/) essential due to broad remit + +## Purpose in EDP + +A actions runner are executing Forgejo actions, which can be used to build, test, package and deploy software. To ensure that EDP customers do not need to provision their own action runners with high efford, we provide globally registered actions runners to pick up jobs. + +## Repository + +**Code**: + +* [Runner on edge connect using GARM](https://edp.buildth.ing/DevFW-CICD/garm-provider-edge-connect/src/branch/main/runner) +* [Static runner](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/forgejo/forgejo-runner/dind-docker.yaml) + +**Documentation**: [Forgejo Runner installation guide](https://forgejo.org/docs/latest/admin/actions/runner-installation/) + +## Runner Setups + +Different runner deployment architectures offer varying levels of isolation, security, and operational complexity. The choice depends on your infrastructure capabilities, security requirements, and operational overhead tolerance. + +### On Bare Metal + +Bare metal runners execute directly on physical hardware without virtualization layers. + +**Advantages:** + +* Maximum performance with direct hardware access +* Complete hardware isolation between different physical machines +* No hypervisor overhead or virtualization complexity + +**Disadvantages:** + +* Difficult to clean after each run, requiring manual intervention or full OS reinstallation +* Long provisioning time for individual runners +* Complex provisioning processes requiring physical access or remote management tools +* Limited scalability due to physical hardware constraints +* Higher risk of persistent contamination between runs + +**Use case:** Best suited for specialized workloads requiring specific hardware, performance-critical builds, or environments where virtualization is not available. + +### On Virtual Machines + +VM-based runners operate within virtualized environments managed by a hypervisor. + +**Advantages:** + +* Strong isolation through hypervisor and hardware memory mapping +* Virtual machine images enable faster provisioning compared to bare metal +* Easy to snapshot, clone, and restore to clean states +* Better resource utilization through multiple VMs per physical host +* Automated cleanup by destroying and recreating VMs after each run + +**Disadvantages:** + +* Requires hypervisor infrastructure and management +* Slower provisioning than containers +* Higher resource overhead compared to containerized solutions +* More complex orchestration for scaling runner fleets + +**Use case:** Ideal for environments requiring strong isolation guarantees, multi-tenant scenarios, or when running untrusted code from external contributors. + +### In Containerized Environment + +Container-based runners execute within isolated containers using OCI-compliant runtimes. + +**Advantages:** + +* Kernel-level isolation using Linux namespaces and cgroups +* Fast provisioning and startup times +* Easy deployment through standardized OCI container images +* Lightweight resource usage enabling high-density runner deployments +* Simple orchestration with Kubernetes or Docker Compose + +**Disadvantages:** + +* Weaker isolation than VMs since containers share the host kernel +* Requires elevated permissions or privileged access for certain workflows (e.g., Docker-in-Docker) +* Potential kernel-level vulnerabilities affect all containers on the host +* Container escape vulnerabilities pose security risks in multi-tenant environments + +**Use case:** Best for high-volume CI/CD workloads, trusted code repositories, and environments prioritizing speed and efficiency over maximum isolation. + +## Getting Started + +### Prerequisites + +* Forgejo instance +* Runner registration token has been generated for a given scope + * Global runners in `admin settings > actions > runner > Create new runner` + * Organization runners in `organization settings > actions > runner > Create new runner` + * Repository runners in `repository settings > actions > runner > Create new runner` +* Kubernetes cluster + +### Quick Start + +1. Download [Kubernetes manifest](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/forgejo/forgejo-runner/dind-docker.yaml) +2. Replace `${RUNNER_SECRET}` with the runner registration token +3. Replace `${RUNNER_NAME}` with the name the runner should have +4. Replace `${FORGEJO_INSTANCE_URL}` with the instance url +5. (if namespace does not exists) `kubectl create ns gitea` +6. Run `kubectl apply -f ` + +### Verification + +Take a look at the runners page, where you generated the token. There should be 3 runners in idle state now. + +### Sequence Diagrams + +```mermaid +--- +title: Forgejo Runner executed in daemon mode +--- +sequenceDiagram + Runner->>Forgejo: Register runner + loop Job Workflow + Runner->>Forgejo: Fetch job + Runner->>Runner: Work on job + Runner->>Forgejo: Send result + end +``` + +### Deployment Architecture + +[Add infrastructure and deployment diagrams showing how the component is deployed] + +## Configuration + +There is a sophisticated [configuration file](https://forgejo.org/docs/latest/admin/actions/runner-installation/#configuration), where finetuning can be done. +The most important thing is done by using labels to define the execution environment. + +The label `ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04` (as used in [example runner](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/forgejo/forgejo-runner/dind-docker.yaml)). That a job that uses `ubuntu-latest` label will be executed as docker container inside the `ghcr.io/catthehacker/ubuntu:act-22.04` image. + +Alternatives to `docker` are [`lxc`](https://forgejo.org/docs/latest/admin/actions/security/#job-containers-w-lxc) and [`host`](https://forgejo.org/docs/latest/admin/actions/security/#execution-on-host-host). + +## Troubleshooting + +### In containerized environments, I want to build container images + +**Problem**: In containerized environment, containers usually do not have many privileges. To start or build containers additional privleges, usually root is required inside of the kernel, the container runtime needs to manage linux namespaces and cgroups. + +**Solution**: A partial solution for this is `buildkitd` utilizing `rootlesskit`. This allows containers to be **built** (but not run) in a non root environment. Several examples can be found in the [official buildkit repo](https://github.com/moby/buildkit/tree/master/examples/kubernetes). + +***Rootless vs User namespaces:*** + +As of Kubernetes 1.33, uid mapping can be enabled for pods using `pod.spec.hostUsers: false` utilizing user namespaces to map user and group ids between the container ids (0-65535) to high host ids (0-65535 + n * 65536) where n is an arbitrary number of containers. This allows that the container runs with actual root permission in its user namespace without being root on the host system. + +Rootless is considered the more secure version, as the executable is mapped to a privileged entitiy at all. + +## Status + +**Maturity**: Beta + +## Additional Resources + +* [Forgejo Runner installation guide](https://forgejo.org/docs/latest/admin/actions/runner-installation) +* [Static Runners on Kubernetes](https://edp.buildth.ing/DevFW-CICD/stacks/src/branch/main/template/stacks/forgejo/forgejo-runner/dind-docker.yaml) +* [Runner Orchestartion using GARM on Edge Connect](../runner-orchestration) diff --git a/content/en/docs/edp/forgejo/actions/runners/garm.md b/content/en/docs/edp/forgejo/actions/runners/garm.md new file mode 100644 index 0000000..75e1896 --- /dev/null +++ b/content/en/docs/edp/forgejo/actions/runners/garm.md @@ -0,0 +1,176 @@ +--- +title: Orchestration with GARM +linkTitle: Orchestration with GARM +weight: 30 +description: Using GARM to manage short-lived Forgejo runners +--- + +## Overview + +GARM provides on-demand runner orchestration for Forgejo Actions through dynamic autoscaling. As Forgejo has similar API structure to Gitea (from which it was forked), GARM's Gitea/GitHub compatibility makes it a natural fit for automated runner provisioning. GARM supports custom providers, enabling runner infrastructure deployment across multiple cloud and infrastructure platforms. + +A custom edge-connect provider was implemented for GARM to enable infrastructure provisioning. Additionally, Forgejo was adapted to align more closely with Gitea's API, ensuring seamless integration with GARM's orchestration capabilities. + +## Key Features + +* Autoscales Forgejo Actions runners dynamically based on workload demand +* Leverages edge-connect infrastructure for distributed runner provisioning + +## Purpose in EDP + +- Provides CI/CD infrastructure for all software development projects +- Enhances the EDP platform capabilities through improved Forgejo automation +- Enables teams to focus on development by consuming platform-managed runners without capacity planning concerns + +## Repository + +**Code**: +- [GARM Provider for Edge Connect](https://edp.buildth.ing/DevFW-CICD/garm-provider-edge-connect) +- [GARM deploy script](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/scripts/local-helm.sh) +- [GARM deploy manifests](https://edp.buildth.ing/DevFW/garm-deploy.git) + +## Getting Started + +### Prerequisites + +* Container Runtime installed (e.g. docker) +* Forgejo, Gitea or Github + +### Quick Start + +1. Clone the [GARM Provider repository](https://edp.buildth.ing/DevFW-CICD/garm-provider-edge-connect/) +2. Build the Docker image: `docker buildx build -t .` +3. Push the image to your container registry +4. Deploy GARM using the [deployment script](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/scripts/local-helm.sh) from the [infra-deploy](https://edp.buildth.ing/DevFW/infra-deploy) repository, targeting your Kubernetes cluster: `./local-helm.sh --garm` + +### Verification + +- Verify the GARM pod is running: `kubectl get pods -n garm` +- Retrieve the GARM domain endpoint: `kubectl get ing -n garm` +- Get the GARM admin password: `kubectl get secret -n garm garm-credentials -o json | jq .data.GARM_ADMIN_PASSWORD -r | base64 -d` +- Configure endpoints, credentials, repositories, and runner pools in GARM as described in [TODO](TODO) + +## Integration Points + +* **Forgejo**: Picks up pending action jobs, listen in Forgejo +* **Edge Connect**: Uses this infrastructure to deploy runners that can pick up open jobs in forgejo + +## Architecture + +The primary technical innovation was the integration of **[GARM](https://github.com/cloudbase/garm)** to enable ephemeral, scalable runners. This required extending Forgejo's capabilities to support GitHub-compatible runner registration and webhook events. + +**Workflow Architecture:** + +1. **Event:** A workflow event occurs in Forgejo. +2. **Trigger:** A webhook notifies GARM. +3. **Provisioning:** GARM spins up a fresh, ephemeral runner. +4. **Execution:** The runner registers via the API, executes the job, and is terminated immediately after, ensuring a clean build environment. + +```mermaid +sequenceDiagram + participant User + participant Forgejo + participant GARM + participant Runner as Ephemeral Runner + + User->>Forgejo: Push Code / Trigger Event + Forgejo->>GARM: Webhook Event (Workflow Dispatch) + GARM->>Forgejo: Register Runner (via API) + GARM->>Runner: Spin up Instance + Runner->>Forgejo: Request Job + Forgejo->>Runner: Send Job Payload + Runner->>Runner: Execute Steps + Runner->>Forgejo: Report Status + GARM->>Runner: Terminate (Ephemeral) +``` +### Sequence Diagrams + +The diagram below shows how a trigger of an action results in deployment of a runner on edge-connect. + +{{}} + +### Deployment Architecture + +{{}} + +## Configuration + +### Provider Setup + +The config below configures an external provder for garm. Especially important is the `provider.external.config_file` which refers to the configuration of the external provider (example below) and `provider.external.provider_executable` which needs to point to the provider executable. + + +```config.toml +# config.toml +... +[[provider]] +name = "edge-connect" +description = "edge connect provider" +provider_type = "external" + +[provider.external] +config_file = "/etc/garm/edge-connect-provider-config.toml" +provider_executable = "/opt/garm/providers.d/garm-provider-edge-connect" +environment_variables = ["EDP_EDGE_CONNECT_"] +``` + +```edge-connect-provider-config.toml +# edge-connect-provider-config.toml +log_file = "/garm/provider.log" +credentials_file = "/etc/garm-creds/credentials.toml" # to authenticate agains edge_connect.url + +[edge_connect] +organization = "edp-developer-framework" +region = "EU" +url = "https://hub.apps.edge.platform.mg3.mdb.osc.live" +default_flavor = "EU.small" + +[edge_connect.cloudlet] +name = "Munich" +organization = "TelekomOP" +``` + +```credentials.toml +# credentials.toml for edge connect platform +username = "" +password = "" +``` + +### Runner Pool Configuration + +Once the configuration is in place and garm has been deployed. You can connect garm to Forgejo/Gitea/Github, using the commands below. If you have a forgejo instance, you want to create a gitea endpoint. + +```sh +# https://edp.buildth.ing/DevFW/garm-deploy/src/branch/master/helm/garm/templates/init-job.yaml#L39-L56 +garm-cli init --name gitea --password ${GARM_ADMIN_PASSWORD} --username ${GARM_ADMIN_USERNAME} --email ${GARM_ADMIN_EMAIL} --url ${GARM_URL} +if [ $? -ne 0 ]; then + echo "garm maybe already initialized" + exit 0 +fi + +# API_GIT_URL=https://garm-provider-test.t09.de/api/v1 +# GIT_URL=https://garm-provider-test.t09.de +garm-cli gitea endpoint create \ +--api-base-url ${API_GIT_URL} \ +--base-url ${GIT_URL} \ +--description "My first Gitea endpoint" \ +--name local-gitea + +garm-cli gitea credentials add \ +--endpoint local-gitea \ +--auth-type pat \ +--pat-oauth-token $GITEA_TOKEN \ +--name autotoken \ +--description "Gitea token" +``` + +Now, connect to the WebUI, use `GARM_ADMIN_USERNAME` and `GARM_ADMIN_PASSWORD` as credentials to authenticate. Click on repositories and + +## Status + +**Maturity**: Beta + +## Additional Resources + +* [GARM repository](https://github.com/cloudbase/garm) + * [How to use](https://github.com/cloudbase/garm/blob/main/doc/using_garm.md) diff --git a/content/en/docs/edp/forgejo/image-1.png b/content/en/docs/edp/forgejo/image-1.png new file mode 100644 index 0000000..d247705 Binary files /dev/null and b/content/en/docs/edp/forgejo/image-1.png differ diff --git a/content/en/docs/edp/forgejo/image.png b/content/en/docs/edp/forgejo/image.png new file mode 100644 index 0000000..944674e Binary files /dev/null and b/content/en/docs/edp/forgejo/image.png differ diff --git a/content/en/docs/edp/forgejo/project-mgmt.md b/content/en/docs/edp/forgejo/project-mgmt.md new file mode 100644 index 0000000..01fb113 --- /dev/null +++ b/content/en/docs/edp/forgejo/project-mgmt.md @@ -0,0 +1,78 @@ +--- +title: Project Management in Forgejo +linkTitle: Project Management +weight: 50 +description: > + Organization-level project and issue management +--- + +{{% alert title="Discontinued Feature" color="warning" %}} +This feature was implemented at a prototype level but never reached production readiness. Development was discontinued in favor of other platform priorities. +{{% /alert %}} + +## Overview + +This was an attempt to extend Forgejo's project and issue management capabilities beyond the repository level. The goal was to enable organizations and users to create projects and issues that could span multiple repositories or exist independently of any repository. + +## Problem Statement + +Forgejo's issue management is repository-centered. While this works well for code-specific issues, it creates challenges for broader project management: + +* **Cross-repository work**: Tasks often span multiple repositories but must be artificially tied to one +* **Non-code projects**: Some projects don't map cleanly to a repository (e.g., planning, documentation initiatives) +* **Related repositories**: Symbiotically related repos would benefit from shared issue tracking + +Real-world examples: +* Upstream: [forgejo-actions-feature-requests](https://code.forgejo.org/forgejo/forgejo-actions-feature-requests) - arguably doesn't need repository/code functionality +* EDP: [infra-deploy](https://edp.buildth.ing/DevFW/infra-deploy) and [infra-catalogue](https://edp.buildth.ing/DevFW/infra-catalogue) - symbiotically related projects + +## Implementation Status + +**Status**: Prototype level - basic operations work but not production-ready + +**What was built:** +* Projects can be created at the organization/user level (not tied to repositories) +* Issues can be created within these organization-level projects +* Issues can be moved between columns within any projects +* Basic Create and View Issue pages function without errors + +**What was incomplete:** +* Several features on Create/View pages disabled rather than adapted, e.g. due dates +* Repository-specific features (tags, code reviews, etc.) not resolved for org-level context +* Broader issue management features not yet functional + +## Discontinuation + +Development was discontinued due to: +* Project priorities shifted to other platform features +* Scope of remaining work deemed too large for the anticipated value +* Concerns about maintaining a custom feature divergent from upstream Forgejo + +## Repository + +**Code**: [edp-forgejo](https://edp.buildth.ing/DevFW/edp-forgejo) (Remark: You must be logged into edp.buildth.ing as the repo is internal) + +This is a fork of upstream Forgejo with the organization-level project management changes. The fork is based on Forgejo v11.x (upstream has progressed to at least v13.x). + +**Implementation**: Changes to both UI (in TypeScript) and server-side (Golang) functionality. + +## Technical Approach + +The implementation involved: +* Minimally modifying Forgejo's data model to associate projects with organizations/users instead of repositories +* Adapting issue creation and display logic to work without repository context +* Addressing repository-specific settings (labels, milestones, code review integration) for org-level issues +* UI changes to support project creation and issue management at the organization level + +## Integration Points + +This feature was developed as an isolated extension to Forgejo. Its code is within the `edp-forgejo` repository alongside other EDP updates - such as magenta colour scheme - but in terms of functionality has minimal overlap/links with other EDP components. + +## Lessons Learned + +* Repository-centric design is deeply embedded in Forgejo's architecture +* Maintaining custom features in a fork creates significant maintenance burden +* The scope of fully-functional cross-repository project management is substantial + * This is related to Issues and Repositories being two of the most extensive features in Forgejo +* Alternative approaches (using dedicated project management tools, or simply 'shell' repositories) may be more sustainable +* Clear buy-in is needed for the long term in order to make a change like this viable diff --git a/content/en/docs/edp/operations/_index.md b/content/en/docs/edp/operations/_index.md new file mode 100644 index 0000000..18475b8 --- /dev/null +++ b/content/en/docs/edp/operations/_index.md @@ -0,0 +1,80 @@ +--- +title: "Operations" +linkTitle: "Operations" +weight: 40 +description: > + Operational guides for deploying, monitoring, and maintaining the Edge Developer Platform components. +--- + +## Operations Overview + +This section outlines some of the operational aspects of the Edge Developer +Platform (EDP). The approach emphasizes a "developer operations" mode, primarily +focusing on monitoring and issue resolution rather than traditional operations. + +## Deployments + +### EDP Clusters + +For details on deploying instances of EDP on OTC, see +[this](/docs/edp/deployment/otc/) section. + +#### Further Infrastructural References + +- OTC Documentation: + - [IPCEI-CIS Confluence - OTC](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/1000105031/OTC) + +### Edge Connect + +The `edge` and `orca` clouds within Edge Connect serve as deployment targets for +EDP applications. These environments are [Gardener](https://gardener.cloud/) +Kubernetes clusters. + +For general use, interaction with Edge Connect is intended via its web UI: + + +![Edge Hub](edge-hub.png) + +#### Further Infrastructural References + +![Gardener](gardener.png) + +Cluster-level access is available for addressing operational issues. Details on +obtaining access are provided in the following resources: + +- [IPCEI-CIS Confluence - Edge Cloud](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/1122869593/Edge+Cloud) +- [IPCEI-CIS Jira - Edge Cloud Access](https://jira.telekom-mms.com/browse/IPCEICIS-6222?focusedId=3411527&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-3411527) +- **Hint:** To authenticate and obtain the cluster `kubectl` context, retrieve + the `kubeconfig` for the `platform` from your Gardener Account Settings. Then, + execute: + ```bash + gardenctl target --garden mg3 --project platform --shoot edge + ``` + +## Monitoring & Observability + +The `observability.buildth.ing` [cluster](https://observability.buildth.ing/) within the Prod OTC [tenant](https://edp.buildth.ing/DevFW/infra-deploy/src/branch/main/prod/observability) is designated +for monitoring platform stacks, with visualization primarily through +[Grafana](https://grafana.observability.buildth.ing). Currently, a formal +operational monitoring lifecycle with defined metrics and alerts is not fully +established, reflecting the current developer-centric operational mode. + +Login credentials can be found in the `grafana-admin-credentials` secret within the cluster. + +> NOTE: The deployed stacks are depending on the `is_observability` flag setting (to include extra components for observability) in the `deploy` workflow within the `infra-deploy` repository. + +![EDP Grafana Dashboard](edp-grafana.png) + +## Maintenance + +EDP maintenance follows an issue-driven strategy. + +### Updates & Upgrades + +Updates are performed on-demand for individual components in +[stacks](/docs/edp/deployment/infrastructure/stacks/). + +### Backup & Recovery + +Customer data within EDP is regularly backed up. Refer to +[IPCEICIS-5017](https://jira.telekom-mms.com/browse/IPCEICIS-5017) for details. diff --git a/content/en/docs/edp/operations/edge-hub.png b/content/en/docs/edp/operations/edge-hub.png new file mode 100644 index 0000000..d272307 Binary files /dev/null and b/content/en/docs/edp/operations/edge-hub.png differ diff --git a/content/en/docs/edp/operations/edp-grafana.png b/content/en/docs/edp/operations/edp-grafana.png new file mode 100644 index 0000000..97600b1 Binary files /dev/null and b/content/en/docs/edp/operations/edp-grafana.png differ diff --git a/content/en/docs/edp/operations/gardener.png b/content/en/docs/edp/operations/gardener.png new file mode 100644 index 0000000..d4a6ab9 Binary files /dev/null and b/content/en/docs/edp/operations/gardener.png differ diff --git a/content/en/docs/edp/operations/otc-hub.png b/content/en/docs/edp/operations/otc-hub.png new file mode 100644 index 0000000..60a70fd Binary files /dev/null and b/content/en/docs/edp/operations/otc-hub.png differ diff --git a/content/en/docs/getting-started/_index.md b/content/en/docs/getting-started/_index.md deleted file mode 100644 index 80ac3ac..0000000 --- a/content/en/docs/getting-started/_index.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "Getting Started" -linkTitle: "Getting Started" -weight: 20 -description: > - Quick start guides and onboarding information for the Edge Developer Platform. ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: TBD -* **Assignee**: Team -* **Status**: Draft - Structure only -* **Last Updated**: 2025-11-16 -* **TODO**: - * [ ] Add concrete quick start steps - * [ ] Include prerequisites and access information - * [ ] Create first application tutorial -{{% /alert %}} - -## Welcome to EDP - -This section helps you get started with the Edge Developer Platform, whether you're a developer building applications or a platform engineer managing infrastructure. - -## Quick Start for Developers - -### Prerequisites - -* Access to EDP instance -* Git client installed -* kubectl configured (for Kubernetes access) -* Basic knowledge of containers and CI/CD - -### Your First Application - -1. **Access the Platform**: Log in to Backstage portal -2. **Clone Repository**: Get your application repository from Forgejo/GitLab -3. **Configure Pipeline**: Set up CI/CD in Woodpecker or ArgoCD -4. **Deploy**: Push code and watch automated deployment - -### Next Steps - -* Explore available components and services -* Review platform documentation and best practices -* Join the developer community - -## Quick Start for Platform Engineers - -### Platform Access - -* Kubernetes cluster access -* Infrastructure management tools -* Monitoring and observability dashboards - -### Key Resources - -* Platform architecture documentation -* Operational runbooks -* Troubleshooting guides - -## Documentation Template - -When creating "Getting Started" content for a component: - -1. **Prerequisites**: What users need before starting -2. **Step-by-Step Guide**: Clear, numbered instructions -3. **Verification**: How to confirm success -4. **Common Issues**: FAQ and troubleshooting -5. **Next Steps**: Links to deeper documentation diff --git a/content/en/docs/governance/_index.md b/content/en/docs/governance/_index.md index c5ab30c..f059879 100644 --- a/content/en/docs/governance/_index.md +++ b/content/en/docs/governance/_index.md @@ -3,79 +3,19 @@ title: "Governance" linkTitle: "Governance" weight: 100 description: > - Project history, architecture decisions, compliance, and audit information. + Project history, decision context, and audit-oriented traceability (primary sources and evidence). --- -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: [TICKET-6737](https://jira.telekom-mms.com/browse/IPCEICIS-6737) -* **Assignee**: Sophie -* **Status**: Draft - Structure only -* **Last Updated**: 2025-11-16 -* **TODO**: - * [ ] Migrate relevant ADRs from docs-old - * [ ] Document project history and phases - * [ ] Add deliverables mapping - * [ ] Include compliance documentation -{{% /alert %}} - ## Governance Overview -This section provides information for auditors, governance teams, and stakeholders who need to understand the project's decision-making process, history, and compliance. +This chapter is publicly accessible, but it is written from within the IPCEI-CIS project context and therefore builds heavily on internal shared understanding. -## Architecture Decision Records (ADRs) +Most terminology, references, and primary sources in this chapter are internal (e.g., Confluence, Jira). Access and context are assumed. -Documentation of significant architectural decisions made during the project, including context, options considered, and rationale. +Primary intended audience: -## Project History +- IPCEI-CIS auditors +- IPCEI-CIS project management +- Project leads of other IPCEI-CIS sub-projects +- IPCEI-CIS central architecture -### Development Process - -The EDP was developed using collaborative approaches including mob programming and iterative development with regular user feedback. - -### Project Phases - -* Research & Design -* Proof of Concept -* Friendly User Phase -* Production Rollout - -### Deliverables Mapping - -Mapping to IPCEI-CIS deliverables and project milestones. - -## Compliance & Audit - -### Technology Choices - -Documentation of technology evaluation and selection process for key components (e.g., VictoriaMetrics, GARM, Terraform, ArgoCD). - -### Security Controls - -Overview of implemented security controls and compliance measures. - -### Ticket References - -Cross-references to Jira tickets, epics, and project tracking for audit trails. - -## Community & External Relations - -### Open Source Contributions - -Contributions to the Forgejo community and other open-source projects. - -### External Stakeholders - -User experience research and feedback integration. - -## Documentation Template - -When creating governance documentation: - -1. **Context**: Background and situation -2. **Decision/Event**: What was decided or what happened -3. **Rationale**: Why this decision was made -4. **Alternatives**: Other options considered -5. **Consequences**: Impact and outcomes -6. **References**: Links to tickets, discussions, external resources diff --git a/content/en/docs/governance/compliance-audit/_index.md b/content/en/docs/governance/compliance-audit/_index.md new file mode 100644 index 0000000..5b112cf --- /dev/null +++ b/content/en/docs/governance/compliance-audit/_index.md @@ -0,0 +1,88 @@ +--- +title: "Compliance & audit" +linkTitle: "Compliance" +weight: 30 +description: > + Technology choices, auditability, and external relations. +--- + +## Technology Choices + +Documentation of technology evaluation and selection process for key components (e.g., VictoriaMetrics, GARM, Terraform, ArgoCD). + +### Forgejo + +The internal service is officially designated as the [Edge Developer Platform (EDP)](/docs/edp/forgejo/). It is hosted at **[edp.buildth.ing](https://edp.buildth.ing)**. The domain selection followed a democratic team process to establish a unique identity distinct from standard corporate naming conventions. + +**Solution selection:** + +The decision to utilize **[Forgejo](https://forgejo.org/)** as the core self-hosted Git service was driven by specific strategic requirements: + +- **EU-Based Stewardship:** Forgejo is stewarded by **[Codeberg e.V.](https://docs.codeberg.org/getting-started/what-is-codeberg/)**, a non-profit organization based in Berlin, Germany. This alignment ensures compliance with GDPR and data sovereignty requirements, placing governance under EU jurisdiction rather than US tech entities. +- **License Protection (GPL v3+):** Unlike "Open Core" models, Forgejo uses a copyleft license. This legally protects custom extensions developed in this project (such as GARM support) from being appropriated into proprietary software, ensuring the ecosystem remains open. +- **Open Source Strategy:** The platform aligns with the "Public Money, Public Code" philosophy, mandating that funded developments are returned to the community. + +**Access Model:** + +The platform operates on a hybrid visibility model: + +- **Public Access:** The [`DEVFW-CICD`](https://edp.buildth.ing/DevFW-CICD) organization is publicly accessible, fostering transparency. +- **Private Access:** Sensitive development occurs in restricted organizations (e.g., [`DEVFW`](https://edp.buildth.ing/DevFW)). +- **User Base:** Primary users include the internal development team, with friendly user access granted to the IPCEI team and MMS BT. + +## Ticket References + +Cross-references to Jira tickets, epics, and project tracking for audit trails. + +Current, evidence-backed anchors: + +- PoC “parts” and hands-on scope are anchored in Jira and listed explicitly in the PoC design README (see Traceability / Ticket anchors). +- PoC consolidation and governance intent (“traces from tickets to outputs”) is described in the team-process documentation. +- The Forgejo ProjectMgmt prototype documents how tickets, milestones, and boards were structured in Forgejo to run demo slices and work packages. + +## Open Source Contributions + +Contributions to the Forgejo community and other open-source projects. + +### Forgejo + +Project extensions were contributed upstream to the Forgejo project on **[Codeberg.org](https://codeberg.org/)**. + +**Key Pull Requests:** + +- **API Compatibility:** Added GitHub-compatible endpoints for runner registration. + - [PR #9409: Feat: Add endpoints for GARM](https://codeberg.org/forgejo/forgejo/pulls/9409) +- **Webhook Support:** Implemented webhook triggers for workflow events. + - [PR #9803: Feat: Add webhook support for workflow events](https://codeberg.org/forgejo/forgejo/pulls/9803) +- **Ephemeral Runners:** Added support for runners that terminate after a single job. + - [PR #9962: Feat: Support for ephemeral runners](https://codeberg.org/forgejo/forgejo/pulls/9962) + +## External Stakeholders + +From the beginning, the project used structured stakeholder formats to collect requirements, validate assumptions, and strengthen a product-development mindset beyond “pure delivery”. + +Evidence (internal only): + +- Stakeholder workshop planning and target groups are captured in Confluence: [eDF Stakeholder Workshops](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/902567168/eDF+Stakeholder+Workshops) (internal/external workshops, goals, and intended outcomes). +- A concrete external workshop session is documented in Confluence: [external stakeholder workshop](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/936478033/external+stakeholder+workshop) (incl. agenda attachment). Note: the page explicitly contains AI-generated content and should be verified. +- An internal workshop session with detailed agenda and feedback is documented in Confluence: [internal stakeholder workshop 7.11.](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/915155061/internal+stakeholder+workshop+7.11.) (also includes AI-generated summary blocks). + +### Key decisions and learnings (PII-free synthesis) + +The workshop and research artifacts consistently point to a few pragmatic decisions and product learnings (summarized here without personal data[^pii-free]): + +- **Onboarding is a primary adoption gate:** prioritize low cognitive load, clear guidance, and a “cold start” path that works without prior context (captured in the Customer Engagement plan and related onboarding-focused activities). +- **Treat navigation and information architecture as product work:** “too many clicks”, missing global orientation cues, and inconsistent navigation were recurring friction points; prioritization leaned towards making “projects / work” more discoverable and first-class (see UX insights log for navigation/IA patterns). +- **Forgejo PM & Docs need either redesign or deliberate scope boundaries:** modern PM/docs workflows and stakeholder reporting expectations were a known gap; this informed decisions about prototyping and scoping improvements vs. relying on integrations. +- **Expect a tension between autonomy and guardrails:** research highlights that developer autonomy is valued while guardrails increase trust and repeatability; positioning matters because “platform” concepts can be perceived as top-down control if not framed carefully. +- **Institutionalize UX feedback loops:** beyond ad-hoc workshops, the work moved towards a repeatable research cadence (panel/community, surveys, and insight logging) to reduce “one-off feedback” risk. +- **Automated UX testing was formalized as a concrete use case:** a dedicated “use case identification” artifact structures automated UX testing around functional correctness, visual consistency/accessibility, and task-based end-to-end “happy path” flow checks (used as input for the later UX work package stream). + +[^pii-free]: PII = “personally identifiable information”. “PII-free synthesis” means summarizing patterns, decisions, and learnings without including names, participant lists, direct quotes, or other details that could identify individuals. + +Later, a dedicated “user experience” focus was strengthened and formalized via a dedicated work package / deliverable stream that explicitly frames UX validation as an activity with objectives, KPIs, and user validation: + +- Work package definition and objectives: [Workpackage e.3 - Sustainable-edge-management-optimized user interface for edge developers](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/1165704046/Workpackage+e.3+-+Sustainable-edge-management-optimized+user+interface+for+edge+developers) +- Deliverable (incl. PoC results summary around autonomous UI/UX testing and “happy path” user flows): [Deliverable D66 - Sustainable-edge-management-optimized user interface for edge developers](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/1165704082/Deliverable+D66+-+Sustainable-edge-management-optimized+user+interface+for+edge+developers) + +See also: the central [References](/docs/governance/references/) index. diff --git a/content/en/docs/governance/project-history/_index.md b/content/en/docs/governance/project-history/_index.md new file mode 100644 index 0000000..3b18f45 --- /dev/null +++ b/content/en/docs/governance/project-history/_index.md @@ -0,0 +1,114 @@ +--- +title: "Project history" +linkTitle: "History" +weight: 10 +description: > + Mandate, phases, milestones, and process evolution. +--- + +## Mandate and product vision + +Within the IPCEI-CIS work package for an Edge Developer Framework, the goal of the Developer Framework / EDP effort is to provide services that enable teams to develop, validate, roll out and operate applications efficiently across the edge cloud continuum. + +The initial product framing emphasized: + +- A coherent developer experience spanning development, testing, validation, rollout, monitoring and (eventually) billing. +- Reuse through templates and "golden paths". +- A portal-centric interaction model where developers consume platform capabilities via stable APIs and UI, not ad-hoc cluster access. + +Primary source (internal only): [Confluence: Sub Project Developer Framework](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/856788263/Sub+Project+Developer+Framework) + +## Phases and milestones + +The following phase model is derived from the documented primary sources referenced in this chapter (Confluence and the referenced repositories). The phrasing focuses on “what changed and why”; it is not a release plan. + +Terminology: In this chapter, “Repository” refers to concrete Git repositories used as evidence sources. Unless stated otherwise: + +- “Repository (this docs repo)” means this documentation repository (“website-and-documentation”), including `/docs-old/`. +- “Repository (edp-doc)” means the EDP technical documentation repository at (internal only) [edp.buildth.ing/DevFW/edp-doc](https://edp.buildth.ing/DevFW/edp-doc). +- “Confluence” refers to the IPCEI-CIS Confluence space on `confluence.telekom-mms.com` (internal only). + +It does not refer to the wider set of platform/service code repositories unless explicitly stated. + +### Phase 1 — Discovery & system design (2024) + +Focus: + +- Establish a reference architecture for an Internal Developer Platform (IDP) style solution. +- Evaluate IDP foundations (explicitly referencing CNOE as a favored baseline), using a “planes” model as conceptual structure. +- Early emphasis on becoming self-hosting quickly (“eat your own dogfood”) and validating end-to-end paths. + +Primary source (internal only): [Confluence: System Design](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/856788272/System+Design) + +### Phase 2 — Proof of Concept (PoC) definition and scope (2024) + +Focus: + +- Align on a shared understanding of the product “Developer Platform” (technical and business framing) and what is feasible within 2024. +- Define PoC goals and acceptance criteria, including an end-to-end story centered on: + - an IDP builder/orchestrator running in the target environment (OSC), + - a developer portal (Backstage) for the user experience, + - a “golden path” flow from source → CI/CD → deployment. + +Primary sources: + +- Confluence (internal only): [Confluence: Proof of Concept 2024](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/902010138/Proof+of+Concept+2024) +- Repository (this repo): docs-old PoC structure summary: [PoC Structure](/docs-old/v1/project/plan-in-2024/poc/) + +### Phase 3 — PoC consolidation: deliverables, repository structure, traceability (late 2024) + +Focus: + +- Package outputs produced since mid-2024 into a demonstrable PoC product. +- Make “traces” explicit from backlog items to concrete outputs (repos, docs, capabilities), to support governance and auditability. +- Establish working agreements for branching, PR-based review, and Definition of Done. + +Primary source: repository document [Team and Work Structure](/docs-old/v1/project/team-process/) (docs-old, in this repo). + +### Phase 4 — “Forgejo as a Service” and Foundry-based provisioning (2025) + +Focus: + +- Expand from “PoC capabilities” toward a service milestone around Forgejo, including supporting services (persistence, backups, caching, indexing, SSO, runners, observability). +- Provision Foundry/EDP resources via Infrastructure-as-Code, initially in OTC. +- Address reliability and migration risks while moving from earlier instances to production endpoints. + +Evidence: + +- Confluence (internal only): [Confluence: Forgejo as a service](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/999903971/Forgejo+as+a+service) (service decomposition and operational concerns) +- ADR: “Add Scaleway as Cloud resource Provider” explicitly places Foundry/EDP IaC provisioning in mid-April 2025 and captures platform issues and mitigation. +- Postmortem (2025-07-14) documents downtime rooted in an incomplete Foundry migration and the need for explicit migration plans. + +### Phase 5 — EdgeConnect integration: deployment target + SDK/tooling (ongoing) + +Focus: + +- Treat EdgeConnect as a sovereign deployment target operated outside EDP, and provide consumable tooling to integrate it into delivery workflows. +- Provide reusable automation components (SDK, CLI client, Terraform provider, Forgejo Actions) so that EdgeConnect is used consistently through stable entry points. +- Use EdgeConnect for deploying project artifacts (including this documentation website) to edge cloudlets. + +Evidence: + +- Repository (this repo): EdgeConnect documentation under `/docs/edgeconnect/` (SDK/client/actions). +- Repository (this repo): docs-old “Publishing to Edge” describes the documentation deployment via `edgeconnectdeployment.yaml`. + +## Development and delivery process evolution + +Across the phases above, delivery methods and team process evolved in response to scaling and operational needs: + +- Scrum ceremonies and working agreements are documented in Confluence (internal only): [Confluence: Scrum working agreement](https://confluence.telekom-mms.com/pages/viewpage.action?pageId=977833214). +- Collaborative delivery techniques (mob / ensemble programming) appear as an explicit practice, including in incident documentation (“Team: Mob”) and internal guidance on sustainable mobbing models. + +### Team enablement and skill development (PII-free synthesis) + +This section summarizes team enablement and skill development, based on the project’s documented sources, and is presented without personal data[^pii-free]: + +- **Baseline skill assumptions**: Kubernetes and GitOps are foundational. The platform architecture explicitly uses Kubernetes and a CNOE-derived stacks concept (see [Platform Orchestration](/docs/edp/deployment/basics/orchestration/)). +- **Enablement/training happened as part of delivery** (not a separate “academy”): retrospectives and planning explicitly track knowledge-sharing sessions and training topics (internal only, see References). +- **Kubernetes enablement**: a Kubernetes introduction training was planned as part of team onboarding/enablement activities (internal only; see References). +- **Go as a relevant skill**: multiple components are implemented in Golang (e.g., EdgeConnect tooling, Forgejo). Internal material discusses Golang developer skill profiles; this docs repo does not contain a single, explicit record of a dedicated “Go training” event. +- **Skill leveling via collaboration**: Mob Programming is used as a deliberate practice for knowledge sharing and onboarding less experienced developers (see [Forgejo docs entry](/docs/edp/forgejo/)). + +[^pii-free]: PII = “personally identifiable information”. “PII-free synthesis” means summarizing patterns and practices without including names, participant lists, or direct quotes that could identify individuals. + +See also: the central [References](/docs/governance/references/) index. diff --git a/content/en/docs/governance/references/_index.md b/content/en/docs/governance/references/_index.md new file mode 100644 index 0000000..8427b07 --- /dev/null +++ b/content/en/docs/governance/references/_index.md @@ -0,0 +1,52 @@ +--- +title: "References" +linkTitle: "References" +weight: 40 +description: > + Index of primary sources and evidence links used across the Governance chapter. +--- + +This list is an index of links referenced across the Governance chapter, plus the intended meaning (“semantics”) of each link. + +- (internal only) Confluence: [Sub Project Developer Framework](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/856788263/Sub+Project+Developer+Framework) — mandate, quick links, and high-level framing. +- (internal only) Confluence: [System Design](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/856788272/System+Design) — architecture framing (planes model, baseline preferences, early decision drivers). +- (internal only) Confluence: [Proof of Concept 2024](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/902010138/Proof+of+Concept+2024) — PoC scope, goals, and evaluation/acceptance framing. +- (internal only) Confluence: [Forgejo as a service](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/999903971/Forgejo+as+a+service) — service decomposition and operational concerns used as evidence for Phase 4. +- (internal only) Confluence: [Scrum working agreement](https://confluence.telekom-mms.com/pages/viewpage.action?pageId=977833214) — delivery process reference. +- (internal only) Confluence: [Knowledge sharing sessions](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/999672269/Knowledge+sharing+sessions) — planning table of internal enablement sessions (training topics and facilitation). Note: contains personal data; use only for PII-free synthesis. +- (internal only) Confluence: [Retro: How to improve our work](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/895683955/Retro+How+to+improve+our+work) — retrospective notes including explicit calls for Kubernetes training sessions and documentation/working-agreement improvements. Note: contains personal data; use only for PII-free synthesis. +- (internal only) Confluence: [Retro 15/04/25](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/999671293/Retro+15+04+25) — retrospective notes showing iteration on ticket sizing, async refinement, and meeting overhead; also references “Knowledge sharing sessions”. Note: contains personal data; use only for PII-free synthesis. +- (internal only) Confluence: [Retro 13/05/25](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/999891618/Retro+13+05+25) — retrospective notes explicitly discussing mobbing practices (roles, breaks, splitting mob groups) and knowledge exchange. Note: contains personal data; use only for PII-free synthesis. +- (internal only) Confluence: [Research Paper Mob Programming](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/1131139130/Research+Paper+Mob+Programming) — internal background material on mob programming practices and trade-offs. Note: treat as internal working material. +- (internal only) Confluence: [eDF Stakeholder Workshops](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/902567168/eDF+Stakeholder+Workshops) — plan for internal/external stakeholder workshops, target groups, and intended outcomes. +- (internal only) Confluence: [internal stakeholder workshop 7.11.](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/915155061/internal+stakeholder+workshop+7.11.) — internal stakeholder session agenda and captured feedback (contains AI-generated summary blocks). +- (internal only) Confluence: [external stakeholder workshop](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/936478033/external+stakeholder+workshop) — external stakeholder session notes (contains agenda attachment and AI-generated summary blocks). +- (internal only) Confluence: [Workpackage e.3 - Sustainable-edge-management-optimized user interface for edge developers](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/1165704046/Workpackage+e.3+-+Sustainable-edge-management-optimized+user+interface+for+edge+developers) — UX-focused workpackage with objectives, KPIs, and “validation with users” framing. +- (internal only) Confluence: [Deliverable D66 - Sustainable-edge-management-optimized user interface for edge developers](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/1165704082/Deliverable+D66+-+Sustainable-edge-management-optimized+user+interface+for+edge+developers) — deliverable page including PoC results summary for autonomous UI/UX testing. +- (internal only) Confluence: [Customer Engagement](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/1040844220/Customer+Engagement) — research planning cadence (who/why/when), plus synthesized insights/assumptions used to justify PII-free learnings summaries. +- (internal only) Confluence: [UX Insights and Learnings](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/1033832272/UX+Insights+and+Learnings) — running log of UX observations and recommended improvements (useful for evidence-backed, non-PII synthesis of recurring friction patterns). +- (internal only) Confluence: [[IPCEICIS-3703] Use Case identification for automated UX testing](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/1055949846/IPCEICIS-3703+Use+Case+identification+for+automated+UX+testing) — structured prioritization of automated UX testing scenarios (happy-path smoke flows, functional correctness, visual/accessibility checks). Note: treat as internal working material; do not replicate embedded credentials/content. +- (internal only) Jira: [IPCEICIS-368](https://jira.telekom-mms.com/browse/IPCEICIS-368) — PoC part 1 traceability anchor. +- (internal only) Jira: [IPCEICIS-765](https://jira.telekom-mms.com/browse/IPCEICIS-765) — PoC part 2.1 traceability anchor. +- (internal only) Jira: [IPCEICIS-766](https://jira.telekom-mms.com/browse/IPCEICIS-766) — PoC part 2.2 traceability anchor. +- (internal only) Jira: [IPCEICIS-514](https://jira.telekom-mms.com/browse/IPCEICIS-514) — PoC golden path template traceability anchor. +- (internal only) Jira: [IPCEICIS-759](https://jira.telekom-mms.com/browse/IPCEICIS-759) — PoC example app traceability anchor. +- (internal only) Jira: [IPCEICIS-760](https://jira.telekom-mms.com/browse/IPCEICIS-760) — PoC CI/CD traceability anchor. +- (internal only) Jira: [IPCEICIS-761](https://jira.telekom-mms.com/browse/IPCEICIS-761) — PoC telemetry traceability anchor. +- (internal only) Jira: [IPCEICIS-762](https://jira.telekom-mms.com/browse/IPCEICIS-762) — PoC infrastructure traceability anchor. +- (internal only) Jira: [IPCEICIS-763](https://jira.telekom-mms.com/browse/IPCEICIS-763) — PoC additional items traceability anchor. +- (internal only) Jira: [IPCEICIS-767](https://jira.telekom-mms.com/browse/IPCEICIS-767) — PoC orchestration extension traceability anchor. +- (internal only) Jira: [IPCEICIS-768](https://jira.telekom-mms.com/browse/IPCEICIS-768) — PoC part 3 (user documentation) traceability anchor. +- Documentation site: [PoC Structure](/docs-old/v1/project/plan-in-2024/poc/) — published docs-old summary of the PoC structure. +- Documentation site: [Team and Work Structure](/docs-old/v1/project/team-process/) — published docs-old description of process and traceability intent. +- Documentation site: [Forgejo docs entry](/docs/edp/forgejo/) — documentation entry point for the Forgejo/EDP component. +- Service entry point: [edp.buildth.ing](https://edp.buildth.ing) — EDP Forgejo instance. +- Service org: [edp.buildth.ing/DevFW-CICD](https://edp.buildth.ing/DevFW-CICD) — public organization referenced for transparency. +- Service org: [edp.buildth.ing/DevFW](https://edp.buildth.ing/DevFW) — private organization reference. +- (internal only) Repository (edp-doc): [edp.buildth.ing/DevFW/edp-doc](https://edp.buildth.ing/DevFW/edp-doc) — EDP technical documentation repository (ADRs, postmortems, PoC process), used as evidence sources in this chapter. +- Upstream project: [forgejo.org](https://forgejo.org/) — Forgejo project homepage. +- Upstream governance: [Codeberg e.V.](https://docs.codeberg.org/getting-started/what-is-codeberg/) — referenced as steward/governance body. +- Upstream contribution: [PR #9409](https://codeberg.org/forgejo/forgejo/pulls/9409) — GARM endpoints contribution. +- Upstream contribution: [PR #9803](https://codeberg.org/forgejo/forgejo/pulls/9803) — webhook workflow events contribution. +- Upstream contribution: [PR #9962](https://codeberg.org/forgejo/forgejo/pulls/9962) — ephemeral runners contribution. +- Upstream hosting: [Codeberg.org](https://codeberg.org/) — hosting platform used for upstream Forgejo contributions. diff --git a/content/en/docs/governance/traceability/_index.md b/content/en/docs/governance/traceability/_index.md new file mode 100644 index 0000000..1107969 --- /dev/null +++ b/content/en/docs/governance/traceability/_index.md @@ -0,0 +1,61 @@ +--- +title: "Traceability" +linkTitle: "Traceability" +weight: 20 +description: > + Deliverables mapping, evidence model, matrix overview, and ticket anchors. +--- + +## Deliverables mapping + +This section captures the traceability model and evidence-backed anchors that connect capabilities/phases to concrete outputs (repositories, documentation pages, deployed services). It does not yet claim a complete IPCEI deliverable-ID → epic → artifact mapping. + +## Traceability model (used for audit) + +The working model (used throughout the PoC) is: + +- Deliverable / capability definition (often in Confluence) → +- Ticket(s) in Jira / Forgejo → +- Implementation via commits + pull requests → +- Concrete output (repo, docs page, automation component, deployed service) → +- Evidence (ADR / postmortem / runbook / deployment config) showing real operation. + +Primary sources for the traceability intent: + +- Repository (edp-doc): PoC design README lists Jira parts and calls for a mapping table from “parts” to upstream references. +- Repository (edp-doc): team-process documents emphasize “traces from tickets to outputs” and an outcome summary in the ticket as part of Definition of Done. + +## Matrix (evidence-backed overview) + +This matrix is intended to be directly consumable: it summarizes what can already be evidenced from the current sources. It is an overview across phases/capabilities; it is not the full IPCEI deliverable-ID mapping. + +| Phase | What is delivered / proven | Concrete outputs (where) | Evidence / trace hooks | +| --- | --- | --- | --- | +| Phase 1 — Discovery & system design | Reference architecture framing and decision drivers | Confluence (internal only): [System Design](https://confluence.telekom-mms.com/spaces/IPCEICIS/pages/856788272/System+Design) (planes model, CNOE baseline preference, dogfooding) | Architecture notes are the earliest “why” evidence for later component choices | +| Phase 2 — PoC definition | PoC scope, acceptance criteria, end-to-end “golden path” story | Repository (this docs repo): PoC structure page (docs-old) and Repository (edp-doc): PoC design README | Jira parts exist for user docs + hands-on building blocks (see “Ticket anchors” below) | +| Phase 3 — PoC consolidation & traceability | A packaged PoC with explicit traceability from backlog to outputs | Repository (this docs repo): PoC team-process guidance (Definition of Done, PR review, “traces”) | “Outcome” is expected to be summarized in the ticket with links to PR/commit artifacts | +| Phase 4 — Forgejo-as-a-Service + Foundry provisioning | A service milestone with operational concerns (persistence, backups, SSO, runners) and IaC provisioning | ADR (Scaleway as additional install channel) + postmortem (Foundry migration downtime) | Concrete operational evidence that architecture and migration risks were handled as governance work | +| Phase 5 — EdgeConnect integration | EdgeConnect as delivery target and integration tooling | Repository (this docs repo): EdgeConnect docs section + docs-old “Publishing to Edge” (deployment yaml) | Deployment configuration and workflow description provide concrete “proof of use” | + +## Ticket anchors (PoC) + +The PoC design README explicitly provides Jira anchors that can be used to build a full traceability matrix: + +- Part 1 (User documentation): [IPCEICIS-368](https://jira.telekom-mms.com/browse/IPCEICIS-368) +- Part 2.1 (Local IdP creation): [IPCEICIS-765](https://jira.telekom-mms.com/browse/IPCEICIS-765) +- Part 2.2 (OSC IdP creation): [IPCEICIS-766](https://jira.telekom-mms.com/browse/IPCEICIS-766) +- Part 2.x.1 (Golden Path template): [IPCEICIS-514](https://jira.telekom-mms.com/browse/IPCEICIS-514) +- Part 2.x.2 (Fibonacci example app): [IPCEICIS-759](https://jira.telekom-mms.com/browse/IPCEICIS-759) +- Part 2.x.3 (Forgejo Actions CI/CD): [IPCEICIS-760](https://jira.telekom-mms.com/browse/IPCEICIS-760) +- Part 2.x.4 (Telemetry): [IPCEICIS-761](https://jira.telekom-mms.com/browse/IPCEICIS-761) +- Part 2.x.5 (OSC infrastructure): [IPCEICIS-762](https://jira.telekom-mms.com/browse/IPCEICIS-762) +- Part 2.x.6 (Additional items): [IPCEICIS-763](https://jira.telekom-mms.com/browse/IPCEICIS-763) +- Part 2.3 (Extended local orchestration): [IPCEICIS-767](https://jira.telekom-mms.com/browse/IPCEICIS-767) +- Part 3 (User documentation): [IPCEICIS-768](https://jira.telekom-mms.com/browse/IPCEICIS-768) + +Related docs-old pages referenced by the history and matrix: + +- [PoC Structure](/docs-old/v1/project/plan-in-2024/poc/) +- [Team and Work Structure](/docs-old/v1/project/team-process/) + +See also: the central [References](/docs/governance/references/) index. diff --git a/content/en/docs/operations/_index.md b/content/en/docs/operations/_index.md deleted file mode 100644 index d81be4c..0000000 --- a/content/en/docs/operations/_index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: "Operations" -linkTitle: "Operations" -weight: 40 -description: > - Operational guides for deploying, monitoring, and maintaining the Edge Developer Platform. ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: TBD -* **Assignee**: Team -* **Status**: Draft - Structure only -* **Last Updated**: 2025-11-16 -* **TODO**: - * [ ] Add deployment procedures - * [ ] Document monitoring setup and dashboards - * [ ] Include troubleshooting guides - * [ ] Add maintenance procedures -{{% /alert %}} - -## Operations Overview - -This section covers operational aspects of the Edge Developer Platform including deployment, monitoring, troubleshooting, and maintenance. - -## Deployment - -### Platform Deployment - -Instructions for deploying EDP components to your infrastructure. - -### Application Deployment - -Guides for deploying applications to the platform using available deployment methods. - -## Monitoring & Observability - -### Metrics - -Access and interpret platform and application metrics using VictoriaMetrics, Prometheus, and Grafana. - -### Logging - -Log aggregation and analysis for troubleshooting and audit purposes. - -### Alerting - -Configure alerts for critical platform events and application issues. - -## Troubleshooting - -Common issues and their solutions for platform operations. - -## Maintenance - -### Updates & Upgrades - -Procedures for updating platform components and maintaining system health. - -### Backup & Recovery - -Data backup strategies and disaster recovery procedures. - -## Documentation Template - -When creating operational documentation: - -1. **Purpose**: What this operation achieves -2. **Prerequisites**: Required access, tools, and knowledge -3. **Procedure**: Step-by-step instructions with commands -4. **Verification**: How to confirm successful completion -5. **Rollback**: How to revert if needed -6. **Troubleshooting**: Common issues and solutions diff --git a/content/en/docs/platform-overview/_index.md b/content/en/docs/platform-overview/_index.md deleted file mode 100644 index 2360c6c..0000000 --- a/content/en/docs/platform-overview/_index.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: "Platform Overview" -linkTitle: "Platform Overview" -weight: 10 -description: > - High-level overview of the Edge Developer Platform (EDP), its purpose, and product structure. ---- - -{{% alert title="Draft" color="warning" %}} -**Editorial Status**: This page is currently being developed. - -* **Jira Ticket**: TBD -* **Assignee**: Team -* **Status**: Draft - Initial structure created -* **Last Updated**: 2025-11-16 -* **TODO**: - * [ ] Add detailed product structure from excalidraw - * [ ] Include platform maturity matrix - * [ ] Add links to component pages as they are created -{{% /alert %}} - -## Purpose - -The Edge Developer Platform (EDP) is a comprehensive DevOps platform designed to enable developers to build, deploy, and operate cloud-native applications at the edge. It provides an integrated suite of tools and services covering the entire software development lifecycle. - -## Target Audience - -* **Developers**: Build and deploy applications using standardized workflows -* **Platform Engineers**: Operate and maintain the platform infrastructure -* **DevOps Teams**: Implement CI/CD pipelines and automation -* **Auditors**: Verify platform capabilities and compliance - -## Product Structure - -EDP consists of multiple integrated components organized in layers: - -### Core Platform Services - -The foundation layer provides essential platform capabilities including source code management, CI/CD, and container orchestration. - -### Developer Experience - -Tools and services that developers interact with directly to build, test, and deploy applications. - -### Infrastructure & Operations - -Infrastructure automation, observability, and operational tooling for platform management. - -## Platform Maturity - -Components in EDP have different maturity levels: - -* **Production**: Fully integrated and supported for production use -* **Beta**: Available for testing with potential changes -* **Experimental**: Early stage, subject to significant changes - -## Getting Started - -For quick start guides and onboarding information, see the [Getting Started](../getting-started/) section. - -For detailed component information, explore the [Components](../components/) section. diff --git a/doc/README-likec4.md b/doc/README-likec4.md index c38cb99..9e70abf 100644 --- a/doc/README-likec4.md +++ b/doc/README-likec4.md @@ -85,15 +85,15 @@ specification { model { mySystem = system 'My System' { description 'System description' - + backend = service 'Backend API' { description 'REST API service' } - + db = database 'Database' { description 'PostgreSQL database' } - + backend -> db 'reads/writes' } } @@ -101,9 +101,9 @@ model { views { view systemOverview { title "System Overview" - + include mySystem - + autoLayout TopBottom } } @@ -139,7 +139,7 @@ Parameters: 1. **Edit Models** - Modify `.c4` files in `models/` or `views/` - + 2. **Preview Changes** ```bash cd resources/edp-likec4 # or doc-likec4 @@ -216,7 +216,7 @@ specification { element system element container element component - + relationship async relationship sync } @@ -231,19 +231,19 @@ model { customer = person 'Customer' { description 'End user' } - + system = system 'My System' { frontend = container 'Frontend' { description 'React application' } - + backend = container 'Backend' { description 'Node.js API' } - + frontend -> backend 'API calls' } - + customer -> system.frontend 'uses' } ``` @@ -256,17 +256,17 @@ Create diagrams: views { view overview { title "System Overview" - + include * - + autoLayout TopBottom } - + view systemDetail { title "System Details" - + include system.* - + autoLayout LeftRight } } diff --git a/doc/README-technical-writer.md b/doc/README-technical-writer.md index bfe248f..2379a6c 100644 --- a/doc/README-technical-writer.md +++ b/doc/README-technical-writer.md @@ -76,16 +76,15 @@ git push content/en/ ├── _index.md # Homepage ├── docs/ -│ ├── architecture/ # Architecture documentation -│ │ └── highlevelarch.md -│ ├── documentation/ # Documentation guides -│ │ ├── local-development.md -│ │ ├── testing.md -│ │ └── cicd.md -│ ├── decisions/ # ADRs (Architecture Decision Records) -│ └── v1/ # Legacy documentation -└── blog/ # Blog posts - └── 20250401_review.md +│ ├── _index.md # Docs landing page +│ ├── edgeconnect/ # Edge Connect documentation +│ ├── edp/ # EDP platform documentation +│ └── governance/ # Governance documentation +├── docs-old/ # Legacy documentation (archived) +└── blog/ # Blog posts + ├── 20250401_review.md + ├── 20251027_important_links.md + └── 240823-archsession.md ``` ## Writing Documentation @@ -211,6 +210,88 @@ task likec4:generate grep -r "^view " resources/edp-likec4/ --include="*.c4" ``` +## Using LikeC4 with AI Agents (MCP Server) + +The LikeC4 Model Context Protocol (MCP) server allows AI agents to query and navigate your architecture models interactively. + +### Configuring AI Agents + +Create or edit `.vscode/mcp.json` in your workspace: + +```json +{ + "servers": { + "likec4": { + "type": "sse", + "url": "http://localhost:33335/mcp" + } + } +} +``` + +This configuration gives GitHub Copilot and other MCP-compatible AI agents access to LikeC4 tools for querying your architecture models. + +### Starting the MCP Server + +Start the LikeC4 MCP server locally: + +```bash +# in the project root of the documentation repo +npx likec4 mcp resources/edp-likec4 --http +``` + +The server runs on `http://localhost:33335/mcp` by default. + +### Querying Architecture Models + +Once connected, you can ask the AI agent questions like: + +- **"In which model file is the resource edp.garm specified?"** + - Returns: `resources/edp-likec4/models/containers/garm.c4` + +- **"Show me all views that include the forgejo element"** + - Lists all views containing the forgejo element + +- **"What relationships does edp.garm have?"** + - Shows incoming and outgoing relationships + +- **"List all elements in the architecture project"** + - Provides a complete overview of elements + +### Available MCP Tools + +The LikeC4 MCP server provides these tools to AI agents: + +- `list-projects` - List all LikeC4 projects +- `search-element` - Search elements by id/title/kind/tags +- `read-element` - Get detailed element information +- `read-view` - Get view details (nodes/edges) +- `read-deployment` - Get deployment node information +- `find-relationships` - Find relationships between elements +- `read-project-summary` - Get project overview + +### Use Cases + +**Finding definitions:** +``` +"Where is edp.forgejo defined?" +``` + +**Understanding relationships:** +``` +"What components does edp.garm contain?" +``` + +**Exploring views:** +``` +"Which views show the deployment architecture?" +``` + +**Documentation validation:** +``` +"Check if all elements in the forgejoGarmInteraction view are documented" +``` + ## Available Tasks View all tasks: diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..2d45847 --- /dev/null +++ b/flake.lock @@ -0,0 +1,25 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1763421233, + "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", + "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", + "revCount": 897910, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.897910%2Brev-89c2b2330e733d6cdb5eae7b899326930c2c0648/019a9888-31f2-7667-abe4-5a1c43721ef0/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..e0925f4 --- /dev/null +++ b/flake.nix @@ -0,0 +1,49 @@ +{ + description = "dev env flake"; + + # Flake inputs + inputs.nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1"; # unstable Nixpkgs + + # Flake outputs + outputs = {self, ...} @ inputs: let + # The systems supported for this flake + supportedSystems = [ + "x86_64-linux" # 64-bit Intel/AMD Linux + "aarch64-linux" # 64-bit ARM Linux + "x86_64-darwin" # 64-bit Intel macOS + "aarch64-darwin" # 64-bit ARM macOS + ]; + + # Helper to provide system-specific attributes + forEachSupportedSystem = f: + inputs.nixpkgs.lib.genAttrs supportedSystems ( + system: + f { + pkgs = import inputs.nixpkgs {inherit system;}; + } + ); + in { + devShells = forEachSupportedSystem ( + {pkgs}: { + default = pkgs.mkShellNoCC { + # The Nix packages provided in the environment + # Add any you need here + packages = with pkgs; [ + go-task + + go + hugo + + nodejs + ]; + + # Set any environment variables for your dev shell + env = {}; + + # Add any shell logic you want executed any time the environment is activated + shellHook = ''''; + }; + } + ); + }; +} diff --git a/go.mod b/go.mod index f4c0b45..9cd543d 100644 --- a/go.mod +++ b/go.mod @@ -5,5 +5,6 @@ go 1.22.5 require ( github.com/FortAwesome/Font-Awesome v0.0.0-20241216213156-af620534bfc3 // indirect github.com/google/docsy v0.12.0 // indirect + github.com/hugomods/mermaid v0.1.4 // indirect github.com/twbs/bootstrap v5.3.8+incompatible // indirect ) diff --git a/go.sum b/go.sum index 6a51e65..a5d6dc2 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,8 @@ github.com/FortAwesome/Font-Awesome v0.0.0-20241216213156-af620534bfc3 h1:/iluJk 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/hugomods/mermaid v0.1.4 h1:/u0FZRSBMpqTbDh4XPBL7c6p0DUjvIkoo9cC89GASSI= +github.com/hugomods/mermaid v0.1.4/go.mod h1:GOID2Ko1vdrX03ZMaFNQL/vdTU1tZmGcVjOgBN8O42Y= 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 9b98038..620b815 100644 --- a/hugo.toml +++ b/hugo.toml @@ -13,6 +13,9 @@ enableRobotsTXT = true # Will give values to .Lastmod etc. enableGitInfo = true +# Ignore specific content directories during build +ignoreFiles = ["content/en/blog/.*", "content/en/docs-old/.*"] + # Comment out to enable taxonomies in Docsy # disableKinds = ["taxonomy", "taxonomyTerm"] @@ -121,7 +124,7 @@ offlineSearch = true prism_syntax_highlighting = false [params.copyright] - authors = "IPCEIS-CIS Authors | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0) | " + authors = "IPCEI-CIS eDF Development Team" from_year = 2024 # User interface configuration @@ -156,6 +159,8 @@ enable = false [[module.imports]] path = "github.com/google/docsy" disable = false +[[module.imports]] +path = "github.com/hugomods/mermaid" [params.mermaid] version = "10.9.0" diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html new file mode 100644 index 0000000..e369687 --- /dev/null +++ b/layouts/partials/footer.html @@ -0,0 +1,56 @@ +{{ $links := .Site.Params.links }} +
+
+
+ {{ with $links }} + + + {{ end }} + {{ with .Site.GetPage "privacy-policy" }} + + {{ end }} + {{ with .Site.GetPage "deprecation-policy" }} + + {{ end }} +
+
+ +
+
+
+ +{{ define "footer-links-block" }} +{{ range . }} +
  • {{ .name }}
  • +{{ end }} +{{ end }} diff --git a/package-lock.json b/package-lock.json index cce7654..f4cdb9d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -113,15 +113,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/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/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -310,9 +301,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", - "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz", + "integrity": "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==", "cpu": [ "ppc64" ], @@ -326,9 +317,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", - "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.1.tgz", + "integrity": "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==", "cpu": [ "arm" ], @@ -342,9 +333,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", - "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz", + "integrity": "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==", "cpu": [ "arm64" ], @@ -358,9 +349,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", - "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.1.tgz", + "integrity": "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==", "cpu": [ "x64" ], @@ -374,9 +365,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", - "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz", + "integrity": "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==", "cpu": [ "arm64" ], @@ -390,9 +381,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", - "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz", + "integrity": "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==", "cpu": [ "x64" ], @@ -406,9 +397,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", - "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz", + "integrity": "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==", "cpu": [ "arm64" ], @@ -422,9 +413,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", - "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz", + "integrity": "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==", "cpu": [ "x64" ], @@ -438,9 +429,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", - "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz", + "integrity": "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==", "cpu": [ "arm" ], @@ -454,9 +445,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", - "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz", + "integrity": "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==", "cpu": [ "arm64" ], @@ -470,9 +461,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", - "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz", + "integrity": "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==", "cpu": [ "ia32" ], @@ -486,9 +477,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", - "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz", + "integrity": "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==", "cpu": [ "loong64" ], @@ -502,9 +493,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", - "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz", + "integrity": "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==", "cpu": [ "mips64el" ], @@ -518,9 +509,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", - "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz", + "integrity": "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==", "cpu": [ "ppc64" ], @@ -534,9 +525,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", - "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz", + "integrity": "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==", "cpu": [ "riscv64" ], @@ -550,9 +541,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", - "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz", + "integrity": "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==", "cpu": [ "s390x" ], @@ -566,9 +557,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", - "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz", + "integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==", "cpu": [ "x64" ], @@ -582,9 +573,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", - "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz", + "integrity": "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==", "cpu": [ "arm64" ], @@ -598,9 +589,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", - "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz", + "integrity": "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==", "cpu": [ "x64" ], @@ -614,9 +605,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", - "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz", + "integrity": "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==", "cpu": [ "arm64" ], @@ -630,9 +621,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", - "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz", + "integrity": "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==", "cpu": [ "x64" ], @@ -646,9 +637,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", - "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz", + "integrity": "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==", "cpu": [ "arm64" ], @@ -662,9 +653,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", - "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz", + "integrity": "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==", "cpu": [ "x64" ], @@ -678,9 +669,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", - "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz", + "integrity": "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==", "cpu": [ "arm64" ], @@ -694,9 +685,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", - "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz", + "integrity": "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==", "cpu": [ "ia32" ], @@ -710,9 +701,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", - "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz", + "integrity": "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==", "cpu": [ "x64" ], @@ -726,9 +717,9 @@ } }, "node_modules/@hpcc-js/wasm-graphviz": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@hpcc-js/wasm-graphviz/-/wasm-graphviz-1.15.0.tgz", - "integrity": "sha512-z1DSfM9MKccsMl9HcpRBZSqV6rcNtD++LzwARowG8dd5aKk0WgdOlMLh8X0dDhMgWA5FfpU7kPKgh1hTuP4dUg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@hpcc-js/wasm-graphviz/-/wasm-graphviz-1.17.0.tgz", + "integrity": "sha512-EeQUvc41JrFU7AWkh3//KdgRT9waJrBxFA7H9m3uI/zAHzbvTgbw05tik+fxuDPD0sXRxc8g2kXqC5jMobWUQA==", "license": "Apache-2.0" }, "node_modules/@html-validate/stylish": { @@ -785,6 +776,49 @@ "node": ">=12" } }, + "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/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/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -831,24 +865,24 @@ } }, "node_modules/@likec4/core": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/@likec4/core/-/core-1.44.0.tgz", - "integrity": "sha512-gt50ZPPYBS0iyhEzrjHagI6rH4l52hL3Z68XAGqsm4oeoKvzg/6xPHfZ1463JHAPBFBi79j4aEF9gg8+8JgHJQ==", + "version": "1.46.3", + "resolved": "https://registry.npmjs.org/@likec4/core/-/core-1.46.3.tgz", + "integrity": "sha512-yCG8HjGv+Di8OEGKKcDF0Fbe67bHzrVhEsektJW/QmZzQIJTJnYpJU9fwkocGBJ07RFv6oMS0ztZn0BXvsnMTw==", "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==", + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", + "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.2.tgz", - "integrity": "sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.5.tgz", + "integrity": "sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==", "cpu": [ "arm" ], @@ -859,9 +893,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.2.tgz", - "integrity": "sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.5.tgz", + "integrity": "sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==", "cpu": [ "arm64" ], @@ -872,9 +906,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.2.tgz", - "integrity": "sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.5.tgz", + "integrity": "sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==", "cpu": [ "arm64" ], @@ -885,9 +919,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.2.tgz", - "integrity": "sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.5.tgz", + "integrity": "sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==", "cpu": [ "x64" ], @@ -898,9 +932,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.2.tgz", - "integrity": "sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.5.tgz", + "integrity": "sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==", "cpu": [ "arm64" ], @@ -911,9 +945,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.2.tgz", - "integrity": "sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.5.tgz", + "integrity": "sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==", "cpu": [ "x64" ], @@ -924,9 +958,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.2.tgz", - "integrity": "sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.5.tgz", + "integrity": "sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==", "cpu": [ "arm" ], @@ -937,9 +971,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.2.tgz", - "integrity": "sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.5.tgz", + "integrity": "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==", "cpu": [ "arm" ], @@ -950,9 +984,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.2.tgz", - "integrity": "sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.5.tgz", + "integrity": "sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==", "cpu": [ "arm64" ], @@ -963,9 +997,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.2.tgz", - "integrity": "sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.5.tgz", + "integrity": "sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==", "cpu": [ "arm64" ], @@ -976,9 +1010,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.2.tgz", - "integrity": "sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.5.tgz", + "integrity": "sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==", "cpu": [ "loong64" ], @@ -989,9 +1023,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.2.tgz", - "integrity": "sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.5.tgz", + "integrity": "sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==", "cpu": [ "ppc64" ], @@ -1002,9 +1036,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.2.tgz", - "integrity": "sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.5.tgz", + "integrity": "sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==", "cpu": [ "riscv64" ], @@ -1015,9 +1049,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.2.tgz", - "integrity": "sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.5.tgz", + "integrity": "sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==", "cpu": [ "riscv64" ], @@ -1028,9 +1062,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.2.tgz", - "integrity": "sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.5.tgz", + "integrity": "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==", "cpu": [ "s390x" ], @@ -1041,9 +1075,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.2.tgz", - "integrity": "sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.5.tgz", + "integrity": "sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==", "cpu": [ "x64" ], @@ -1054,9 +1088,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.2.tgz", - "integrity": "sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.5.tgz", + "integrity": "sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==", "cpu": [ "x64" ], @@ -1067,9 +1101,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.2.tgz", - "integrity": "sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.5.tgz", + "integrity": "sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==", "cpu": [ "arm64" ], @@ -1080,9 +1114,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.2.tgz", - "integrity": "sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.5.tgz", + "integrity": "sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==", "cpu": [ "arm64" ], @@ -1093,9 +1127,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.2.tgz", - "integrity": "sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.5.tgz", + "integrity": "sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==", "cpu": [ "ia32" ], @@ -1106,9 +1140,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.2.tgz", - "integrity": "sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.5.tgz", + "integrity": "sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==", "cpu": [ "x64" ], @@ -1119,9 +1153,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.2.tgz", - "integrity": "sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.5.tgz", + "integrity": "sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==", "cpu": [ "x64" ], @@ -1132,9 +1166,9 @@ ] }, "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==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sidvind/better-ajv-errors/-/better-ajv-errors-4.0.1.tgz", + "integrity": "sha512-6arF1ssKxItxgitPYXafUoLmsVBA6K7m9+ZGj6hLDoBl7nWpJ33EInwQUdHTle2METeWGxgQiqSex20KZRykew==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1275,15 +1309,15 @@ "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==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.2.tgz", + "integrity": "sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==", "license": "MIT", "dependencies": { - "@babel/core": "^7.28.4", + "@babel/core": "^7.28.5", "@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", + "@rolldown/pluginutils": "1.0.0-beta.53", "@types/babel__core": "^7.20.5", "react-refresh": "^0.18.0" }, @@ -1295,12 +1329,12 @@ } }, "node_modules/@xyflow/react": { - "version": "12.9.0", - "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.9.0.tgz", - "integrity": "sha512-bt37E8Wf2HQ7hHQaMSnOw4UEWQqWlNwzfgF9tjix5Fu9Pn/ph3wbexSS/wbWnTkv0vhgMVyphQLfFWIuCe59hQ==", + "version": "12.10.0", + "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.10.0.tgz", + "integrity": "sha512-eOtz3whDMWrB4KWVatIBrKuxECHqip6PfA8fTpaS2RUGVpiEAe+nqDKsLqkViVWxDGreq0lWX71Xth/SPAzXiw==", "license": "MIT", "dependencies": { - "@xyflow/system": "0.0.71", + "@xyflow/system": "0.0.74", "classcat": "^5.0.3", "zustand": "^4.4.0" }, @@ -1310,9 +1344,9 @@ } }, "node_modules/@xyflow/system": { - "version": "0.0.71", - "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.71.tgz", - "integrity": "sha512-O2xIK84Uv1hH8qzeY94SKsj0R1n2jXHLsX6RZnM4x1Uc4oWiVbXDFucnkbFwhnQm3IIdAxkbgd2rEDp5oTRhhQ==", + "version": "0.0.74", + "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.74.tgz", + "integrity": "sha512-7v7B/PkiVrkdZzSbL+inGAo6tkR/WQHHG0/jhSvLQToCsfa8YubOGmBYd1s08tpKpihdHDZFwzQZeR69QSBb4Q==", "license": "MIT", "dependencies": { "@types/d3-drag": "^3.0.7", @@ -1432,6 +1466,19 @@ "node": ">= 8" } }, + "node_modules/anymatch/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/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1440,9 +1487,9 @@ "license": "Python-2.0" }, "node_modules/autoprefixer": { - "version": "10.4.22", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.22.tgz", - "integrity": "sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==", + "version": "10.4.23", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", + "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", "dev": true, "funding": [ { @@ -1460,10 +1507,9 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.27.0", - "caniuse-lite": "^1.0.30001754", + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001760", "fraction.js": "^5.3.4", - "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, @@ -1478,9 +1524,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.8.26", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.26.tgz", - "integrity": "sha512-73lC1ugzwoaWCLJ1LvOgrR5xsMLTqSKIEoMHVtL9E/HNk0PXtTM76ZIm84856/SF7Nv8mPZxKoBsgpm0tR1u1Q==", + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.7.tgz", + "integrity": "sha512-k9xFKplee6KIio3IDbwj+uaCLpqzOwakOgmqzPezM0sFJlFKcg30vk2wOiAJtkTSfx0SSQDSe8q+mWA/fSH5Zg==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" @@ -1521,46 +1567,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/boxen/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "license": "MIT" - }, - "node_modules/boxen/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/boxen/node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", - "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/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", @@ -1575,9 +1581,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", - "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "funding": [ { "type": "opencollective", @@ -1595,11 +1601,11 @@ "license": "MIT", "peer": true, "dependencies": { - "baseline-browser-mapping": "^2.8.25", - "caniuse-lite": "^1.0.30001754", - "electron-to-chromium": "^1.5.249", + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", "node-releases": "^2.0.27", - "update-browserslist-db": "^1.1.4" + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -1636,9 +1642,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001754", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz", - "integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==", + "version": "1.0.30001760", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz", + "integrity": "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==", "funding": [ { "type": "opencollective", @@ -2068,16 +2074,15 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.250", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.250.tgz", - "integrity": "sha512-/5UMj9IiGDMOFBnN4i7/Ry5onJrAGSbOGo3s9FEKmwobGq6xw832ccET0CE3CkkMBZ8GJSlUIesZofpyurqDXw==", + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", "license": "ISC" }, "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, + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "license": "MIT" }, "node_modules/entities": { @@ -2094,9 +2099,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", - "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz", + "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==", "hasInstallScript": true, "license": "MIT", "peer": true, @@ -2107,32 +2112,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.11", - "@esbuild/android-arm": "0.25.11", - "@esbuild/android-arm64": "0.25.11", - "@esbuild/android-x64": "0.25.11", - "@esbuild/darwin-arm64": "0.25.11", - "@esbuild/darwin-x64": "0.25.11", - "@esbuild/freebsd-arm64": "0.25.11", - "@esbuild/freebsd-x64": "0.25.11", - "@esbuild/linux-arm": "0.25.11", - "@esbuild/linux-arm64": "0.25.11", - "@esbuild/linux-ia32": "0.25.11", - "@esbuild/linux-loong64": "0.25.11", - "@esbuild/linux-mips64el": "0.25.11", - "@esbuild/linux-ppc64": "0.25.11", - "@esbuild/linux-riscv64": "0.25.11", - "@esbuild/linux-s390x": "0.25.11", - "@esbuild/linux-x64": "0.25.11", - "@esbuild/netbsd-arm64": "0.25.11", - "@esbuild/netbsd-x64": "0.25.11", - "@esbuild/openbsd-arm64": "0.25.11", - "@esbuild/openbsd-x64": "0.25.11", - "@esbuild/openharmony-arm64": "0.25.11", - "@esbuild/sunos-x64": "0.25.11", - "@esbuild/win32-arm64": "0.25.11", - "@esbuild/win32-ia32": "0.25.11", - "@esbuild/win32-x64": "0.25.11" + "@esbuild/aix-ppc64": "0.27.1", + "@esbuild/android-arm": "0.27.1", + "@esbuild/android-arm64": "0.27.1", + "@esbuild/android-x64": "0.27.1", + "@esbuild/darwin-arm64": "0.27.1", + "@esbuild/darwin-x64": "0.27.1", + "@esbuild/freebsd-arm64": "0.27.1", + "@esbuild/freebsd-x64": "0.27.1", + "@esbuild/linux-arm": "0.27.1", + "@esbuild/linux-arm64": "0.27.1", + "@esbuild/linux-ia32": "0.27.1", + "@esbuild/linux-loong64": "0.27.1", + "@esbuild/linux-mips64el": "0.27.1", + "@esbuild/linux-ppc64": "0.27.1", + "@esbuild/linux-riscv64": "0.27.1", + "@esbuild/linux-s390x": "0.27.1", + "@esbuild/linux-x64": "0.27.1", + "@esbuild/netbsd-arm64": "0.27.1", + "@esbuild/netbsd-x64": "0.27.1", + "@esbuild/openbsd-arm64": "0.27.1", + "@esbuild/openbsd-x64": "0.27.1", + "@esbuild/openharmony-arm64": "0.27.1", + "@esbuild/sunos-x64": "0.27.1", + "@esbuild/win32-arm64": "0.27.1", + "@esbuild/win32-ia32": "0.27.1", + "@esbuild/win32-x64": "0.27.1" } }, "node_modules/escalade": { @@ -2168,6 +2173,20 @@ ], "license": "BSD-3-Clause" }, + "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/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -2228,9 +2247,9 @@ } }, "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "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, @@ -2272,22 +2291,16 @@ } }, "node_modules/glob": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", - "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", + "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "foreground-child": "^3.3.1", - "jackspeak": "^4.1.1", - "minimatch": "^10.0.3", + "minimatch": "^10.1.1", "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" }, @@ -2316,9 +2329,9 @@ "license": "ISC" }, "node_modules/html-validate": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/html-validate/-/html-validate-10.3.1.tgz", - "integrity": "sha512-BgiuKxwvL6uuxQYCLQAU6hyldyyGsqs3ij86DJGCuZ72CLyEHyZVa0aiL/d6L+D4+U7cLe3pgIaEFFP0PLGhRw==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/html-validate/-/html-validate-10.5.0.tgz", + "integrity": "sha512-7uzzfy1fAaZevqKlE1ISaLR5h0IedkJOin/vh+nq3X1fXNdd1/ZKF0BcJSqBHUFJfVMgh7g3zXIOMjQ0rzVW0g==", "dev": true, "funding": [ { @@ -2329,9 +2342,9 @@ "license": "MIT", "dependencies": { "@html-validate/stylish": "^4.1.0", - "@sidvind/better-ajv-errors": "4.0.0", + "@sidvind/better-ajv-errors": "4.0.1", "ajv": "^8.0.0", - "glob": "^11.0.0", + "glob": "^13.0.0", "kleur": "^4.1.0", "minimist": "^1.2.0", "prompts": "^2.0.0", @@ -2347,7 +2360,7 @@ "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 || ^4.0.0" + "vitest": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.1" }, "peerDependenciesMeta": { "jest": { @@ -2517,9 +2530,9 @@ "license": "MIT" }, "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==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -2591,9 +2604,9 @@ } }, "node_modules/katex": { - "version": "0.16.25", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.25.tgz", - "integrity": "sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==", + "version": "0.16.27", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.27.tgz", + "integrity": "sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==", "dev": true, "funding": [ "https://opencollective.com/katex", @@ -2628,52 +2641,38 @@ } }, "node_modules/likec4": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/likec4/-/likec4-1.44.0.tgz", - "integrity": "sha512-lc9g0dZrg6DMNBDxZc73tCX3mi6KQVaIo4X56EJrqsaEElPmffjidzJzdbG3hPENnc9Zo+kYlIRvUysPA3qBYA==", + "version": "1.46.3", + "resolved": "https://registry.npmjs.org/likec4/-/likec4-1.46.3.tgz", + "integrity": "sha512-mNikpkUKq476KkzpYA1t2MmaGf7EURYZpIbvShrVsfrJR3NOt6zapBtXAAuSih17BgOo8wE9Vi/gjcgGVdGhww==", "license": "MIT", "dependencies": { - "@hpcc-js/wasm-graphviz": "1.15.0", - "@likec4/core": "1.44.0", - "@vitejs/plugin-react": "^5.1.0", - "@xyflow/react": "12.9.0", - "@xyflow/system": "0.0.71", + "@hpcc-js/wasm-graphviz": "1.17.0", + "@likec4/core": "1.46.3", + "@vitejs/plugin-react": "^5.1.2", + "@xyflow/react": "12.10.0", + "@xyflow/system": "0.0.74", "boxen": "^8.0.1", "bundle-require": "^5.1.0", - "esbuild": "0.25.11", + "esbuild": "0.27.1", "fdir": "6.4.0", "playwright": "1.56.1", - "rollup": "^4.53.2", - "std-env": "^3.9.0", + "rollup": "^4.53.5", + "std-env": "^3.10.0", "type-fest": "^4.41.0", - "vite": "^7.2.2", + "vite": "^7.3.0", "yargs": "17.7.2" }, "bin": { "likec4": "bin/likec4.mjs" }, "engines": { - "node": "^20.19.0 || >=22.18.0" + "node": ">=22.21.1" }, "peerDependencies": { "react": "^18.x || ^19.x", "react-dom": "^18.x || ^19.x" } }, - "node_modules/likec4/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/lilconfig": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", @@ -2707,13 +2706,12 @@ } }, "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, + "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", - "engines": { - "node": "20 || >=22" + "dependencies": { + "yallist": "^3.0.2" } }, "node_modules/markdown-it": { @@ -2783,6 +2781,30 @@ "node": ">=20" } }, + "node_modules/markdownlint-cli/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/markdownlint-cli/node_modules/minimatch": { "version": "10.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", @@ -3418,16 +3440,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/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", @@ -3482,6 +3494,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", + "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -3489,13 +3511,13 @@ "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, + "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": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -3541,20 +3563,6 @@ "node": ">=18" } }, - "node_modules/playwright/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/postcss": { "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", @@ -3732,9 +3740,9 @@ } }, "node_modules/react": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", - "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", "license": "MIT", "peer": true, "engines": { @@ -3742,16 +3750,16 @@ } }, "node_modules/react-dom": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", - "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", "license": "MIT", "peer": true, "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.0" + "react": "^19.2.3" } }, "node_modules/react-refresh": { @@ -3786,6 +3794,19 @@ "node": ">=8.10.0" } }, + "node_modules/readdirp/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/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -3806,9 +3827,9 @@ } }, "node_modules/rollup": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.2.tgz", - "integrity": "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==", + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.5.tgz", + "integrity": "sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==", "license": "MIT", "dependencies": { "@types/estree": "1.0.8" @@ -3821,28 +3842,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.53.2", - "@rollup/rollup-android-arm64": "4.53.2", - "@rollup/rollup-darwin-arm64": "4.53.2", - "@rollup/rollup-darwin-x64": "4.53.2", - "@rollup/rollup-freebsd-arm64": "4.53.2", - "@rollup/rollup-freebsd-x64": "4.53.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.53.2", - "@rollup/rollup-linux-arm-musleabihf": "4.53.2", - "@rollup/rollup-linux-arm64-gnu": "4.53.2", - "@rollup/rollup-linux-arm64-musl": "4.53.2", - "@rollup/rollup-linux-loong64-gnu": "4.53.2", - "@rollup/rollup-linux-ppc64-gnu": "4.53.2", - "@rollup/rollup-linux-riscv64-gnu": "4.53.2", - "@rollup/rollup-linux-riscv64-musl": "4.53.2", - "@rollup/rollup-linux-s390x-gnu": "4.53.2", - "@rollup/rollup-linux-x64-gnu": "4.53.2", - "@rollup/rollup-linux-x64-musl": "4.53.2", - "@rollup/rollup-openharmony-arm64": "4.53.2", - "@rollup/rollup-win32-arm64-msvc": "4.53.2", - "@rollup/rollup-win32-ia32-msvc": "4.53.2", - "@rollup/rollup-win32-x64-gnu": "4.53.2", - "@rollup/rollup-win32-x64-msvc": "4.53.2", + "@rollup/rollup-android-arm-eabi": "4.53.5", + "@rollup/rollup-android-arm64": "4.53.5", + "@rollup/rollup-darwin-arm64": "4.53.5", + "@rollup/rollup-darwin-x64": "4.53.5", + "@rollup/rollup-freebsd-arm64": "4.53.5", + "@rollup/rollup-freebsd-x64": "4.53.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.5", + "@rollup/rollup-linux-arm-musleabihf": "4.53.5", + "@rollup/rollup-linux-arm64-gnu": "4.53.5", + "@rollup/rollup-linux-arm64-musl": "4.53.5", + "@rollup/rollup-linux-loong64-gnu": "4.53.5", + "@rollup/rollup-linux-ppc64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-musl": "4.53.5", + "@rollup/rollup-linux-s390x-gnu": "4.53.5", + "@rollup/rollup-linux-x64-gnu": "4.53.5", + "@rollup/rollup-linux-x64-musl": "4.53.5", + "@rollup/rollup-openharmony-arm64": "4.53.5", + "@rollup/rollup-win32-arm64-msvc": "4.53.5", + "@rollup/rollup-win32-ia32-msvc": "4.53.5", + "@rollup/rollup-win32-x64-gnu": "4.53.5", + "@rollup/rollup-win32-x64-msvc": "4.53.5", "fsevents": "~2.3.2" } }, @@ -3966,18 +3987,17 @@ "license": "MIT" }, "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, + "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": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4121,19 +4141,6 @@ } } }, - "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==", - "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", @@ -4177,9 +4184,9 @@ } }, "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==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", + "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", "funding": [ { "type": "opencollective", @@ -4216,13 +4223,13 @@ } }, "node_modules/vite": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.2.tgz", - "integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "license": "MIT", "peer": true, "dependencies": { - "esbuild": "^0.25.0", + "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", @@ -4307,17 +4314,18 @@ } } }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "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", - "peer": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/which": { @@ -4351,43 +4359,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/widest-line/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "license": "MIT" - }, - "node_modules/widest-line/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==", + "node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", "strip-ansi": "^7.1.0" }, "engines": { "node": ">=18" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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" } @@ -4488,9 +4472,9 @@ "license": "ISC" }, "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==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "devOptional": true, "license": "ISC", "peer": true, @@ -4499,6 +4483,9 @@ }, "engines": { "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yargs": { diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..1c6390f --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,3 @@ +export const plugins = { + autoprefixer: {} +}; diff --git a/resources/doc-likec4/package-lock.json b/resources/doc-likec4/package-lock.json new file mode 100644 index 0000000..fd4ba24 --- /dev/null +++ b/resources/doc-likec4/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "doc-likec4", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/resources/edp-likec4/deployment/otc/edp.c4 b/resources/edp-likec4/deployment/otc/edp.c4 index c5b51b5..3587b15 100644 --- a/resources/edp-likec4/deployment/otc/edp.c4 +++ b/resources/edp-likec4/deployment/otc/edp.c4 @@ -2,8 +2,8 @@ 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. - + 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' @@ -15,7 +15,7 @@ deployment { cluster edp 'EDP' { instanceOf edp.argoCD - instanceOf forgejoRunner + instanceOf forgejoRunner instanceOf edp.forgejo { -> cloudServices.elasticsearch -> cloudServices.objectstorage @@ -24,6 +24,7 @@ deployment { } instanceOf edp.externalSecrets instanceOf edp.ingressNginx + instanceOf edp.garm } } @@ -36,7 +37,7 @@ deployment { instanceOf objectstorage instanceOf elasticsearch } - + computeressource forgejoRunnerInfrastructure 'EDP ForgejoRunner infrastructure' { description 'Infrastructure for Forgejo runners like pods, vms, lxds, etc' instanceOf forgejoRunner { @@ -45,5 +46,3 @@ deployment { } } } - - \ No newline at end of file diff --git a/resources/edp-likec4/deployment/otc/faas-deployment.c4 b/resources/edp-likec4/deployment/otc/faas-deployment.c4 index 21f9fa2..22a09c9 100644 --- a/resources/edp-likec4/deployment/otc/faas-deployment.c4 +++ b/resources/edp-likec4/deployment/otc/faas-deployment.c4 @@ -1,8 +1,7 @@ deployment { cloud otc-faas 'OTC prototype FaaS' { - description 'OTC environments for Prototype faaS. - ' + description 'OTC environments for Prototype FaaS.' technology 'OTC' environment dev 'tenant Dev' { @@ -24,7 +23,7 @@ deployment { } paas cloudServices 'EDP Cloud Services' { - description 'EDP Cloud Services (Postgres, Redis, etc.' + description 'EDP Cloud Services (Postgres, Redis, etc.)' technology 'Cloud Services' } @@ -55,7 +54,7 @@ deployment { paas cloudServices 'EDP Cloud Services' { - description 'EDP Cloud Services (Postgres, Redis, etc.' + description 'EDP Cloud Services (Postgres, Redis, etc.)' technology 'Cloud Services' } @@ -63,7 +62,6 @@ deployment { description '*.buildth.ing' icon tech:kubernetes technology 'Kubernetes' - } } diff --git a/resources/edp-likec4/images/person-profile.svg b/resources/edp-likec4/images/person-profile.svg new file mode 100644 index 0000000..40786b2 --- /dev/null +++ b/resources/edp-likec4/images/person-profile.svg @@ -0,0 +1,5 @@ + + + Person profile + + diff --git a/resources/edp-likec4/models/components/tools.c4 b/resources/edp-likec4/models/components/tools.c4 index 8484713..1d4dd0e 100644 --- a/resources/edp-likec4/models/components/tools.c4 +++ b/resources/edp-likec4/models/components/tools.c4 @@ -10,4 +10,27 @@ model { platformdeveloper -> edfbuilder "runs" } + component idpbuilder "idpbuilder" { + description 'Bootstrap tool for initial platform provisioning' + technology 'Golang' + icon tech:go + style { + shape rectangle + } + + -> edp.argoCD 'installs' + -> edp.forgejo 'installs' + -> edp.ingressNginx 'installs' + + platformdeveloper -> idpbuilder 'runs' + } + + component terraform 'Terraform' { + description 'Infrastructure provisioning (IaC)' + technology 'Terraform' + style { + shape rectangle + } + } + } \ No newline at end of file diff --git a/resources/edp-likec4/models/containers/edgeconnect.c4 b/resources/edp-likec4/models/containers/edgeconnect.c4 new file mode 100644 index 0000000..5e39a06 --- /dev/null +++ b/resources/edp-likec4/models/containers/edgeconnect.c4 @@ -0,0 +1,41 @@ +model { + system edgeConnect 'EdgeConnect Cloud' { + description 'Provides an API and control plane to run applications on the edge' + + container api 'Edge Cloud API' { + description 'Single entry point for provisioning and lifecycle management' + } + + container resources 'Edge Resources' { + description 'Managed resources such as App, AppInstance, etc.' + } + + container controllers 'Controllers / Scheduler' { + description 'Reconciles desired state and drives deployments' + } + + container runtime 'Edge Clusters' { + description 'Runtime where applications actually run' + } + + api -> resources 'creates/updates' + controllers -> resources 'reconciles' + controllers -> runtime 'deploys' + } + + component edgeCli 'EdgeConnect CLI' { + description 'Command-line client for interactive usage' + } + + component edgeSdk 'EdgeConnect SDK' { + description 'SDK for programmatic integration' + } + + component edgeTerraformProvider 'Terraform Edge provider' { + description 'Terraform provider enabling declarative provisioning' + } + + edgeCli -> edgeConnect.api 'calls' + edgeSdk -> edgeConnect.api 'calls' + edgeTerraformProvider -> edgeConnect.api 'provisions via' +} diff --git a/resources/edp-likec4/models/containers/garm.c4 b/resources/edp-likec4/models/containers/garm.c4 new file mode 100644 index 0000000..26631e7 --- /dev/null +++ b/resources/edp-likec4/models/containers/garm.c4 @@ -0,0 +1,24 @@ +model { + extend edp { + container garm 'Garm Image' { + icon tech:docker + component garm 'Garm' { + description 'Provisions runners for Forgejo' + icon tech:go + } + + component providerEdgeConnect 'Garm Provider for EdgeConnect' { + icon tech:go + description 'Acts as abstraction layer for EdgeConnect' + } + + component providerKubernetes 'Garm Provider for Kubernetes' { + icon tech:go + description 'Acts as abstraction layer for Kubernetes' + } + + garm -> providerEdgeConnect 'calls binary' + garm -> providerKubernetes 'calls binary' + } + } +} diff --git a/resources/edp-likec4/models/context/actors.c4 b/resources/edp-likec4/models/context/actors.c4 index dd690f5..cb8071d 100644 --- a/resources/edp-likec4/models/context/actors.c4 +++ b/resources/edp-likec4/models/context/actors.c4 @@ -1,8 +1,11 @@ model { developer = actor 'Developer' { description 'The regular user of the platform' - -> localbox 'inner loop development' - -> edp 'outer loop development' + -> localbox 'inner loop' + -> edp 'outer loop' + -> edgeCli 'uses' + -> edgeSdk 'uses' + -> edgeTerraformProvider 'uses' -> edp.ui 'manages project' -> edp.forgejo 'manages code' -> edp.keycloak 'authenticates' @@ -19,10 +22,11 @@ model { color gray shape person } + -> edgeConnect 'operates' } otherProductLifecycleRoles = actor 'Reviewer, Tester, Auditors, Operators' { description 'Coworking roles in the outer loop' - -> edp 'act according to responibility' + -> edp 'review / operate' } customers = actor 'End Customers' { description 'Consumers of your Application' diff --git a/resources/edp-likec4/models/context/application-deployment.c4 b/resources/edp-likec4/models/context/application-deployment.c4 new file mode 100644 index 0000000..63d1ce6 --- /dev/null +++ b/resources/edp-likec4/models/context/application-deployment.c4 @@ -0,0 +1,21 @@ +model { + runtimeCluster = system 'Kubernetes Cluster' { + description 'Target cluster where applications are deployed' + technology 'Kubernetes' + + container runningApplication 'Running Application' { + description 'Deployed workload' + + component pods 'Pods' + component services 'Services' + component ingress 'Ingress' + } + } + + // Relationships matching the documentation flow + developer -> edp.forgejogit 'git push' + edp.forgejogit -> edp.forgejoActions 'triggers' + edp.forgejoActions -> edp.imageregistry 'push image' + edp.forgejogit -> edp.argoCD 'watches manifests' + edp.argoCD -> runtimeCluster 'deploys' +} diff --git a/resources/edp-likec4/models/context/edp.c4 b/resources/edp-likec4/models/context/edp.c4 index 970e989..5ee6d85 100644 --- a/resources/edp-likec4/models/context/edp.c4 +++ b/resources/edp-likec4/models/context/edp.c4 @@ -4,7 +4,8 @@ model { technology 'Kubernetes' icon tech:kubernetes -> enterprise 'integrates' - -> cloud 'deploys and observes' + -> cloud 'deploy & observe' + -> edgeTerraformProvider 'automates' -> localbox // inner-outer loop synchronization application = schema 'application' { diff --git a/resources/edp-likec4/models/context/localbox.c4 b/resources/edp-likec4/models/context/localbox.c4 index 07547d8..1a3138f 100644 --- a/resources/edp-likec4/models/context/localbox.c4 +++ b/resources/edp-likec4/models/context/localbox.c4 @@ -2,7 +2,7 @@ model { localbox = system 'localbox' { description 'A local development system' technology 'Linux/Windows/Mac' - -> edp 'inner-outer-loop synchronization' + -> edp 'sync' -> enterprise 'company integration' application = schema 'application' { diff --git a/resources/edp-likec4/models/spec.c4 b/resources/edp-likec4/models/spec.c4 index c99a0ad..75311f7 100644 --- a/resources/edp-likec4/models/spec.c4 +++ b/resources/edp-likec4/models/spec.c4 @@ -1,4 +1,7 @@ specification { + // Custom color used for view-local highlighting + color magenta #b100ff + element actor { style { shape person diff --git a/resources/edp-likec4/package-lock.json b/resources/edp-likec4/package-lock.json new file mode 100644 index 0000000..602e4bf --- /dev/null +++ b/resources/edp-likec4/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "edp-likec4", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/resources/edp-likec4/views/deployment/edge/provider.c4 b/resources/edp-likec4/views/deployment/edge/provider.c4 new file mode 100644 index 0000000..d7aee46 --- /dev/null +++ b/resources/edp-likec4/views/deployment/edge/provider.c4 @@ -0,0 +1,68 @@ +deployment { + + paas edgeProvider 'Terraform Edge provider' { + icon tech:terraform + description "Unlocks the terraform ecosystem" + -> edgeSdk "built using" + -> terralist "published to" + -> edp "hosted on" + } + + environment edgeProviderHost 'OTC' { + + cluster edp 'Forgejo for all EDP-tenants' { + icon tech:git + instanceOf edp.forgejo 'Forgejo for all EDP-tenants' { + description 'edp.buildth.ing' + } + } + + paas terralist 'Terralist' { + icon tech:terraform + description 'Terraform provider private hosting' + technology 'Cloud Services' + -> edp "authenticates via" + } + } + + paas edgeSdk 'Edge Cloud SDK' { + icon tech:go + description 'Wrapper around API' + technology 'Cloud Services' + -> edgeApi "calls" + -> edp "hosted on" + } + + environment edgeCloud 'Edge cloud' { + + paas edgeApi 'Edge Cloud API' { + icon tech:swagger + link https://swagger.edge.platform.mg3.mdb.osc.live "Documentation" + technology 'Edge Cloud (managed)' + -> edgeResources "creates/destroys" + } + + paas edgeResources 'Edge Cloud Resources' { + description 'App, AppInstance, etc.' + technology 'Edge Cloud (managed)' + } + + } +} + +views { + deployment view provider { + title 'Terraform Edge provider' + + include + edgeProviderHost, + edp, + edgeResources, + edgeCloud, + edgeApi, + terralist, + edgeSdk, + edgeProvider, + } +} + diff --git a/resources/edp-likec4/views/deployment/otc/otc-tenants.c4 b/resources/edp-likec4/views/deployment/otc/otc-tenants.c4 new file mode 100644 index 0000000..95c62ae --- /dev/null +++ b/resources/edp-likec4/views/deployment/otc/otc-tenants.c4 @@ -0,0 +1,57 @@ +deployment { + + environment otcTenantProd 'Prod - builth.ing' { + + cluster otcTenantEdpBuildthing 'edp.builth.ing' { + icon tech:git + description 'Primary Instance' + + } + + cluster otcTenantObservability 'observability.builth.ing' { + icon tech:git + description 'Observability Instance' + } + + cluster otcTenantCustomerA 'customer-a.builth.ing' { + icon tech:git + description 'Customer Instance' + } + } + + environment otcTenantNonProd 'Non-Prod - t09.de' { + + cluster otcTenantDev1 'dev1.t09.de' { + icon tech:git + description 'Development Instance' + } + + cluster otcTenantTestX 'test-x.t09.de' { + icon tech:git + description 'Testing Instance' + } + + } + + otcTenantEdpBuildthing -> otcTenantObservability 'deploys' + otcTenantEdpBuildthing -> otcTenantCustomerA 'deploys' + otcTenantEdpBuildthing -> otcTenantDev1 'deploys' + otcTenantEdpBuildthing -> otcTenantTestX 'deploys' +} + +views { + deployment view otcTenants { + title 'OTC tenants' + + include + otcTenantProd, + otcTenantNonProd, + otcTenantEdpBuildthing, + otcTenantObservability, + otcTenantCustomerA, + otcTenantDev1, + otcTenantTestX, + } +} + + diff --git a/resources/edp-likec4/views/dynamic/cicd/forgejo-garm.c4 b/resources/edp-likec4/views/dynamic/cicd/forgejo-garm.c4 new file mode 100644 index 0000000..321c4b1 --- /dev/null +++ b/resources/edp-likec4/views/dynamic/cicd/forgejo-garm.c4 @@ -0,0 +1,35 @@ +views { + dynamic view forgejoGarmInteraction { + title 'Forgejo <-> Garm' + + include edp, edp.garm + include edp.forgejo with { + title 'Forgejo' + } + include edp.garm.garm + include edp.garm.providerEdgeConnect + include edgeConnect + + edp.forgejo -> edp.garm.garm '(Webhook) A new job is pending' + edp.garm.garm -> edp.garm.providerEdgeConnect 'Create new runner' + edp.garm.providerEdgeConnect -> edgeConnect 'Create App (Runner)' + edp.garm.providerEdgeConnect -> edgeConnect 'Create AppInstance (Runner)' + edgeConnect -> forgejoRunner 'Deploys' + + forgejoRunner -> edp.garm.garm 'Get runner registration token' + edp.garm.garm -> edp.forgejo 'Get runner registration token' + edp.forgejo -> edp.garm.garm 'Token' + edp.garm.garm -> forgejoRunner 'Token' + forgejoRunner -> edp.forgejo 'Register runner' + forgejoRunner -> edp.forgejo 'Fetch job' + forgejoRunner -> forgejoRunner 'Work on job' + forgejoRunner -> edp.forgejo 'Send result' + edp.forgejo -> edp.forgejo 'Deregister Runner' + forgejoRunner -> forgejoRunner 'Terminate' + + edp.forgejo -> edp.garm.garm '(Webhook) A job finished' + edp.garm.garm -> edp.garm.providerEdgeConnect 'Delete runner' + edp.garm.providerEdgeConnect -> edgeConnect 'Delete AppInstance (Runner)' + edp.garm.providerEdgeConnect -> edgeConnect 'Delete App (Runner)' + } +} diff --git a/resources/edp-likec4/views/dynamic/cicd/garm-arch.c4 b/resources/edp-likec4/views/dynamic/cicd/garm-arch.c4 new file mode 100644 index 0000000..61150bc --- /dev/null +++ b/resources/edp-likec4/views/dynamic/cicd/garm-arch.c4 @@ -0,0 +1,73 @@ +deployment { + environment otcKubernetes 'OTC Kubernetes' { + description 'OTC Container Cluster Engine hosting EDP platform' + technology 'Kubernetes' + icon tech:kubernetes + + cluster edpCluster 'EDP Cluster' { + description 'EDP platform cluster' + + instanceOf edp.forgejo { + description 'Forgejo - Git platform with Actions' + } + + instanceOf edp.forgejoActions { + description 'CI/CD orchestration for Forgejo' + } + + garmContainer = instanceOf edp.garm { + description 'GARM container with runner orchestration' + } + + environment edpCluster 'GARM pod' { + technology 'Kubernetes' + garmService = instanceOf edp.garm.garm { + description 'GARM - Runner lifecycle manager' + } + + instanceOf edp.garm.providerEdgeConnect { + description 'GARM Provider for Edge Connect' + } + } + } + } + + environment edgeConnectEnv 'Edge Connect' { + description 'Edge infrastructure for ephemeral runner deployment' + technology 'Edge Connect Platform' + icon tech:docker + + computeressource runnerInfrastructure 'Runner Infrastructure' { + description 'Dynamically provisioned runner instances' + + instanceOf forgejoRunner { + description 'Ephemeral Forgejo Actions runner' + -> otcKubernetes.edpCluster.forgejo 'registers with and picks up jobs' + -> otcKubernetes.edpCluster.garmService 'retrieves bootstrap information' + } + } + } +} + +views { + deployment view forgejoGarmArchitecture { + title 'Architecture of Forgejo, Garm and Edge Connect' + description 'Deployment architecture showing GARM orchestrating ephemeral runners on Edge Connect for Forgejo Actions' + + include + otcKubernetes, + otcKubernetes.*, + otcKubernetes.**, + edgeConnectEnv, + edgeConnectEnv.*, + edgeConnectEnv.** + + style otcKubernetes { + color blue + } + + style edgeConnectEnv { + color green + } + } +} diff --git a/resources/edp-likec4/views/dynamic/orchestration/orchestration-workflow.c4 b/resources/edp-likec4/views/dynamic/orchestration/orchestration-workflow.c4 new file mode 100644 index 0000000..142a6f9 --- /dev/null +++ b/resources/edp-likec4/views/dynamic/orchestration/orchestration-workflow.c4 @@ -0,0 +1,22 @@ +views { + dynamic view orchestration_workflow { + title 'Orchestration Workflow' + + include developer + include edp.forgejo + include edp.forgejoActions + include edp.forgejogit + include edp.argoCD + include runtimeCluster + include terraform + + developer -> edp.forgejo 'defines & commits' + edp.forgejo -> edp.forgejoActions 'pipelines' + edp.forgejo -> edp.forgejogit 'git repository' + edp.forgejogit -> edp.argoCD 'sync trigger' + edp.argoCD -> runtimeCluster 'deploys' + terraform -> runtimeCluster 'provisions' + + autoLayout TopBottom + } +} diff --git a/resources/edp-likec4/views/edp/application-deployment-flow.c4 b/resources/edp-likec4/views/edp/application-deployment-flow.c4 new file mode 100644 index 0000000..1d01fb8 --- /dev/null +++ b/resources/edp-likec4/views/edp/application-deployment-flow.c4 @@ -0,0 +1,22 @@ +views { + + dynamic view application_deployment_flow { + title 'Application Deployment Flow' + + include developer + include edp.forgejo + include edp.forgejogit + include edp.forgejoActions + include edp.imageregistry + include edp.argoCD + include runtimeCluster + + developer -> edp.forgejogit 'git push' + edp.forgejogit -> edp.forgejoActions 'triggers' + edp.forgejoActions -> edp.imageregistry 'push image' + edp.forgejogit -> edp.argoCD 'watches manifests' + edp.argoCD -> runtimeCluster 'deploys' + + autoLayout TopBottom + } +} diff --git a/resources/edp-likec4/views/edp/platform-orchestration-flow.c4 b/resources/edp-likec4/views/edp/platform-orchestration-flow.c4 new file mode 100644 index 0000000..5c3ad27 --- /dev/null +++ b/resources/edp-likec4/views/edp/platform-orchestration-flow.c4 @@ -0,0 +1,23 @@ +views { + + view platform_orchestration_flow of edp { + title 'Platform Orchestration Flow' + + // Keep it minimal: only the elements from the documentation diagram + include idpbuilder + include edp + + include edp.argoCD + include edp.forgejo + include edp.ingressNginx + + // Represent "Platform Stacks" via representative platform components + include edp.keycloak + include edp.monitoring + + // Hide internal-only plumbing unless explicitly included + exclude element.tag = #internal + + autoLayout TopBottom + } +} diff --git a/resources/edp-likec4/views/high-level-concept/application-transition.c4 b/resources/edp-likec4/views/high-level-concept/application-transition.c4 index cf86039..781177c 100644 --- a/resources/edp-likec4/views/high-level-concept/application-transition.c4 +++ b/resources/edp-likec4/views/high-level-concept/application-transition.c4 @@ -3,12 +3,15 @@ views { // the application meta-definition travels through all deploying components view application-transition { title 'application-transistion' - // autoLayout LeftRight 100 100 + autoLayout LeftRight 180 140 // include * exclude developer, localbox, edp, otherProductLifecycleRoles exclude element.kind = workflow - include cloud, cloud.application + include cloud with { + title 'EdgeConnect Cloud' + } + include cloud.application group 'developer-scope' { color green @@ -31,5 +34,16 @@ views { include edp, edp.application } } + + // Only in this view: highlight EDP itself + style edp { + color magenta + } + + // Make actors more "icon-like" (no subtitle/description in-node) + style developer, otherProductLifecycleRoles { + size xsmall + textSize small + } } } \ No newline at end of file diff --git a/resources/edp-likec4/views/high-level-concept/edgeconnect-context.c4 b/resources/edp-likec4/views/high-level-concept/edgeconnect-context.c4 new file mode 100644 index 0000000..bfc44f5 --- /dev/null +++ b/resources/edp-likec4/views/high-level-concept/edgeconnect-context.c4 @@ -0,0 +1,30 @@ +views { + view edgeconnect-context { + title 'EdgeConnect Context' + autoLayout LeftRight 180 140 + + include developer + include platformdeveloper with { + title 'Platform / Cloud Operator' + } + include edp with { + title 'EDP / CI Automation' + } + + include edgeCli + include edgeSdk + include edgeTerraformProvider + + include edgeConnect + include edgeConnect.* + + style edgeConnect, edp { + color magenta + } + + style developer, platformdeveloper { + size xsmall + textSize small + } + } +} diff --git a/resources/product-structure-TRL.excalidraw b/resources/product-structure-TRL.excalidraw new file mode 100644 index 0000000..6474e13 --- /dev/null +++ b/resources/product-structure-TRL.excalidraw @@ -0,0 +1,7255 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor", + "elements": [ + { + "id": "vkEBND0A690yxuKyCwa5r", + "type": "rectangle", + "x": 3448.9437917073556, + "y": -86.80836232503256, + "width": 223.6666666666665, + "height": 169.66666666666669, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a0", + "roundness": { + "type": 3 + }, + "seed": 242676382, + "version": 667, + "versionNonce": 132587654, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "EscCIjL-9_GuHSB42NcbB" + }, + { + "id": "lkOogWCLbvj4ncEE1hva8", + "type": "arrow" + }, + { + "id": "a4N0-GhX7PXNPpXhJrLLe", + "type": "arrow" + }, + { + "id": "HvP_lxaks2dOd2SDvhfLI", + "type": "arrow" + }, + { + "id": "DNfr5h1rXvZeS5O5BU772", + "type": "arrow" + }, + { + "id": "Ed3PIiHWUxcNH9Mh-kOuU", + "type": "arrow" + } + ], + "updated": 1763384714589, + "link": null, + "locked": false + }, + { + "id": "EscCIjL-9_GuHSB42NcbB", + "type": "text", + "x": 3521.447107950845, + "y": -24.47502899169922, + "width": 78.6600341796875, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a1", + "roundness": null, + "seed": 364626690, + "version": 647, + "versionNonce": 1887248326, + "isDeleted": false, + "boundElements": [], + "updated": 1763384714589, + "link": null, + "locked": false, + "text": "EDP", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "vkEBND0A690yxuKyCwa5r", + "originalText": "EDP", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "t0TPl7T0HbrKo0OK0MQB4", + "type": "rectangle", + "x": 3498.789647420246, + "y": 155.7583363850913, + "width": 263.6666666666666, + "height": 136.33333333333326, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a2", + "roundness": { + "type": 3 + }, + "seed": 1074346626, + "version": 912, + "versionNonce": 1485398234, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "w97AzKYRtc3ZIiPzWmF7v" + }, + { + "id": "a4N0-GhX7PXNPpXhJrLLe", + "type": "arrow" + }, + { + "id": "MhRtWxLCedKpv3iZU6Rfx", + "type": "arrow" + }, + { + "id": "35YnFI-q2BjED7vgPVNiH", + "type": "arrow" + }, + { + "id": "CwM7TPKWAvOReKBmO5JAt", + "type": "arrow" + }, + { + "id": "6a4IhhXjxMI4h9w65P5eW", + "type": "arrow" + }, + { + "id": "df09G6vYHr0eiQitHZcBm", + "type": "arrow" + } + ], + "updated": 1763391152495, + "link": null, + "locked": false + }, + { + "id": "w97AzKYRtc3ZIiPzWmF7v", + "type": "text", + "x": 3565.408968607583, + "y": 201.42500305175793, + "width": 130.4280242919922, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a3", + "roundness": null, + "seed": 633510466, + "version": 896, + "versionNonce": 85734810, + "isDeleted": false, + "boundElements": [], + "updated": 1763391152495, + "link": null, + "locked": false, + "text": "Forgejo", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "t0TPl7T0HbrKo0OK0MQB4", + "originalText": "Forgejo", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "4lTu_DNrwnbxtfzzQ-TrP", + "type": "rectangle", + "x": 2851.8614552815734, + "y": 150.0791727701824, + "width": 270.3333333333332, + "height": 131.3333333333334, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a4", + "roundness": { + "type": 3 + }, + "seed": 1878985538, + "version": 718, + "versionNonce": 1152880774, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "jRpDlOWMofCm5734tHjnz" + }, + { + "id": "lkOogWCLbvj4ncEE1hva8", + "type": "arrow" + }, + { + "id": "bFzKsoWrxziwbSPRxWwVS", + "type": "arrow" + }, + { + "id": "DffsfZQo3EdyDYreD651F", + "type": "arrow" + }, + { + "id": "rRYwarMxk0bw-nql_bbzS", + "type": "arrow" + } + ], + "updated": 1763384982445, + "link": null, + "locked": false + }, + { + "id": "jRpDlOWMofCm5734tHjnz", + "type": "text", + "x": 2865.45609283447, + "y": 193.24583943684908, + "width": 243.14405822753906, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a5", + "roundness": null, + "seed": 541086466, + "version": 722, + "versionNonce": 431984582, + "isDeleted": false, + "boundElements": [], + "updated": 1763384982445, + "link": null, + "locked": false, + "text": "Orchestration", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "4lTu_DNrwnbxtfzzQ-TrP", + "originalText": "Orchestration", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "NKe13dkM6xQgKluQErmaO", + "type": "rectangle", + "x": 2352.922922770181, + "y": 342.29168192545546, + "width": 282.0000000000003, + "height": 146.66666666666654, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a6", + "roundness": { + "type": 3 + }, + "seed": 429588062, + "version": 754, + "versionNonce": 1673658118, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "mrC_vkcrFwA1rQI_6eZzX" + }, + { + "id": "bFzKsoWrxziwbSPRxWwVS", + "type": "arrow" + }, + { + "id": "zbnZollP3pYTELPsUG-Xo", + "type": "arrow" + }, + { + "id": "KWgEAQqxr3S9KhRWsmBV2", + "type": "arrow" + } + ], + "updated": 1763391073082, + "link": null, + "locked": false + }, + { + "id": "mrC_vkcrFwA1rQI_6eZzX", + "type": "text", + "x": 2358.616877237954, + "y": 370.6250152587887, + "width": 270.6120910644531, + "height": 90, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a7", + "roundness": null, + "seed": 1755808414, + "version": 783, + "versionNonce": 1941916678, + "isDeleted": false, + "boundElements": [], + "updated": 1763391073082, + "link": null, + "locked": false, + "text": "Infrastructure-\nProvisioning", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "NKe13dkM6xQgKluQErmaO", + "originalText": "Infrastructure-Provisioning", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "layt3FacJkYmYXuCA3eqg", + "type": "rectangle", + "x": 2300.189526875812, + "y": 565.2916666666665, + "width": 280.33333333333326, + "height": 173.33333333333326, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a8", + "roundness": { + "type": 3 + }, + "seed": 1257673218, + "version": 744, + "versionNonce": 1792396870, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "iWgJ1CBtjV5Vl7VsUSCc8" + }, + { + "id": "zbnZollP3pYTELPsUG-Xo", + "type": "arrow" + }, + { + "id": "W9xzjyUSDx4oatQjQMCTa", + "type": "arrow" + } + ], + "updated": 1763391080214, + "link": null, + "locked": false + }, + { + "id": "iWgJ1CBtjV5Vl7VsUSCc8", + "type": "text", + "x": 2308.956138610838, + "y": 584.4583333333331, + "width": 262.80010986328125, + "height": 135, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a9", + "roundness": null, + "seed": 672727490, + "version": 807, + "versionNonce": 1635838982, + "isDeleted": false, + "boundElements": [], + "updated": 1763391080215, + "link": null, + "locked": false, + "text": "Terraform\ninfra-deploy,\ninfra-catalogue", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "layt3FacJkYmYXuCA3eqg", + "originalText": "Terraform\ninfra-deploy, infra-catalogue", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "F_81STR9IKF2KqlGNdupb", + "type": "rectangle", + "x": 2771.1947886149073, + "y": 344.7458394368491, + "width": 243.66666666666754, + "height": 146.6666666666668, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aA", + "roundness": { + "type": 3 + }, + "seed": 2007215838, + "version": 796, + "versionNonce": 645240730, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "SjJ-eaTGplnq8O8Gqx9ok" + }, + { + "id": "xtN_m9HdbobLbAV1oGEpC", + "type": "arrow" + }, + { + "id": "DffsfZQo3EdyDYreD651F", + "type": "arrow" + }, + { + "id": "b58DD6x3YdYB3N2noILhL", + "type": "arrow" + } + ], + "updated": 1763391064682, + "link": null, + "locked": false + }, + { + "id": "SjJ-eaTGplnq8O8Gqx9ok", + "type": "text", + "x": 2790.122100830077, + "y": 373.0791727701825, + "width": 205.81204223632812, + "height": 90, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aB", + "roundness": null, + "seed": 1397105438, + "version": 842, + "versionNonce": 1999108762, + "isDeleted": false, + "boundElements": [], + "updated": 1763391064682, + "link": null, + "locked": false, + "text": "Platform-\nProvisioning", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "F_81STR9IKF2KqlGNdupb", + "originalText": "Platform-Provisioning", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "_SA6WTuXA_hi0TaT8Y2cb", + "type": "rectangle", + "x": 2890.8614552815734, + "y": 574.4125061035156, + "width": 235.33333333333334, + "height": 143.00000000000014, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aC", + "roundness": { + "type": 3 + }, + "seed": 1529105182, + "version": 888, + "versionNonce": 1143562586, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "F7mNndoMDKgsucrJyfMaw" + }, + { + "id": "xtN_m9HdbobLbAV1oGEpC", + "type": "arrow" + }, + { + "id": "Bhuw2euYW-eTFNU9i16zc", + "type": "arrow" + }, + { + "id": "9OOdwZcFnO8NfwcqvkMHD", + "type": "arrow" + }, + { + "id": "Eo2LC08bZTyqHZ_pAvf1c", + "type": "arrow" + } + ], + "updated": 1763391118113, + "link": null, + "locked": false + }, + { + "id": "F7mNndoMDKgsucrJyfMaw", + "type": "text", + "x": 2948.570098876951, + "y": 623.4125061035157, + "width": 119.91604614257812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aD", + "roundness": null, + "seed": 1827223390, + "version": 951, + "versionNonce": 1268730138, + "isDeleted": false, + "boundElements": [], + "updated": 1763391118113, + "link": null, + "locked": false, + "text": "Stacks", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "_SA6WTuXA_hi0TaT8Y2cb", + "originalText": "Stacks", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "8RoIcXb7xOv272dQSIUus", + "type": "rectangle", + "x": 2650.194788614907, + "y": 811.7458394368496, + "width": 233.6666666666666, + "height": 129.66666666666652, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aE", + "roundness": { + "type": 3 + }, + "seed": 2095895938, + "version": 915, + "versionNonce": 880936582, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "TXRFI99H-wPV8jJYQr3HX" + }, + { + "id": "Bhuw2euYW-eTFNU9i16zc", + "type": "arrow" + } + ], + "updated": 1763390995501, + "link": null, + "locked": false + }, + { + "id": "TXRFI99H-wPV8jJYQr3HX", + "type": "text", + "x": 2659.064086914061, + "y": 854.0791727701828, + "width": 215.92807006835938, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aF", + "roundness": null, + "seed": 1501222210, + "version": 996, + "versionNonce": 1422607814, + "isDeleted": false, + "boundElements": [], + "updated": 1763390995501, + "link": null, + "locked": false, + "text": "Component 1", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "8RoIcXb7xOv272dQSIUus", + "originalText": "Component 1", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "lkOogWCLbvj4ncEE1hva8", + "type": "arrow", + "x": 3448.1479014392758, + "y": 12.60854263833994, + "width": 326.26024839165575, + "height": 157.81544986050005, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aI", + "roundness": { + "type": 2 + }, + "seed": 1540868446, + "version": 1640, + "versionNonce": 1678092038, + "isDeleted": false, + "boundElements": [], + "updated": 1763384982446, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -326.26024839165575, + 157.81544986050005 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "vkEBND0A690yxuKyCwa5r", + "focus": 0.28485983606564225, + "gap": 1 + }, + "endBinding": { + "elementId": "4lTu_DNrwnbxtfzzQ-TrP", + "focus": 0.1519523386576579, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "bFzKsoWrxziwbSPRxWwVS", + "type": "arrow", + "x": 2842.6674388659812, + "y": 263.08798961655305, + "width": 202.79999779555055, + "height": 106.08130661261316, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aJ", + "roundness": { + "type": 2 + }, + "seed": 2005135874, + "version": 1628, + "versionNonce": 390323014, + "isDeleted": false, + "boundElements": [], + "updated": 1763391073115, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -202.79999779555055, + 106.08130661261316 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "4lTu_DNrwnbxtfzzQ-TrP", + "focus": 0.20732912257650107, + "gap": 11.12417597375916 + }, + "endBinding": { + "elementId": "NKe13dkM6xQgKluQErmaO", + "focus": 0.2014749804163801, + "gap": 5.670835819366529 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "zbnZollP3pYTELPsUG-Xo", + "type": "arrow", + "x": 2468.7619737407026, + "y": 489.4221224367187, + "width": 20.199540611416523, + "height": 75.34198164952329, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aK", + "roundness": { + "type": 2 + }, + "seed": 223921282, + "version": 1463, + "versionNonce": 1691358598, + "isDeleted": false, + "boundElements": [], + "updated": 1763391080214, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -20.199540611416523, + 75.34198164952329 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "NKe13dkM6xQgKluQErmaO", + "focus": 0.03153454772276274, + "gap": 1 + }, + "endBinding": { + "elementId": "layt3FacJkYmYXuCA3eqg", + "focus": -0.09286907973609843, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "a4N0-GhX7PXNPpXhJrLLe", + "type": "arrow", + "x": 3577.23363489021, + "y": 84.83362334905378, + "width": 30.87910068197698, + "height": 70.46286980778127, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aL", + "roundness": { + "type": 2 + }, + "seed": 1324012318, + "version": 1758, + "versionNonce": 483878618, + "isDeleted": false, + "boundElements": [], + "updated": 1763391152611, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 30.87910068197698, + 70.46286980778127 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "vkEBND0A690yxuKyCwa5r", + "focus": 0.14536315130697988, + "gap": 3.2499942476817694 + }, + "endBinding": { + "elementId": "t0TPl7T0HbrKo0OK0MQB4", + "focus": 0.04500219885520195, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "xtN_m9HdbobLbAV1oGEpC", + "type": "arrow", + "x": 2936.28220592564, + "y": 492.7487135612349, + "width": 41.35890088822225, + "height": 81.14243949452828, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aN", + "roundness": { + "type": 2 + }, + "seed": 269450754, + "version": 1599, + "versionNonce": 1843930650, + "isDeleted": false, + "boundElements": [], + "updated": 1763391118113, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 41.35890088822225, + 81.14243949452828 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "F_81STR9IKF2KqlGNdupb", + "focus": -0.034244415659738126, + "gap": 2.5655005249741407 + }, + "endBinding": { + "elementId": "_SA6WTuXA_hi0TaT8Y2cb", + "focus": 0.03776994298778566, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "DffsfZQo3EdyDYreD651F", + "type": "arrow", + "x": 2964.5167682942715, + "y": 281.85222879409713, + "width": 21.98468917118862, + "height": 62.31825384997899, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aO", + "roundness": { + "type": 2 + }, + "seed": 583904478, + "version": 1579, + "versionNonce": 898210842, + "isDeleted": false, + "boundElements": [], + "updated": 1763391064732, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -21.98468917118862, + 62.31825384997899 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "4lTu_DNrwnbxtfzzQ-TrP", + "focus": -0.0044550562715617165, + "gap": 1 + }, + "endBinding": { + "elementId": "F_81STR9IKF2KqlGNdupb", + "focus": 0.15576156975679706, + "gap": 1.1108165692702414 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "Bhuw2euYW-eTFNU9i16zc", + "type": "arrow", + "x": 2932.020304616605, + "y": 722.132905056231, + "width": 92.86372693028488, + "height": 87.72319267494106, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aP", + "roundness": { + "type": 2 + }, + "seed": 537301698, + "version": 1667, + "versionNonce": 619729626, + "isDeleted": false, + "boundElements": [], + "updated": 1763391118113, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -92.86372693028488, + 87.72319267494106 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "_SA6WTuXA_hi0TaT8Y2cb", + "focus": -0.021599078143972487, + "gap": 8.806116783999528 + }, + "endBinding": { + "elementId": "8RoIcXb7xOv272dQSIUus", + "focus": 0.005511523490681001, + "gap": 3.821071664652436 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "OpdnLYI8J5szelucqIce1", + "type": "rectangle", + "x": 3188.528121948242, + "y": 807.4125061035154, + "width": 238.66666666666697, + "height": 126.33333333333306, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aQ", + "roundness": { + "type": 3 + }, + "seed": 2039569858, + "version": 1099, + "versionNonce": 932242202, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "4I1Olz0jRI1IrWCCpMl_6" + }, + { + "id": "9OOdwZcFnO8NfwcqvkMHD", + "type": "arrow" + }, + { + "id": "MhRtWxLCedKpv3iZU6Rfx", + "type": "arrow" + }, + { + "id": "Few8zOmHv71iXvDfoexhc", + "type": "arrow" + } + ], + "updated": 1763390991701, + "link": null, + "locked": false + }, + { + "id": "4I1Olz0jRI1IrWCCpMl_6", + "type": "text", + "x": 3196.2794240315757, + "y": 848.0791727701819, + "width": 223.1640625, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aR", + "roundness": null, + "seed": 417617282, + "version": 1185, + "versionNonce": 343502810, + "isDeleted": false, + "boundElements": [], + "updated": 1763390991701, + "link": null, + "locked": false, + "text": "Component X", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "OpdnLYI8J5szelucqIce1", + "originalText": "Component X", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "9OOdwZcFnO8NfwcqvkMHD", + "type": "arrow", + "x": 3097.8152212385676, + "y": 717.8713052992143, + "width": 164.06503145121724, + "height": 89.07067600321659, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aS", + "roundness": { + "type": 2 + }, + "seed": 536559106, + "version": 1755, + "versionNonce": 1272244122, + "isDeleted": false, + "boundElements": [], + "updated": 1763391118113, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 164.06503145121724, + 89.07067600321659 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "_SA6WTuXA_hi0TaT8Y2cb", + "focus": 0.17347242703939872, + "gap": 1 + }, + "endBinding": { + "elementId": "OpdnLYI8J5szelucqIce1", + "focus": 0.30491075133428747, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "MhRtWxLCedKpv3iZU6Rfx", + "type": "arrow", + "x": 3379.7138934365817, + "y": 811.1608108197398, + "width": 147.10907084991595, + "height": 518.6851927279531, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aT", + "roundness": { + "type": 2 + }, + "seed": 524561282, + "version": 1938, + "versionNonce": 24615770, + "isDeleted": false, + "boundElements": [], + "updated": 1763391711481, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 51.11894350939383, + -411.7024622276173 + ], + [ + 147.10907084991595, + -518.6851927279531 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "OpdnLYI8J5szelucqIce1", + "focus": 0.5069711552521924, + "gap": 3.7483047162244247 + }, + "endBinding": { + "elementId": "t0TPl7T0HbrKo0OK0MQB4", + "focus": 0.21913979612959741, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "kmtDycZxwwqCxwxbJ62VN", + "type": "rectangle", + "x": 3461.3614552815748, + "y": 371.57917277018214, + "width": 192.00000000000003, + "height": 128, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aU", + "roundness": { + "type": 3 + }, + "seed": 1659730626, + "version": 960, + "versionNonce": 1090785094, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "ASpNMYOiBSktj9CiNGRi7" + }, + { + "id": "35YnFI-q2BjED7vgPVNiH", + "type": "arrow" + } + ], + "updated": 1763385009911, + "link": null, + "locked": false + }, + { + "id": "ASpNMYOiBSktj9CiNGRi7", + "type": "text", + "x": 3485.3074391682935, + "y": 390.57917277018214, + "width": 144.1080322265625, + "height": 90, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aV", + "roundness": null, + "seed": 448057986, + "version": 961, + "versionNonce": 1032730246, + "isDeleted": false, + "boundElements": [], + "updated": 1763385009911, + "link": null, + "locked": false, + "text": "Project-\nmgmt", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "kmtDycZxwwqCxwxbJ62VN", + "originalText": "Project-mgmt", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "AuV1TlXW4532KFhbJ1qOy", + "type": "rectangle", + "x": 3690.5281219482417, + "y": 364.4958394368491, + "width": 192.00000000000003, + "height": 128, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aW", + "roundness": { + "type": 3 + }, + "seed": 2043252162, + "version": 1013, + "versionNonce": 627380186, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "a5DWUJIk5eQplJNbp0otf" + }, + { + "id": "CwM7TPKWAvOReKBmO5JAt", + "type": "arrow" + }, + { + "id": "qSP9tR0BuFoaLIiwdNAHv", + "type": "arrow" + }, + { + "id": "OLypIFGhJuPTv_5fZ1c5H", + "type": "arrow" + }, + { + "id": "-g0IjFN-WFXq9V-ETpJB7", + "type": "arrow" + }, + { + "id": "df09G6vYHr0eiQitHZcBm", + "type": "arrow" + } + ], + "updated": 1763391668632, + "link": null, + "locked": false + }, + { + "id": "a5DWUJIk5eQplJNbp0otf", + "type": "text", + "x": 3720.9001007080074, + "y": 405.9958394368491, + "width": 131.25604248046875, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aX", + "roundness": null, + "seed": 1117160834, + "version": 1015, + "versionNonce": 841018310, + "isDeleted": false, + "boundElements": [], + "updated": 1763385011561, + "link": null, + "locked": false, + "text": "Actions", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "AuV1TlXW4532KFhbJ1qOy", + "originalText": "Actions", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "HGDqZbDbJ49R2jRs9GJIZ", + "type": "rectangle", + "x": 3858.7198537190734, + "y": 570.2124938964841, + "width": 188.66666666666697, + "height": 136.33333333333326, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aY", + "roundness": { + "type": 3 + }, + "seed": 1246374302, + "version": 1143, + "versionNonce": 1582074950, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "PmePFMsiWUJPlO2riNhKV" + }, + { + "id": "OLypIFGhJuPTv_5fZ1c5H", + "type": "arrow" + }, + { + "id": "ITzr29HGvJ1h4aIH-tm4Q", + "type": "arrow" + }, + { + "id": "IuHuUZm7W9LJpRuMzCgjb", + "type": "arrow" + } + ], + "updated": 1763385080458, + "link": null, + "locked": false + }, + { + "id": "PmePFMsiWUJPlO2riNhKV", + "type": "text", + "x": 3893.923166910806, + "y": 615.8791605631508, + "width": 118.26004028320312, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aZ", + "roundness": null, + "seed": 1758414302, + "version": 1151, + "versionNonce": 1992233862, + "isDeleted": false, + "boundElements": [], + "updated": 1763385080458, + "link": null, + "locked": false, + "text": "Runner", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "HGDqZbDbJ49R2jRs9GJIZ", + "originalText": "Runner", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "03jCrwPTuTbzVdpJni9ur", + "type": "rectangle", + "x": 3586.236333211262, + "y": 572.8291727701825, + "width": 192.00000000000003, + "height": 145, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aa", + "roundness": { + "type": 3 + }, + "seed": 586159938, + "version": 1188, + "versionNonce": 1237377286, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "qb0juwUBn201I_3S8RiT4" + }, + { + "id": "qSP9tR0BuFoaLIiwdNAHv", + "type": "arrow" + }, + { + "id": "IuHuUZm7W9LJpRuMzCgjb", + "type": "arrow" + } + ], + "updated": 1763384611677, + "link": null, + "locked": false + }, + { + "id": "qb0juwUBn201I_3S8RiT4", + "type": "text", + "x": 3595.2783101399727, + "y": 577.8291727701825, + "width": 173.91604614257812, + "height": 135, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ab", + "roundness": null, + "seed": 1764744962, + "version": 1211, + "versionNonce": 1112199238, + "isDeleted": false, + "boundElements": [], + "updated": 1763384611677, + "link": null, + "locked": false, + "text": "Runner-\nOrchestra\ntion", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "03jCrwPTuTbzVdpJni9ur", + "originalText": "Runner-Orchestration", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "35YnFI-q2BjED7vgPVNiH", + "type": "arrow", + "x": 3626.4145149400288, + "y": 292.6565181408057, + "width": 28.641286766907342, + "height": 78.36597963704418, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ac", + "roundness": { + "type": 2 + }, + "seed": 1611251358, + "version": 1611, + "versionNonce": 184219738, + "isDeleted": false, + "boundElements": [], + "updated": 1763391152611, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -28.641286766907342, + 78.36597963704418 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "t0TPl7T0HbrKo0OK0MQB4", + "focus": -0.13368249489502643, + "gap": 1.221558390886571 + }, + "endBinding": { + "elementId": "kmtDycZxwwqCxwxbJ62VN", + "focus": 0.14045563524470103, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "CwM7TPKWAvOReKBmO5JAt", + "type": "arrow", + "x": 3681.6553001844177, + "y": 292.55351294668077, + "width": 69.11222120735647, + "height": 71.32418416564747, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ad", + "roundness": { + "type": 2 + }, + "seed": 682017950, + "version": 1588, + "versionNonce": 879680794, + "isDeleted": false, + "boundElements": [], + "updated": 1763391152612, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 69.11222120735647, + 71.32418416564747 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "t0TPl7T0HbrKo0OK0MQB4", + "focus": 0.0800859255357604, + "gap": 1 + }, + "endBinding": { + "elementId": "AuV1TlXW4532KFhbJ1qOy", + "focus": 0.16974068696432618, + "gap": 1.1099916743343101 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "qSP9tR0BuFoaLIiwdNAHv", + "type": "arrow", + "x": 3749.2100601611082, + "y": 495.0046139963675, + "width": 58.5478204371293, + "height": 76.44966472549294, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ae", + "roundness": { + "type": 2 + }, + "seed": 1443786690, + "version": 1543, + "versionNonce": 1693896710, + "isDeleted": false, + "boundElements": [], + "updated": 1763385012011, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -58.5478204371293, + 76.44966472549294 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "AuV1TlXW4532KFhbJ1qOy", + "focus": -0.08956284844114419, + "gap": 4.455062828851851 + }, + "endBinding": { + "elementId": "03jCrwPTuTbzVdpJni9ur", + "focus": -0.31936453669195425, + "gap": 2.270603451832244 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "OLypIFGhJuPTv_5fZ1c5H", + "type": "arrow", + "x": 3846.2590342234744, + "y": 494.05094250390056, + "width": 56.900326618306735, + "height": 75.52753527137321, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "af", + "roundness": { + "type": 2 + }, + "seed": 1271403138, + "version": 1579, + "versionNonce": 1172222662, + "isDeleted": false, + "boundElements": [], + "updated": 1763385080458, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 56.900326618306735, + 75.52753527137321 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "AuV1TlXW4532KFhbJ1qOy", + "focus": -0.0673988430842441, + "gap": 2.776658341000825 + }, + "endBinding": { + "elementId": "HGDqZbDbJ49R2jRs9GJIZ", + "focus": 0.010660183928777166, + "gap": 1.0794208734004087 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "gacAPFdY1RyNH397B5m1U", + "type": "rectangle", + "x": 4323.889862060546, + "y": 160.99173482259135, + "width": 237.00000000000006, + "height": 128, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ag", + "roundness": { + "type": 3 + }, + "seed": 1851075330, + "version": 1039, + "versionNonce": 1577296774, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "6eO7nuzJq274YnpWW-66w" + }, + { + "id": "HvP_lxaks2dOd2SDvhfLI", + "type": "arrow" + }, + { + "id": "VXKR-23IgHtvHvAOfqBJK", + "type": "arrow" + }, + { + "id": "oiu375_RGxk2Fye0pSHWl", + "type": "arrow" + } + ], + "updated": 1763384969462, + "link": null, + "locked": false + }, + { + "id": "6eO7nuzJq274YnpWW-66w", + "type": "text", + "x": 4333.831832885741, + "y": 202.49173482259135, + "width": 217.11605834960938, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ah", + "roundness": null, + "seed": 1983675074, + "version": 1035, + "versionNonce": 1980842694, + "isDeleted": false, + "boundElements": [], + "updated": 1763384969462, + "link": null, + "locked": false, + "text": "Deployments", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "gacAPFdY1RyNH397B5m1U", + "originalText": "Deployments", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "HvP_lxaks2dOd2SDvhfLI", + "type": "arrow", + "x": 3674.408467408685, + "y": 27.814129841038977, + "width": 705.4734361804935, + "height": 132.61786743910753, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ai", + "roundness": { + "type": 2 + }, + "seed": 506905730, + "version": 1670, + "versionNonce": 1370028550, + "isDeleted": false, + "boundElements": [], + "updated": 1763384969462, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 417.18112202816474, + 58.310885417750285 + ], + [ + 705.4734361804935, + 132.61786743910753 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "vkEBND0A690yxuKyCwa5r", + "focus": 0.13842181822847455, + "gap": 2.262001175630303 + }, + "endBinding": { + "elementId": "gacAPFdY1RyNH397B5m1U", + "focus": 0.5124469690822768, + "gap": 1.170358416083019 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "qNeeLvM5XS8SbneZGVW0q", + "type": "rectangle", + "x": 4397.819864908852, + "y": 375.5458818308476, + "width": 192.00000000000003, + "height": 128, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aj", + "roundness": { + "type": 3 + }, + "seed": 57307458, + "version": 1241, + "versionNonce": 1525705370, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "M64AWjiJS8JuMU0z5fLRi" + }, + { + "id": "oiu375_RGxk2Fye0pSHWl", + "type": "arrow" + }, + { + "id": "uLoZmI9exhZHMKYhjSP-i", + "type": "arrow" + } + ], + "updated": 1763385028394, + "link": null, + "locked": false + }, + { + "id": "M64AWjiJS8JuMU0z5fLRi", + "type": "text", + "x": 4453.2658487955705, + "y": 417.0458818308476, + "width": 81.1080322265625, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ak", + "roundness": null, + "seed": 1028585730, + "version": 1238, + "versionNonce": 1098647386, + "isDeleted": false, + "boundElements": [], + "updated": 1763385028394, + "link": null, + "locked": false, + "text": "OTC", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "qNeeLvM5XS8SbneZGVW0q", + "originalText": "OTC", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "rl_lEbITjZxZu5tmsHPG-", + "type": "rectangle", + "x": 4655.891967773436, + "y": 382.53346626281404, + "width": 272, + "height": 129.66666666666674, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "al", + "roundness": { + "type": 3 + }, + "seed": 1155100062, + "version": 1306, + "versionNonce": 879891354, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "XKscc6NBAbjTdhnv_vYNs" + }, + { + "id": "VXKR-23IgHtvHvAOfqBJK", + "type": "arrow" + }, + { + "id": "AwhH7M8t1q6KeZgpF4XnY", + "type": "arrow" + }, + { + "id": "ewu_wkEI_N0QlOuQFAwot", + "type": "arrow" + } + ], + "updated": 1763384897115, + "link": null, + "locked": false + }, + { + "id": "XKscc6NBAbjTdhnv_vYNs", + "type": "text", + "x": 4678.869926452635, + "y": 424.8667995961475, + "width": 226.04408264160156, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "am", + "roundness": null, + "seed": 1490422238, + "version": 1316, + "versionNonce": 786468954, + "isDeleted": false, + "boundElements": [], + "updated": 1763384897115, + "link": null, + "locked": false, + "text": "EdgeConnect", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "rl_lEbITjZxZu5tmsHPG-", + "originalText": "EdgeConnect", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "fWp85O5NBU84CIOiCRAVO", + "type": "rectangle", + "x": 4558.137908935542, + "y": 789.5836625925663, + "width": 385.3333333333338, + "height": 134.66666666666686, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "an", + "roundness": { + "type": 3 + }, + "seed": 261837890, + "version": 1407, + "versionNonce": 617794566, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "9SgHNFxPpzs6RDS3xTZoQ" + }, + { + "id": "AwhH7M8t1q6KeZgpF4XnY", + "type": "arrow" + }, + { + "id": "FxyBjbU6oLIrTe1vA6Wat", + "type": "arrow" + }, + { + "id": "PsCiD7UuKAUpoL34oJV4C", + "type": "arrow" + } + ], + "updated": 1763391365258, + "link": null, + "locked": false + }, + { + "id": "9SgHNFxPpzs6RDS3xTZoQ", + "type": "text", + "x": 4588.930521647131, + "y": 834.4169959258998, + "width": 323.74810791015625, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ao", + "roundness": null, + "seed": 2003532802, + "version": 1421, + "versionNonce": 1508334406, + "isDeleted": false, + "boundElements": [], + "updated": 1763391365258, + "link": null, + "locked": false, + "text": "EdgeConnectClient", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "fWp85O5NBU84CIOiCRAVO", + "originalText": "EdgeConnectClient", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "VXKR-23IgHtvHvAOfqBJK", + "type": "arrow", + "x": 4560.789212327934, + "y": 268.93995006037903, + "width": 152.07787355595428, + "height": 113.16039305428501, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ap", + "roundness": { + "type": 2 + }, + "seed": 2109377474, + "version": 1770, + "versionNonce": 667404614, + "isDeleted": false, + "boundElements": [], + "updated": 1763384969463, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 152.07787355595428, + 113.16039305428501 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "gacAPFdY1RyNH397B5m1U", + "focus": -0.2902863001493682, + "gap": 1.289924287763078 + }, + "endBinding": { + "elementId": "rl_lEbITjZxZu5tmsHPG-", + "focus": 0.04104255304194183, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "AwhH7M8t1q6KeZgpF4XnY", + "type": "arrow", + "x": 4758.229635882192, + "y": 513.3020686103432, + "width": 3.4113431387913806, + "height": 72.34650144375053, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aq", + "roundness": { + "type": 2 + }, + "seed": 279119618, + "version": 2146, + "versionNonce": 1625801178, + "isDeleted": false, + "boundElements": [], + "updated": 1763384897116, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 3.4113431387913806, + 72.34650144375053 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "rl_lEbITjZxZu5tmsHPG-", + "focus": 0.26009804332056685, + "gap": 2.519959810605087 + }, + "endBinding": { + "elementId": "uw_e9SDMZg5n02CI_rcGi", + "focus": 0.17524221808273333, + "gap": 3.792578784600437 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "oiu375_RGxk2Fye0pSHWl", + "type": "arrow", + "x": 4458.895332668404, + "y": 290.0585325478296, + "width": 10.771630603813719, + "height": 84.57976492942612, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ar", + "roundness": { + "type": 2 + }, + "seed": 1602753218, + "version": 1793, + "versionNonce": 905317402, + "isDeleted": false, + "boundElements": [], + "updated": 1763385028394, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 10.771630603813719, + 84.57976492942612 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "gacAPFdY1RyNH397B5m1U", + "focus": -0.07089903848836447, + "gap": 2.2181859611155232 + }, + "endBinding": { + "elementId": "qNeeLvM5XS8SbneZGVW0q", + "focus": -0.14829601841891402, + "gap": 1.626823150743462 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "jhFoxlSdAZtcvOozYLo9m", + "type": "rectangle", + "x": 2336.8356984456364, + "y": 814.9085730743369, + "width": 192.00000000000003, + "height": 128, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "as", + "roundness": { + "type": 3 + }, + "seed": 1405762142, + "version": 864, + "versionNonce": 724812442, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "9DUHGNzpdsbkuUUYSdxnB" + }, + { + "id": "W9xzjyUSDx4oatQjQMCTa", + "type": "arrow" + }, + { + "id": "aOkWrFPJPKyv8zz8zr7ZI", + "type": "arrow" + }, + { + "id": "PsCiD7UuKAUpoL34oJV4C", + "type": "arrow" + } + ], + "updated": 1763391365258, + "link": null, + "locked": false + }, + { + "id": "9DUHGNzpdsbkuUUYSdxnB", + "type": "text", + "x": 2360.2416814168278, + "y": 856.4085730743369, + "width": 145.1880340576172, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "at", + "roundness": null, + "seed": 294600350, + "version": 920, + "versionNonce": 1948779142, + "isDeleted": false, + "boundElements": [], + "updated": 1763391365258, + "link": null, + "locked": false, + "text": "Provider", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "jhFoxlSdAZtcvOozYLo9m", + "originalText": "Provider", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "W9xzjyUSDx4oatQjQMCTa", + "type": "arrow", + "x": 2427.219138859704, + "y": 739.1525625804243, + "width": 3.0920624680015862, + "height": 75.19933550158032, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "au", + "roundness": { + "type": 2 + }, + "seed": 571565022, + "version": 1305, + "versionNonce": 1132566790, + "isDeleted": false, + "boundElements": [], + "updated": 1763391365259, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3.0920624680015862, + 75.19933550158032 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "layt3FacJkYmYXuCA3eqg", + "focus": 0.06491121823017398, + "gap": 1 + }, + "endBinding": { + "elementId": "jhFoxlSdAZtcvOozYLo9m", + "focus": -0.11501899351464845, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "PsCiD7UuKAUpoL34oJV4C", + "type": "arrow", + "x": 2443.1411890515974, + "y": 947.282454654001, + "width": 2118.0065331180745, + "height": 178.43001471405125, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dotted", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b06", + "roundness": { + "type": 2 + }, + "seed": 940832450, + "version": 4187, + "versionNonce": 1851831686, + "isDeleted": false, + "boundElements": [], + "updated": 1763391629298, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 161.78173371858566, + 132.1758939381216 + ], + [ + 819.8140585168994, + 93.84256060478856 + ], + [ + 1866.8639047118318, + -24.520577218092058 + ], + [ + 2118.0065331180745, + -46.254120775929664 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "jhFoxlSdAZtcvOozYLo9m", + "focus": 0.42093228752165524, + "gap": 4.373881579664044 + }, + "endBinding": { + "elementId": "fWp85O5NBU84CIOiCRAVO", + "focus": -0.32972100940531696, + "gap": 2.2715512431810336 + }, + "startArrowhead": null, + "endArrowhead": null, + "elbowed": false + }, + { + "id": "X317oP4QIdCMkfQF-OHmn", + "type": "rectangle", + "x": 3944.1725565592415, + "y": 155.68767412821109, + "width": 333.66666666666663, + "height": 129.66666666666674, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b07", + "roundness": { + "type": 3 + }, + "seed": 151037762, + "version": 1292, + "versionNonce": 1845214470, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "ta5uMdOel67C_lIjXufuD" + }, + { + "id": "DNfr5h1rXvZeS5O5BU772", + "type": "arrow" + }, + { + "id": "BTLJNPaKn9k-WNIbpNd0k", + "type": "arrow" + }, + { + "id": "-g0IjFN-WFXq9V-ETpJB7", + "type": "arrow" + }, + { + "id": "loerItqer0HSwXUpB9cF7", + "type": "arrow" + } + ], + "updated": 1763385152688, + "link": null, + "locked": false + }, + { + "id": "ta5uMdOel67C_lIjXufuD", + "type": "text", + "x": 3963.333847045895, + "y": 198.02100746154446, + "width": 295.3440856933594, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b08", + "roundness": null, + "seed": 1588489986, + "version": 1304, + "versionNonce": 1388981318, + "isDeleted": false, + "boundElements": [], + "updated": 1763385152688, + "link": null, + "locked": false, + "text": "DevEnvironments", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "X317oP4QIdCMkfQF-OHmn", + "originalText": "DevEnvironments", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "DNfr5h1rXvZeS5O5BU772", + "type": "arrow", + "x": 3674.790446993681, + "y": 45.05141050313457, + "width": 305.72013926184763, + "height": 110.15641402800262, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b09", + "roundness": { + "type": 2 + }, + "seed": 121163074, + "version": 1431, + "versionNonce": 1250472838, + "isDeleted": false, + "boundElements": [], + "updated": 1763385152688, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 305.72013926184763, + 110.15641402800262 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "vkEBND0A690yxuKyCwa5r", + "focus": 0.04839371208373105, + "gap": 2.7438709743342224 + }, + "endBinding": { + "elementId": "X317oP4QIdCMkfQF-OHmn", + "focus": 0.14767675739600847, + "gap": 1.310806899352201 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "rRY3HaVMSMHWyZgjxpq2v", + "type": "rectangle", + "x": 3846.291849772133, + "y": 1020.0762962304948, + "width": 272.00000000000006, + "height": 118, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0A", + "roundness": { + "type": 3 + }, + "seed": 2126920926, + "version": 1329, + "versionNonce": 1472945222, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "6gMzVcWbiqyLsPNsRGJhG" + }, + { + "id": "ITzr29HGvJ1h4aIH-tm4Q", + "type": "arrow" + }, + { + "id": "aOkWrFPJPKyv8zz8zr7ZI", + "type": "arrow" + }, + { + "id": "zLoCSwM-U6aaxtdSILFjo", + "type": "arrow" + }, + { + "id": "aWjuRCS_Tywc_R495HtXb", + "type": "arrow" + }, + { + "id": "ra2CnfFkuG-gakqxTeOIy", + "type": "arrow" + }, + { + "id": "uLoZmI9exhZHMKYhjSP-i", + "type": "arrow" + }, + { + "id": "ewu_wkEI_N0QlOuQFAwot", + "type": "arrow" + }, + { + "id": "BTLJNPaKn9k-WNIbpNd0k", + "type": "arrow" + }, + { + "id": "we6HVdaRQ2_30cgo_gGUE", + "type": "arrow" + }, + { + "id": "j5CwusOfOj3sDuV4ryd0L", + "type": "arrow" + } + ], + "updated": 1763385141322, + "link": null, + "locked": false + }, + { + "id": "6gMzVcWbiqyLsPNsRGJhG", + "type": "text", + "x": 3870.907816569008, + "y": 1056.5762962304948, + "width": 222.76806640625, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0B", + "roundness": null, + "seed": 853995806, + "version": 1350, + "versionNonce": 629639066, + "isDeleted": false, + "boundElements": [], + "updated": 1763385159713, + "link": null, + "locked": false, + "text": "PhysicalEnvs", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "rRY3HaVMSMHWyZgjxpq2v", + "originalText": "PhysicalEnvs", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "ITzr29HGvJ1h4aIH-tm4Q", + "type": "arrow", + "x": 3962.2104578599938, + "y": 707.1798433510277, + "width": 4.277899742854061, + "height": 312.49528332548505, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0C", + "roundness": { + "type": 2 + }, + "seed": 1818419906, + "version": 1519, + "versionNonce": 1776911046, + "isDeleted": false, + "boundElements": [], + "updated": 1763385141322, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -4.277899742854061, + 312.49528332548505 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "HGDqZbDbJ49R2jRs9GJIZ", + "focus": -0.10893108584966793, + "gap": 1.079420873400295 + }, + "endBinding": { + "elementId": "rRY3HaVMSMHWyZgjxpq2v", + "focus": -0.1840076802158442, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "IuHuUZm7W9LJpRuMzCgjb", + "type": "arrow", + "x": 3783.0026230490926, + "y": 629.7180964066447, + "width": 72.34813741045537, + "height": 0.6981674421065236, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0D", + "roundness": { + "type": 2 + }, + "seed": 2086441090, + "version": 1391, + "versionNonce": 385431878, + "isDeleted": false, + "boundElements": [], + "updated": 1763385080458, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 72.34813741045537, + 0.6981674421065236 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "03jCrwPTuTbzVdpJni9ur", + "focus": -0.2158631796542971, + "gap": 6.014496189932288 + }, + "endBinding": { + "elementId": "HGDqZbDbJ49R2jRs9GJIZ", + "focus": 0.0881504966998736, + "gap": 4.180012524406266 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "aOkWrFPJPKyv8zz8zr7ZI", + "type": "arrow", + "x": 2519.278472522735, + "y": 937.3386399061632, + "width": 1321.718322787593, + "height": 145.2287532279828, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0E", + "roundness": { + "type": 2 + }, + "seed": 302844446, + "version": 2229, + "versionNonce": 1275618886, + "isDeleted": false, + "boundElements": [], + "updated": 1763391492584, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 100.64445024744782, + 77.1197086859595 + ], + [ + 797.3111169141148, + 140.45304201929264 + ], + [ + 1321.718322787593, + 145.2287532279828 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "jhFoxlSdAZtcvOozYLo9m", + "focus": -0.05675655732228243, + "gap": 1 + }, + "endBinding": { + "elementId": "rRY3HaVMSMHWyZgjxpq2v", + "focus": -0.07931556413677532, + "gap": 5.295054461805194 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "2R1wTqnj3ubPsQMZU_PxS", + "type": "rectangle", + "x": 3621.3794352213517, + "y": 1210.959576666692, + "width": 192.00000000000003, + "height": 128, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0F", + "roundness": { + "type": 3 + }, + "seed": 2116317122, + "version": 1315, + "versionNonce": 219617734, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "b4p6Hvv4dpMpPwT-o3Ou2" + }, + { + "id": "zLoCSwM-U6aaxtdSILFjo", + "type": "arrow" + } + ], + "updated": 1763383971669, + "link": null, + "locked": false + }, + { + "id": "b4p6Hvv4dpMpPwT-o3Ou2", + "type": "text", + "x": 3656.7914148966447, + "y": 1252.459576666692, + "width": 121.17604064941406, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0G", + "roundness": null, + "seed": 2101684098, + "version": 1344, + "versionNonce": 1474031878, + "isDeleted": false, + "boundElements": [], + "updated": 1763383971669, + "link": null, + "locked": false, + "text": "Docker", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "2R1wTqnj3ubPsQMZU_PxS", + "originalText": "Docker", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "KojM_KzLAG1V7jiuobzUd", + "type": "rectangle", + "x": 4130.7793579101535, + "y": 1220.6263247135673, + "width": 228.66666666666694, + "height": 106.33333333333346, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0H", + "roundness": { + "type": 3 + }, + "seed": 1330695326, + "version": 1472, + "versionNonce": 968792154, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "sJpQ0pZRAKSruhAWeXqOH" + }, + { + "id": "aWjuRCS_Tywc_R495HtXb", + "type": "arrow" + }, + { + "id": "ZYIe0A8Pa_WkIT4gVML9E", + "type": "arrow" + } + ], + "updated": 1763384145646, + "link": null, + "locked": false + }, + { + "id": "sJpQ0pZRAKSruhAWeXqOH", + "type": "text", + "x": 4149.1546681721975, + "y": 1251.292991380234, + "width": 191.91604614257812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0I", + "roundness": null, + "seed": 2064222430, + "version": 1511, + "versionNonce": 155287194, + "isDeleted": false, + "boundElements": [], + "updated": 1763384145646, + "link": null, + "locked": false, + "text": "Kubernetes", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "KojM_KzLAG1V7jiuobzUd", + "originalText": "Kubernetes", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "zLoCSwM-U6aaxtdSILFjo", + "type": "arrow", + "x": 3913.697236173266, + "y": 1138.6225671511845, + "width": 105.92635104170358, + "height": 78.89281612144464, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0J", + "roundness": { + "type": 2 + }, + "seed": 1418783902, + "version": 1280, + "versionNonce": 848300358, + "isDeleted": false, + "boundElements": [], + "updated": 1763385141322, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -105.92635104170358, + 78.89281612144464 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "rRY3HaVMSMHWyZgjxpq2v", + "focus": -0.054105302974298795, + "gap": 1.3578892127572153 + }, + "endBinding": { + "elementId": "2R1wTqnj3ubPsQMZU_PxS", + "focus": 0.07707192456052014, + "gap": 2.7629031464324063 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "aWjuRCS_Tywc_R495HtXb", + "type": "arrow", + "x": 4059.5309326323736, + "y": 1138.4774657844766, + "width": 117.3396700731978, + "height": 80.44365540828198, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0K", + "roundness": { + "type": 2 + }, + "seed": 830730910, + "version": 1414, + "versionNonce": 1334505606, + "isDeleted": false, + "boundElements": [], + "updated": 1763385141323, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 117.3396700731978, + 80.44365540828198 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "rRY3HaVMSMHWyZgjxpq2v", + "focus": 0.043357881583191, + "gap": 1 + }, + "endBinding": { + "elementId": "KojM_KzLAG1V7jiuobzUd", + "focus": 0.06803604961437397, + "gap": 3.922269337634134 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "upPAv38LJEAZS_l-LkEu-", + "type": "rectangle", + "x": 3890.883728027343, + "y": 1220.7097394271086, + "width": 173.666666666667, + "height": 109.66666666666674, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0L", + "roundness": { + "type": 3 + }, + "seed": 967122882, + "version": 1401, + "versionNonce": 296403226, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "8o7YkUXTFWqjaK6FdUAoD" + }, + { + "id": "ra2CnfFkuG-gakqxTeOIy", + "type": "arrow" + } + ], + "updated": 1763384139196, + "link": null, + "locked": false + }, + { + "id": "8o7YkUXTFWqjaK6FdUAoD", + "type": "text", + "x": 3945.317052205403, + "y": 1253.043072760442, + "width": 64.80001831054688, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0M", + "roundness": null, + "seed": 1697634178, + "version": 1432, + "versionNonce": 195530202, + "isDeleted": false, + "boundElements": [], + "updated": 1763384139196, + "link": null, + "locked": false, + "text": "LXC", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "upPAv38LJEAZS_l-LkEu-", + "originalText": "LXC", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "ra2CnfFkuG-gakqxTeOIy", + "type": "arrow", + "x": 3971.211301884916, + "y": 1138.4774657844766, + "width": 22.417090493436717, + "height": 77.09341378981071, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0N", + "roundness": { + "type": 2 + }, + "seed": 2034512542, + "version": 1314, + "versionNonce": 858189766, + "isDeleted": false, + "boundElements": [], + "updated": 1763385141323, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 22.417090493436717, + 77.09341378981071 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "rRY3HaVMSMHWyZgjxpq2v", + "focus": 0.18603406557969024, + "gap": 1 + }, + "endBinding": { + "elementId": "upPAv38LJEAZS_l-LkEu-", + "focus": 0.331532005664942, + "gap": 9.261062959145589 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "uLoZmI9exhZHMKYhjSP-i", + "type": "arrow", + "x": 4465.685559194899, + "y": 504.7368722186192, + "width": 416.66639859664883, + "height": 513.8492916147236, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0O", + "roundness": { + "type": 2 + }, + "seed": 360002590, + "version": 1472, + "versionNonce": 427886342, + "isDeleted": false, + "boundElements": [], + "updated": 1763385141323, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -416.66639859664883, + 513.8492916147236 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "qNeeLvM5XS8SbneZGVW0q", + "focus": -0.16751604248648713, + "gap": 2.131147600886095 + }, + "endBinding": { + "elementId": "rRY3HaVMSMHWyZgjxpq2v", + "focus": 0.09616785773585025, + "gap": 3.640766669647064 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "ewu_wkEI_N0QlOuQFAwot", + "type": "arrow", + "x": 4655.018816874993, + "y": 495.7977198749062, + "width": 553.8776891080634, + "height": 525.1891222998178, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0P", + "roundness": { + "type": 2 + }, + "seed": 2125809374, + "version": 1642, + "versionNonce": 857093702, + "isDeleted": false, + "boundElements": [], + "updated": 1763385141323, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -221.76256077147536, + 181.99396205054973 + ], + [ + -553.8776891080634, + 525.1891222998178 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "rl_lEbITjZxZu5tmsHPG-", + "focus": 0.3621355014904502, + "gap": 3.260200817805893 + }, + "endBinding": { + "elementId": "rRY3HaVMSMHWyZgjxpq2v", + "focus": 0.3243749380630405, + "gap": 1.126033152432464 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "BTLJNPaKn9k-WNIbpNd0k", + "type": "arrow", + "x": 4040.276578936203, + "y": 477.5521333195176, + "width": 57.974144646894274, + "height": 544.4961278689279, + "angle": 0.0633163393295888, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Q", + "roundness": { + "type": 2 + }, + "seed": 576394754, + "version": 1653, + "versionNonce": 415464838, + "isDeleted": false, + "boundElements": [], + "updated": 1763385141323, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 37.107450986672575, + 240.52126279105897 + ], + [ + -20.8666936602217, + 544.4961278689279 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "nOSvpvwFCOMwGd2-U8NK4", + "focus": -0.22925723808690657, + "gap": 1 + }, + "endBinding": { + "elementId": "rRY3HaVMSMHWyZgjxpq2v", + "focus": 0.030798161473846564, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "BXRXeMn6eO7IJgm7NLwzv", + "type": "text", + "x": 2472.133514404295, + "y": -75.3570686376699, + "width": 504.36016845703125, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0R", + "roundness": null, + "seed": 1231995842, + "version": 316, + "versionNonce": 380936454, + "isDeleted": false, + "boundElements": [], + "updated": 1763383022708, + "link": null, + "locked": false, + "text": "eDF Product Structure Tree", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "originalText": "eDF Product Structure Tree", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "sTl4MwlP7u0CR0h6eLvJQ", + "type": "rectangle", + "x": 4626.422922770184, + "y": 170.45834859212238, + "width": 311.9999999999998, + "height": 104.66666666666652, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0S", + "roundness": { + "type": 3 + }, + "seed": 1782051974, + "version": 1226, + "versionNonce": 501466438, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "-ylDXHMB5GzSZtgYIZozG" + }, + { + "id": "Ed3PIiHWUxcNH9Mh-kOuU", + "type": "arrow" + } + ], + "updated": 1763384736922, + "link": null, + "locked": false + }, + { + "id": "-ylDXHMB5GzSZtgYIZozG", + "type": "text", + "x": 4652.64287821452, + "y": 177.79168192545563, + "width": 259.5600891113281, + "height": 90, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0T", + "roundness": null, + "seed": 2039706566, + "version": 1242, + "versionNonce": 285682822, + "isDeleted": false, + "boundElements": [], + "updated": 1763384736922, + "link": null, + "locked": false, + "text": "Documentation\nSystem", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "sTl4MwlP7u0CR0h6eLvJQ", + "originalText": "Documentation\nSystem", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "Ed3PIiHWUxcNH9Mh-kOuU", + "type": "arrow", + "x": 3674.166532263675, + "y": -7.539423043387444, + "width": 1001.9695327207187, + "height": 177.08777153390812, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0U", + "roundness": { + "type": 2 + }, + "seed": 1405220934, + "version": 1822, + "versionNonce": 1908124614, + "isDeleted": false, + "boundElements": [], + "updated": 1763384736922, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 702.4230571731755, + 76.99777163550999 + ], + [ + 1001.9695327207187, + 177.08777153390812 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "vkEBND0A690yxuKyCwa5r", + "focus": -0.18532736315942697, + "gap": 1.9570338578978408 + }, + "endBinding": { + "elementId": "sTl4MwlP7u0CR0h6eLvJQ", + "focus": 0.16972033991295915, + "gap": 2.7752666400353974 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "bakJjzmrp7G7d2sBa5bE1", + "type": "rectangle", + "x": 3116.422922770184, + "y": 349.4583485921225, + "width": 227.00000000000048, + "height": 145.00000000000003, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0V", + "roundness": { + "type": 3 + }, + "seed": 504948806, + "version": 863, + "versionNonce": 1596722566, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "_Pg-V6Tz2Rl3fLlB6nXEi" + }, + { + "id": "rRYwarMxk0bw-nql_bbzS", + "type": "arrow" + }, + { + "id": "f3GA0aaVLJtRbObBOfoLx", + "type": "arrow" + } + ], + "updated": 1763391068631, + "link": null, + "locked": false + }, + { + "id": "_Pg-V6Tz2Rl3fLlB6nXEi", + "type": "text", + "x": 3127.0169016520204, + "y": 376.9583485921225, + "width": 205.81204223632812, + "height": 90, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0W", + "roundness": null, + "seed": 882896774, + "version": 927, + "versionNonce": 1251765446, + "isDeleted": false, + "boundElements": [], + "updated": 1763391068631, + "link": null, + "locked": false, + "text": "Application-\nProvisioning", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "bakJjzmrp7G7d2sBa5bE1", + "originalText": "Application-Provisioning", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "rRYwarMxk0bw-nql_bbzS", + "type": "arrow", + "x": 3111.6727479941255, + "y": 276.98888252002644, + "width": 103.18774040469634, + "height": 71.9292657941337, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0X", + "roundness": { + "type": 2 + }, + "seed": 955498202, + "version": 1684, + "versionNonce": 74324614, + "isDeleted": false, + "boundElements": [], + "updated": 1763391068698, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 103.18774040469634, + 71.9292657941337 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "4lTu_DNrwnbxtfzzQ-TrP", + "focus": -0.15928775176009108, + "gap": 1.3116249354053713 + }, + "endBinding": { + "elementId": "bakJjzmrp7G7d2sBa5bE1", + "focus": 0.41080086918406883, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "GQcnY9zMohoK_v73jNmE0", + "type": "rectangle", + "x": 3160.5895894368514, + "y": 581.2916819254557, + "width": 196.99999999999986, + "height": 124.66666666666681, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Y", + "roundness": { + "type": 3 + }, + "seed": 530011866, + "version": 932, + "versionNonce": 1572672858, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "i41b16DABLTr-sgwa2oJx" + }, + { + "id": "f3GA0aaVLJtRbObBOfoLx", + "type": "arrow" + }, + { + "id": "6a4IhhXjxMI4h9w65P5eW", + "type": "arrow" + }, + { + "id": "Few8zOmHv71iXvDfoexhc", + "type": "arrow" + }, + { + "id": "df09G6vYHr0eiQitHZcBm", + "type": "arrow" + } + ], + "updated": 1763391150317, + "link": null, + "locked": false + }, + { + "id": "i41b16DABLTr-sgwa2oJx", + "type": "text", + "x": 3202.497556050621, + "y": 621.1250152587891, + "width": 113.18406677246094, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Z", + "roundness": null, + "seed": 1660644250, + "version": 998, + "versionNonce": 1689711066, + "isDeleted": false, + "boundElements": [], + "updated": 1763391110163, + "link": null, + "locked": false, + "text": "CI/CD", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "GQcnY9zMohoK_v73jNmE0", + "originalText": "CI/CD", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "1z4ZshL3doX_LVv14PQd5", + "type": "rectangle", + "x": 2913.089589436851, + "y": 807.9583485921227, + "width": 238.66666666666697, + "height": 123.00000000000003, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0a", + "roundness": { + "type": 3 + }, + "seed": 1049767302, + "version": 1113, + "versionNonce": 346918790, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "-fj92HOz7DaeDVXUB1ec8" + }, + { + "id": "Eo2LC08bZTyqHZ_pAvf1c", + "type": "arrow" + } + ], + "updated": 1763390993635, + "link": null, + "locked": false + }, + { + "id": "-fj92HOz7DaeDVXUB1ec8", + "type": "text", + "x": 2919.544886271161, + "y": 846.9583485921227, + "width": 225.75607299804688, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0b", + "roundness": null, + "seed": 406752454, + "version": 1200, + "versionNonce": 412987078, + "isDeleted": false, + "boundElements": [], + "updated": 1763390993635, + "link": null, + "locked": false, + "text": "Component 2", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "1z4ZshL3doX_LVv14PQd5", + "originalText": "Component 2", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "Eo2LC08bZTyqHZ_pAvf1c", + "type": "arrow", + "x": 3014.9546496983894, + "y": 719.5858048088286, + "width": 10.084360685561023, + "height": 86.78634400800888, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0c", + "roundness": { + "type": 2 + }, + "seed": 1405611994, + "version": 1768, + "versionNonce": 2059986010, + "isDeleted": false, + "boundElements": [], + "updated": 1763391118113, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 10.084360685561023, + 86.78634400800888 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "_SA6WTuXA_hi0TaT8Y2cb", + "focus": 0.016951854546525768, + "gap": 4.119957231626131 + }, + "endBinding": { + "elementId": "1z4ZshL3doX_LVv14PQd5", + "focus": -0.00007194541412355224, + "gap": 3.3933770804029564 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "f3GA0aaVLJtRbObBOfoLx", + "type": "arrow", + "x": 3240.366734040912, + "y": 496.4976753137354, + "width": 11.95393262985317, + "height": 82.10073781213828, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0d", + "roundness": { + "type": 2 + }, + "seed": 2111838554, + "version": 1745, + "versionNonce": 930064026, + "isDeleted": false, + "boundElements": [], + "updated": 1763391110163, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 11.95393262985317, + 82.10073781213828 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "bakJjzmrp7G7d2sBa5bE1", + "focus": 0.012131730411546674, + "gap": 3.740781409685951 + }, + "endBinding": { + "elementId": "GQcnY9zMohoK_v73jNmE0", + "focus": 0.020775065079411466, + "gap": 4.939956252930415 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "6a4IhhXjxMI4h9w65P5eW", + "type": "arrow", + "x": 3330.7592086354553, + "y": 580.8584663690883, + "width": 167.3425940593247, + "height": 313.72241070957364, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0e", + "roundness": { + "type": 2 + }, + "seed": 1751843014, + "version": 2045, + "versionNonce": 2005412314, + "isDeleted": false, + "boundElements": [], + "updated": 1763391152612, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 64.1637141347278, + -209.73345111029903 + ], + [ + 167.3425940593247, + -313.72241070957364 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "GQcnY9zMohoK_v73jNmE0", + "focus": 0.4462706193445063, + "gap": 1 + }, + "endBinding": { + "elementId": "t0TPl7T0HbrKo0OK0MQB4", + "focus": 0.44942698855441565, + "gap": 1.1905686018336108 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "Few8zOmHv71iXvDfoexhc", + "type": "arrow", + "x": 3279.0249240152916, + "y": 707.7974287724307, + "width": 31.146088471095027, + "height": 99.14455253000006, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0f", + "roundness": { + "type": 2 + }, + "seed": 506957338, + "version": 2010, + "versionNonce": 819349530, + "isDeleted": false, + "boundElements": [], + "updated": 1763391110164, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 31.146088471095027, + 99.14455253000006 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "GQcnY9zMohoK_v73jNmE0", + "focus": 0.004268442309165779, + "gap": 3.3927500565346236 + }, + "endBinding": { + "elementId": "OpdnLYI8J5szelucqIce1", + "focus": 0.1555692552487658, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "iyrKGKzHkFAHUCEepXNCP", + "type": "rectangle", + "x": 4154.7562561035165, + "y": 1400.958348592122, + "width": 188.66666666666703, + "height": 83.33333333333326, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0g", + "roundness": { + "type": 3 + }, + "seed": 1043629594, + "version": 1525, + "versionNonce": 1733889734, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "0VtVc_LsUgaakcwYELAIv" + }, + { + "id": "ZYIe0A8Pa_WkIT4gVML9E", + "type": "arrow" + } + ], + "updated": 1763384122279, + "link": null, + "locked": false + }, + { + "id": "0VtVc_LsUgaakcwYELAIv", + "type": "text", + "x": 4171.077573140463, + "y": 1420.1250152587886, + "width": 156.02403259277344, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0h", + "roundness": null, + "seed": 1823519450, + "version": 1567, + "versionNonce": 1612137990, + "isDeleted": false, + "boundElements": [], + "updated": 1763384122279, + "link": null, + "locked": false, + "text": "Operator", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "iyrKGKzHkFAHUCEepXNCP", + "originalText": "Operator", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "ZYIe0A8Pa_WkIT4gVML9E", + "type": "arrow", + "x": 4251.370249081578, + "y": 1327.3847620453423, + "width": 1.8102403392640554, + "height": 72.2936218846628, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0i", + "roundness": { + "type": 2 + }, + "seed": 1331934342, + "version": 1479, + "versionNonce": 1105447386, + "isDeleted": false, + "boundElements": [], + "updated": 1763384145646, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.8102403392640554, + 72.2936218846628 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "KojM_KzLAG1V7jiuobzUd", + "focus": -0.042434316865628915, + "gap": 1 + }, + "endBinding": { + "elementId": "iyrKGKzHkFAHUCEepXNCP", + "focus": 0.05407803750606913, + "gap": 3.066797992077454 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "GE2ntK1-Y0o1hS7Vo9-zm", + "type": "rectangle", + "x": 3388.9229227701835, + "y": 1210.458348592123, + "width": 192.00000000000003, + "height": 128, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0j", + "roundness": { + "type": 3 + }, + "seed": 188493978, + "version": 1357, + "versionNonce": 1640059738, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "-X_vMrljPS5ULaklilxhx" + }, + { + "id": "we6HVdaRQ2_30cgo_gGUE", + "type": "arrow" + } + ], + "updated": 1763384929590, + "link": null, + "locked": false + }, + { + "id": "-X_vMrljPS5ULaklilxhx", + "type": "text", + "x": 3460.4789148966483, + "y": 1251.958348592123, + "width": 48.88801574707031, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0k", + "roundness": null, + "seed": 1079971162, + "version": 1387, + "versionNonce": 861747930, + "isDeleted": false, + "boundElements": [], + "updated": 1763383979514, + "link": null, + "locked": false, + "text": "VM", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "GE2ntK1-Y0o1hS7Vo9-zm", + "originalText": "VM", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "uw_e9SDMZg5n02CI_rcGi", + "type": "rectangle", + "x": 4585.5895894368505, + "y": 587.1250152587893, + "width": 305.3333333333338, + "height": 124.66666666666686, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0l", + "roundness": { + "type": 3 + }, + "seed": 602888282, + "version": 1506, + "versionNonce": 996004742, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "2znQQlyW0T8QSBRjognw4" + }, + { + "id": "AwhH7M8t1q6KeZgpF4XnY", + "type": "arrow" + }, + { + "id": "FxyBjbU6oLIrTe1vA6Wat", + "type": "arrow" + } + ], + "updated": 1763384560453, + "link": null, + "locked": false + }, + { + "id": "2znQQlyW0T8QSBRjognw4", + "type": "text", + "x": 4618.03421020508, + "y": 604.4583485921227, + "width": 240.444091796875, + "height": 90, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0m", + "roundness": null, + "seed": 1876376858, + "version": 1523, + "versionNonce": 1933076486, + "isDeleted": false, + "boundElements": [], + "updated": 1763384545979, + "link": null, + "locked": false, + "text": "EdgeConnect \nSDK", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "uw_e9SDMZg5n02CI_rcGi", + "originalText": "EdgeConnect \nSDK", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "FxyBjbU6oLIrTe1vA6Wat", + "type": "arrow", + "x": 4742.051466806003, + "y": 713.4471437591372, + "width": 5.8909444903556505, + "height": 75.80378361758562, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0n", + "roundness": { + "type": 2 + }, + "seed": 2009573594, + "version": 2150, + "versionNonce": 1144246490, + "isDeleted": false, + "boundElements": [], + "updated": 1763391365259, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 5.8909444903556505, + 75.80378361758562 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "uw_e9SDMZg5n02CI_rcGi", + "focus": 0.007476026682284668, + "gap": 4.238474561391172 + }, + "endBinding": { + "elementId": "fWp85O5NBU84CIOiCRAVO", + "focus": 0.012109051562514402, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "nOSvpvwFCOMwGd2-U8NK4", + "type": "rectangle", + "x": 3933.922922770184, + "y": 377.1250152587893, + "width": 192.00000000000003, + "height": 100, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0o", + "roundness": { + "type": 3 + }, + "seed": 626832582, + "version": 1088, + "versionNonce": 1823240666, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "ZPMRObXGtXaQKfmBJJ-KQ" + }, + { + "id": "BTLJNPaKn9k-WNIbpNd0k", + "type": "arrow" + }, + { + "id": "-g0IjFN-WFXq9V-ETpJB7", + "type": "arrow" + } + ], + "updated": 1763385040095, + "link": null, + "locked": false + }, + { + "id": "ZPMRObXGtXaQKfmBJJ-KQ", + "type": "text", + "x": 3985.8589045206722, + "y": 404.6250152587893, + "width": 88.12803649902344, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0p", + "roundness": null, + "seed": 716581894, + "version": 1136, + "versionNonce": 1860531270, + "isDeleted": false, + "boundElements": [], + "updated": 1763385014061, + "link": null, + "locked": false, + "text": "Local", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "nOSvpvwFCOMwGd2-U8NK4", + "originalText": "Local", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "Q4aPE3RbERqqTQCSpoSFt", + "type": "rectangle", + "x": 4160.58958943685, + "y": 364.45834859212255, + "width": 213.66666666666706, + "height": 145, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0q", + "roundness": { + "type": 3 + }, + "seed": 109548870, + "version": 1201, + "versionNonce": 1322127642, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "iQ_kNDvjt10ji9Rskw65i" + }, + { + "id": "loerItqer0HSwXUpB9cF7", + "type": "arrow" + }, + { + "id": "j5CwusOfOj3sDuV4ryd0L", + "type": "arrow" + } + ], + "updated": 1763385064503, + "link": null, + "locked": false + }, + { + "id": "iQ_kNDvjt10ji9Rskw65i", + "type": "text", + "x": 4170.510889689129, + "y": 391.95834859212255, + "width": 193.82406616210938, + "height": 90, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0r", + "roundness": null, + "seed": 1420885126, + "version": 1201, + "versionNonce": 207114266, + "isDeleted": false, + "boundElements": [], + "updated": 1763385026627, + "link": null, + "locked": false, + "text": "Docker\nRemoteEnv", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Q4aPE3RbERqqTQCSpoSFt", + "originalText": "Docker\nRemoteEnv", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "we6HVdaRQ2_30cgo_gGUE", + "type": "arrow", + "x": 3852.174174884919, + "y": 1130.5023219437203, + "width": 289.33518309975443, + "height": 81.10957567525247, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0s", + "roundness": { + "type": 2 + }, + "seed": 1751588122, + "version": 1363, + "versionNonce": 1069931718, + "isDeleted": false, + "boundElements": [], + "updated": 1763385141323, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -289.33518309975443, + 81.10957567525247 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "rRY3HaVMSMHWyZgjxpq2v", + "focus": -0.1539472108942291, + "gap": 1 + }, + "endBinding": { + "elementId": "GE2ntK1-Y0o1hS7Vo9-zm", + "focus": -0.4546954019374654, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "-g0IjFN-WFXq9V-ETpJB7", + "type": "arrow", + "x": 4101.64589585709, + "y": 286.89444145496736, + "width": 49.65898007325768, + "height": 89.29117630522018, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0t", + "roundness": { + "type": 2 + }, + "seed": 579481370, + "version": 1636, + "versionNonce": 796152518, + "isDeleted": false, + "boundElements": [], + "updated": 1763385152689, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -49.65898007325768, + 89.29117630522018 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "X317oP4QIdCMkfQF-OHmn", + "focus": -0.13514163598325443, + "gap": 4.117292779330398 + }, + "endBinding": { + "elementId": "nOSvpvwFCOMwGd2-U8NK4", + "focus": -0.05543597463883624, + "gap": 2.0041358143996035 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "loerItqer0HSwXUpB9cF7", + "type": "arrow", + "x": 4192.801280649863, + "y": 289.5785332244855, + "width": 68.75839879773957, + "height": 74.31659743616035, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0u", + "roundness": { + "type": 2 + }, + "seed": 1171775110, + "version": 1647, + "versionNonce": 204081670, + "isDeleted": false, + "boundElements": [], + "updated": 1763385152689, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 68.75839879773957, + 74.31659743616035 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "X317oP4QIdCMkfQF-OHmn", + "focus": -0.08031868402593013, + "gap": 10.783959445996913 + }, + "endBinding": { + "elementId": "Q4aPE3RbERqqTQCSpoSFt", + "focus": 0.3526253866400684, + "gap": 1 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "j5CwusOfOj3sDuV4ryd0L", + "type": "arrow", + "x": 4266.321864921288, + "y": 511.89374589955844, + "width": 235.22137323132665, + "height": 504.2931782805525, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0v", + "roundness": { + "type": 2 + }, + "seed": 1801718682, + "version": 1598, + "versionNonce": 1840927750, + "isDeleted": false, + "boundElements": [], + "updated": 1763385141323, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -235.22137323132665, + 504.2931782805525 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "Q4aPE3RbERqqTQCSpoSFt", + "focus": -0.24131022543848235, + "gap": 4.283960062282063 + }, + "endBinding": { + "elementId": "rRY3HaVMSMHWyZgjxpq2v", + "focus": 0.11909908658082793, + "gap": 9.151362628033098 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "Z6xCNDUhdW5ZX0Y2ECV9n", + "type": "rectangle", + "x": 2613.9229227701835, + "y": 574.6250152587894, + "width": 238.66666666666683, + "height": 149.66666666666677, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0w", + "roundness": { + "type": 3 + }, + "seed": 775996294, + "version": 995, + "versionNonce": 587875334, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "VnDwUbLeVmXrmKoXyW4jE" + }, + { + "id": "b58DD6x3YdYB3N2noILhL", + "type": "arrow" + }, + { + "id": "KWgEAQqxr3S9KhRWsmBV2", + "type": "arrow" + }, + { + "id": "df09G6vYHr0eiQitHZcBm", + "type": "arrow" + } + ], + "updated": 1763391161789, + "link": null, + "locked": false + }, + { + "id": "VnDwUbLeVmXrmKoXyW4jE", + "type": "text", + "x": 2659.618247985841, + "y": 626.9583485921228, + "width": 147.27601623535156, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0wV", + "roundness": null, + "seed": 1052760026, + "version": 15, + "versionNonce": 1375590170, + "isDeleted": false, + "boundElements": [], + "updated": 1763390965217, + "link": null, + "locked": false, + "text": "Pipelines", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Z6xCNDUhdW5ZX0Y2ECV9n", + "originalText": "Pipelines", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "b58DD6x3YdYB3N2noILhL", + "type": "arrow", + "x": 2859.046465894031, + "y": 491.9302417078348, + "width": 119.31538317259992, + "height": 81.60007621041206, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0y", + "roundness": { + "type": 2 + }, + "seed": 800611098, + "version": 1672, + "versionNonce": 619907290, + "isDeleted": false, + "boundElements": [], + "updated": 1763391064732, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -119.31538317259992, + 81.60007621041206 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "F_81STR9IKF2KqlGNdupb", + "focus": -0.3213784454702341, + "gap": 1 + }, + "endBinding": { + "elementId": "Z6xCNDUhdW5ZX0Y2ECV9n", + "focus": -0.4576682084095265, + "gap": 2.0458557674033955 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "KWgEAQqxr3S9KhRWsmBV2", + "type": "arrow", + "x": 2570.760109010224, + "y": 489.4221224367187, + "width": 88.84700729503857, + "height": 83.61734694484142, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0z", + "roundness": { + "type": 2 + }, + "seed": 331115738, + "version": 1635, + "versionNonce": 378421702, + "isDeleted": false, + "boundElements": [], + "updated": 1763391073115, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 88.84700729503857, + 83.61734694484142 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "NKe13dkM6xQgKluQErmaO", + "focus": 0.006894475977603966, + "gap": 1 + }, + "endBinding": { + "elementId": "Z6xCNDUhdW5ZX0Y2ECV9n", + "focus": 0.03900456492483074, + "gap": 2.954144232596036 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "df09G6vYHr0eiQitHZcBm", + "type": "arrow", + "x": 2848.6028438322037, + "y": 576.019857228893, + "width": 850.3448277694256, + "height": 257.70910885318995, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b11", + "roundness": { + "type": 2 + }, + "seed": 1611589466, + "version": 2783, + "versionNonce": 1458828506, + "isDeleted": false, + "boundElements": [], + "updated": 1763391694545, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 36.320078937979815, + -34.8948419701037 + ], + [ + 204.65341227131285, + -56.56150863677044 + ], + [ + 224.65341227131285, + -233.22817530343718 + ], + [ + 396.8247546258358, + -257.70910885318995 + ], + [ + 772.9867456046463, + -251.56150863677044 + ], + [ + 850.3448277694256, + -208.71149598545628 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "Z6xCNDUhdW5ZX0Y2ECV9n", + "focus": 0.19728207817783538, + "gap": 7.564016222660115 + }, + "endBinding": { + "elementId": "AuV1TlXW4532KFhbJ1qOy", + "focus": 0.10817150001893147, + "gap": 3.6705406157783296 + }, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "S9TLBbjWctzLOv-vhelre", + "type": "ellipse", + "x": 3724.6689533346334, + "y": 109.37289790771013, + "width": 91.99996948242188, + "height": 94.00001525878905, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b14", + "roundness": { + "type": 2 + }, + "seed": 122154516, + "version": 88, + "versionNonce": 2137652012, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "G_P4xTsXJrJTCOmNHA6hI" + } + ], + "updated": 1764058164906, + "link": null, + "locked": false + }, + { + "id": "G_P4xTsXJrJTCOmNHA6hI", + "type": "text", + "x": 3759.320038334665, + "y": 133.6388814265403, + "width": 22.643997192382812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b15", + "roundness": null, + "seed": 548966036, + "version": 57, + "versionNonce": 1968813484, + "isDeleted": false, + "boundElements": null, + "updated": 1764058164906, + "link": null, + "locked": false, + "text": "9", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "S9TLBbjWctzLOv-vhelre", + "originalText": "9", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "-VilYOONFJ2WkAT_Vv2lp", + "type": "ellipse", + "x": 4300.668785487954, + "y": 313.3728559460402, + "width": 93.99993896484374, + "height": 90.00003814697266, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b16", + "roundness": { + "type": 2 + }, + "seed": 422490900, + "version": 142, + "versionNonce": 392455828, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "4PnFWjU_oyfJAlNm-7zu8" + } + ], + "updated": 1764058170421, + "link": null, + "locked": false + }, + { + "id": "4PnFWjU_oyfJAlNm-7zu8", + "type": "text", + "x": 4336.904759054498, + "y": 336.05305637914034, + "width": 21.05999755859375, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b17", + "roundness": null, + "seed": 1619996820, + "version": 113, + "versionNonce": 709000340, + "isDeleted": false, + "boundElements": [], + "updated": 1764058181930, + "link": null, + "locked": false, + "text": "4", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "-VilYOONFJ2WkAT_Vv2lp", + "originalText": "4", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "aWhaqZ6GtCiUWs11d3-zD", + "type": "ellipse", + "x": 4520.669243251626, + "y": 315.3729017224074, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b18", + "roundness": { + "type": 2 + }, + "seed": 1185502484, + "version": 115, + "versionNonce": 1112630548, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "tGelYBEQhOa4s9nyq-N6q" + } + ], + "updated": 1764058192913, + "link": null, + "locked": false + }, + { + "id": "tGelYBEQhOa4s9nyq-N6q", + "type": "text", + "x": 4559.491905596107, + "y": 339.6388908277324, + "width": 22.643997192382812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b19", + "roundness": null, + "seed": 174428820, + "version": 85, + "versionNonce": 1988862612, + "isDeleted": false, + "boundElements": [], + "updated": 1764058192913, + "link": null, + "locked": false, + "text": "9", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "aWhaqZ6GtCiUWs11d3-zD", + "originalText": "9", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "efc5QT32abJxpRIwyJeeU", + "type": "ellipse", + "x": 4886.668922817055, + "y": 328.3728559460402, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1A", + "roundness": { + "type": 2 + }, + "seed": 77763884, + "version": 165, + "versionNonce": 702191788, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "jkXBndktr6Ls_U5B00qgc" + } + ], + "updated": 1764058264008, + "link": null, + "locked": false + }, + { + "id": "jkXBndktr6Ls_U5B00qgc", + "type": "text", + "x": 4925.293587114662, + "y": 352.6388450513652, + "width": 23.039993286132812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1B", + "roundness": null, + "seed": 1013911468, + "version": 139, + "versionNonce": 1473562668, + "isDeleted": false, + "boundElements": [], + "updated": 1764058275290, + "link": null, + "locked": false, + "text": "6", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "efc5QT32abJxpRIwyJeeU", + "originalText": "6", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "UvpUBdsYjlPl8pWXYz-hB", + "type": "ellipse", + "x": 4850.66916695768, + "y": 548.372932239985, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1C", + "roundness": { + "type": 2 + }, + "seed": 410351892, + "version": 173, + "versionNonce": 400137876, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "l1CWo30BWWg3mD9EKqiF6" + } + ], + "updated": 1764058283835, + "link": null, + "locked": false + }, + { + "id": "l1CWo30BWWg3mD9EKqiF6", + "type": "text", + "x": 4890.769829180092, + "y": 572.6389213453099, + "width": 20.087997436523438, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1D", + "roundness": null, + "seed": 386741908, + "version": 145, + "versionNonce": 1247570708, + "isDeleted": false, + "boundElements": [], + "updated": 1764058324153, + "link": null, + "locked": false, + "text": "7", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "UvpUBdsYjlPl8pWXYz-hB", + "originalText": "7", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "ycyUlIojSgmT47orCFTs0", + "type": "ellipse", + "x": 4888.669044887368, + "y": 744.3729169811959, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1E", + "roundness": { + "type": 2 + }, + "seed": 2053886892, + "version": 197, + "versionNonce": 156396588, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "eKLN-wh63xn5RM1vRW2zV" + } + ], + "updated": 1764058301146, + "link": null, + "locked": false + }, + { + "id": "eKLN-wh63xn5RM1vRW2zV", + "type": "text", + "x": 4928.769707109779, + "y": 768.6389060865208, + "width": 20.087997436523438, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1F", + "roundness": null, + "seed": 1401716268, + "version": 170, + "versionNonce": 1913976364, + "isDeleted": false, + "boundElements": [], + "updated": 1764058313882, + "link": null, + "locked": false, + "text": "7", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "ycyUlIojSgmT47orCFTs0", + "originalText": "7", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "CrD3-rundH3dNU9UNqW6X", + "type": "ellipse", + "x": 4892.668983852212, + "y": 106.3728483166451, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1G", + "roundness": { + "type": 2 + }, + "seed": 1961612180, + "version": 222, + "versionNonce": 1551877652, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "C6C-N2L-gDWjl7b26QfgA" + } + ], + "updated": 1764058334486, + "link": null, + "locked": false + }, + { + "id": "C6C-N2L-gDWjl7b26QfgA", + "type": "text", + "x": 4931.689651872963, + "y": 130.6388374219701, + "width": 22.24798583984375, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1H", + "roundness": null, + "seed": 2027176212, + "version": 196, + "versionNonce": 2046654868, + "isDeleted": false, + "boundElements": [], + "updated": 1764058347018, + "link": null, + "locked": false, + "text": "5", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "CrD3-rundH3dNU9UNqW6X", + "originalText": "5", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "eYPy3NFfWJlOuqZy65_VY", + "type": "ellipse", + "x": 4054.6692585104147, + "y": 320.3728254284615, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1I", + "roundness": { + "type": 2 + }, + "seed": 2122936852, + "version": 265, + "versionNonce": 2019179540, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "Q5LDNkBrAxjzQR3FymQ4k" + } + ], + "updated": 1764058432661, + "link": null, + "locked": false + }, + { + "id": "Q5LDNkBrAxjzQR3FymQ4k", + "type": "text", + "x": 4093.293922808021, + "y": 344.6388145337865, + "width": 23.039993286132812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1J", + "roundness": null, + "seed": 1782189972, + "version": 244, + "versionNonce": 512313516, + "isDeleted": false, + "boundElements": [], + "updated": 1764058447130, + "link": null, + "locked": false, + "text": "6", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "eYPy3NFfWJlOuqZy65_VY", + "originalText": "6", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "u3OsEi1bwdrX-1664tI9D", + "type": "ellipse", + "x": 3816.6692279928366, + "y": 310.37278728148885, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1K", + "roundness": { + "type": 2 + }, + "seed": 12161708, + "version": 288, + "versionNonce": 2075682348, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "y9Bi0bU5ELchh7vmhbTkf" + } + ], + "updated": 1764058461430, + "link": null, + "locked": false + }, + { + "id": "y9Bi0bU5ELchh7vmhbTkf", + "type": "text", + "x": 3855.4918903373177, + "y": 334.63877638681384, + "width": 22.643997192382812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1L", + "roundness": null, + "seed": 1741315372, + "version": 269, + "versionNonce": 212725804, + "isDeleted": false, + "boundElements": [], + "updated": 1764058465394, + "link": null, + "locked": false, + "text": "9", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "u3OsEi1bwdrX-1664tI9D", + "originalText": "9", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "BbrAD_4MJOszN25AgfW_m", + "type": "ellipse", + "x": 3592.6689838522116, + "y": 330.3729017224068, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1M", + "roundness": { + "type": 2 + }, + "seed": 1476218796, + "version": 312, + "versionNonce": 1698872108, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "6RP_ZK2qmhrm8Lj0IMwAU" + } + ], + "updated": 1764058475042, + "link": null, + "locked": false + }, + { + "id": "6RP_ZK2qmhrm8Lj0IMwAU", + "type": "text", + "x": 3630.213646318763, + "y": 354.6388908277318, + "width": 25.199996948242188, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1N", + "roundness": null, + "seed": 2039380524, + "version": 294, + "versionNonce": 533479340, + "isDeleted": false, + "boundElements": [], + "updated": 1764058492450, + "link": null, + "locked": false, + "text": "2", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "BbrAD_4MJOszN25AgfW_m", + "originalText": "2", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "s_tO2OWgnd6k3p6aQO_Vl", + "type": "ellipse", + "x": 3962.6689838522116, + "y": 526.3728101696724, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1O", + "roundness": { + "type": 2 + }, + "seed": 598986540, + "version": 308, + "versionNonce": 825185964, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "cXn4nTptsuDLFutkvrg1_" + } + ], + "updated": 1764058511598, + "link": null, + "locked": false + }, + { + "id": "cXn4nTptsuDLFutkvrg1_", + "type": "text", + "x": 4001.2936481498177, + "y": 550.6387992749974, + "width": 23.039993286132812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1P", + "roundness": null, + "seed": 424217004, + "version": 288, + "versionNonce": 216506668, + "isDeleted": false, + "boundElements": [], + "updated": 1764058511598, + "link": null, + "locked": false, + "text": "6", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "s_tO2OWgnd6k3p6aQO_Vl", + "originalText": "6", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "mbq9XqroXNHQ0Erh7HiHw", + "type": "ellipse", + "x": 3714.6689533346334, + "y": 528.3728559460396, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1Q", + "roundness": { + "type": 2 + }, + "seed": 631334316, + "version": 316, + "versionNonce": 1610589484, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "OVAta9Z7WEv2pxhpklGe4" + } + ], + "updated": 1764058524410, + "link": null, + "locked": false + }, + { + "id": "OVAta9Z7WEv2pxhpklGe4", + "type": "text", + "x": 3753.2936176322396, + "y": 552.6388450513646, + "width": 23.039993286132812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1R", + "roundness": null, + "seed": 1715458092, + "version": 296, + "versionNonce": 1235885996, + "isDeleted": false, + "boundElements": [], + "updated": 1764058524410, + "link": null, + "locked": false, + "text": "6", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "mbq9XqroXNHQ0Erh7HiHw", + "originalText": "6", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "V6SBoSL79cVLklIgZQ-_f", + "type": "ellipse", + "x": 4310.669319545571, + "y": 1166.372962757563, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1S", + "roundness": { + "type": 2 + }, + "seed": 1501112724, + "version": 298, + "versionNonce": 1467034644, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "t7H3sEsGotewAoJrLiHHt" + } + ], + "updated": 1764058534474, + "link": null, + "locked": false + }, + { + "id": "t7H3sEsGotewAoJrLiHHt", + "type": "text", + "x": 4349.491981890053, + "y": 1190.638951862888, + "width": 22.643997192382812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1T", + "roundness": null, + "seed": 1296488212, + "version": 279, + "versionNonce": 151028244, + "isDeleted": false, + "boundElements": [], + "updated": 1764058537897, + "link": null, + "locked": false, + "text": "9", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "V6SBoSL79cVLklIgZQ-_f", + "originalText": "9", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "srxM_rJa4L1CGsDDI-7xS", + "type": "ellipse", + "x": 4306.668922817055, + "y": 1344.3728406872506, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1U", + "roundness": { + "type": 2 + }, + "seed": 441145516, + "version": 304, + "versionNonce": 383925292, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "Lw-s4LsnxhWgQMPVbyGrR" + } + ], + "updated": 1764058551285, + "link": null, + "locked": false + }, + { + "id": "Lw-s4LsnxhWgQMPVbyGrR", + "type": "text", + "x": 4346.2835849784315, + "y": 1368.6388297925755, + "width": 21.05999755859375, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1V", + "roundness": null, + "seed": 926114604, + "version": 285, + "versionNonce": 289195564, + "isDeleted": false, + "boundElements": [], + "updated": 1764058558722, + "link": null, + "locked": false, + "text": "4", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "srxM_rJa4L1CGsDDI-7xS", + "originalText": "4", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "Kk8wS21N52GfyMIxNQUiD", + "type": "ellipse", + "x": 4014.6692585104147, + "y": 1184.3729169811959, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1W", + "roundness": { + "type": 2 + }, + "seed": 313779628, + "version": 317, + "versionNonce": 816040492, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "z-H2mLiBjtzrgRRmsIdYo" + } + ], + "updated": 1764058564714, + "link": null, + "locked": false + }, + { + "id": "z-H2mLiBjtzrgRRmsIdYo", + "type": "text", + "x": 4053.8699192069466, + "y": 1208.6389060865208, + "width": 21.88800048828125, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1X", + "roundness": null, + "seed": 218255404, + "version": 299, + "versionNonce": 232301076, + "isDeleted": false, + "boundElements": [], + "updated": 1764058570928, + "link": null, + "locked": false, + "text": "3", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "Kk8wS21N52GfyMIxNQUiD", + "originalText": "3", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "drmADky3UliRCe__NarnQ", + "type": "ellipse", + "x": 3736.669075404946, + "y": 1164.3728406872506, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1Y", + "roundness": { + "type": 2 + }, + "seed": 1104535084, + "version": 324, + "versionNonce": 1518605740, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "QSjL3JxtYopF6JgLR31Iv" + } + ], + "updated": 1764058575711, + "link": null, + "locked": false + }, + { + "id": "QSjL3JxtYopF6JgLR31Iv", + "type": "text", + "x": 3775.491737749427, + "y": 1188.6388297925755, + "width": 22.643997192382812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1Z", + "roundness": null, + "seed": 1716598956, + "version": 305, + "versionNonce": 107339692, + "isDeleted": false, + "boundElements": [], + "updated": 1764058580737, + "link": null, + "locked": false, + "text": "9", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "drmADky3UliRCe__NarnQ", + "originalText": "9", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "0zzu5r7GZk1rxwefWcgqb", + "type": "ellipse", + "x": 3514.6689533346334, + "y": 1162.3728712048287, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1a", + "roundness": { + "type": 2 + }, + "seed": 1630629676, + "version": 293, + "versionNonce": 1283582892, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "hoaCUVeszeOE86NsuidHd" + } + ], + "updated": 1764058584992, + "link": null, + "locked": false + }, + { + "id": "hoaCUVeszeOE86NsuidHd", + "type": "text", + "x": 3557.1276172660287, + "y": 1186.6388603101536, + "width": 15.371994018554688, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1b", + "roundness": null, + "seed": 370321836, + "version": 274, + "versionNonce": 1472771500, + "isDeleted": false, + "boundElements": [], + "updated": 1764058587785, + "link": null, + "locked": false, + "text": "1", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "0zzu5r7GZk1rxwefWcgqb", + "originalText": "1", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "bdJv2Zbkki-JSh50b4qkl", + "type": "ellipse", + "x": 3054.6689533346334, + "y": 94.37280254027792, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1c", + "roundness": { + "type": 2 + }, + "seed": 691799340, + "version": 330, + "versionNonce": 1995560468, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "K8d7IwE3NmuTR2JH_RIqd" + } + ], + "updated": 1764058611383, + "link": null, + "locked": false + }, + { + "id": "K8d7IwE3NmuTR2JH_RIqd", + "type": "text", + "x": 3093.2936176322396, + "y": 118.63879164560285, + "width": 23.039993286132812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1d", + "roundness": null, + "seed": 1817870252, + "version": 310, + "versionNonce": 2146825108, + "isDeleted": false, + "boundElements": [], + "updated": 1764058611383, + "link": null, + "locked": false, + "text": "6", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "bdJv2Zbkki-JSh50b4qkl", + "originalText": "6", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "0Cl2eYM9Jt7g-5spp1Kz7", + "type": "ellipse", + "x": 2588.6689685934225, + "y": 294.37287883422323, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1e", + "roundness": { + "type": 2 + }, + "seed": 1440492564, + "version": 325, + "versionNonce": 163214612, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "yVP_5O3MAdhlRElejJH4F" + } + ], + "updated": 1764058621030, + "link": null, + "locked": false + }, + { + "id": "yVP_5O3MAdhlRElejJH4F", + "type": "text", + "x": 2627.4916309379037, + "y": 318.6388679395482, + "width": 22.643997192382812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1f", + "roundness": null, + "seed": 2066057620, + "version": 306, + "versionNonce": 1541229332, + "isDeleted": false, + "boundElements": [], + "updated": 1764058624017, + "link": null, + "locked": false, + "text": "9", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "0Cl2eYM9Jt7g-5spp1Kz7", + "originalText": "9", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "w03qiiXJphS43Y7WnZAG8", + "type": "ellipse", + "x": 2962.6689075582663, + "y": 306.37281016967245, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1g", + "roundness": { + "type": 2 + }, + "seed": 2006496148, + "version": 326, + "versionNonce": 1887963924, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "W1xraQTuUrNtzixW76dvf" + } + ], + "updated": 1764058640657, + "link": null, + "locked": false + }, + { + "id": "W1xraQTuUrNtzixW76dvf", + "type": "text", + "x": 3001.4915699027474, + "y": 330.63879927499744, + "width": 22.643997192382812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1h", + "roundness": null, + "seed": 1390747924, + "version": 311, + "versionNonce": 1997946796, + "isDeleted": false, + "boundElements": [], + "updated": 1764058645065, + "link": null, + "locked": false, + "text": "9", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "w03qiiXJphS43Y7WnZAG8", + "originalText": "9", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "ppUMNJDQLhLZXG2j47aC-", + "type": "ellipse", + "x": 3278.668892299477, + "y": 294.3728406872506, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1i", + "roundness": { + "type": 2 + }, + "seed": 1873480084, + "version": 366, + "versionNonce": 1059494164, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "ZGySTb6Bxmlviqrkp8_Nd" + } + ], + "updated": 1764058651421, + "link": null, + "locked": false + }, + { + "id": "ZGySTb6Bxmlviqrkp8_Nd", + "type": "text", + "x": 3316.2135547660287, + "y": 318.63882979257556, + "width": 25.199996948242188, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1j", + "roundness": null, + "seed": 37533460, + "version": 354, + "versionNonce": 453012628, + "isDeleted": false, + "boundElements": [], + "updated": 1764058672593, + "link": null, + "locked": false, + "text": "2", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "ppUMNJDQLhLZXG2j47aC-", + "originalText": "2", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "SaW9VbGEcYVIouMPLftg1", + "type": "ellipse", + "x": 4200.66901436979, + "y": 96.37292461059042, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1k", + "roundness": { + "type": 2 + }, + "seed": 2129478932, + "version": 395, + "versionNonce": 1203258260, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "TRE19B0Rmaj4jfBB6Pm70" + } + ], + "updated": 1764058695440, + "link": null, + "locked": false + }, + { + "id": "TRE19B0Rmaj4jfBB6Pm70", + "type": "text", + "x": 4240.283676531166, + "y": 120.63891371591541, + "width": 21.05999755859375, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1l", + "roundness": null, + "seed": 1957397140, + "version": 383, + "versionNonce": 1320650516, + "isDeleted": false, + "boundElements": [], + "updated": 1764058708810, + "link": null, + "locked": false, + "text": "4", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "SaW9VbGEcYVIouMPLftg1", + "originalText": "4", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "iFQd65JOiNlO6yJGM5zWP", + "type": "ellipse", + "x": 4490.668861781899, + "y": 100.37286357543417, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1m", + "roundness": { + "type": 2 + }, + "seed": 161678252, + "version": 396, + "versionNonce": 1185743404, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "GGcHQvopqtHEmiQapArI2" + } + ], + "updated": 1764058717217, + "link": null, + "locked": false + }, + { + "id": "GGcHQvopqtHEmiQapArI2", + "type": "text", + "x": 4530.283523943275, + "y": 124.63885268075916, + "width": 21.05999755859375, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1n", + "roundness": null, + "seed": 1415425580, + "version": 384, + "versionNonce": 1391077036, + "isDeleted": false, + "boundElements": [], + "updated": 1764058721225, + "link": null, + "locked": false, + "text": "4", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "iFQd65JOiNlO6yJGM5zWP", + "originalText": "4", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "o9bPf2HlnO6aNdg_q2HZ7", + "type": "ellipse", + "x": 2762.6689838522116, + "y": 522.372947498774, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1o", + "roundness": { + "type": 2 + }, + "seed": 285226412, + "version": 371, + "versionNonce": 2091581612, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "mqGGRaAGkhmTcjefzoJHF" + } + ], + "updated": 1764058763069, + "link": null, + "locked": false + }, + { + "id": "mqGGRaAGkhmTcjefzoJHF", + "type": "text", + "x": 2801.4916461966927, + "y": 546.638936604099, + "width": 22.643997192382812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1p", + "roundness": null, + "seed": 491036716, + "version": 357, + "versionNonce": 2136869676, + "isDeleted": false, + "boundElements": [], + "updated": 1764058763069, + "link": null, + "locked": false, + "text": "9", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "o9bPf2HlnO6aNdg_q2HZ7", + "originalText": "9", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "GrWGoHjplsYqvaTkh86q9", + "type": "ellipse", + "x": 3048.6689685934225, + "y": 538.3728559460396, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1q", + "roundness": { + "type": 2 + }, + "seed": 1900882476, + "version": 363, + "versionNonce": 1007905196, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "WKDPc6v5Mmg3LfBpKHdzp" + } + ], + "updated": 1764058755888, + "link": null, + "locked": false + }, + { + "id": "WKDPc6v5Mmg3LfBpKHdzp", + "type": "text", + "x": 3087.4916309379037, + "y": 562.6388450513646, + "width": 22.643997192382812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1r", + "roundness": null, + "seed": 1090454700, + "version": 351, + "versionNonce": 1741771820, + "isDeleted": false, + "boundElements": [], + "updated": 1764058755888, + "link": null, + "locked": false, + "text": "9", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "GrWGoHjplsYqvaTkh86q9", + "originalText": "9", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "weM8rA_G93HchGKHrGVob", + "type": "ellipse", + "x": 2520.6690143697897, + "y": 526.3729627575631, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1s", + "roundness": { + "type": 2 + }, + "seed": 1144998572, + "version": 420, + "versionNonce": 684134828, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "gqvfltgG9TICn1-Qlz0Km" + } + ], + "updated": 1764058779481, + "link": null, + "locked": false + }, + { + "id": "gqvfltgG9TICn1-Qlz0Km", + "type": "text", + "x": 2559.491676714271, + "y": 550.638951862888, + "width": 22.643997192382812, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1t", + "roundness": null, + "seed": 567874860, + "version": 407, + "versionNonce": 1339030572, + "isDeleted": false, + "boundElements": [], + "updated": 1764058779481, + "link": null, + "locked": false, + "text": "9", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "weM8rA_G93HchGKHrGVob", + "originalText": "9", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "tbcZcV580VW3zmrjGK3tZ", + "type": "ellipse", + "x": 3294.6689533346334, + "y": 532.3728712048287, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1u", + "roundness": { + "type": 2 + }, + "seed": 1296751532, + "version": 375, + "versionNonce": 269574700, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "0o5aRBjjXLdFHhwZ61wib" + } + ], + "updated": 1764058800331, + "link": null, + "locked": false + }, + { + "id": "0o5aRBjjXLdFHhwZ61wib", + "type": "text", + "x": 3334.283615496009, + "y": 556.6388603101536, + "width": 21.05999755859375, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1v", + "roundness": null, + "seed": 88770092, + "version": 363, + "versionNonce": 1588128812, + "isDeleted": false, + "boundElements": [], + "updated": 1764058807297, + "link": null, + "locked": false, + "text": "4", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "tbcZcV580VW3zmrjGK3tZ", + "originalText": "4", + "autoResize": true, + "lineHeight": 1.25 + }, + { + "id": "H0CJ7TNB3RjsYVYPElsw0", + "type": "ellipse", + "x": 3594.668877040688, + "y": -133.62718983032755, + "width": 100.00000000000001, + "height": 94.00005340576173, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1w", + "roundness": { + "type": 2 + }, + "seed": 1971964844, + "version": 384, + "versionNonce": 500358956, + "isDeleted": false, + "boundElements": [ + { + "type": "text", + "id": "0VhIhPMvBfz5nGLacQzUG" + } + ], + "updated": 1764058819935, + "link": null, + "locked": false + }, + { + "id": "0VhIhPMvBfz5nGLacQzUG", + "type": "text", + "x": 3633.689545061439, + "y": -109.36120072500256, + "width": 22.24798583984375, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#f08c00", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1x", + "roundness": null, + "seed": 673936940, + "version": 373, + "versionNonce": 1170596780, + "isDeleted": false, + "boundElements": [], + "updated": 1764058834833, + "link": null, + "locked": false, + "text": "5", + "fontSize": 36, + "fontFamily": 5, + "textAlign": "center", + "verticalAlign": "middle", + "containerId": "H0CJ7TNB3RjsYVYPElsw0", + "originalText": "5", + "autoResize": true, + "lineHeight": 1.25 + } + ], + "appState": { + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file diff --git a/static/js/likec4-webcomponent.js b/static/js/likec4-webcomponent.js index b8c7e39..a22f2f3 100644 --- a/static/js/likec4-webcomponent.js +++ b/static/js/likec4-webcomponent.js @@ -1,4 +1,4 @@ -var LikeC4Views=(function(u6){"use strict";/* prettier-ignore-start */ +var LikeC4Views=(function(Y6){"use strict";/* prettier-ignore-start */ /* eslint-disable */ /****************************************************************************** @@ -7,8 +7,7 @@ var LikeC4Views=(function(u6){"use strict";/* prettier-ignore-start */ ******************************************************************************/ -function S1e(e,r){for(var n=0;no[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function Vz(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var d6={exports:{}},p1={};var qz;function C1e(){if(qz)return p1;qz=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function n(o,a,i){var s=null;if(i!==void 0&&(s=""+i),a.key!==void 0&&(s=""+a.key),"key"in a){i={};for(var l in a)l!=="key"&&(i[l]=a[l])}else i=a;return a=i.ref,{$$typeof:e,type:o,key:s,ref:a!==void 0?a:null,props:i}}return p1.Fragment=r,p1.jsx=n,p1.jsxs=n,p1}var Uz;function T1e(){return Uz||(Uz=1,d6.exports=C1e()),d6.exports}var y=T1e(),p6={exports:{}},Ot={};var Wz;function A1e(){if(Wz)return Ot;Wz=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"),s=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),f=Symbol.iterator;function g(G){return G===null||typeof G!="object"?null:(G=f&&G[f]||G["@@iterator"],typeof G=="function"?G:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x=Object.assign,w={};function k(G,K,j){this.props=G,this.context=K,this.refs=w,this.updater=j||b}k.prototype.isReactComponent={},k.prototype.setState=function(G,K){if(typeof G!="object"&&typeof G!="function"&&G!=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,G,K,"setState")},k.prototype.forceUpdate=function(G){this.updater.enqueueForceUpdate(this,G,"forceUpdate")};function C(){}C.prototype=k.prototype;function _(G,K,j){this.props=G,this.context=K,this.refs=w,this.updater=j||b}var T=_.prototype=new C;T.constructor=_,x(T,k.prototype),T.isPureReactComponent=!0;var A=Array.isArray;function R(){}var D={H:null,A:null,T:null,S:null},N=Object.prototype.hasOwnProperty;function M(G,K,j){var Y=j.ref;return{$$typeof:e,type:G,key:K,ref:Y!==void 0?Y:null,props:j}}function O(G,K){return M(G.type,K,G.props)}function F(G){return typeof G=="object"&&G!==null&&G.$$typeof===e}function L(G){var K={"=":"=0",":":"=2"};return"$"+G.replace(/[=:]/g,function(j){return K[j]})}var U=/\/+/g;function P(G,K){return typeof G=="object"&&G!==null&&G.key!=null?L(""+G.key):K.toString(36)}function V(G){switch(G.status){case"fulfilled":return G.value;case"rejected":throw G.reason;default:switch(typeof G.status=="string"?G.then(R,R):(G.status="pending",G.then(function(K){G.status==="pending"&&(G.status="fulfilled",G.value=K)},function(K){G.status==="pending"&&(G.status="rejected",G.reason=K)})),G.status){case"fulfilled":return G.value;case"rejected":throw G.reason}}throw G}function I(G,K,j,Y,Q){var J=typeof G;(J==="undefined"||J==="boolean")&&(G=null);var ie=!1;if(G===null)ie=!0;else switch(J){case"bigint":case"string":case"number":ie=!0;break;case"object":switch(G.$$typeof){case e:case r:ie=!0;break;case d:return ie=G._init,I(ie(G._payload),K,j,Y,Q)}}if(ie)return Q=Q(G),ie=Y===""?"."+P(G,0):Y,A(Q)?(j="",ie!=null&&(j=ie.replace(U,"$&/")+"/"),I(Q,K,j,"",function(ge){return ge})):Q!=null&&(F(Q)&&(Q=O(Q,j+(Q.key==null||G&&G.key===Q.key?"":(""+Q.key).replace(U,"$&/")+"/")+ie)),K.push(Q)),1;ie=0;var ne=Y===""?".":Y+":";if(A(G))for(var re=0;re"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(r){console.error(r)}}return e(),f6.exports=R1e(),f6.exports}var Ki=Kz();const Zz=Vz(Ki);function N1e(e,r,n){let o=a=>e(a,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function Do(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return N1e(e,r,n);throw Error("Wrong number of arguments")}function Kl(...e){return Do(D1e,e)}const D1e=(e,r)=>e.length>=r;function bt(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 at(e,r){if(!e)throw new Error(r??"Invariant failed")}function Zi(e){throw new Error(`NonExhaustive value: ${e}`)}function yr(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]}function $1e(...e){return Do(M1e,e)}function M1e(e,r){let n={};for(let[o,a]of e.entries())n[a]=r(a,o,e);return n}function Vv(...e){return Do(h1,e)}function h1(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 P1e(e,r);if(e instanceof Map)return z1e(e,r);if(e instanceof Set)return I1e(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)||!h1(o,r[n]))return!1;return!0}function P1e(e,r){if(e.length!==r.length)return!1;for(let[n,o]of e.entries())if(!h1(o,r[n]))return!1;return!0}function z1e(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e.entries())if(!r.has(n)||!h1(o,r.get(n)))return!1;return!0}function I1e(e,r){if(e.size!==r.size)return!1;let n=[...r];for(let o of e){let a=!1;for(let[i,s]of n.entries())if(h1(o,s)){a=!0,n.splice(i,1);break}if(!a)return!1}return!0}const{min:O1e,max:j1e}=Math,Od=(e,r=0,n=1)=>O1e(j1e(r,e),n),m6=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]=Od(e[r],0,255)):r===3&&(e[r]=Od(e[r],0,1));return e},Qz={};for(let e of["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"])Qz[`[object ${e}]`]=e.toLowerCase();function Xt(e){return Qz[Object.prototype.toString.call(e)]||"object"}const Ft=(e,r=null)=>e.length>=3?Array.prototype.slice.call(e):Xt(e[0])=="object"&&r?r.split("").filter(n=>e[0][n]!==void 0).map(n=>e[0][n]):e[0].slice(0),Kh=e=>{if(e.length<2)return null;const r=e.length-1;return Xt(e[r])=="string"?e[r].toLowerCase():null},{PI:qv,min:Jz,max:eI}=Math,si=e=>Math.round(e*100)/100,g6=e=>Math.round(e*100)/100,Zl=qv*2,y6=qv/3,L1e=qv/180,B1e=180/qv;function tI(e){return[...e.slice(0,3).reverse(),...e.slice(3)]}const jt={format:{},autodetect:[]};let Ve=class{constructor(...r){const n=this;if(Xt(r[0])==="object"&&r[0].constructor&&r[0].constructor===this.constructor)return r[0];let o=Kh(r),a=!1;if(!o){a=!0,jt.sorted||(jt.autodetect=jt.autodetect.sort((i,s)=>s.p-i.p),jt.sorted=!0);for(let i of jt.autodetect)if(o=i.test(...r),o)break}if(jt.format[o]){const i=jt.format[o].apply(null,a?r:r.slice(0,-1));n._rgb=m6(i)}else throw new Error("unknown format: "+r);n._rgb.length===3&&n._rgb.push(1)}toString(){return Xt(this.hex)=="function"?this.hex():`[${this._rgb.join(",")}]`}};const F1e="3.1.2",Lt=(...e)=>new Ve(...e);Lt.version=F1e;const Zh={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"},H1e=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,V1e=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,rI=e=>{if(e.match(H1e)){(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(V1e)){(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:Uv}=Math,nI=(...e)=>{let[r,n,o,a]=Ft(e,"rgba"),i=Kh(e)||"auto";a===void 0&&(a=1),i==="auto"&&(i=a<1?"rgba":"rgb"),r=Uv(r),n=Uv(n),o=Uv(o);let l="000000"+(r<<16|n<<8|o).toString(16);l=l.substr(l.length-6);let c="0"+Uv(a*255).toString(16);switch(c=c.substr(c.length-2),i.toLowerCase()){case"rgba":return`#${l}${c}`;case"argb":return`#${c}${l}`;default:return`#${l}`}};Ve.prototype.name=function(){const e=nI(this._rgb,"rgb");for(let r of Object.keys(Zh))if(Zh[r]===e)return r.toLowerCase();return e},jt.format.named=e=>{if(e=e.toLowerCase(),Zh[e])return rI(Zh[e]);throw new Error("unknown color name: "+e)},jt.autodetect.push({p:5,test:(e,...r)=>{if(!r.length&&Xt(e)==="string"&&Zh[e.toLowerCase()])return"named"}}),Ve.prototype.alpha=function(e,r=!1){return e!==void 0&&Xt(e)==="number"?r?(this._rgb[3]=e,this):new Ve([this._rgb[0],this._rgb[1],this._rgb[2],e],"rgb"):this._rgb[3]},Ve.prototype.clipped=function(){return this._rgb._clipped||!1};const rl={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}},q1e=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 Ql(e){const r=q1e.get(String(e).toLowerCase());if(!r)throw new Error("unknown Lab illuminant "+e);rl.labWhitePoint=e,rl.Xn=r[0],rl.Zn=r[1]}function f1(){return rl.labWhitePoint}const b6=(...e)=>{e=Ft(e,"lab");const[r,n,o]=e,[a,i,s]=U1e(r,n,o),[l,c,u]=oI(a,i,s);return[l,c,u,e.length>3?e[3]:1]},U1e=(e,r,n)=>{const{kE:o,kK:a,kKE:i,Xn:s,Yn:l,Zn:c}=rl,u=(e+16)/116,d=.002*r+u,h=u-.005*n,f=d*d*d,g=h*h*h,b=f>o?f:(116*d-16)/a,x=e>i?Math.pow((e+16)/116,3):e/a,w=g>o?g:(116*h-16)/a,k=b*s,C=x*l,_=w*c;return[k,C,_]},v6=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},oI=(e,r,n)=>{const{MtxAdaptMa:o,MtxAdaptMaI:a,MtxXYZ2RGB:i,RefWhiteRGB:s,Xn:l,Yn:c,Zn:u}=rl,d=l*o.m00+c*o.m10+u*o.m20,h=l*o.m01+c*o.m11+u*o.m21,f=l*o.m02+c*o.m12+u*o.m22,g=s.X*o.m00+s.Y*o.m10+s.Z*o.m20,b=s.X*o.m01+s.Y*o.m11+s.Z*o.m21,x=s.X*o.m02+s.Y*o.m12+s.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/h),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,A=w*a.m02+k*a.m12+C*a.m22,R=v6(_*i.m00+T*i.m10+A*i.m20),D=v6(_*i.m01+T*i.m11+A*i.m21),N=v6(_*i.m02+T*i.m12+A*i.m22);return[R*255,D*255,N*255]},x6=(...e)=>{const[r,n,o,...a]=Ft(e,"rgb"),[i,s,l]=aI(r,n,o),[c,u,d]=W1e(i,s,l);return[c,u,d,...a.length>0&&a[0]<1?[a[0]]:[]]};function W1e(e,r,n){const{Xn:o,Yn:a,Zn:i,kE:s,kK:l}=rl,c=e/o,u=r/a,d=n/i,h=c>s?Math.pow(c,1/3):(l*c+16)/116,f=u>s?Math.pow(u,1/3):(l*u+16)/116,g=d>s?Math.pow(d,1/3):(l*d+16)/116;return[116*f-16,500*(h-f),200*(f-g)]}function w6(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 aI=(e,r,n)=>{e=w6(e/255),r=w6(r/255),n=w6(n/255);const{MtxRGB2XYZ:o,MtxAdaptMa:a,MtxAdaptMaI:i,Xn:s,Yn:l,Zn:c,As:u,Bs:d,Cs:h}=rl;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=s*a.m00+l*a.m10+c*a.m20,w=s*a.m01+l*a.m11+c*a.m21,k=s*a.m02+l*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/h,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]};Ve.prototype.lab=function(){return x6(this._rgb)},Object.assign(Lt,{lab:(...e)=>new Ve(...e,"lab"),getLabWhitePoint:f1,setLabWhitePoint:Ql}),jt.format.lab=b6,jt.autodetect.push({p:2,test:(...e)=>{if(e=Ft(e,"lab"),Xt(e)==="array"&&e.length===3)return"lab"}}),Ve.prototype.darken=function(e=1){const r=this,n=r.lab();return n[0]-=rl.Kn*e,new Ve(n,"lab").alpha(r.alpha(),!0)},Ve.prototype.brighten=function(e=1){return this.darken(-e)},Ve.prototype.darker=Ve.prototype.darken,Ve.prototype.brighter=Ve.prototype.brighten,Ve.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:Y1e}=Math,G1e=1e-7,X1e=20;Ve.prototype.luminance=function(e,r="rgb"){if(e!==void 0&&Xt(e)==="number"){if(e===0)return new Ve([0,0,0,this._rgb[3]],"rgb");if(e===1)return new Ve([255,255,255,this._rgb[3]],"rgb");let n=this.luminance(),o=X1e;const a=(s,l)=>{const c=s.interpolate(l,.5,r),u=c.luminance();return Math.abs(e-u)e?a(s,c):a(c,l)},i=(n>e?a(new Ve([0,0,0]),this):a(this,new Ve([255,255,255]))).rgb();return new Ve([...i,this._rgb[3]])}return K1e(...this._rgb.slice(0,3))};const K1e=(e,r,n)=>(e=k6(e),r=k6(r),n=k6(n),.2126*e+.7152*r+.0722*n),k6=e=>(e/=255,e<=.03928?e/12.92:Y1e((e+.055)/1.055,2.4)),$o={},Qh=(e,r,n=.5,...o)=>{let a=o[0]||"lrgb";if(!$o[a]&&!o.length&&(a=Object.keys($o)[0]),!$o[a])throw new Error(`interpolation mode ${a} is not defined`);return Xt(e)!=="object"&&(e=new Ve(e)),Xt(r)!=="object"&&(r=new Ve(r)),$o[a](e,r,n).alpha(e.alpha()+n*(r.alpha()-e.alpha()))};Ve.prototype.mix=Ve.prototype.interpolate=function(e,r=.5,...n){return Qh(this,e,r,...n)},Ve.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 Ve([r[0]*n,r[1]*n,r[2]*n,n],"rgb")};const{sin:Z1e,cos:Q1e}=Math,iI=(...e)=>{let[r,n,o]=Ft(e,"lch");return isNaN(o)&&(o=0),o=o*L1e,[r,Q1e(o)*n,Z1e(o)*n]},_6=(...e)=>{e=Ft(e,"lch");const[r,n,o]=e,[a,i,s]=iI(r,n,o),[l,c,u]=b6(a,i,s);return[l,c,u,e.length>3?e[3]:1]},J1e=(...e)=>{const r=tI(Ft(e,"hcl"));return _6(...r)},{sqrt:e0e,atan2:t0e,round:r0e}=Math,sI=(...e)=>{const[r,n,o]=Ft(e,"lab"),a=e0e(n*n+o*o);let i=(t0e(o,n)*B1e+360)%360;return r0e(a*1e4)===0&&(i=Number.NaN),[r,a,i]},E6=(...e)=>{const[r,n,o,...a]=Ft(e,"rgb"),[i,s,l]=x6(r,n,o),[c,u,d]=sI(i,s,l);return[c,u,d,...a.length>0&&a[0]<1?[a[0]]:[]]};Ve.prototype.lch=function(){return E6(this._rgb)},Ve.prototype.hcl=function(){return tI(E6(this._rgb))},Object.assign(Lt,{lch:(...e)=>new Ve(...e,"lch"),hcl:(...e)=>new Ve(...e,"hcl")}),jt.format.lch=_6,jt.format.hcl=J1e,["lch","hcl"].forEach(e=>jt.autodetect.push({p:2,test:(...r)=>{if(r=Ft(r,e),Xt(r)==="array"&&r.length===3)return e}})),Ve.prototype.saturate=function(e=1){const r=this,n=r.lch();return n[1]+=rl.Kn*e,n[1]<0&&(n[1]=0),new Ve(n,"lch").alpha(r.alpha(),!0)},Ve.prototype.desaturate=function(e=1){return this.saturate(-e)},Ve.prototype.set=function(e,r,n=!1){const[o,a]=e.split("."),i=this[o]();if(a){const s=o.indexOf(a)-(o.substr(0,2)==="ok"?2:0);if(s>-1){if(Xt(r)=="string")switch(r.charAt(0)){case"+":i[s]+=+r;break;case"-":i[s]+=+r;break;case"*":i[s]*=+r.substr(1);break;case"/":i[s]/=+r.substr(1);break;default:i[s]=+r}else if(Xt(r)==="number")i[s]=r;else throw new Error("unsupported value for Color.set");const l=new Ve(i,o);return n?(this._rgb=l._rgb,this):l}throw new Error(`unknown channel ${a} in mode ${o}`)}else return i},Ve.prototype.tint=function(e=.5,...r){return Qh(this,"white",e,...r)},Ve.prototype.shade=function(e=.5,...r){return Qh(this,"black",e,...r)};const n0e=(e,r,n)=>{const o=e._rgb,a=r._rgb;return new Ve(o[0]+n*(a[0]-o[0]),o[1]+n*(a[1]-o[1]),o[2]+n*(a[2]-o[2]),"rgb")};$o.rgb=n0e;const{sqrt:S6,pow:Jh}=Math,o0e=(e,r,n)=>{const[o,a,i]=e._rgb,[s,l,c]=r._rgb;return new Ve(S6(Jh(o,2)*(1-n)+Jh(s,2)*n),S6(Jh(a,2)*(1-n)+Jh(l,2)*n),S6(Jh(i,2)*(1-n)+Jh(c,2)*n),"rgb")};$o.lrgb=o0e;const a0e=(e,r,n)=>{const o=e.lab(),a=r.lab();return new Ve(o[0]+n*(a[0]-o[0]),o[1]+n*(a[1]-o[1]),o[2]+n*(a[2]-o[2]),"lab")};$o.lab=a0e;const ef=(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 s,l,c,u,d,h;(o.substr(0,1)==="h"||o==="oklch")&&([s,c,d]=a,[l,u,h]=i);let f,g,b,x;return!isNaN(s)&&!isNaN(l)?(l>s&&l-s>180?x=l-(s+360):l180?x=l+360-s:x=l-s,g=s+n*x):isNaN(s)?isNaN(l)?g=Number.NaN:(g=l,(d==1||d==0)&&o!="hsv"&&(f=u)):(g=s,(h==1||h==0)&&o!="hsv"&&(f=c)),f===void 0&&(f=c+n*(u-c)),b=d+n*(h-d),o==="oklch"?new Ve([b,f,g],o):new Ve([g,f,b],o)},lI=(e,r,n)=>ef(e,r,n,"lch");$o.lch=lI,$o.hcl=lI;const i0e=e=>{if(Xt(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)},s0e=(...e)=>{const[r,n,o]=Ft(e,"rgb");return(r<<16)+(n<<8)+o};Ve.prototype.num=function(){return s0e(this._rgb)},Object.assign(Lt,{num:(...e)=>new Ve(...e,"num")}),jt.format.num=i0e,jt.autodetect.push({p:5,test:(...e)=>{if(e.length===1&&Xt(e[0])==="number"&&e[0]>=0&&e[0]<=16777215)return"num"}});const l0e=(e,r,n)=>{const o=e.num(),a=r.num();return new Ve(o+n*(a-o),"num")};$o.num=l0e;const{floor:c0e}=Math,u0e=(...e)=>{e=Ft(e,"hcg");let[r,n,o]=e,a,i,s;o=o*255;const l=n*255;if(n===0)a=i=s=o;else{r===360&&(r=0),r>360&&(r-=360),r<0&&(r+=360),r/=60;const c=c0e(r),u=r-c,d=o*(1-n),h=d+l*(1-u),f=d+l*u,g=d+l;switch(c){case 0:[a,i,s]=[g,f,d];break;case 1:[a,i,s]=[h,g,d];break;case 2:[a,i,s]=[d,g,f];break;case 3:[a,i,s]=[d,h,g];break;case 4:[a,i,s]=[f,d,g];break;case 5:[a,i,s]=[g,d,h];break}}return[a,i,s,e.length>3?e[3]:1]},d0e=(...e)=>{const[r,n,o]=Ft(e,"rgb"),a=Jz(r,n,o),i=eI(r,n,o),s=i-a,l=s*100/255,c=a/(255-s)*100;let u;return s===0?u=Number.NaN:(r===i&&(u=(n-o)/s),n===i&&(u=2+(o-r)/s),o===i&&(u=4+(r-n)/s),u*=60,u<0&&(u+=360)),[u,l,c]};Ve.prototype.hcg=function(){return d0e(this._rgb)};const p0e=(...e)=>new Ve(...e,"hcg");Lt.hcg=p0e,jt.format.hcg=u0e,jt.autodetect.push({p:1,test:(...e)=>{if(e=Ft(e,"hcg"),Xt(e)==="array"&&e.length===3)return"hcg"}});const h0e=(e,r,n)=>ef(e,r,n,"hcg");$o.hcg=h0e;const{cos:tf}=Math,f0e=(...e)=>{e=Ft(e,"hsi");let[r,n,o]=e,a,i,s;return isNaN(r)&&(r=0),isNaN(n)&&(n=0),r>360&&(r-=360),r<0&&(r+=360),r/=360,r<1/3?(s=(1-n)/3,a=(1+n*tf(Zl*r)/tf(y6-Zl*r))/3,i=1-(s+a)):r<2/3?(r-=1/3,a=(1-n)/3,i=(1+n*tf(Zl*r)/tf(y6-Zl*r))/3,s=1-(a+i)):(r-=2/3,i=(1-n)/3,s=(1+n*tf(Zl*r)/tf(y6-Zl*r))/3,a=1-(i+s)),a=Od(o*a*3),i=Od(o*i*3),s=Od(o*s*3),[a*255,i*255,s*255,e.length>3?e[3]:1]},{min:m0e,sqrt:g0e,acos:y0e}=Math,b0e=(...e)=>{let[r,n,o]=Ft(e,"rgb");r/=255,n/=255,o/=255;let a;const i=m0e(r,n,o),s=(r+n+o)/3,l=s>0?1-i/s:0;return l===0?a=NaN:(a=(r-n+(r-o))/2,a/=g0e((r-n)*(r-n)+(r-o)*(n-o)),a=y0e(a),o>n&&(a=Zl-a),a/=Zl),[a*360,l,s]};Ve.prototype.hsi=function(){return b0e(this._rgb)};const v0e=(...e)=>new Ve(...e,"hsi");Lt.hsi=v0e,jt.format.hsi=f0e,jt.autodetect.push({p:2,test:(...e)=>{if(e=Ft(e,"hsi"),Xt(e)==="array"&&e.length===3)return"hsi"}});const x0e=(e,r,n)=>ef(e,r,n,"hsi");$o.hsi=x0e;const C6=(...e)=>{e=Ft(e,"hsl");const[r,n,o]=e;let a,i,s;if(n===0)a=i=s=o*255;else{const l=[0,0,0],c=[0,0,0],u=o<.5?o*(1+n):o+n-o*n,d=2*o-u,h=r/360;l[0]=h+1/3,l[1]=h,l[2]=h-1/3;for(let f=0;f<3;f++)l[f]<0&&(l[f]+=1),l[f]>1&&(l[f]-=1),6*l[f]<1?c[f]=d+(u-d)*6*l[f]:2*l[f]<1?c[f]=u:3*l[f]<2?c[f]=d+(u-d)*(2/3-l[f])*6:c[f]=d;[a,i,s]=[c[0]*255,c[1]*255,c[2]*255]}return e.length>3?[a,i,s,e[3]]:[a,i,s,1]},cI=(...e)=>{e=Ft(e,"rgba");let[r,n,o]=e;r/=255,n/=255,o/=255;const a=Jz(r,n,o),i=eI(r,n,o),s=(i+a)/2;let l,c;return i===a?(l=0,c=Number.NaN):l=s<.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,l,s,e[3]]:[c,l,s]};Ve.prototype.hsl=function(){return cI(this._rgb)};const w0e=(...e)=>new Ve(...e,"hsl");Lt.hsl=w0e,jt.format.hsl=C6,jt.autodetect.push({p:2,test:(...e)=>{if(e=Ft(e,"hsl"),Xt(e)==="array"&&e.length===3)return"hsl"}});const k0e=(e,r,n)=>ef(e,r,n,"hsl");$o.hsl=k0e;const{floor:_0e}=Math,E0e=(...e)=>{e=Ft(e,"hsv");let[r,n,o]=e,a,i,s;if(o*=255,n===0)a=i=s=o;else{r===360&&(r=0),r>360&&(r-=360),r<0&&(r+=360),r/=60;const l=_0e(r),c=r-l,u=o*(1-n),d=o*(1-n*c),h=o*(1-n*(1-c));switch(l){case 0:[a,i,s]=[o,h,u];break;case 1:[a,i,s]=[d,o,u];break;case 2:[a,i,s]=[u,o,h];break;case 3:[a,i,s]=[u,d,o];break;case 4:[a,i,s]=[h,u,o];break;case 5:[a,i,s]=[o,u,d];break}}return[a,i,s,e.length>3?e[3]:1]},{min:S0e,max:C0e}=Math,T0e=(...e)=>{e=Ft(e,"rgb");let[r,n,o]=e;const a=S0e(r,n,o),i=C0e(r,n,o),s=i-a;let l,c,u;return u=i/255,i===0?(l=Number.NaN,c=0):(c=s/i,r===i&&(l=(n-o)/s),n===i&&(l=2+(o-r)/s),o===i&&(l=4+(r-n)/s),l*=60,l<0&&(l+=360)),[l,c,u]};Ve.prototype.hsv=function(){return T0e(this._rgb)};const A0e=(...e)=>new Ve(...e,"hsv");Lt.hsv=A0e,jt.format.hsv=E0e,jt.autodetect.push({p:2,test:(...e)=>{if(e=Ft(e,"hsv"),Xt(e)==="array"&&e.length===3)return"hsv"}});const R0e=(e,r,n)=>ef(e,r,n,"hsv");$o.hsv=R0e;function Wv(e,r){let n=e.length;Array.isArray(e[0])||(e=[e]),Array.isArray(r[0])||(r=r.map(s=>[s]));let o=r[0].length,a=r[0].map((s,l)=>r.map(c=>c[l])),i=e.map(s=>a.map(l=>Array.isArray(s)?s.reduce((c,u,d)=>c+u*(l[d]||0),0):l.reduce((c,u)=>c+u*s,0)));return n===1&&(i=i[0]),o===1?i.map(s=>s[0]):i}const T6=(...e)=>{e=Ft(e,"lab");const[r,n,o,...a]=e,[i,s,l]=N0e([r,n,o]),[c,u,d]=oI(i,s,l);return[c,u,d,...a.length>0&&a[0]<1?[a[0]]:[]]};function N0e(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]=Ft(e,"rgb"),i=aI(r,n,o);return[...D0e(i),...a.length>0&&a[0]<1?[a[0]]:[]]};function D0e(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)))}Ve.prototype.oklab=function(){return A6(this._rgb)},Object.assign(Lt,{oklab:(...e)=>new Ve(...e,"oklab")}),jt.format.oklab=T6,jt.autodetect.push({p:2,test:(...e)=>{if(e=Ft(e,"oklab"),Xt(e)==="array"&&e.length===3)return"oklab"}});const $0e=(e,r,n)=>{const o=e.oklab(),a=r.oklab();return new Ve(o[0]+n*(a[0]-o[0]),o[1]+n*(a[1]-o[1]),o[2]+n*(a[2]-o[2]),"oklab")};$o.oklab=$0e;const M0e=(e,r,n)=>ef(e,r,n,"oklch");$o.oklch=M0e;const{pow:R6,sqrt:N6,PI:D6,cos:uI,sin:dI,atan2:P0e}=Math,z0e=(e,r="lrgb",n=null)=>{const o=e.length;n||(n=Array.from(new Array(o)).map(()=>1));const a=o/n.reduce(function(h,f){return h+f});if(n.forEach((h,f)=>{n[f]*=a}),e=e.map(h=>new Ve(h)),r==="lrgb")return I0e(e,n);const i=e.shift(),s=i.get(r),l=[];let c=0,u=0;for(let h=0;h{const g=h.get(r);d+=h.alpha()*n[f+1];for(let b=0;b=360;)f-=360;s[h]=f}else s[h]=s[h]/l[h];return d/=o,new Ve(s,r).alpha(d>.99999?1:d,!0)},I0e=(e,r)=>{const n=e.length,o=[0,0,0,0];for(let a=0;a.9999999&&(o[3]=1),new Ve(m6(o))},{pow:O0e}=Math;function Yv(e){let r="rgb",n=Lt("#ccc"),o=0,a=[0,1],i=[],s=[0,0],l=!1,c=[],u=!1,d=0,h=1,f=!1,g={},b=!0,x=1;const w=function(D){if(D=D||["#fff","#000"],D&&Xt(D)==="string"&&Lt.brewer&&Lt.brewer[D.toLowerCase()]&&(D=Lt.brewer[D.toLowerCase()]),Xt(D)==="array"){D.length===1&&(D=[D[0],D[0]]),D=D.slice(0);for(let N=0;N=l[M];)M++;return M-1}return 0};let C=D=>D,_=D=>D;const T=function(D,N){let M,O;if(N==null&&(N=!1),isNaN(D)||D===null)return n;N?O=D:l&&l.length>2?O=k(D)/(l.length-2):h!==d?O=(D-d)/(h-d):O=1,O=_(O),N||(O=C(O)),x!==1&&(O=O0e(O,x)),O=s[0]+O*(1-s[0]-s[1]),O=Od(O,0,1);const F=Math.floor(O*1e4);if(b&&g[F])M=g[F];else{if(Xt(c)==="array")for(let L=0;L=U&&L===i.length-1){M=c[L];break}if(O>U&&Og={};w(e);const R=function(D){const N=Lt(T(D));return u&&N[u]?N[u]():N};return R.classes=function(D){if(D!=null){if(Xt(D)==="array")l=D,a=[D[0],D[D.length-1]];else{const N=Lt.analyze(a);D===0?l=[N.min,N.max]:l=Lt.limits(N,"e",D)}return R}return l},R.domain=function(D){if(!arguments.length)return a;d=D[0],h=D[D.length-1],i=[];const N=c.length;if(D.length===N&&d!==h)for(let M of Array.from(D))i.push((M-d)/(h-d));else{for(let M=0;M2){const M=D.map((F,L)=>L/(D.length-1)),O=D.map(F=>(F-d)/(h-d));O.every((F,L)=>M[L]===F)||(_=F=>{if(F<=0||F>=1)return F;let L=0;for(;F>=O[L+1];)L++;const U=(F-O[L])/(O[L+1]-O[L]);return M[L]+U*(M[L+1]-M[L])})}}return a=[d,h],R},R.mode=function(D){return arguments.length?(r=D,A(),R):r},R.range=function(D,N){return w(D),R},R.out=function(D){return u=D,R},R.spread=function(D){return arguments.length?(o=D,R):o},R.correctLightness=function(D){return D==null&&(D=!0),f=D,A(),f?C=function(N){const M=T(0,!0).lab()[0],O=T(1,!0).lab()[0],F=M>O;let L=T(N,!0).lab()[0];const U=M+(O-M)*N;let P=L-U,V=0,I=1,H=20;for(;Math.abs(P)>.01&&H-- >0;)(function(){return F&&(P*=-1),P<0?(V=N,N+=(I-N)*.5):(I=N,N+=(V-N)*.5),L=T(N,!0).lab()[0],P=L-U})();return N}:C=N=>N,R},R.padding=function(D){return D!=null?(Xt(D)==="number"&&(D=[D,D]),s=D,R):s},R.colors=function(D,N){arguments.length<2&&(N="hex");let M=[];if(arguments.length===0)M=c.slice(0);else if(D===1)M=[R(.5)];else if(D>1){const O=a[0],F=a[1]-O;M=j0e(0,D).map(L=>R(O+L/(D-1)*F))}else{e=[];let O=[];if(l&&l.length>2)for(let F=1,L=l.length,U=1<=L;U?FL;U?F++:F--)O.push((l[F-1]+l[F])*.5);else O=a;M=O.map(F=>R(F))}return Lt[N]&&(M=M.map(O=>O[N]())),M},R.cache=function(D){return D!=null?(b=D,R):b},R.gamma=function(D){return D!=null?(x=D,R):x},R.nodata=function(D){return D!=null?(n=Lt(D),R):n},R}function j0e(e,r,n){let o=[],a=ei;a?s++:s--)o.push(s);return o}const L0e=function(e){let r=[1,1];for(let n=1;nnew Ve(i)),e.length===2)[n,o]=e.map(i=>i.lab()),r=function(i){const s=[0,1,2].map(l=>n[l]+i*(o[l]-n[l]));return new Ve(s,"lab")};else if(e.length===3)[n,o,a]=e.map(i=>i.lab()),r=function(i){const s=[0,1,2].map(l=>(1-i)*(1-i)*n[l]+2*(1-i)*i*o[l]+i*i*a[l]);return new Ve(s,"lab")};else if(e.length===4){let i;[n,o,a,i]=e.map(s=>s.lab()),r=function(s){const l=[0,1,2].map(c=>(1-s)*(1-s)*(1-s)*n[c]+3*(1-s)*(1-s)*s*o[c]+3*(1-s)*s*s*a[c]+s*s*s*i[c]);return new Ve(l,"lab")}}else if(e.length>=5){let i,s,l;i=e.map(c=>c.lab()),l=e.length-1,s=L0e(l),r=function(c){const u=1-c,d=[0,1,2].map(h=>i.reduce((f,g,b)=>f+s[b]*u**(l-b)*c**b*g[h],0));return new Ve(d,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return r},F0e=e=>{const r=B0e(e);return r.scale=()=>Yv(r),r},{round:pI}=Math;Ve.prototype.rgb=function(e=!0){return e===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(pI)},Ve.prototype.rgba=function(e=!0){return this._rgb.slice(0,4).map((r,n)=>n<3?e===!1?r:pI(r):r)},Object.assign(Lt,{rgb:(...e)=>new Ve(...e,"rgb")}),jt.format.rgb=(...e)=>{const r=Ft(e,"rgba");return r[3]===void 0&&(r[3]=1),r},jt.autodetect.push({p:3,test:(...e)=>{if(e=Ft(e,"rgba"),Xt(e)==="array"&&(e.length===3||e.length===4&&Xt(e[3])=="number"&&e[3]>=0&&e[3]<=1))return"rgb"}});const Qi=(e,r,n)=>{if(!Qi[n])throw new Error("unknown blend mode "+n);return Qi[n](e,r)},su=e=>(r,n)=>{const o=Lt(n).rgb(),a=Lt(r).rgb();return Lt.rgb(e(o,a))},lu=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},H0e=e=>e,V0e=(e,r)=>e*r/255,q0e=(e,r)=>e>r?r:e,U0e=(e,r)=>e>r?e:r,W0e=(e,r)=>255*(1-(1-e/255)*(1-r/255)),Y0e=(e,r)=>r<128?2*e*r/255:255*(1-2*(1-e/255)*(1-r/255)),G0e=(e,r)=>255*(1-(1-r/255)/(e/255)),X0e=(e,r)=>e===255?255:(e=255*(r/255)/(1-e/255),e>255?255:e);Qi.normal=su(lu(H0e)),Qi.multiply=su(lu(V0e)),Qi.screen=su(lu(W0e)),Qi.overlay=su(lu(Y0e)),Qi.darken=su(lu(q0e)),Qi.lighten=su(lu(U0e)),Qi.dodge=su(lu(X0e)),Qi.burn=su(lu(G0e));const{pow:K0e,sin:Z0e,cos:Q0e}=Math;function J0e(e=300,r=-1.5,n=1,o=1,a=[0,1]){let i=0,s;Xt(a)==="array"?s=a[1]-a[0]:(s=0,a=[a,a]);const l=function(c){const u=Zl*((e+120)/360+r*c),d=K0e(a[0]+s*c,o),f=(i!==0?n[0]+c*i:n)*d*(1-d)/2,g=Q0e(u),b=Z0e(u),x=d+f*(-.14861*g+1.78277*b),w=d+f*(-.29227*g-.90649*b),k=d+f*(1.97294*g);return Lt(m6([x*255,w*255,k*255,1]))};return l.start=function(c){return c==null?e:(e=c,l)},l.rotations=function(c){return c==null?r:(r=c,l)},l.gamma=function(c){return c==null?o:(o=c,l)},l.hue=function(c){return c==null?n:(n=c,Xt(n)==="array"?(i=n[1]-n[0],i===0&&(n=n[1])):i=0,l)},l.lightness=function(c){return c==null?a:(Xt(c)==="array"?(a=c,s=c[1]-c[0]):(a=[c,c],s=0),l)},l.scale=()=>Lt.scale(l),l.hue(n),l}const eye="0123456789abcdef",{floor:tye,random:rye}=Math,nye=()=>{let e="#";for(let r=0;r<6;r++)e+=eye.charAt(tye(rye()*16));return new Ve(e,"hex")},{log:hI,pow:oye,floor:aye,abs:iye}=Math;function fI(e,r=null){const n={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0};return Xt(e)==="object"&&(e=Object.values(e)),e.forEach(o=>{r&&Xt(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)=>mI(n,o,a),n}function mI(e,r="equal",n=7){Xt(e)=="array"&&(e=fI(e));const{min:o,max:a}=e,i=e.values.sort((l,c)=>l-c);if(n===1)return[o,a];const s=[];if(r.substr(0,1)==="c"&&(s.push(o),s.push(a)),r.substr(0,1)==="e"){s.push(o);for(let l=1;l 0");const l=Math.LOG10E*hI(o),c=Math.LOG10E*hI(a);s.push(o);for(let u=1;u200&&(h=!1)}const b={};for(let w=0;ww-k),s.push(x[0]);for(let w=1;w{e=new Ve(e),r=new Ve(r);const n=e.luminance(),o=r.luminance();return n>o?(n+.05)/(o+.05):(o+.05)/(n+.05)};const gI=.027,lye=5e-4,cye=.1,yI=1.14,Gv=.022,bI=1.414,uye=(e,r)=>{e=new Ve(e),r=new Ve(r),e.alpha()<1&&(e=Qh(r,e,e.alpha(),"rgb"));const n=vI(...e.rgb()),o=vI(...r.rgb()),a=n>=Gv?n:n+Math.pow(Gv-n,bI),i=o>=Gv?o:o+Math.pow(Gv-o,bI),s=Math.pow(i,.56)-Math.pow(a,.57),l=Math.pow(i,.65)-Math.pow(a,.62),c=Math.abs(i-a)0?c-gI:c+gI)*100};function vI(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:Jl,pow:Nn,min:dye,max:pye,atan2:xI,abs:wI,cos:Xv,sin:kI,exp:hye,PI:_I}=Math;function fye(e,r,n=1,o=1,a=1){var i=function(j){return 360*j/(2*_I)},s=function(j){return 2*_I*j/360};e=new Ve(e),r=new Ve(r);const[l,c,u]=Array.from(e.lab()),[d,h,f]=Array.from(r.lab()),g=(l+d)/2,b=Jl(Nn(c,2)+Nn(u,2)),x=Jl(Nn(h,2)+Nn(f,2)),w=(b+x)/2,k=.5*(1-Jl(Nn(w,7)/(Nn(w,7)+Nn(25,7)))),C=c*(1+k),_=h*(1+k),T=Jl(Nn(C,2)+Nn(u,2)),A=Jl(Nn(_,2)+Nn(f,2)),R=(T+A)/2,D=i(xI(u,C)),N=i(xI(f,_)),M=D>=0?D:D+360,O=N>=0?N:N+360,F=wI(M-O)>180?(M+O+360)/2:(M+O)/2,L=1-.17*Xv(s(F-30))+.24*Xv(s(2*F))+.32*Xv(s(3*F+6))-.2*Xv(s(4*F-63));let U=O-M;U=wI(U)<=180?U:O<=M?U+360:U-360,U=2*Jl(T*A)*kI(s(U)/2);const P=d-l,V=A-T,I=1+.015*Nn(g-50,2)/Jl(20+Nn(g-50,2)),H=1+.045*R,q=1+.015*R*L,Z=30*hye(-Nn((F-275)/25,2)),G=-(2*Jl(Nn(R,7)/(Nn(R,7)+Nn(25,7))))*kI(2*s(Z)),K=Jl(Nn(P/(n*I),2)+Nn(V/(o*H),2)+Nn(U/(a*q),2)+G*(V/(o*H))*(U/(a*q)));return pye(0,dye(100,K))}function mye(e,r,n="lab"){e=new Ve(e),r=new Ve(r);const o=e.get(n),a=r.get(n);let i=0;for(let s in o){const l=(o[s]||0)-(a[s]||0);i+=l*l}return Math.sqrt(i)}const gye=(...e)=>{try{return new Ve(...e),!0}catch{return!1}},yye={cool(){return Yv([Lt.hsl(180,1,.9),Lt.hsl(250,.7,.4)])},hot(){return Yv(["#000","#f00","#ff0","#fff"]).mode("rgb")}},$6={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($6),SI=new Map(EI.map(e=>[e.toLowerCase(),e])),bye=typeof Proxy=="function"?new Proxy($6,{get(e,r){const n=r.toLowerCase();if(SI.has(n))return e[SI.get(n)]},getOwnPropertyNames(){return Object.getOwnPropertyNames(EI)}}):$6,vye=(...e)=>{e=Ft(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:CI}=Math,xye=(...e)=>{let[r,n,o]=Ft(e,"rgb");r=r/255,n=n/255,o=o/255;const a=1-CI(r,CI(n,o)),i=a<1?1/(1-a):0,s=(1-r-a)*i,l=(1-n-a)*i,c=(1-o-a)*i;return[s,l,c,a]};Ve.prototype.cmyk=function(){return xye(this._rgb)},Object.assign(Lt,{cmyk:(...e)=>new Ve(...e,"cmyk")}),jt.format.cmyk=vye,jt.autodetect.push({p:2,test:(...e)=>{if(e=Ft(e,"cmyk"),Xt(e)==="array"&&e.length===4)return"cmyk"}});const wye=(...e)=>{const r=Ft(e,"hsla");let n=Kh(e)||"lsa";return r[0]=si(r[0]||0)+"deg",r[1]=si(r[1]*100)+"%",r[2]=si(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(" ")})`},kye=(...e)=>{const r=Ft(e,"lab");let n=Kh(e)||"lab";return r[0]=si(r[0])+"%",r[1]=si(r[1]),r[2]=si(r[2]),n==="laba"||r.length>3&&r[3]<1?r[3]="/ "+(r.length>3?r[3]:1):r.length=3,`lab(${r.join(" ")})`},_ye=(...e)=>{const r=Ft(e,"lch");let n=Kh(e)||"lab";return r[0]=si(r[0])+"%",r[1]=si(r[1]),r[2]=isNaN(r[2])?"none":si(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(" ")})`},Eye=(...e)=>{const r=Ft(e,"lab");return r[0]=si(r[0]*100)+"%",r[1]=g6(r[1]),r[2]=g6(r[2]),r.length>3&&r[3]<1?r[3]="/ "+(r.length>3?r[3]:1):r.length=3,`oklab(${r.join(" ")})`},TI=(...e)=>{const[r,n,o,...a]=Ft(e,"rgb"),[i,s,l]=A6(r,n,o),[c,u,d]=sI(i,s,l);return[c,u,d,...a.length>0&&a[0]<1?[a[0]]:[]]},Sye=(...e)=>{const r=Ft(e,"lch");return r[0]=si(r[0]*100)+"%",r[1]=g6(r[1]),r[2]=isNaN(r[2])?"none":si(r[2])+"deg",r.length>3&&r[3]<1?r[3]="/ "+(r.length>3?r[3]:1):r.length=3,`oklch(${r.join(" ")})`},{round:M6}=Math,Cye=(...e)=>{const r=Ft(e,"rgba");let n=Kh(e)||"rgb";if(n.substr(0,3)==="hsl")return wye(cI(r),n);if(n.substr(0,3)==="lab"){const o=f1();Ql("d50");const a=kye(x6(r),n);return Ql(o),a}if(n.substr(0,3)==="lch"){const o=f1();Ql("d50");const a=_ye(E6(r),n);return Ql(o),a}return n.substr(0,5)==="oklab"?Eye(A6(r)):n.substr(0,5)==="oklch"?Sye(TI(r)):(r[0]=M6(r[0]),r[1]=M6(r[1]),r[2]=M6(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(" ")})`)},AI=(...e)=>{e=Ft(e,"lch");const[r,n,o,...a]=e,[i,s,l]=iI(r,n,o),[c,u,d]=T6(i,s,l);return[c,u,d,...a.length>0&&a[0]<1?[a[0]]:[]]},ec=/((?:-?\d+)|(?:-?\d+(?:\.\d+)?)%|none)/.source,Ji=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%?)|none)/.source,Kv=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%)|none)/.source,li=/\s*/.source,rf=/\s+/.source,P6=/\s*,\s*/.source,Zv=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)(?:deg)?)|none)/.source,nf=/\s*(?:\/\s*((?:[01]|[01]?\.\d+)|\d+(?:\.\d+)?%))?/.source,RI=new RegExp("^rgba?\\("+li+[ec,ec,ec].join(rf)+nf+"\\)$"),NI=new RegExp("^rgb\\("+li+[ec,ec,ec].join(P6)+li+"\\)$"),DI=new RegExp("^rgba\\("+li+[ec,ec,ec,Ji].join(P6)+li+"\\)$"),$I=new RegExp("^hsla?\\("+li+[Zv,Kv,Kv].join(rf)+nf+"\\)$"),MI=new RegExp("^hsl?\\("+li+[Zv,Kv,Kv].join(P6)+li+"\\)$"),PI=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,zI=new RegExp("^lab\\("+li+[Ji,Ji,Ji].join(rf)+nf+"\\)$"),II=new RegExp("^lch\\("+li+[Ji,Ji,Zv].join(rf)+nf+"\\)$"),OI=new RegExp("^oklab\\("+li+[Ji,Ji,Ji].join(rf)+nf+"\\)$"),jI=new RegExp("^oklch\\("+li+[Ji,Ji,Zv].join(rf)+nf+"\\)$"),{round:LI}=Math,of=e=>e.map((r,n)=>n<=2?Od(LI(r),0,255):r),Dn=(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),Yo=(e,r)=>e==="none"?r:e,z6=e=>{if(e=e.toLowerCase().trim(),e==="transparent")return[0,0,0,0];let r;if(jt.format.named)try{return jt.format.named(e)}catch{}if((r=e.match(RI))||(r=e.match(NI))){let n=r.slice(1,4);for(let a=0;a<3;a++)n[a]=+Dn(Yo(n[a],0),0,255);n=of(n);const o=r[4]!==void 0?+Dn(r[4],0,1):1;return n[3]=o,n}if(r=e.match(DI)){const n=r.slice(1,5);for(let o=0;o<4;o++)n[o]=+Dn(n[o],0,255);return n}if((r=e.match($I))||(r=e.match(MI))){const n=r.slice(1,4);n[0]=+Yo(n[0].replace("deg",""),0),n[1]=+Dn(Yo(n[1],0),0,100)*.01,n[2]=+Dn(Yo(n[2],0),0,100)*.01;const o=of(C6(n)),a=r[4]!==void 0?+Dn(r[4],0,1):1;return o[3]=a,o}if(r=e.match(PI)){const n=r.slice(1,4);n[1]*=.01,n[2]*=.01;const o=C6(n);for(let a=0;a<3;a++)o[a]=LI(o[a]);return o[3]=+r[4],o}if(r=e.match(zI)){const n=r.slice(1,4);n[0]=Dn(Yo(n[0],0),0,100),n[1]=Dn(Yo(n[1],0),-125,125,!0),n[2]=Dn(Yo(n[2],0),-125,125,!0);const o=f1();Ql("d50");const a=of(b6(n));Ql(o);const i=r[4]!==void 0?+Dn(r[4],0,1):1;return a[3]=i,a}if(r=e.match(II)){const n=r.slice(1,4);n[0]=Dn(n[0],0,100),n[1]=Dn(Yo(n[1],0),0,150,!1),n[2]=+Yo(n[2].replace("deg",""),0);const o=f1();Ql("d50");const a=of(_6(n));Ql(o);const i=r[4]!==void 0?+Dn(r[4],0,1):1;return a[3]=i,a}if(r=e.match(OI)){const n=r.slice(1,4);n[0]=Dn(Yo(n[0],0),0,1),n[1]=Dn(Yo(n[1],0),-.4,.4,!0),n[2]=Dn(Yo(n[2],0),-.4,.4,!0);const o=of(T6(n)),a=r[4]!==void 0?+Dn(r[4],0,1):1;return o[3]=a,o}if(r=e.match(jI)){const n=r.slice(1,4);n[0]=Dn(Yo(n[0],0),0,1),n[1]=Dn(Yo(n[1],0),0,.4,!1),n[2]=+Yo(n[2].replace("deg",""),0);const o=of(AI(n)),a=r[4]!==void 0?+Dn(r[4],0,1):1;return o[3]=a,o}};z6.test=e=>RI.test(e)||$I.test(e)||zI.test(e)||II.test(e)||OI.test(e)||jI.test(e)||NI.test(e)||DI.test(e)||MI.test(e)||PI.test(e)||e==="transparent",Ve.prototype.css=function(e){return Cye(this._rgb,e)};const Tye=(...e)=>new Ve(...e,"css");Lt.css=Tye,jt.format.css=z6,jt.autodetect.push({p:5,test:(e,...r)=>{if(!r.length&&Xt(e)==="string"&&z6.test(e))return"css"}}),jt.format.gl=(...e)=>{const r=Ft(e,"rgba");return r[0]*=255,r[1]*=255,r[2]*=255,r};const Aye=(...e)=>new Ve(...e,"gl");Lt.gl=Aye,Ve.prototype.gl=function(){const e=this._rgb;return[e[0]/255,e[1]/255,e[2]/255,e[3]]},Ve.prototype.hex=function(e){return nI(this._rgb,e)};const Rye=(...e)=>new Ve(...e,"hex");Lt.hex=Rye,jt.format.hex=rI,jt.autodetect.push({p:4,test:(e,...r)=>{if(!r.length&&Xt(e)==="string"&&[3,4,5,6,7,8,9].indexOf(e.length)>=0)return"hex"}});const{log:Qv}=Math,BI=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*Qv(o),a=r<20?0:-254.76935184120902+.8274096064007395*(a=r-10)+115.67994401066147*Qv(a)):(n=351.97690566805693+.114206453784165*(n=r-55)-40.25366309332127*Qv(n),o=325.4494125711974+.07943456536662342*(o=r-50)-28.0852963507957*Qv(o),a=255),[n,o,a,1]},{round:Nye}=Math,Dye=(...e)=>{const r=Ft(e,"rgb"),n=r[0],o=r[2];let a=1e3,i=4e4;const s=.4;let l;for(;i-a>s;){l=(i+a)*.5;const c=BI(l);c[2]/c[0]>=o/n?i=l:a=l}return Nye(l)};Ve.prototype.temp=Ve.prototype.kelvin=Ve.prototype.temperature=function(){return Dye(this._rgb)};const I6=(...e)=>new Ve(...e,"temp");Object.assign(Lt,{temp:I6,kelvin:I6,temperature:I6}),jt.format.temp=jt.format.kelvin=jt.format.temperature=BI,Ve.prototype.oklch=function(){return TI(this._rgb)},Object.assign(Lt,{oklch:(...e)=>new Ve(...e,"oklch")}),jt.format.oklch=AI,jt.autodetect.push({p:2,test:(...e)=>{if(e=Ft(e,"oklch"),Xt(e)==="array"&&e.length===3)return"oklch"}}),Object.assign(Lt,{analyze:fI,average:z0e,bezier:F0e,blend:Qi,brewer:bye,Color:Ve,colors:Zh,contrast:sye,contrastAPCA:uye,cubehelix:J0e,deltaE:fye,distance:mye,input:jt,interpolate:Qh,limits:mI,mix:Qh,random:nye,scale:Yv,scales:yye,valid:gye});const O6=[.96,.907,.805,.697,.605,.547,.518,.445,.395,.34],FI=[.32,.16,.08,.04,0,0,.04,.08,.16,.32];function $ye(e){const r=e.get("hsl.l");return O6.reduce((n,o)=>Math.abs(o-r)i===n),a=O6.map(i=>r.set("hsl.l",i)).map(i=>Lt(i)).map((i,s)=>{const l=FI[s]-FI[o];return l>=0?i.saturate(l):i.desaturate(l*-1)});return a[o]=Lt(e),{baseColorIndex:o,colors:a}}function Pye(e){return Mye(e).colors.map(r=>r.hex())}const HI={fill:"#3b82f6",stroke:"#2563eb",hiContrast:"#eff6ff",loContrast:"#bfdbfe"},VI={fill:"#0284c7",stroke:"#0369a1",hiContrast:"#f0f9ff",loContrast:"#B6ECF7"},qI={fill:"#64748b",stroke:"#475569",hiContrast:"#f8fafc",loContrast:"#cbd5e1"},zye={primary:HI,blue:HI,secondary:VI,sky:VI,muted:qI,slate:qI,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"}},Iye={line:"#6E6E6E",labelBg:"#18191b",label:"#C6C6C6"},UI={line:"#64748b",labelBg:"#0f172a",label:"#cbd5e1"},WI={line:"#3b82f6",labelBg:"#172554",label:"#60a5fa"},YI={line:"#0ea5e9",labelBg:"#082f49",label:"#38bdf8"},Oye={amber:{line:"#b45309",labelBg:"#78350f",label:"#FFE0C2"},blue:WI,gray:Iye,green:{line:"#15803d",labelBg:"#052e16",label:"#22c55e"},indigo:{line:"#6366f1",labelBg:"#1e1b4b",label:"#818cf8"},muted:UI,primary:WI,red:{line:"#AC4D39",labelBg:"#b91c1c",label:"#f5b2a3"},secondary:YI,sky:YI,slate:UI},GI=60,XI=2,KI=1;function jye(e){at(Lt.valid(e),`Invalid color: ${e}`);const r=Pye(e),n=r[6],o=Lye(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 Lye(e){const r=Lt(e);let n=r.brighten(XI),o=r.darken(XI),a,i,s,l;do a=n,i=o,n=n.brighten(KI),o=o.darken(KI),s=Lt.contrastAPCA(r,n),l=Lt.contrastAPCA(r,o);while(Math.abs(s)Math.abs(l)?[n.brighten(.4).hex(),n.hex()]:[o.darken(.4).hex(),o.hex()]}const Bye={color:"primary",size:"md",opacity:15,shape:"rectangle",group:{opacity:15,border:"dashed"},relationship:{color:"gray",line:"dashed",arrow:"normal"}},Fye=["rectangle","person","browser","mobile","cylinder","storage","queue"],Hye={colors:$1e(["amber","blue","gray","slate","green","indigo","muted","primary","red","secondary","sky"],e=>({elements:zye[e],relationships:Oye[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 j6(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 L6(e,r,n=".",o){if(!j6(r))return L6(e,{},n);const a=Object.assign({},r);for(const i in e){if(i==="__proto__"||i==="constructor")continue;const s=e[i];s!=null&&(Array.isArray(s)&&Array.isArray(a[i])?a[i]=[...s,...a[i]]:j6(s)&&j6(a[i])?a[i]=L6(s,a[i],(n?`${n}.`:"")+i.toString()):a[i]=s)}return a}function Vye(e){return(...r)=>r.reduce((n,o)=>L6(n,o,""),{})}const qye=Vye();function Jv({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:Hye,defaults:Bye};let ZI=class Hz{constructor(r){this.config=r,this.theme=r.theme,this.defaults=r.defaults}theme;defaults;static DEFAULT=new Hz(B6);static from(...r){return Kl(r,1)?new Hz(qye(...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?yr(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=Jv(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){return this.isThemeColor(r)?this.theme.colors[r]:yr(this,`compute-${r}`,()=>{if(!Lt.valid(r))throw new Error(`Invalid color value: "${r}"`);return jye(r)})}equals(r){return r===this?!0:Vv(this.config,r.config)}};function m1(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function cu(e){return typeof e=="string"}var F6={exports:{}},QI;function Uye(){if(QI)return F6.exports;QI=1;var e=function(r,n){var o,a,i=1,s=0,l=0,c=String.alphabet;function u(d,h,f){if(f){for(o=h;f=u(d,o),f<76&&f>65;)++o;return+d.slice(h-1,o)}return f=c&&c.indexOf(d.charAt(h)),f>-1?f+76:(f=d.charCodeAt(h)||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,s++),i=u(n,l++),a<76&&i<76&&a>66&&i>66&&(a=u(r,s,s),i=u(n,l,s=o),l=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),s=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=>H6(e)?e:e.id;function to(e,r){const n=y1(e);return r?y1(r).startsWith(n+"."):o=>{const a=y1(o);return n.startsWith(a+".")}}function tO(e,r){if(!r)return a=>tO(e,a);const n=y1(e),o=y1(r);return n===o||o.startsWith(n+".")||n.startsWith(o+".")}function rO(e,r){return n=>to(e,n)}function rx(e){return(H6(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 Yye(e,r){let n=r;for(const o of e)to(o,n)&&(n=o);return n!==r?n:null}function uu(e){const r=[],n=[...e];let o;for(;o=n.shift();){let a;for(;a=Yye(n,o);)r.push(n.splice(n.indexOf(a),1)[0]);r.push(o)}return r}function nO(e,r){if(!e||H6(e)){const o=e??"asc";return a=>nO(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 nx={},oO;function Gye(){return oO||(oO=1,nx.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u",nx.SYMBOL_SUPPORT=typeof Symbol<"u"),nx}var V6,aO;function iO(){if(aO)return V6;aO=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"},V6=e,V6}var q6,sO;function ox(){if(sO)return q6;sO=1;var e=Gye(),r=e.ARRAY_BUFFER_SUPPORT,n=e.SYMBOL_SUPPORT;return q6=function(a,i){var s,l,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{const n=(a,i)=>(e.set(i,a),a),o=a=>{if(e.has(a))return e.get(a);const[i,s]=r[a];switch(i){case ax:case lO:return n(s,a);case v1:{const l=n([],a);for(const c of s)l.push(o(c));return l}case ix:{const l=n({},a);for(const[c,u]of s)l[o(c)]=o(u);return l}case U6:return n(new Date(s),a);case W6:{const{source:l,flags:c}=s;return n(new RegExp(l,c),a)}case Y6:{const l=n(new Map,a);for(const[c,u]of s)l.set(o(c),o(u));return l}case G6:{const l=n(new Set,a);for(const c of s)l.add(o(c));return l}case cO:{const{name:l,message:c}=s;return n(new dO[l](c),a)}case uO:return n(BigInt(s),a);case"BigInt":return n(Object(BigInt(s)),a);case"ArrayBuffer":return n(new Uint8Array(s).buffer,s);case"DataView":{const{buffer:l}=new Uint8Array(s);return n(new DataView(l),s)}}return n(new dO[i](s),a)};return o},pO=e=>Xye(new Map,e)(0),af="",{toString:Kye}={},{keys:Zye}=Object,x1=e=>{const r=typeof e;if(r!=="object"||!e)return[ax,r];const n=Kye.call(e).slice(8,-1);switch(n){case"Array":return[v1,af];case"Object":return[ix,af];case"Date":return[U6,af];case"RegExp":return[W6,af];case"Map":return[Y6,af];case"Set":return[G6,af];case"DataView":return[v1,n]}return n.includes("Array")?[v1,n]:n.includes("Error")?[cO,n]:[ix,n]},sx=([e,r])=>e===ax&&(r==="function"||r==="symbol"),Qye=(e,r,n,o)=>{const a=(s,l)=>{const c=o.push(s)-1;return n.set(l,c),c},i=s=>{if(n.has(s))return n.get(s);let[l,c]=x1(s);switch(l){case ax:{let d=s;switch(c){case"bigint":l=uO,d=s.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return a([lO],s)}return a([l,d],s)}case v1:{if(c){let f=s;return c==="DataView"?f=new Uint8Array(s.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(s)),a([c,[...f]],s)}const d=[],h=a([l,d],s);for(const f of s)d.push(i(f));return h}case ix:{if(c)switch(c){case"BigInt":return a([c,s.toString()],s);case"Boolean":case"Number":case"String":return a([c,s.valueOf()],s)}if(r&&"toJSON"in s)return i(s.toJSON());const d=[],h=a([l,d],s);for(const f of Zye(s))(e||!sx(x1(s[f])))&&d.push([i(f),i(s[f])]);return h}case U6:return a([l,s.toISOString()],s);case W6:{const{source:d,flags:h}=s;return a([l,{source:d,flags:h}],s)}case Y6:{const d=[],h=a([l,d],s);for(const[f,g]of s)(e||!(sx(x1(f))||sx(x1(g))))&&d.push([i(f),i(g)]);return h}case G6:{const d=[],h=a([l,d],s);for(const f of s)(e||!sx(x1(f)))&&d.push(i(f));return h}}const{message:u}=s;return a([l,{name:c,message:u}],s)};return i},hO=(e,{json:r,lossy:n}={})=>{const o=[];return Qye(!(r||n),!!r,new Map,o)(e),o},Ld=typeof structuredClone=="function"?(e,r)=>r&&("json"in r||"lossy"in r)?pO(hO(e,r)):structuredClone(e):(e,r)=>pO(hO(e,r));function ekt(){}let w1=class{constructor(r,n,o){this.normal=n,this.property=r,o&&(this.space=o)}};w1.prototype.normal={},w1.prototype.property={},w1.prototype.space=void 0;function fO(e,r){const n={},o={};for(const a of e)Object.assign(n,a.property),Object.assign(o,a.normal);return new w1(n,o,r)}function k1(e){return e.toLowerCase()}let oa=class{constructor(r,n){this.attribute=n,this.property=r}};oa.prototype.attribute="",oa.prototype.booleanish=!1,oa.prototype.boolean=!1,oa.prototype.commaOrSpaceSeparated=!1,oa.prototype.commaSeparated=!1,oa.prototype.defined=!1,oa.prototype.mustUseProperty=!1,oa.prototype.number=!1,oa.prototype.overloadedBoolean=!1,oa.prototype.property="",oa.prototype.spaceSeparated=!1,oa.prototype.space=void 0;let Jye=0;const Ht=Bd(),$n=Bd(),mO=Bd(),Ue=Bd(),jr=Bd(),sf=Bd(),Ra=Bd();function Bd(){return 2**++Jye}const X6={__proto__:null,boolean:Ht,booleanish:$n,commaOrSpaceSeparated:Ra,commaSeparated:sf,number:Ue,overloadedBoolean:mO,spaceSeparated:jr},K6=Object.keys(X6);let Z6=class extends oa{constructor(r,n,o,a){let i=-1;if(super(r,n),gO(this,"space",a),typeof o=="number")for(;++i4&&n.slice(0,4)==="data"&&nbe.test(r)){if(r.charAt(4)==="-"){const i=r.slice(5).replace(_O,abe);o="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=r.slice(4);if(!_O.test(i)){let s=i.replace(rbe,obe);s.charAt(0)!=="-"&&(s="-"+s),r="data"+s}}a=Z6}return new a(o,r)}function obe(e){return"-"+e.toLowerCase()}function abe(e){return e.charAt(1).toUpperCase()}const lx=fO([yO,ebe,xO,wO,kO],"html"),_1=fO([yO,tbe,xO,wO,kO],"svg");function EO(e){const r=[],n=String(e||"");let o=n.indexOf(","),a=0,i=!1;for(;!i;){o===-1&&(o=n.length,i=!0);const s=n.slice(a,o).trim();(s||!i)&&r.push(s),a=o+1,o=n.indexOf(",",a)}return r}function SO(e,r){const n=r||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const CO=/[#.]/g;function ibe(e,r){const n=e||"",o={};let a=0,i,s;for(;a-1&&i<=r.length){let s=0;for(;;){let l=n[s];if(l===void 0){const c=DO(r,n[s-1]);l=c===-1?r.length+1:c+1,n[s]=l}if(l>i)return{line:s+1,column:i-(s>0?n[s-1]:0)+1,offset:i};s++}}}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(s4&&n.slice(0,4)==="data"&&_be.test(r)){if(r.charAt(4)==="-"){const i=r.slice(5).replace(qO,Tbe);o="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=r.slice(4);if(!qO.test(i)){let s=i.replace(Ebe,Cbe);s.charAt(0)!=="-"&&(s="-"+s),r="data"+s}}a=o8}return new a(o,r)}function Cbe(e){return"-"+e.toLowerCase()}function Tbe(e){return e.charAt(1).toUpperCase()}const Abe=zO([LO,jO,HO,VO,wbe],"html"),UO=zO([LO,jO,HO,VO,kbe],"svg"),WO={}.hasOwnProperty;function a8(e,r){const n=r||{};function o(a,...i){let s=o.invalid;const l=o.handlers;if(a&&WO.call(a,e)){const c=String(a[e]);s=WO.call(l,c)?l[c]:o.unknown}if(s)return s.call(this,a,...i)}return o.handlers=n.handlers||{},o.invalid=n.invalid,o.unknown=n.unknown,o}const Rbe={},Nbe={}.hasOwnProperty,YO=a8("type",{handlers:{root:$be,element:Obe,text:zbe,comment:Ibe,doctype:Pbe}});function Dbe(e,r){const o=(r||Rbe).space;return YO(e,o==="svg"?UO:Abe)}function $be(e,r){const n={nodeName:"#document",mode:(e.data||{}).quirksMode?"quirks":"no-quirks",childNodes:[]};return n.childNodes=i8(e.children,n,r),pf(e,n),n}function Mbe(e,r){const n={nodeName:"#document-fragment",childNodes:[]};return n.childNodes=i8(e.children,n,r),pf(e,n),n}function Pbe(e){const r={nodeName:"#documentType",name:"html",publicId:"",systemId:"",parentNode:null};return pf(e,r),r}function zbe(e){const r={nodeName:"#text",value:e.value,parentNode:null};return pf(e,r),r}function Ibe(e){const r={nodeName:"#comment",data:e.value,parentNode:null};return pf(e,r),r}function Obe(e,r){const n=r;let o=n;e.type==="element"&&e.tagName.toLowerCase()==="svg"&&n.space==="html"&&(o=UO);const a=[];let i;if(e.properties){for(i in e.properties)if(i!=="children"&&Nbe.call(e.properties,i)){const c=jbe(o,i,e.properties[i]);c&&a.push(c)}}const s=o.space,l={nodeName:e.tagName,tagName:e.tagName,attrs:a,namespaceURI:Fd[s],childNodes:[],parentNode:null};return l.childNodes=i8(e.children,l,o),pf(e,l),e.tagName==="template"&&e.content&&(l.content=Mbe(e.content,o)),l}function jbe(e,r,n){const o=Sbe(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?SO(n):AO(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=Fd[o.space]}return a}function i8(e,r,n){let o=-1;const a=[];if(e)for(;++o=55296&&e<=57343}function Bbe(e){return e>=56320&&e<=57343}function Fbe(e,r){return(e-55296)*1024+9216+r}function KO(e){return e!==32&&e!==10&&e!==13&&e!==9&&e!==12&&e>=1&&e<=31||e>=127&&e<=159}function ZO(e){return e>=64976&&e<=65007||Lbe.has(e)}var Ae;(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"})(Ae||(Ae={}));const Hbe=65536;class Vbe{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=Hbe,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,s=a+n,l=i+n;return{code:r,startLine:o,endLine:o,startCol:s,endCol:s,startOffset:l,endOffset:l}}_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(Bbe(n))return this.pos++,this._addGap(),Fbe(r,n)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,se.EOF;return this._err(Ae.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,se.EOF;const o=this.html.charCodeAt(n);return o===se.CARRIAGE_RETURN?se.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,se.EOF;let r=this.html.charCodeAt(this.pos);return r===se.CARRIAGE_RETURN?(this.isEol=!0,this.skipNextNewLine=!0,se.LINE_FEED):r===se.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine)?(this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance()):(this.skipNextNewLine=!1,XO(r)&&(r=this._processSurrogate(r)),this.handler.onParseError===null||r>31&&r<127||r===se.LINE_FEED||r===se.CARRIAGE_RETURN||r>159&&r<64976||this._checkForProblematicCharacters(r),r)}_checkForProblematicCharacters(r){KO(r)?this._err(Ae.controlCharacterInInputStream):ZO(r)&&this._err(Ae.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 JO=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))),qbe=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e=>e.charCodeAt(0)));var s8;const Ube=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]]),Wbe=(s8=String.fromCodePoint)!==null&&s8!==void 0?s8: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 Ybe(e){var r;return e>=55296&&e<=57343||e>1114111?65533:(r=Ube.get(e))!==null&&r!==void 0?r:e}var ro;(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"})(ro||(ro={}));const Gbe=32;var du;(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(du||(du={}));function l8(e){return e>=ro.ZERO&&e<=ro.NINE}function Xbe(e){return e>=ro.UPPER_A&&e<=ro.UPPER_F||e>=ro.LOWER_A&&e<=ro.LOWER_F}function Kbe(e){return e>=ro.UPPER_A&&e<=ro.UPPER_Z||e>=ro.LOWER_A&&e<=ro.LOWER_Z||l8(e)}function Zbe(e){return e===ro.EQUALS||Kbe(e)}var no;(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"})(no||(no={}));var tc;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(tc||(tc={}));class ej{constructor(r,n,o){this.decodeTree=r,this.emitCodePoint=n,this.errors=o,this.state=no.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=tc.Strict}startEntity(r){this.decodeMode=r,this.state=no.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(r,n){switch(this.state){case no.EntityStart:return r.charCodeAt(n)===ro.NUM?(this.state=no.NumericStart,this.consumed+=1,this.stateNumericStart(r,n+1)):(this.state=no.NamedEntity,this.stateNamedEntity(r,n));case no.NumericStart:return this.stateNumericStart(r,n);case no.NumericDecimal:return this.stateNumericDecimal(r,n);case no.NumericHex:return this.stateNumericHex(r,n);case no.NamedEntity:return this.stateNamedEntity(r,n)}}stateNumericStart(r,n){return n>=r.length?-1:(r.charCodeAt(n)|Gbe)===ro.LOWER_X?(this.state=no.NumericHex,this.consumed+=1,this.stateNumericHex(r,n+1)):(this.state=no.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(s===ro.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==tc.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]&du.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]&~du.VALUE_LENGTH:a[r+1],o),n===3&&this.emitCodePoint(a[r+2],o),o}end(){var r;switch(this.state){case no.NamedEntity:return this.result!==0&&(this.decodeMode!==tc.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case no.NumericDecimal:return this.emitNumericEntity(0,2);case no.NumericHex:return this.emitNumericEntity(0,3);case no.NumericStart:return(r=this.errors)===null||r===void 0||r.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case no.EntityStart:return 0}}}function tj(e){let r="";const n=new ej(e,o=>r+=Wbe(o));return function(a,i){let s=0,l=0;for(;(l=a.indexOf("&",l))>=0;){r+=a.slice(s,l),n.startEntity(i);const u=n.write(a,l+1);if(u<0){s=l+n.end();break}s=l+u,l=u===0?s+1:s}const c=r+a.slice(s);return r="",c}}function Qbe(e,r,n,o){const a=(r&du.BRANCH_LENGTH)>>7,i=r&du.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 s=n,l=s+a-1;for(;s<=l;){const c=s+l>>>1,u=e[c];if(uo)l=c-1;else return e[c+a]}return-1}tj(JO),tj(qbe);var je;(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/"})(je||(je={}));var Vd;(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"})(Vd||(Vd={}));var ui;(function(e){e.NO_QUIRKS="no-quirks",e.QUIRKS="quirks",e.LIMITED_QUIRKS="limited-quirks"})(ui||(ui={}));var ve;(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"})(ve||(ve={}));var B;(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"})(B||(B={}));const Jbe=new Map([[ve.A,B.A],[ve.ADDRESS,B.ADDRESS],[ve.ANNOTATION_XML,B.ANNOTATION_XML],[ve.APPLET,B.APPLET],[ve.AREA,B.AREA],[ve.ARTICLE,B.ARTICLE],[ve.ASIDE,B.ASIDE],[ve.B,B.B],[ve.BASE,B.BASE],[ve.BASEFONT,B.BASEFONT],[ve.BGSOUND,B.BGSOUND],[ve.BIG,B.BIG],[ve.BLOCKQUOTE,B.BLOCKQUOTE],[ve.BODY,B.BODY],[ve.BR,B.BR],[ve.BUTTON,B.BUTTON],[ve.CAPTION,B.CAPTION],[ve.CENTER,B.CENTER],[ve.CODE,B.CODE],[ve.COL,B.COL],[ve.COLGROUP,B.COLGROUP],[ve.DD,B.DD],[ve.DESC,B.DESC],[ve.DETAILS,B.DETAILS],[ve.DIALOG,B.DIALOG],[ve.DIR,B.DIR],[ve.DIV,B.DIV],[ve.DL,B.DL],[ve.DT,B.DT],[ve.EM,B.EM],[ve.EMBED,B.EMBED],[ve.FIELDSET,B.FIELDSET],[ve.FIGCAPTION,B.FIGCAPTION],[ve.FIGURE,B.FIGURE],[ve.FONT,B.FONT],[ve.FOOTER,B.FOOTER],[ve.FOREIGN_OBJECT,B.FOREIGN_OBJECT],[ve.FORM,B.FORM],[ve.FRAME,B.FRAME],[ve.FRAMESET,B.FRAMESET],[ve.H1,B.H1],[ve.H2,B.H2],[ve.H3,B.H3],[ve.H4,B.H4],[ve.H5,B.H5],[ve.H6,B.H6],[ve.HEAD,B.HEAD],[ve.HEADER,B.HEADER],[ve.HGROUP,B.HGROUP],[ve.HR,B.HR],[ve.HTML,B.HTML],[ve.I,B.I],[ve.IMG,B.IMG],[ve.IMAGE,B.IMAGE],[ve.INPUT,B.INPUT],[ve.IFRAME,B.IFRAME],[ve.KEYGEN,B.KEYGEN],[ve.LABEL,B.LABEL],[ve.LI,B.LI],[ve.LINK,B.LINK],[ve.LISTING,B.LISTING],[ve.MAIN,B.MAIN],[ve.MALIGNMARK,B.MALIGNMARK],[ve.MARQUEE,B.MARQUEE],[ve.MATH,B.MATH],[ve.MENU,B.MENU],[ve.META,B.META],[ve.MGLYPH,B.MGLYPH],[ve.MI,B.MI],[ve.MO,B.MO],[ve.MN,B.MN],[ve.MS,B.MS],[ve.MTEXT,B.MTEXT],[ve.NAV,B.NAV],[ve.NOBR,B.NOBR],[ve.NOFRAMES,B.NOFRAMES],[ve.NOEMBED,B.NOEMBED],[ve.NOSCRIPT,B.NOSCRIPT],[ve.OBJECT,B.OBJECT],[ve.OL,B.OL],[ve.OPTGROUP,B.OPTGROUP],[ve.OPTION,B.OPTION],[ve.P,B.P],[ve.PARAM,B.PARAM],[ve.PLAINTEXT,B.PLAINTEXT],[ve.PRE,B.PRE],[ve.RB,B.RB],[ve.RP,B.RP],[ve.RT,B.RT],[ve.RTC,B.RTC],[ve.RUBY,B.RUBY],[ve.S,B.S],[ve.SCRIPT,B.SCRIPT],[ve.SEARCH,B.SEARCH],[ve.SECTION,B.SECTION],[ve.SELECT,B.SELECT],[ve.SOURCE,B.SOURCE],[ve.SMALL,B.SMALL],[ve.SPAN,B.SPAN],[ve.STRIKE,B.STRIKE],[ve.STRONG,B.STRONG],[ve.STYLE,B.STYLE],[ve.SUB,B.SUB],[ve.SUMMARY,B.SUMMARY],[ve.SUP,B.SUP],[ve.TABLE,B.TABLE],[ve.TBODY,B.TBODY],[ve.TEMPLATE,B.TEMPLATE],[ve.TEXTAREA,B.TEXTAREA],[ve.TFOOT,B.TFOOT],[ve.TD,B.TD],[ve.TH,B.TH],[ve.THEAD,B.THEAD],[ve.TITLE,B.TITLE],[ve.TR,B.TR],[ve.TRACK,B.TRACK],[ve.TT,B.TT],[ve.U,B.U],[ve.UL,B.UL],[ve.SVG,B.SVG],[ve.VAR,B.VAR],[ve.WBR,B.WBR],[ve.XMP,B.XMP]]);function hf(e){var r;return(r=Jbe.get(e))!==null&&r!==void 0?r:B.UNKNOWN}const Fe=B,eve={[je.HTML]:new Set([Fe.ADDRESS,Fe.APPLET,Fe.AREA,Fe.ARTICLE,Fe.ASIDE,Fe.BASE,Fe.BASEFONT,Fe.BGSOUND,Fe.BLOCKQUOTE,Fe.BODY,Fe.BR,Fe.BUTTON,Fe.CAPTION,Fe.CENTER,Fe.COL,Fe.COLGROUP,Fe.DD,Fe.DETAILS,Fe.DIR,Fe.DIV,Fe.DL,Fe.DT,Fe.EMBED,Fe.FIELDSET,Fe.FIGCAPTION,Fe.FIGURE,Fe.FOOTER,Fe.FORM,Fe.FRAME,Fe.FRAMESET,Fe.H1,Fe.H2,Fe.H3,Fe.H4,Fe.H5,Fe.H6,Fe.HEAD,Fe.HEADER,Fe.HGROUP,Fe.HR,Fe.HTML,Fe.IFRAME,Fe.IMG,Fe.INPUT,Fe.LI,Fe.LINK,Fe.LISTING,Fe.MAIN,Fe.MARQUEE,Fe.MENU,Fe.META,Fe.NAV,Fe.NOEMBED,Fe.NOFRAMES,Fe.NOSCRIPT,Fe.OBJECT,Fe.OL,Fe.P,Fe.PARAM,Fe.PLAINTEXT,Fe.PRE,Fe.SCRIPT,Fe.SECTION,Fe.SELECT,Fe.SOURCE,Fe.STYLE,Fe.SUMMARY,Fe.TABLE,Fe.TBODY,Fe.TD,Fe.TEMPLATE,Fe.TEXTAREA,Fe.TFOOT,Fe.TH,Fe.THEAD,Fe.TITLE,Fe.TR,Fe.TRACK,Fe.UL,Fe.WBR,Fe.XMP]),[je.MATHML]:new Set([Fe.MI,Fe.MO,Fe.MN,Fe.MS,Fe.MTEXT,Fe.ANNOTATION_XML]),[je.SVG]:new Set([Fe.TITLE,Fe.FOREIGN_OBJECT,Fe.DESC]),[je.XLINK]:new Set,[je.XML]:new Set,[je.XMLNS]:new Set},c8=new Set([Fe.H1,Fe.H2,Fe.H3,Fe.H4,Fe.H5,Fe.H6]);ve.STYLE,ve.SCRIPT,ve.XMP,ve.IFRAME,ve.NOEMBED,ve.NOFRAMES,ve.PLAINTEXT;var ce;(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"})(ce||(ce={}));const kn={DATA:ce.DATA,RCDATA:ce.RCDATA,RAWTEXT:ce.RAWTEXT,SCRIPT_DATA:ce.SCRIPT_DATA,PLAINTEXT:ce.PLAINTEXT,CDATA_SECTION:ce.CDATA_SECTION};function tve(e){return e>=se.DIGIT_0&&e<=se.DIGIT_9}function S1(e){return e>=se.LATIN_CAPITAL_A&&e<=se.LATIN_CAPITAL_Z}function rve(e){return e>=se.LATIN_SMALL_A&&e<=se.LATIN_SMALL_Z}function pu(e){return rve(e)||S1(e)}function rj(e){return pu(e)||tve(e)}function ux(e){return e+32}function nj(e){return e===se.SPACE||e===se.LINE_FEED||e===se.TABULATION||e===se.FORM_FEED}function oj(e){return nj(e)||e===se.SOLIDUS||e===se.GREATER_THAN_SIGN}function nve(e){return e===se.NULL?Ae.nullCharacterReference:e>1114111?Ae.characterReferenceOutsideUnicodeRange:XO(e)?Ae.surrogateCharacterReference:ZO(e)?Ae.noncharacterCharacterReference:KO(e)||e===se.CARRIAGE_RETURN?Ae.controlCharacterReference:null}class ove{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=ce.DATA,this.returnState=ce.DATA,this.entityStartPos=0,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new Vbe(n),this.currentLocation=this.getCurrentLocation(-1),this.entityDecoder=new ej(JO,(o,a)=>{this.preprocessor.pos=this.entityStartPos+a-1,this._flushCodePointConsumedAsCharacterReference(o)},n.onParseError?{missingSemicolonAfterCharacterReference:()=>{this._err(Ae.missingSemicolonAfterCharacterReference,1)},absenceOfDigitsInNumericCharacterReference:o=>{this._err(Ae.absenceOfDigitsInNumericCharacterReference,this.entityStartPos-this.preprocessor.pos+o)},validateNumericCharacterReference:o=>{const a=nve(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(Ae.endTagWithAttributes),r.selfClosing&&this._err(Ae.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 Kt.CHARACTER:{this.handler.onCharacter(this.currentCharacterToken);break}case Kt.NULL_CHARACTER:{this.handler.onNullCharacter(this.currentCharacterToken);break}case Kt.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:Kt.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=nj(r)?Kt.WHITESPACE_CHARACTER:r===se.NULL?Kt.NULL_CHARACTER:Kt.CHARACTER;this._appendCharToCurrentCharacterToken(n,String.fromCodePoint(r))}_emitChars(r){this._appendCharToCurrentCharacterToken(Kt.CHARACTER,r)}_startCharacterReference(){this.returnState=this.state,this.state=ce.CHARACTER_REFERENCE,this.entityStartPos=this.preprocessor.pos,this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute()?tc.Attribute:tc.Legacy)}_isCharacterReferenceInAttribute(){return this.returnState===ce.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===ce.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===ce.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(r){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(r):this._emitCodePoint(r)}_callState(r){switch(this.state){case ce.DATA:{this._stateData(r);break}case ce.RCDATA:{this._stateRcdata(r);break}case ce.RAWTEXT:{this._stateRawtext(r);break}case ce.SCRIPT_DATA:{this._stateScriptData(r);break}case ce.PLAINTEXT:{this._statePlaintext(r);break}case ce.TAG_OPEN:{this._stateTagOpen(r);break}case ce.END_TAG_OPEN:{this._stateEndTagOpen(r);break}case ce.TAG_NAME:{this._stateTagName(r);break}case ce.RCDATA_LESS_THAN_SIGN:{this._stateRcdataLessThanSign(r);break}case ce.RCDATA_END_TAG_OPEN:{this._stateRcdataEndTagOpen(r);break}case ce.RCDATA_END_TAG_NAME:{this._stateRcdataEndTagName(r);break}case ce.RAWTEXT_LESS_THAN_SIGN:{this._stateRawtextLessThanSign(r);break}case ce.RAWTEXT_END_TAG_OPEN:{this._stateRawtextEndTagOpen(r);break}case ce.RAWTEXT_END_TAG_NAME:{this._stateRawtextEndTagName(r);break}case ce.SCRIPT_DATA_LESS_THAN_SIGN:{this._stateScriptDataLessThanSign(r);break}case ce.SCRIPT_DATA_END_TAG_OPEN:{this._stateScriptDataEndTagOpen(r);break}case ce.SCRIPT_DATA_END_TAG_NAME:{this._stateScriptDataEndTagName(r);break}case ce.SCRIPT_DATA_ESCAPE_START:{this._stateScriptDataEscapeStart(r);break}case ce.SCRIPT_DATA_ESCAPE_START_DASH:{this._stateScriptDataEscapeStartDash(r);break}case ce.SCRIPT_DATA_ESCAPED:{this._stateScriptDataEscaped(r);break}case ce.SCRIPT_DATA_ESCAPED_DASH:{this._stateScriptDataEscapedDash(r);break}case ce.SCRIPT_DATA_ESCAPED_DASH_DASH:{this._stateScriptDataEscapedDashDash(r);break}case ce.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataEscapedLessThanSign(r);break}case ce.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:{this._stateScriptDataEscapedEndTagOpen(r);break}case ce.SCRIPT_DATA_ESCAPED_END_TAG_NAME:{this._stateScriptDataEscapedEndTagName(r);break}case ce.SCRIPT_DATA_DOUBLE_ESCAPE_START:{this._stateScriptDataDoubleEscapeStart(r);break}case ce.SCRIPT_DATA_DOUBLE_ESCAPED:{this._stateScriptDataDoubleEscaped(r);break}case ce.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:{this._stateScriptDataDoubleEscapedDash(r);break}case ce.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:{this._stateScriptDataDoubleEscapedDashDash(r);break}case ce.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataDoubleEscapedLessThanSign(r);break}case ce.SCRIPT_DATA_DOUBLE_ESCAPE_END:{this._stateScriptDataDoubleEscapeEnd(r);break}case ce.BEFORE_ATTRIBUTE_NAME:{this._stateBeforeAttributeName(r);break}case ce.ATTRIBUTE_NAME:{this._stateAttributeName(r);break}case ce.AFTER_ATTRIBUTE_NAME:{this._stateAfterAttributeName(r);break}case ce.BEFORE_ATTRIBUTE_VALUE:{this._stateBeforeAttributeValue(r);break}case ce.ATTRIBUTE_VALUE_DOUBLE_QUOTED:{this._stateAttributeValueDoubleQuoted(r);break}case ce.ATTRIBUTE_VALUE_SINGLE_QUOTED:{this._stateAttributeValueSingleQuoted(r);break}case ce.ATTRIBUTE_VALUE_UNQUOTED:{this._stateAttributeValueUnquoted(r);break}case ce.AFTER_ATTRIBUTE_VALUE_QUOTED:{this._stateAfterAttributeValueQuoted(r);break}case ce.SELF_CLOSING_START_TAG:{this._stateSelfClosingStartTag(r);break}case ce.BOGUS_COMMENT:{this._stateBogusComment(r);break}case ce.MARKUP_DECLARATION_OPEN:{this._stateMarkupDeclarationOpen(r);break}case ce.COMMENT_START:{this._stateCommentStart(r);break}case ce.COMMENT_START_DASH:{this._stateCommentStartDash(r);break}case ce.COMMENT:{this._stateComment(r);break}case ce.COMMENT_LESS_THAN_SIGN:{this._stateCommentLessThanSign(r);break}case ce.COMMENT_LESS_THAN_SIGN_BANG:{this._stateCommentLessThanSignBang(r);break}case ce.COMMENT_LESS_THAN_SIGN_BANG_DASH:{this._stateCommentLessThanSignBangDash(r);break}case ce.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:{this._stateCommentLessThanSignBangDashDash(r);break}case ce.COMMENT_END_DASH:{this._stateCommentEndDash(r);break}case ce.COMMENT_END:{this._stateCommentEnd(r);break}case ce.COMMENT_END_BANG:{this._stateCommentEndBang(r);break}case ce.DOCTYPE:{this._stateDoctype(r);break}case ce.BEFORE_DOCTYPE_NAME:{this._stateBeforeDoctypeName(r);break}case ce.DOCTYPE_NAME:{this._stateDoctypeName(r);break}case ce.AFTER_DOCTYPE_NAME:{this._stateAfterDoctypeName(r);break}case ce.AFTER_DOCTYPE_PUBLIC_KEYWORD:{this._stateAfterDoctypePublicKeyword(r);break}case ce.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateBeforeDoctypePublicIdentifier(r);break}case ce.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypePublicIdentifierDoubleQuoted(r);break}case ce.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypePublicIdentifierSingleQuoted(r);break}case ce.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateAfterDoctypePublicIdentifier(r);break}case ce.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:{this._stateBetweenDoctypePublicAndSystemIdentifiers(r);break}case ce.AFTER_DOCTYPE_SYSTEM_KEYWORD:{this._stateAfterDoctypeSystemKeyword(r);break}case ce.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateBeforeDoctypeSystemIdentifier(r);break}case ce.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypeSystemIdentifierDoubleQuoted(r);break}case ce.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypeSystemIdentifierSingleQuoted(r);break}case ce.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateAfterDoctypeSystemIdentifier(r);break}case ce.BOGUS_DOCTYPE:{this._stateBogusDoctype(r);break}case ce.CDATA_SECTION:{this._stateCdataSection(r);break}case ce.CDATA_SECTION_BRACKET:{this._stateCdataSectionBracket(r);break}case ce.CDATA_SECTION_END:{this._stateCdataSectionEnd(r);break}case ce.CHARACTER_REFERENCE:{this._stateCharacterReference();break}case ce.AMBIGUOUS_AMPERSAND:{this._stateAmbiguousAmpersand(r);break}default:throw new Error("Unknown state")}}_stateData(r){switch(r){case se.LESS_THAN_SIGN:{this.state=ce.TAG_OPEN;break}case se.AMPERSAND:{this._startCharacterReference();break}case se.NULL:{this._err(Ae.unexpectedNullCharacter),this._emitCodePoint(r);break}case se.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(r)}}_stateRcdata(r){switch(r){case se.AMPERSAND:{this._startCharacterReference();break}case se.LESS_THAN_SIGN:{this.state=ce.RCDATA_LESS_THAN_SIGN;break}case se.NULL:{this._err(Ae.unexpectedNullCharacter),this._emitChars(Xr);break}case se.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(r)}}_stateRawtext(r){switch(r){case se.LESS_THAN_SIGN:{this.state=ce.RAWTEXT_LESS_THAN_SIGN;break}case se.NULL:{this._err(Ae.unexpectedNullCharacter),this._emitChars(Xr);break}case se.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(r)}}_stateScriptData(r){switch(r){case se.LESS_THAN_SIGN:{this.state=ce.SCRIPT_DATA_LESS_THAN_SIGN;break}case se.NULL:{this._err(Ae.unexpectedNullCharacter),this._emitChars(Xr);break}case se.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(r)}}_statePlaintext(r){switch(r){case se.NULL:{this._err(Ae.unexpectedNullCharacter),this._emitChars(Xr);break}case se.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(r)}}_stateTagOpen(r){if(pu(r))this._createStartTagToken(),this.state=ce.TAG_NAME,this._stateTagName(r);else switch(r){case se.EXCLAMATION_MARK:{this.state=ce.MARKUP_DECLARATION_OPEN;break}case se.SOLIDUS:{this.state=ce.END_TAG_OPEN;break}case se.QUESTION_MARK:{this._err(Ae.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=ce.BOGUS_COMMENT,this._stateBogusComment(r);break}case se.EOF:{this._err(Ae.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break}default:this._err(Ae.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=ce.DATA,this._stateData(r)}}_stateEndTagOpen(r){if(pu(r))this._createEndTagToken(),this.state=ce.TAG_NAME,this._stateTagName(r);else switch(r){case se.GREATER_THAN_SIGN:{this._err(Ae.missingEndTagName),this.state=ce.DATA;break}case se.EOF:{this._err(Ae.eofBeforeTagName),this._emitChars("");break}case se.NULL:{this._err(Ae.unexpectedNullCharacter),this.state=ce.SCRIPT_DATA_ESCAPED,this._emitChars(Xr);break}case se.EOF:{this._err(Ae.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=ce.SCRIPT_DATA_ESCAPED,this._emitCodePoint(r)}}_stateScriptDataEscapedLessThanSign(r){r===se.SOLIDUS?this.state=ce.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:pu(r)?(this._emitChars("<"),this.state=ce.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(r)):(this._emitChars("<"),this.state=ce.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(r))}_stateScriptDataEscapedEndTagOpen(r){pu(r)?(this.state=ce.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(r)):(this._emitChars("");break}case se.NULL:{this._err(Ae.unexpectedNullCharacter),this.state=ce.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(Xr);break}case se.EOF:{this._err(Ae.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=ce.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(r)}}_stateScriptDataDoubleEscapedLessThanSign(r){r===se.SOLIDUS?(this.state=ce.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=ce.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(r))}_stateScriptDataDoubleEscapeEnd(r){if(this.preprocessor.startsWith(aa.SCRIPT,!1)&&oj(this.preprocessor.peek(aa.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])!==je.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(cve,je.HTML)}clearBackToTableBodyContext(){this.clearBackTo(lve,je.HTML)}clearBackToTableRowContext(){this.clearBackTo(sve,je.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]===B.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]===B.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 je.HTML:{if(a===r)return!0;if(n.has(a))return!1;break}case je.SVG:{if(lj.has(a))return!1;break}case je.MATHML:{if(sj.has(a))return!1;break}}}return!0}hasInScope(r){return this.hasInDynamicScope(r,dx)}hasInListItemScope(r){return this.hasInDynamicScope(r,ave)}hasInButtonScope(r){return this.hasInDynamicScope(r,ive)}hasNumberedHeaderInScope(){for(let r=this.stackTop;r>=0;r--){const n=this.tagIDs[r];switch(this.treeAdapter.getNamespaceURI(this.items[r])){case je.HTML:{if(c8.has(n))return!0;if(dx.has(n))return!1;break}case je.SVG:{if(lj.has(n))return!1;break}case je.MATHML:{if(sj.has(n))return!1;break}}}return!0}hasInTableScope(r){for(let n=this.stackTop;n>=0;n--)if(this.treeAdapter.getNamespaceURI(this.items[n])===je.HTML)switch(this.tagIDs[n]){case r:return!0;case B.TABLE:case B.HTML:return!1}return!0}hasTableBodyContextInTableScope(){for(let r=this.stackTop;r>=0;r--)if(this.treeAdapter.getNamespaceURI(this.items[r])===je.HTML)switch(this.tagIDs[r]){case B.TBODY:case B.THEAD:case B.TFOOT:return!0;case B.TABLE:case B.HTML:return!1}return!0}hasInSelectScope(r){for(let n=this.stackTop;n>=0;n--)if(this.treeAdapter.getNamespaceURI(this.items[n])===je.HTML)switch(this.tagIDs[n]){case r:return!0;case B.OPTION:case B.OPTGROUP:break;default:return!1}return!0}generateImpliedEndTags(){for(;aj.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;ij.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(r){for(;this.currentTagId!==r&&ij.has(this.currentTagId);)this.pop()}}const u8=3;var nl;(function(e){e[e.Marker=0]="Marker",e[e.Element=1]="Element"})(nl||(nl={}));const cj={type:nl.Marker};class pve{constructor(r){this.treeAdapter=r,this.entries=[],this.bookmark=null}_getNoahArkConditionCandidates(r,n){const o=[],a=n.length,i=this.treeAdapter.getTagName(r),s=this.treeAdapter.getNamespaceURI(r);for(let l=0;l[s.name,s.value]));let i=0;for(let s=0;sa.get(c.name)===c.value)&&(i+=1,i>=u8&&this.entries.splice(l.idx,1))}}insertMarker(){this.entries.unshift(cj)}pushElement(r,n){this._ensureNoahArkCondition(r),this.entries.unshift({type:nl.Element,element:r,token:n})}insertElementAfterBookmark(r,n){const o=this.entries.indexOf(this.bookmark);this.entries.splice(o,0,{type:nl.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(cj);r>=0?this.entries.splice(0,r+1):this.entries.length=0}getElementEntryInScopeWithTagName(r){const n=this.entries.find(o=>o.type===nl.Marker||this.treeAdapter.getTagName(o.element)===r);return n&&n.type===nl.Element?n:null}getElementEntry(r){return this.entries.find(n=>n.type===nl.Element&&n.element===r)}}const hu={createDocument(){return{nodeName:"#document",mode:ui.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};hu.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(hu.isTextNode(n)){n.value+=r;return}}hu.appendChild(e,hu.createTextNode(r))},insertTextBefore(e,r,n){const o=e.childNodes[e.childNodes.indexOf(n)-1];o&&hu.isTextNode(o)?o.value+=r:hu.insertBefore(e,hu.createTextNode(r),n)},adoptAttributes(e,r){const n=new Set(e.attrs.map(o=>o.name));for(let o=0;oe.startsWith(n))}function bve(e){return e.name===uj&&e.publicId===null&&(e.systemId===null||e.systemId===hve)}function vve(e){if(e.name!==uj)return ui.QUIRKS;const{systemId:r}=e;if(r&&r.toLowerCase()===fve)return ui.QUIRKS;let{publicId:n}=e;if(n!==null){if(n=n.toLowerCase(),gve.has(n))return ui.QUIRKS;let o=r===null?mve:dj;if(hj(n,o))return ui.QUIRKS;if(o=r===null?pj:yve,hj(n,o))return ui.LIMITED_QUIRKS}return ui.NO_QUIRKS}const fj={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},xve="definitionurl",wve="definitionURL",kve=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])),_ve=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:je.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:je.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:je.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:je.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:je.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:je.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:je.XLINK}],["xml:lang",{prefix:"xml",name:"lang",namespace:je.XML}],["xml:space",{prefix:"xml",name:"space",namespace:je.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:je.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:je.XMLNS}]]),Eve=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])),Sve=new Set([B.B,B.BIG,B.BLOCKQUOTE,B.BODY,B.BR,B.CENTER,B.CODE,B.DD,B.DIV,B.DL,B.DT,B.EM,B.EMBED,B.H1,B.H2,B.H3,B.H4,B.H5,B.H6,B.HEAD,B.HR,B.I,B.IMG,B.LI,B.LISTING,B.MENU,B.META,B.NOBR,B.OL,B.P,B.PRE,B.RUBY,B.S,B.SMALL,B.SPAN,B.STRONG,B.STRIKE,B.SUB,B.SUP,B.TABLE,B.TT,B.U,B.UL,B.VAR]);function Cve(e){const r=e.tagID;return r===B.FONT&&e.attrs.some(({name:o})=>o===Vd.COLOR||o===Vd.SIZE||o===Vd.FACE)||Sve.has(r)}function mj(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,s;this.openElements.stackTop===0&&this.fragmentContext?(i=this.fragmentContext,s=this.fragmentContextID):{current:i,currentTagId:s}=this.openElements,this._setContextModes(i,s)}}_setContextModes(r,n){const o=r===this.document||this.treeAdapter.getNamespaceURI(r)===je.HTML;this.currentNotInHTML=!o,this.tokenizer.inForeignNode=!o&&!this._isIntegrationPoint(n,r)}_switchToTextParsing(r,n){this._insertElement(r,je.HTML),this.tokenizer.state=n,this.originalInsertionMode=this.insertionMode,this.insertionMode=de.TEXT}switchToPlaintextParsing(){this.insertionMode=de.TEXT,this.originalInsertionMode=de.IN_BODY,this.tokenizer.state=kn.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)===ve.FORM){this.formElement=r;break}r=this.treeAdapter.getParentNode(r)}}_initTokenizerForFragmentParsing(){if(!(!this.fragmentContext||this.treeAdapter.getNamespaceURI(this.fragmentContext)!==je.HTML))switch(this.fragmentContextID){case B.TITLE:case B.TEXTAREA:{this.tokenizer.state=kn.RCDATA;break}case B.STYLE:case B.XMP:case B.IFRAME:case B.NOEMBED:case B.NOFRAMES:case B.NOSCRIPT:{this.tokenizer.state=kn.RAWTEXT;break}case B.SCRIPT:{this.tokenizer.state=kn.SCRIPT_DATA;break}case B.PLAINTEXT:{this.tokenizer.state=kn.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 s=this.treeAdapter.getChildNodes(this.document).find(l=>this.treeAdapter.isDocumentTypeNode(l));s&&this.treeAdapter.setNodeSourceCodeLocation(s,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,je.HTML,[]);this._attachElementToTree(o,null),this.openElements.push(o,n)}_insertTemplate(r){const n=this.treeAdapter.createElement(r.tagName,je.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(ve.HTML,je.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(r,null),this.treeAdapter.appendChild(this.openElements.current,r),this.openElements.push(r,B.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,s=a[i-1];if(this.treeAdapter.getNodeSourceCodeLocation(s)){const{endLine:c,endCol:u,endOffset:d}=r.location;this.treeAdapter.updateNodeSourceCodeLocation(s,{endLine:c,endCol:u,endOffset:d})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(s,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===Kt.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===B.SVG&&this.treeAdapter.getTagName(n)===ve.ANNOTATION_XML&&this.treeAdapter.getNamespaceURI(n)===je.MATHML?!1:this.tokenizer.inForeignNode||(r.tagID===B.MGLYPH||r.tagID===B.MALIGNMARK)&&!this._isIntegrationPoint(o,n,je.HTML)}_processToken(r){switch(r.type){case Kt.CHARACTER:{this.onCharacter(r);break}case Kt.NULL_CHARACTER:{this.onNullCharacter(r);break}case Kt.COMMENT:{this.onComment(r);break}case Kt.DOCTYPE:{this.onDoctype(r);break}case Kt.START_TAG:{this._processStartTag(r);break}case Kt.END_TAG:{this.onEndTag(r);break}case Kt.EOF:{this.onEof(r);break}case Kt.WHITESPACE_CHARACTER:{this.onWhitespaceCharacter(r);break}}}_isIntegrationPoint(r,n,o){const a=this.treeAdapter.getNamespaceURI(n),i=this.treeAdapter.getAttrList(n);return Nve(r,a,i,o)}_reconstructActiveFormattingElements(){const r=this.activeFormattingElements.entries.length;if(r){const n=this.activeFormattingElements.entries.findIndex(a=>a.type===nl.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=de.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(B.P),this.openElements.popUntilTagNamePopped(B.P)}_resetInsertionMode(){for(let r=this.openElements.stackTop;r>=0;r--)switch(r===0&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[r]){case B.TR:{this.insertionMode=de.IN_ROW;return}case B.TBODY:case B.THEAD:case B.TFOOT:{this.insertionMode=de.IN_TABLE_BODY;return}case B.CAPTION:{this.insertionMode=de.IN_CAPTION;return}case B.COLGROUP:{this.insertionMode=de.IN_COLUMN_GROUP;return}case B.TABLE:{this.insertionMode=de.IN_TABLE;return}case B.BODY:{this.insertionMode=de.IN_BODY;return}case B.FRAMESET:{this.insertionMode=de.IN_FRAMESET;return}case B.SELECT:{this._resetInsertionModeForSelect(r);return}case B.TEMPLATE:{this.insertionMode=this.tmplInsertionModeStack[0];return}case B.HTML:{this.insertionMode=this.headElement?de.AFTER_HEAD:de.BEFORE_HEAD;return}case B.TD:case B.TH:{if(r>0){this.insertionMode=de.IN_CELL;return}break}case B.HEAD:{if(r>0){this.insertionMode=de.IN_HEAD;return}break}}this.insertionMode=de.IN_BODY}_resetInsertionModeForSelect(r){if(r>0)for(let n=r-1;n>0;n--){const o=this.openElements.tagIDs[n];if(o===B.TEMPLATE)break;if(o===B.TABLE){this.insertionMode=de.IN_SELECT_IN_TABLE;return}}this.insertionMode=de.IN_SELECT}_isElementCausesFosterParenting(r){return yj.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 B.TEMPLATE:{if(this.treeAdapter.getNamespaceURI(n)===je.HTML)return{parent:this.treeAdapter.getTemplateContent(n),beforeElement:null};break}case B.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 eve[o].has(n)}onCharacter(r){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){u3e(this,r);return}switch(this.insertionMode){case de.INITIAL:{C1(this,r);break}case de.BEFORE_HTML:{T1(this,r);break}case de.BEFORE_HEAD:{A1(this,r);break}case de.IN_HEAD:{R1(this,r);break}case de.IN_HEAD_NO_SCRIPT:{N1(this,r);break}case de.AFTER_HEAD:{D1(this,r);break}case de.IN_BODY:case de.IN_CAPTION:case de.IN_CELL:case de.IN_TEMPLATE:{wj(this,r);break}case de.TEXT:case de.IN_SELECT:case de.IN_SELECT_IN_TABLE:{this._insertCharacters(r);break}case de.IN_TABLE:case de.IN_TABLE_BODY:case de.IN_ROW:{m8(this,r);break}case de.IN_TABLE_TEXT:{Rj(this,r);break}case de.IN_COLUMN_GROUP:{fx(this,r);break}case de.AFTER_BODY:{yx(this,r);break}case de.AFTER_AFTER_BODY:{bx(this,r);break}}}onNullCharacter(r){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){c3e(this,r);return}switch(this.insertionMode){case de.INITIAL:{C1(this,r);break}case de.BEFORE_HTML:{T1(this,r);break}case de.BEFORE_HEAD:{A1(this,r);break}case de.IN_HEAD:{R1(this,r);break}case de.IN_HEAD_NO_SCRIPT:{N1(this,r);break}case de.AFTER_HEAD:{D1(this,r);break}case de.TEXT:{this._insertCharacters(r);break}case de.IN_TABLE:case de.IN_TABLE_BODY:case de.IN_ROW:{m8(this,r);break}case de.IN_COLUMN_GROUP:{fx(this,r);break}case de.AFTER_BODY:{yx(this,r);break}case de.AFTER_AFTER_BODY:{bx(this,r);break}}}onComment(r){if(this.skipNextNewLine=!1,this.currentNotInHTML){h8(this,r);return}switch(this.insertionMode){case de.INITIAL:case de.BEFORE_HTML:case de.BEFORE_HEAD:case de.IN_HEAD:case de.IN_HEAD_NO_SCRIPT:case de.AFTER_HEAD:case de.IN_BODY:case de.IN_TABLE:case de.IN_CAPTION:case de.IN_COLUMN_GROUP:case de.IN_TABLE_BODY:case de.IN_ROW:case de.IN_CELL:case de.IN_SELECT:case de.IN_SELECT_IN_TABLE:case de.IN_TEMPLATE:case de.IN_FRAMESET:case de.AFTER_FRAMESET:{h8(this,r);break}case de.IN_TABLE_TEXT:{P1(this,r);break}case de.AFTER_BODY:{Fve(this,r);break}case de.AFTER_AFTER_BODY:case de.AFTER_AFTER_FRAMESET:{Hve(this,r);break}}}onDoctype(r){switch(this.skipNextNewLine=!1,this.insertionMode){case de.INITIAL:{Vve(this,r);break}case de.BEFORE_HEAD:case de.IN_HEAD:case de.IN_HEAD_NO_SCRIPT:case de.AFTER_HEAD:{this._err(r,Ae.misplacedDoctype);break}case de.IN_TABLE_TEXT:{P1(this,r);break}}}onStartTag(r){this.skipNextNewLine=!1,this.currentToken=r,this._processStartTag(r),r.selfClosing&&!r.ackSelfClosing&&this._err(r,Ae.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(r){this.shouldProcessStartTagTokenInForeignContent(r)?d3e(this,r):this._startTagOutsideForeignContent(r)}_startTagOutsideForeignContent(r){switch(this.insertionMode){case de.INITIAL:{C1(this,r);break}case de.BEFORE_HTML:{qve(this,r);break}case de.BEFORE_HEAD:{Wve(this,r);break}case de.IN_HEAD:{es(this,r);break}case de.IN_HEAD_NO_SCRIPT:{Xve(this,r);break}case de.AFTER_HEAD:{Zve(this,r);break}case de.IN_BODY:{Mo(this,r);break}case de.IN_TABLE:{ff(this,r);break}case de.IN_TABLE_TEXT:{P1(this,r);break}case de.IN_CAPTION:{Yxe(this,r);break}case de.IN_COLUMN_GROUP:{g8(this,r);break}case de.IN_TABLE_BODY:{mx(this,r);break}case de.IN_ROW:{gx(this,r);break}case de.IN_CELL:{Kxe(this,r);break}case de.IN_SELECT:{$j(this,r);break}case de.IN_SELECT_IN_TABLE:{Qxe(this,r);break}case de.IN_TEMPLATE:{e3e(this,r);break}case de.AFTER_BODY:{r3e(this,r);break}case de.IN_FRAMESET:{n3e(this,r);break}case de.AFTER_FRAMESET:{a3e(this,r);break}case de.AFTER_AFTER_BODY:{s3e(this,r);break}case de.AFTER_AFTER_FRAMESET:{l3e(this,r);break}}}onEndTag(r){this.skipNextNewLine=!1,this.currentToken=r,this.currentNotInHTML?p3e(this,r):this._endTagOutsideForeignContent(r)}_endTagOutsideForeignContent(r){switch(this.insertionMode){case de.INITIAL:{C1(this,r);break}case de.BEFORE_HTML:{Uve(this,r);break}case de.BEFORE_HEAD:{Yve(this,r);break}case de.IN_HEAD:{Gve(this,r);break}case de.IN_HEAD_NO_SCRIPT:{Kve(this,r);break}case de.AFTER_HEAD:{Qve(this,r);break}case de.IN_BODY:{hx(this,r);break}case de.TEXT:{Oxe(this,r);break}case de.IN_TABLE:{$1(this,r);break}case de.IN_TABLE_TEXT:{P1(this,r);break}case de.IN_CAPTION:{Gxe(this,r);break}case de.IN_COLUMN_GROUP:{Xxe(this,r);break}case de.IN_TABLE_BODY:{y8(this,r);break}case de.IN_ROW:{Dj(this,r);break}case de.IN_CELL:{Zxe(this,r);break}case de.IN_SELECT:{Mj(this,r);break}case de.IN_SELECT_IN_TABLE:{Jxe(this,r);break}case de.IN_TEMPLATE:{t3e(this,r);break}case de.AFTER_BODY:{zj(this,r);break}case de.IN_FRAMESET:{o3e(this,r);break}case de.AFTER_FRAMESET:{i3e(this,r);break}case de.AFTER_AFTER_BODY:{bx(this,r);break}}}onEof(r){switch(this.insertionMode){case de.INITIAL:{C1(this,r);break}case de.BEFORE_HTML:{T1(this,r);break}case de.BEFORE_HEAD:{A1(this,r);break}case de.IN_HEAD:{R1(this,r);break}case de.IN_HEAD_NO_SCRIPT:{N1(this,r);break}case de.AFTER_HEAD:{D1(this,r);break}case de.IN_BODY:case de.IN_TABLE:case de.IN_CAPTION:case de.IN_COLUMN_GROUP:case de.IN_TABLE_BODY:case de.IN_ROW:case de.IN_CELL:case de.IN_SELECT:case de.IN_SELECT_IN_TABLE:{Tj(this,r);break}case de.TEXT:{jxe(this,r);break}case de.IN_TABLE_TEXT:{P1(this,r);break}case de.IN_TEMPLATE:{Pj(this,r);break}case de.AFTER_BODY:case de.IN_FRAMESET:case de.AFTER_FRAMESET:case de.AFTER_AFTER_BODY:case de.AFTER_AFTER_FRAMESET:{f8(this,r);break}}}onWhitespaceCharacter(r){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,r.chars.charCodeAt(0)===se.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 de.IN_HEAD:case de.IN_HEAD_NO_SCRIPT:case de.AFTER_HEAD:case de.TEXT:case de.IN_COLUMN_GROUP:case de.IN_SELECT:case de.IN_SELECT_IN_TABLE:case de.IN_FRAMESET:case de.AFTER_FRAMESET:{this._insertCharacters(r);break}case de.IN_BODY:case de.IN_CAPTION:case de.IN_CELL:case de.IN_TEMPLATE:case de.AFTER_BODY:case de.AFTER_AFTER_BODY:case de.AFTER_AFTER_FRAMESET:{xj(this,r);break}case de.IN_TABLE:case de.IN_TABLE_BODY:case de.IN_ROW:{m8(this,r);break}case de.IN_TABLE_TEXT:{Aj(this,r);break}}}}function zve(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):Cj(e,r),n}function Ive(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 Ove(e,r,n){let o=r,a=e.openElements.getCommonAncestor(r);for(let i=0,s=a;s!==n;i++,s=a){a=e.openElements.getCommonAncestor(s);const l=e.activeFormattingElements.getElementEntry(s),c=l&&i>=Mve;!l||c?(c&&e.activeFormattingElements.removeEntry(l),e.openElements.remove(s)):(s=jve(e,l),o===r&&(e.activeFormattingElements.bookmark=l),e.treeAdapter.detachNode(o),e.treeAdapter.appendChild(s,o),o=s)}return o}function jve(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 Lve(e,r,n){const o=e.treeAdapter.getTagName(r),a=hf(o);if(e._isElementCausesFosterParenting(a))e._fosterParentElement(n);else{const i=e.treeAdapter.getNamespaceURI(r);a===B.TEMPLATE&&i===je.HTML&&(r=e.treeAdapter.getTemplateContent(r)),e.treeAdapter.appendChild(r,n)}}function Bve(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 p8(e,r){for(let n=0;n<$ve;n++){const o=zve(e,r);if(!o)break;const a=Ive(e,o);if(!a)break;e.activeFormattingElements.bookmark=o;const i=Ove(e,a,o.element),s=e.openElements.getCommonAncestor(o.element);e.treeAdapter.detachNode(i),s&&Lve(e,s,i),Bve(e,a,o)}}function h8(e,r){e._appendCommentNode(r,e.openElements.currentTmplContentOrNode)}function Fve(e,r){e._appendCommentNode(r,e.openElements.items[0])}function Hve(e,r){e._appendCommentNode(r,e.document)}function f8(e,r){if(e.stopped=!0,r.location){const n=e.fragmentContext?0:2;for(let o=e.openElements.stackTop;o>=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],s=e.treeAdapter.getNodeSourceCodeLocation(i);s&&!s.endTag&&e._setEndLocation(i,r)}}}}function Vve(e,r){e._setDocumentType(r);const n=r.forceQuirks?ui.QUIRKS:vve(r);bve(r)||e._err(r,Ae.nonConformingDoctype),e.treeAdapter.setDocumentMode(e.document,n),e.insertionMode=de.BEFORE_HTML}function C1(e,r){e._err(r,Ae.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,ui.QUIRKS),e.insertionMode=de.BEFORE_HTML,e._processToken(r)}function qve(e,r){r.tagID===B.HTML?(e._insertElement(r,je.HTML),e.insertionMode=de.BEFORE_HEAD):T1(e,r)}function Uve(e,r){const n=r.tagID;(n===B.HTML||n===B.HEAD||n===B.BODY||n===B.BR)&&T1(e,r)}function T1(e,r){e._insertFakeRootElement(),e.insertionMode=de.BEFORE_HEAD,e._processToken(r)}function Wve(e,r){switch(r.tagID){case B.HTML:{Mo(e,r);break}case B.HEAD:{e._insertElement(r,je.HTML),e.headElement=e.openElements.current,e.insertionMode=de.IN_HEAD;break}default:A1(e,r)}}function Yve(e,r){const n=r.tagID;n===B.HEAD||n===B.BODY||n===B.HTML||n===B.BR?A1(e,r):e._err(r,Ae.endTagWithoutMatchingOpenElement)}function A1(e,r){e._insertFakeElement(ve.HEAD,B.HEAD),e.headElement=e.openElements.current,e.insertionMode=de.IN_HEAD,e._processToken(r)}function es(e,r){switch(r.tagID){case B.HTML:{Mo(e,r);break}case B.BASE:case B.BASEFONT:case B.BGSOUND:case B.LINK:case B.META:{e._appendElement(r,je.HTML),r.ackSelfClosing=!0;break}case B.TITLE:{e._switchToTextParsing(r,kn.RCDATA);break}case B.NOSCRIPT:{e.options.scriptingEnabled?e._switchToTextParsing(r,kn.RAWTEXT):(e._insertElement(r,je.HTML),e.insertionMode=de.IN_HEAD_NO_SCRIPT);break}case B.NOFRAMES:case B.STYLE:{e._switchToTextParsing(r,kn.RAWTEXT);break}case B.SCRIPT:{e._switchToTextParsing(r,kn.SCRIPT_DATA);break}case B.TEMPLATE:{e._insertTemplate(r),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=de.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(de.IN_TEMPLATE);break}case B.HEAD:{e._err(r,Ae.misplacedStartTagForHeadElement);break}default:R1(e,r)}}function Gve(e,r){switch(r.tagID){case B.HEAD:{e.openElements.pop(),e.insertionMode=de.AFTER_HEAD;break}case B.BODY:case B.BR:case B.HTML:{R1(e,r);break}case B.TEMPLATE:{qd(e,r);break}default:e._err(r,Ae.endTagWithoutMatchingOpenElement)}}function qd(e,r){e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagId!==B.TEMPLATE&&e._err(r,Ae.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(B.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode()):e._err(r,Ae.endTagWithoutMatchingOpenElement)}function R1(e,r){e.openElements.pop(),e.insertionMode=de.AFTER_HEAD,e._processToken(r)}function Xve(e,r){switch(r.tagID){case B.HTML:{Mo(e,r);break}case B.BASEFONT:case B.BGSOUND:case B.HEAD:case B.LINK:case B.META:case B.NOFRAMES:case B.STYLE:{es(e,r);break}case B.NOSCRIPT:{e._err(r,Ae.nestedNoscriptInHead);break}default:N1(e,r)}}function Kve(e,r){switch(r.tagID){case B.NOSCRIPT:{e.openElements.pop(),e.insertionMode=de.IN_HEAD;break}case B.BR:{N1(e,r);break}default:e._err(r,Ae.endTagWithoutMatchingOpenElement)}}function N1(e,r){const n=r.type===Kt.EOF?Ae.openElementsLeftAfterEof:Ae.disallowedContentInNoscriptInHead;e._err(r,n),e.openElements.pop(),e.insertionMode=de.IN_HEAD,e._processToken(r)}function Zve(e,r){switch(r.tagID){case B.HTML:{Mo(e,r);break}case B.BODY:{e._insertElement(r,je.HTML),e.framesetOk=!1,e.insertionMode=de.IN_BODY;break}case B.FRAMESET:{e._insertElement(r,je.HTML),e.insertionMode=de.IN_FRAMESET;break}case B.BASE:case B.BASEFONT:case B.BGSOUND:case B.LINK:case B.META:case B.NOFRAMES:case B.SCRIPT:case B.STYLE:case B.TEMPLATE:case B.TITLE:{e._err(r,Ae.abandonedHeadElementChild),e.openElements.push(e.headElement,B.HEAD),es(e,r),e.openElements.remove(e.headElement);break}case B.HEAD:{e._err(r,Ae.misplacedStartTagForHeadElement);break}default:D1(e,r)}}function Qve(e,r){switch(r.tagID){case B.BODY:case B.HTML:case B.BR:{D1(e,r);break}case B.TEMPLATE:{qd(e,r);break}default:e._err(r,Ae.endTagWithoutMatchingOpenElement)}}function D1(e,r){e._insertFakeElement(ve.BODY,B.BODY),e.insertionMode=de.IN_BODY,px(e,r)}function px(e,r){switch(r.type){case Kt.CHARACTER:{wj(e,r);break}case Kt.WHITESPACE_CHARACTER:{xj(e,r);break}case Kt.COMMENT:{h8(e,r);break}case Kt.START_TAG:{Mo(e,r);break}case Kt.END_TAG:{hx(e,r);break}case Kt.EOF:{Tj(e,r);break}}}function xj(e,r){e._reconstructActiveFormattingElements(),e._insertCharacters(r)}function wj(e,r){e._reconstructActiveFormattingElements(),e._insertCharacters(r),e.framesetOk=!1}function Jve(e,r){e.openElements.tmplCount===0&&e.treeAdapter.adoptAttributes(e.openElements.items[0],r.attrs)}function exe(e,r){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e.openElements.tmplCount===0&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,r.attrs))}function txe(e,r){const n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(r,je.HTML),e.insertionMode=de.IN_FRAMESET)}function rxe(e,r){e.openElements.hasInButtonScope(B.P)&&e._closePElement(),e._insertElement(r,je.HTML)}function nxe(e,r){e.openElements.hasInButtonScope(B.P)&&e._closePElement(),c8.has(e.openElements.currentTagId)&&e.openElements.pop(),e._insertElement(r,je.HTML)}function oxe(e,r){e.openElements.hasInButtonScope(B.P)&&e._closePElement(),e._insertElement(r,je.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function axe(e,r){const n=e.openElements.tmplCount>0;(!e.formElement||n)&&(e.openElements.hasInButtonScope(B.P)&&e._closePElement(),e._insertElement(r,je.HTML),n||(e.formElement=e.openElements.current))}function ixe(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===B.LI&&a===B.LI||(n===B.DD||n===B.DT)&&(a===B.DD||a===B.DT)){e.openElements.generateImpliedEndTagsWithExclusion(a),e.openElements.popUntilTagNamePopped(a);break}if(a!==B.ADDRESS&&a!==B.DIV&&a!==B.P&&e._isSpecialElement(e.openElements.items[o],a))break}e.openElements.hasInButtonScope(B.P)&&e._closePElement(),e._insertElement(r,je.HTML)}function sxe(e,r){e.openElements.hasInButtonScope(B.P)&&e._closePElement(),e._insertElement(r,je.HTML),e.tokenizer.state=kn.PLAINTEXT}function lxe(e,r){e.openElements.hasInScope(B.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(B.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(r,je.HTML),e.framesetOk=!1}function cxe(e,r){const n=e.activeFormattingElements.getElementEntryInScopeWithTagName(ve.A);n&&(p8(e,r),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(r,je.HTML),e.activeFormattingElements.pushElement(e.openElements.current,r)}function uxe(e,r){e._reconstructActiveFormattingElements(),e._insertElement(r,je.HTML),e.activeFormattingElements.pushElement(e.openElements.current,r)}function dxe(e,r){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(B.NOBR)&&(p8(e,r),e._reconstructActiveFormattingElements()),e._insertElement(r,je.HTML),e.activeFormattingElements.pushElement(e.openElements.current,r)}function pxe(e,r){e._reconstructActiveFormattingElements(),e._insertElement(r,je.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function hxe(e,r){e.treeAdapter.getDocumentMode(e.document)!==ui.QUIRKS&&e.openElements.hasInButtonScope(B.P)&&e._closePElement(),e._insertElement(r,je.HTML),e.framesetOk=!1,e.insertionMode=de.IN_TABLE}function kj(e,r){e._reconstructActiveFormattingElements(),e._appendElement(r,je.HTML),e.framesetOk=!1,r.ackSelfClosing=!0}function _j(e){const r=QO(e,Vd.TYPE);return r!=null&&r.toLowerCase()===Dve}function fxe(e,r){e._reconstructActiveFormattingElements(),e._appendElement(r,je.HTML),_j(r)||(e.framesetOk=!1),r.ackSelfClosing=!0}function mxe(e,r){e._appendElement(r,je.HTML),r.ackSelfClosing=!0}function gxe(e,r){e.openElements.hasInButtonScope(B.P)&&e._closePElement(),e._appendElement(r,je.HTML),e.framesetOk=!1,r.ackSelfClosing=!0}function yxe(e,r){r.tagName=ve.IMG,r.tagID=B.IMG,kj(e,r)}function bxe(e,r){e._insertElement(r,je.HTML),e.skipNextNewLine=!0,e.tokenizer.state=kn.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=de.TEXT}function vxe(e,r){e.openElements.hasInButtonScope(B.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(r,kn.RAWTEXT)}function xxe(e,r){e.framesetOk=!1,e._switchToTextParsing(r,kn.RAWTEXT)}function Ej(e,r){e._switchToTextParsing(r,kn.RAWTEXT)}function wxe(e,r){e._reconstructActiveFormattingElements(),e._insertElement(r,je.HTML),e.framesetOk=!1,e.insertionMode=e.insertionMode===de.IN_TABLE||e.insertionMode===de.IN_CAPTION||e.insertionMode===de.IN_TABLE_BODY||e.insertionMode===de.IN_ROW||e.insertionMode===de.IN_CELL?de.IN_SELECT_IN_TABLE:de.IN_SELECT}function kxe(e,r){e.openElements.currentTagId===B.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(r,je.HTML)}function _xe(e,r){e.openElements.hasInScope(B.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(r,je.HTML)}function Exe(e,r){e.openElements.hasInScope(B.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(B.RTC),e._insertElement(r,je.HTML)}function Sxe(e,r){e._reconstructActiveFormattingElements(),mj(r),d8(r),r.selfClosing?e._appendElement(r,je.MATHML):e._insertElement(r,je.MATHML),r.ackSelfClosing=!0}function Cxe(e,r){e._reconstructActiveFormattingElements(),gj(r),d8(r),r.selfClosing?e._appendElement(r,je.SVG):e._insertElement(r,je.SVG),r.ackSelfClosing=!0}function Sj(e,r){e._reconstructActiveFormattingElements(),e._insertElement(r,je.HTML)}function Mo(e,r){switch(r.tagID){case B.I:case B.S:case B.B:case B.U:case B.EM:case B.TT:case B.BIG:case B.CODE:case B.FONT:case B.SMALL:case B.STRIKE:case B.STRONG:{uxe(e,r);break}case B.A:{cxe(e,r);break}case B.H1:case B.H2:case B.H3:case B.H4:case B.H5:case B.H6:{nxe(e,r);break}case B.P:case B.DL:case B.OL:case B.UL:case B.DIV:case B.DIR:case B.NAV:case B.MAIN:case B.MENU:case B.ASIDE:case B.CENTER:case B.FIGURE:case B.FOOTER:case B.HEADER:case B.HGROUP:case B.DIALOG:case B.DETAILS:case B.ADDRESS:case B.ARTICLE:case B.SEARCH:case B.SECTION:case B.SUMMARY:case B.FIELDSET:case B.BLOCKQUOTE:case B.FIGCAPTION:{rxe(e,r);break}case B.LI:case B.DD:case B.DT:{ixe(e,r);break}case B.BR:case B.IMG:case B.WBR:case B.AREA:case B.EMBED:case B.KEYGEN:{kj(e,r);break}case B.HR:{gxe(e,r);break}case B.RB:case B.RTC:{_xe(e,r);break}case B.RT:case B.RP:{Exe(e,r);break}case B.PRE:case B.LISTING:{oxe(e,r);break}case B.XMP:{vxe(e,r);break}case B.SVG:{Cxe(e,r);break}case B.HTML:{Jve(e,r);break}case B.BASE:case B.LINK:case B.META:case B.STYLE:case B.TITLE:case B.SCRIPT:case B.BGSOUND:case B.BASEFONT:case B.TEMPLATE:{es(e,r);break}case B.BODY:{exe(e,r);break}case B.FORM:{axe(e,r);break}case B.NOBR:{dxe(e,r);break}case B.MATH:{Sxe(e,r);break}case B.TABLE:{hxe(e,r);break}case B.INPUT:{fxe(e,r);break}case B.PARAM:case B.TRACK:case B.SOURCE:{mxe(e,r);break}case B.IMAGE:{yxe(e,r);break}case B.BUTTON:{lxe(e,r);break}case B.APPLET:case B.OBJECT:case B.MARQUEE:{pxe(e,r);break}case B.IFRAME:{xxe(e,r);break}case B.SELECT:{wxe(e,r);break}case B.OPTION:case B.OPTGROUP:{kxe(e,r);break}case B.NOEMBED:case B.NOFRAMES:{Ej(e,r);break}case B.FRAMESET:{txe(e,r);break}case B.TEXTAREA:{bxe(e,r);break}case B.NOSCRIPT:{e.options.scriptingEnabled?Ej(e,r):Sj(e,r);break}case B.PLAINTEXT:{sxe(e,r);break}case B.COL:case B.TH:case B.TD:case B.TR:case B.HEAD:case B.FRAME:case B.TBODY:case B.TFOOT:case B.THEAD:case B.CAPTION:case B.COLGROUP:break;default:Sj(e,r)}}function Txe(e,r){if(e.openElements.hasInScope(B.BODY)&&(e.insertionMode=de.AFTER_BODY,e.options.sourceCodeLocationInfo)){const n=e.openElements.tryPeekProperlyNestedBodyElement();n&&e._setEndLocation(n,r)}}function Axe(e,r){e.openElements.hasInScope(B.BODY)&&(e.insertionMode=de.AFTER_BODY,zj(e,r))}function Rxe(e,r){const n=r.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}function Nxe(e){const r=e.openElements.tmplCount>0,{formElement:n}=e;r||(e.formElement=null),(n||r)&&e.openElements.hasInScope(B.FORM)&&(e.openElements.generateImpliedEndTags(),r?e.openElements.popUntilTagNamePopped(B.FORM):n&&e.openElements.remove(n))}function Dxe(e){e.openElements.hasInButtonScope(B.P)||e._insertFakeElement(ve.P,B.P),e._closePElement()}function $xe(e){e.openElements.hasInListItemScope(B.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(B.LI),e.openElements.popUntilTagNamePopped(B.LI))}function Mxe(e,r){const n=r.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}function Pxe(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}function zxe(e,r){const n=r.tagID;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}function Ixe(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(ve.BR,B.BR),e.openElements.pop(),e.framesetOk=!1}function Cj(e,r){const n=r.tagName,o=r.tagID;for(let a=e.openElements.stackTop;a>0;a--){const i=e.openElements.items[a],s=e.openElements.tagIDs[a];if(o===s&&(o!==B.UNKNOWN||e.treeAdapter.getTagName(i)===n)){e.openElements.generateImpliedEndTagsWithExclusion(o),e.openElements.stackTop>=a&&e.openElements.shortenToLength(a);break}if(e._isSpecialElement(i,s))break}}function hx(e,r){switch(r.tagID){case B.A:case B.B:case B.I:case B.S:case B.U:case B.EM:case B.TT:case B.BIG:case B.CODE:case B.FONT:case B.NOBR:case B.SMALL:case B.STRIKE:case B.STRONG:{p8(e,r);break}case B.P:{Dxe(e);break}case B.DL:case B.UL:case B.OL:case B.DIR:case B.DIV:case B.NAV:case B.PRE:case B.MAIN:case B.MENU:case B.ASIDE:case B.BUTTON:case B.CENTER:case B.FIGURE:case B.FOOTER:case B.HEADER:case B.HGROUP:case B.DIALOG:case B.ADDRESS:case B.ARTICLE:case B.DETAILS:case B.SEARCH:case B.SECTION:case B.SUMMARY:case B.LISTING:case B.FIELDSET:case B.BLOCKQUOTE:case B.FIGCAPTION:{Rxe(e,r);break}case B.LI:{$xe(e);break}case B.DD:case B.DT:{Mxe(e,r);break}case B.H1:case B.H2:case B.H3:case B.H4:case B.H5:case B.H6:{Pxe(e);break}case B.BR:{Ixe(e);break}case B.BODY:{Txe(e,r);break}case B.HTML:{Axe(e,r);break}case B.FORM:{Nxe(e);break}case B.APPLET:case B.OBJECT:case B.MARQUEE:{zxe(e,r);break}case B.TEMPLATE:{qd(e,r);break}default:Cj(e,r)}}function Tj(e,r){e.tmplInsertionModeStack.length>0?Pj(e,r):f8(e,r)}function Oxe(e,r){var n;r.tagID===B.SCRIPT&&((n=e.scriptHandler)===null||n===void 0||n.call(e,e.openElements.current)),e.openElements.pop(),e.insertionMode=e.originalInsertionMode}function jxe(e,r){e._err(r,Ae.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e.onEof(r)}function m8(e,r){if(yj.has(e.openElements.currentTagId))switch(e.pendingCharacterTokens.length=0,e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=de.IN_TABLE_TEXT,r.type){case Kt.CHARACTER:{Rj(e,r);break}case Kt.WHITESPACE_CHARACTER:{Aj(e,r);break}}else M1(e,r)}function Lxe(e,r){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(r,je.HTML),e.insertionMode=de.IN_CAPTION}function Bxe(e,r){e.openElements.clearBackToTableContext(),e._insertElement(r,je.HTML),e.insertionMode=de.IN_COLUMN_GROUP}function Fxe(e,r){e.openElements.clearBackToTableContext(),e._insertFakeElement(ve.COLGROUP,B.COLGROUP),e.insertionMode=de.IN_COLUMN_GROUP,g8(e,r)}function Hxe(e,r){e.openElements.clearBackToTableContext(),e._insertElement(r,je.HTML),e.insertionMode=de.IN_TABLE_BODY}function Vxe(e,r){e.openElements.clearBackToTableContext(),e._insertFakeElement(ve.TBODY,B.TBODY),e.insertionMode=de.IN_TABLE_BODY,mx(e,r)}function qxe(e,r){e.openElements.hasInTableScope(B.TABLE)&&(e.openElements.popUntilTagNamePopped(B.TABLE),e._resetInsertionMode(),e._processStartTag(r))}function Uxe(e,r){_j(r)?e._appendElement(r,je.HTML):M1(e,r),r.ackSelfClosing=!0}function Wxe(e,r){!e.formElement&&e.openElements.tmplCount===0&&(e._insertElement(r,je.HTML),e.formElement=e.openElements.current,e.openElements.pop())}function ff(e,r){switch(r.tagID){case B.TD:case B.TH:case B.TR:{Vxe(e,r);break}case B.STYLE:case B.SCRIPT:case B.TEMPLATE:{es(e,r);break}case B.COL:{Fxe(e,r);break}case B.FORM:{Wxe(e,r);break}case B.TABLE:{qxe(e,r);break}case B.TBODY:case B.TFOOT:case B.THEAD:{Hxe(e,r);break}case B.INPUT:{Uxe(e,r);break}case B.CAPTION:{Lxe(e,r);break}case B.COLGROUP:{Bxe(e,r);break}default:M1(e,r)}}function $1(e,r){switch(r.tagID){case B.TABLE:{e.openElements.hasInTableScope(B.TABLE)&&(e.openElements.popUntilTagNamePopped(B.TABLE),e._resetInsertionMode());break}case B.TEMPLATE:{qd(e,r);break}case B.BODY:case B.CAPTION:case B.COL:case B.COLGROUP:case B.HTML:case B.TBODY:case B.TD:case B.TFOOT:case B.TH:case B.THEAD:case B.TR:break;default:M1(e,r)}}function M1(e,r){const n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,px(e,r),e.fosterParentingEnabled=n}function Aj(e,r){e.pendingCharacterTokens.push(r)}function Rj(e,r){e.pendingCharacterTokens.push(r),e.hasNonWhitespacePendingCharacterToken=!0}function P1(e,r){let n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n0&&e.openElements.currentTagId===B.OPTION&&e.openElements.tagIDs[e.openElements.stackTop-1]===B.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagId===B.OPTGROUP&&e.openElements.pop();break}case B.OPTION:{e.openElements.currentTagId===B.OPTION&&e.openElements.pop();break}case B.SELECT:{e.openElements.hasInSelectScope(B.SELECT)&&(e.openElements.popUntilTagNamePopped(B.SELECT),e._resetInsertionMode());break}case B.TEMPLATE:{qd(e,r);break}}}function Qxe(e,r){const n=r.tagID;n===B.CAPTION||n===B.TABLE||n===B.TBODY||n===B.TFOOT||n===B.THEAD||n===B.TR||n===B.TD||n===B.TH?(e.openElements.popUntilTagNamePopped(B.SELECT),e._resetInsertionMode(),e._processStartTag(r)):$j(e,r)}function Jxe(e,r){const n=r.tagID;n===B.CAPTION||n===B.TABLE||n===B.TBODY||n===B.TFOOT||n===B.THEAD||n===B.TR||n===B.TD||n===B.TH?e.openElements.hasInTableScope(n)&&(e.openElements.popUntilTagNamePopped(B.SELECT),e._resetInsertionMode(),e.onEndTag(r)):Mj(e,r)}function e3e(e,r){switch(r.tagID){case B.BASE:case B.BASEFONT:case B.BGSOUND:case B.LINK:case B.META:case B.NOFRAMES:case B.SCRIPT:case B.STYLE:case B.TEMPLATE:case B.TITLE:{es(e,r);break}case B.CAPTION:case B.COLGROUP:case B.TBODY:case B.TFOOT:case B.THEAD:{e.tmplInsertionModeStack[0]=de.IN_TABLE,e.insertionMode=de.IN_TABLE,ff(e,r);break}case B.COL:{e.tmplInsertionModeStack[0]=de.IN_COLUMN_GROUP,e.insertionMode=de.IN_COLUMN_GROUP,g8(e,r);break}case B.TR:{e.tmplInsertionModeStack[0]=de.IN_TABLE_BODY,e.insertionMode=de.IN_TABLE_BODY,mx(e,r);break}case B.TD:case B.TH:{e.tmplInsertionModeStack[0]=de.IN_ROW,e.insertionMode=de.IN_ROW,gx(e,r);break}default:e.tmplInsertionModeStack[0]=de.IN_BODY,e.insertionMode=de.IN_BODY,Mo(e,r)}}function t3e(e,r){r.tagID===B.TEMPLATE&&qd(e,r)}function Pj(e,r){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(B.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode(),e.onEof(r)):f8(e,r)}function r3e(e,r){r.tagID===B.HTML?Mo(e,r):yx(e,r)}function zj(e,r){var n;if(r.tagID===B.HTML){if(e.fragmentContext||(e.insertionMode=de.AFTER_AFTER_BODY),e.options.sourceCodeLocationInfo&&e.openElements.tagIDs[0]===B.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 yx(e,r)}function yx(e,r){e.insertionMode=de.IN_BODY,px(e,r)}function n3e(e,r){switch(r.tagID){case B.HTML:{Mo(e,r);break}case B.FRAMESET:{e._insertElement(r,je.HTML);break}case B.FRAME:{e._appendElement(r,je.HTML),r.ackSelfClosing=!0;break}case B.NOFRAMES:{es(e,r);break}}}function o3e(e,r){r.tagID===B.FRAMESET&&!e.openElements.isRootHtmlElementCurrent()&&(e.openElements.pop(),!e.fragmentContext&&e.openElements.currentTagId!==B.FRAMESET&&(e.insertionMode=de.AFTER_FRAMESET))}function a3e(e,r){switch(r.tagID){case B.HTML:{Mo(e,r);break}case B.NOFRAMES:{es(e,r);break}}}function i3e(e,r){r.tagID===B.HTML&&(e.insertionMode=de.AFTER_AFTER_FRAMESET)}function s3e(e,r){r.tagID===B.HTML?Mo(e,r):bx(e,r)}function bx(e,r){e.insertionMode=de.IN_BODY,px(e,r)}function l3e(e,r){switch(r.tagID){case B.HTML:{Mo(e,r);break}case B.NOFRAMES:{es(e,r);break}}}function c3e(e,r){r.chars=Xr,e._insertCharacters(r)}function u3e(e,r){e._insertCharacters(r),e.framesetOk=!1}function Ij(e){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==je.HTML&&!e._isIntegrationPoint(e.openElements.currentTagId,e.openElements.current);)e.openElements.pop()}function d3e(e,r){if(Cve(r))Ij(e),e._startTagOutsideForeignContent(r);else{const n=e._getAdjustedCurrentElement(),o=e.treeAdapter.getNamespaceURI(n);o===je.MATHML?mj(r):o===je.SVG&&(Tve(r),gj(r)),d8(r),r.selfClosing?e._appendElement(r,o):e._insertElement(r,o),r.ackSelfClosing=!0}}function p3e(e,r){if(r.tagID===B.P||r.tagID===B.BR){Ij(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)===je.HTML){e._endTagOutsideForeignContent(r);break}const a=e.treeAdapter.getTagName(o);if(a.toLowerCase()===r.tagName){r.tagName=a,e.openElements.shortenToLength(n);break}}}ve.AREA,ve.BASE,ve.BASEFONT,ve.BGSOUND,ve.BR,ve.COL,ve.EMBED,ve.FRAME,ve.HR,ve.IMG,ve.INPUT,ve.KEYGEN,ve.LINK,ve.META,ve.PARAM,ve.SOURCE,ve.TRACK,ve.WBR;const vx=Oj("end"),rc=Oj("start");function Oj(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 jj(e){const r=rc(e),n=vx(e);if(r&&n)return{start:r,end:n}}const xx=(function(e){if(e==null)return g3e;if(typeof e=="function")return wx(e);if(typeof e=="object")return Array.isArray(e)?h3e(e):f3e(e);if(typeof e=="string")return m3e(e);throw new Error("Expected function, string, or object as test")});function h3e(e){const r=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let g=Lj,b,x,w;if((!r||i(c,u,d[d.length-1]||void 0))&&(g=x3e(n(c,d)),g[0]===b8))return g;if("children"in c&&c.children){const k=c;if(k.children&&g[0]!==v3e)for(x=(o?k.children.length:-1)+s,w=d.concat(k);x>-1&&x])/gi,k3e=new Set(["mdxFlowExpression","mdxJsxFlowElement","mdxJsxTextElement","mdxTextExpression","mdxjsEsm"]),Fj={sourceCodeLocationInfo:!0,scriptingEnabled:!1};function Hj(e,r){const n=$3e(e),o=a8("type",{handlers:{root:_3e,element:E3e,text:S3e,comment:qj,doctype:C3e,raw:A3e},unknown:R3e}),a={parser:n?new vj(Fj):vj.getFragmentParser(void 0,Fj),handle(l){o(l,a)},stitches:!1,options:r||{}};o(e,a),mf(a,rc());const i=n?a.parser.document:a.parser.getFragment(),s=gbe(i,{file:a.options.file});return a.stitches&&v8(s,"comment",function(l,c,u){const d=l;if(d.value.stitch&&u&&c!==void 0){const h=u.children;return h[c]=d.value.stitch,c}}),s.type==="root"&&s.children.length===1&&s.children[0].type===e.type?s.children[0]:s}function Vj(e,r){let n=-1;if(e)for(;++n4&&(r.parser.tokenizer.state=0);const n={type:Kt.CHARACTER,chars:e.value,location:z1(e)};mf(r,rc(e)),r.parser.currentToken=n,r.parser._processToken(r.parser.currentToken)}function C3e(e,r){const n={type:Kt.DOCTYPE,name:"html",forceQuirks:!1,publicId:"",systemId:"",location:z1(e)};mf(r,rc(e)),r.parser.currentToken=n,r.parser._processToken(r.parser.currentToken)}function T3e(e,r){r.stitches=!0;const n=M3e(e);if("children"in e&&"children"in n){const o=Hj({type:"root",children:e.children},r.options);n.children=o.children}qj({type:"comment",value:{stitch:n}},r)}function qj(e,r){const n=e.value,o={type:Kt.COMMENT,data:n,location:z1(e)};mf(r,rc(e)),r.parser.currentToken=o,r.parser._processToken(r.parser.currentToken)}function A3e(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,Uj(r,rc(e)),r.parser.tokenizer.write(r.options.tagfilter?e.value.replace(w3e,"<$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 R3e(e,r){const n=e;if(r.options.passThrough&&r.options.passThrough.includes(n.type))T3e(n,r);else{let o="";throw k3e.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 mf(e,r){Uj(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=kn.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 Uj(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 N3e(e,r){const n=e.tagName.toLowerCase();if(r.parser.tokenizer.state===kn.PLAINTEXT)return;mf(r,rc(e));const o=r.parser.openElements.current;let a="namespaceURI"in o?o.namespaceURI:Fd.html;a===Fd.html&&n==="svg"&&(a=Fd.svg);const i=Dbe({...e,children:[]},{space:a===Fd.svg?"svg":"html"}),s={type:Kt.START_TAG,tagName:n,tagID:hf(n),selfClosing:!1,ackSelfClosing:!1,attrs:"attrs"in i?i.attrs:[],location:z1(e)};r.parser.currentToken=s,r.parser._processToken(r.parser.currentToken),r.parser.tokenizer.lastStartTagName=n}function D3e(e,r){const n=e.tagName.toLowerCase();if(!r.parser.tokenizer.inForeignNode&&GO.includes(n)||r.parser.tokenizer.state===kn.PLAINTEXT)return;mf(r,vx(e));const o={type:Kt.END_TAG,tagName:n,tagID:hf(n),selfClosing:!1,ackSelfClosing:!1,attrs:[],location:z1(e)};r.parser.currentToken=o,r.parser._processToken(r.parser.currentToken),n===r.parser.tokenizer.lastStartTagName&&(r.parser.tokenizer.state===kn.RCDATA||r.parser.tokenizer.state===kn.RAWTEXT||r.parser.tokenizer.state===kn.SCRIPT_DATA)&&(r.parser.tokenizer.state=kn.DATA)}function $3e(e){const r=e.type==="root"?e.children[0]:e;return!!(r&&(r.type==="doctype"||r.type==="element"&&r.tagName.toLowerCase()==="html"))}function z1(e){const r=rc(e)||{line:void 0,column:void 0,offset:void 0},n=vx(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 M3e(e){return"children"in e?Ld({...e,children:[]}):Ld(e)}function P3e(e){return function(r,n){return Hj(r,{...e,file:n})}}const Ud=["ariaDescribedBy","ariaLabel","ariaLabelledBy"],Wj={ancestors:{tbody:["table"],td:["table"],th:["table"],thead:["table"],tfoot:["table"],tr:["table"]},attributes:{a:[...Ud,"dataFootnoteBackref","dataFootnoteRef",["className","data-footnote-backref"],"href"],blockquote:["cite"],code:[["className",/^language-./]],del:["cite"],div:["itemScope","itemType"],dl:[...Ud],h2:[["className","sr-only"]],img:[...Ud,"longDesc","src"],input:[["disabled",!0],["type","checkbox"]],ins:["cite"],li:[["className","task-list-item"]],ol:[...Ud,["className","contains-task-list"]],q:["cite"],section:["dataFootnotes",["className","footnotes"]],source:["srcSet"],summary:[...Ud],table:[...Ud],ul:[...Ud,["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"]},fu={}.hasOwnProperty;function z3e(e,r){let n={type:"root",children:[]};const o={schema:r?{...Wj,...r}:Wj,stack:[]},a=Yj(o,e);return a&&(Array.isArray(a)?a.length===1?n=a[0]:n.children=a:n=a),n}function Yj(e,r){if(r&&typeof r=="object"){const n=r;switch(typeof n.type=="string"?n.type:""){case"comment":return I3e(e,n);case"doctype":return O3e(e,n);case"element":return j3e(e,n);case"root":return L3e(e,n);case"text":return B3e(e,n)}}}function I3e(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 I1(i,r),i}}function O3e(e,r){if(e.schema.allowDoctypes){const n={type:"doctype"};return I1(n,r),n}}function j3e(e,r){const n=typeof r.tagName=="string"?r.tagName:"";e.stack.push(n);const o=Gj(e,r.children),a=F3e(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&&fu.call(e.schema.ancestors,n))){const l=e.schema.ancestors[n];let c=-1;for(i=!1;++c1){let a=!1,i=0;for(;++i-1&&i>c||s>-1&&i>s||l>-1&&i>l)return!0;let u=-1;for(;++u4&&r.slice(0,4).toLowerCase()==="data")return n}function q3e(e){return function(r){return z3e(r,e)}}const U3e=/["&'<>`]/g,W3e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Y3e=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,G3e=/[|\\{}()[\]^$+*?.]/g,Qj=new WeakMap;function X3e(e,r){if(e=e.replace(r.subset?K3e(r.subset):U3e,o),r.subset||r.escapeOnly)return e;return e.replace(W3e,n).replace(Y3e,o);function n(a,i,s){return r.format((a.charCodeAt(0)-55296)*1024+a.charCodeAt(1)-56320+65536,s.charCodeAt(i+2),r)}function o(a,i,s){return r.format(a.charCodeAt(0),s.charCodeAt(i+1),r)}}function K3e(e){let r=Qj.get(e);return r||(r=Z3e(e),Qj.set(e,r)),r}function Z3e(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:"€"},n2e=["cent","copy","divide","gt","lt","not","para","times"],Jj={}.hasOwnProperty,w8={};let kx;for(kx in x8)Jj.call(x8,kx)&&(w8[x8[kx]]=kx);const o2e=/[^\dA-Za-z]/;function a2e(e,r,n,o){const a=String.fromCharCode(e);if(Jj.call(w8,a)){const i=w8[a],s="&"+i;return n&&r2e.includes(i)&&!n2e.includes(i)&&(!o||r&&r!==61&&o2e.test(String.fromCharCode(r)))?s:s+";"}return""}function i2e(e,r,n){let o=J3e(e,r,n.omitOptionalSemicolons),a;if((n.useNamedReferences||n.useShortestReferences)&&(a=a2e(e,r,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!a)&&n.useShortestReferences){const i=t2e(e,r,n.omitOptionalSemicolons);i.length|^->||--!>|"],c2e=["<",">"];function u2e(e,r,n,o){return o.settings.bogusComments?"":"";function a(i){return gf(i,Object.assign({},o.settings.characterReferences,{subset:c2e}))}}function d2e(e,r,n,o){return""}function _x(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 p2e=/[ \t\n\f\r]/g;function k8(e){return typeof e=="object"?e.type==="text"?eL(e.value):!1:eL(e)}function eL(e){return e.replace(p2e,"")===""}const Gn=rL(1),tL=rL(-1),h2e=[];function rL(e){return r;function r(n,o,a){const i=n?n.children:h2e;let s=(o||0)+e,l=i[s];if(!a)for(;l&&k8(l);)s+=e,l=i[s];return l}}const f2e={}.hasOwnProperty;function nL(e){return r;function r(n,o,a){return f2e.call(e,n.tagName)&&e[n.tagName](n,o,a)}}const _8=nL({body:g2e,caption:E8,colgroup:E8,dd:x2e,dt:v2e,head:E8,html:m2e,li:b2e,optgroup:w2e,option:k2e,p:y2e,rp:oL,rt:oL,tbody:E2e,td:aL,tfoot:S2e,th:aL,thead:_2e,tr:C2e});function E8(e,r,n){const o=Gn(n,r,!0);return!o||o.type!=="comment"&&!(o.type==="text"&&k8(o.value.charAt(0)))}function m2e(e,r,n){const o=Gn(n,r);return!o||o.type!=="comment"}function g2e(e,r,n){const o=Gn(n,r);return!o||o.type!=="comment"}function y2e(e,r,n){const o=Gn(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 b2e(e,r,n){const o=Gn(n,r);return!o||o.type==="element"&&o.tagName==="li"}function v2e(e,r,n){const o=Gn(n,r);return!!(o&&o.type==="element"&&(o.tagName==="dt"||o.tagName==="dd"))}function x2e(e,r,n){const o=Gn(n,r);return!o||o.type==="element"&&(o.tagName==="dt"||o.tagName==="dd")}function oL(e,r,n){const o=Gn(n,r);return!o||o.type==="element"&&(o.tagName==="rp"||o.tagName==="rt")}function w2e(e,r,n){const o=Gn(n,r);return!o||o.type==="element"&&o.tagName==="optgroup"}function k2e(e,r,n){const o=Gn(n,r);return!o||o.type==="element"&&(o.tagName==="option"||o.tagName==="optgroup")}function _2e(e,r,n){const o=Gn(n,r);return!!(o&&o.type==="element"&&(o.tagName==="tbody"||o.tagName==="tfoot"))}function E2e(e,r,n){const o=Gn(n,r);return!o||o.type==="element"&&(o.tagName==="tbody"||o.tagName==="tfoot")}function S2e(e,r,n){return!Gn(n,r)}function C2e(e,r,n){const o=Gn(n,r);return!o||o.type==="element"&&o.tagName==="tr"}function aL(e,r,n){const o=Gn(n,r);return!o||o.type==="element"&&(o.tagName==="td"||o.tagName==="th")}const T2e=nL({body:N2e,colgroup:D2e,head:R2e,html:A2e,tbody:$2e});function A2e(e){const r=Gn(e,-1);return!r||r.type!=="comment"}function R2e(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 N2e(e){const r=Gn(e,-1,!0);return!r||r.type!=="comment"&&!(r.type==="text"&&k8(r.value.charAt(0)))&&!(r.type==="element"&&(r.tagName==="meta"||r.tagName==="link"||r.tagName==="script"||r.tagName==="style"||r.tagName==="template"))}function D2e(e,r,n){const o=tL(n,r),a=Gn(e,-1,!0);return n&&o&&o.type==="element"&&o.tagName==="colgroup"&&_8(o,n.children.indexOf(o),n)?!1:!!(a&&a.type==="element"&&a.tagName==="col")}function $2e(e,r,n){const o=tL(n,r),a=Gn(e,-1);return n&&o&&o.type==="element"&&(o.tagName==="thead"||o.tagName==="tbody")&&_8(o,n.children.indexOf(o),n)?!1:!!(a&&a.type==="element"&&a.tagName==="tr")}const Ex={name:[[` +function Lme(e,r){for(var n=0;no[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function LM(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var X6={exports:{}},Xm={};var FM;function Fme(){if(FM)return Xm;FM=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function n(o,i,a){var l=null;if(a!==void 0&&(l=""+a),i.key!==void 0&&(l=""+i.key),"key"in i){a={};for(var s in i)s!=="key"&&(a[s]=i[s])}else a=i;return i=a.ref,{$$typeof:e,type:o,key:l,ref:i!==void 0?i:null,props:a}}return Xm.Fragment=r,Xm.jsx=n,Xm.jsxs=n,Xm}var VM;function Vme(){return VM||(VM=1,X6.exports=Fme()),X6.exports}var y=Vme(),K6={exports:{}},$t={};var qM;function qme(){if(qM)return $t;qM=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),l=Symbol.for("react.context"),s=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),u=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),f=Symbol.iterator;function m(Y){return Y===null||typeof Y!="object"?null:(Y=f&&Y[f]||Y["@@iterator"],typeof Y=="function"?Y:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,x={};function k(Y,K,O){this.props=Y,this.context=K,this.refs=x,this.updater=O||v}k.prototype.isReactComponent={},k.prototype.setState=function(Y,K){if(typeof Y!="object"&&typeof Y!="function"&&Y!=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,Y,K,"setState")},k.prototype.forceUpdate=function(Y){this.updater.enqueueForceUpdate(this,Y,"forceUpdate")};function C(){}C.prototype=k.prototype;function _(Y,K,O){this.props=Y,this.context=K,this.refs=x,this.updater=O||v}var $=_.prototype=new C;$.constructor=_,w($,k.prototype),$.isPureReactComponent=!0;var R=Array.isArray;function T(){}var A={H:null,A:null,T:null,S:null},z=Object.prototype.hasOwnProperty;function j(Y,K,O){var W=O.ref;return{$$typeof:e,type:Y,key:K,ref:W!==void 0?W:null,props:O}}function I(Y,K){return j(Y.type,K,Y.props)}function N(Y){return typeof Y=="object"&&Y!==null&&Y.$$typeof===e}function L(Y){var K={"=":"=0",":":"=2"};return"$"+Y.replace(/[=:]/g,function(O){return K[O]})}var H=/\/+/g;function P(Y,K){return typeof Y=="object"&&Y!==null&&Y.key!=null?L(""+Y.key):K.toString(36)}function V(Y){switch(Y.status){case"fulfilled":return Y.value;case"rejected":throw Y.reason;default:switch(typeof Y.status=="string"?Y.then(T,T):(Y.status="pending",Y.then(function(K){Y.status==="pending"&&(Y.status="fulfilled",Y.value=K)},function(K){Y.status==="pending"&&(Y.status="rejected",Y.reason=K)})),Y.status){case"fulfilled":return Y.value;case"rejected":throw Y.reason}}throw Y}function B(Y,K,O,W,Z){var Q=typeof Y;(Q==="undefined"||Q==="boolean")&&(Y=null);var ie=!1;if(Y===null)ie=!0;else switch(Q){case"bigint":case"string":case"number":ie=!0;break;case"object":switch(Y.$$typeof){case e:case r:ie=!0;break;case u:return ie=Y._init,B(ie(Y._payload),K,O,W,Z)}}if(ie)return Z=Z(Y),ie=W===""?"."+P(Y,0):W,R(Z)?(O="",ie!=null&&(O=ie.replace(H,"$&/")+"/"),B(Z,K,O,"",function(ue){return ue})):Z!=null&&(N(Z)&&(Z=I(Z,O+(Z.key==null||Y&&Y.key===Z.key?"":(""+Z.key).replace(H,"$&/")+"/")+ie)),K.push(Z)),1;ie=0;var te=W===""?".":W+":";if(R(Y))for(var re=0;re"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(r){console.error(r)}}return e(),Q6.exports=Hme(),Q6.exports}var Va=GM();const YM=LM(Va);function ar(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]}function J6(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 e_(e,r,n=".",o){if(!J6(r))return e_(e,{},n);const i=Object.assign({},r);for(const a in e){if(a==="__proto__"||a==="constructor")continue;const l=e[a];l!=null&&(Array.isArray(l)&&Array.isArray(i[a])?i[a]=[...l,...i[a]]:J6(l)&&J6(i[a])?i[a]=e_(l,i[a],(n?`${n}.`:"")+a.toString()):i[a]=l)}return i}function Ume(e){return(...r)=>r.reduce((n,o)=>e_(n,o,""),{})}const XM=Ume();function Wme(e,r,n){let o=i=>e(i,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function ao(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return Wme(e,r,n);throw Error("Wrong number of arguments")}function Ll(...e){return ao(Gme,e)}const Gme=(e,r)=>e.length>=r;function gt(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 He(e,r){if(!e)throw new Error(r??"Invariant failed")}function Qo(e){throw new Error(`NonExhaustive value: ${e}`)}function Yme(...e){return ao(Xme,e)}function Xme(e,r){let n={};for(let[o,i]of e.entries())n[i]=r(i,o,e);return n}function yb(...e){return ao(Km,e)}function Km(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 Kme(e,r);if(e instanceof Map)return Zme(e,r);if(e instanceof Set)return Qme(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)||!Km(o,r[n]))return!1;return!0}function Kme(e,r){if(e.length!==r.length)return!1;for(let[n,o]of e.entries())if(!Km(o,r[n]))return!1;return!0}function Zme(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e.entries())if(!r.has(n)||!Km(o,r.get(n)))return!1;return!0}function Qme(e,r){if(e.size!==r.size)return!1;let n=[...r];for(let o of e){let i=!1;for(let[a,l]of n.entries())if(Km(o,l)){i=!0,n.splice(a,1);break}if(!i)return!1}return!0}const{min:Jme,max:e1e}=Math,Au=(e,r=0,n=1)=>Jme(e1e(r,e),n),t_=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]=Au(e[r],0,255)):r===3&&(e[r]=Au(e[r],0,1));return e},KM={};for(let e of["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"])KM[`[object ${e}]`]=e.toLowerCase();function Ft(e){return KM[Object.prototype.toString.call(e)]||"object"}const jt=(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),Rh=e=>{if(e.length<2)return null;const r=e.length-1;return Ft(e[r])=="string"?e[r].toLowerCase():null},{PI:vb,min:ZM,max:QM}=Math,Ki=e=>Math.round(e*100)/100,r_=e=>Math.round(e*100)/100,As=vb*2,n_=vb/3,t1e=vb/180,r1e=180/vb;function JM(e){return[...e.slice(0,3).reverse(),...e.slice(3)]}const Rt={format:{},autodetect:[]};let Me=class{constructor(...r){const n=this;if(Ft(r[0])==="object"&&r[0].constructor&&r[0].constructor===this.constructor)return r[0];let o=Rh(r),i=!1;if(!o){i=!0,Rt.sorted||(Rt.autodetect=Rt.autodetect.sort((a,l)=>l.p-a.p),Rt.sorted=!0);for(let a of Rt.autodetect)if(o=a.test(...r),o)break}if(Rt.format[o]){const a=Rt.format[o].apply(null,i?r:r.slice(0,-1));n._rgb=t_(a)}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 n1e="3.2.0",zt=(...e)=>new Me(...e);zt.version=n1e;const zh={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"},o1e=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,i1e=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,eN=e=>{if(e.match(o1e)){(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,i=r&255;return[n,o,i,1]}if(e.match(i1e)){(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,i=r>>8&255,a=Math.round((r&255)/255*100)/100;return[n,o,i,a]}throw new Error(`unknown hex color: ${e}`)},{round:bb}=Math,tN=(...e)=>{let[r,n,o,i]=jt(e,"rgba"),a=Rh(e)||"auto";i===void 0&&(i=1),a==="auto"&&(a=i<1?"rgba":"rgb"),r=bb(r),n=bb(n),o=bb(o);let s="000000"+(r<<16|n<<8|o).toString(16);s=s.substr(s.length-6);let c="0"+bb(i*255).toString(16);switch(c=c.substr(c.length-2),a.toLowerCase()){case"rgba":return`#${s}${c}`;case"argb":return`#${c}${s}`;default:return`#${s}`}};Me.prototype.name=function(){const e=tN(this._rgb,"rgb");for(let r of Object.keys(zh))if(zh[r]===e)return r.toLowerCase();return e},Rt.format.named=e=>{if(e=e.toLowerCase(),zh[e])return eN(zh[e]);throw new Error("unknown color name: "+e)},Rt.autodetect.push({p:5,test:(e,...r)=>{if(!r.length&&Ft(e)==="string"&&zh[e.toLowerCase()])return"named"}}),Me.prototype.alpha=function(e,r=!1){return e!==void 0&&Ft(e)==="number"?r?(this._rgb[3]=e,this):new Me([this._rgb[0],this._rgb[1],this._rgb[2],e],"rgb"):this._rgb[3]},Me.prototype.clipped=function(){return this._rgb._clipped||!1};const Fl={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}},a1e=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 Ds(e){const r=a1e.get(String(e).toLowerCase());if(!r)throw new Error("unknown Lab illuminant "+e);Fl.labWhitePoint=e,Fl.Xn=r[0],Fl.Zn=r[1]}function Zm(){return Fl.labWhitePoint}const o_=(...e)=>{e=jt(e,"lab");const[r,n,o]=e,[i,a,l]=l1e(r,n,o),[s,c,d]=rN(i,a,l);return[s,c,d,e.length>3?e[3]:1]},l1e=(e,r,n)=>{const{kE:o,kK:i,kKE:a,Xn:l,Yn:s,Zn:c}=Fl,d=(e+16)/116,u=.002*r+d,p=d-.005*n,f=u*u*u,m=p*p*p,v=f>o?f:(116*u-16)/i,w=e>a?Math.pow((e+16)/116,3):e/i,x=m>o?m:(116*p-16)/i,k=v*l,C=w*s,_=x*c;return[k,C,_]},i_=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},rN=(e,r,n)=>{const{MtxAdaptMa:o,MtxAdaptMaI:i,MtxXYZ2RGB:a,RefWhiteRGB:l,Xn:s,Yn:c,Zn:d}=Fl,u=s*o.m00+c*o.m10+d*o.m20,p=s*o.m01+c*o.m11+d*o.m21,f=s*o.m02+c*o.m12+d*o.m22,m=l.X*o.m00+l.Y*o.m10+l.Z*o.m20,v=l.X*o.m01+l.Y*o.m11+l.Z*o.m21,w=l.X*o.m02+l.Y*o.m12+l.Z*o.m22,x=(e*o.m00+r*o.m10+n*o.m20)*(m/u),k=(e*o.m01+r*o.m11+n*o.m21)*(v/p),C=(e*o.m02+r*o.m12+n*o.m22)*(w/f),_=x*i.m00+k*i.m10+C*i.m20,$=x*i.m01+k*i.m11+C*i.m21,R=x*i.m02+k*i.m12+C*i.m22,T=i_(_*a.m00+$*a.m10+R*a.m20),A=i_(_*a.m01+$*a.m11+R*a.m21),z=i_(_*a.m02+$*a.m12+R*a.m22);return[T*255,A*255,z*255]},a_=(...e)=>{const[r,n,o,...i]=jt(e,"rgb"),[a,l,s]=nN(r,n,o),[c,d,u]=s1e(a,l,s);return[c,d,u,...i.length>0&&i[0]<1?[i[0]]:[]]};function s1e(e,r,n){const{Xn:o,Yn:i,Zn:a,kE:l,kK:s}=Fl,c=e/o,d=r/i,u=n/a,p=c>l?Math.pow(c,1/3):(s*c+16)/116,f=d>l?Math.pow(d,1/3):(s*d+16)/116,m=u>l?Math.pow(u,1/3):(s*u+16)/116;return[116*f-16,500*(p-f),200*(f-m)]}function l_(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 nN=(e,r,n)=>{e=l_(e/255),r=l_(r/255),n=l_(n/255);const{MtxRGB2XYZ:o,MtxAdaptMa:i,MtxAdaptMaI:a,Xn:l,Yn:s,Zn:c,As:d,Bs:u,Cs:p}=Fl;let f=e*o.m00+r*o.m10+n*o.m20,m=e*o.m01+r*o.m11+n*o.m21,v=e*o.m02+r*o.m12+n*o.m22;const w=l*i.m00+s*i.m10+c*i.m20,x=l*i.m01+s*i.m11+c*i.m21,k=l*i.m02+s*i.m12+c*i.m22;let C=f*i.m00+m*i.m10+v*i.m20,_=f*i.m01+m*i.m11+v*i.m21,$=f*i.m02+m*i.m12+v*i.m22;return C*=w/d,_*=x/u,$*=k/p,f=C*a.m00+_*a.m10+$*a.m20,m=C*a.m01+_*a.m11+$*a.m21,v=C*a.m02+_*a.m12+$*a.m22,[f,m,v]};Me.prototype.lab=function(){return a_(this._rgb)},Object.assign(zt,{lab:(...e)=>new Me(...e,"lab"),getLabWhitePoint:Zm,setLabWhitePoint:Ds}),Rt.format.lab=o_,Rt.autodetect.push({p:2,test:(...e)=>{if(e=jt(e,"lab"),Ft(e)==="array"&&e.length===3)return"lab"}}),Me.prototype.darken=function(e=1){const r=this,n=r.lab();return n[0]-=Fl.Kn*e,new Me(n,"lab").alpha(r.alpha(),!0)},Me.prototype.brighten=function(e=1){return this.darken(-e)},Me.prototype.darker=Me.prototype.darken,Me.prototype.brighter=Me.prototype.brighten,Me.prototype.get=function(e){const[r,n]=e.split("."),o=this[r]();if(n){const i=r.indexOf(n)-(r.substr(0,2)==="ok"?2:0);if(i>-1)return o[i];throw new Error(`unknown channel ${n} in mode ${r}`)}else return o};const{pow:c1e}=Math,d1e=1e-7,u1e=20;Me.prototype.luminance=function(e,r="rgb"){if(e!==void 0&&Ft(e)==="number"){if(e===0)return new Me([0,0,0,this._rgb[3]],"rgb");if(e===1)return new Me([255,255,255,this._rgb[3]],"rgb");let n=this.luminance(),o=u1e;const i=(l,s)=>{const c=l.interpolate(s,.5,r),d=c.luminance();return Math.abs(e-d)e?i(l,c):i(c,s)},a=(n>e?i(new Me([0,0,0]),this):i(this,new Me([255,255,255]))).rgb();return new Me([...a,this._rgb[3]])}return p1e(...this._rgb.slice(0,3))};const p1e=(e,r,n)=>(e=s_(e),r=s_(r),n=s_(n),.2126*e+.7152*r+.0722*n),s_=e=>(e/=255,e<=.03928?e/12.92:c1e((e+.055)/1.055,2.4)),bo={},Th=(e,r,n=.5,...o)=>{let i=o[0]||"lrgb";if(!bo[i]&&!o.length&&(i=Object.keys(bo)[0]),!bo[i])throw new Error(`interpolation mode ${i} is not defined`);return Ft(e)!=="object"&&(e=new Me(e)),Ft(r)!=="object"&&(r=new Me(r)),bo[i](e,r,n).alpha(e.alpha()+n*(r.alpha()-e.alpha()))};Me.prototype.mix=Me.prototype.interpolate=function(e,r=.5,...n){return Th(this,e,r,...n)},Me.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 Me([r[0]*n,r[1]*n,r[2]*n,n],"rgb")};const{sin:h1e,cos:f1e}=Math,oN=(...e)=>{let[r,n,o]=jt(e,"lch");return isNaN(o)&&(o=0),o=o*t1e,[r,f1e(o)*n,h1e(o)*n]},c_=(...e)=>{e=jt(e,"lch");const[r,n,o]=e,[i,a,l]=oN(r,n,o),[s,c,d]=o_(i,a,l);return[s,c,d,e.length>3?e[3]:1]},g1e=(...e)=>{const r=JM(jt(e,"hcl"));return c_(...r)},{sqrt:m1e,atan2:y1e,round:v1e}=Math,iN=(...e)=>{const[r,n,o]=jt(e,"lab"),i=m1e(n*n+o*o);let a=(y1e(o,n)*r1e+360)%360;return v1e(i*1e4)===0&&(a=Number.NaN),[r,i,a]},d_=(...e)=>{const[r,n,o,...i]=jt(e,"rgb"),[a,l,s]=a_(r,n,o),[c,d,u]=iN(a,l,s);return[c,d,u,...i.length>0&&i[0]<1?[i[0]]:[]]};Me.prototype.lch=function(){return d_(this._rgb)},Me.prototype.hcl=function(){return JM(d_(this._rgb))},Object.assign(zt,{lch:(...e)=>new Me(...e,"lch"),hcl:(...e)=>new Me(...e,"hcl")}),Rt.format.lch=c_,Rt.format.hcl=g1e,["lch","hcl"].forEach(e=>Rt.autodetect.push({p:2,test:(...r)=>{if(r=jt(r,e),Ft(r)==="array"&&r.length===3)return e}})),Me.prototype.saturate=function(e=1){const r=this,n=r.lch();return n[1]+=Fl.Kn*e,n[1]<0&&(n[1]=0),new Me(n,"lch").alpha(r.alpha(),!0)},Me.prototype.desaturate=function(e=1){return this.saturate(-e)},Me.prototype.set=function(e,r,n=!1){const[o,i]=e.split("."),a=this[o]();if(i){const l=o.indexOf(i)-(o.substr(0,2)==="ok"?2:0);if(l>-1){if(Ft(r)=="string")switch(r.charAt(0)){case"+":a[l]+=+r;break;case"-":a[l]+=+r;break;case"*":a[l]*=+r.substr(1);break;case"/":a[l]/=+r.substr(1);break;default:a[l]=+r}else if(Ft(r)==="number")a[l]=r;else throw new Error("unsupported value for Color.set");const s=new Me(a,o);return n?(this._rgb=s._rgb,this):s}throw new Error(`unknown channel ${i} in mode ${o}`)}else return a},Me.prototype.tint=function(e=.5,...r){return Th(this,"white",e,...r)},Me.prototype.shade=function(e=.5,...r){return Th(this,"black",e,...r)};const b1e=(e,r,n)=>{const o=e._rgb,i=r._rgb;return new Me(o[0]+n*(i[0]-o[0]),o[1]+n*(i[1]-o[1]),o[2]+n*(i[2]-o[2]),"rgb")};bo.rgb=b1e;const{sqrt:u_,pow:jh}=Math,x1e=(e,r,n)=>{const[o,i,a]=e._rgb,[l,s,c]=r._rgb;return new Me(u_(jh(o,2)*(1-n)+jh(l,2)*n),u_(jh(i,2)*(1-n)+jh(s,2)*n),u_(jh(a,2)*(1-n)+jh(c,2)*n),"rgb")};bo.lrgb=x1e;const w1e=(e,r,n)=>{const o=e.lab(),i=r.lab();return new Me(o[0]+n*(i[0]-o[0]),o[1]+n*(i[1]-o[1]),o[2]+n*(i[2]-o[2]),"lab")};bo.lab=w1e;const Ah=(e,r,n,o)=>{let i,a;o==="hsl"?(i=e.hsl(),a=r.hsl()):o==="hsv"?(i=e.hsv(),a=r.hsv()):o==="hcg"?(i=e.hcg(),a=r.hcg()):o==="hsi"?(i=e.hsi(),a=r.hsi()):o==="lch"||o==="hcl"?(o="hcl",i=e.hcl(),a=r.hcl()):o==="oklch"&&(i=e.oklch().reverse(),a=r.oklch().reverse());let l,s,c,d,u,p;(o.substr(0,1)==="h"||o==="oklch")&&([l,c,u]=i,[s,d,p]=a);let f,m,v,w;return!isNaN(l)&&!isNaN(s)?(s>l&&s-l>180?w=s-(l+360):s180?w=s+360-l:w=s-l,m=l+n*w):isNaN(l)?isNaN(s)?m=Number.NaN:(m=s,(u==1||u==0)&&o!="hsv"&&(f=d)):(m=l,(p==1||p==0)&&o!="hsv"&&(f=c)),f===void 0&&(f=c+n*(d-c)),v=u+n*(p-u),o==="oklch"?new Me([v,f,m],o):new Me([m,f,v],o)},aN=(e,r,n)=>Ah(e,r,n,"lch");bo.lch=aN,bo.hcl=aN;const k1e=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)},_1e=(...e)=>{const[r,n,o]=jt(e,"rgb");return(r<<16)+(n<<8)+o};Me.prototype.num=function(){return _1e(this._rgb)},Object.assign(zt,{num:(...e)=>new Me(...e,"num")}),Rt.format.num=k1e,Rt.autodetect.push({p:5,test:(...e)=>{if(e.length===1&&Ft(e[0])==="number"&&e[0]>=0&&e[0]<=16777215)return"num"}});const S1e=(e,r,n)=>{const o=e.num(),i=r.num();return new Me(o+n*(i-o),"num")};bo.num=S1e;const{floor:E1e}=Math,C1e=(...e)=>{e=jt(e,"hcg");let[r,n,o]=e,i,a,l;o=o*255;const s=n*255;if(n===0)i=a=l=o;else{r===360&&(r=0),r>360&&(r-=360),r<0&&(r+=360),r/=60;const c=E1e(r),d=r-c,u=o*(1-n),p=u+s*(1-d),f=u+s*d,m=u+s;switch(c){case 0:[i,a,l]=[m,f,u];break;case 1:[i,a,l]=[p,m,u];break;case 2:[i,a,l]=[u,m,f];break;case 3:[i,a,l]=[u,p,m];break;case 4:[i,a,l]=[f,u,m];break;case 5:[i,a,l]=[m,u,p];break}}return[i,a,l,e.length>3?e[3]:1]},$1e=(...e)=>{const[r,n,o]=jt(e,"rgb"),i=ZM(r,n,o),a=QM(r,n,o),l=a-i,s=l*100/255,c=i/(255-l)*100;let d;return l===0?d=Number.NaN:(r===a&&(d=(n-o)/l),n===a&&(d=2+(o-r)/l),o===a&&(d=4+(r-n)/l),d*=60,d<0&&(d+=360)),[d,s,c]};Me.prototype.hcg=function(){return $1e(this._rgb)};const R1e=(...e)=>new Me(...e,"hcg");zt.hcg=R1e,Rt.format.hcg=C1e,Rt.autodetect.push({p:1,test:(...e)=>{if(e=jt(e,"hcg"),Ft(e)==="array"&&e.length===3)return"hcg"}});const z1e=(e,r,n)=>Ah(e,r,n,"hcg");bo.hcg=z1e;const{cos:Dh}=Math,T1e=(...e)=>{e=jt(e,"hsi");let[r,n,o]=e,i,a,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,i=(1+n*Dh(As*r)/Dh(n_-As*r))/3,a=1-(l+i)):r<2/3?(r-=1/3,i=(1-n)/3,a=(1+n*Dh(As*r)/Dh(n_-As*r))/3,l=1-(i+a)):(r-=2/3,a=(1-n)/3,l=(1+n*Dh(As*r)/Dh(n_-As*r))/3,i=1-(a+l)),i=Au(o*i*3),a=Au(o*a*3),l=Au(o*l*3),[i*255,a*255,l*255,e.length>3?e[3]:1]},{min:j1e,sqrt:A1e,acos:D1e}=Math,P1e=(...e)=>{let[r,n,o]=jt(e,"rgb");r/=255,n/=255,o/=255;let i;const a=j1e(r,n,o),l=(r+n+o)/3,s=l>0?1-a/l:0;return s===0?i=NaN:(i=(r-n+(r-o))/2,i/=A1e((r-n)*(r-n)+(r-o)*(n-o)),i=D1e(i),o>n&&(i=As-i),i/=As),[i*360,s,l]};Me.prototype.hsi=function(){return P1e(this._rgb)};const M1e=(...e)=>new Me(...e,"hsi");zt.hsi=M1e,Rt.format.hsi=T1e,Rt.autodetect.push({p:2,test:(...e)=>{if(e=jt(e,"hsi"),Ft(e)==="array"&&e.length===3)return"hsi"}});const N1e=(e,r,n)=>Ah(e,r,n,"hsi");bo.hsi=N1e;const p_=(...e)=>{e=jt(e,"hsl");const[r,n,o]=e;let i,a,l;if(n===0)i=a=l=o*255;else{const s=[0,0,0],c=[0,0,0],d=o<.5?o*(1+n):o+n-o*n,u=2*o-d,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]=u+(d-u)*6*s[f]:2*s[f]<1?c[f]=d:3*s[f]<2?c[f]=u+(d-u)*(2/3-s[f])*6:c[f]=u;[i,a,l]=[c[0]*255,c[1]*255,c[2]*255]}return e.length>3?[i,a,l,e[3]]:[i,a,l,1]},lN=(...e)=>{e=jt(e,"rgba");let[r,n,o]=e;r/=255,n/=255,o/=255;const i=ZM(r,n,o),a=QM(r,n,o),l=(a+i)/2;let s,c;return a===i?(s=0,c=Number.NaN):s=l<.5?(a-i)/(a+i):(a-i)/(2-a-i),r==a?c=(n-o)/(a-i):n==a?c=2+(o-r)/(a-i):o==a&&(c=4+(r-n)/(a-i)),c*=60,c<0&&(c+=360),e.length>3&&e[3]!==void 0?[c,s,l,e[3]]:[c,s,l]};Me.prototype.hsl=function(){return lN(this._rgb)};const B1e=(...e)=>new Me(...e,"hsl");zt.hsl=B1e,Rt.format.hsl=p_,Rt.autodetect.push({p:2,test:(...e)=>{if(e=jt(e,"hsl"),Ft(e)==="array"&&e.length===3)return"hsl"}});const I1e=(e,r,n)=>Ah(e,r,n,"hsl");bo.hsl=I1e;const{floor:O1e}=Math,L1e=(...e)=>{e=jt(e,"hsv");let[r,n,o]=e,i,a,l;if(o*=255,n===0)i=a=l=o;else{r===360&&(r=0),r>360&&(r-=360),r<0&&(r+=360),r/=60;const s=O1e(r),c=r-s,d=o*(1-n),u=o*(1-n*c),p=o*(1-n*(1-c));switch(s){case 0:[i,a,l]=[o,p,d];break;case 1:[i,a,l]=[u,o,d];break;case 2:[i,a,l]=[d,o,p];break;case 3:[i,a,l]=[d,u,o];break;case 4:[i,a,l]=[p,d,o];break;case 5:[i,a,l]=[o,d,u];break}}return[i,a,l,e.length>3?e[3]:1]},{min:F1e,max:V1e}=Math,q1e=(...e)=>{e=jt(e,"rgb");let[r,n,o]=e;const i=F1e(r,n,o),a=V1e(r,n,o),l=a-i;let s,c,d;return d=a/255,a===0?(s=Number.NaN,c=0):(c=l/a,r===a&&(s=(n-o)/l),n===a&&(s=2+(o-r)/l),o===a&&(s=4+(r-n)/l),s*=60,s<0&&(s+=360)),[s,c,d]};Me.prototype.hsv=function(){return q1e(this._rgb)};const H1e=(...e)=>new Me(...e,"hsv");zt.hsv=H1e,Rt.format.hsv=L1e,Rt.autodetect.push({p:2,test:(...e)=>{if(e=jt(e,"hsv"),Ft(e)==="array"&&e.length===3)return"hsv"}});const U1e=(e,r,n)=>Ah(e,r,n,"hsv");bo.hsv=U1e;function xb(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,i=r[0].map((l,s)=>r.map(c=>c[s])),a=e.map(l=>i.map(s=>Array.isArray(l)?l.reduce((c,d,u)=>c+d*(s[u]||0),0):s.reduce((c,d)=>c+d*l,0)));return n===1&&(a=a[0]),o===1?a.map(l=>l[0]):a}const h_=(...e)=>{e=jt(e,"lab");const[r,n,o,...i]=e,[a,l,s]=W1e([r,n,o]),[c,d,u]=rN(a,l,s);return[c,d,u,...i.length>0&&i[0]<1?[i[0]]:[]]};function W1e(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=xb(n,e);return xb(r,o.map(i=>i**3))}const f_=(...e)=>{const[r,n,o,...i]=jt(e,"rgb"),a=nN(r,n,o);return[...G1e(a),...i.length>0&&i[0]<1?[i[0]]:[]]};function G1e(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=xb(r,e);return xb(n,o.map(i=>Math.cbrt(i)))}Me.prototype.oklab=function(){return f_(this._rgb)},Object.assign(zt,{oklab:(...e)=>new Me(...e,"oklab")}),Rt.format.oklab=h_,Rt.autodetect.push({p:2,test:(...e)=>{if(e=jt(e,"oklab"),Ft(e)==="array"&&e.length===3)return"oklab"}});const Y1e=(e,r,n)=>{const o=e.oklab(),i=r.oklab();return new Me(o[0]+n*(i[0]-o[0]),o[1]+n*(i[1]-o[1]),o[2]+n*(i[2]-o[2]),"oklab")};bo.oklab=Y1e;const X1e=(e,r,n)=>Ah(e,r,n,"oklch");bo.oklch=X1e;const{pow:g_,sqrt:m_,PI:y_,cos:sN,sin:cN,atan2:K1e}=Math,Z1e=(e,r="lrgb",n=null)=>{const o=e.length;n||(n=Array.from(new Array(o)).map(()=>1));const i=o/n.reduce(function(p,f){return p+f});if(n.forEach((p,f)=>{n[f]*=i}),e=e.map(p=>new Me(p)),r==="lrgb")return Q1e(e,n);const a=e.shift(),l=a.get(r),s=[];let c=0,d=0;for(let p=0;p{const m=p.get(r);u+=p.alpha()*n[f+1];for(let v=0;v=360;)f-=360;l[p]=f}else l[p]=l[p]/s[p];return u/=o,new Me(l,r).alpha(u>.99999?1:u,!0)},Q1e=(e,r)=>{const n=e.length,o=[0,0,0,0];for(let i=0;i.9999999&&(o[3]=1),new Me(t_(o))},{pow:J1e}=Math;function wb(e){let r="rgb",n=zt("#ccc"),o=0,i=[0,1],a=[0,1],l=[],s=[0,0],c=!1,d=[],u=!1,p=0,f=1,m=!1,v={},w=!0,x=1;const k=function(z){if(z=z||["#fff","#000"],z&&Ft(z)==="string"&&zt.brewer&&zt.brewer[z.toLowerCase()]&&(z=zt.brewer[z.toLowerCase()]),Ft(z)==="array"){z.length===1&&(z=[z[0],z[0]]),z=z.slice(0);for(let j=0;j=c[I];)I++;return I-1}return 0};let _=z=>z,$=z=>z;const R=function(z,j){let I,N;if(j==null&&(j=!1),isNaN(z)||z===null)return n;j?N=z:c&&c.length>2?N=C(z)/(c.length-2):f!==p?N=(z-p)/(f-p):N=1,N=$(N),j||(N=_(N)),x!==1&&(N=J1e(N,x)),N=s[0]+N*(1-s[0]-s[1]),N=Au(N,0,1);const L=Math.floor(N*1e4);if(w&&v[L])I=v[L];else{if(Ft(d)==="array")for(let H=0;H=P&&H===l.length-1){I=d[H];break}if(N>P&&Nv={};k(e);const A=function(z){const j=zt(R(z));return u&&j[u]?j[u]():j};return A.classes=function(z){if(z!=null){if(Ft(z)==="array")c=z,i=[z[0],z[z.length-1]];else{const j=zt.analyze(i);z===0?c=[j.min,j.max]:c=zt.limits(j,"e",z)}return A}return c},A.domain=function(z){if(!arguments.length)return a;a=z.slice(0),p=z[0],f=z[z.length-1],l=[];const j=d.length;if(z.length===j&&p!==f)for(let I of Array.from(z))l.push((I-p)/(f-p));else{for(let I=0;I2){const I=z.map((L,H)=>H/(z.length-1)),N=z.map(L=>(L-p)/(f-p));N.every((L,H)=>I[H]===L)||($=L=>{if(L<=0||L>=1)return L;let H=0;for(;L>=N[H+1];)H++;const P=(L-N[H])/(N[H+1]-N[H]);return I[H]+P*(I[H+1]-I[H])})}}return i=[p,f],A},A.mode=function(z){return arguments.length?(r=z,T(),A):r},A.range=function(z,j){return k(z),A},A.out=function(z){return u=z,A},A.spread=function(z){return arguments.length?(o=z,A):o},A.correctLightness=function(z){return z==null&&(z=!0),m=z,T(),m?_=function(j){const I=R(0,!0).lab()[0],N=R(1,!0).lab()[0],L=I>N;let H=R(j,!0).lab()[0];const P=I+(N-I)*j;let V=H-P,B=0,F=1,q=20;for(;Math.abs(V)>.01&&q-- >0;)(function(){return L&&(V*=-1),V<0?(B=j,j+=(F-j)*.5):(F=j,j+=(B-j)*.5),H=R(j,!0).lab()[0],V=H-P})();return j}:_=j=>j,A},A.padding=function(z){return z!=null?(Ft(z)==="number"&&(z=[z,z]),s=z,A):s},A.colors=function(z,j){arguments.length<2&&(j="hex");let I=[];if(arguments.length===0)I=d.slice(0);else if(z===1)I=[A(.5)];else if(z>1){const N=i[0],L=i[1]-N;I=eye(0,z).map(H=>A(N+H/(z-1)*L))}else{e=[];let N=[];if(c&&c.length>2)for(let L=1,H=c.length,P=1<=H;P?LH;P?L++:L--)N.push((c[L-1]+c[L])*.5);else N=i;I=N.map(L=>A(L))}return zt[j]&&(I=I.map(N=>N[j]())),I},A.cache=function(z){return z!=null?(w=z,A):w},A.gamma=function(z){return z!=null?(x=z,A):x},A.nodata=function(z){return z!=null?(n=zt(z),A):n},A}function eye(e,r,n){let o=[],i=ea;i?l++:l--)o.push(l);return o}const tye=function(e){let r=[1,1];for(let n=1;nnew Me(a)),e.length===2)[n,o]=e.map(a=>a.lab()),r=function(a){const l=[0,1,2].map(s=>n[s]+a*(o[s]-n[s]));return new Me(l,"lab")};else if(e.length===3)[n,o,i]=e.map(a=>a.lab()),r=function(a){const l=[0,1,2].map(s=>(1-a)*(1-a)*n[s]+2*(1-a)*a*o[s]+a*a*i[s]);return new Me(l,"lab")};else if(e.length===4){let a;[n,o,i,a]=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*i[c]+l*l*l*a[c]);return new Me(s,"lab")}}else if(e.length>=5){let a,l,s;a=e.map(c=>c.lab()),s=e.length-1,l=tye(s),r=function(c){const d=1-c,u=[0,1,2].map(p=>a.reduce((f,m,v)=>f+l[v]*d**(s-v)*c**v*m[p],0));return new Me(u,"lab")}}else throw new RangeError("No point in running bezier with only one color.");return r},nye=e=>{const r=rye(e);return r.scale=()=>wb(r),r},{round:dN}=Math;Me.prototype.rgb=function(e=!0){return e===!1?this._rgb.slice(0,3):this._rgb.slice(0,3).map(dN)},Me.prototype.rgba=function(e=!0){return this._rgb.slice(0,4).map((r,n)=>n<3?e===!1?r:dN(r):r)},Object.assign(zt,{rgb:(...e)=>new Me(...e,"rgb")}),Rt.format.rgb=(...e)=>{const r=jt(e,"rgba");return r[3]===void 0&&(r[3]=1),r},Rt.autodetect.push({p:3,test:(...e)=>{if(e=jt(e,"rgba"),Ft(e)==="array"&&(e.length===3||e.length===4&&Ft(e[3])=="number"&&e[3]>=0&&e[3]<=1))return"rgb"}});const qa=(e,r,n)=>{if(!qa[n])throw new Error("unknown blend mode "+n);return qa[n](e,r)},Kc=e=>(r,n)=>{const o=zt(n).rgb(),i=zt(r).rgb();return zt.rgb(e(o,i))},Zc=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},oye=e=>e,iye=(e,r)=>e*r/255,aye=(e,r)=>e>r?r:e,lye=(e,r)=>e>r?e:r,sye=(e,r)=>255*(1-(1-e/255)*(1-r/255)),cye=(e,r)=>r<128?2*e*r/255:255*(1-2*(1-e/255)*(1-r/255)),dye=(e,r)=>255*(1-(1-r/255)/(e/255)),uye=(e,r)=>e===255?255:(e=255*(r/255)/(1-e/255),e>255?255:e);qa.normal=Kc(Zc(oye)),qa.multiply=Kc(Zc(iye)),qa.screen=Kc(Zc(sye)),qa.overlay=Kc(Zc(cye)),qa.darken=Kc(Zc(aye)),qa.lighten=Kc(Zc(lye)),qa.dodge=Kc(Zc(uye)),qa.burn=Kc(Zc(dye));const{pow:pye,sin:hye,cos:fye}=Math;function gye(e=300,r=-1.5,n=1,o=1,i=[0,1]){let a=0,l;Ft(i)==="array"?l=i[1]-i[0]:(l=0,i=[i,i]);const s=function(c){const d=As*((e+120)/360+r*c),u=pye(i[0]+l*c,o),f=(a!==0?n[0]+c*a:n)*u*(1-u)/2,m=fye(d),v=hye(d),w=u+f*(-.14861*m+1.78277*v),x=u+f*(-.29227*m-.90649*v),k=u+f*(1.97294*m);return zt(t_([w*255,x*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"?(a=n[1]-n[0],a===0&&(n=n[1])):a=0,s)},s.lightness=function(c){return c==null?i:(Ft(c)==="array"?(i=c,l=c[1]-c[0]):(i=[c,c],l=0),s)},s.scale=()=>zt.scale(s),s.hue(n),s}const mye="0123456789abcdef",{floor:yye,random:vye}=Math,bye=(e=vye)=>{let r="#";for(let n=0;n<6;n++)r+=mye.charAt(yye(e()*16));return new Me(r,"hex")},{log:uN,pow:xye,floor:wye,abs:kye}=Math;function pN(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,i)=>hN(n,o,i),n}function hN(e,r="equal",n=7){Ft(e)=="array"&&(e=pN(e));const{min:o,max:i}=e,a=e.values.sort((s,c)=>s-c);if(n===1)return[o,i];const l=[];if(r.substr(0,1)==="c"&&(l.push(o),l.push(i)),r.substr(0,1)==="e"){l.push(o);for(let s=1;s 0");const s=Math.LOG10E*uN(o),c=Math.LOG10E*uN(i);l.push(o);for(let d=1;d200&&(p=!1)}const v={};for(let x=0;xx-k),l.push(w[0]);for(let x=1;x{e=new Me(e),r=new Me(r);const n=e.luminance(),o=r.luminance();return n>o?(n+.05)/(o+.05):(o+.05)/(n+.05)};const fN=.027,Sye=5e-4,Eye=.1,gN=1.14,kb=.022,mN=1.414,Cye=(e,r)=>{e=new Me(e),r=new Me(r),e.alpha()<1&&(e=Th(r,e,e.alpha(),"rgb"));const n=yN(...e.rgb()),o=yN(...r.rgb()),i=n>=kb?n:n+Math.pow(kb-n,mN),a=o>=kb?o:o+Math.pow(kb-o,mN),l=Math.pow(a,.56)-Math.pow(i,.57),s=Math.pow(a,.65)-Math.pow(i,.62),c=Math.abs(a-i)0?c-fN:c+fN)*100};function yN(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:Ps,pow:yn,min:$ye,max:Rye,atan2:vN,abs:bN,cos:_b,sin:xN,exp:zye,PI:wN}=Math;function Tye(e,r,n=1,o=1,i=1){var a=function(O){return 360*O/(2*wN)},l=function(O){return 2*wN*O/360};e=new Me(e),r=new Me(r);const[s,c,d]=Array.from(e.lab()),[u,p,f]=Array.from(r.lab()),m=(s+u)/2,v=Ps(yn(c,2)+yn(d,2)),w=Ps(yn(p,2)+yn(f,2)),x=(v+w)/2,k=.5*(1-Ps(yn(x,7)/(yn(x,7)+yn(25,7)))),C=c*(1+k),_=p*(1+k),$=Ps(yn(C,2)+yn(d,2)),R=Ps(yn(_,2)+yn(f,2)),T=($+R)/2,A=a(vN(d,C)),z=a(vN(f,_)),j=A>=0?A:A+360,I=z>=0?z:z+360,N=bN(j-I)>180?(j+I+360)/2:(j+I)/2,L=1-.17*_b(l(N-30))+.24*_b(l(2*N))+.32*_b(l(3*N+6))-.2*_b(l(4*N-63));let H=I-j;H=bN(H)<=180?H:I<=j?H+360:H-360,H=2*Ps($*R)*xN(l(H)/2);const P=u-s,V=R-$,B=1+.015*yn(m-50,2)/Ps(20+yn(m-50,2)),F=1+.045*T,q=1+.015*T*L,G=30*zye(-yn((N-275)/25,2)),Y=-(2*Ps(yn(T,7)/(yn(T,7)+yn(25,7))))*xN(2*l(G)),K=Ps(yn(P/(n*B),2)+yn(V/(o*F),2)+yn(H/(i*q),2)+Y*(V/(o*F))*(H/(i*q)));return Rye(0,$ye(100,K))}function jye(e,r,n="lab"){e=new Me(e),r=new Me(r);const o=e.get(n),i=r.get(n);let a=0;for(let l in o){const s=(o[l]||0)-(i[l]||0);a+=s*s}return Math.sqrt(a)}const Aye=(...e)=>{try{return new Me(...e),!0}catch{return!1}},Dye={cool(){return wb([zt.hsl(180,1,.9),zt.hsl(250,.7,.4)])},hot(){return wb(["#000","#f00","#ff0","#fff"]).mode("rgb")}},v_={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"]},kN=Object.keys(v_),_N=new Map(kN.map(e=>[e.toLowerCase(),e])),Pye=typeof Proxy=="function"?new Proxy(v_,{get(e,r){const n=r.toLowerCase();if(_N.has(n))return e[_N.get(n)]},getOwnPropertyNames(){return Object.getOwnPropertyNames(kN)}}):v_,Mye=(...e)=>{e=jt(e,"cmyk");const[r,n,o,i]=e,a=e.length>4?e[4]:1;return i===1?[0,0,0,a]:[r>=1?0:255*(1-r)*(1-i),n>=1?0:255*(1-n)*(1-i),o>=1?0:255*(1-o)*(1-i),a]},{max:SN}=Math,Nye=(...e)=>{let[r,n,o]=jt(e,"rgb");r=r/255,n=n/255,o=o/255;const i=1-SN(r,SN(n,o)),a=i<1?1/(1-i):0,l=(1-r-i)*a,s=(1-n-i)*a,c=(1-o-i)*a;return[l,s,c,i]};Me.prototype.cmyk=function(){return Nye(this._rgb)},Object.assign(zt,{cmyk:(...e)=>new Me(...e,"cmyk")}),Rt.format.cmyk=Mye,Rt.autodetect.push({p:2,test:(...e)=>{if(e=jt(e,"cmyk"),Ft(e)==="array"&&e.length===4)return"cmyk"}});const Bye=(...e)=>{const r=jt(e,"hsla");let n=Rh(e)||"lsa";return r[0]=Ki(r[0]||0)+"deg",r[1]=Ki(r[1]*100)+"%",r[2]=Ki(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(" ")})`},Iye=(...e)=>{const r=jt(e,"lab");let n=Rh(e)||"lab";return r[0]=Ki(r[0])+"%",r[1]=Ki(r[1]),r[2]=Ki(r[2]),n==="laba"||r.length>3&&r[3]<1?r[3]="/ "+(r.length>3?r[3]:1):r.length=3,`lab(${r.join(" ")})`},Oye=(...e)=>{const r=jt(e,"lch");let n=Rh(e)||"lab";return r[0]=Ki(r[0])+"%",r[1]=Ki(r[1]),r[2]=isNaN(r[2])?"none":Ki(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(" ")})`},Lye=(...e)=>{const r=jt(e,"lab");return r[0]=Ki(r[0]*100)+"%",r[1]=r_(r[1]),r[2]=r_(r[2]),r.length>3&&r[3]<1?r[3]="/ "+(r.length>3?r[3]:1):r.length=3,`oklab(${r.join(" ")})`},EN=(...e)=>{const[r,n,o,...i]=jt(e,"rgb"),[a,l,s]=f_(r,n,o),[c,d,u]=iN(a,l,s);return[c,d,u,...i.length>0&&i[0]<1?[i[0]]:[]]},Fye=(...e)=>{const r=jt(e,"lch");return r[0]=Ki(r[0]*100)+"%",r[1]=r_(r[1]),r[2]=isNaN(r[2])?"none":Ki(r[2])+"deg",r.length>3&&r[3]<1?r[3]="/ "+(r.length>3?r[3]:1):r.length=3,`oklch(${r.join(" ")})`},{round:b_}=Math,Vye=(...e)=>{const r=jt(e,"rgba");let n=Rh(e)||"rgb";if(n.substr(0,3)==="hsl")return Bye(lN(r),n);if(n.substr(0,3)==="lab"){const o=Zm();Ds("d50");const i=Iye(a_(r),n);return Ds(o),i}if(n.substr(0,3)==="lch"){const o=Zm();Ds("d50");const i=Oye(d_(r),n);return Ds(o),i}return n.substr(0,5)==="oklab"?Lye(f_(r)):n.substr(0,5)==="oklch"?Fye(EN(r)):(r[0]=b_(r[0]),r[1]=b_(r[1]),r[2]=b_(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(" ")})`)},CN=(...e)=>{e=jt(e,"lch");const[r,n,o,...i]=e,[a,l,s]=oN(r,n,o),[c,d,u]=h_(a,l,s);return[c,d,u,...i.length>0&&i[0]<1?[i[0]]:[]]},Ms=/((?:-?\d+)|(?:-?\d+(?:\.\d+)?)%|none)/.source,Ha=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%?)|none)/.source,Sb=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)%)|none)/.source,Zi=/\s*/.source,Ph=/\s+/.source,x_=/\s*,\s*/.source,Eb=/((?:-?(?:\d+(?:\.\d*)?|\.\d+)(?:deg)?)|none)/.source,Mh=/\s*(?:\/\s*((?:[01]|[01]?\.\d+)|\d+(?:\.\d+)?%))?/.source,$N=new RegExp("^rgba?\\("+Zi+[Ms,Ms,Ms].join(Ph)+Mh+"\\)$"),RN=new RegExp("^rgb\\("+Zi+[Ms,Ms,Ms].join(x_)+Zi+"\\)$"),zN=new RegExp("^rgba\\("+Zi+[Ms,Ms,Ms,Ha].join(x_)+Zi+"\\)$"),TN=new RegExp("^hsla?\\("+Zi+[Eb,Sb,Sb].join(Ph)+Mh+"\\)$"),jN=new RegExp("^hsl?\\("+Zi+[Eb,Sb,Sb].join(x_)+Zi+"\\)$"),AN=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,DN=new RegExp("^lab\\("+Zi+[Ha,Ha,Ha].join(Ph)+Mh+"\\)$"),PN=new RegExp("^lch\\("+Zi+[Ha,Ha,Eb].join(Ph)+Mh+"\\)$"),MN=new RegExp("^oklab\\("+Zi+[Ha,Ha,Ha].join(Ph)+Mh+"\\)$"),NN=new RegExp("^oklch\\("+Zi+[Ha,Ha,Eb].join(Ph)+Mh+"\\)$"),{round:BN}=Math,Nh=e=>e.map((r,n)=>n<=2?Au(BN(r),0,255):r),vn=(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),No=(e,r)=>e==="none"?r:e,w_=e=>{if(e=e.toLowerCase().trim(),e==="transparent")return[0,0,0,0];let r;if(Rt.format.named)try{return Rt.format.named(e)}catch{}if((r=e.match($N))||(r=e.match(RN))){let n=r.slice(1,4);for(let i=0;i<3;i++)n[i]=+vn(No(n[i],0),0,255);n=Nh(n);const o=r[4]!==void 0?+vn(r[4],0,1):1;return n[3]=o,n}if(r=e.match(zN)){const n=r.slice(1,5);for(let o=0;o<4;o++)n[o]=+vn(n[o],0,255);return n}if((r=e.match(TN))||(r=e.match(jN))){const n=r.slice(1,4);n[0]=+No(n[0].replace("deg",""),0),n[1]=+vn(No(n[1],0),0,100)*.01,n[2]=+vn(No(n[2],0),0,100)*.01;const o=Nh(p_(n)),i=r[4]!==void 0?+vn(r[4],0,1):1;return o[3]=i,o}if(r=e.match(AN)){const n=r.slice(1,4);n[1]*=.01,n[2]*=.01;const o=p_(n);for(let i=0;i<3;i++)o[i]=BN(o[i]);return o[3]=+r[4],o}if(r=e.match(DN)){const n=r.slice(1,4);n[0]=vn(No(n[0],0),0,100),n[1]=vn(No(n[1],0),-125,125,!0),n[2]=vn(No(n[2],0),-125,125,!0);const o=Zm();Ds("d50");const i=Nh(o_(n));Ds(o);const a=r[4]!==void 0?+vn(r[4],0,1):1;return i[3]=a,i}if(r=e.match(PN)){const n=r.slice(1,4);n[0]=vn(n[0],0,100),n[1]=vn(No(n[1],0),0,150,!1),n[2]=+No(n[2].replace("deg",""),0);const o=Zm();Ds("d50");const i=Nh(c_(n));Ds(o);const a=r[4]!==void 0?+vn(r[4],0,1):1;return i[3]=a,i}if(r=e.match(MN)){const n=r.slice(1,4);n[0]=vn(No(n[0],0),0,1),n[1]=vn(No(n[1],0),-.4,.4,!0),n[2]=vn(No(n[2],0),-.4,.4,!0);const o=Nh(h_(n)),i=r[4]!==void 0?+vn(r[4],0,1):1;return o[3]=i,o}if(r=e.match(NN)){const n=r.slice(1,4);n[0]=vn(No(n[0],0),0,1),n[1]=vn(No(n[1],0),0,.4,!1),n[2]=+No(n[2].replace("deg",""),0);const o=Nh(CN(n)),i=r[4]!==void 0?+vn(r[4],0,1):1;return o[3]=i,o}};w_.test=e=>$N.test(e)||TN.test(e)||DN.test(e)||PN.test(e)||MN.test(e)||NN.test(e)||RN.test(e)||zN.test(e)||jN.test(e)||AN.test(e)||e==="transparent",Me.prototype.css=function(e){return Vye(this._rgb,e)};const qye=(...e)=>new Me(...e,"css");zt.css=qye,Rt.format.css=w_,Rt.autodetect.push({p:5,test:(e,...r)=>{if(!r.length&&Ft(e)==="string"&&w_.test(e))return"css"}}),Rt.format.gl=(...e)=>{const r=jt(e,"rgba");return r[0]*=255,r[1]*=255,r[2]*=255,r};const Hye=(...e)=>new Me(...e,"gl");zt.gl=Hye,Me.prototype.gl=function(){const e=this._rgb;return[e[0]/255,e[1]/255,e[2]/255,e[3]]},Me.prototype.hex=function(e){return tN(this._rgb,e)};const Uye=(...e)=>new Me(...e,"hex");zt.hex=Uye,Rt.format.hex=eN,Rt.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:Cb}=Math,IN=e=>{const r=e/100;let n,o,i;return r<66?(n=255,o=r<6?0:-155.25485562709179-.44596950469579133*(o=r-2)+104.49216199393888*Cb(o),i=r<20?0:-254.76935184120902+.8274096064007395*(i=r-10)+115.67994401066147*Cb(i)):(n=351.97690566805693+.114206453784165*(n=r-55)-40.25366309332127*Cb(n),o=325.4494125711974+.07943456536662342*(o=r-50)-28.0852963507957*Cb(o),i=255),[n,o,i,1]},{round:Wye}=Math,Gye=(...e)=>{const r=jt(e,"rgb"),n=r[0],o=r[2];let i=1e3,a=4e4;const l=.4;let s;for(;a-i>l;){s=(a+i)*.5;const c=IN(s);c[2]/c[0]>=o/n?a=s:i=s}return Wye(s)};Me.prototype.temp=Me.prototype.kelvin=Me.prototype.temperature=function(){return Gye(this._rgb)};const k_=(...e)=>new Me(...e,"temp");Object.assign(zt,{temp:k_,kelvin:k_,temperature:k_}),Rt.format.temp=Rt.format.kelvin=Rt.format.temperature=IN,Me.prototype.oklch=function(){return EN(this._rgb)},Object.assign(zt,{oklch:(...e)=>new Me(...e,"oklch")}),Rt.format.oklch=CN,Rt.autodetect.push({p:2,test:(...e)=>{if(e=jt(e,"oklch"),Ft(e)==="array"&&e.length===3)return"oklch"}}),Object.assign(zt,{analyze:pN,average:Z1e,bezier:nye,blend:qa,brewer:Pye,Color:Me,colors:zh,contrast:_ye,contrastAPCA:Cye,cubehelix:gye,deltaE:Tye,distance:jye,input:Rt,interpolate:Th,limits:hN,mix:Th,random:bye,scale:wb,scales:Dye,valid:Aye});const __=[.96,.907,.805,.697,.605,.547,.518,.445,.395,.34],ON=[.32,.16,.08,.04,0,0,.04,.08,.16,.32];function Yye(e){const r=e.get("hsl.l");return __.reduce((n,o)=>Math.abs(o-r)a===n),i=__.map(a=>r.set("hsl.l",a)).map(a=>zt(a)).map((a,l)=>{const s=ON[l]-ON[o];return s>=0?a.saturate(s):a.desaturate(s*-1)});return i[o]=zt(e),{baseColorIndex:o,colors:i}}function Kye(e){return Xye(e).colors.map(r=>r.hex())}const LN={fill:"#3b82f6",stroke:"#2563eb",hiContrast:"#eff6ff",loContrast:"#bfdbfe"},FN={fill:"#0284c7",stroke:"#0369a1",hiContrast:"#f0f9ff",loContrast:"#B6ECF7"},VN={fill:"#64748b",stroke:"#475569",hiContrast:"#f8fafc",loContrast:"#cbd5e1"},Zye={primary:LN,blue:LN,secondary:FN,sky:FN,muted:VN,slate:VN,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"}},Qye={line:"#8D8D8D",labelBg:"#18191B",label:"#C9C9C9"},qN={line:"#64748b",labelBg:"#0f172a",label:"#cbd5e1"},HN={line:"#3b82f6",labelBg:"#172554",label:"#60a5fa"},UN={line:"#0ea5e9",labelBg:"#082f49",label:"#38bdf8"},Jye={amber:{line:"#b45309",labelBg:"#78350f",label:"#FFE0C2"},blue:HN,gray:Qye,green:{line:"#15803d",labelBg:"#052e16",label:"#22c55e"},indigo:{line:"#6366f1",labelBg:"#1e1b4b",label:"#818cf8"},muted:qN,primary:HN,red:{line:"#AC4D39",labelBg:"#b91c1c",label:"#f5b2a3"},secondary:UN,sky:UN,slate:qN},WN=60,GN=2,YN=1;function e0e(e){He(zt.valid(e),`Invalid color: ${e}`);const r=Kye(e),n=r[6],o=t0e(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 t0e(e){const r=zt(e);let n=r.brighten(GN),o=r.darken(GN),i,a,l,s;do i=n,a=o,n=n.brighten(YN),o=o.darken(YN),l=zt.contrastAPCA(r,n),s=zt.contrastAPCA(r,o);while(Math.abs(l)Math.abs(s)?[n.brighten(.4).hex(),n.hex()]:[o.darken(.4).hex(),o.hex()]}const r0e={color:"primary",size:"md",opacity:15,shape:"rectangle",group:{opacity:15,border:"dashed"},relationship:{color:"gray",line:"dashed",arrow:"normal"}},n0e=["rectangle","person","browser","mobile","cylinder","storage","queue"],o0e={colors:Yme(["amber","blue","gray","slate","green","indigo","muted","primary","red","secondary","sky"],e=>({elements:Zye[e],relationships:Jye[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 $b({size:e,padding:r,textSize:n,...o},i=S_.defaults.size){return e??=i,n??=e,r??=e,{...o,size:e,padding:r,textSize:n}}const S_={theme:o0e,defaults:r0e};let XN=class OM{constructor(r){this.config=r,this.theme=r.theme,this.defaults=r.defaults}theme;defaults;static DEFAULT=new OM(S_);static from(...r){return Ll(r,1)?new OM(XM(...r,S_)):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?ar(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=$b(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){return this.isThemeColor(r)?this.theme.colors[r]:ar(this,`compute-${r}`,()=>{if(!zt.valid(r))throw new Error(`Invalid color value: "${r}"`);return e0e(r)})}equals(r){return r===this?!0:yb(this.config,r.config)}};function Qm(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Qc(e){return typeof e=="string"}const E_={done:!1,hasNext:!1};function Ns(e,...r){let n=e,o=r.map(a=>"lazy"in a?i0e(a):void 0),i=0;for(;i65;)++o;return+u.slice(p-1,o)}return f=c&&c.indexOf(u.charAt(p)),f>-1?f+76:(f=u.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(;a;)if(i=d(r,l++),a=d(n,s++),i<76&&a<76&&i>66&&a>66&&(i=d(r,l,l),a=d(n,s,l=o),s=o),i!=a)return i{if(n===o)return 0;if(!n)return-1;if(!o)return 1;const i=n.split(e),a=o.split(e),l=Math.min(i.length,a.length);for(let c=0;c0?e.slice(0,r):null}function Jm(e){const r=e.lastIndexOf(".");return r>0?e.slice(r+1):e}const e1=e=>$_(e)?e:e.id;function Yn(e,r){const n=e1(e);return r?e1(r).startsWith(n+"."):o=>{const i=e1(o);return n.startsWith(i+".")}}function eB(e,r){if(!r)return i=>eB(e,i);const n=e1(e),o=e1(r);return n===o||o.startsWith(n+".")||n.startsWith(o+".")}function tB(e,r){return n=>Yn(e,n)}function Tb(e){return($_(e)?e:e.id).split(".").length}function t1(e,r){const n=e.split(".");if(n.length<2)return null;const o=r.split(".");if(o.length<2)return null;let i=[];for(let a=0;ai===0?(n.push(o),n):(n.unshift(`${n[0]}.${o}`),n),[])}function c0e(e,r){let n=r;for(const o of e)Yn(o,n)&&(n=o);return n!==r?n:null}function Jc(e){const r=[],n=[...e];let o;for(;o=n.shift();){let i;for(;i=c0e(n,o);)r.push(n.splice(n.indexOf(i),1)[0]);r.push(o)}return r}function rB(e,r){if(!e||$_(e)){const o=e??"asc";return i=>rB(i,o)}const n=r==="desc"?-1:1;return e.map(o=>({item:o,fqn:o.id.split(".")})).sort((o,i)=>{if(o.fqn.length!==i.fqn.length)return(o.fqn.length-i.fqn.length)*n;for(let a=0;ao)}var jb={},nB;function d0e(){return nB||(nB=1,jb.ARRAY_BUFFER_SUPPORT=typeof ArrayBuffer<"u",jb.SYMBOL_SUPPORT=typeof Symbol<"u"),jb}var R_,oB;function Ab(){if(oB)return R_;oB=1;var e=d0e(),r=e.ARRAY_BUFFER_SUPPORT,n=e.SYMBOL_SUPPORT;return R_=function(i,a){var l,s,c,d,u;if(!i)throw new Error("obliterator/forEach: invalid iterable.");if(typeof a!="function")throw new Error("obliterator/forEach: expecting a callback.");if(Array.isArray(i)||r&&ArrayBuffer.isView(i)||typeof i=="string"||i.toString()==="[object Arguments]"){for(c=0,d=i.length;c=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"},z_=e,z_}const lB=-1,Db=0,r1=1,Pb=2,T_=3,j_=4,A_=5,D_=6,sB=7,cB=8,dB=typeof self=="object"?self:globalThis,u0e=(e,r)=>{const n=(i,a)=>(e.set(a,i),i),o=i=>{if(e.has(i))return e.get(i);const[a,l]=r[i];switch(a){case Db:case lB:return n(l,i);case r1:{const s=n([],i);for(const c of l)s.push(o(c));return s}case Pb:{const s=n({},i);for(const[c,d]of l)s[o(c)]=o(d);return s}case T_:return n(new Date(l),i);case j_:{const{source:s,flags:c}=l;return n(new RegExp(s,c),i)}case A_:{const s=n(new Map,i);for(const[c,d]of l)s.set(o(c),o(d));return s}case D_:{const s=n(new Set,i);for(const c of l)s.add(o(c));return s}case sB:{const{name:s,message:c}=l;return n(new dB[s](c),i)}case cB:return n(BigInt(l),i);case"BigInt":return n(Object(BigInt(l)),i);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 dB[a](l),i)};return o},uB=e=>u0e(new Map,e)(0),Bh="",{toString:p0e}={},{keys:h0e}=Object,n1=e=>{const r=typeof e;if(r!=="object"||!e)return[Db,r];const n=p0e.call(e).slice(8,-1);switch(n){case"Array":return[r1,Bh];case"Object":return[Pb,Bh];case"Date":return[T_,Bh];case"RegExp":return[j_,Bh];case"Map":return[A_,Bh];case"Set":return[D_,Bh];case"DataView":return[r1,n]}return n.includes("Array")?[r1,n]:n.includes("Error")?[sB,n]:[Pb,n]},Mb=([e,r])=>e===Db&&(r==="function"||r==="symbol"),f0e=(e,r,n,o)=>{const i=(l,s)=>{const c=o.push(l)-1;return n.set(s,c),c},a=l=>{if(n.has(l))return n.get(l);let[s,c]=n1(l);switch(s){case Db:{let u=l;switch(c){case"bigint":s=cB,u=l.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);u=null;break;case"undefined":return i([lB],l)}return i([s,u],l)}case r1:{if(c){let f=l;return c==="DataView"?f=new Uint8Array(l.buffer):c==="ArrayBuffer"&&(f=new Uint8Array(l)),i([c,[...f]],l)}const u=[],p=i([s,u],l);for(const f of l)u.push(a(f));return p}case Pb:{if(c)switch(c){case"BigInt":return i([c,l.toString()],l);case"Boolean":case"Number":case"String":return i([c,l.valueOf()],l)}if(r&&"toJSON"in l)return a(l.toJSON());const u=[],p=i([s,u],l);for(const f of h0e(l))(e||!Mb(n1(l[f])))&&u.push([a(f),a(l[f])]);return p}case T_:return i([s,l.toISOString()],l);case j_:{const{source:u,flags:p}=l;return i([s,{source:u,flags:p}],l)}case A_:{const u=[],p=i([s,u],l);for(const[f,m]of l)(e||!(Mb(n1(f))||Mb(n1(m))))&&u.push([a(f),a(m)]);return p}case D_:{const u=[],p=i([s,u],l);for(const f of l)(e||!Mb(n1(f)))&&u.push(a(f));return p}}const{message:d}=l;return i([s,{name:c,message:d}],l)};return a},pB=(e,{json:r,lossy:n}={})=>{const o=[];return f0e(!(r||n),!!r,new Map,o)(e),o},o1=typeof structuredClone=="function"?(e,r)=>r&&("json"in r||"lossy"in r)?uB(pB(e,r)):structuredClone(e):(e,r)=>uB(pB(e,r)),hB=gB("end"),fB=gB("start");function gB(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 mB(e){const r=fB(e),n=hB(e);if(r&&n)return{start:r,end:n}}const Pu=["ariaDescribedBy","ariaLabel","ariaLabelledBy"],P_={ancestors:{tbody:["table"],td:["table"],th:["table"],thead:["table"],tfoot:["table"],tr:["table"]},attributes:{a:[...Pu,"dataFootnoteBackref","dataFootnoteRef",["className","data-footnote-backref"],"href"],blockquote:["cite"],code:[["className",/^language-./]],del:["cite"],div:["itemScope","itemType"],dl:[...Pu],h2:[["className","sr-only"]],img:[...Pu,"longDesc","src"],input:[["disabled",!0],["type","checkbox"]],ins:["cite"],li:[["className","task-list-item"]],ol:[...Pu,["className","contains-task-list"]],q:["cite"],section:["dataFootnotes",["className","footnotes"]],source:["srcSet"],summary:[...Pu],table:[...Pu],ul:[...Pu,["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"]},ed={}.hasOwnProperty;function g0e(e,r){let n={type:"root",children:[]};const o={schema:r?{...P_,...r}:P_,stack:[]},i=yB(o,e);return i&&(Array.isArray(i)?i.length===1?n=i[0]:n.children=i:n=i),n}function yB(e,r){if(r&&typeof r=="object"){const n=r;switch(typeof n.type=="string"?n.type:""){case"comment":return m0e(e,n);case"doctype":return y0e(e,n);case"element":return v0e(e,n);case"root":return b0e(e,n);case"text":return x0e(e,n)}}}function m0e(e,r){if(e.schema.allowComments){const n=typeof r.value=="string"?r.value:"",o=n.indexOf("-->"),a={type:"comment",value:o<0?n:n.slice(0,o)};return i1(a,r),a}}function y0e(e,r){if(e.schema.allowDoctypes){const n={type:"doctype"};return i1(n,r),n}}function v0e(e,r){const n=typeof r.tagName=="string"?r.tagName:"";e.stack.push(n);const o=vB(e,r.children),i=w0e(e,r.properties);e.stack.pop();let a=!1;if(n&&n!=="*"&&(!e.schema.tagNames||e.schema.tagNames.includes(n))&&(a=!0,e.schema.ancestors&&ed.call(e.schema.ancestors,n))){const s=e.schema.ancestors[n];let c=-1;for(a=!1;++c1){let i=!1,a=0;for(;++a-1&&a>c||l>-1&&a>l||s>-1&&a>s)return!0;let d=-1;for(;++d4&&r.slice(0,4).toLowerCase()==="data")return n}function S0e(e){return function(r){return g0e(r,e)}}const E0e=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","keygen","link","meta","param","source","track","wbr"];class a1{constructor(r,n,o){this.normal=n,this.property=r,o&&(this.space=o)}}a1.prototype.normal={},a1.prototype.property={},a1.prototype.space=void 0;function kB(e,r){const n={},o={};for(const i of e)Object.assign(n,i.property),Object.assign(o,i.normal);return new a1(n,o,r)}function M_(e){return e.toLowerCase()}class Jo{constructor(r,n){this.attribute=n,this.property=r}}Jo.prototype.attribute="",Jo.prototype.booleanish=!1,Jo.prototype.boolean=!1,Jo.prototype.commaOrSpaceSeparated=!1,Jo.prototype.commaSeparated=!1,Jo.prototype.defined=!1,Jo.prototype.mustUseProperty=!1,Jo.prototype.number=!1,Jo.prototype.overloadedBoolean=!1,Jo.prototype.property="",Jo.prototype.spaceSeparated=!1,Jo.prototype.space=void 0;let C0e=0;const At=Mu(),bn=Mu(),_B=Mu(),Ie=Mu(),Cr=Mu(),Ih=Mu(),bi=Mu();function Mu(){return 2**++C0e}const N_={__proto__:null,boolean:At,booleanish:bn,commaOrSpaceSeparated:bi,commaSeparated:Ih,number:Ie,overloadedBoolean:_B,spaceSeparated:Cr},B_=Object.keys(N_);class I_ extends Jo{constructor(r,n,o,i){let a=-1;if(super(r,n),SB(this,"space",i),typeof o=="number")for(;++a4&&n.slice(0,4)==="data"&&T0e.test(r)){if(r.charAt(4)==="-"){const a=r.slice(5).replace(jB,D0e);o="data"+a.charAt(0).toUpperCase()+a.slice(1)}else{const a=r.slice(4);if(!jB.test(a)){let l=a.replace(z0e,A0e);l.charAt(0)!=="-"&&(l="-"+l),r="data"+l}}i=I_}return new i(o,r)}function A0e(e){return"-"+e.toLowerCase()}function D0e(e){return e.charAt(1).toUpperCase()}const P0e=kB([EB,$0e,RB,zB,TB],"html"),AB=kB([EB,R0e,RB,zB,TB],"svg"),DB={}.hasOwnProperty;function M0e(e,r){const n=r||{};function o(i,...a){let l=o.invalid;const s=o.handlers;if(i&&DB.call(i,e)){const c=String(i[e]);l=DB.call(s,c)?s[c]:o.unknown}if(l)return l.call(this,i,...a)}return o.handlers=n.handlers||{},o.invalid=n.invalid,o.unknown=n.unknown,o}const N0e=/["&'<>`]/g,B0e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,I0e=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,O0e=/[|\\{}()[\]^$+*?.]/g,PB=new WeakMap;function L0e(e,r){if(e=e.replace(r.subset?F0e(r.subset):N0e,o),r.subset||r.escapeOnly)return e;return e.replace(B0e,n).replace(I0e,o);function n(i,a,l){return r.format((i.charCodeAt(0)-55296)*1024+i.charCodeAt(1)-56320+65536,l.charCodeAt(a+2),r)}function o(i,a,l){return r.format(i.charCodeAt(0),l.charCodeAt(a+1),r)}}function F0e(e){let r=PB.get(e);return r||(r=V0e(e),PB.set(e,r)),r}function V0e(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:"€"},Y0e=["cent","copy","divide","gt","lt","not","para","times"],MB={}.hasOwnProperty,L_={};let Nb;for(Nb in O_)MB.call(O_,Nb)&&(L_[O_[Nb]]=Nb);const X0e=/[^\dA-Za-z]/;function K0e(e,r,n,o){const i=String.fromCharCode(e);if(MB.call(L_,i)){const a=L_[i],l="&"+a;return n&&G0e.includes(a)&&!Y0e.includes(a)&&(!o||r&&r!==61&&X0e.test(String.fromCharCode(r)))?l:l+";"}return""}function Z0e(e,r,n){let o=H0e(e,r,n.omitOptionalSemicolons),i;if((n.useNamedReferences||n.useShortestReferences)&&(i=K0e(e,r,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!i)&&n.useShortestReferences){const a=W0e(e,r,n.omitOptionalSemicolons);a.length|^->||--!>|"],eve=["<",">"];function tve(e,r,n,o){return o.settings.bogusComments?"":"";function i(a){return Lh(a,Object.assign({},o.settings.characterReferences,{subset:eve}))}}function rve(e,r,n,o){return""}function Bb(e,r){const n=String(e);if(typeof r!="string")throw new TypeError("Expected character");let o=0,i=n.indexOf(r);for(;i!==-1;)o++,i=n.indexOf(r,i+r.length);return o}function nve(e,r){const n=r||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}function ove(e){return e.join(" ").trim()}const ive=/[ \t\n\f\r]/g;function F_(e){return typeof e=="object"?e.type==="text"?NB(e.value):!1:NB(e)}function NB(e){return e.replace(ive,"")===""}const On=IB(1),BB=IB(-1),ave=[];function IB(e){return r;function r(n,o,i){const a=n?n.children:ave;let l=(o||0)+e,s=a[l];if(!i)for(;s&&F_(s);)l+=e,s=a[l];return s}}const lve={}.hasOwnProperty;function OB(e){return r;function r(n,o,i){return lve.call(e,n.tagName)&&e[n.tagName](n,o,i)}}const V_=OB({body:cve,caption:q_,colgroup:q_,dd:hve,dt:pve,head:q_,html:sve,li:uve,optgroup:fve,option:gve,p:dve,rp:LB,rt:LB,tbody:yve,td:FB,tfoot:vve,th:FB,thead:mve,tr:bve});function q_(e,r,n){const o=On(n,r,!0);return!o||o.type!=="comment"&&!(o.type==="text"&&F_(o.value.charAt(0)))}function sve(e,r,n){const o=On(n,r);return!o||o.type!=="comment"}function cve(e,r,n){const o=On(n,r);return!o||o.type!=="comment"}function dve(e,r,n){const o=On(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 uve(e,r,n){const o=On(n,r);return!o||o.type==="element"&&o.tagName==="li"}function pve(e,r,n){const o=On(n,r);return!!(o&&o.type==="element"&&(o.tagName==="dt"||o.tagName==="dd"))}function hve(e,r,n){const o=On(n,r);return!o||o.type==="element"&&(o.tagName==="dt"||o.tagName==="dd")}function LB(e,r,n){const o=On(n,r);return!o||o.type==="element"&&(o.tagName==="rp"||o.tagName==="rt")}function fve(e,r,n){const o=On(n,r);return!o||o.type==="element"&&o.tagName==="optgroup"}function gve(e,r,n){const o=On(n,r);return!o||o.type==="element"&&(o.tagName==="option"||o.tagName==="optgroup")}function mve(e,r,n){const o=On(n,r);return!!(o&&o.type==="element"&&(o.tagName==="tbody"||o.tagName==="tfoot"))}function yve(e,r,n){const o=On(n,r);return!o||o.type==="element"&&(o.tagName==="tbody"||o.tagName==="tfoot")}function vve(e,r,n){return!On(n,r)}function bve(e,r,n){const o=On(n,r);return!o||o.type==="element"&&o.tagName==="tr"}function FB(e,r,n){const o=On(n,r);return!o||o.type==="element"&&(o.tagName==="td"||o.tagName==="th")}const xve=OB({body:_ve,colgroup:Sve,head:kve,html:wve,tbody:Eve});function wve(e){const r=On(e,-1);return!r||r.type!=="comment"}function kve(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 _ve(e){const r=On(e,-1,!0);return!r||r.type!=="comment"&&!(r.type==="text"&&F_(r.value.charAt(0)))&&!(r.type==="element"&&(r.tagName==="meta"||r.tagName==="link"||r.tagName==="script"||r.tagName==="style"||r.tagName==="template"))}function Sve(e,r,n){const o=BB(n,r),i=On(e,-1,!0);return n&&o&&o.type==="element"&&o.tagName==="colgroup"&&V_(o,n.children.indexOf(o),n)?!1:!!(i&&i.type==="element"&&i.tagName==="col")}function Eve(e,r,n){const o=BB(n,r),i=On(e,-1);return n&&o&&o.type==="element"&&(o.tagName==="thead"||o.tagName==="tbody")&&V_(o,n.children.indexOf(o),n)?!1:!!(i&&i.type==="element"&&i.tagName==="tr")}const Ib={name:[[` \f\r &/=>`.split(""),` \f\r "&'/=>\``.split("")],[`\0 \f\r "&'/<=>`.split(""),`\0 @@ -16,167 +15,165 @@ function S1e(e,r){for(var n=0;n`.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 M2e(e,r,n,o){const a=o.schema,i=a.space==="svg"?!1:o.settings.omitOptionalTags;let s=a.space==="svg"?o.settings.closeEmptyElements:o.settings.voids.includes(e.tagName.toLowerCase());const l=[];let c;a.space==="html"&&e.tagName==="svg"&&(o.schema=_1);const u=P2e(o,e.properties),d=o.all(a.space==="html"&&e.tagName==="template"?e.content:e);return o.schema=a,d&&(s=!1),(u||!i||!T2e(e,r,n))&&(l.push("<",e.tagName,u?" "+u:""),s&&(a.space==="svg"||o.settings.closeSelfClosing)&&(c=u.charAt(u.length-1),(!o.settings.tightSelfClosing||c==="/"||c&&c!=='"'&&c!=="'")&&l.push(" "),l.push("/")),l.push(">")),l.push(d),!s&&(!i||!_8(e,r,n))&&l.push(""),l.join("")}function P2e(e,r){const n=[];let o=-1,a;if(r){for(a in r)if(r[a]!==null&&r[a]!==void 0){const i=z2e(e,a,r[a]);i&&n.push(i)}}for(;++o_x(n,e.alternative)&&(s=e.alternative),l=s+gf(n,Object.assign({},e.settings.characterReferences,{subset:(s==="'"?Ex.single:Ex.double)[a][i],attribute:!0}))+s),c+(l&&"="+l))}const I2e=["<","&"];function iL(e,r,n,o){return n&&n.type==="element"&&(n.tagName==="script"||n.tagName==="style")?e.value:gf(e.value,Object.assign({},o.settings.characterReferences,{subset:I2e}))}function O2e(e,r,n,o){return o.settings.allowDangerousHtml?e.value:iL(e,r,n,o)}function j2e(e,r,n,o){return o.all(e)}const L2e=a8("type",{invalid:B2e,unknown:F2e,handlers:{comment:u2e,doctype:d2e,element:M2e,raw:O2e,root:j2e,text:iL}});function B2e(e){throw new Error("Expected node, not `"+e+"`")}function F2e(e){const r=e;throw new Error("Cannot compile unknown node `"+r.type+"`")}const H2e={},V2e={},q2e=[];function U2e(e,r){const n=r||H2e,o=n.quote||'"',a=o==='"'?"'":'"';if(o!=='"'&&o!=="'")throw new Error("Invalid quote `"+o+"`, expected `'` or `\"`");return{one:W2e,all:Y2e,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||GO,characterReferences:n.characterReferences||V2e,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space==="svg"?_1:lx,quote:o,alternative:a}.one(Array.isArray(e)?{type:"root",children:e}:e,void 0,void 0)}function W2e(e,r,n){return L2e(e,r,n,this)}function Y2e(e){const r=[],n=e&&e.children||q2e;let o=-1;for(;++o-1&&e.test(String.fromCharCode(n))}}function Q2e(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function J2e(e,r,n){const a=xx((n||{}).ignore||[]),i=ewe(r);let s=-1;for(;++s0?{type:"text",value:R}:void 0),R===!1?f.lastIndex=T+1:(b!==T&&C.push({type:"text",value:u.value.slice(b,T)}),Array.isArray(R)?C.push(...R):R&&C.push(R),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=_x(e,"(");let i=_x(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 sL(e,r){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Wd(n)||Cx(n))&&(!r||n!==47)}function ts(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}lL.peek=_we;function mwe(){this.buffer()}function gwe(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function ywe(){this.buffer()}function bwe(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function vwe(e){const r=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=ts(this.sliceSerialize(e)).toLowerCase(),n.label=r}function xwe(e){this.exit(e)}function wwe(e){const r=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=ts(this.sliceSerialize(e)).toLowerCase(),n.label=r}function kwe(e){this.exit(e)}function _we(){return"["}function lL(e,r,n,o){const a=n.createTracker(o);let i=a.move("[^");const s=n.enter("footnoteReference"),l=n.enter("reference");return i+=a.move(n.safe(n.associationId(e),{after:"]",before:i})),l(),s(),i+=a.move("]"),i}function Ewe(){return{enter:{gfmFootnoteCallString:mwe,gfmFootnoteCall:gwe,gfmFootnoteDefinitionLabelString:ywe,gfmFootnoteDefinition:bwe},exit:{gfmFootnoteCallString:vwe,gfmFootnoteCall:xwe,gfmFootnoteDefinitionLabelString:wwe,gfmFootnoteDefinition:kwe}}}function Swe(e){let r=!1;return e&&e.firstLineBlank&&(r=!0),{handlers:{footnoteDefinition:n,footnoteReference:lL},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(o,a,i,s){const l=i.createTracker(s);let c=l.move("[^");const u=i.enter("footnoteDefinition"),d=i.enter("label");return c+=l.move(i.safe(i.associationId(o),{before:c,after:"]"})),d(),c+=l.move("]:"),o.children&&o.children.length>0&&(l.shift(4),c+=l.move((r?` -`:" ")+i.indentLines(i.containerFlow(o,l.current()),r?cL:Cwe))),u(),c}}function Cwe(e,r,n){return r===0?e:cL(e,r,n)}function cL(e,r,n){return(n?"":" ")+e}const Twe=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];uL.peek=$we;function Awe(){return{canContainEols:["delete"],enter:{strikethrough:Nwe},exit:{strikethrough:Dwe}}}function Rwe(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:Twe}],handlers:{delete:uL}}}function Nwe(e){this.enter({type:"delete",children:[]},e)}function Dwe(e){this.exit(e)}function uL(e,r,n,o){const a=n.createTracker(o),i=n.enter("strikethrough");let s=a.move("~~");return s+=n.containerPhrasing(e,{...a.current(),before:s,after:"~"}),s+=a.move("~~"),i(),s}function $we(){return"~"}function Mwe(e){return e.length}function Pwe(e,r){const n=r||{},o=(n.align||[]).concat(),a=n.stringLength||Mwe,i=[],s=[],l=[],c=[];let u=0,d=-1;for(;++du&&(u=e[d].length);++kc[k])&&(c[k]=_)}x.push(C)}s[d]=x,l[d]=w}let h=-1;if(typeof o=="object"&&"length"in o)for(;++hc[h]&&(c[h]=C),g[h]=C),f[h]=_}s.splice(1,0,f),l.splice(1,0,g),d=-1;const b=[];for(;++d "),i.shift(2);const s=n.indentLines(n.containerFlow(e,i.current()),Owe);return a(),s}function Owe(e,r,n){return">"+(n?"":" ")+e}function jwe(e,r){return pL(e,r.inConstruct,!0)&&!pL(e,r.notInConstruct,!1)}function pL(e,r,n){if(typeof r=="string"&&(r=[r]),!r||r.length===0)return n;let o=-1;for(;++os&&(s=i):i=1,a=o+r.length,o=n.indexOf(r,a);return s}function Bwe(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 Fwe(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 Hwe(e,r,n,o){const a=Fwe(n),i=e.value||"",s=a==="`"?"GraveAccent":"Tilde";if(Bwe(e,n)){const h=n.enter("codeIndented"),f=n.indentLines(i,Vwe);return h(),f}const l=n.createTracker(o),c=a.repeat(Math.max(Lwe(i,a)+1,3)),u=n.enter("codeFenced");let d=l.move(c);if(e.lang){const h=n.enter(`codeFencedLang${s}`);d+=l.move(n.safe(e.lang,{before:d,after:" ",encode:["`"],...l.current()})),h()}if(e.lang&&e.meta){const h=n.enter(`codeFencedMeta${s}`);d+=l.move(" "),d+=l.move(n.safe(e.meta,{before:d,after:` -`,encode:["`"],...l.current()})),h()}return d+=l.move(` -`),i&&(d+=l.move(i+` -`)),d+=l.move(c),u(),d}function Vwe(e,r,n){return(n?"":" ")+e}function R8(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 qwe(e,r,n,o){const a=R8(n),i=a==='"'?"Quote":"Apostrophe",s=n.enter("definition");let l=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("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),u+=c.move("<"),u+=c.move(n.safe(e.url,{before:u,after:">",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":` -`,...c.current()}))),l(),e.title&&(l=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),l()),s(),u}function Uwe(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 O1(e){return"&#x"+e.toString(16).toUpperCase()+";"}function yf(e){if(e===null||Pr(e)||Wd(e))return 1;if(Cx(e))return 2}function Tx(e,r,n){const o=yf(e),a=yf(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}}fL.peek=Wwe;function fL(e,r,n,o){const a=Uwe(n),i=n.enter("emphasis"),s=n.createTracker(o),l=s.move(a);let c=s.move(n.containerPhrasing(e,{after:a,before:l,...s.current()}));const u=c.charCodeAt(0),d=Tx(o.before.charCodeAt(o.before.length-1),u,a);d.inside&&(c=O1(u)+c.slice(1));const h=c.charCodeAt(c.length-1),f=Tx(o.after.charCodeAt(0),h,a);f.inside&&(c=c.slice(0,-1)+O1(h));const g=s.move(a);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+g}function Wwe(e,r,n){return n.options.emphasis||"*"}const Ywe={};function Ax(e,r){const n=r||Ywe,o=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,a=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return mL(e,o,a)}function mL(e,r,n){if(Gwe(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 gL(e.children,r,n)}return Array.isArray(e)?gL(e,r,n):""}function gL(e,r,n){const o=[];let a=-1;for(;++a\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function Cve(e,r,n,o){const i=o.schema,a=i.space==="svg"?!1:o.settings.omitOptionalTags;let l=i.space==="svg"?o.settings.closeEmptyElements:o.settings.voids.includes(e.tagName.toLowerCase());const s=[];let c;i.space==="html"&&e.tagName==="svg"&&(o.schema=AB);const d=$ve(o,e.properties),u=o.all(i.space==="html"&&e.tagName==="template"?e.content:e);return o.schema=i,u&&(l=!1),(d||!a||!xve(e,r,n))&&(s.push("<",e.tagName,d?" "+d:""),l&&(i.space==="svg"||o.settings.closeSelfClosing)&&(c=d.charAt(d.length-1),(!o.settings.tightSelfClosing||c==="/"||c&&c!=='"'&&c!=="'")&&s.push(" "),s.push("/")),s.push(">")),s.push(u),!l&&(!a||!V_(e,r,n))&&s.push(""),s.join("")}function $ve(e,r){const n=[];let o=-1,i;if(r){for(i in r)if(r[i]!==null&&r[i]!==void 0){const a=Rve(e,i,r[i]);a&&n.push(a)}}for(;++oBb(n,e.alternative)&&(l=e.alternative),s=l+Lh(n,Object.assign({},e.settings.characterReferences,{subset:(l==="'"?Ib.single:Ib.double)[i][a],attribute:!0}))+l),c+(s&&"="+s))}const zve=["<","&"];function VB(e,r,n,o){return n&&n.type==="element"&&(n.tagName==="script"||n.tagName==="style")?e.value:Lh(e.value,Object.assign({},o.settings.characterReferences,{subset:zve}))}function Tve(e,r,n,o){return o.settings.allowDangerousHtml?e.value:VB(e,r,n,o)}function jve(e,r,n,o){return o.all(e)}const Ave=M0e("type",{invalid:Dve,unknown:Pve,handlers:{comment:tve,doctype:rve,element:Cve,raw:Tve,root:jve,text:VB}});function Dve(e){throw new Error("Expected node, not `"+e+"`")}function Pve(e){const r=e;throw new Error("Cannot compile unknown node `"+r.type+"`")}const Mve={},Nve={},Bve=[];function Ive(e,r){const n=r||Mve,o=n.quote||'"',i=o==='"'?"'":'"';if(o!=='"'&&o!=="'")throw new Error("Invalid quote `"+o+"`, expected `'` or `\"`");return{one:Ove,all:Lve,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||E0e,characterReferences:n.characterReferences||Nve,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space==="svg"?AB:P0e,quote:o,alternative:i}.one(Array.isArray(e)?{type:"root",children:e}:e,void 0,void 0)}function Ove(e,r,n){return Ave(e,r,n,this)}function Lve(e){const r=[],n=e&&e.children||Bve;let o=-1;for(;++o-1&&e.test(String.fromCharCode(n))}}function Uve(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const Fb=(function(e){if(e==null)return Xve;if(typeof e=="function")return Vb(e);if(typeof e=="object")return Array.isArray(e)?Wve(e):Gve(e);if(typeof e=="string")return Yve(e);throw new Error("Expected function, string, or object as test")});function Wve(e){const r=[];let n=-1;for(;++n":""))+")"})}return f;function f(){let m=qB,v,w,x;if((!r||a(c,d,u[u.length-1]||void 0))&&(m=Jve(n(c,u)),m[0]===U_))return m;if("children"in c&&c.children){const k=c;if(k.children&&m[0]!==Qve)for(w=(o?k.children.length:-1)+l,x=u.concat(k);w>-1&&w0?{type:"text",value:T}:void 0),T===!1?f.lastIndex=$+1:(v!==$&&C.push({type:"text",value:d.value.slice(v,$)}),Array.isArray(T)?C.push(...T):T&&C.push(T),v=$+_[0].length,k=!0),!f.global)break;_=f.exec(d.value)}return k?(v?\]}]+$/.exec(e);if(!r)return[e,void 0];e=e.slice(0,r.index);let n=r[0],o=n.indexOf(")");const i=Bb(e,"(");let a=Bb(e,")");for(;o!==-1&&i>a;)e+=n.slice(0,o+1),n=n.slice(o+1),o=n.indexOf(")"),a++;return[e,n]}function UB(e,r){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Nu(n)||Lb(n))&&(!r||n!==47)}function Ua(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}WB.peek=Sbe;function mbe(){this.buffer()}function ybe(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function vbe(){this.buffer()}function bbe(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function xbe(e){const r=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ua(this.sliceSerialize(e)).toLowerCase(),n.label=r}function wbe(e){this.exit(e)}function kbe(e){const r=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ua(this.sliceSerialize(e)).toLowerCase(),n.label=r}function _be(e){this.exit(e)}function Sbe(){return"["}function WB(e,r,n,o){const i=n.createTracker(o);let a=i.move("[^");const l=n.enter("footnoteReference"),s=n.enter("reference");return a+=i.move(n.safe(n.associationId(e),{after:"]",before:a})),s(),l(),a+=i.move("]"),a}function Ebe(){return{enter:{gfmFootnoteCallString:mbe,gfmFootnoteCall:ybe,gfmFootnoteDefinitionLabelString:vbe,gfmFootnoteDefinition:bbe},exit:{gfmFootnoteCallString:xbe,gfmFootnoteCall:wbe,gfmFootnoteDefinitionLabelString:kbe,gfmFootnoteDefinition:_be}}}function Cbe(e){let r=!1;return e&&e.firstLineBlank&&(r=!0),{handlers:{footnoteDefinition:n,footnoteReference:WB},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(o,i,a,l){const s=a.createTracker(l);let c=s.move("[^");const d=a.enter("footnoteDefinition"),u=a.enter("label");return c+=s.move(a.safe(a.associationId(o),{before:c,after:"]"})),u(),c+=s.move("]:"),o.children&&o.children.length>0&&(s.shift(4),c+=s.move((r?` +`:" ")+a.indentLines(a.containerFlow(o,s.current()),r?GB:$be))),d(),c}}function $be(e,r,n){return r===0?e:GB(e,r,n)}function GB(e,r,n){return(n?"":" ")+e}const Rbe=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];YB.peek=Dbe;function zbe(){return{canContainEols:["delete"],enter:{strikethrough:jbe},exit:{strikethrough:Abe}}}function Tbe(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:Rbe}],handlers:{delete:YB}}}function jbe(e){this.enter({type:"delete",children:[]},e)}function Abe(e){this.exit(e)}function YB(e,r,n,o){const i=n.createTracker(o),a=n.enter("strikethrough");let l=i.move("~~");return l+=n.containerPhrasing(e,{...i.current(),before:l,after:"~"}),l+=i.move("~~"),a(),l}function Dbe(){return"~"}function Pbe(e){return e.length}function Mbe(e,r){const n=r||{},o=(n.align||[]).concat(),i=n.stringLength||Pbe,a=[],l=[],s=[],c=[];let d=0,u=-1;for(;++ud&&(d=e[u].length);++kc[k])&&(c[k]=_)}w.push(C)}l[u]=w,s[u]=x}let p=-1;if(typeof o=="object"&&"length"in o)for(;++pc[p]&&(c[p]=C),m[p]=C),f[p]=_}l.splice(1,0,f),s.splice(1,0,m),u=-1;const v=[];for(;++u "),a.shift(2);const l=n.indentLines(n.containerFlow(e,a.current()),Ibe);return i(),l}function Ibe(e,r,n){return">"+(n?"":" ")+e}function Obe(e,r){return KB(e,r.inConstruct,!0)&&!KB(e,r.notInConstruct,!1)}function KB(e,r,n){if(typeof r=="string"&&(r=[r]),!r||r.length===0)return n;let o=-1;for(;++ol&&(l=a):a=1,i=o+r.length,o=n.indexOf(r,i);return l}function Fbe(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 Vbe(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 qbe(e,r,n,o){const i=Vbe(n),a=e.value||"",l=i==="`"?"GraveAccent":"Tilde";if(Fbe(e,n)){const p=n.enter("codeIndented"),f=n.indentLines(a,Hbe);return p(),f}const s=n.createTracker(o),c=i.repeat(Math.max(Lbe(a,i)+1,3)),d=n.enter("codeFenced");let u=s.move(c);if(e.lang){const p=n.enter(`codeFencedLang${l}`);u+=s.move(n.safe(e.lang,{before:u,after:" ",encode:["`"],...s.current()})),p()}if(e.lang&&e.meta){const p=n.enter(`codeFencedMeta${l}`);u+=s.move(" "),u+=s.move(n.safe(e.meta,{before:u,after:` +`,encode:["`"],...s.current()})),p()}return u+=s.move(` +`),a&&(u+=s.move(a+` +`)),u+=s.move(c),d(),u}function Hbe(e,r,n){return(n?"":" ")+e}function X_(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 Ube(e,r,n,o){const i=X_(n),a=i==='"'?"Quote":"Apostrophe",l=n.enter("definition");let s=n.enter("label");const c=n.createTracker(o);let d=c.move("[");return d+=c.move(n.safe(n.associationId(e),{before:d,after:"]",...c.current()})),d+=c.move("]: "),s(),!e.url||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),d+=c.move("<"),d+=c.move(n.safe(e.url,{before:d,after:">",...c.current()})),d+=c.move(">")):(s=n.enter("destinationRaw"),d+=c.move(n.safe(e.url,{before:d,after:e.title?" ":` +`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),d+=c.move(" "+i),d+=c.move(n.safe(e.title,{before:d,after:i,...c.current()})),d+=c.move(i),s()),l(),d}function Wbe(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 l1(e){return"&#x"+e.toString(16).toUpperCase()+";"}function Fh(e){if(e===null||Sr(e)||Nu(e))return 1;if(Lb(e))return 2}function qb(e,r,n){const o=Fh(e),i=Fh(r);return o===void 0?i===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:o===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}QB.peek=Gbe;function QB(e,r,n,o){const i=Wbe(n),a=n.enter("emphasis"),l=n.createTracker(o),s=l.move(i);let c=l.move(n.containerPhrasing(e,{after:i,before:s,...l.current()}));const d=c.charCodeAt(0),u=qb(o.before.charCodeAt(o.before.length-1),d,i);u.inside&&(c=l1(d)+c.slice(1));const p=c.charCodeAt(c.length-1),f=qb(o.after.charCodeAt(0),p,i);f.inside&&(c=c.slice(0,-1)+l1(p));const m=l.move(i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+m}function Gbe(e,r,n){return n.options.emphasis||"*"}function K_(e,r,n,o){let i,a,l;typeof r=="function"&&typeof n!="function"?(a=void 0,l=r,i=n):(a=r,l=n,i=o),HB(e,a,s,i);function s(c,d){const u=d[d.length-1],p=u?u.children.indexOf(c):void 0;return l(c,p,u)}}const Ybe={};function Hb(e,r){const n=r||Ybe,o=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return JB(e,o,i)}function JB(e,r,n){if(Xbe(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 eI(e.children,r,n)}return Array.isArray(e)?eI(e,r,n):""}function eI(e,r,n){const o=[];let i=-1;for(;++i",...c.current()})),u+=c.move(">")):(l=n.enter("destinationRaw"),u+=c.move(n.safe(e.url,{before:u,after:e.title?" ":")",...c.current()}))),l(),e.title&&(l=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),l()),u+=c.move(")"),s(),u}function Qwe(){return"!"}vL.peek=Jwe;function vL(e,r,n,o){const a=e.referenceType,i=n.enter("imageReference");let s=n.enter("label");const l=n.createTracker(o);let c=l.move("![");const u=n.safe(e.alt,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),s();const d=n.stack;n.stack=[],s=n.enter("reference");const h=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return s(),n.stack=d,i(),a==="full"||!u||u!==h?c+=l.move(h+"]"):a==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function Jwe(){return"!"}xL.peek=e4e;function xL(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))}kL.peek=t4e;function kL(e,r,n,o){const a=R8(n),i=a==='"'?"Quote":"Apostrophe",s=n.createTracker(o);let l,c;if(wL(e,n)){const d=n.stack;n.stack=[],l=n.enter("autolink");let h=s.move("<");return h+=s.move(n.containerPhrasing(e,{before:h,after:">",...s.current()})),h+=s.move(">"),l(),n.stack=d,h}l=n.enter("link"),c=n.enter("label");let u=s.move("[");return u+=s.move(n.containerPhrasing(e,{before:u,after:"](",...s.current()})),u+=s.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),u+=s.move("<"),u+=s.move(n.safe(e.url,{before:u,after:">",...s.current()})),u+=s.move(">")):(c=n.enter("destinationRaw"),u+=s.move(n.safe(e.url,{before:u,after:e.title?" ":")",...s.current()}))),c(),e.title&&(c=n.enter(`title${i}`),u+=s.move(" "+a),u+=s.move(n.safe(e.title,{before:u,after:a,...s.current()})),u+=s.move(a),c()),u+=s.move(")"),l(),u}function t4e(e,r,n){return wL(e,n)?"<":"["}_L.peek=r4e;function _L(e,r,n,o){const a=e.referenceType,i=n.enter("linkReference");let s=n.enter("label");const l=n.createTracker(o);let c=l.move("[");const u=n.containerPhrasing(e,{before:c,after:"]",...l.current()});c+=l.move(u+"]["),s();const d=n.stack;n.stack=[],s=n.enter("reference");const h=n.safe(n.associationId(e),{before:c,after:"]",...l.current()});return s(),n.stack=d,i(),a==="full"||!u||u!==h?c+=l.move(h+"]"):a==="shortcut"?c=c.slice(0,-1):c+=l.move("]"),c}function r4e(){return"["}function N8(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 n4e(e){const r=N8(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 o4e(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 EL(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 a4e(e,r,n,o){const a=n.enter("list"),i=n.bulletCurrent;let s=e.ordered?o4e(n):N8(n);const l=e.ordered?s==="."?")":".":n4e(n);let c=r&&n.bulletLastUsed?s===n.bulletLastUsed:!1;if(!e.ordered){const d=e.children?e.children[0]:void 0;if((s==="*"||s==="-")&&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),EL(n)===s&&d){let h=-1;for(;++h-1?r.start:1)+(n.options.incrementListMarker===!1?0:r.children.indexOf(e))+i);let s=i.length+1;(a==="tab"||a==="mixed"&&(r&&r.type==="list"&&r.spread||e.spread))&&(s=Math.ceil(s/4)*4);const l=n.createTracker(o);l.move(i+" ".repeat(s-i.length)),l.shift(s);const c=n.enter("listItem"),u=n.indentLines(n.containerFlow(e,l.current()),d);return c(),u;function d(h,f,g){return f?(g?"":" ".repeat(s))+h:(g?i:i+" ".repeat(s-i.length))+h}}function l4e(e,r,n,o){const a=n.enter("paragraph"),i=n.enter("phrasing"),s=n.containerPhrasing(e,o);return i(),a(),s}const c4e=xx(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function u4e(e,r,n,o){return(e.children.some(function(s){return c4e(s)})?n.containerPhrasing:n.containerFlow).call(n,e,o)}function d4e(e){const r=e.options.strong||"*";if(r!=="*"&&r!=="_")throw new Error("Cannot serialize strong with `"+r+"` for `options.strong`, expected `*`, or `_`");return r}SL.peek=p4e;function SL(e,r,n,o){const a=d4e(n),i=n.enter("strong"),s=n.createTracker(o),l=s.move(a+a);let c=s.move(n.containerPhrasing(e,{after:a,before:l,...s.current()}));const u=c.charCodeAt(0),d=Tx(o.before.charCodeAt(o.before.length-1),u,a);d.inside&&(c=O1(u)+c.slice(1));const h=c.charCodeAt(c.length-1),f=Tx(o.after.charCodeAt(0),h,a);f.inside&&(c=c.slice(0,-1)+O1(h));const g=s.move(a+a);return i(),n.attentionEncodeSurroundingInfo={after:f.outside,before:d.outside},l+c+g}function p4e(e,r,n){return n.options.strong||"*"}function h4e(e,r,n,o){return n.safe(e.value,o)}function f4e(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 m4e(e,r,n){const o=(EL(n)+(n.options.ruleSpaces?" ":"")).repeat(f4e(n));return n.options.ruleSpaces?o.slice(0,-1):o}const CL={blockquote:Iwe,break:hL,code:Hwe,definition:qwe,emphasis:fL,hardBreak:hL,heading:Kwe,html:yL,image:bL,imageReference:vL,inlineCode:xL,link:kL,linkReference:_L,list:a4e,listItem:s4e,paragraph:l4e,root:u4e,strong:SL,text:h4e,thematicBreak:m4e},TL={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:"‌"},g4e={}.hasOwnProperty;function D8(e){return g4e.call(TL,e)?TL[e]:!1}function AL(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 y4e=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function b4e(e){return e.replace(y4e,v4e)}function v4e(e,r,n){if(r)return r;if(n.charCodeAt(0)===35){const a=n.charCodeAt(1),i=a===120||a===88;return AL(n.slice(i?2:1),i?16:10)}return D8(n)||e}function x4e(){return{enter:{table:w4e,tableData:RL,tableHeader:RL,tableRow:_4e},exit:{codeText:E4e,table:k4e,tableData:$8,tableHeader:$8,tableRow:$8}}}function w4e(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 k4e(e){this.exit(e),this.data.inTable=void 0}function _4e(e){this.enter({type:"tableRow",children:[]},e)}function $8(e){this.exit(e)}function RL(e){this.enter({type:"tableCell",children:[]},e)}function E4e(e){let r=this.resume();this.data.inTable&&(r=r.replace(/\\([\\|])/g,S4e));const n=this.stack[this.stack.length-1];n.type,n.value=r,this.exit(e)}function S4e(e,r){return r==="|"?r:e}function C4e(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:s,tableCell:c,tableRow:l}};function s(g,b,x,w){return u(d(g,x,w),g.align)}function l(g,b,x,w){const k=h(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 Pwe(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)s=Array.from(o),s.unshift(r,n),e.splice(...s);else for(n&&e.splice(r,n);i0?(Da(e,e.length,0,r),e):r}const DL={}.hasOwnProperty;function $L(e){const r={};let n=-1;for(;++n0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}function bf(e){const r=[];let n=-1,o=0,a=0;for(;++n55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(s=String.fromCharCode(i,l),a=1):s="�"}else s=String.fromCharCode(i);s&&(r.push(e.slice(o,n),encodeURIComponent(s)),o=n+a+1,s=""),a&&(n+=a,a=0)}return r.join("")+e.slice(o)}function Rx(e,r,n){const o=[];let a=-1;for(;++a1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const h={...e[o][1].end},f={...e[n][1].start};FL(h,-c),FL(f,c),s={type:c>1?"strongSequence":"emphasisSequence",start:h,end:{...e[o][1].end}},l={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:{...s.start},end:{...l.end}},e[o][1].end={...s.start},e[n][1].start={...l.end},u=[],e[o][1].end.offset-e[o][1].start.offset&&(u=di(u,[["enter",e[o][1],r],["exit",e[o][1],r]])),u=di(u,[["enter",a,r],["enter",s,r],["exit",s,r],["enter",i,r]]),u=di(u,Rx(r.parser.constructs.insideSpan.null,e.slice(o+1,n),r)),u=di(u,[["exit",i,r],["enter",l,r],["exit",l,r],["exit",a,r]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=di(u,[["enter",e[n][1],r],["exit",e[n][1],r]])):d=0,Da(e,o-1,n-o+3,u),n=o+u.length-d-2;break}}for(n=-1;++n0&&Jt(R)?lr(e,C,"linePrefix",i+1)(R):C(R)}function C(R){return R===null||Et(R)?e.check(UL,x,T)(R):(e.enter("codeFlowValue"),_(R))}function _(R){return R===null||Et(R)?(e.exit("codeFlowValue"),C(R)):(e.consume(R),_)}function T(R){return e.exit("codeFenced"),r(R)}function A(R,D,N){let M=0;return O;function O(V){return R.enter("lineEnding"),R.consume(V),R.exit("lineEnding"),F}function F(V){return R.enter("codeFencedFence"),Jt(V)?lr(R,L,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(V):L(V)}function L(V){return V===l?(R.enter("codeFencedFenceSequence"),U(V)):N(V)}function U(V){return V===l?(M++,R.consume(V),U):M>=s?(R.exit("codeFencedFenceSequence"),Jt(V)?lr(R,P,"whitespace")(V):P(V)):N(V)}function P(V){return V===null||Et(V)?(R.exit("codeFencedFence"),D(V)):N(V)}}}function nke(e,r,n){const o=this;return a;function a(s){return s===null?n(s):(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),i)}function i(s){return o.parser.lazy[o.now().line]?n(s):r(s)}}const I8={name:"codeIndented",tokenize:ake},oke={partial:!0,tokenize:ike};function ake(e,r,n){const o=this;return a;function a(u){return e.enter("codeIndented"),lr(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?s(u):n(u)}function s(u){return u===null?c(u):Et(u)?e.attempt(oke,s,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||Et(u)?(e.exit("codeFlowValue"),s(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),r(u)}}function ike(e,r,n){const o=this;return a;function a(s){return o.parser.lazy[o.now().line]?n(s):Et(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),a):lr(e,i,"linePrefix",5)(s)}function i(s){const l=o.events[o.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?r(s):Et(s)?a(s):n(s)}}const ske={name:"codeText",previous:cke,resolve:lke,tokenize:uke};function lke(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&&L1(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),L1(this.left,r)}unshift(r){this.setCursor(0),this.right.push(r)}unshiftMany(r){this.setCursor(0),L1(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(s):e.interrupt(o.parser.constructs.flow,n,r)(s)}}function GL(e,r,n,o,a,i,s,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return h;function h(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||Sx(k)?n(k):(e.enter(o),e.enter(s),e.enter(l),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(l),e.enter("chunkString",{contentType:"string"}),g(k))}function g(k){return k===62?(e.exit("chunkString"),e.exit(l),f(k)):k===null||k===60||Et(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||Pr(k))?(e.exit("chunkString"),e.exit(l),e.exit(s),e.exit(o),r(k)):d999||g===null||g===91||g===93&&!c||g===94&&!l&&"_hiddenFootnoteSupport"in s.parser.constructs?n(g):g===93?(e.exit(i),e.enter(a),e.consume(g),e.exit(a),e.exit(o),r):Et(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),h(g))}function h(g){return g===null||g===91||g===93||Et(g)||l++>999?(e.exit("chunkString"),d(g)):(e.consume(g),c||(c=!Jt(g)),g===92?f:h)}function f(g){return g===91||g===92||g===93?(e.consume(g),l++,h):h(g)}}function KL(e,r,n,o,a,i){let s;return l;function l(f){return f===34||f===39||f===40?(e.enter(o),e.enter(a),e.consume(f),e.exit(a),s=f===40?41:f,c):n(f)}function c(f){return f===s?(e.enter(a),e.consume(f),e.exit(a),e.exit(o),r):(e.enter(i),u(f))}function u(f){return f===s?(e.exit(i),c(s)):f===null?n(f):Et(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),lr(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(f))}function d(f){return f===s||f===null||Et(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?h:d)}function h(f){return f===s||f===92?(e.consume(f),d):d(f)}}function B1(e,r){let n;return o;function o(a){return Et(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),n=!0,o):Jt(a)?lr(e,o,n?"linePrefix":"lineSuffix")(a):r(a)}}const bke={name:"definition",tokenize:xke},vke={partial:!0,tokenize:wke};function xke(e,r,n){const o=this;let a;return i;function i(g){return e.enter("definition"),s(g)}function s(g){return XL.call(o,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(g)}function l(g){return a=ts(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 Pr(g)?B1(e,u)(g):u(g)}function u(g){return GL(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(g)}function d(g){return e.attempt(vke,h,h)(g)}function h(g){return Jt(g)?lr(e,f,"whitespace")(g):f(g)}function f(g){return g===null||Et(g)?(e.exit("definition"),o.parser.defined.push(a),r(g)):n(g)}}function wke(e,r,n){return o;function o(l){return Pr(l)?B1(e,a)(l):n(l)}function a(l){return KL(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return Jt(l)?lr(e,s,"whitespace")(l):s(l)}function s(l){return l===null||Et(l)?r(l):n(l)}}const kke={name:"hardBreakEscape",tokenize:_ke};function _ke(e,r,n){return o;function o(i){return e.enter("hardBreakEscape"),e.consume(i),a}function a(i){return Et(i)?(e.exit("hardBreakEscape"),r(i)):n(i)}}const Eke={name:"headingAtx",resolve:Ske,tokenize:Cke};function Ske(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"},Da(e,o,n-o+1,[["enter",a,r],["enter",i,r],["exit",i,r],["exit",a,r]])),e}function Cke(e,r,n){let o=0;return a;function a(d){return e.enter("atxHeading"),i(d)}function i(d){return e.enter("atxHeadingSequence"),s(d)}function s(d){return d===35&&o++<6?(e.consume(d),s):d===null||Pr(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||Et(d)?(e.exit("atxHeading"),r(d)):Jt(d)?lr(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||Pr(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const Tke=["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"],ZL=["pre","script","style","textarea"],Ake={concrete:!0,name:"htmlFlow",resolveTo:Dke,tokenize:$ke},Rke={partial:!0,tokenize:Pke},Nke={partial:!0,tokenize:Mke};function Dke(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 $ke(e,r,n){const o=this;let a,i,s,l,c;return u;function u(j){return d(j)}function d(j){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(j),h}function h(j){return j===33?(e.consume(j),f):j===47?(e.consume(j),i=!0,x):j===63?(e.consume(j),a=3,o.interrupt?r:W):Go(j)?(e.consume(j),s=String.fromCharCode(j),w):n(j)}function f(j){return j===45?(e.consume(j),a=2,g):j===91?(e.consume(j),a=5,l=0,b):Go(j)?(e.consume(j),a=4,o.interrupt?r:W):n(j)}function g(j){return j===45?(e.consume(j),o.interrupt?r:W):n(j)}function b(j){const Y="CDATA[";return j===Y.charCodeAt(l++)?(e.consume(j),l===Y.length?o.interrupt?r:L:b):n(j)}function x(j){return Go(j)?(e.consume(j),s=String.fromCharCode(j),w):n(j)}function w(j){if(j===null||j===47||j===62||Pr(j)){const Y=j===47,Q=s.toLowerCase();return!Y&&!i&&ZL.includes(Q)?(a=1,o.interrupt?r(j):L(j)):Tke.includes(s.toLowerCase())?(a=6,Y?(e.consume(j),k):o.interrupt?r(j):L(j)):(a=7,o.interrupt&&!o.parser.lazy[o.now().line]?n(j):i?C(j):_(j))}return j===45||Po(j)?(e.consume(j),s+=String.fromCharCode(j),w):n(j)}function k(j){return j===62?(e.consume(j),o.interrupt?r:L):n(j)}function C(j){return Jt(j)?(e.consume(j),C):O(j)}function _(j){return j===47?(e.consume(j),O):j===58||j===95||Go(j)?(e.consume(j),T):Jt(j)?(e.consume(j),_):O(j)}function T(j){return j===45||j===46||j===58||j===95||Po(j)?(e.consume(j),T):A(j)}function A(j){return j===61?(e.consume(j),R):Jt(j)?(e.consume(j),A):_(j)}function R(j){return j===null||j===60||j===61||j===62||j===96?n(j):j===34||j===39?(e.consume(j),c=j,D):Jt(j)?(e.consume(j),R):N(j)}function D(j){return j===c?(e.consume(j),c=null,M):j===null||Et(j)?n(j):(e.consume(j),D)}function N(j){return j===null||j===34||j===39||j===47||j===60||j===61||j===62||j===96||Pr(j)?A(j):(e.consume(j),N)}function M(j){return j===47||j===62||Jt(j)?_(j):n(j)}function O(j){return j===62?(e.consume(j),F):n(j)}function F(j){return j===null||Et(j)?L(j):Jt(j)?(e.consume(j),F):n(j)}function L(j){return j===45&&a===2?(e.consume(j),I):j===60&&a===1?(e.consume(j),H):j===62&&a===4?(e.consume(j),G):j===63&&a===3?(e.consume(j),W):j===93&&a===5?(e.consume(j),Z):Et(j)&&(a===6||a===7)?(e.exit("htmlFlowData"),e.check(Rke,K,U)(j)):j===null||Et(j)?(e.exit("htmlFlowData"),U(j)):(e.consume(j),L)}function U(j){return e.check(Nke,P,K)(j)}function P(j){return e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),V}function V(j){return j===null||Et(j)?U(j):(e.enter("htmlFlowData"),L(j))}function I(j){return j===45?(e.consume(j),W):L(j)}function H(j){return j===47?(e.consume(j),s="",q):L(j)}function q(j){if(j===62){const Y=s.toLowerCase();return ZL.includes(Y)?(e.consume(j),G):L(j)}return Go(j)&&s.length<8?(e.consume(j),s+=String.fromCharCode(j),q):L(j)}function Z(j){return j===93?(e.consume(j),W):L(j)}function W(j){return j===62?(e.consume(j),G):j===45&&a===2?(e.consume(j),W):L(j)}function G(j){return j===null||Et(j)?(e.exit("htmlFlowData"),K(j)):(e.consume(j),G)}function K(j){return e.exit("htmlFlow"),r(j)}}function Mke(e,r,n){const o=this;return a;function a(s){return Et(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),i):n(s)}function i(s){return o.parser.lazy[o.now().line]?n(s):r(s)}}function Pke(e,r,n){return o;function o(a){return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),e.attempt(j1,r,n)}}const zke={name:"htmlText",tokenize:Ike};function Ike(e,r,n){const o=this;let a,i,s;return l;function l(W){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(W),c}function c(W){return W===33?(e.consume(W),u):W===47?(e.consume(W),A):W===63?(e.consume(W),_):Go(W)?(e.consume(W),N):n(W)}function u(W){return W===45?(e.consume(W),d):W===91?(e.consume(W),i=0,b):Go(W)?(e.consume(W),C):n(W)}function d(W){return W===45?(e.consume(W),g):n(W)}function h(W){return W===null?n(W):W===45?(e.consume(W),f):Et(W)?(s=h,H(W)):(e.consume(W),h)}function f(W){return W===45?(e.consume(W),g):h(W)}function g(W){return W===62?I(W):W===45?f(W):h(W)}function b(W){const G="CDATA[";return W===G.charCodeAt(i++)?(e.consume(W),i===G.length?x:b):n(W)}function x(W){return W===null?n(W):W===93?(e.consume(W),w):Et(W)?(s=x,H(W)):(e.consume(W),x)}function w(W){return W===93?(e.consume(W),k):x(W)}function k(W){return W===62?I(W):W===93?(e.consume(W),k):x(W)}function C(W){return W===null||W===62?I(W):Et(W)?(s=C,H(W)):(e.consume(W),C)}function _(W){return W===null?n(W):W===63?(e.consume(W),T):Et(W)?(s=_,H(W)):(e.consume(W),_)}function T(W){return W===62?I(W):_(W)}function A(W){return Go(W)?(e.consume(W),R):n(W)}function R(W){return W===45||Po(W)?(e.consume(W),R):D(W)}function D(W){return Et(W)?(s=D,H(W)):Jt(W)?(e.consume(W),D):I(W)}function N(W){return W===45||Po(W)?(e.consume(W),N):W===47||W===62||Pr(W)?M(W):n(W)}function M(W){return W===47?(e.consume(W),I):W===58||W===95||Go(W)?(e.consume(W),O):Et(W)?(s=M,H(W)):Jt(W)?(e.consume(W),M):I(W)}function O(W){return W===45||W===46||W===58||W===95||Po(W)?(e.consume(W),O):F(W)}function F(W){return W===61?(e.consume(W),L):Et(W)?(s=F,H(W)):Jt(W)?(e.consume(W),F):M(W)}function L(W){return W===null||W===60||W===61||W===62||W===96?n(W):W===34||W===39?(e.consume(W),a=W,U):Et(W)?(s=L,H(W)):Jt(W)?(e.consume(W),L):(e.consume(W),P)}function U(W){return W===a?(e.consume(W),a=void 0,V):W===null?n(W):Et(W)?(s=U,H(W)):(e.consume(W),U)}function P(W){return W===null||W===34||W===39||W===60||W===61||W===96?n(W):W===47||W===62||Pr(W)?M(W):(e.consume(W),P)}function V(W){return W===47||W===62||Pr(W)?M(W):n(W)}function I(W){return W===62?(e.consume(W),e.exit("htmlTextData"),e.exit("htmlText"),r):n(W)}function H(W){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(W),e.exit("lineEnding"),q}function q(W){return Jt(W)?lr(e,Z,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(W):Z(W)}function Z(W){return e.enter("htmlTextData"),s(W)}}const O8={name:"labelEnd",resolveAll:Bke,resolveTo:Fke,tokenize:Hke},Oke={tokenize:Vke},jke={tokenize:qke},Lke={tokenize:Uke};function Bke(e){let r=-1;const n=[];for(;++r=3&&(u===null||Et(u))?(e.exit("thematicBreak"),r(u)):n(u)}function c(u){return u===a?(e.consume(u),o++,c):(e.exit("thematicBreakSequence"),Jt(u)?lr(e,l,"whitespace")(u):l(u))}}const ia={continuation:{tokenize:t5e},exit:n5e,name:"list",tokenize:e5e},Qke={partial:!0,tokenize:o5e},Jke={partial:!0,tokenize:r5e};function e5e(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,s=0;return l;function l(g){const b=o.containerState.type||(g===42||g===43||g===45?"listUnordered":"listOrdered");if(b==="listUnordered"?!o.containerState.marker||g===o.containerState.marker:S8(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(Nx,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 S8(g)&&++s<10?(e.consume(g),c):(!o.interrupt||s<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(Qke,f,h))}function d(g){return o.containerState.initialBlankLine=!0,i++,f(g)}function h(g){return Jt(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 t5e(e,r,n){const o=this;return o.containerState._closeFlow=void 0,e.check(j1,a,i);function a(l){return o.containerState.furtherBlankLines=o.containerState.furtherBlankLines||o.containerState.initialBlankLine,lr(e,r,"listItemIndent",o.containerState.size+1)(l)}function i(l){return o.containerState.furtherBlankLines||!Jt(l)?(o.containerState.furtherBlankLines=void 0,o.containerState.initialBlankLine=void 0,s(l)):(o.containerState.furtherBlankLines=void 0,o.containerState.initialBlankLine=void 0,e.attempt(Jke,r,s)(l))}function s(l){return o.containerState._closeFlow=!0,o.interrupt=void 0,lr(e,e.attempt(ia,r,n),"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function r5e(e,r,n){const o=this;return lr(e,a,"listItemIndent",o.containerState.size+1);function a(i){const s=o.events[o.events.length-1];return s&&s[1].type==="listItemIndent"&&s[2].sliceSerialize(s[1],!0).length===o.containerState.size?r(i):n(i)}}function n5e(e){e.exit(this.containerState.type)}function o5e(e,r,n){const o=this;return lr(e,a,"listItemPrefixWhitespace",o.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function a(i){const s=o.events[o.events.length-1];return!Jt(i)&&s&&s[1].type==="listItemPrefixWhitespace"?r(i):n(i)}}const QL={name:"setextUnderline",resolveTo:a5e,tokenize:i5e};function a5e(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 s={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",s,r]),e.splice(i+1,0,["exit",e[o][1],r]),e[o][1].end={...e[i][1].end}):e[o][1]=s,e.push(["exit",s,r]),e}function i5e(e,r,n){const o=this;let a;return i;function i(u){let d=o.events.length,h;for(;d--;)if(o.events[d][1].type!=="lineEnding"&&o.events[d][1].type!=="linePrefix"&&o.events[d][1].type!=="content"){h=o.events[d][1].type==="paragraph";break}return!o.parser.lazy[o.now().line]&&(o.interrupt||h)?(e.enter("setextHeadingLine"),a=u,s(u)):n(u)}function s(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===a?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),Jt(u)?lr(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||Et(u)?(e.exit("setextHeadingLine"),r(u)):n(u)}}const s5e={tokenize:m5e,partial:!0};function l5e(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:p5e,continuation:{tokenize:h5e},exit:f5e}},text:{91:{name:"gfmFootnoteCall",tokenize:d5e},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:c5e,resolveTo:u5e}}}}function c5e(e,r,n){const o=this;let a=o.events.length;const i=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let s;for(;a--;){const c=o.events[a][1];if(c.type==="labelImage"){s=c;break}if(c.type==="gfmFootnoteCall"||c.type==="labelLink"||c.type==="label"||c.type==="image"||c.type==="link")break}return l;function l(c){if(!s||!s._balanced)return n(c);const u=ts(o.sliceSerialize({start:s.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 u5e(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)},s={type:"chunkString",contentType:"string",start:Object.assign({},i.start),end:Object.assign({},i.end)},l=[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",s,r],["exit",s,r],["exit",i,r],e[e.length-2],e[e.length-1],["exit",o,r]];return e.splice(n,e.length-n+1,...l),e}function d5e(e,r,n){const o=this,a=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let i=0,s;return l;function l(h){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),c}function c(h){return h!==94?n(h):(e.enter("gfmFootnoteCallMarker"),e.consume(h),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",u)}function u(h){if(i>999||h===93&&!s||h===null||h===91||Pr(h))return n(h);if(h===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return a.includes(ts(o.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(h),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),r):n(h)}return Pr(h)||(s=!0),i++,e.consume(h),h===92?d:u}function d(h){return h===91||h===92||h===93?(e.consume(h),i++,u):u(h)}}function p5e(e,r,n){const o=this,a=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let i,s=0,l;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(s>999||b===93&&!l||b===null||b===91||Pr(b))return n(b);if(b===93){e.exit("chunkString");const x=e.exit("gfmFootnoteDefinitionLabelString");return i=ts(o.sliceSerialize(x)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return Pr(b)||(l=!0),s++,e.consume(b),b===92?h:d}function h(b){return b===91||b===92||b===93?(e.consume(b),s++,d):d(b)}function f(b){return b===58?(e.enter("definitionMarker"),e.consume(b),e.exit("definitionMarker"),a.includes(i)||a.push(i),lr(e,g,"gfmFootnoteDefinitionWhitespace")):n(b)}function g(b){return r(b)}}function h5e(e,r,n){return e.check(j1,r,e.attempt(s5e,r,n))}function f5e(e){e.exit("gfmFootnoteDefinition")}function m5e(e,r,n){const o=this;return lr(e,a,"gfmFootnoteDefinitionIndent",5);function a(i){const s=o.events[o.events.length-1];return s&&s[1].type==="gfmFootnoteDefinitionIndent"&&s[2].sliceSerialize(s[1],!0).length===4?r(i):n(i)}}function g5e(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(s,l){let c=-1;for(;++c1?c(b):(s.consume(b),h++,g);if(h<2&&!n)return c(b);const w=s.exit("strikethroughSequenceTemporary"),k=yf(b);return w._open=!k||k===2&&!!x,w._close=!x||x===2&&!!k,l(b)}}}class y5e{constructor(){this.map=[]}add(r,n,o){b5e(this,r,n,o)}consume(r){if(this.map.sort(function(i,s){return i[0]-s[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 b5e(e,r,n,o){let a=0;if(!(n===0&&o.length===0)){for(;a-1;){const P=o.events[F][1].type;if(P==="lineEnding"||P==="linePrefix")F--;else break}const L=F>-1?o.events[F][1].type:null,U=L==="tableHead"||L==="tableRow"?R:c;return U===R&&o.parser.lazy[o.now().line]?n(O):U(O)}function c(O){return e.enter("tableHead"),e.enter("tableRow"),u(O)}function u(O){return O===124||(s=!0,i+=1),d(O)}function d(O){return O===null?n(O):Et(O)?i>1?(i=0,o.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(O),e.exit("lineEnding"),g):n(O):Jt(O)?lr(e,d,"whitespace")(O):(i+=1,s&&(s=!1,a+=1),O===124?(e.enter("tableCellDivider"),e.consume(O),e.exit("tableCellDivider"),s=!0,d):(e.enter("data"),h(O)))}function h(O){return O===null||O===124||Pr(O)?(e.exit("data"),d(O)):(e.consume(O),O===92?f:h)}function f(O){return O===92||O===124?(e.consume(O),h):h(O)}function g(O){return o.interrupt=!1,o.parser.lazy[o.now().line]?n(O):(e.enter("tableDelimiterRow"),s=!1,Jt(O)?lr(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?(s=!0,e.enter("tableCellDivider"),e.consume(O),e.exit("tableCellDivider"),x):A(O)}function x(O){return Jt(O)?lr(e,w,"whitespace")(O):w(O)}function w(O){return O===58?(i+=1,s=!0,e.enter("tableDelimiterMarker"),e.consume(O),e.exit("tableDelimiterMarker"),k):O===45?(i+=1,k(O)):O===null||Et(O)?T(O):A(O)}function k(O){return O===45?(e.enter("tableDelimiterFiller"),C(O)):A(O)}function C(O){return O===45?(e.consume(O),C):O===58?(s=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(O),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(O))}function _(O){return Jt(O)?lr(e,T,"whitespace")(O):T(O)}function T(O){return O===124?b(O):O===null||Et(O)?!s||a!==i?A(O):(e.exit("tableDelimiterRow"),e.exit("tableHead"),r(O)):A(O)}function A(O){return n(O)}function R(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||Et(O)?(e.exit("tableRow"),r(O)):Jt(O)?lr(e,D,"whitespace")(O):(e.enter("data"),N(O))}function N(O){return O===null||O===124||Pr(O)?(e.exit("data"),D(O)):(e.consume(O),O===92?M:N)}function M(O){return O===92||O===124?(e.consume(O),N):N(O)}}function k5e(e,r){let n=-1,o=!0,a=0,i=[0,0,0,0],s=[0,0,0,0],l=!1,c=0,u,d,h;const f=new y5e;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",h,r]])}return a!==void 0&&(i.end=Object.assign({},vf(r.events,a)),e.add(a,0,[["exit",i,r]]),i=void 0),i}function JL(e,r,n,o,a){const i=[],s=vf(r.events,n);a&&(a.end=Object.assign({},s),i.push(["exit",a,r])),o.end=Object.assign({},s),i.push(["exit",o,r]),e.add(n+1,0,i)}function vf(e,r){const n=e[r],o=n[0]==="enter"?"start":"end";return n[1][o]}const _5e={name:"tasklistCheck",tokenize:S5e};function E5e(){return{text:{91:_5e}}}function S5e(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 Pr(c)?(e.enter("taskListCheckValueUnchecked"),e.consume(c),e.exit("taskListCheckValueUnchecked"),s):c===88||c===120?(e.enter("taskListCheckValueChecked"),e.consume(c),e.exit("taskListCheckValueChecked"),s):n(c)}function s(c){return c===93?(e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(c)}function l(c){return Et(c)?r(c):Jt(c)?e.check({tokenize:C5e},r,n)(c):n(c)}}function C5e(e,r,n){return lr(e,o,"whitespace");function o(a){return a===null?n(a):r(a)}}function T5e(e){return $L([O4e(),l5e(),g5e(e),x5e(),E5e()])}const A5e={};function R5e(e){const r=this,n=e||A5e,o=r.data(),a=o.micromarkExtensions||(o.micromarkExtensions=[]),i=o.fromMarkdownExtensions||(o.fromMarkdownExtensions=[]),s=o.toMarkdownExtensions||(o.toMarkdownExtensions=[]);a.push(T5e(n)),i.push(D4e()),s.push($4e(n))}const N5e={tokenize:D5e};function D5e(e){const r=e.attempt(this.parser.constructs.contentInitial,o,a);let n;return r;function o(l){if(l===null){e.consume(l);return}return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),lr(e,r,"linePrefix")}function a(l){return e.enter("paragraph"),i(l)}function i(l){const c=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=c),n=c,s(l)}function s(l){if(l===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(l);return}return Et(l)?(e.consume(l),e.exit("chunkText"),i):(e.consume(l),s)}}const $5e={tokenize:M5e},eB={tokenize:P5e};function M5e(e){const r=this,n=[];let o=0,a,i,s;return l;function l(_){if(os))return;const D=r.events.length;let N=D,M,O;for(;N--;)if(r.events[N][0]==="exit"&&r.events[N][1].type==="chunkFlow"){if(M){O=r.events[N][1].end;break}M=!0}for(k(o),R=D;R_;){const A=n[T];r.containerState=A[1],A[0].exit.call(r,e)}n.length=_}function C(){a.write([null]),i=void 0,a=void 0,r.containerState._closeFlow=void 0}}function P5e(e,r,n){return lr(e,e.attempt(this.parser.constructs.document,r,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}const z5e={tokenize:I5e};function I5e(e){const r=this,n=e.attempt(j1,o,e.attempt(this.parser.constructs.flowInitial,a,lr(e,e.attempt(this.parser.constructs.flow,a,e.attempt(hke,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 O5e={resolveAll:rB()},j5e=tB("string"),L5e=tB("text");function tB(e){return{resolveAll:rB(e==="text"?B5e:void 0),tokenize:r};function r(n){const o=this,a=this.parser.constructs[e],i=n.attempt(a,s,l);return s;function s(d){return u(d)?i(d):l(d)}function l(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 h=a[d];let f=-1;if(h)for(;++f-1){const l=s[0];typeof l=="string"?s[0]=l.slice(o):s.shift()}i>0&&s.push(e[a].slice(0,i))}return s}function q5e(e,r){let n=-1;const o=[];let a;for(;++n0){const Fr=it.tokenStack[it.tokenStack.length-1];(Fr[1]||cB).call(it,void 0,Fr[0])}for(Se.position={start:gu(Ee.length>0?Ee[0][1].start:{line:1,column:1,offset:0}),end:gu(Ee.length>0?Ee[Ee.length-2][1].end:{line:1,column:1,offset:0})},zt=-1;++zt1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(s)}]};e.patch(r,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(r,u),e.applyData(r,u)}function n_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 o_e(e,r){if(e.options.allowDangerousHtml){const n={type:"raw",value:r.value};return e.patch(r,n),e.applyData(r,n)}}function uB(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 s=a[a.length-1];return s&&s.type==="text"?s.value+=o:a.push({type:"text",value:o}),a}function a_e(e,r){const n=String(r.identifier).toUpperCase(),o=e.definitionById.get(n);if(!o)return uB(e,r);const a={src:bf(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 i_e(e,r){const n={src:bf(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 s_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 l_e(e,r){const n=String(r.identifier).toUpperCase(),o=e.definitionById.get(n);if(!o)return uB(e,r);const a={href:bf(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 c_e(e,r){const n={href:bf(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 u_e(e,r,n){const o=e.all(r),a=n?d_e(n):dB(r),i={},s=[];if(typeof r.checked=="boolean"){const d=o[0];let h;d&&d.type==="element"&&d.tagName==="p"?h=d:(h={type:"element",tagName:"p",properties:{},children:[]},o.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:r.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l1}function p_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 s={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=rc(r.children[1]),c=vx(r.children[r.children.length-1]);l&&c&&(s.position={start:l,end:c}),a.push(s)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(a,!0)};return e.patch(r,i),e.applyData(r,i)}function y_e(e,r,n){const o=n?n.children:void 0,i=(o?o.indexOf(r):1)===0?"th":"td",s=n&&n.type==="table"?n.align:void 0,l=s?s.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(fB(r.slice(a),a>0,!1)),i.join("")}function fB(e,r,n){let o=0,a=e.length;if(r){let i=e.codePointAt(o);for(;i===pB||i===hB;)o++,i=e.codePointAt(o)}if(n){let i=e.codePointAt(a-1);for(;i===pB||i===hB;)a--,i=e.codePointAt(a-1)}return a>o?e.slice(o,a):""}function x_e(e,r){const n={type:"text",value:v_e(String(r.value))};return e.patch(r,n),e.applyData(r,n)}function w_e(e,r){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(r,n),e.applyData(r,n)}const k_e={blockquote:Z5e,break:Q5e,code:J5e,delete:e_e,emphasis:t_e,footnoteReference:r_e,heading:n_e,html:o_e,imageReference:a_e,image:i_e,inlineCode:s_e,linkReference:l_e,link:c_e,listItem:u_e,list:p_e,paragraph:h_e,root:f_e,strong:m_e,table:g_e,tableCell:b_e,tableRow:y_e,text:x_e,thematicBreak:w_e,toml:$x,yaml:$x,definition:$x,footnoteDefinition:$x};function $x(){}function __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 E_e(e,r){return"Back to reference "+(e+1)+(r>1?"-"+r:"")}function S_e(e){const r=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||__e,o=e.options.footnoteBackLabel||E_e,a=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",s=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];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),l.push(k)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Ld(s),id:"footnote-label"},children:[{type:"text",value:a}]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` -`}]}}const B8={}.hasOwnProperty,C_e={};function T_e(e,r){const n=r||C_e,o=new Map,a=new Map,i=new Map,s={...k_e,...n.handlers},l={all:u,applyData:R_e,definitionById:o,footnoteById:a,footnoteCounts:i,footnoteOrder:[],handlers:s,one:c,options:n,patch:A_e,wrap:D_e};return v8(e,function(d){if(d.type==="definition"||d.type==="footnoteDefinition"){const h=d.type==="definition"?o:a,f=String(d.identifier).toUpperCase();h.has(f)||h.set(f,d)}}),l;function c(d,h){const f=d.type,g=l.handlers[f];if(B8.call(l.handlers,f)&&g)return g(l,d,h);if(l.options.passThrough&&l.options.passThrough.includes(f)){if("children"in d){const{children:x,...w}=d,k=Ld(w);return k.children=l.all(d),k}return Ld(d)}return(l.options.unknownHandler||N_e)(l,d,h)}function u(d){const h=[];if("children"in d){const f=d.children;let g=-1;for(;++g",...c.current()})),d+=c.move(">")):(s=n.enter("destinationRaw"),d+=c.move(n.safe(e.url,{before:d,after:e.title?" ":")",...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),d+=c.move(" "+i),d+=c.move(n.safe(e.title,{before:d,after:i,...c.current()})),d+=c.move(i),s()),d+=c.move(")"),l(),d}function Jbe(){return"!"}nI.peek=exe;function nI(e,r,n,o){const i=e.referenceType,a=n.enter("imageReference");let l=n.enter("label");const s=n.createTracker(o);let c=s.move("![");const d=n.safe(e.alt,{before:c,after:"]",...s.current()});c+=s.move(d+"]["),l();const u=n.stack;n.stack=[],l=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...s.current()});return l(),n.stack=u,a(),i==="full"||!d||d!==p?c+=s.move(p+"]"):i==="shortcut"?c=c.slice(0,-1):c+=s.move("]"),c}function exe(){return"!"}oI.peek=txe;function oI(e,r,n){let o=e.value||"",i="`",a=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(o);)i+="`";for(/[^ \r\n]/.test(o)&&(/^[ \r\n]/.test(o)&&/[ \r\n]$/.test(o)||/^`|`$/.test(o))&&(o=" "+o+" ");++a\u007F]/.test(e.url))}aI.peek=rxe;function aI(e,r,n,o){const i=X_(n),a=i==='"'?"Quote":"Apostrophe",l=n.createTracker(o);let s,c;if(iI(e,n)){const u=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=u,p}s=n.enter("link"),c=n.enter("label");let d=l.move("[");return d+=l.move(n.containerPhrasing(e,{before:d,after:"](",...l.current()})),d+=l.move("]("),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter("destinationLiteral"),d+=l.move("<"),d+=l.move(n.safe(e.url,{before:d,after:">",...l.current()})),d+=l.move(">")):(c=n.enter("destinationRaw"),d+=l.move(n.safe(e.url,{before:d,after:e.title?" ":")",...l.current()}))),c(),e.title&&(c=n.enter(`title${a}`),d+=l.move(" "+i),d+=l.move(n.safe(e.title,{before:d,after:i,...l.current()})),d+=l.move(i),c()),d+=l.move(")"),s(),d}function rxe(e,r,n){return iI(e,n)?"<":"["}lI.peek=nxe;function lI(e,r,n,o){const i=e.referenceType,a=n.enter("linkReference");let l=n.enter("label");const s=n.createTracker(o);let c=s.move("[");const d=n.containerPhrasing(e,{before:c,after:"]",...s.current()});c+=s.move(d+"]["),l();const u=n.stack;n.stack=[],l=n.enter("reference");const p=n.safe(n.associationId(e),{before:c,after:"]",...s.current()});return l(),n.stack=u,a(),i==="full"||!d||d!==p?c+=s.move(p+"]"):i==="shortcut"?c=c.slice(0,-1):c+=s.move("]"),c}function nxe(){return"["}function Z_(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 oxe(e){const r=Z_(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 ixe(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 sI(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 axe(e,r,n,o){const i=n.enter("list"),a=n.bulletCurrent;let l=e.ordered?ixe(n):Z_(n);const s=e.ordered?l==="."?")":".":oxe(n);let c=r&&n.bulletLastUsed?l===n.bulletLastUsed:!1;if(!e.ordered){const u=e.children?e.children[0]:void 0;if((l==="*"||l==="-")&&u&&(!u.children||!u.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),sI(n)===l&&u){let p=-1;for(;++p-1?r.start:1)+(n.options.incrementListMarker===!1?0:r.children.indexOf(e))+a);let l=a.length+1;(i==="tab"||i==="mixed"&&(r&&r.type==="list"&&r.spread||e.spread))&&(l=Math.ceil(l/4)*4);const s=n.createTracker(o);s.move(a+" ".repeat(l-a.length)),s.shift(l);const c=n.enter("listItem"),d=n.indentLines(n.containerFlow(e,s.current()),u);return c(),d;function u(p,f,m){return f?(m?"":" ".repeat(l))+p:(m?a:a+" ".repeat(l-a.length))+p}}function cxe(e,r,n,o){const i=n.enter("paragraph"),a=n.enter("phrasing"),l=n.containerPhrasing(e,o);return a(),i(),l}const dxe=Fb(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function uxe(e,r,n,o){return(e.children.some(function(l){return dxe(l)})?n.containerPhrasing:n.containerFlow).call(n,e,o)}function pxe(e){const r=e.options.strong||"*";if(r!=="*"&&r!=="_")throw new Error("Cannot serialize strong with `"+r+"` for `options.strong`, expected `*`, or `_`");return r}cI.peek=hxe;function cI(e,r,n,o){const i=pxe(n),a=n.enter("strong"),l=n.createTracker(o),s=l.move(i+i);let c=l.move(n.containerPhrasing(e,{after:i,before:s,...l.current()}));const d=c.charCodeAt(0),u=qb(o.before.charCodeAt(o.before.length-1),d,i);u.inside&&(c=l1(d)+c.slice(1));const p=c.charCodeAt(c.length-1),f=qb(o.after.charCodeAt(0),p,i);f.inside&&(c=c.slice(0,-1)+l1(p));const m=l.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+m}function hxe(e,r,n){return n.options.strong||"*"}function fxe(e,r,n,o){return n.safe(e.value,o)}function gxe(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 mxe(e,r,n){const o=(sI(n)+(n.options.ruleSpaces?" ":"")).repeat(gxe(n));return n.options.ruleSpaces?o.slice(0,-1):o}const dI={blockquote:Bbe,break:ZB,code:qbe,definition:Ube,emphasis:QB,hardBreak:ZB,heading:Zbe,html:tI,image:rI,imageReference:nI,inlineCode:oI,link:aI,linkReference:lI,list:axe,listItem:sxe,paragraph:cxe,root:uxe,strong:cI,text:fxe,thematicBreak:mxe},uI={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:"‌"},yxe={}.hasOwnProperty;function Q_(e){return yxe.call(uI,e)?uI[e]:!1}function pI(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 vxe=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function bxe(e){return e.replace(vxe,xxe)}function xxe(e,r,n){if(r)return r;if(n.charCodeAt(0)===35){const i=n.charCodeAt(1),a=i===120||i===88;return pI(n.slice(a?2:1),a?16:10)}return Q_(n)||e}function wxe(){return{enter:{table:kxe,tableData:hI,tableHeader:hI,tableRow:Sxe},exit:{codeText:Exe,table:_xe,tableData:J_,tableHeader:J_,tableRow:J_}}}function kxe(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 _xe(e){this.exit(e),this.data.inTable=void 0}function Sxe(e){this.enter({type:"tableRow",children:[]},e)}function J_(e){this.exit(e)}function hI(e){this.enter({type:"tableCell",children:[]},e)}function Exe(e){let r=this.resume();this.data.inTable&&(r=r.replace(/\\([\\|])/g,Cxe));const n=this.stack[this.stack.length-1];n.type,n.value=r,this.exit(e)}function Cxe(e,r){return r==="|"?r:e}function $xe(e){const r=e||{},n=r.tableCellPadding,o=r.tablePipeAlign,i=r.stringLength,a=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(m,v,w,x){return d(u(m,w,x),m.align)}function s(m,v,w,x){const k=p(m,w,x),C=d([k]);return C.slice(0,C.indexOf(` +`))}function c(m,v,w,x){const k=w.enter("tableCell"),C=w.enter("phrasing"),_=w.containerPhrasing(m,{...x,before:a,after:a});return C(),k(),_}function d(m,v){return Mbe(m,{align:v,alignDelimiters:o,padding:n,stringLength:i})}function u(m,v,w){const x=m.children;let k=-1;const C=[],_=v.enter("table");for(;++ki?0:i+r:r=r>i?i: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);a0?(xi(e,e.length,0,r),e):r}const gI={}.hasOwnProperty;function mI(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,i=0;for(;++n55295&&a<57344){const s=e.charCodeAt(n+1);a<56320&&s>56319&&s<57344?(l=String.fromCharCode(a,s),i=1):l="�"}else l=String.fromCharCode(a);l&&(r.push(e.slice(o,n),encodeURIComponent(l)),o=n+i+1,l=""),i&&(n+=i,i=0)}return r.join("")+e.slice(o)}function Ub(e,r,n){const o=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[o][1].end},f={...e[n][1].start};EI(p,-c),EI(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},a={type:c>1?"strongText":"emphasisText",start:{...e[o][1].end},end:{...e[n][1].start}},i={type:c>1?"strong":"emphasis",start:{...l.start},end:{...s.end}},e[o][1].end={...l.start},e[n][1].start={...s.end},d=[],e[o][1].end.offset-e[o][1].start.offset&&(d=Qi(d,[["enter",e[o][1],r],["exit",e[o][1],r]])),d=Qi(d,[["enter",i,r],["enter",l,r],["exit",l,r],["enter",a,r]]),d=Qi(d,Ub(r.parser.constructs.insideSpan.null,e.slice(o+1,n),r)),d=Qi(d,[["exit",a,r],["enter",s,r],["exit",s,r],["exit",i,r]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,d=Qi(d,[["enter",e[n][1],r],["exit",e[n][1],r]])):u=0,xi(e,o-1,n-o+3,d),n=o+d.length-u-2;break}}for(n=-1;++n0&&Vt(T)?Zt(e,C,"linePrefix",a+1)(T):C(T)}function C(T){return T===null||mt(T)?e.check(zI,w,$)(T):(e.enter("codeFlowValue"),_(T))}function _(T){return T===null||mt(T)?(e.exit("codeFlowValue"),C(T)):(e.consume(T),_)}function $(T){return e.exit("codeFenced"),r(T)}function R(T,A,z){let j=0;return I;function I(V){return T.enter("lineEnding"),T.consume(V),T.exit("lineEnding"),N}function N(V){return T.enter("codeFencedFence"),Vt(V)?Zt(T,L,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(V):L(V)}function L(V){return V===s?(T.enter("codeFencedFenceSequence"),H(V)):z(V)}function H(V){return V===s?(j++,T.consume(V),H):j>=l?(T.exit("codeFencedFenceSequence"),Vt(V)?Zt(T,P,"whitespace")(V):P(V)):z(V)}function P(V){return V===null||mt(V)?(T.exit("codeFencedFence"),A(V)):z(V)}}}function owe(e,r,n){const o=this;return i;function i(l){return l===null?n(l):(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),a)}function a(l){return o.parser.lazy[o.now().line]?n(l):r(l)}}const n8={name:"codeIndented",tokenize:awe},iwe={partial:!0,tokenize:lwe};function awe(e,r,n){const o=this;return i;function i(d){return e.enter("codeIndented"),Zt(e,a,"linePrefix",5)(d)}function a(d){const u=o.events[o.events.length-1];return u&&u[1].type==="linePrefix"&&u[2].sliceSerialize(u[1],!0).length>=4?l(d):n(d)}function l(d){return d===null?c(d):mt(d)?e.attempt(iwe,l,c)(d):(e.enter("codeFlowValue"),s(d))}function s(d){return d===null||mt(d)?(e.exit("codeFlowValue"),l(d)):(e.consume(d),s)}function c(d){return e.exit("codeIndented"),r(d)}}function lwe(e,r,n){const o=this;return i;function i(l){return o.parser.lazy[o.now().line]?n(l):mt(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),i):Zt(e,a,"linePrefix",5)(l)}function a(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):mt(l)?i(l):n(l)}}const swe={name:"codeText",previous:dwe,resolve:cwe,tokenize:uwe};function cwe(e){let r=e.length-4,n=3,o,i;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 i=n||0;this.setCursor(Math.trunc(r));const a=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return o&&c1(this.left,o),a.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),c1(this.left,r)}unshift(r){this.setCursor(0),this.right.push(r)}unshiftMany(r){this.setCursor(0),c1(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 AI(e,r,n,o,i,a,l,s,c){const d=c||Number.POSITIVE_INFINITY;let u=0;return p;function p(k){return k===60?(e.enter(o),e.enter(i),e.enter(a),e.consume(k),e.exit(a),f):k===null||k===32||k===41||Ob(k)?n(k):(e.enter(o),e.enter(l),e.enter(s),e.enter("chunkString",{contentType:"string"}),w(k))}function f(k){return k===62?(e.enter(a),e.consume(k),e.exit(a),e.exit(i),e.exit(o),r):(e.enter(s),e.enter("chunkString",{contentType:"string"}),m(k))}function m(k){return k===62?(e.exit("chunkString"),e.exit(s),f(k)):k===null||k===60||mt(k)?n(k):(e.consume(k),k===92?v:m)}function v(k){return k===60||k===62||k===92?(e.consume(k),m):m(k)}function w(k){return!u&&(k===null||k===41||Sr(k))?(e.exit("chunkString"),e.exit(s),e.exit(l),e.exit(o),r(k)):u999||m===null||m===91||m===93&&!c||m===94&&!s&&"_hiddenFootnoteSupport"in l.parser.constructs?n(m):m===93?(e.exit(a),e.enter(i),e.consume(m),e.exit(i),e.exit(o),r):mt(m)?(e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),u):(e.enter("chunkString",{contentType:"string"}),p(m))}function p(m){return m===null||m===91||m===93||mt(m)||s++>999?(e.exit("chunkString"),u(m)):(e.consume(m),c||(c=!Vt(m)),m===92?f:p)}function f(m){return m===91||m===92||m===93?(e.consume(m),s++,p):p(m)}}function PI(e,r,n,o,i,a){let l;return s;function s(f){return f===34||f===39||f===40?(e.enter(o),e.enter(i),e.consume(f),e.exit(i),l=f===40?41:f,c):n(f)}function c(f){return f===l?(e.enter(i),e.consume(f),e.exit(i),e.exit(o),r):(e.enter(a),d(f))}function d(f){return f===l?(e.exit(a),c(l)):f===null?n(f):mt(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),Zt(e,d,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),u(f))}function u(f){return f===l||f===null||mt(f)?(e.exit("chunkString"),d(f)):(e.consume(f),f===92?p:u)}function p(f){return f===l||f===92?(e.consume(f),u):u(f)}}function d1(e,r){let n;return o;function o(i){return mt(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,o):Vt(i)?Zt(e,o,n?"linePrefix":"lineSuffix")(i):r(i)}}const bwe={name:"definition",tokenize:wwe},xwe={partial:!0,tokenize:kwe};function wwe(e,r,n){const o=this;let i;return a;function a(m){return e.enter("definition"),l(m)}function l(m){return DI.call(o,e,s,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(m)}function s(m){return i=Ua(o.sliceSerialize(o.events[o.events.length-1][1]).slice(1,-1)),m===58?(e.enter("definitionMarker"),e.consume(m),e.exit("definitionMarker"),c):n(m)}function c(m){return Sr(m)?d1(e,d)(m):d(m)}function d(m){return AI(e,u,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(m)}function u(m){return e.attempt(xwe,p,p)(m)}function p(m){return Vt(m)?Zt(e,f,"whitespace")(m):f(m)}function f(m){return m===null||mt(m)?(e.exit("definition"),o.parser.defined.push(i),r(m)):n(m)}}function kwe(e,r,n){return o;function o(s){return Sr(s)?d1(e,i)(s):n(s)}function i(s){return PI(e,a,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(s)}function a(s){return Vt(s)?Zt(e,l,"whitespace")(s):l(s)}function l(s){return s===null||mt(s)?r(s):n(s)}}const _we={name:"hardBreakEscape",tokenize:Swe};function Swe(e,r,n){return o;function o(a){return e.enter("hardBreakEscape"),e.consume(a),i}function i(a){return mt(a)?(e.exit("hardBreakEscape"),r(a)):n(a)}}const Ewe={name:"headingAtx",resolve:Cwe,tokenize:$we};function Cwe(e,r){let n=e.length-2,o=3,i,a;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&&(i={type:"atxHeadingText",start:e[o][1].start,end:e[n][1].end},a={type:"chunkText",start:e[o][1].start,end:e[n][1].end,contentType:"text"},xi(e,o,n-o+1,[["enter",i,r],["enter",a,r],["exit",a,r],["exit",i,r]])),e}function $we(e,r,n){let o=0;return i;function i(u){return e.enter("atxHeading"),a(u)}function a(u){return e.enter("atxHeadingSequence"),l(u)}function l(u){return u===35&&o++<6?(e.consume(u),l):u===null||Sr(u)?(e.exit("atxHeadingSequence"),s(u)):n(u)}function s(u){return u===35?(e.enter("atxHeadingSequence"),c(u)):u===null||mt(u)?(e.exit("atxHeading"),r(u)):Vt(u)?Zt(e,s,"whitespace")(u):(e.enter("atxHeadingText"),d(u))}function c(u){return u===35?(e.consume(u),c):(e.exit("atxHeadingSequence"),s(u))}function d(u){return u===null||u===35||Sr(u)?(e.exit("atxHeadingText"),s(u)):(e.consume(u),d)}}const Rwe=["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"],MI=["pre","script","style","textarea"],zwe={concrete:!0,name:"htmlFlow",resolveTo:Awe,tokenize:Dwe},Twe={partial:!0,tokenize:Mwe},jwe={partial:!0,tokenize:Pwe};function Awe(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 Dwe(e,r,n){const o=this;let i,a,l,s,c;return d;function d(O){return u(O)}function u(O){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(O),p}function p(O){return O===33?(e.consume(O),f):O===47?(e.consume(O),a=!0,w):O===63?(e.consume(O),i=3,o.interrupt?r:U):Bo(O)?(e.consume(O),l=String.fromCharCode(O),x):n(O)}function f(O){return O===45?(e.consume(O),i=2,m):O===91?(e.consume(O),i=5,s=0,v):Bo(O)?(e.consume(O),i=4,o.interrupt?r:U):n(O)}function m(O){return O===45?(e.consume(O),o.interrupt?r:U):n(O)}function v(O){const W="CDATA[";return O===W.charCodeAt(s++)?(e.consume(O),s===W.length?o.interrupt?r:L:v):n(O)}function w(O){return Bo(O)?(e.consume(O),l=String.fromCharCode(O),x):n(O)}function x(O){if(O===null||O===47||O===62||Sr(O)){const W=O===47,Z=l.toLowerCase();return!W&&!a&&MI.includes(Z)?(i=1,o.interrupt?r(O):L(O)):Rwe.includes(l.toLowerCase())?(i=6,W?(e.consume(O),k):o.interrupt?r(O):L(O)):(i=7,o.interrupt&&!o.parser.lazy[o.now().line]?n(O):a?C(O):_(O))}return O===45||xo(O)?(e.consume(O),l+=String.fromCharCode(O),x):n(O)}function k(O){return O===62?(e.consume(O),o.interrupt?r:L):n(O)}function C(O){return Vt(O)?(e.consume(O),C):I(O)}function _(O){return O===47?(e.consume(O),I):O===58||O===95||Bo(O)?(e.consume(O),$):Vt(O)?(e.consume(O),_):I(O)}function $(O){return O===45||O===46||O===58||O===95||xo(O)?(e.consume(O),$):R(O)}function R(O){return O===61?(e.consume(O),T):Vt(O)?(e.consume(O),R):_(O)}function T(O){return O===null||O===60||O===61||O===62||O===96?n(O):O===34||O===39?(e.consume(O),c=O,A):Vt(O)?(e.consume(O),T):z(O)}function A(O){return O===c?(e.consume(O),c=null,j):O===null||mt(O)?n(O):(e.consume(O),A)}function z(O){return O===null||O===34||O===39||O===47||O===60||O===61||O===62||O===96||Sr(O)?R(O):(e.consume(O),z)}function j(O){return O===47||O===62||Vt(O)?_(O):n(O)}function I(O){return O===62?(e.consume(O),N):n(O)}function N(O){return O===null||mt(O)?L(O):Vt(O)?(e.consume(O),N):n(O)}function L(O){return O===45&&i===2?(e.consume(O),B):O===60&&i===1?(e.consume(O),F):O===62&&i===4?(e.consume(O),Y):O===63&&i===3?(e.consume(O),U):O===93&&i===5?(e.consume(O),G):mt(O)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(Twe,K,H)(O)):O===null||mt(O)?(e.exit("htmlFlowData"),H(O)):(e.consume(O),L)}function H(O){return e.check(jwe,P,K)(O)}function P(O){return e.enter("lineEnding"),e.consume(O),e.exit("lineEnding"),V}function V(O){return O===null||mt(O)?H(O):(e.enter("htmlFlowData"),L(O))}function B(O){return O===45?(e.consume(O),U):L(O)}function F(O){return O===47?(e.consume(O),l="",q):L(O)}function q(O){if(O===62){const W=l.toLowerCase();return MI.includes(W)?(e.consume(O),Y):L(O)}return Bo(O)&&l.length<8?(e.consume(O),l+=String.fromCharCode(O),q):L(O)}function G(O){return O===93?(e.consume(O),U):L(O)}function U(O){return O===62?(e.consume(O),Y):O===45&&i===2?(e.consume(O),U):L(O)}function Y(O){return O===null||mt(O)?(e.exit("htmlFlowData"),K(O)):(e.consume(O),Y)}function K(O){return e.exit("htmlFlow"),r(O)}}function Pwe(e,r,n){const o=this;return i;function i(l){return mt(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),a):n(l)}function a(l){return o.parser.lazy[o.now().line]?n(l):r(l)}}function Mwe(e,r,n){return o;function o(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(s1,r,n)}}const Nwe={name:"htmlText",tokenize:Bwe};function Bwe(e,r,n){const o=this;let i,a,l;return s;function s(U){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(U),c}function c(U){return U===33?(e.consume(U),d):U===47?(e.consume(U),R):U===63?(e.consume(U),_):Bo(U)?(e.consume(U),z):n(U)}function d(U){return U===45?(e.consume(U),u):U===91?(e.consume(U),a=0,v):Bo(U)?(e.consume(U),C):n(U)}function u(U){return U===45?(e.consume(U),m):n(U)}function p(U){return U===null?n(U):U===45?(e.consume(U),f):mt(U)?(l=p,F(U)):(e.consume(U),p)}function f(U){return U===45?(e.consume(U),m):p(U)}function m(U){return U===62?B(U):U===45?f(U):p(U)}function v(U){const Y="CDATA[";return U===Y.charCodeAt(a++)?(e.consume(U),a===Y.length?w:v):n(U)}function w(U){return U===null?n(U):U===93?(e.consume(U),x):mt(U)?(l=w,F(U)):(e.consume(U),w)}function x(U){return U===93?(e.consume(U),k):w(U)}function k(U){return U===62?B(U):U===93?(e.consume(U),k):w(U)}function C(U){return U===null||U===62?B(U):mt(U)?(l=C,F(U)):(e.consume(U),C)}function _(U){return U===null?n(U):U===63?(e.consume(U),$):mt(U)?(l=_,F(U)):(e.consume(U),_)}function $(U){return U===62?B(U):_(U)}function R(U){return Bo(U)?(e.consume(U),T):n(U)}function T(U){return U===45||xo(U)?(e.consume(U),T):A(U)}function A(U){return mt(U)?(l=A,F(U)):Vt(U)?(e.consume(U),A):B(U)}function z(U){return U===45||xo(U)?(e.consume(U),z):U===47||U===62||Sr(U)?j(U):n(U)}function j(U){return U===47?(e.consume(U),B):U===58||U===95||Bo(U)?(e.consume(U),I):mt(U)?(l=j,F(U)):Vt(U)?(e.consume(U),j):B(U)}function I(U){return U===45||U===46||U===58||U===95||xo(U)?(e.consume(U),I):N(U)}function N(U){return U===61?(e.consume(U),L):mt(U)?(l=N,F(U)):Vt(U)?(e.consume(U),N):j(U)}function L(U){return U===null||U===60||U===61||U===62||U===96?n(U):U===34||U===39?(e.consume(U),i=U,H):mt(U)?(l=L,F(U)):Vt(U)?(e.consume(U),L):(e.consume(U),P)}function H(U){return U===i?(e.consume(U),i=void 0,V):U===null?n(U):mt(U)?(l=H,F(U)):(e.consume(U),H)}function P(U){return U===null||U===34||U===39||U===60||U===61||U===96?n(U):U===47||U===62||Sr(U)?j(U):(e.consume(U),P)}function V(U){return U===47||U===62||Sr(U)?j(U):n(U)}function B(U){return U===62?(e.consume(U),e.exit("htmlTextData"),e.exit("htmlText"),r):n(U)}function F(U){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(U),e.exit("lineEnding"),q}function q(U){return Vt(U)?Zt(e,G,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(U):G(U)}function G(U){return e.enter("htmlTextData"),l(U)}}const o8={name:"labelEnd",resolveAll:Fwe,resolveTo:Vwe,tokenize:qwe},Iwe={tokenize:Hwe},Owe={tokenize:Uwe},Lwe={tokenize:Wwe};function Fwe(e){let r=-1;const n=[];for(;++r=3&&(d===null||mt(d))?(e.exit("thematicBreak"),r(d)):n(d)}function c(d){return d===i?(e.consume(d),o++,c):(e.exit("thematicBreakSequence"),Vt(d)?Zt(e,s,"whitespace")(d):s(d))}}const ei={continuation:{tokenize:r3e},exit:o3e,name:"list",tokenize:t3e},Jwe={partial:!0,tokenize:i3e},e3e={partial:!0,tokenize:n3e};function t3e(e,r,n){const o=this,i=o.events[o.events.length-1];let a=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,l=0;return s;function s(m){const v=o.containerState.type||(m===42||m===43||m===45?"listUnordered":"listOrdered");if(v==="listUnordered"?!o.containerState.marker||m===o.containerState.marker:H_(m)){if(o.containerState.type||(o.containerState.type=v,e.enter(v,{_container:!0})),v==="listUnordered")return e.enter("listItemPrefix"),m===42||m===45?e.check(Wb,n,d)(m):d(m);if(!o.interrupt||m===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(m)}return n(m)}function c(m){return H_(m)&&++l<10?(e.consume(m),c):(!o.interrupt||l<2)&&(o.containerState.marker?m===o.containerState.marker:m===41||m===46)?(e.exit("listItemValue"),d(m)):n(m)}function d(m){return e.enter("listItemMarker"),e.consume(m),e.exit("listItemMarker"),o.containerState.marker=o.containerState.marker||m,e.check(s1,o.interrupt?n:u,e.attempt(Jwe,f,p))}function u(m){return o.containerState.initialBlankLine=!0,a++,f(m)}function p(m){return Vt(m)?(e.enter("listItemPrefixWhitespace"),e.consume(m),e.exit("listItemPrefixWhitespace"),f):n(m)}function f(m){return o.containerState.size=a+o.sliceSerialize(e.exit("listItemPrefix"),!0).length,r(m)}}function r3e(e,r,n){const o=this;return o.containerState._closeFlow=void 0,e.check(s1,i,a);function i(s){return o.containerState.furtherBlankLines=o.containerState.furtherBlankLines||o.containerState.initialBlankLine,Zt(e,r,"listItemIndent",o.containerState.size+1)(s)}function a(s){return o.containerState.furtherBlankLines||!Vt(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(e3e,r,l)(s))}function l(s){return o.containerState._closeFlow=!0,o.interrupt=void 0,Zt(e,e.attempt(ei,r,n),"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s)}}function n3e(e,r,n){const o=this;return Zt(e,i,"listItemIndent",o.containerState.size+1);function i(a){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(a):n(a)}}function o3e(e){e.exit(this.containerState.type)}function i3e(e,r,n){const o=this;return Zt(e,i,"listItemPrefixWhitespace",o.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(a){const l=o.events[o.events.length-1];return!Vt(a)&&l&&l[1].type==="listItemPrefixWhitespace"?r(a):n(a)}}const NI={name:"setextUnderline",resolveTo:a3e,tokenize:l3e};function a3e(e,r){let n=e.length,o,i,a;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){o=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!a&&e[n][1].type==="definition"&&(a=n);const l={type:"setextHeading",start:{...e[o][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",a?(e.splice(i,0,["enter",l,r]),e.splice(a+1,0,["exit",e[o][1],r]),e[o][1].end={...e[a][1].end}):e[o][1]=l,e.push(["exit",l,r]),e}function l3e(e,r,n){const o=this;let i;return a;function a(d){let u=o.events.length,p;for(;u--;)if(o.events[u][1].type!=="lineEnding"&&o.events[u][1].type!=="linePrefix"&&o.events[u][1].type!=="content"){p=o.events[u][1].type==="paragraph";break}return!o.parser.lazy[o.now().line]&&(o.interrupt||p)?(e.enter("setextHeadingLine"),i=d,l(d)):n(d)}function l(d){return e.enter("setextHeadingLineSequence"),s(d)}function s(d){return d===i?(e.consume(d),s):(e.exit("setextHeadingLineSequence"),Vt(d)?Zt(e,c,"lineSuffix")(d):c(d))}function c(d){return d===null||mt(d)?(e.exit("setextHeadingLine"),r(d)):n(d)}}const s3e={tokenize:m3e,partial:!0};function c3e(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:h3e,continuation:{tokenize:f3e},exit:g3e}},text:{91:{name:"gfmFootnoteCall",tokenize:p3e},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:d3e,resolveTo:u3e}}}}function d3e(e,r,n){const o=this;let i=o.events.length;const a=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let l;for(;i--;){const c=o.events[i][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 d=Ua(o.sliceSerialize({start:l.end,end:o.now()}));return d.codePointAt(0)!==94||!a.includes(d.slice(1))?n(c):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(c),e.exit("gfmFootnoteCallLabelMarker"),r(c))}}function u3e(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)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const a={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},l={type:"chunkString",contentType:"string",start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],["enter",o,r],e[n+3],e[n+4],["enter",i,r],["exit",i,r],["enter",a,r],["enter",l,r],["exit",l,r],["exit",a,r],e[e.length-2],e[e.length-1],["exit",o,r]];return e.splice(n,e.length-n+1,...s),e}function p3e(e,r,n){const o=this,i=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let a=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",d)}function d(p){if(a>999||p===93&&!l||p===null||p===91||Sr(p))return n(p);if(p===93){e.exit("chunkString");const f=e.exit("gfmFootnoteCallString");return i.includes(Ua(o.sliceSerialize(f)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(p),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),r):n(p)}return Sr(p)||(l=!0),a++,e.consume(p),p===92?u:d}function u(p){return p===91||p===92||p===93?(e.consume(p),a++,d):d(p)}}function h3e(e,r,n){const o=this,i=o.parser.gfmFootnotes||(o.parser.gfmFootnotes=[]);let a,l=0,s;return c;function c(v){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),d}function d(v){return v===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",u):n(v)}function u(v){if(l>999||v===93&&!s||v===null||v===91||Sr(v))return n(v);if(v===93){e.exit("chunkString");const w=e.exit("gfmFootnoteDefinitionLabelString");return a=Ua(o.sliceSerialize(w)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(v),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),f}return Sr(v)||(s=!0),l++,e.consume(v),v===92?p:u}function p(v){return v===91||v===92||v===93?(e.consume(v),l++,u):u(v)}function f(v){return v===58?(e.enter("definitionMarker"),e.consume(v),e.exit("definitionMarker"),i.includes(a)||i.push(a),Zt(e,m,"gfmFootnoteDefinitionWhitespace")):n(v)}function m(v){return r(v)}}function f3e(e,r,n){return e.check(s1,r,e.attempt(s3e,r,n))}function g3e(e){e.exit("gfmFootnoteDefinition")}function m3e(e,r,n){const o=this;return Zt(e,i,"gfmFootnoteDefinitionIndent",5);function i(a){const l=o.events[o.events.length-1];return l&&l[1].type==="gfmFootnoteDefinitionIndent"&&l[2].sliceSerialize(l[1],!0).length===4?r(a):n(a)}}function y3e(e){let n=(e||{}).singleTilde;const o={name:"strikethrough",tokenize:a,resolveAll:i};return n==null&&(n=!0),{text:{126:o},insideSpan:{null:[o]},attentionMarkers:{null:[126]}};function i(l,s){let c=-1;for(;++c1?c(v):(l.consume(v),p++,m);if(p<2&&!n)return c(v);const x=l.exit("strikethroughSequenceTemporary"),k=Fh(v);return x._open=!k||k===2&&!!w,x._close=!w||w===2&&!!k,s(v)}}}class v3e{constructor(){this.map=[]}add(r,n,o){b3e(this,r,n,o)}consume(r){if(this.map.sort(function(a,l){return a[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 i=o.pop();for(;i;){for(const a of i)r.push(a);i=o.pop()}this.map.length=0}}function b3e(e,r,n,o){let i=0;if(!(n===0&&o.length===0)){for(;i-1;){const P=o.events[N][1].type;if(P==="lineEnding"||P==="linePrefix")N--;else break}const L=N>-1?o.events[N][1].type:null,H=L==="tableHead"||L==="tableRow"?T:c;return H===T&&o.parser.lazy[o.now().line]?n(I):H(I)}function c(I){return e.enter("tableHead"),e.enter("tableRow"),d(I)}function d(I){return I===124||(l=!0,a+=1),u(I)}function u(I){return I===null?n(I):mt(I)?a>1?(a=0,o.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(I),e.exit("lineEnding"),m):n(I):Vt(I)?Zt(e,u,"whitespace")(I):(a+=1,l&&(l=!1,i+=1),I===124?(e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),l=!0,u):(e.enter("data"),p(I)))}function p(I){return I===null||I===124||Sr(I)?(e.exit("data"),u(I)):(e.consume(I),I===92?f:p)}function f(I){return I===92||I===124?(e.consume(I),p):p(I)}function m(I){return o.interrupt=!1,o.parser.lazy[o.now().line]?n(I):(e.enter("tableDelimiterRow"),l=!1,Vt(I)?Zt(e,v,"linePrefix",o.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(I):v(I))}function v(I){return I===45||I===58?x(I):I===124?(l=!0,e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),w):R(I)}function w(I){return Vt(I)?Zt(e,x,"whitespace")(I):x(I)}function x(I){return I===58?(a+=1,l=!0,e.enter("tableDelimiterMarker"),e.consume(I),e.exit("tableDelimiterMarker"),k):I===45?(a+=1,k(I)):I===null||mt(I)?$(I):R(I)}function k(I){return I===45?(e.enter("tableDelimiterFiller"),C(I)):R(I)}function C(I){return I===45?(e.consume(I),C):I===58?(l=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(I),e.exit("tableDelimiterMarker"),_):(e.exit("tableDelimiterFiller"),_(I))}function _(I){return Vt(I)?Zt(e,$,"whitespace")(I):$(I)}function $(I){return I===124?v(I):I===null||mt(I)?!l||i!==a?R(I):(e.exit("tableDelimiterRow"),e.exit("tableHead"),r(I)):R(I)}function R(I){return n(I)}function T(I){return e.enter("tableRow"),A(I)}function A(I){return I===124?(e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),A):I===null||mt(I)?(e.exit("tableRow"),r(I)):Vt(I)?Zt(e,A,"whitespace")(I):(e.enter("data"),z(I))}function z(I){return I===null||I===124||Sr(I)?(e.exit("data"),A(I)):(e.consume(I),I===92?j:z)}function j(I){return I===92||I===124?(e.consume(I),z):z(I)}}function _3e(e,r){let n=-1,o=!0,i=0,a=[0,0,0,0],l=[0,0,0,0],s=!1,c=0,d,u,p;const f=new v3e;for(;++nn[2]+1){const v=n[2]+1,w=n[3]-n[2]-1;e.add(v,w,[])}}e.add(n[3]+1,0,[["exit",p,r]])}return i!==void 0&&(a.end=Object.assign({},qh(r.events,i)),e.add(i,0,[["exit",a,r]]),a=void 0),a}function BI(e,r,n,o,i){const a=[],l=qh(r.events,n);i&&(i.end=Object.assign({},l),a.push(["exit",i,r])),o.end=Object.assign({},l),a.push(["exit",o,r]),e.add(n+1,0,a)}function qh(e,r){const n=e[r],o=n[0]==="enter"?"start":"end";return n[1][o]}const S3e={name:"tasklistCheck",tokenize:C3e};function E3e(){return{text:{91:S3e}}}function C3e(e,r,n){const o=this;return i;function i(c){return o.previous!==null||!o._gfmTasklistFirstContentOfListItem?n(c):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(c),e.exit("taskListCheckMarker"),a)}function a(c){return Sr(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 mt(c)?r(c):Vt(c)?e.check({tokenize:$3e},r,n)(c):n(c)}}function $3e(e,r,n){return Zt(e,o,"whitespace");function o(i){return i===null?n(i):r(i)}}function R3e(e){return mI([Ixe(),c3e(),y3e(e),w3e(),E3e()])}const z3e={};function T3e(e){const r=this,n=e||z3e,o=r.data(),i=o.micromarkExtensions||(o.micromarkExtensions=[]),a=o.fromMarkdownExtensions||(o.fromMarkdownExtensions=[]),l=o.toMarkdownExtensions||(o.toMarkdownExtensions=[]);i.push(R3e(n)),a.push(Axe()),l.push(Dxe(n))}const j3e=/^\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]/i,A3e=/^\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)(\/.*)?\]/i,D3e=({legacyTitle:e=!1,tagName:r="div"}={})=>n=>{K_(n,"blockquote",(o,i,a)=>{let l="",s="",c=!0,d=o.children.map(u=>{if(c&&u.type==="paragraph"){const p=u.children[0],f=p.type==="text"?p.value:"",m=e?A3e:j3e,v=f.match(m);if(v&&(c=!1,l=v[1].toLocaleLowerCase(),s=e&&v[2]||l.toLocaleUpperCase(),f.includes(` +`)&&(u.children[0]={type:"text",value:f.replace(m,"").replace(/^\n+/,"")}),!f.includes(` +`))){const w=[];u.children.forEach((x,k)=>{k!=0&&(k==1&&x.type==="break"||w.push(x))}),u.children=[...w]}}return u});l&&(o.data={hName:r,hProperties:{className:["markdown-alert",`markdown-alert-${l}`],dir:"auto"}},d.unshift({type:"paragraph",children:[P3e(l),{type:"text",value:s.replace(/^\//,"")}],data:{hProperties:{className:"markdown-alert-title",dir:"auto"}}})),o.children=[...d]})};function P3e(e){let r=M3e[e]??"";return{type:"emphasis",data:{hName:"svg",hProperties:{className:["octicon"],viewBox:"0 0 16 16",width:"16",height:"16",ariaHidden:"true"}},children:[{type:"emphasis",data:{hName:"path",hProperties:{d:r}},children:[]}]}}const M3e={note:"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z",tip:"M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z",important:"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z",warning:"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z",caution:"M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"},N3e={tokenize:B3e};function B3e(e){const r=e.attempt(this.parser.constructs.contentInitial,o,i);let n;return r;function o(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),Zt(e,r,"linePrefix")}function i(s){return e.enter("paragraph"),a(s)}function a(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 mt(s)?(e.consume(s),e.exit("chunkText"),a):(e.consume(s),l)}}const I3e={tokenize:O3e},II={tokenize:L3e};function O3e(e){const r=this,n=[];let o=0,i,a,l;return s;function s(_){if(ol))return;const A=r.events.length;let z=A,j,I;for(;z--;)if(r.events[z][0]==="exit"&&r.events[z][1].type==="chunkFlow"){if(j){I=r.events[z][1].end;break}j=!0}for(k(o),T=A;T_;){const R=n[$];r.containerState=R[1],R[0].exit.call(r,e)}n.length=_}function C(){i.write([null]),a=void 0,i=void 0,r.containerState._closeFlow=void 0}}function L3e(e,r,n){return Zt(e,e.attempt(this.parser.constructs.document,r,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}const F3e={tokenize:V3e};function V3e(e){const r=this,n=e.attempt(s1,o,e.attempt(this.parser.constructs.flowInitial,i,Zt(e,e.attempt(this.parser.constructs.flow,i,e.attempt(fwe,i)),"linePrefix")));return n;function o(a){if(a===null){e.consume(a);return}return e.enter("lineEndingBlank"),e.consume(a),e.exit("lineEndingBlank"),r.currentConstruct=void 0,n}function i(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),r.currentConstruct=void 0,n}}const q3e={resolveAll:LI()},H3e=OI("string"),U3e=OI("text");function OI(e){return{resolveAll:LI(e==="text"?W3e:void 0),tokenize:r};function r(n){const o=this,i=this.parser.constructs[e],a=n.attempt(i,l,s);return l;function l(u){return d(u)?a(u):s(u)}function s(u){if(u===null){n.consume(u);return}return n.enter("data"),n.consume(u),c}function c(u){return d(u)?(n.exit("data"),a(u)):(n.consume(u),c)}function d(u){if(u===null)return!0;const p=i[u];let f=-1;if(p)for(;++f-1){const s=l[0];typeof s=="string"?l[0]=s.slice(o):l.shift()}a>0&&l.push(e[i].slice(0,a))}return l}function K3e(e,r){let n=-1;const o=[];let i;for(;++n0){const Tr=Ye.tokenStack[Ye.tokenStack.length-1];(Tr[1]||GI).call(Ye,void 0,Tr[0])}for(ke.position={start:rd(be.length>0?be[0][1].start:{line:1,column:1,offset:0}),end:rd(be.length>0?be[be.length-2][1].end:{line:1,column:1,offset:0})},xt=-1;++xt1?"-"+s:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(l)}]};e.patch(r,c);const d={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(r,d),e.applyData(r,d)}function c2e(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 d2e(e,r){if(e.options.allowDangerousHtml){const n={type:"raw",value:r.value};return e.patch(r,n),e.applyData(r,n)}}function YI(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 i=e.all(r),a=i[0];a&&a.type==="text"?a.value="["+a.value:i.unshift({type:"text",value:"["});const l=i[i.length-1];return l&&l.type==="text"?l.value+=o:i.push({type:"text",value:o}),i}function u2e(e,r){const n=String(r.identifier).toUpperCase(),o=e.definitionById.get(n);if(!o)return YI(e,r);const i={src:Vh(o.url||""),alt:r.alt};o.title!==null&&o.title!==void 0&&(i.title=o.title);const a={type:"element",tagName:"img",properties:i,children:[]};return e.patch(r,a),e.applyData(r,a)}function p2e(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 h2e(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 f2e(e,r){const n=String(r.identifier).toUpperCase(),o=e.definitionById.get(n);if(!o)return YI(e,r);const i={href:Vh(o.url||"")};o.title!==null&&o.title!==void 0&&(i.title=o.title);const a={type:"element",tagName:"a",properties:i,children:e.all(r)};return e.patch(r,a),e.applyData(r,a)}function g2e(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 m2e(e,r,n){const o=e.all(r),i=n?y2e(n):XI(r),a={},l=[];if(typeof r.checked=="boolean"){const u=o[0];let p;u&&u.type==="element"&&u.tagName==="p"?p=u:(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:[]}),a.className=["task-list-item"]}let s=-1;for(;++s1}function v2e(e,r){const n={},o=e.all(r);let i=-1;for(typeof r.start=="number"&&r.start!==1&&(n.start=r.start);++i0){const l={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},s=fB(r.children[1]),c=hB(r.children[r.children.length-1]);s&&c&&(l.position={start:s,end:c}),i.push(l)}const a={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(r,a),e.applyData(r,a)}function _2e(e,r,n){const o=n?n.children:void 0,a=(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 d=[];for(;++c0,!0),o[0]),i=o.index+o[0].length,o=n.exec(r);return a.push(QI(r.slice(i),i>0,!1)),a.join("")}function QI(e,r,n){let o=0,i=e.length;if(r){let a=e.codePointAt(o);for(;a===KI||a===ZI;)o++,a=e.codePointAt(o)}if(n){let a=e.codePointAt(i-1);for(;a===KI||a===ZI;)i--,a=e.codePointAt(i-1)}return i>o?e.slice(o,i):""}function C2e(e,r){const n={type:"text",value:E2e(String(r.value))};return e.patch(r,n),e.applyData(r,n)}function $2e(e,r){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(r,n),e.applyData(r,n)}const R2e={blockquote:n2e,break:o2e,code:i2e,delete:a2e,emphasis:l2e,footnoteReference:s2e,heading:c2e,html:d2e,imageReference:u2e,image:p2e,inlineCode:h2e,linkReference:f2e,link:g2e,listItem:m2e,list:v2e,paragraph:b2e,root:x2e,strong:w2e,table:k2e,tableCell:S2e,tableRow:_2e,text:C2e,thematicBreak:$2e,toml:Yb,yaml:Yb,definition:Yb,footnoteDefinition:Yb};function Yb(){}function z2e(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 T2e(e,r){return"Back to reference "+(e+1)+(r>1?"-"+r:"")}function j2e(e){const r=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||z2e,o=e.options.footnoteBackLabel||T2e,i=e.options.footnoteLabel||"Footnotes",a=e.options.footnoteLabelTagName||"h2",l=e.options.footnoteLabelProperties||{className:["sr-only"]},s=[];let c=-1;for(;++c0&&v.push({type:"text",value:" "});let C=typeof n=="string"?n:n(c,m);typeof C=="string"&&(C={type:"text",value:C}),v.push({type:"element",tagName:"a",properties:{href:"#"+r+"fnref-"+f+(m>1?"-"+m:""),dataFootnoteBackref:"",ariaLabel:typeof o=="string"?o:o(c,m),className:["data-footnote-backref"]},children:Array.isArray(C)?C:[C]})}const x=u[u.length-1];if(x&&x.type==="element"&&x.tagName==="p"){const C=x.children[x.children.length-1];C&&C.type==="text"?C.value+=" ":x.children.push({type:"text",value:" "}),x.children.push(...v)}else u.push(...v);const k={type:"element",tagName:"li",properties:{id:r+"fn-"+f},children:e.wrap(u,!0)};e.patch(d,k),s.push(k)}if(s.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:a,properties:{...o1(l),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(s,!0)},{type:"text",value:` +`}]}}const l8={}.hasOwnProperty,A2e={};function D2e(e,r){const n=r||A2e,o=new Map,i=new Map,a=new Map,l={...R2e,...n.handlers},s={all:d,applyData:M2e,definitionById:o,footnoteById:i,footnoteCounts:a,footnoteOrder:[],handlers:l,one:c,options:n,patch:P2e,wrap:B2e};return K_(e,function(u){if(u.type==="definition"||u.type==="footnoteDefinition"){const p=u.type==="definition"?o:i,f=String(u.identifier).toUpperCase();p.has(f)||p.set(f,u)}}),s;function c(u,p){const f=u.type,m=s.handlers[f];if(l8.call(s.handlers,f)&&m)return m(s,u,p);if(s.options.passThrough&&s.options.passThrough.includes(f)){if("children"in u){const{children:w,...x}=u,k=o1(x);return k.children=s.all(u),k}return o1(u)}return(s.options.unknownHandler||N2e)(s,u,p)}function d(u){const p=[];if("children"in u){const f=u.children;let m=-1;for(;++m0&&n.push({type:"text",value:` -`}),n}function mB(e){let r=0,n=e.charCodeAt(r);for(;n===9||n===32;)r++,n=e.charCodeAt(r);return e.slice(r)}function gB(e,r){const n=T_e(e,r),o=n.one(e,void 0),a=S_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 $_e(e,r){return e&&"run"in e?async function(n,o){const a=gB(n,{file:o,...r});await e.run(a,o)}:function(n,o){return gB(n,{file:o,...e||r})}}function yB(e){if(e)throw e}var F8,bB;function M_e(){if(bB)return F8;bB=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"),h=u.constructor&&u.constructor.prototype&&e.call(u.constructor.prototype,"isPrototypeOf");if(u.constructor&&!d&&!h)return!1;var f;for(f in u);return typeof f>"u"||e.call(u,f)},s=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},l=function(u,d){if(d==="__proto__")if(e.call(u,d)){if(o)return o(u,d).value}else return;return u[d]};return F8=function c(){var u,d,h,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={});ws.length;let c;l&&s.push(a);try{c=e.apply(this,s)}catch(u){const d=u;if(l&&n)throw d;return a(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(i,a):c instanceof Error?a(c):i(c))}function a(s,...l){n||(n=!0,r(s,...l))}function i(s){a(null,s)}}class sa extends Error{constructor(r,n,o){super(),typeof n=="string"&&(o=n,n=void 0);let a="",i={},s=!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&&(s=!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 l=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=l?l.column:void 0,this.fatal=void 0,this.file,this.message=a,this.line=l?l.line:void 0,this.name=F1(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=s&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual,this.expected,this.note,this.url}}sa.prototype.file="",sa.prototype.name="",sa.prototype.reason="",sa.prototype.message="",sa.prototype.stack="",sa.prototype.column=void 0,sa.prototype.line=void 0,sa.prototype.ancestors=void 0,sa.prototype.cause=void 0,sa.prototype.fatal=void 0,sa.prototype.place=void 0,sa.prototype.ruleId=void 0,sa.prototype.source=void 0;const al={basename:O_e,dirname:j_e,extname:L_e,join:B_e,sep:"/"};function O_e(e,r){if(r!==void 0&&typeof r!="string")throw new TypeError('"ext" argument must be a string');H1(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 s=-1,l=r.length-1;for(;a--;)if(e.codePointAt(a)===47){if(i){n=a+1;break}}else s<0&&(i=!0,s=a+1),l>-1&&(e.codePointAt(a)===r.codePointAt(l--)?l<0&&(o=a):(l=-1,o=s));return n===o?o=s:o<0&&(o=e.length),e.slice(n,o)}function j_e(e){if(H1(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 L_e(e){H1(e);let r=e.length,n=-1,o=0,a=-1,i=0,s;for(;r--;){const l=e.codePointAt(r);if(l===47){if(s){o=r+1;break}continue}n<0&&(s=!0,n=r+1),l===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 B_e(...e){let r=-1,n;for(;++r0&&e.codePointAt(e.length-1)===47&&(n+="/"),r?"/"+n:n}function H_e(e,r){let n="",o=0,a=-1,i=0,s=-1,l,c;for(;++s<=e.length;){if(s2){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=s,i=0;continue}}else if(n.length>0){n="",o=0,a=s,i=0;continue}}r&&(n=n.length>0?n+"/..":"..",o=2)}else n.length>0?n+="/"+e.slice(a+1,s):n=e.slice(a+1,s),o=s-a-1;a=s,i=0}else l===46&&i>-1?i++:i=-1}return n}function H1(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const V_e={cwd:q_e};function q_e(){return"/"}function q8(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function U_e(e){if(typeof e=="string")e=new URL(e);else if(!q8(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 W_e(e)}function W_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];V8(x)&&V8(g)&&(g=H8(!0,x,g)),o[f]=[u,g,...b]}}}}const Z_e=new G8().freeze();function X8(e,r){if(typeof r!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function K8(e,r){if(typeof r!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Z8(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 xB(e){if(!V8(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function wB(e,r,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+r+"` instead")}function Mx(e){return Q_e(e)?e:new Y_e(e)}function Q_e(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function J_e(e){return typeof e=="string"||e6e(e)}function e6e(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}function t6e(){return Z_e().use(K5e).use(R5e).use($_e,{allowDangerousHtml:!0,clobberPrefix:"",tableCellPadding:!1,tight:!0}).use(P3e).use(q3e).use(G2e,{closeSelfClosing:!0,tightSelfClosing:!0})}function r6e(e){return String(t6e().processSync(e.trim())).trim()}function n6e(e){return Ax(sB(e),{includeHtml:!1,includeImageAlt:!1})}var Q8,kB;function o6e(){if(kB)return Q8;kB=1;var e=iO(),r=ox();function n(){this.clear()}return n.prototype.clear=function(){this.items=[],this.offset=0,this.size=0},n.prototype.enqueue=function(o){return this.items.push(o),++this.size},n.prototype.dequeue=function(){if(this.size){var o=this.items[this.offset];return++this.offset*2>=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,s=0,l=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 s=o[a];return a++,{value:[i++,s],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)},Q8=n,Q8}var a6e=o6e();const J8=m1(a6e);var eE,_B;function i6e(){if(_B)return eE;_B=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++}},eE=e,eE}var s6e=i6e();const Xn=m1(s6e);function xf(e){return e.summary??e.description}function wf(e){return e.description??e.summary}function la(e){return!!e}const V1="@group";function l6e(e){return e.kind===V1}function EB(e,r){return at(typeof e=="string"&&e!=""),"@"+e+"."+r}function c6e(e){return e.startsWith("@")}function u6e(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 q1(e){return e.startsWith("step-")}function SB(e){if(!q1(e))throw new Error(`Invalid step edge id: ${e}`);return parseFloat(e.slice(5))}function d6e(...e){return Do(p6e,e)}function p6e(e,r){let n={...e};for(let[o,a]of Object.entries(n))r(a,o,e)&&delete n[o];return n}var tE={},CB;function rE(){return CB||(CB=1,(function(e){var r=Math.pow(2,8)-1,n=Math.pow(2,16)-1,o=Math.pow(2,32)-1,a=Math.pow(2,7)-1,i=Math.pow(2,15)-1,s=Math.pow(2,31)-1;e.getPointerArray=function(c){var u=c-1;if(u<=r)return Uint8Array;if(u<=n)return Uint16Array;if(u<=o)return Uint32Array;throw new Error("mnemonist: Pointer Array of size > 4294967295 is not supported.")},e.getSignedPointerArray=function(c){var u=c-1;return u<=a?Int8Array:u<=i?Int16Array:u<=s?Int32Array:Float64Array},e.getNumberType=function(c){return c===(c|0)?Math.sign(c)===-1?c<=127&&c>=-128?Int8Array:c<=32767&&c>=-32768?Int16Array:Int32Array:c<=255?Uint8Array:c<=65535?Uint16Array:Uint32Array:Float64Array};var l={Uint8Array:1,Int8Array:2,Uint16Array:3,Int16Array:4,Uint32Array:5,Int32Array:6,Float32Array:7,Float64Array:8};e.getMinimalRepresentation=function(c,u){var d=null,h=0,f,g,b,x,w;for(x=0,w=c.length;xh&&(h=f,d=g);return d},e.isTypedArray=function(c){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView(c)},e.concat=function(){var c=0,u,d,h;for(u=0,h=arguments.length;u"u"))return this.splayOnTop(s),this.V[s]},a.prototype.peek=function(i){var s=this.items[i];if(!(typeof s>"u"))return this.V[s]},a.prototype.forEach=function(i,s){s=arguments.length>1?s:this;for(var l=0,c=this.size,u=this.head,d=this.K,h=this.V,f=this.forward;l=s)return{done:!0};var d=c[l];return i++,i=s)return{done:!0};var d=c[l];return i++,i=s)return{done:!0};var h=c[l],f=u[l];return i++,i"u"))return this.splayOnTop(s),this.V[s]},a.prototype.peek=function(i){var s=this.items.get(i);if(!(typeof s>"u"))return this.V[s]},a.prototype.splayOnTop=e.prototype.splayOnTop,a.prototype.forEach=e.prototype.forEach,a.prototype.keys=e.prototype.keys,a.prototype.values=e.prototype.values,a.prototype.entries=e.prototype.entries,typeof Symbol<"u"&&(a.prototype[Symbol.iterator]=a.prototype.entries),a.prototype.inspect=e.prototype.inspect,a.from=function(i,s,l,c){if(arguments.length<2){if(c=o.guessLength(i),typeof c!="number")throw new Error("mnemonist/lru-cache.from: could not guess iterable length. Please provide desired capacity as last argument.")}else arguments.length===2&&(c=s,s=null,l=null);var u=new a(s,l,c);return r(i,function(d,h){u.set(h,d)}),u},oE=a,oE}var m6e=f6e();const DB=m1(m6e);function U1(e){return d6e(e,r=>r===void 0)}const g6e=Symbol.for("text"),y6e=Symbol.for("html"),oc="",$B=new DB(500),MB=new DB(500);class or{static getOrCreateFromText(r){if(r.trim()===oc)return or.EMPTY;let n=MB.get(r);return n||(n=new or({txt:r}),MB.set(r,n),n)}static getOrCreateFromMarkdown(r){if(r.trim()===oc)return or.EMPTY;let n=$B.get(r);return n||(n=new or({md:r}),$B.set(r,n),n)}static memoize(r,n,o){return yr(r,n,()=>or.from(o))}static from(r){return r==null||r===or.EMPTY?or.EMPTY:r instanceof or?r:typeof r=="string"?this.getOrCreateFromText(r):"isEmpty"in r&&r.isEmpty?or.EMPTY:"md"in r?this.getOrCreateFromMarkdown(r.md):this.getOrCreateFromText(r.txt)}static EMPTY=new class extends or{isEmpty=!0;nonEmpty=!1;isMarkdown=!1;$source=null;constructor(){super({txt:oc})}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()===oc):(this.$source=r,this.isEmpty=!0,"md"in r?(this.isEmpty=r.md===oc,this.isMarkdown=!0):this.isEmpty=r.txt===oc),this.nonEmpty=!this.isEmpty}get text(){if(this.isEmpty||this.$source===null)return oc;const r=this.$source;return"txt"in r?r.txt:yr(this,g6e,()=>n6e(r.md))}get md(){if(this.isEmpty||this.$source===null)return oc;const r=this.$source;if("md"in r)return r.md;if("txt"in r)return r.txt;Zi(r)}get html(){if(this.isEmpty||this.$source===null)return oc;const r=this.$source;return"txt"in r?r.txt:yr(this,y6e,()=>r6e(r.md))}equals(r){return this===r?!0:r instanceof or?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 PB(e){return r=>!e(r)}function b6e(...e){return Do(v6e,e)}const v6e=(e,r)=>r.every(n=>n(e));function x6e(...e){return Do(w6e,e)}const w6e=(e,r)=>r.some(n=>n(e));function rs(e){return e==null}function zB(e,r){return e[Gd]===r}const Gd="_stage",W1="_type",IB="_layout";function k6e(e){return la(e.kind)&&!la(e.element)}function _6e(e){return"tag"in e}function E6e(e){return"kind"in e}function S6e(e){return"participant"in e}function C6e(e){return"not"in e}function T6e(e){return"and"in e}function A6e(e){return"or"in e}function Xd(e){switch(!0){case S6e(e):{const r=e.participant,n=Xd(e.operator);return R6e(r,n)}case _6e(e):{if(cu(e.tag)||"eq"in e.tag){const n=cu(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 E6e(e):{if(cu(e.kind)||"eq"in e.kind){const n=cu(e.kind)?e.kind:e.kind.eq;return o=>o.kind===n}const r=e.kind.neq;return n=>rs(n.kind)||n.kind!==r}case C6e(e):{const r=Xd(e.not);return PB(r)}case T6e(e):{const r=e.and.map(Xd);return b6e(r)}case A6e(e):{const r=e.or.map(Xd);return x6e(r)}default:Zi(e)}}function R6e(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)}}}function N6e(e){return e._type==="dynamic"}var Y1;(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(cu(c))throw new Error(`Expected FqnRef, got: "${c}"`);if(n(c))return EB(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 s(c){return"deployment"in c&&!("element"in c)}e.isDeploymentElementRef=s;function l(c){return s(c)||i(c)}e.isDeploymentRef=l})(Y1||(Y1={}));function aE(e){return q1(e)&&e.includes(".")?e.slice(0,e.indexOf(".")+1):null}var il;(e=>{function r({x:u,y:d,width:h,height:f}){return{x:u+h/2,y:d+f/2}}e.center=r;function n(u){const{x1:d,y1:h,x2:f,y2:g}=iE.fromPoints(u);return{x:d,y:h,width:f-d,height:g-h}}e.fromPoints=n;function o(...u){if(at(Kl(u,1),"No boxes provided"),u.length===1)return u[0];let d=1/0,h=1/0,f=-1/0,g=-1/0;for(const b of u)d=Math.min(d,b.x),h=Math.min(h,b.y),f=Math.max(f,b.x+b.width),g=Math.max(g,b.y+b.height);return{x:d,y:h,width:f-d,height:g-h}}e.merge=o;function a(u){return{x:Math.min(u.x1,u.x2),y:Math.min(u.y1,u.y2),width:Math.abs(u.x2-u.x1),height:Math.abs(u.y2-u.y1)}}e.fromRectBox=a;function i(u){return{x1:u.x,y1:u.y,x2:u.x+u.width,y2:u.y+u.height}}e.toRectBox=i;function s(u,d){return d===0?u:{x:u.x-d,y:u.y-d,width:u.width+d*2,height:u.height+d*2}}e.expand=s;function l(u,d){return d===0?u:{x:u.x+d,y:u.y+d,width:u.width-d*2,height:u.height-d*2}}e.shrink=l;function c(u,d){return u===d?!0:u.x<=d.x&&u.y<=d.y&&u.x+u.width>=d.x+d.width&&u.y+u.height>=d.y+d.height}e.includes=c})(il||(il={}));var iE;(e=>{function r({x1:s,y1:l,x2:c,y2:u}){return{x:(s+c)/2,y:(l+u)/2}}e.center=r;function n(s){at(s.length>0,"At least one point is required");let l=1/0,c=1/0,u=-1/0,d=-1/0;for(const[h,f]of s)l=Math.min(l,h),c=Math.min(c,f),u=Math.max(u,h),d=Math.max(d,f);return{x1:l,y1:c,x2:u,y2:d}}e.fromPoints=n;function o(...s){at(s.length>0,"No boxes provided");let l=1/0,c=1/0,u=-1/0,d=-1/0;for(const h of s)l=Math.min(l,h.x1),c=Math.min(c,h.y1),u=Math.max(u,h.x2),d=Math.max(d,h.y2);return{x1:l,y1:c,x2:u,y2:d}}e.merge=o;function a(s){return{x:s.x1,y:s.y1,width:s.x2-s.x1,height:s.y2-s.y1}}e.toBBox=a;function i(s,l){return s===l?!0:s.x1<=l.x1&&s.y1<=l.y1&&s.x2>=l.x2&&s.y2>=l.y2}e.includes=i})(iE||(iE={}));function OB(e){const r=typeof e=="string"?e:e.color;return r.startsWith("#")||r.startsWith("rgb")}const sE={done:!1,hasNext:!1};function Kd(e,...r){let n=e,o=r.map(i=>"lazy"in i?D6e(i):void 0),a=0;for(;aLB(n,e,...r):LB(e,...r)}function LB(e,...r){let n=e;for(let o of r){if(n==null)return;n=n[o]}return n}function lE(...e){return Do(M6e,e)}function M6e(e,r){let n=[...e];return n.sort(r),n}function Px(...e){return Do(P6e,e,z6e)}const P6e=(e,r)=>e.map(r),z6e=e=>(r,n,o)=>({done:!1,hasNext:!0,next:e(r,n,o)}),I6e=["tomato","grass","blue","ruby","orange","indigo","pink","teal","purple","amber","crimson","red","lime","yellow","violet"];function O6e(e,r,n){let o=e.get(r);return o||(o=n(r),e.set(r,o)),o}var cE={},BB;function j6e(){return BB||(BB=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,s=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 s=0,l=i.length;sn.size&&(o=r,r=n,n=o),r.size===0)return 0;if(r===n)return r.size;for(var a=r.values(),i,s=0;i=a.next(),!i.done;)n.has(i.value)&&s++;return s},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)}})(cE)),cE}var FB=j6e();function uE(...e){let r=new Set;for(const n of e)for(const o of n)r.add(o);return r}function _f(e,...r){let n=new Set;if(e.size===0)return n;let o=Kl(r,2)?FB.intersection(...r):r[0];if(o.size===0)return n;for(const a of e)o.has(a)&&n.add(a);return n}function dE(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 L6e(e,r){return e.size===r.size&&[...e].every(n=>r.has(n))}function pE(e,r){return FB.symmetricDifference(e,r)}function B6e(e){let r=5381;const n=e.length;at(n>0,"stringHash: empty string");for(let o=0;o>>0).toString(36)}const zx=e=>typeof e=="function";function Qd(e,r){const n=r??e;at(zx(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;at(zx(n));function o(a){for(const i of a)if(n(i))return i}return r?o(e):o}function hE(e){return e?HB(e):HB}function HB(e){const r=e[Symbol.iterator](),{value:n}=r.next();return n}function F6e(e,r){const n=e;at(zx(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 H6e(e){return e?new Set(e):r=>new Set(r)}function VB(e,r){const n=r??e;at(zx(n));function o(a){for(const i of a)if(n(i))return!0;return!1}return r?o(e):o}function V6e(e,r){const n=e;at(n>=0,"Count must be a non-negative number");function*o(a){let i=0;for(const s of a){if(i>=n)break;yield s,i++}}return a=>o(a)}function q6e(e,r){let n=Math.ceil(e),o=Math.floor(r);if(o{setTimeout(()=>{n(U6e)},r??100)})}function Ix(e){const r=uu([...e]),n=new Set(r),o=new Map(r.map(s=>[s._literalId,s])),a=new Xn(()=>null),i=r.reduce((s,l,c,u)=>(s.set(l,u.slice(c+1).filter(rO(l)).map(d=>(n.delete(d),d)).reduce((d,h)=>(d.some(to(h))||(d.push(h),a.set(h,l)),d),[])),s),new Xn(()=>[]));return{sorted:r,byId:s=>bt(o.get(s),`Element not found by id: ${s}`),root:n,parent:s=>a.get(s),children:s=>i.get(s),flatten:()=>new Set([...n,...r.reduce((s,l)=>{const c=i.get(l);return c.length===0?(s.push(l),s):(c.length>1&&s.push(...c),s)},[])])}}const fE=(e,r)=>e.size>2&&r.size!==e.size?new Set(uu([...Ix(e).flatten(),...r])):e.size>1?new Set(uu([...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 s=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 h=c.target.parent;for(;h&&h!==e;)a.add(h),h=h.parent}let u=c.source;const d=[];for(;d.push(u),!(o(u)||!u.parent);)u=u.parent;return d})),l=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 h=c.source.parent;for(;h&&h!==e;)a.add(h),h=h.parent}let u=c.target;const d=[];for(;d.push(u),!(o(u)||!u.parent);)u=u.parent;return d}));return{incomers:fE(s,i.incomers),incoming:new Set(n.incoming),subjects:fE(a,i.subjects),outgoing:new Set(n.outgoing),outgoers:fE(l,i.outgoers)}}function WB(e,r,n,o="global"){const a=n?r.findView(n):null;if(o==="view")return at(a,'Scope view id is required when scope is "view"'),W6e(e,a,r);const i=r.element(e),s=H6e(i.ascendingSiblings());return UB(i,s,{incoming:[...i.incoming()],outgoing:[...i.outgoing()]})}function W6e(e,r,n){const o=n.element(e);let a={incoming:K1(Qd(o.incoming(),l=>r.includesRelation(l.id))),outgoing:K1(Qd(o.outgoing(),l=>r.includesRelation(l.id)))};const i=rO(o),s=new Set([...o.ascendingSiblings(),...Kd(r.elements(),F6e(l=>l.element),Qd(l=>l!==o&&i(l)))]);return UB(o,s,a)}var YB;(e=>{e.isInside=r=>n=>to(r,n.source.id)&&to(r,n.target.id),e.isDirectedBetween=(r,n)=>o=>(o.source.id===r||to(r,o.source.id))&&(o.target.id===n||to(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||to(r,n.target.id))&&!to(r,n.source.id),e.isOutgoing=r=>n=>(n.source.id===r||to(r,n.source.id))&&!to(r,n.target.id),e.isAnyInOut=r=>{const n=(0,e.isIncoming)(r),o=(0,e.isOutgoing)(r);return a=>n(a)||o(a)}})(YB||(YB={}));const Y6e=Symbol.for("nodejs.util.inspect.custom");function G6e(e,r){let n=r.length-e.length;if(n===1){let[o,...a]=r;return Kd(o,{lazy:e,lazyArgs:a})}if(n===0){let o={lazy:e,lazyArgs:r};return Object.assign(a=>Kd(a,o),o)}throw Error("Wrong number of arguments")}function Ef(e){return e===""||e===void 0?!0:Array.isArray(e)?e.length===0:Object.keys(e).length===0}function mE(...e){return Do(X6e,e)}function X6e(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 K6e(e,r);if(e instanceof Set&&r instanceof Set)return Z6e(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 K6e(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 Z6e(e,r){if(e.size!==r.size)return!1;for(let n of e)if(!r.has(n))return!1;return!0}function Ox(...e){return G6e(Q6e,e)}function Q6e(){let e=new Set;return r=>e.has(r)?sE:(e.add(r),{done:!1,hasNext:!0,next:r})}class GB{Aux;get style(){return yr(this,"style",()=>U1({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 or.memoize(this,"summary",xf(this.$node))}get description(){return or.memoize(this,"description",wf(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 yr(this,Symbol.for("allOutgoing"),()=>yu.from(new Set(this.outgoingModelRelationships()),new Set(this.outgoing())))}get allIncoming(){return yr(this,Symbol.for("allIncoming"),()=>yu.from(new Set(this.incomingModelRelationships()),new Set(this.incoming())))}hasMetadata(){return!!this.$node.metadata&&!Ef(this.$node.metadata)}getMetadata(r){return r?this.$node.metadata?.[r]:this.$node.metadata??{}}isTagged(r){return this.tags.includes(r)}}class XB extends GB{constructor(r,n){super(),this.$model=r,this.$node=n,this.id=n.id,this._literalId=n.id,this.title=n.title,this.hierarchyLevel=rx(n.id)}id;_literalId;title;hierarchyLevel;get parent(){return this.$model.parent(this)}get kind(){return this.$node.kind}get tags(){return yr(this,Symbol.for("tags"),()=>Ox([...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=hE(r);return n?n.isInstance()?n:n.onlyOneInstance():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 _f(n,r)}}class KB extends GB{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=rx(n.id)}id;_literalId;title;hierarchyLevel;get $node(){return this.$instance}get parent(){return bt(this.$model.parent(this),`Parent of ${this.id} not found`)}get style(){return yr(this,"style",()=>U1({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 yr(this,Symbol.for("tags"),()=>Ox([...this.$instance.tags??[],...this.element.tags]))}get kind(){return this.element.kind}get summary(){return or.memoize(this,"summary",xf(this.$instance)??xf(this.element.$element))}get description(){return or.memoize(this,"description",wf(this.$instance)??wf(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 J6e{constructor(r,n){this.instance=r,this.element=n}get id(){return this.instance.id}get _literalId(){return this.instance.id}get style(){return yr(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 e8e{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 la(this.$relationship.title)?this.$relationship.title:null}get technology(){return this.$relationship.technology??null}get hasSummary(){return!!this.$relationship.summary&&!!this.$relationship.description&&!mE(this.$relationship.summary,this.$relationship.description)}get summary(){return or.memoize(this,"summary",xf(this.$relationship))}get description(){return or.memoize(this,"description",wf(this.$relationship))}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&&!Ef(this.$relationship.metadata)}getMetadata(r){return r?this.$relationship.metadata?.[r]:this.$relationship.metadata??{}}isTagged(r){return this.tags.includes(r)}}class yu{constructor(r=new Set,n=new Set){this.model=r,this.deployment=n}static empty(){return new yu}static from(r,n){return new yu(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 yu.from(_f(this.model,r.model),_f(this.deployment,r.deployment))}difference(r){return yu.from(dE(this.model,r.model),dE(this.deployment,r.deployment))}union(r){return yu.from(uE(this.model,r.model),uE(this.deployment,r.deployment))}}function ZB(e,r){return n=>e.source===n.source&&e.target===n.target}function gE(e,r,n="directed"){if(e===r)return[];if(tO(e,r))return[];const o=_f(e.allOutgoing,r.allIncoming),a=o.size>0?new pi(e,r,o):null;if(n==="directed")return a?[a]:[];const i=_f(e.allIncoming,r.allOutgoing),s=i.size>0?new pi(r,e,i):null;return a&&s?[a,s]:a?[a]:s?[s]:[]}function QB(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 s of gE(e,i,n))s.source===e?o.push(s):a.push(s);return[...o,...a]}function t8e(e){return[...e].reduce((r,n,o,a)=>(o===a.length-1||r.push(...QB(n,a.slice(o+1),"both")),r),[])}const r8e={__proto__:null,findConnection:gE,findConnectionsBetween:QB,findConnectionsWithin:t8e};class pi{constructor(r,n,o=new Set){this.source=r,this.target=n,this.relations=o,this.id=B6e(`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()&&VB(this.relations,PB(ZB(this)))}get directRelations(){return new Set(Qd(this.relations,ZB(this)))}nonEmpty(){return this.relations.size>0}mergeWith(r){return at(this.source.id===r.source.id,"Cannot merge connections with different sources"),at(this.target.id===r.target.id,"Cannot merge connections with different targets"),new pi(this.source,this.target,uE(this.relations,r.relations))}difference(r){return new pi(this.source,this.target,dE(this.relations,r.relations))}intersect(r){return at(r instanceof pi,"Cannot intersect connection with different type"),new pi(this.source,this.target,_f(this.relations,r.relations))}equals(r){at(r instanceof pi,"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&&L6e(this.relations,n.relations)}update(r){return new pi(this.source,this.target,r)}[Y6e](r,n,o){const a=this.toString();return Object.defineProperty(a,"constructor",{value:pi,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 pi(this.target,this.source);const[n]=gE(this.target,this.source,"directed");return n??new pi(this.target,this.source,new Set)}}const JB={asc:(e,r)=>e>r,desc:(e,r)=>ee(i,a)}function yE(e,r,...n){let o=typeof e=="function"?e:e[0],a=typeof e=="function"?"asc":e[1],{[a]:i}=JB,s=r===void 0?void 0:yE(r,...n);return(l,c)=>{let u=o(l),d=o(c);return i(u,d)?1:i(d,u)?-1:s?.(l,c)??0}}function o8e(e){if(eF(e))return!0;if(typeof e!="object"||!Array.isArray(e))return!1;let[r,n,...o]=e;return eF(r)&&typeof n=="string"&&n in JB&&o.length===0}const eF=e=>typeof e=="function"&&e.length===1;function a8e(...e){return Do(i8e,e,s8e)}const i8e=(e,r)=>e.filter(r),s8e=e=>(r,n,o)=>e(r,n,o)?{done:!1,hasNext:!0,next:r}:sE;function tF(...e){return Do(l8e,e,c8e)}const l8e=(e,r)=>e.flatMap(r),c8e=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 bE(...e){return Do(u8e,e)}const u8e=(e,r)=>{let n=Object.create(null);for(let o=0;oe.at(-1);function vE(...e){return Do(f8e,e)}function f8e(e,r){let n={};for(let[o,a]of Object.entries(e))n[o]=r(a,o,e);return n}function xE(...e){return r=>Kd(r,...e)}function rF(...e){return n8e(m8e,e)}const m8e=(e,r)=>[...e].sort(r);function nF(e,r,n){return typeof r=="number"||r===void 0?o=>o.split(e,r):e.split(r,n)}function Z1(...e){return Do(Object.values,e)}class jx{constructor(r,n){this.$model=r,this.$element=n,this.id=this.$element.id,this._literalId=this.$element.id;const[o,a]=u6e(this.id);o?(this.imported={from:o,fqn:a},this.hierarchyLevel=rx(a)):(this.imported=null,this.hierarchyLevel=rx(this.id))}Aux;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 yr(this,Symbol.for("tags"),()=>Ox([...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&&!mE(this.$element.summary,this.$element.description)}get summary(){return or.memoize(this,"summary",xf(this.$element))}get description(){return or.memoize(this,"description",wf(this.$element))}get technology(){return this.$element.technology??null}get links(){return this.$element.links??[]}get defaultView(){return yr(this,Symbol.for("defaultView"),()=>hE(this.scopedViews())??null)}get isRoot(){return this.parent===null}get style(){return yr(this,"style",()=>U1({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 to(this,r)}isDescendantOf(r){return to(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?nO([...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 yr(this,Symbol.for("allOutgoing"),()=>new Set(this.outgoing()))}get allIncoming(){return yr(this,Symbol.for("allIncoming"),()=>new Set(this.incoming()))}views(){return yr(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 yr(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 la(hE(this.deployments()))}deployments(){return this.$model.deployment.instancesOf(this)}hasMetadata(){return!!this.$element.metadata&&!Ef(this.$element.metadata)}getMetadata(r){return r?this.$element.metadata?.[r]:this.$element.metadata??{}}isTagged(r){return this.tags.includes(r)}}const Tr=e=>typeof e=="string"?e:e.id,$a="/",wE=e=>{if(at(!e.includes(` -`),"View title cannot contain newlines"),e.includes($a)){const r=e.split($a).map(n=>n.trim()).filter(n=>n.length>0);return Kl(r,1)?r:[""]}return[e.trim()]},Lx=e=>wE(e).join($a),g8e=e=>{const r=wE(e);return Kl(r,2)?r.slice(0,-1).join($a):null},kE=e=>e.includes($a)?wE(e).pop()??e:e.trim();class y8e{constructor(r){this.$model=r;const n=this.$deployments=r.$data.deployments,o=Z1(n.elements);for(const a of uu(o)){const i=this.addElement(a);for(const s of i.tags)this.#c.get(s).add(i);i.isInstance()&&this.#r.get(i.element.id).add(i)}for(const a of Z1(n.relations)){const i=this.addRelation(a);for(const s of i.tags)this.#c.get(s).add(i)}}#e=new Map;#i=new Map;#t=new Xn(()=>new Set);#r=new Xn(()=>new Set);#s=new Set;#n=new Map;#l=new Xn(()=>new Set);#a=new Xn(()=>new Set);#o=new Xn(()=>new Set);#c=new Xn(()=>new Set);#u=new Map;$deployments;get $styles(){return this.$model.$styles}element(r){if(r instanceof XB||r instanceof KB)return r;const n=Tr(r);return bt(this.#e.get(n),`Element ${n} not found`)}findElement(r){return this.#e.get(r)??null}node(r){const n=this.element(r);return at(n.isDeploymentNode(),`Element ${n.id} is not a deployment node`),n}findNode(r){const n=this.findElement(r);return n?(at(n.isDeploymentNode(),`Element ${n?.id} is not a deployment node`),n):null}instance(r){const n=this.element(r);return at(n.isInstance(),`Element ${n.id} is not a deployed instance`),n}findInstance(r){const n=this.findElement(r);return n?(at(n.isInstance(),`Element ${n?.id} is not a deployed instance`),n):null}roots(){return this.#s.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=Tr(r),o=this.#r.get(n);o&&(yield*o)}deploymentRef(r){if(Y1.isInsideInstanceRef(r)){const{deployment:n,element:o}=r;return O6e(this.#u,`${n}@${o}`,()=>new J6e(this.instance(n),this.$model.element(o)))}return this.element(r.deployment)}relationships(){return this.#n.values()}relationship(r){return bt(this.#n.get(Tr(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=Tr(r);return this.#i.get(n)||null}children(r){const n=Tr(r);return this.#t.get(n)}*siblings(r){const n=Tr(r),o=this.parent(r)?.children()??this.roots();for(const a of o)a.id!==n&&(yield a)}*ancestors(r){let n=Tr(r),o;for(;o=this.#i.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=Tr(r);for(const a of this.#l.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=Tr(r);for(const a of this.#a.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=k6e(r)?new XB(this,Object.freeze(r)):new KB(this,Object.freeze(r),this.$model.element(r.element));this.#e.set(n.id,n);const o=tx(n.id);return o?(at(this.#e.has(o),`Parent ${o} of ${n.id} not found`),this.#i.set(n.id,this.node(o)),this.#t.get(o).add(n)):(at(n.isDeploymentNode(),`Root element ${n.id} is not a deployment node`),this.#s.add(n)),n}addRelation(r){if(this.#n.has(r.id))throw new Error(`Relation ${r.id} already exists`);const n=new e8e(this,Object.freeze(r));this.#n.set(n.id,n),this.#l.get(n.target.id).add(n),this.#a.get(n.source.id).add(n);const o=n.boundary?.id??null;if(o)for(const a of[o,...jd(o)])this.#o.get(a).add(n);for(const a of jd(n.source.id)){if(a===o)break;this.#a.get(a).add(n)}for(const a of jd(n.target.id)){if(a===o)break;this.#l.get(a).add(n)}return n}}class oF{constructor(r,n){this.model=r,this.$relationship=n,this.source=r.element(Y1.flatten(n.source)),this.target=r.element(Y1.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 la(this.$relationship.title)?this.$relationship.title:null}get technology(){return la(this.$relationship.technology)?this.$relationship.technology:null}get hasSummary(){return!!this.$relationship.summary&&!!this.$relationship.description&&!mE(this.$relationship.summary,this.$relationship.description)}get summary(){return or.memoize(this,"summary",xf(this.$relationship))}get description(){return or.memoize(this,"description",wf(this.$relationship))}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&&!Ef(this.$relationship.metadata)}getMetadata(r){return r?this.$relationship.metadata?.[r]:this.$relationship.metadata??{}}isTagged(r){return this.tags.includes(r)}}var aF=Symbol.for("immer-nothing"),iF=Symbol.for("immer-draftable"),Ma=Symbol.for("immer-state");function ns(e,...r){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Q1=Object.getPrototypeOf;function Sf(e){return!!e&&!!e[Ma]}function Jd(e){return e?lF(e)||Array.isArray(e)||!!e[iF]||!!e.constructor?.[iF]||J1(e)||Hx(e):!1}var b8e=Object.prototype.constructor.toString(),sF=new WeakMap;function lF(e){if(!e||typeof e!="object")return!1;const r=Object.getPrototypeOf(e);if(r===null||r===Object.prototype)return!0;const n=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let o=sF.get(n);return o===void 0&&(o=Function.toString.call(n),sF.set(n,o)),o===b8e}function Bx(e,r,n=!0){Fx(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(a=>{r(a,e[a],e)}):e.forEach((o,a)=>r(a,o,e))}function Fx(e){const r=e[Ma];return r?r.type_:Array.isArray(e)?1:J1(e)?2:Hx(e)?3:0}function _E(e,r){return Fx(e)===2?e.has(r):Object.prototype.hasOwnProperty.call(e,r)}function cF(e,r,n){const o=Fx(e);o===2?e.set(r,n):o===3?e.add(n):e[r]=n}function v8e(e,r){return e===r?e!==0||1/e===1/r:e!==e&&r!==r}function J1(e){return e instanceof Map}function Hx(e){return e instanceof Set}function ep(e){return e.copy_||e.base_}function EE(e,r){if(J1(e))return new Map(e);if(Hx(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=lF(e);if(r===!0||r==="class_only"&&!n){const o=Object.getOwnPropertyDescriptors(e);delete o[Ma];let a=Reflect.ownKeys(o);for(let i=0;i1&&Object.defineProperties(e,{set:Vx,add:Vx,clear:Vx,delete:Vx}),Object.freeze(e),r&&Object.values(e).forEach(n=>SE(n,!0))),e}function x8e(){ns(2)}var Vx={value:x8e};function qx(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var w8e={};function tp(e){const r=w8e[e];return r||ns(0,e),r}var e0;function uF(){return e0}function k8e(e,r){return{drafts_:[],parent_:e,immer_:r,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function dF(e,r){r&&(tp("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=r)}function CE(e){TE(e),e.drafts_.forEach(_8e),e.drafts_=null}function TE(e){e===e0&&(e0=e.parent_)}function pF(e){return e0=k8e(e0,e)}function _8e(e){const r=e[Ma];r.type_===0||r.type_===1?r.revoke_():r.revoked_=!0}function hF(e,r){r.unfinalizedDrafts_=r.drafts_.length;const n=r.drafts_[0];return e!==void 0&&e!==n?(n[Ma].modified_&&(CE(r),ns(4)),Jd(e)&&(e=Ux(r,e),r.parent_||Wx(r,e)),r.patches_&&tp("Patches").generateReplacementPatches_(n[Ma].base_,e,r.patches_,r.inversePatches_)):e=Ux(r,n,[]),CE(r),r.patches_&&r.patchListener_(r.patches_,r.inversePatches_),e!==aF?e:void 0}function Ux(e,r,n){if(qx(r))return r;const o=e.immer_.shouldUseStrictIteration(),a=r[Ma];if(!a)return Bx(r,(i,s)=>fF(e,a,r,i,s,n),o),r;if(a.scope_!==e)return r;if(!a.modified_)return Wx(e,a.base_,!0),a.base_;if(!a.finalized_){a.finalized_=!0,a.scope_.unfinalizedDrafts_--;const i=a.copy_;let s=i,l=!1;a.type_===3&&(s=new Set(i),i.clear(),l=!0),Bx(s,(c,u)=>fF(e,a,i,c,u,n,l),o),Wx(e,i,!1),n&&e.patches_&&tp("Patches").generatePatches_(a,n,e.patches_,e.inversePatches_)}return a.copy_}function fF(e,r,n,o,a,i,s){if(a==null||typeof a!="object"&&!s)return;const l=qx(a);if(!(l&&!s)){if(Sf(a)){const c=i&&r&&r.type_!==3&&!_E(r.assigned_,o)?i.concat(o):void 0,u=Ux(e,a,c);if(cF(n,o,u),Sf(u))e.canAutoFreeze_=!1;else return}else s&&n.add(a);if(Jd(a)&&!l){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||r&&r.base_&&r.base_[o]===a&&l)return;Ux(e,a),(!r||!r.scope_.parent_)&&typeof o!="symbol"&&(J1(n)?n.has(o):Object.prototype.propertyIsEnumerable.call(n,o))&&Wx(e,a)}}}function Wx(e,r,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&SE(r,n)}function E8e(e,r){const n=Array.isArray(e),o={type_:n?1:0,scope_:r?r.scope_:uF(),modified_:!1,finalized_:!1,assigned_:{},parent_:r,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let a=o,i=AE;n&&(a=[o],i=t0);const{revoke:s,proxy:l}=Proxy.revocable(a,i);return o.draft_=l,o.revoke_=s,l}var AE={get(e,r){if(r===Ma)return e;const n=ep(e);if(!_E(n,r))return S8e(e,n,r);const o=n[r];return e.finalized_||!Jd(o)?o:o===RE(e.base_,r)?(DE(e),e.copy_[r]=$E(o,e)):o},has(e,r){return r in ep(e)},ownKeys(e){return Reflect.ownKeys(ep(e))},set(e,r,n){const o=mF(ep(e),r);if(o?.set)return o.set.call(e.draft_,n),!0;if(!e.modified_){const a=RE(ep(e),r),i=a?.[Ma];if(i&&i.base_===n)return e.copy_[r]=n,e.assigned_[r]=!1,!0;if(v8e(n,a)&&(n!==void 0||_E(e.base_,r)))return!0;DE(e),NE(e)}return e.copy_[r]===n&&(n!==void 0||r in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[r])||(e.copy_[r]=n,e.assigned_[r]=!0),!0},deleteProperty(e,r){return RE(e.base_,r)!==void 0||r in e.base_?(e.assigned_[r]=!1,DE(e),NE(e)):delete e.assigned_[r],e.copy_&&delete e.copy_[r],!0},getOwnPropertyDescriptor(e,r){const n=ep(e),o=Reflect.getOwnPropertyDescriptor(n,r);return o&&{writable:!0,configurable:e.type_!==1||r!=="length",enumerable:o.enumerable,value:n[r]}},defineProperty(){ns(11)},getPrototypeOf(e){return Q1(e.base_)},setPrototypeOf(){ns(12)}},t0={};Bx(AE,(e,r)=>{t0[e]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}}),t0.deleteProperty=function(e,r){return t0.set.call(this,e,r,void 0)},t0.set=function(e,r,n){return AE.set.call(this,e[0],r,n,e[0])};function RE(e,r){const n=e[Ma];return(n?ep(n):e)[r]}function S8e(e,r,n){const o=mF(r,n);return o?"value"in o?o.value:o.get?.call(e.draft_):void 0}function mF(e,r){if(!(r in e))return;let n=Q1(e);for(;n;){const o=Object.getOwnPropertyDescriptor(n,r);if(o)return o;n=Q1(n)}}function NE(e){e.modified_||(e.modified_=!0,e.parent_&&NE(e.parent_))}function DE(e){e.copy_||(e.copy_=EE(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var C8e=class{constructor(r){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(n,o,a)=>{if(typeof n=="function"&&typeof o!="function"){const s=o;o=n;const l=this;return function(u=s,...d){return l.produce(u,h=>o.call(this,h,...d))}}typeof o!="function"&&ns(6),a!==void 0&&typeof a!="function"&&ns(7);let i;if(Jd(n)){const s=pF(this),l=$E(n,void 0);let c=!0;try{i=o(l),c=!1}finally{c?CE(s):TE(s)}return dF(s,a),hF(i,s)}else if(!n||typeof n!="object"){if(i=o(n),i===void 0&&(i=n),i===aF&&(i=void 0),this.autoFreeze_&&SE(i,!0),a){const s=[],l=[];tp("Patches").generateReplacementPatches_(n,i,s,l),a(s,l)}return i}else ns(1,n)},this.produceWithPatches=(n,o)=>{if(typeof n=="function")return(l,...c)=>this.produceWithPatches(l,u=>n(u,...c));let a,i;return[this.produce(n,o,(l,c)=>{a=l,i=c}),a,i]},typeof r?.autoFreeze=="boolean"&&this.setAutoFreeze(r.autoFreeze),typeof r?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(r.useStrictShallowCopy),typeof r?.useStrictIteration=="boolean"&&this.setUseStrictIteration(r.useStrictIteration)}createDraft(r){Jd(r)||ns(8),Sf(r)&&(r=T8e(r));const n=pF(this),o=$E(r,void 0);return o[Ma].isManual_=!0,TE(n),o}finishDraft(r,n){const o=r&&r[Ma];(!o||!o.isManual_)&&ns(9);const{scope_:a}=o;return dF(a,n),hF(void 0,a)}setAutoFreeze(r){this.autoFreeze_=r}setUseStrictShallowCopy(r){this.useStrictShallowCopy_=r}setUseStrictIteration(r){this.useStrictIteration_=r}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(r,n){let o;for(o=n.length-1;o>=0;o--){const i=n[o];if(i.path.length===0&&i.op==="replace"){r=i.value;break}}o>-1&&(n=n.slice(o+1));const a=tp("Patches").applyPatches_;return Sf(r)?a(r,n):this.produce(r,i=>a(i,n))}};function $E(e,r){const n=J1(e)?tp("MapSet").proxyMap_(e,r):Hx(e)?tp("MapSet").proxySet_(e,r):E8e(e,r);return(r?r.scope_:uF()).drafts_.push(n),n}function T8e(e){return Sf(e)||ns(10,e),gF(e)}function gF(e){if(!Jd(e)||qx(e))return e;const r=e[Ma];let n,o=!0;if(r){if(!r.modified_)return r.base_;r.finalized_=!0,n=EE(e,r.scope_.immer_.useStrictShallowCopy_),o=r.scope_.immer_.shouldUseStrictIteration()}else n=EE(e,!0);return Bx(n,(a,i)=>{cF(n,a,gF(i))},o),r&&(r.finalized_=!1),n}var A8e=new C8e,yF=A8e.produce;function R8e(e){return Kd(e,a8e(r=>!!r.notation),bE(Zd("notation")),vE(xE(bE(Zd("shape")),vE(xE(bE(Zd("color")),vE(xE(Px(Zd("kind")),Ox())),G1(),Px(([r,n])=>({kinds:n,color:r})))),G1(),tF(([r,n])=>n.map(({color:o,kinds:a})=>({shape:r,color:o,kinds:a}))))),G1(),tF(([r,n])=>n.map(({shape:o,color:a,kinds:i})=>({title:r,shape:o,color:a,kinds:i}))),rF(Zd("shape"),Zd("title"),[r=>r.kinds.length,"desc"]))}const sl=(e,r)=>e===r||rs(e)&&rs(r)?!1:!Vv(e,r),bF=5;function N8e(e,r){e.color=r.color,e.kind=r.kind,e.navigateTo=r.navigateTo??null,e.links=r.links?[...r.links]:null,e.tags=[...r.tags],rs(r.style.border)?delete e.style.border:e.style.border=r.style.border,d8e(r.style.opacity)?e.style.opacity=r.style.opacity:delete e.style.opacity,rs(r.style.multiple)?delete e.style.multiple:e.style.multiple=r.style.multiple}function D8e(e,r,n){if(sl(r.icon??"none",e.icon??"none")){const o=la(e.icon)&&e.icon!=="none";switch(!0){case(o&&la(r.icon)&&r.icon!=="none"):return e.icon=r.icon,!0;case(o&&(rs(r.icon)||r.icon==="none")):return e.icon="none",!0;case(!o&&la(r.icon)&&r.icon!=="none"):return n?(e.icon=r.icon,!0):!1}}return!0}function $8e(e,r,n){let o=!0;return sl(e.title,r.title)&&(n?e.title=r.title:o=!1),sl(e.description,r.description)&&(rs(r.description)?delete e.description:n?e.description=r.description:o=!1),sl(e.technology,r.technology)&&(rs(r.technology)?delete e.technology:n?e.technology=r.technology:o=!1),o}function M8e(e,r,n){return e.title=r.title,rs(r.description)?delete e.description:e.description=r.description,rs(r.technology)?delete e.technology:e.technology=r.technology,!0}function vF(e,r){at(e.id===r.id,"applyManualLayout: view ids do not match"),at(e._stage==="layouted","applyManualLayout: expected layouted view"),at(r._stage==="layouted","applyManualLayout: expected layouted snapshot"),at(e._layout!=="manual","applyManualLayout: expected auto-layouted view");const n=new Set;e._type!==r._type&&n.add("type-changed");const o=new Map(e.nodes.map(b=>[b.id,b])),a=new Map(e.edges.map(b=>[b.id,b])),i=new Set(o.keys()),s=new Set(a.keys()),l=new Set(r.nodes.map(b=>b.id)),c=new Set(r.edges.map(b=>b.id));pE(i,l).size>0&&n.add("nodes-mismatch"),pE(s,c).size>0&&n.add("edges-mismatch");const u=r.nodes.map(b=>{const x=o.get(b.id);return yF(b,w=>{if(!x){w.drifts=["missing"];return}N8e(w,x);const k=new Set,C=b.children.length>0,_=x.children.length>0;(sl(w.modelRef,x.modelRef)||sl(w.deploymentRef,x.deploymentRef))&&k.add("modelRef-changed"),_&&!C&&k.add("became-compound"),!_&&C&&k.add("became-leaf"),sl(w.parent,x.parent)&&k.add("parent-changed");const T=w.width+bF>=x.width&&w.height+bF>=x.height;sl(w.shape,x.shape)&&(T?w.shape=x.shape:k.add("shape-changed")),D8e(w,x,T&&_===C)||k.add("label-changed"),(C?M8e:$8e)(w,x,T)||k.add("label-changed"),sl(b.notation,x.notation)&&(w.notation=x.notation??null),C&&_&&pE(new Set(b.children),new Set(x.children)).size>0&&k.add("children-changed");const R=[...k];Kl(R,1)&&(n.add("nodes-mismatch"),w.drifts=R)})}),d=r.edges.map(b=>{const x=a.get(b.id);return yF(b,w=>{if(!x){w.drifts=["missing"];return}const k=new Set;w.source===x.target&&w.target===x.source?k.add("direction-changed"):(w.source!==x.source&&k.add("source-changed"),w.target!==x.target&&k.add("target-changed")),k.size===0&&sl(w.dir??"forward",x.dir??"forward")&&k.add("direction-changed"),w.color=x.color,w.line=x.line,w.navigateTo=x.navigateTo??null,w.tags=x.tags?[...x.tags]:null,rs(x.notes)?delete w.notes:w.notes=x.notes,x.astPath&&(w.astPath=x.astPath),x.labelBBox?((!w.labelBBox||!la(w.label)&&la(x.label))&&k.add("label-changed"),w.labelBBox={x:w.labelBBox?.x??x.labelBBox.x,y:w.labelBBox?.y??x.labelBBox.y,width:x.labelBBox.width,height:x.labelBBox.height},w.label=x.label,w.description=x.description??null,w.technology=x.technology??null):b.labelBBox&&k.add("label-changed");const C=[...k];Kl(C,1)&&(n.add("edges-mismatch"),w.drifts=C)})}),h=R8e(u),f={...r};Object.assign(f,{title:e.title??r.title,description:e.description??r.description,tags:e.tags?[...e.tags]:null,links:e.links?[...e.links]:null,[IB]:"manual",...h&&h.length>0?{notation:{nodes:h}}:{},nodes:u,edges:d}),N6e(e)&&f._type==="dynamic"&&Object.assign(f,{variant:e.variant});const g=[...n];return Kl(g,1)?f.drifts=g:"drifts"in f&&delete f.drifts,f}function P8e(e,r){const{drifts:n}=vF(e,r);if(n)Object.assign(e,{[IB]:"auto",drifts:n});else{const o=e;"drifts"in e&&delete o.drifts}return e}class z8e{constructor(r,n,o,a){this.source=o,this.target=a,this.$viewModel=r,this.$view=r.$view,this.$edge=n}Aux;$viewModel;$view;$edge;get id(){return this.$edge.id}get parent(){return this.$edge.parent?this.$viewModel.node(this.$edge.parent):null}get label(){return this.$edge.label??null}get description(){return or.memoize(this,"description",this.$edge.description)}get technology(){return this.$edge.technology??null}hasParent(){return this.$edge.parent!==null}get tags(){return this.$edge.tags??[]}get stepNumber(){return this.isStep()?SB(this.id):null}get navigateTo(){return this.$edge.navigateTo?this.$viewModel.$model.view(this.$edge.navigateTo):null}get color(){return this.$edge.color}get line(){return this.$edge.line??this.$viewModel.$styles.defaults.relationship.line}get head(){return this.$edge.head??this.$viewModel.$styles.defaults.relationship.arrow}get tail(){return this.$edge.tail}isStep(){return q1(this.id)}*relationships(r){for(const n of this.$edge.relations)if(r){const o=this.$viewModel.$model.findRelationship(n,r);o&&(yield o)}else yield this.$viewModel.$model.relationship(n)}includesRelation(r){const n=typeof r=="string"?r:r.id;return this.$edge.relations.includes(n)}isTagged(r){return this.tags.includes(r)}}class I8e{Aux;$viewModel;$view;$node;constructor(r,n){this.$viewModel=r,this.$view=r.$view,this.$node=n}get id(){return this.$node.id}get title(){return this.$node.title}get kind(){return this.$node.kind}get description(){return or.memoize(this,"description",this.$node.description)}get technology(){return this.$node.technology??null}get parent(){return this.$node.parent?this.$viewModel.node(this.$node.parent):null}get element(){const r=this.$node.modelRef;return r?this.$viewModel.$model.element(r):null}get deployment(){const r=this.$node.deploymentRef;return r?this.$viewModel.$model.deployment.element(r):null}get shape(){return this.$node.shape}get color(){return this.$node.color}get icon(){return this.$node.icon??null}get tags(){return this.$node.tags}get links(){return this.$node.links??[]}get navigateTo(){return this.$node.navigateTo?this.$viewModel.$model.view(this.$node.navigateTo):null}get style(){return this.$node.style}get x(){return"x"in this.$node?this.$node.x:void 0}get y(){return"y"in this.$node?this.$node.y:void 0}get width(){return"width"in this.$node?this.$node.width:void 0}get height(){return"height"in this.$node?this.$node.height:void 0}children(){return yr(this,"children",()=>new Set(this.$node.children.map(r=>this.$viewModel.node(r))))}*ancestors(){let r=this.parent;for(;r;)yield r,r=r.parent}*siblings(){const r=this.parent?.children()??this.$viewModel.roots();for(const n of r)n.id!==this.id&&(yield n)}*incoming(r="all"){for(const n of this.$node.inEdges){const o=this.$viewModel.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.$node.outEdges){const o=this.$viewModel.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)}isLayouted(){return"width"in this.$node&&"height"in this.$node}hasChildren(){return this.$node.children.length>0}hasParent(){return this.$node.parent!==null}hasElement(){return la(this.$node.modelRef)}hasDeployment(){return la(this.$node.deploymentRef)}hasDeployedInstance(){return this.hasElement()&&this.hasDeployment()}isGroup(){return l6e(this.$node)}isTagged(r){return this.tags.includes(r)}}class ME{Aux;#e;#i=new Set;#t=new Map;#r=new Map;#s=new Set;#n=new Set;#l=new Set;#a=new Xn(r=>new Set);#o;id;$model;title;folder;viewPath;constructor(r,n,o,a){this.$model=r,this.#e=o,this.id=o.id,this.folder=n,this.#o=a;for(const i of this.#e.nodes){const s=new I8e(this,Object.freeze(i));this.#t.set(i.id,s),i.parent||this.#i.add(s),i.deploymentRef&&this.#n.add(i.deploymentRef),i.modelRef&&this.#s.add(i.modelRef);for(const l of s.tags)this.#a.get(l).add(s)}for(const i of this.#e.edges){const s=new z8e(this,Object.freeze(i),this.node(i.source),this.node(i.target));for(const l of s.tags)this.#a.get(l).add(s);for(const l of i.relations)this.#l.add(l);this.#r.set(i.id,s)}this.title=o.title?kE(o.title):null,this.viewPath=o.title?Lx(o.title):o.id}get $styles(){return this.$model.$styles}get _type(){return this.#e[W1]}get stage(){return this.#e[Gd]}get bounds(){if("bounds"in this.#e)return this.#e.bounds;if(this.#o)return this.#o.bounds;throw new Error("View is not layouted")}get titleOrId(){return this.title??this.viewOf?.title??this.id}get titleOrUntitled(){return this.title??"Untitled"}get breadcrumbs(){return yr(this,"breadcrumbs",()=>this.folder.isRoot?[this]:[...this.folder.breadcrumbs,this])}get description(){return or.memoize(this,"description",this.#e.description)}get tags(){return this.#e.tags??[]}get links(){return this.#e.links??[]}get viewOf(){if(this.isElementView()){const r=this.#e.viewOf;return r?this.$model.element(r):null}return null}get mode(){return this.isDynamicView()?this.#e.variant??"diagram":null}get includedTags(){return[...this.#a.keys()]}get $view(){if(!this.isLayouted()||"drifts"in this.#e)return this.#e;const r=this.#o;return r?yr(this,"withDriftReasons",()=>P8e(this.#e,r)):this.#e}get $layouted(){if(!this.isLayouted())throw new Error("View is not layouted");return this.manualLayouted??this.#e}get hasManualLayout(){return this.#o!==void 0}get manualLayouted(){if(!this.isLayouted())return null;const r=this.#o;return r?yr(this,"snapshotWithManualLayout",()=>vF(this.#e,r)):null}get driftReasons(){return this.isLayouted()?this.$view.drifts??[]:[]}roots(){return this.#i.values()}*compounds(){for(const r of this.#t.values())r.hasChildren()&&(yield r)}node(r){const n=Tr(r);return bt(this.#t.get(n),`Node ${n} not found in view ${this.#e.id}`)}findNode(r){return this.#t.get(Tr(r))??null}findNodeWithElement(r){const n=Tr(r);return this.#s.has(n)?X1(this.#t.values(),o=>o.hasElement()&&o.element.id===n)??null:null}nodes(){return this.#t.values()}edge(r){const n=Tr(r);return bt(this.#r.get(n),`Edge ${n} not found in view ${this.#e.id}`)}findEdge(r){return this.#r.get(Tr(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.#s.has(Tr(r))}includesDeployment(r){return this.#n.has(Tr(r))}includesRelation(r){return this.#l.has(Tr(r))}isComputed(){return this.#e[Gd]==="computed"}isLayouted(){return this.#e[Gd]==="layouted"}isDiagram(){return this.#e[Gd]==="layouted"}isElementView(){return this.#e[W1]==="element"}isScopedElementView(){return this.#e[W1]==="element"&&la(this.#e.viewOf)}isDeploymentView(){return this.#e[W1]==="deployment"}isDynamicView(){return this.#e[W1]==="dynamic"}}class Yx{$model;path;title;isRoot;parentPath;defaultViewId;constructor(r,n,o){this.$model=r,this.path=n.join("/"),this.isRoot=this.path==="",this.title=p8e(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 at(!this.isRoot,"Root view folder has no breadcrumbs"),yr(this,"breadcrumbs",()=>{const r=this.parent;return r?r.isRoot?[r,this]:[...r.breadcrumbs,this]:[this]})}get parent(){return at(!this.isRoot,"Root view folder has no parent"),Ef(this.parentPath)?null:this.$model.viewFolder(this.parentPath)}get children(){return this.$model.viewFolderItems(this.path)}get folders(){return yr(this,"folders",()=>{const r=[];for(const n of this.children)n instanceof Yx&&r.push(n);return r})}get views(){return yr(this,"views",()=>{const r=[];for(const n of this.children)n instanceof ME&&r.push(n);return r})}}class rp{Aux;_elements=new Map;_parents=new Map;_children=new Xn(()=>new Set);_rootElements=new Set;_relations=new Map;_incoming=new Xn(()=>new Set);_outgoing=new Xn(()=>new Set);_internal=new Xn(()=>new Set);_views=new Map;_rootViewFolder;_viewFolders=new Map;_viewFolderItems=new Xn(()=>new Set);_allTags=new Xn(()=>new Set);static fromParsed(r){return new rp(r)}static create(r){return new rp(r)}static fromDump(r){const{_stage:n="layouted",projectId:o="unknown",project:a,globals:i,imports:s,deployments:l,views:c,relations:u,elements:d,specification:h}=r;return new rp({[Gd]:n,projectId:o,project:a,globals:{predicates:i?.predicates??{},dynamicPredicates:i?.dynamicPredicates??{},styles:i?.styles??{}},imports:s??{},deployments:{elements:l?.elements??{},relations:l?.relations??{}},views:c??{},relations:u??{},elements:d??{},specification:h})}deployment;$data;constructor(r){this.$data=r;for(const[,n]of G1(r.elements)){const o=this.addElement(n);for(const a of o.tags)this._allTags.get(a).add(o)}for(const[n,o]of G1(r.imports??{}))for(const a of uu(o)){const i=this.addImportedElement(n,a);for(const s of i.tags)this._allTags.get(s).add(i)}for(const n of Z1(r.relations)){const o=this.addRelation(n);for(const a of o.tags)this._allTags.get(a).add(o)}if(this.deployment=new y8e(this),zB(r,"computed")||zB(r,"layouted")){const n=eO($a);Z1(r.views);const o=Kd(Z1(r.views),Px(i=>({view:i,path:Lx(i.title??i.id),folderPath:i.title&&g8e(i.title)||""})),lE((i,s)=>n(i.folderPath,s.folderPath))),a=i=>{let s=this._viewFolders.get(i);if(!s){const l=nF(i,$a);at(Kl(l,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),s=new Yx(this,l,c?.view.id),this._viewFolders.set(i,s)}return s};this._rootViewFolder=a("");for(const{folderPath:i}of o)this._viewFolders.has(i)||nF(i,$a).reduce((s,l)=>{const c=s.join($a),u=Ef(c)?l:c+$a+l,d=a(u);return this._viewFolderItems.get(c).add(d),s.push(l),s},[]);for(const{view:i,folderPath:s}of o){const l=new ME(this,a(s),i,r.manualLayouts?.[i.id]);this._viewFolderItems.get(s).add(l),this._views.set(i.id,l);for(const c of l.tags)this._allTags.get(c).add(l)}}else this._rootViewFolder=new Yx(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 yr(this,"styles",()=>ZI.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[Gd]}get projectId(){return this.$data.projectId??"default"}get project(){return this.$data.project??yr(this,Symbol.for("project"),()=>({id:this.projectId}))}get specification(){return this.$data.specification}get globals(){return yr(this,Symbol.for("globals"),()=>({predicates:{...this.$data.globals?.predicates},dynamicPredicates:{...this.$data.globals?.dynamicPredicates},styles:{...this.$data.globals?.styles}}))}element(r){if(r instanceof jx)return r;const n=Tr(r);return bt(this._elements.get(n),`Element ${n} not found`)}findElement(r){return this._elements.get(Tr(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=Tr(r);let a=this._relations.get(o)??null;return a||n==="model"?bt(a,`Model relation ${o} not found`):bt(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(Tr(r))??null;return o||n==="model"?o:this.deployment.findRelationship(r)}views(){return this._views.values()}view(r){const n=Tr(r);return bt(this._views.get(n),`View ${n} not found`)}findView(r){return this._views.get(r)??null}viewFolder(r){return bt(this._viewFolders.get(r),`View folder ${r} not found`)}get rootViewFolder(){return this._rootViewFolder}get hasViewFolders(){return this._viewFolders.size>1}viewFolderItems(r){return at(this._viewFolders.has(r),`View folder ${r} not found`),this._viewFolderItems.get(r)}parent(r){const n=Tr(r);return this._parents.get(n)||null}children(r){const n=Tr(r);return this._children.get(n)}*siblings(r){const n=Tr(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=Tr(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=Tr(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=Tr(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 yr(this,"tags",()=>lE([...this._allTags.keys()],ex))}get tagsSortedByUsage(){return yr(this,"tagsSortedByUsage",()=>Kd([...this._allTags.entries()],Px(([r,n])=>({tag:r,count:n.size,tagged:n})),lE((r,n)=>ex(r.tag,n.tag)),rF([Zd("count"),"desc"])))}findByTag(r,n){return Qd(this._allTags.get(r),o=>n==="elements"?o instanceof jx:n==="views"?o instanceof ME:n==="relationships"?o instanceof oF:!0)}*elementsOfKind(r){for(const n of this._elements.values())n.kind===r&&(yield n)}*elementsWhere(r){const n=Xd(r);for(const o of this._elements.values())n(o)&&(yield o)}*relationshipsWhere(r){const n=Xd(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 jx(this,Object.freeze(r));this._elements.set(n.id,n);const o=tx(n.id);return o?(at(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){at(!c6e(n.id),"Imported element already has global FQN");const o=EB(r,n.id);if(this._elements.has(o))throw new Error(`Element ${o} already exists`);const a=new jx(this,Object.freeze({...n,id:o}));this._elements.set(a.id,a);let i=tx(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=tx(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 oF(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 s of[i,...jd(i)])this._internal.get(s).add(n);for(const s of jd(o.id)){if(s===i)break;this._outgoing.get(s).add(n)}for(const s of jd(a.id)){if(s===i)break;this._incoming.get(s).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:{}})})(rp||(rp={}));function Gx(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var O8e=e=>typeof e=="object"&&e!==null;function np(e){return Object.fromEntries(Object.entries(e??{}).filter(([r,n])=>n!==void 0))}var j8e=e=>e==="base";function L8e(e){return e.slice().filter(r=>!j8e(r))}function xF(e){return String.fromCharCode(e+(e>25?39:97))}function B8e(e){let r="",n;for(n=Math.abs(e);n>52;n=n/52|0)r=xF(n%52)+r;return xF(n%52)+r}function F8e(e,r){let n=r.length;for(;n;)e=e*33^r.charCodeAt(--n);return e}function H8e(e){return B8e(F8e(5381,e)>>>0)}var wF=/\s*!(important)?/i;function V8e(e){return typeof e=="string"?wF.test(e):!1}function q8e(e){return typeof e=="string"?e.replace(wF,"").trim():e}function PE(e){return typeof e=="string"?e.replaceAll(" ","_"):e}var go=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}},U8e=new Set(["__proto__","constructor","prototype"]);function zE(...e){return e.reduce((r,n)=>(n&&Object.keys(n).forEach(o=>{if(U8e.has(o))return;const a=r[o],i=n[o];Gx(a)&&Gx(i)?r[o]=zE(a,i):r[o]=i}),r),{})}var W8e=e=>e!=null;function IE(e,r,n={}){const{stop:o,getKey:a}=n;function i(s,l=[]){if(O8e(s)){const c={};for(const[u,d]of Object.entries(s)){const h=a?.(u,d)??u,f=[...l,h];if(o?.(s,f))return r(s,l);const g=i(d,f);W8e(g)&&(c[h]=g)}return c}return r(s,l)}return i(e)}function Y8e(e,r){return Array.isArray(e)?e.map(n=>r(n)):Gx(e)?IE(e,n=>r(n)):r(e)}function G8e(e,r){return e.reduce((n,o,a)=>{const i=r[a];return o!=null&&(n[i]=o),n},{})}function kF(e,r,n=!0){const{utility:o,conditions:a}=r,{hasShorthand:i,resolveShorthand:s}=o;return IE(e,l=>Array.isArray(l)?G8e(l,a.breakpoints.keys):l,{stop:l=>Array.isArray(l),getKey:n?l=>i?s(l):l:void 0})}var X8e={shift:e=>e,finalize:e=>e,breakpoints:{keys:[]}},K8e=e=>typeof e=="string"?e.replaceAll(/[\n\s]+/g," "):e;function _F(e){const{utility:r,hash:n,conditions:o=X8e}=e,a=s=>[r.prefix,s].filter(Boolean).join("-"),i=(s,l)=>{let c;if(n){const u=[...o.finalize(s),l];c=a(r.toHash(u,H8e))}else c=[...o.finalize(s),a(l)].join(":");return c};return go(({base:s,...l}={})=>{const c=Object.assign(l,s),u=kF(c,e),d=new Set;return IE(u,(h,f)=>{if(h==null)return;const g=V8e(h),[b,...x]=o.shift(f),w=L8e(x),k=r.transform(b,q8e(K8e(h)));let C=i(w,k.className);g&&(C=`${C}!`),d.add(C)}),Array.from(d).join(" ")})}function Z8e(...e){return e.flat().filter(r=>Gx(r)&&Object.keys(np(r)).length>0)}function Q8e(e){function r(a){const i=Z8e(...a);return i.length===1?i:i.map(s=>kF(s,e))}function n(...a){return zE(...r(a))}function o(...a){return Object.assign({},...r(a))}return{mergeCss:go(n),assignCss:o}}var J8e=/([A-Z])/g,eEe=/^ms-/,tEe=go(e=>e.startsWith("--")?e:e.replace(J8e,"-$1").replace(eEe,"-ms-").toLowerCase()),rEe=["min","max","clamp","calc"],nEe=new RegExp(`^(${rEe.join("|")})\\(.*\\)`),oEe=e=>typeof e=="string"&&nEe.test(e),aEe="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,%",iEe=`(?:${aEe.split(",").join("|")})`,sEe=new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${iEe}$`),lEe=e=>typeof e=="string"&&sEe.test(e),cEe=e=>typeof e=="string"&&/^var\(--.+\)$/.test(e),r0={map:Y8e,isCssFunction:oEe,isCssVar:cEe,isCssUnit:lEe},n0=(e,r)=>{if(!e?.defaultValues)return r;const n=typeof e.defaultValues=="function"?e.defaultValues(r):e.defaultValues;return Object.assign({},n,np(r))},uEe=(e={})=>{const r=o=>({className:[e.className,o].filter(Boolean).join("__"),base:e.base?.[o]??{},variants:{},defaultVariants:e.defaultVariants??{},compoundVariants:e.compoundVariants?OE(e.compoundVariants,o):[]}),n=(e.slots??[]).map(o=>[o,r(o)]);for(const[o,a]of Object.entries(e.variants??{}))for(const[i,s]of Object.entries(a))n.forEach(([l,c])=>{c.variants[o]??={},c.variants[o][i]=s[l]??{}});return Object.fromEntries(n)},OE=(e,r)=>e.filter(n=>n.css[r]).map(n=>({...n,css:n.css[r]}));function oo(e,...r){const n=Object.getOwnPropertyDescriptors(e),o=Object.keys(n),a=s=>{const l={};for(let c=0;ca(Array.isArray(s)?s:o.filter(s));return r.map(i).concat(a(o))}var jE=(...e)=>{const r=e.reduce((n,o)=>(o&&o.forEach(a=>n.add(a)),n),new Set([]));return Array.from(r)},EF=["htmlSize","htmlTranslate","htmlWidth","htmlHeight"];function dEe(e){return EF.includes(e)?e.replace("html","").toLowerCase():e}function LE(e){return Object.fromEntries(Object.entries(e).map(([r,n])=>[dEe(r),n]))}LE.keys=EF;const pEe="_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,_whenSelectable,_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",SF=new Set(pEe.split(",")),hEe=/^@|&|&$/;function CF(e){return SF.has(e)||hEe.test(e)}const fEe=/^_/,mEe=/&|@/;function TF(e){return e.map(r=>SF.has(r)?r.replace(fEe,""):mEe.test(r)?`[${PE(r.trim())}]`:r)}function AF(e){return e.sort((r,n)=>{const o=CF(r),a=CF(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",RF=new Map,NF=new Map;gEe.split(",").forEach(e=>{const[r,n]=e.split(":"),[o,...a]=n.split("/");RF.set(r,o),a.length&&a.forEach(i=>{NF.set(i==="1"?o:i,r)})});const DF=e=>NF.get(e)||e,$F={conditions:{shift:AF,finalize:TF,breakpoints:{keys:["base","xs","sm","md","lg","xl"]}},utility:{transform:(e,r)=>{const n=DF(e);return{className:`${RF.get(n)||tEe(n)}_${PE(r)}`}},hasShorthand:!0,toHash:(e,r)=>r(e.join(":")),resolveShorthand:DF}},yEe=_F($F),be=(...e)=>yEe(op(...e));be.raw=(...e)=>op(...e);const{mergeCss:op}=Q8e($F);function et(){let e="",r=0,n;for(;r({base:{},variants:{},defaultVariants:{},compoundVariants:[],...e});function o0(e){const{base:r,variants:n,defaultVariants:o,compoundVariants:a}=MF(e),i=f=>({...o,...np(f)});function s(f={}){const g=i(f);let b={...r};for(const[w,k]of Object.entries(g))n[w]?.[k]&&(b=op(b,n[w][k]));const x=BE(a,g);return op(b,x)}function l(f){const g=MF(f.config),b=jE(f.variantKeys,Object.keys(n));return o0({base:op(r,g.base),variants:Object.fromEntries(b.map(x=>[x,op(n[x],g.variants[x])])),defaultVariants:zE(o,g.defaultVariants),compoundVariants:[...a,...g.compoundVariants]})}function c(f){return be(s(f))}const u=Object.keys(n);function d(f){return oo(f,u)}const h=Object.fromEntries(Object.entries(n).map(([f,g])=>[f,Object.keys(g)]));return Object.assign(go(c),{__cva__:!0,variantMap:h,variantKeys:u,raw:s,config:e,merge:l,splitVariantProps:d,getVariantProps:i})}function BE(e,r){let n={};return e.forEach(o=>{Object.entries(o).every(([a,i])=>a==="css"?!0:(Array.isArray(i)?i:[i]).some(s=>r[a]===s))&&(n=op(n,o.css))}),n}function bEe(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 vEe(e){const r=Object.entries(uEe(e)).map(([h,f])=>[h,o0(f)]),n=e.defaultVariants??{},o=r.reduce((h,[f,g])=>(e.className&&(h[f]=g.config.className),h),{});function a(h){const f=r.map(([g,b])=>[g,et(b(h),o[g])]);return Object.fromEntries(f)}function i(h){const f=r.map(([g,b])=>[g,b.raw(h)]);return Object.fromEntries(f)}const s=e.variants??{},l=Object.keys(s);function c(h){return oo(h,l)}const u=h=>({...n,...np(h)}),d=Object.fromEntries(Object.entries(s).map(([h,f])=>[h,Object.keys(f)]));return Object.assign(go(a),{__cva__:!1,raw:i,config:e,variantMap:d,variantKeys:l,classNameMap:o,splitVariantProps:c,getVariantProps:u})}var xEe={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"}};const Nt=(e,r,n,o)=>{const a=E.forwardRef(({color:i="currentColor",size:s=24,stroke:l=2,title:c,className:u,children:d,...h},f)=>E.createElement("svg",{ref:f,...xEe[e],width:s,height:s,className:["tabler-icon",`tabler-icon-${r}`,u].join(" "),...e==="filled"?{fill:i}:{strokeWidth:l,stroke:i},...h},[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},wEe=[["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"}]],PF=Nt("outline","cylinder","Cylinder",wEe),kEe=[["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"}]],_Ee=Nt("outline","rectangular-prism","RectangularPrism",kEe),EEe=[["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"}]],SEe=Nt("outline","reorder","Reorder",EEe),CEe=[["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"}]],TEe=Nt("outline","user","User",CEe),AEe=[["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"}]],REe=Nt("outline","device-mobile","DeviceMobile",AEe),NEe=[["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"}]],DEe=Nt("outline","browser","Browser",NEe),FE=E.createContext(null);function $Ee({value:e,children:r}){return E.useContext(FE)?y.jsx(y.Fragment,{children:r}):y.jsx(FE.Provider,{value:e,children:r})}function Xx({element:e,className:r,style:n}){const o=E.useContext(FE);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:et(r,"likec4-element-icon"),"data-likec4-icon":e.icon,style:n,children:a}):null}const MEe={browser:DEe,cylinder:PF,mobile:REe,person:TEe,queue:SEe,rectangle:_Ee,storage:PF};function PEe({element:e,className:r}){const n=y.jsx(Xx,{element:e,className:r});if(n)return n;const o=MEe[e.shape];return y.jsx("div",{className:et(r,"likec4-shape-icon"),children:y.jsx(o,{})})}function Cf(e){const r=E.useRef(e);return r.current=e,E.useMemo(()=>Object.freeze({get current(){return r.current}}),[])}function zF(e){const r=Cf(e);E.useEffect(()=>()=>{r.current()},[])}function HE(e,r,n,o=0){const a=E.useRef(void 0),i=E.useRef(void 0),s=E.useRef(e),l=E.useRef(void 0),c=()=>{a.current&&(clearTimeout(a.current),a.current=void 0),i.current&&(clearTimeout(i.current),i.current=void 0)};return zF(c),E.useEffect(()=>{s.current=e},r),E.useMemo(()=>{const u=()=>{if(c(),!l.current)return;const h=l.current;l.current=void 0,s.current.apply(h.this,h.args)},d=function(...h){a.current&&clearTimeout(a.current),l.current={args:h,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 zEe=()=>{},Kx=typeof globalThis<"u"&&typeof navigator<"u"&&typeof document<"u";function IEe(e){const r=Cf(e),n=E.useRef(0),o=E.useCallback(()=>{Kx&&n.current&&(cancelAnimationFrame(n.current),n.current=0)},[]);return zF(o),[E.useMemo(()=>{const a=(...i)=>{Kx&&(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 OEe=(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 jEe(e,r,n=OEe,o=E.useEffect,...a){const i=E.useRef(void 0);(i.current===void 0||Kx&&!n(i.current,r))&&(i.current=r),o(e,i.current,...a)}function IF(){const e=E.useRef(!0);return E.useEffect(()=>{e.current=!1},[]),e.current}const VE=Kx?E.useLayoutEffect:E.useEffect;function LEe(e){E.useEffect(()=>{e()},[])}function qE(e,r){const[n,o]=IEe(e);E.useEffect(()=>(n(),o),r)}const BEe=e=>(e+1)%Number.MAX_SAFE_INTEGER;function FEe(){const[,e]=E.useState(0);return E.useCallback(()=>{e(BEe)},[])}function OF(e,r){const n=IF();E.useEffect(n?zEe:e,r)}const HEe=e=>{e&&clearTimeout(e)};function Zx(e,r){const n=Cf(e),o=Cf(r),a=E.useRef(null),i=E.useCallback(()=>{HEe(a.current)},[]),s=E.useCallback(()=>{o.current!==void 0&&(i(),a.current=setTimeout(()=>{n.current()},o.current))},[]);return E.useEffect(()=>(s(),i),[r]),[i,s]}const jF=(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 _n(e){if(typeof e=="string"||typeof e=="number")return""+e;let r="";if(Array.isArray(e))for(let n=0,o;n{}};function Qx(){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}})}Jx.prototype=Qx.prototype={constructor:Jx,on:function(e,r){var n=this._,o=qEe(e+"",n),a,i=-1,s=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)),BF.hasOwnProperty(r)?{space:BF[r],local:e}:e}function WEe(e){return function(){var r=this.ownerDocument,n=this.namespaceURI;return n===UE&&r.documentElement.namespaceURI===UE?r.createElement(e):r.createElementNS(n,e)}}function YEe(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function FF(e){var r=e3(e);return(r.local?YEe:WEe)(r)}function GEe(){}function WE(e){return e==null?GEe:function(){return this.querySelector(e)}}function XEe(e){typeof e!="function"&&(e=WE(e));for(var r=this._groups,n=r.length,o=new Array(n),a=0;a=_&&(_=C+1);!(A=w[_])&&++_=0;)(s=o[a])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function x9e(e){e||(e=w9e);function r(h,f){return h&&f?e(h.__data__,f.__data__):!h-!f}for(var n=this._groups,o=n.length,a=new Array(o),i=0;ir?1:e>=r?0:NaN}function k9e(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function _9e(){return Array.from(this)}function E9e(){for(var e=this._groups,r=0,n=e.length;r1?this.each((r==null?z9e:typeof r=="function"?O9e:I9e)(e,r,n??"")):Tf(this.node(),e)}function Tf(e,r){return e.style.getPropertyValue(r)||WF(e).getComputedStyle(e,null).getPropertyValue(r)}function L9e(e){return function(){delete this[e]}}function B9e(e,r){return function(){this[e]=r}}function F9e(e,r){return function(){var n=r.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function H9e(e,r){return arguments.length>1?this.each((r==null?L9e:typeof r=="function"?F9e:B9e)(e,r)):this.node()[e]}function YF(e){return e.trim().split(/^|\s+/)}function YE(e){return e.classList||new GF(e)}function GF(e){this._node=e,this._names=YF(e.getAttribute("class")||"")}GF.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 XF(e,r){for(var n=YE(e),o=-1,a=r.length;++o=0&&(n=r.slice(o+1),r=r.slice(0,o)),{type:r,name:n}})}function g7e(e){return function(){var r=this.__on;if(r){for(var n=0,o=-1,a=r.length,i;n()=>e;function XE(e,{sourceEvent:r,subject:n,target:o,identifier:a,active:i,x:s,y:l,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:s,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:d}})}XE.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function C7e(e){return!e.ctrlKey&&!e.button}function T7e(){return this.parentNode}function A7e(e,r){return r??{x:e.x,y:e.y}}function R7e(){return navigator.maxTouchPoints||"ontouchstart"in this}function tH(){var e=C7e,r=T7e,n=A7e,o=R7e,a={},i=Qx("start","drag","end"),s=0,l,c,u,d,h=0;function f(T){T.on("mousedown.drag",g).filter(o).on("touchstart.drag",w).on("touchmove.drag",k,S7e).on("touchend.drag touchcancel.drag",C).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(T,A){if(!(d||!e.call(this,T,A))){var R=_(this,r.call(this,T,A),T,A,"mouse");R&&(za(T.view).on("mousemove.drag",b,i0).on("mouseup.drag",x,i0),JF(T.view),GE(T),u=!1,l=T.clientX,c=T.clientY,R("start",T))}}function b(T){if(Af(T),!u){var A=T.clientX-l,R=T.clientY-c;u=A*A+R*R>h}a.mouse("drag",T)}function x(T){za(T.view).on("mousemove.drag mouseup.drag",null),eH(T.view,u),Af(T),a.mouse("end",T)}function w(T,A){if(e.call(this,T,A)){var R=T.changedTouches,D=r.call(this,T,A),N=R.length,M,O;for(M=0;M>8&15|r>>4&240,r>>4&15|r&240,(r&15)<<4|r&15,1):n===8?o3(r>>24&255,r>>16&255,r>>8&255,(r&255)/255):n===4?o3(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=D7e.exec(e))?new ca(r[1],r[2],r[3],1):(r=$7e.exec(e))?new ca(r[1]*255/100,r[2]*255/100,r[3]*255/100,1):(r=M7e.exec(e))?o3(r[1],r[2],r[3],r[4]):(r=P7e.exec(e))?o3(r[1]*255/100,r[2]*255/100,r[3]*255/100,r[4]):(r=z7e.exec(e))?cH(r[1],r[2]/100,r[3]/100,1):(r=I7e.exec(e))?cH(r[1],r[2]/100,r[3]/100,r[4]):nH.hasOwnProperty(e)?iH(nH[e]):e==="transparent"?new ca(NaN,NaN,NaN,0):null}function iH(e){return new ca(e>>16&255,e>>8&255,e&255,1)}function o3(e,r,n,o){return o<=0&&(e=r=n=NaN),new ca(e,r,n,o)}function L7e(e){return e instanceof s0||(e=ap(e)),e?(e=e.rgb(),new ca(e.r,e.g,e.b,e.opacity)):new ca}function ZE(e,r,n,o){return arguments.length===1?L7e(e):new ca(e,r,n,o??1)}function ca(e,r,n,o){this.r=+e,this.g=+r,this.b=+n,this.opacity=+o}KE(ca,ZE,rH(s0,{brighter(e){return e=e==null?n3:Math.pow(n3,e),new ca(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?l0:Math.pow(l0,e),new ca(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ca(ip(this.r),ip(this.g),ip(this.b),a3(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:sH,formatHex:sH,formatHex8:B7e,formatRgb:lH,toString:lH}));function sH(){return`#${sp(this.r)}${sp(this.g)}${sp(this.b)}`}function B7e(){return`#${sp(this.r)}${sp(this.g)}${sp(this.b)}${sp((isNaN(this.opacity)?1:this.opacity)*255)}`}function lH(){const e=a3(this.opacity);return`${e===1?"rgb(":"rgba("}${ip(this.r)}, ${ip(this.g)}, ${ip(this.b)}${e===1?")":`, ${e})`}`}function a3(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ip(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function sp(e){return e=ip(e),(e<16?"0":"")+e.toString(16)}function cH(e,r,n,o){return o<=0?e=r=n=NaN:n<=0||n>=1?e=r=NaN:r<=0&&(e=NaN),new as(e,r,n,o)}function uH(e){if(e instanceof as)return new as(e.h,e.s,e.l,e.opacity);if(e instanceof s0||(e=ap(e)),!e)return new as;if(e instanceof as)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),s=NaN,l=i-a,c=(i+a)/2;return l?(r===i?s=(n-o)/l+(n0&&c<1?0:s,new as(s,l,c,e.opacity)}function F7e(e,r,n,o){return arguments.length===1?uH(e):new as(e,r,n,o??1)}function as(e,r,n,o){this.h=+e,this.s=+r,this.l=+n,this.opacity=+o}KE(as,F7e,rH(s0,{brighter(e){return e=e==null?n3:Math.pow(n3,e),new as(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?l0:Math.pow(l0,e),new as(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 ca(QE(e>=240?e-240:e+120,a,o),QE(e,a,o),QE(e<120?e+240:e-120,a,o),this.opacity)},clamp(){return new as(dH(this.h),i3(this.s),i3(this.l),a3(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=a3(this.opacity);return`${e===1?"hsl(":"hsla("}${dH(this.h)}, ${i3(this.s)*100}%, ${i3(this.l)*100}%${e===1?")":`, ${e})`}`}}));function dH(e){return e=(e||0)%360,e<0?e+360:e}function i3(e){return Math.max(0,Math.min(1,e||0))}function QE(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 JE=e=>()=>e;function H7e(e,r){return function(n){return e+n*r}}function V7e(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 q7e(e){return(e=+e)==1?pH:function(r,n){return n-r?V7e(r,n,e):JE(isNaN(r)?n:r)}}function pH(e,r){var n=r-e;return n?H7e(e,n):JE(isNaN(e)?r:e)}const s3=(function e(r){var n=q7e(r);function o(a,i){var s=n((a=ZE(a)).r,(i=ZE(i)).r),l=n(a.g,i.g),c=n(a.b,i.b),u=pH(a.opacity,i.opacity);return function(d){return a.r=s(d),a.g=l(d),a.b=c(d),a.opacity=u(d),a+""}}return o.gamma=e,o})(1);function U7e(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),l[s]?l[s]+=i:l[++s]=i),(o=o[0])===(a=a[0])?l[s]?l[s]+=a:l[++s]=a:(l[++s]=null,c.push({i:s,x:cl(o,a)})),n=t9.lastIndex;return n180?d+=360:d-u>180&&(u+=360),f.push({i:h.push(a(h)+"rotate(",null,o)-2,x:cl(u,d)})):d&&h.push(a(h)+"rotate("+d+o)}function l(u,d,h,f){u!==d?f.push({i:h.push(a(h)+"skewX(",null,o)-2,x:cl(u,d)}):d&&h.push(a(h)+"skewX("+d+o)}function c(u,d,h,f,g,b){if(u!==h||d!==f){var x=g.push(a(g)+"scale(",null,",",null,")");b.push({i:x-4,x:cl(u,h)},{i:x-2,x:cl(d,f)})}else(h!==1||f!==1)&&g.push(a(g)+"scale("+h+","+f+")")}return function(u,d){var h=[],f=[];return u=e(u),d=e(d),i(u.translateX,u.translateY,d.translateX,d.translateY,h,f),s(u.rotate,d.rotate,h,f),l(u.skewX,d.skewX,h,f),c(u.scaleX,u.scaleY,d.scaleX,d.scaleY,h,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;--Nf}function kH(){lp=(d3=f0.now())+p3,Nf=d0=0;try{iSe()}finally{Nf=0,lSe(),lp=0}}function sSe(){var e=f0.now(),r=e-d3;r>vH&&(p3-=r,d3=e)}function lSe(){for(var e,r=u3,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:u3=n);h0=e,n9(o)}function n9(e){if(!Nf){d0&&(d0=clearTimeout(d0));var r=e-lp;r>24?(e<1/0&&(d0=setTimeout(kH,e-f0.now()-p3)),p0&&(p0=clearInterval(p0))):(p0||(d3=f0.now(),p0=setInterval(sSe,vH)),Nf=1,xH(kH))}}function _H(e,r,n){var o=new h3;return r=r==null?0:+r,o.restart(a=>{o.stop(),e(a+r)},r,n),o}var cSe=Qx("start","end","cancel","interrupt"),uSe=[],EH=0,SH=1,o9=2,f3=3,CH=4,a9=5,m3=6;function g3(e,r,n,o,a,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;dSe(e,n,{name:r,index:o,group:a,on:cSe,tween:uSe,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:EH})}function i9(e,r){var n=is(e,r);if(n.state>EH)throw new Error("too late; already scheduled");return n}function ul(e,r){var n=is(e,r);if(n.state>f3)throw new Error("too late; already running");return n}function is(e,r){var n=e.__transition;if(!n||!(n=n[r]))throw new Error("transition not found");return n}function dSe(e,r,n){var o=e.__transition,a;o[r]=n,n.timer=wH(i,0,n.time);function i(u){n.state=SH,n.timer.restart(s,n.delay,n.time),n.delay<=u&&s(u-n.delay)}function s(u){var d,h,f,g;if(n.state!==SH)return c();for(d in o)if(g=o[d],g.name===n.name){if(g.state===f3)return _H(s);g.state===CH?(g.state=m3,g.timer.stop(),g.on.call("interrupt",e,e.__data__,g.index,g.group),delete o[d]):+do9&&o.state=0&&(r=r.slice(0,n)),!r||r==="start"})}function FSe(e,r,n){var o,a,i=BSe(r)?i9:ul;return function(){var s=i(this,e),l=s.on;l!==o&&(a=(o=l).copy()).on(r,n),s.on=a}}function HSe(e,r){var n=this._id;return arguments.length<2?is(this.node(),n).on.on(e):this.each(FSe(n,e,r))}function VSe(e){return function(){var r=this.parentNode;for(var n in this.__transition)if(+n!==e)return;r&&r.removeChild(this)}}function qSe(){return this.on("end.remove",VSe(this._id))}function USe(e){var r=this._name,n=this._id;typeof e!="function"&&(e=WE(e));for(var o=this._groups,a=o.length,i=new Array(a),s=0;s()=>e;function gCe(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 sc(e,r,n){this.k=e,this.x=r,this.y=n}sc.prototype={constructor:sc,scale:function(e){return e===1?this:new sc(this.k*e,this.x,this.y)},translate:function(e,r){return e===0&r===0?this:new sc(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 v3=new sc(1,0,0);NH.prototype=sc.prototype;function NH(e){for(;!e.__zoom;)if(!(e=e.parentNode))return v3;return e.__zoom}function l9(e){e.stopImmediatePropagation()}function m0(e){e.preventDefault(),e.stopImmediatePropagation()}function yCe(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function bCe(){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 DH(){return this.__zoom||v3}function vCe(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function xCe(){return navigator.maxTouchPoints||"ontouchstart"in this}function wCe(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],s=e.invertY(r[1][1])-n[1][1];return e.translate(a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function $H(){var e=yCe,r=bCe,n=wCe,o=vCe,a=xCe,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],l=250,c=c3,u=Qx("start","zoom","end"),d,h,f,g=500,b=150,x=0,w=10;function k(P){P.property("__zoom",DH).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",M).on("dblclick.zoom",O).filter(a).on("touchstart.zoom",F).on("touchmove.zoom",L).on("touchend.zoom touchcancel.zoom",U).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}k.transform=function(P,V,I,H){var q=P.selection?P.selection():P;q.property("__zoom",DH),P!==q?A(P,V,I,H):q.interrupt().each(function(){R(this,arguments).event(H).start().zoom(null,typeof V=="function"?V.apply(this,arguments):V).end()})},k.scaleBy=function(P,V,I,H){k.scaleTo(P,function(){var q=this.__zoom.k,Z=typeof V=="function"?V.apply(this,arguments):V;return q*Z},I,H)},k.scaleTo=function(P,V,I,H){k.transform(P,function(){var q=r.apply(this,arguments),Z=this.__zoom,W=I==null?T(q):typeof I=="function"?I.apply(this,arguments):I,G=Z.invert(W),K=typeof V=="function"?V.apply(this,arguments):V;return n(_(C(Z,K),W,G),q,s)},I,H)},k.translateBy=function(P,V,I,H){k.transform(P,function(){return n(this.__zoom.translate(typeof V=="function"?V.apply(this,arguments):V,typeof I=="function"?I.apply(this,arguments):I),r.apply(this,arguments),s)},null,H)},k.translateTo=function(P,V,I,H,q){k.transform(P,function(){var Z=r.apply(this,arguments),W=this.__zoom,G=H==null?T(Z):typeof H=="function"?H.apply(this,arguments):H;return n(v3.translate(G[0],G[1]).scale(W.k).translate(typeof V=="function"?-V.apply(this,arguments):-V,typeof I=="function"?-I.apply(this,arguments):-I),Z,s)},H,q)};function C(P,V){return V=Math.max(i[0],Math.min(i[1],V)),V===P.k?P:new sc(V,P.x,P.y)}function _(P,V,I){var H=V[0]-I[0]*P.k,q=V[1]-I[1]*P.k;return H===P.x&&q===P.y?P:new sc(P.k,H,q)}function T(P){return[(+P[0][0]+ +P[1][0])/2,(+P[0][1]+ +P[1][1])/2]}function A(P,V,I,H){P.on("start.zoom",function(){R(this,arguments).event(H).start()}).on("interrupt.zoom end.zoom",function(){R(this,arguments).event(H).end()}).tween("zoom",function(){var q=this,Z=arguments,W=R(q,Z).event(H),G=r.apply(q,Z),K=I==null?T(G):typeof I=="function"?I.apply(q,Z):I,j=Math.max(G[1][0]-G[0][0],G[1][1]-G[0][1]),Y=q.__zoom,Q=typeof V=="function"?V.apply(q,Z):V,J=c(Y.invert(K).concat(j/Y.k),Q.invert(K).concat(j/Q.k));return function(ie){if(ie===1)ie=Q;else{var ne=J(ie),re=j/ne[2];ie=new sc(re,K[0]-ne[0]*re,K[1]-ne[1]*re)}W.zoom(null,ie)}})}function R(P,V,I){return!I&&P.__zooming||new D(P,V)}function D(P,V){this.that=P,this.args=V,this.active=0,this.sourceEvent=null,this.extent=r.apply(P,V),this.taps=0}D.prototype={event:function(P){return P&&(this.sourceEvent=P),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(P,V){return this.mouse&&P!=="mouse"&&(this.mouse[1]=V.invert(this.mouse[0])),this.touch0&&P!=="touch"&&(this.touch0[1]=V.invert(this.touch0[0])),this.touch1&&P!=="touch"&&(this.touch1[1]=V.invert(this.touch1[0])),this.that.__zoom=V,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(P){var V=za(this.that).datum();u.call(P,this.that,new gCe(P,{sourceEvent:this.sourceEvent,target:k,transform:this.that.__zoom,dispatch:u}),V)}};function N(P,...V){if(!e.apply(this,arguments))return;var I=R(this,V).event(P),H=this.__zoom,q=Math.max(i[0],Math.min(i[1],H.k*Math.pow(2,o.apply(this,arguments)))),Z=os(P);if(I.wheel)(I.mouse[0][0]!==Z[0]||I.mouse[0][1]!==Z[1])&&(I.mouse[1]=H.invert(I.mouse[0]=Z)),clearTimeout(I.wheel);else{if(H.k===q)return;I.mouse=[Z,H.invert(Z)],y3(this),I.start()}m0(P),I.wheel=setTimeout(W,b),I.zoom("mouse",n(_(C(H,q),I.mouse[0],I.mouse[1]),I.extent,s));function W(){I.wheel=null,I.end()}}function M(P,...V){if(f||!e.apply(this,arguments))return;var I=P.currentTarget,H=R(this,V,!0).event(P),q=za(P.view).on("mousemove.zoom",K,!0).on("mouseup.zoom",j,!0),Z=os(P,I),W=P.clientX,G=P.clientY;JF(P.view),l9(P),H.mouse=[Z,this.__zoom.invert(Z)],y3(this),H.start();function K(Y){if(m0(Y),!H.moved){var Q=Y.clientX-W,J=Y.clientY-G;H.moved=Q*Q+J*J>x}H.event(Y).zoom("mouse",n(_(H.that.__zoom,H.mouse[0]=os(Y,I),H.mouse[1]),H.extent,s))}function j(Y){q.on("mousemove.zoom mouseup.zoom",null),eH(Y.view,H.moved),m0(Y),H.event(Y).end()}}function O(P,...V){if(e.apply(this,arguments)){var I=this.__zoom,H=os(P.changedTouches?P.changedTouches[0]:P,this),q=I.invert(H),Z=I.k*(P.shiftKey?.5:2),W=n(_(C(I,Z),H,q),r.apply(this,V),s);m0(P),l>0?za(this).transition().duration(l).call(A,W,H,P):za(this).call(k.transform,W,H,P)}}function F(P,...V){if(e.apply(this,arguments)){var I=P.touches,H=I.length,q=R(this,V,P.changedTouches.length===H).event(P),Z,W,G,K;for(l9(P),W=0;W"[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."},g0=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],MH=["Enter"," ","Escape"],PH={"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 Df;(function(e){e.Strict="strict",e.Loose="loose"})(Df||(Df={}));var cp;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(cp||(cp={}));var y0;(function(e){e.Partial="partial",e.Full="full"})(y0||(y0={}));const zH={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null};var bu;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(bu||(bu={}));var x3;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(x3||(x3={}));var tt;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(tt||(tt={}));const IH={[tt.Left]:tt.Right,[tt.Right]:tt.Left,[tt.Top]:tt.Bottom,[tt.Bottom]:tt.Top};function OH(e){return e===null?null:e?"valid":"invalid"}const jH=e=>"id"in e&&"source"in e&&"target"in e,kCe=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),c9=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),b0=(e,r=[0,0])=>{const{width:n,height:o}=ao(e),a=e.origin??r,i=n*a[0],s=o*a[1];return{x:e.position.x-i,y:e.position.y-s}},LH=(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 s=!r.nodeLookup&&!i?a:void 0;r.nodeLookup&&(s=i?r.nodeLookup.get(a):c9(a)?a:r.nodeLookup.get(a.id));const l=s?_3(s,r.nodeOrigin):{x:0,y:0,x2:0,y2:0};return w3(o,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return k3(n)},$f=(e,r={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(a=>{(r.filter===void 0||r.filter(a))&&(n=w3(n,_3(a)),o=!0)}),o?k3(n):{x:0,y:0,width:0,height:0}},u9=(e,r,[n,o,a]=[0,0,1],i=!1,s=!1)=>{const l={...w0(r,[n,o,a]),width:r.width/a,height:r.height/a},c=[];for(const u of e.values()){const{measured:d,selectable:h=!0,hidden:f=!1}=u;if(s&&!h||f)continue;const g=d.width??u.width??u.initialWidth??null,b=d.height??u.height??u.initialHeight??null,x=v0(l,dp(u)),w=(g??0)*(b??0),k=i&&x>0;(!u.internals.handleBounds||k||x>=w||u.dragging)&&c.push(u)}return c},_Ce=(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 ECe(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 SCe({nodes:e,width:r,height:n,panZoom:o,minZoom:a,maxZoom:i},s){if(e.size===0)return Promise.resolve(!0);const l=ECe(e,s),c=$f(l),u=vu(c,r,n,s?.minZoom??a,s?.maxZoom??i,s?.padding??.1);return await o.setViewport(u,{duration:s?.duration,ease:s?.ease,interpolate:s?.interpolate}),Promise.resolve(!0)}function BH({nodeId:e,nextPosition:r,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:a,onError:i}){const s=n.get(e),l=s.parentId?n.get(s.parentId):void 0,{x:c,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},d=s.origin??o;let h=s.extent||a;if(s.extent==="parent"&&!s.expandParent)if(!l)i?.("005",dl.error005());else{const g=l.measured.width,b=l.measured.height;g&&b&&(h=[[c,u],[c+g,u+b]])}else l&&If(s.extent)&&(h=[[s.extent[0][0]+c,s.extent[0][1]+u],[s.extent[1][0]+c,s.extent[1][1]+u]]);const f=If(h)?up(r,h,s.measured):r;return(s.measured.width===void 0||s.measured.height===void 0)&&i?.("015",dl.error015()),{position:{x:f.x-c+(s.measured.width??0)*d[0],y:f.y-u+(s.measured.height??0)*d[1]},positionAbsolute:f}}async function CCe({nodesToRemove:e=[],edgesToRemove:r=[],nodes:n,edges:o,onBeforeDelete:a}){const i=new Set(e.map(h=>h.id)),s=[];for(const h of n){if(h.deletable===!1)continue;const f=i.has(h.id),g=!f&&h.parentId&&s.find(b=>b.id===h.parentId);(f||g)&&s.push(h)}const l=new Set(r.map(h=>h.id)),c=o.filter(h=>h.deletable!==!1),u=_Ce(s,c);for(const h of c)l.has(h.id)&&!u.find(f=>f.id===h.id)&&u.push(h);if(!a)return{edges:u,nodes:s};const d=await a({nodes:s,edges:u});return typeof d=="boolean"?d?{edges:u,nodes:s}:{edges:[],nodes:[]}:d}const Mf=(e,r=0,n=1)=>Math.min(Math.max(e,r),n),up=(e={x:0,y:0},r,n)=>({x:Mf(e.x,r[0][0],r[1][0]-(n?.width??0)),y:Mf(e.y,r[0][1],r[1][1]-(n?.height??0))});function FH(e,r,n){const{width:o,height:a}=ao(n),{x:i,y:s}=n.internals.positionAbsolute;return up(e,[[i,s],[i+o,s+a]],r)}const HH=(e,r,n)=>en?-Mf(Math.abs(e-n),1,r)/r:0,VH=(e,r,n=15,o=40)=>{const a=HH(e.x,o,r.width-o)*n,i=HH(e.y,o,r.height-o)*n;return[a,i]},w3=(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)}),d9=({x:e,y:r,width:n,height:o})=>({x:e,y:r,x2:e+n,y2:r+o}),k3=({x:e,y:r,x2:n,y2:o})=>({x:e,y:r,width:n-e,height:o-r}),dp=(e,r=[0,0])=>{const{x:n,y:o}=c9(e)?e.internals.positionAbsolute:b0(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}},_3=(e,r=[0,0])=>{const{x:n,y:o}=c9(e)?e.internals.positionAbsolute:b0(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)}},qH=(e,r)=>k3(w3(d9(e),d9(r))),v0=(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)},UH=e=>ss(e.width)&&ss(e.height)&&ss(e.x)&&ss(e.y),ss=e=>!isNaN(e)&&isFinite(e),TCe=(e,r)=>{},x0=(e,r=[1,1])=>({x:r[0]*Math.round(e.x/r[0]),y:r[1]*Math.round(e.y/r[1])}),w0=({x:e,y:r},[n,o,a],i=!1,s=[1,1])=>{const l={x:(e-n)/a,y:(r-o)/a};return i?x0(l,s):l},E3=({x:e,y:r},[n,o,a])=>({x:e*a+n,y:r*a+o});function Pf(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 ACe(e,r,n){if(typeof e=="string"||typeof e=="number"){const o=Pf(e,n),a=Pf(e,r);return{top:o,right:a,bottom:o,left:a,x:a*2,y:o*2}}if(typeof e=="object"){const o=Pf(e.top??e.y??0,n),a=Pf(e.bottom??e.y??0,n),i=Pf(e.left??e.x??0,r),s=Pf(e.right??e.x??0,r);return{top:o,right:s,bottom:a,left:i,x:i+s,y:o+a}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function RCe(e,r,n,o,a,i){const{x:s,y:l}=E3(e,[r,n,o]),{x:c,y:u}=E3({x:e.x+e.width,y:e.y+e.height},[r,n,o]),d=a-c,h=i-u;return{left:Math.floor(s),top:Math.floor(l),right:Math.floor(d),bottom:Math.floor(h)}}const vu=(e,r,n,o,a,i)=>{const s=ACe(i,r,n),l=(r-s.x)/e.width,c=(n-s.y)/e.height,u=Math.min(l,c),d=Mf(u,o,a),h=e.x+e.width/2,f=e.y+e.height/2,g=r/2-h*d,b=n/2-f*d,x=RCe(e,g,b,d,r,n),w={left:Math.min(x.left-s.left,0),top:Math.min(x.top-s.top,0),right:Math.min(x.right-s.right,0),bottom:Math.min(x.bottom-s.bottom,0)};return{x:g-w.left+w.right,y:b-w.top+w.bottom,zoom:d}},zf=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function If(e){return e!=null&&e!=="parent"}function ao(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function WH(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function YH(e,r={width:0,height:0},n,o,a){const i={...e},s=o.get(n);if(s){const l=s.origin||a;i.x+=s.internals.positionAbsolute.x-(r.width??0)*l[0],i.y+=s.internals.positionAbsolute.y-(r.height??0)*l[1]}return i}function GH(e,r){if(e.size!==r.size)return!1;for(const n of e)if(!r.has(n))return!1;return!0}function NCe(){let e,r;return{promise:new Promise((n,o)=>{e=n,r=o}),resolve:e,reject:r}}function DCe(e){return{...PH,...e||{}}}function k0(e,{snapGrid:r=[0,0],snapToGrid:n=!1,transform:o,containerBounds:a}){const{x:i,y:s}=ls(e),l=w0({x:i-(a?.left??0),y:s-(a?.top??0)},o),{x:c,y:u}=n?x0(l,r):l;return{xSnapped:c,ySnapped:u,...l}}const p9=e=>({width:e.offsetWidth,height:e.offsetHeight}),XH=e=>e?.getRootNode?.()||window?.document,$Ce=["INPUT","SELECT","TEXTAREA"];function KH(e){const r=e.composedPath?.()?.[0]||e.target;return r?.nodeType!==1?!1:$Ce.includes(r.nodeName)||r.hasAttribute("contenteditable")||!!r.closest(".nokey")}const ZH=e=>"clientX"in e,ls=(e,r)=>{const n=ZH(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)}},QH=(e,r,n,o,a)=>{const i=r.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(s=>{const l=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:a,position:s.getAttribute("data-handlepos"),x:(l.left-n.left)/o,y:(l.top-n.top)/o,...p9(s)}})};function JH({sourceX:e,sourceY:r,targetX:n,targetY:o,sourceControlX:a,sourceControlY:i,targetControlX:s,targetControlY:l}){const c=e*.125+a*.375+s*.375+n*.125,u=r*.125+i*.375+l*.375+o*.125,d=Math.abs(c-e),h=Math.abs(u-r);return[c,u,d,h]}function S3(e,r){return e>=0?.5*e:r*25*Math.sqrt(-e)}function eV({pos:e,x1:r,y1:n,x2:o,y2:a,c:i}){switch(e){case tt.Left:return[r-S3(r-o,i),n];case tt.Right:return[r+S3(o-r,i),n];case tt.Top:return[r,n-S3(n-a,i)];case tt.Bottom:return[r,n+S3(a-n,i)]}}function C3({sourceX:e,sourceY:r,sourcePosition:n=tt.Bottom,targetX:o,targetY:a,targetPosition:i=tt.Top,curvature:s=.25}){const[l,c]=eV({pos:n,x1:e,y1:r,x2:o,y2:a,c:s}),[u,d]=eV({pos:i,x1:o,y1:a,x2:e,y2:r,c:s}),[h,f,g,b]=JH({sourceX:e,sourceY:r,targetX:o,targetY:a,sourceControlX:l,sourceControlY:c,targetControlX:u,targetControlY:d});return[`M${e},${r} C${l},${c} ${u},${d} ${o},${a}`,h,f,g,b]}function tV({sourceX:e,sourceY:r,targetX:n,targetY:o}){const a=Math.abs(n-e)/2,i=n0}const zCe=({source:e,sourceHandle:r,target:n,targetHandle:o})=>`xy-edge__${e}${r||""}-${n}${o||""}`,ICe=(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)),OCe=(e,r)=>{if(!e.source||!e.target)return r;let n;return jH(e)?n={...e}:n={...e,id:zCe(e)},ICe(n,r)?r:(n.sourceHandle===null&&delete n.sourceHandle,n.targetHandle===null&&delete n.targetHandle,r.concat(n))};function rV({sourceX:e,sourceY:r,targetX:n,targetY:o}){const[a,i,s,l]=tV({sourceX:e,sourceY:r,targetX:n,targetY:o});return[`M ${e},${r}L ${n},${o}`,a,i,s,l]}const nV={[tt.Left]:{x:-1,y:0},[tt.Right]:{x:1,y:0},[tt.Top]:{x:0,y:-1},[tt.Bottom]:{x:0,y:1}},jCe=({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 LCe({source:e,sourcePosition:r=tt.Bottom,target:n,targetPosition:o=tt.Top,center:a,offset:i,stepPosition:s}){const l=nV[r],c=nV[o],u={x:e.x+l.x*i,y:e.y+l.y*i},d={x:n.x+c.x*i,y:n.y+c.y*i},h=jCe({source:u,sourcePosition:r,target:d}),f=h.x!==0?"x":"y",g=h[f];let b=[],x,w;const k={x:0,y:0},C={x:0,y:0},[,,_,T]=tV({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[f]*c[f]===-1){f==="x"?(x=a.x??u.x+(d.x-u.x)*s,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)*s);const A=[{x,y:u.y},{x,y:d.y}],R=[{x:u.x,y:w},{x:d.x,y:w}];l[f]===g?b=f==="x"?A:R:b=f==="x"?R:A}else{const A=[{x:u.x,y:d.y}],R=[{x:d.x,y:u.y}];if(f==="x"?b=l.x===g?R:A:b=l.y===g?A:R,r===o){const F=Math.abs(e[f]-n[f]);if(F<=i){const L=Math.min(i-1,i-F);l[f]===g?k[f]=(u[f]>e[f]?-1:1)*L:C[f]=(d[f]>n[f]?-1:1)*L}}if(r!==o){const F=f==="x"?"y":"x",L=l[f]===c[F],U=u[F]>d[F],P=u[F]=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(oV(e,r)/2,oV(r,n)/2,o),{x:i,y:s}=r;if(e.x===i&&i===n.x||e.y===s&&s===n.y)return`L${i} ${s}`;if(e.y===s){const u=e.x{let _="";return C>0&&Cn.id===r):e[0])||null}function h9(e,r){return e?typeof e=="string"?e:`${r?`${r}__`:""}${Object.keys(e).sort().map(n=>`${n}=${e[n]}`).join("&")}`:""}function FCe(e,{id:r,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:a}){const i=new Set;return e.reduce((s,l)=>([l.markerStart||o,l.markerEnd||a].forEach(c=>{if(c&&typeof c=="object"){const u=h9(c,r);i.has(u)||(s.push({id:u,color:c.color||n,...c}),i.add(u))}}),s),[]).sort((s,l)=>s.id.localeCompare(l.id))}function HCe(e,r,n,o,a){let i=.5;a==="start"?i=0:a==="end"&&(i=1);let s=[(e.x+e.width*i)*r.zoom+r.x,e.y*r.zoom+r.y-o],l=[-100*i,-100];switch(n){case tt.Right:s=[(e.x+e.width)*r.zoom+r.x+o,(e.y+e.height*i)*r.zoom+r.y],l=[0,-100*i];break;case tt.Bottom:s[1]=(e.y+e.height)*r.zoom+r.y+o,l[1]=0;break;case tt.Left:s=[e.x*r.zoom+r.x-o,(e.y+e.height*i)*r.zoom+r.y],l=[-100,-100*i];break}return`translate(${s[0]}px, ${s[1]}px) translate(${l[0]}%, ${l[1]}%)`}const cV=1e3,VCe=10,f9={nodeOrigin:[0,0],nodeExtent:g0,elevateNodesOnSelect:!0,defaults:{}},qCe={...f9,checkEquality:!0};function m9(e,r){const n={...e};for(const o in r)r[o]!==void 0&&(n[o]=r[o]);return n}function UCe(e,r,n){const o=m9(f9,n);for(const a of e.values())if(a.parentId)y9(a,e,r,o);else{const i=b0(a,o.nodeOrigin),s=If(a.extent)?a.extent:o.nodeExtent,l=up(i,s,ao(a));a.internals.positionAbsolute=l}}function WCe(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 g9(e,r,n,o){const a=m9(qCe,o);let i={i:-1},s=e.length>0;const l=new Map(r),c=a?.elevateNodesOnSelect?cV:0;r.clear(),n.clear();for(const u of e){let d=l.get(u.id);if(a.checkEquality&&u===d?.internals.userNode)r.set(u.id,d);else{const h=b0(u,a.nodeOrigin),f=If(u.extent)?u.extent:a.nodeExtent,g=up(h,f,ao(u));d={...a.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:g,handleBounds:WCe(u,d),z:uV(u,c),userNode:u}},r.set(u.id,d)}(d.measured===void 0||d.measured.width===void 0||d.measured.height===void 0)&&!d.hidden&&(s=!1),u.parentId&&y9(d,r,n,o,i)}return s}function YCe(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 y9(e,r,n,o,a){const{elevateNodesOnSelect:i,nodeOrigin:s,nodeExtent:l}=m9(f9,o),c=e.parentId,u=r.get(c);if(!u){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}YCe(e,n),a&&!u.parentId&&u.internals.rootParentIndex===void 0&&(u.internals.rootParentIndex=++a.i,u.internals.z=u.internals.z+a.i*VCe),a&&u.internals.rootParentIndex!==void 0&&(a.i=u.internals.rootParentIndex);const d=i?cV:0,{x:h,y:f,z:g}=GCe(e,u,s,l,d),{positionAbsolute:b}=e.internals,x=h!==b.x||f!==b.y;(x||g!==e.internals.z)&&r.set(e.id,{...e,internals:{...e.internals,positionAbsolute:x?{x:h,y:f}:b,z:g}})}function uV(e,r){return(ss(e.zIndex)?e.zIndex:0)+(e.selected?r:0)}function GCe(e,r,n,o,a){const{x:i,y:s}=r.internals.positionAbsolute,l=ao(e),c=b0(e,n),u=If(e.extent)?up(c,e.extent,l):c;let d=up({x:i+u.x,y:s+u.y},o,l);e.extent==="parent"&&(d=FH(d,l,r));const h=uV(e,a),f=r.internals.z??0;return{x:d.x,y:d.y,z:f>=h?f+1:h}}function b9(e,r,n,o=[0,0]){const a=[],i=new Map;for(const s of e){const l=r.get(s.parentId);if(!l)continue;const c=i.get(s.parentId)?.expandedRect??dp(l),u=qH(c,s.rect);i.set(s.parentId,{expandedRect:u,parent:l})}return i.size>0&&i.forEach(({expandedRect:s,parent:l},c)=>{const u=l.internals.positionAbsolute,d=ao(l),h=l.origin??o,f=s.x0||g>0||w||k)&&(a.push({id:c,type:"position",position:{x:l.position.x-f+w,y:l.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=b9(h,r,n,a);c.push(...f)}return{changes:c,updatedInternals:l}}async function KCe({delta:e,panZoom:r,transform:n,translateExtent:o,width:a,height:i}){if(!r||!e.x&&!e.y)return Promise.resolve(!1);const s=await r.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[a,i]],o),l=!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2]);return Promise.resolve(l)}function dV(e,r,n,o,a,i){let s=a;const l=o.get(s)||new Map;o.set(s,l.set(n,r)),s=`${a}-${e}`;const c=o.get(s)||new Map;if(o.set(s,c.set(n,r)),i){s=`${a}-${e}-${i}`;const u=o.get(s)||new Map;o.set(s,u.set(n,r))}}function pV(e,r,n){e.clear(),r.clear();for(const o of n){const{source:a,target:i,sourceHandle:s=null,targetHandle:l=null}=o,c={edgeId:o.id,source:a,target:i,sourceHandle:s,targetHandle:l},u=`${a}-${s}--${i}-${l}`,d=`${i}-${l}--${a}-${s}`;dV("source",c,d,e,a,s),dV("target",c,u,e,i,l),r.set(o.id,o)}}function hV(e,r){if(!e.parentId)return!1;const n=r.get(e.parentId);return n?n.selected?!0:hV(n,r):!1}function fV(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 ZCe(e,r,n,o){const a=new Map;for(const[i,s]of e)if((s.selected||s.id===o)&&(!s.parentId||!hV(s,e))&&(s.draggable||r&&typeof s.draggable>"u")){const l=e.get(i);l&&a.set(i,{id:i,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return a}function v9({nodeId:e,dragItems:r,nodeLookup:n,dragging:o=!0}){const a=[];for(const[s,l]of r){const c=n.get(s)?.internals.userNode;c&&a.push({...c,position:l.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 QCe({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},s=x0(i,r);return{x:s.x-i.x,y:s.y-i.y}}function JCe({onNodeMouseDown:e,getStoreItems:r,onDragStart:n,onDrag:o,onDragStop:a}){let i={x:null,y:null},s=0,l=new Map,c=!1,u={x:0,y:0},d=null,h=!1,f=null,g=!1,b=!1,x=null;function w({noDragClassName:C,handleSelector:_,domNode:T,isSelectable:A,nodeId:R,nodeClickDistance:D=0}){f=za(T);function N({x:L,y:U}){const{nodeLookup:P,nodeExtent:V,snapGrid:I,snapToGrid:H,nodeOrigin:q,onNodeDrag:Z,onSelectionDrag:W,onError:G,updateNodePositions:K}=r();i={x:L,y:U};let j=!1;const Y=l.size>1,Q=Y&&V?d9($f(l)):null,J=Y&&H?QCe({dragItems:l,snapGrid:I,x:L,y:U}):null;for(const[ie,ne]of l){if(!P.has(ie))continue;let re={x:L-ne.distance.x,y:U-ne.distance.y};H&&(re=J?{x:Math.round(re.x+J.x),y:Math.round(re.y+J.y)}:x0(re,I));let ge=null;if(Y&&V&&!ne.extent&&Q){const{positionAbsolute:me}=ne.internals,Te=me.x-Q.x+V[0][0],Ie=me.x+ne.measured.width-Q.x2+V[1][0],Ze=me.y-Q.y+V[0][1],rt=me.y+ne.measured.height-Q.y2+V[1][1];ge=[[Te,Ze],[Ie,rt]]}const{position:De,positionAbsolute:he}=BH({nodeId:ie,nextPosition:re,nodeLookup:P,nodeExtent:ge||V,nodeOrigin:q,onError:G});j=j||ne.position.x!==De.x||ne.position.y!==De.y,ne.position=De,ne.internals.positionAbsolute=he}if(b=b||j,!!j&&(K(l,!0),x&&(o||Z||!R&&W))){const[ie,ne]=v9({nodeId:R,dragItems:l,nodeLookup:P});o?.(x,l,ie,ne),Z?.(x,ie,ne),R||W?.(x,ne)}}async function M(){if(!d)return;const{transform:L,panBy:U,autoPanSpeed:P,autoPanOnNodeDrag:V}=r();if(!V){c=!1,cancelAnimationFrame(s);return}const[I,H]=VH(u,d,P);(I!==0||H!==0)&&(i.x=(i.x??0)-I/L[2],i.y=(i.y??0)-H/L[2],await U({x:I,y:H})&&N(i)),s=requestAnimationFrame(M)}function O(L){const{nodeLookup:U,multiSelectionActive:P,nodesDraggable:V,transform:I,snapGrid:H,snapToGrid:q,selectNodesOnDrag:Z,onNodeDragStart:W,onSelectionDragStart:G,unselectNodesAndEdges:K}=r();h=!0,(!Z||!A)&&!P&&R&&(U.get(R)?.selected||K()),A&&Z&&R&&e?.(R);const j=k0(L.sourceEvent,{transform:I,snapGrid:H,snapToGrid:q,containerBounds:d});if(i=j,l=ZCe(U,V,j,R),l.size>0&&(n||W||!R&&G)){const[Y,Q]=v9({nodeId:R,dragItems:l,nodeLookup:U});n?.(L.sourceEvent,l,Y,Q),W?.(L.sourceEvent,Y,Q),R||G?.(L.sourceEvent,Q)}}const F=tH().clickDistance(D).on("start",L=>{const{domNode:U,nodeDragThreshold:P,transform:V,snapGrid:I,snapToGrid:H}=r();d=U?.getBoundingClientRect()||null,g=!1,b=!1,x=L.sourceEvent,P===0&&O(L),i=k0(L.sourceEvent,{transform:V,snapGrid:I,snapToGrid:H,containerBounds:d}),u=ls(L.sourceEvent,d)}).on("drag",L=>{const{autoPanOnNodeDrag:U,transform:P,snapGrid:V,snapToGrid:I,nodeDragThreshold:H,nodeLookup:q}=r(),Z=k0(L.sourceEvent,{transform:P,snapGrid:V,snapToGrid:I,containerBounds:d});if(x=L.sourceEvent,(L.sourceEvent.type==="touchmove"&&L.sourceEvent.touches.length>1||R&&!q.has(R))&&(g=!0),!g){if(!c&&U&&h&&(c=!0,M()),!h){const W=ls(L.sourceEvent,d),G=W.x-u.x,K=W.y-u.y;Math.sqrt(G*G+K*K)>H&&O(L)}(i.x!==Z.xSnapped||i.y!==Z.ySnapped)&&l&&h&&(u=ls(L.sourceEvent,d),N(Z))}}).on("end",L=>{if(!(!h||g)&&(c=!1,h=!1,cancelAnimationFrame(s),l.size>0)){const{nodeLookup:U,updateNodePositions:P,onNodeDragStop:V,onSelectionDragStop:I}=r();if(b&&(P(l,!1),b=!1),a||V||!R&&I){const[H,q]=v9({nodeId:R,dragItems:l,nodeLookup:U,dragging:!1});a?.(L.sourceEvent,l,H,q),V?.(L.sourceEvent,H,q),R||I?.(L.sourceEvent,q)}}}).filter(L=>{const U=L.target;return!L.button&&(!C||!fV(U,`.${C}`,T))&&(!_||fV(U,_,T))});f.call(F)}function k(){f?.on(".drag",null)}return{update:w,destroy:k}}function eTe(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())v0(a,dp(i))>0&&o.push(i);return o}const tTe=250;function rTe(e,r,n,o){let a=[],i=1/0;const s=eTe(e,n,r+tTe);for(const l of s){const c=[...l.internals.handleBounds?.source??[],...l.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:h}=_0(l,u,u.position,!0),f=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(h-e.y,2));f>r||(f1){const l=o.type==="source"?"target":"source";return a.find(c=>c.type===l)??a[0]}return a[0]}function mV(e,r,n,o,a,i=!1){const s=o.get(e);if(!s)return null;const l=a==="strict"?s.internals.handleBounds?.[r]:[...s.internals.handleBounds?.source??[],...s.internals.handleBounds?.target??[]],c=(n?l?.find(u=>u.id===n):l?.[0])??null;return c&&i?{...c,..._0(s,c,c.position,!0)}:c}function gV(e,r){return e||(r?.classList.contains("target")?"target":r?.classList.contains("source")?"source":null)}function nTe(e,r){let n=null;return r?n=!0:e&&!r&&(n=!1),n}const yV=()=>!0;function oTe(e,{connectionMode:r,connectionRadius:n,handleId:o,nodeId:a,edgeUpdaterType:i,isTarget:s,domNode:l,nodeLookup:c,lib:u,autoPanOnConnect:d,flowId:h,panBy:f,cancelConnection:g,onConnectStart:b,onConnect:x,onConnectEnd:w,isValidConnection:k=yV,onReconnectEnd:C,updateConnection:_,getTransform:T,getFromHandle:A,autoPanSpeed:R,dragThreshold:D=1,handleDomNode:N}){const M=XH(e.target);let O=0,F;const{x:L,y:U}=ls(e),P=gV(i,N),V=l?.getBoundingClientRect();let I=!1;if(!V||!P)return;const H=mV(a,P,o,c,r);if(!H)return;let q=ls(e,V),Z=!1,W=null,G=!1,K=null;function j(){if(!d||!V)return;const[ge,De]=VH(q,V,R);f({x:ge,y:De}),O=requestAnimationFrame(j)}const Y={...H,nodeId:a,type:P,position:H.position},Q=c.get(a);let J={inProgress:!0,isValid:null,from:_0(Q,Y,tt.Left,!0),fromHandle:Y,fromPosition:Y.position,fromNode:Q,to:q,toHandle:null,toPosition:IH[Y.position],toNode:null};function ie(){I=!0,_(J),b?.(e,{nodeId:a,handleId:o,handleType:P})}D===0&&ie();function ne(ge){if(!I){const{x:Te,y:Ie}=ls(ge),Ze=Te-L,rt=Ie-U;if(!(Ze*Ze+rt*rt>D*D))return;ie()}if(!A()||!Y){re(ge);return}const De=T();q=ls(ge,V),F=rTe(w0(q,De,!1,[1,1]),n,c,Y),Z||(j(),Z=!0);const he=bV(ge,{handle:F,connectionMode:r,fromNodeId:a,fromHandleId:o,fromType:s?"target":"source",isValidConnection:k,doc:M,lib:u,flowId:h,nodeLookup:c});K=he.handleDomNode,W=he.connection,G=nTe(!!F,he.isValid);const me={...J,isValid:G,to:he.toHandle&&G?E3({x:he.toHandle.x,y:he.toHandle.y},De):q,toHandle:he.toHandle,toPosition:G&&he.toHandle?he.toHandle.position:IH[Y.position],toNode:he.toHandle?c.get(he.toHandle.nodeId):null};G&&F&&J.toHandle&&me.toHandle&&J.toHandle.type===me.toHandle.type&&J.toHandle.nodeId===me.toHandle.nodeId&&J.toHandle.id===me.toHandle.id&&J.to.x===me.to.x&&J.to.y===me.to.y||(_(me),J=me)}function re(ge){if(!("touches"in ge&&ge.touches.length>0)){if(I){(F||K)&&W&&G&&x?.(W);const{inProgress:De,...he}=J,me={...he,toPosition:J.toHandle?J.toPosition:null};w?.(ge,me),i&&C?.(ge,me)}g(),cancelAnimationFrame(O),Z=!1,G=!1,W=null,K=null,M.removeEventListener("mousemove",ne),M.removeEventListener("mouseup",re),M.removeEventListener("touchmove",ne),M.removeEventListener("touchend",re)}}M.addEventListener("mousemove",ne),M.addEventListener("mouseup",re),M.addEventListener("touchmove",ne),M.addEventListener("touchend",re)}function bV(e,{handle:r,connectionMode:n,fromNodeId:o,fromHandleId:a,fromType:i,doc:s,lib:l,flowId:c,isValidConnection:u=yV,nodeLookup:d}){const h=i==="target",f=r?s.querySelector(`.${l}-flow__handle[data-id="${c}-${r?.nodeId}-${r?.id}-${r?.type}"]`):null,{x:g,y:b}=ls(e),x=s.elementFromPoint(g,b),w=x?.classList.contains(`${l}-flow__handle`)?x:f,k={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const C=gV(void 0,w),_=w.getAttribute("data-nodeid"),T=w.getAttribute("data-handleid"),A=w.classList.contains("connectable"),R=w.classList.contains("connectableend");if(!_||!C)return k;const D={source:h?_:o,sourceHandle:h?T:a,target:h?o:_,targetHandle:h?a:T};k.connection=D;const N=A&&R&&(n===Df.Strict?h&&C==="source"||!h&&C==="target":_!==o||T!==a);k.isValid=N&&u(D),k.toHandle=mV(_,C,T,d,n,!0)}return k}const x9={onPointerDown:oTe,isValid:bV};function aTe({domNode:e,panZoom:r,getTransform:n,getViewScale:o}){const a=za(e);function i({translateExtent:l,width:c,height:u,zoomStep:d=1,pannable:h=!0,zoomable:f=!0,inversePan:g=!1}){const b=_=>{if(_.sourceEvent.type!=="wheel"||!r)return;const T=n(),A=_.sourceEvent.ctrlKey&&zf()?10:1,R=-_.sourceEvent.deltaY*(_.sourceEvent.deltaMode===1?.05:_.sourceEvent.deltaMode?1:.002)*d,D=T[2]*Math.pow(2,R*A);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 A=[_.sourceEvent.clientX??_.sourceEvent.touches[0].clientX,_.sourceEvent.clientY??_.sourceEvent.touches[0].clientY],R=[A[0]-x[0],A[1]-x[1]];x=A;const D=o()*Math.max(T[2],Math.log(T[2]))*(g?-1:1),N={x:T[0]-R[0]*D,y:T[1]-R[1]*D},M=[[0,0],[c,u]];r.setViewportConstrained({x:N.x,y:N.y,zoom:T[2]},M,l)},C=$H().on("start",w).on("zoom",h?k:null).on("zoom.wheel",f?b:null);a.call(C,{})}function s(){a.on("zoom",null)}return{update:i,destroy:s,pointer:os}}const A3=e=>({x:e.x,y:e.y,zoom:e.k}),w9=({x:e,y:r,zoom:n})=>v3.translate(e,r).scale(n),Of=(e,r)=>e.target.closest(`.${r}`),vV=(e,r)=>r===2&&Array.isArray(e)&&e.includes(2),iTe=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,k9=(e,r=0,n=iTe,o=()=>{})=>{const a=typeof r=="number"&&r>0;return a||o(),a?e.transition().duration(r).ease(n).on("end",o):e},xV=e=>{const r=e.ctrlKey&&zf()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*r};function sTe({zoomPanValues:e,noWheelClassName:r,d3Selection:n,d3Zoom:o,panOnScrollMode:a,panOnScrollSpeed:i,zoomOnPinch:s,onPanZoomStart:l,onPanZoom:c,onPanZoomEnd:u}){return d=>{if(Of(d,r))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const h=n.property("__zoom").k||1;if(d.ctrlKey&&s){const w=os(d),k=xV(d),C=h*Math.pow(2,k);o.scaleTo(n,C,w,d);return}const f=d.deltaMode===1?20:1;let g=a===cp.Vertical?0:d.deltaX*f,b=a===cp.Horizontal?0:d.deltaY*f;!zf()&&d.shiftKey&&a!==cp.Vertical&&(g=d.deltaY*f,b=0),o.translateBy(n,-(g/h)*i,-(b/h)*i,{internal:!0});const x=A3(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(d,x),e.panScrollTimeout=setTimeout(()=>{u?.(d,x),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l?.(d,x))}}function lTe({noWheelClassName:e,preventScrolling:r,d3ZoomHandler:n}){return function(o,a){const i=o.type==="wheel",s=!r&&i&&!o.ctrlKey,l=Of(o,e);if(o.ctrlKey&&i&&l&&o.preventDefault(),s||l)return null;o.preventDefault(),n.call(this,o,a)}}function cTe({zoomPanValues:e,onDraggingChange:r,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const a=A3(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 uTe({zoomPanValues:e,panOnDrag:r,onPaneContextMenu:n,onTransformChange:o,onPanZoom:a}){return i=>{e.usedRightMouseButton=!!(n&&vV(r,e.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),a&&!i.sourceEvent?.internal&&a?.(i.sourceEvent,A3(i.transform))}}function dTe({zoomPanValues:e,panOnDrag:r,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:a,onPaneContextMenu:i}){return s=>{if(!s.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,i&&vV(r,e.mouseButton??0)&&!e.usedRightMouseButton&&s.sourceEvent&&i(s.sourceEvent),e.usedRightMouseButton=!1,o(!1),a)){const l=A3(s.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{a?.(s.sourceEvent,l)},n?150:0)}}}function pTe({zoomActivationKeyPressed:e,zoomOnScroll:r,zoomOnPinch:n,panOnDrag:o,panOnScroll:a,zoomOnDoubleClick:i,userSelectionActive:s,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:d}){return h=>{const f=e||r,g=n&&h.ctrlKey,b=h.type==="wheel";if(h.button===1&&h.type==="mousedown"&&(Of(h,`${u}-flow__node`)||Of(h,`${u}-flow__edge`)))return!0;if(!o&&!f&&!a&&!i&&!n||s||d&&!b||Of(h,l)&&b||Of(h,c)&&(!b||a&&b&&!e)||!n&&h.ctrlKey&&b)return!1;if(!n&&h.type==="touchstart"&&h.touches?.length>1)return h.preventDefault(),!1;if(!f&&!a&&!g&&b||!o&&(h.type==="mousedown"||h.type==="touchstart")||Array.isArray(o)&&!o.includes(h.button)&&h.type==="mousedown")return!1;const x=Array.isArray(o)&&o.includes(h.button)||!h.button||h.button<=1;return(!h.ctrlKey||b)&&x}}function hTe({domNode:e,minZoom:r,maxZoom:n,paneClickDistance:o,translateExtent:a,viewport:i,onPanZoom:s,onPanZoomStart:l,onPanZoomEnd:c,onDraggingChange:u}){const d={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},h=e.getBoundingClientRect(),f=$H().clickDistance(!ss(o)||o<0?0:o).scaleExtent([r,n]).translateExtent(a),g=za(e).call(f);_({x:i.x,y:i.y,zoom:Mf(i.zoom,r,n)},[[0,0],[h.width,h.height]],a);const b=g.on("wheel.zoom"),x=g.on("dblclick.zoom");f.wheelDelta(xV);function w(L,U){return g?new Promise(P=>{f?.interpolate(U?.interpolate==="linear"?u0:c3).transform(k9(g,U?.duration,U?.ease,()=>P(!0)),L)}):Promise.resolve(!1)}function k({noWheelClassName:L,noPanClassName:U,onPaneContextMenu:P,userSelectionActive:V,panOnScroll:I,panOnDrag:H,panOnScrollMode:q,panOnScrollSpeed:Z,preventScrolling:W,zoomOnPinch:G,zoomOnScroll:K,zoomOnDoubleClick:j,zoomActivationKeyPressed:Y,lib:Q,onTransformChange:J,connectionInProgress:ie}){V&&!d.isZoomingOrPanning&&C();const ne=I&&!Y&&!V?sTe({zoomPanValues:d,noWheelClassName:L,d3Selection:g,d3Zoom:f,panOnScrollMode:q,panOnScrollSpeed:Z,zoomOnPinch:G,onPanZoomStart:l,onPanZoom:s,onPanZoomEnd:c}):lTe({noWheelClassName:L,preventScrolling:W,d3ZoomHandler:b});if(g.on("wheel.zoom",ne,{passive:!1}),!V){const ge=cTe({zoomPanValues:d,onDraggingChange:u,onPanZoomStart:l});f.on("start",ge);const De=uTe({zoomPanValues:d,panOnDrag:H,onPaneContextMenu:!!P,onPanZoom:s,onTransformChange:J});f.on("zoom",De);const he=dTe({zoomPanValues:d,panOnDrag:H,panOnScroll:I,onPaneContextMenu:P,onPanZoomEnd:c,onDraggingChange:u});f.on("end",he)}const re=pTe({zoomActivationKeyPressed:Y,panOnDrag:H,zoomOnScroll:K,panOnScroll:I,zoomOnDoubleClick:j,zoomOnPinch:G,userSelectionActive:V,noPanClassName:U,noWheelClassName:L,lib:Q,connectionInProgress:ie});f.filter(re),j?g.on("dblclick.zoom",x):g.on("dblclick.zoom",null)}function C(){f.on("zoom",null)}async function _(L,U,P){const V=w9(L),I=f?.constrain()(V,U,P);return I&&await w(I),new Promise(H=>H(I))}async function T(L,U){const P=w9(L);return await w(P,U),new Promise(V=>V(P))}function A(L){if(g){const U=w9(L),P=g.property("__zoom");(P.k!==L.zoom||P.x!==L.x||P.y!==L.y)&&f?.transform(g,U,null,{sync:!0})}}function R(){const L=g?NH(g.node()):{x:0,y:0,k:1};return{x:L.x,y:L.y,zoom:L.k}}function D(L,U){return g?new Promise(P=>{f?.interpolate(U?.interpolate==="linear"?u0:c3).scaleTo(k9(g,U?.duration,U?.ease,()=>P(!0)),L)}):Promise.resolve(!1)}function N(L,U){return g?new Promise(P=>{f?.interpolate(U?.interpolate==="linear"?u0:c3).scaleBy(k9(g,U?.duration,U?.ease,()=>P(!0)),L)}):Promise.resolve(!1)}function M(L){f?.scaleExtent(L)}function O(L){f?.translateExtent(L)}function F(L){const U=!ss(L)||L<0?0:L;f?.clickDistance(U)}return{update:k,destroy:C,setViewport:T,setViewportConstrained:_,getViewport:R,scaleTo:D,scaleBy:N,setScaleExtent:M,setTranslateExtent:O,syncViewport:A,setClickDistance:F}}var jf;(function(e){e.Line="line",e.Handle="handle"})(jf||(jf={}));function fTe({width:e,prevWidth:r,height:n,prevHeight:o,affectsX:a,affectsY:i}){const s=e-r,l=n-o,c=[s>0?1:s<0?-1:0,l>0?1:l<0?-1:0];return s&&a&&(c[0]=c[0]*-1),l&&i&&(c[1]=c[1]*-1),c}function wV(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 xu(e,r){return Math.max(0,r-e)}function wu(e,r){return Math.max(0,e-r)}function R3(e,r,n){return Math.max(0,r-e,e-n)}function kV(e,r){return e?!r:r}function mTe(e,r,n,o,a,i,s,l){let{affectsX:c,affectsY:u}=r;const{isHorizontal:d,isVertical:h}=r,f=d&&h,{xSnapped:g,ySnapped:b}=n,{minWidth:x,maxWidth:w,minHeight:k,maxHeight:C}=o,{x:_,y:T,width:A,height:R,aspectRatio:D}=e;let N=Math.floor(d?g-e.pointerX:0),M=Math.floor(h?b-e.pointerY:0);const O=A+(c?-N:N),F=R+(u?-M:M),L=-i[0]*A,U=-i[1]*R;let P=R3(O,x,w),V=R3(F,k,C);if(s){let q=0,Z=0;c&&N<0?q=xu(_+N+L,s[0][0]):!c&&N>0&&(q=wu(_+O+L,s[1][0])),u&&M<0?Z=xu(T+M+U,s[0][1]):!u&&M>0&&(Z=wu(T+F+U,s[1][1])),P=Math.max(P,q),V=Math.max(V,Z)}if(l){let q=0,Z=0;c&&N>0?q=wu(_+N,l[0][0]):!c&&N<0&&(q=xu(_+O,l[1][0])),u&&M>0?Z=wu(T+M,l[0][1]):!u&&M<0&&(Z=xu(T+F,l[1][1])),P=Math.max(P,q),V=Math.max(V,Z)}if(a){if(d){const q=R3(O/D,k,C)*D;if(P=Math.max(P,q),s){let Z=0;!c&&!u||c&&!u&&f?Z=wu(T+U+O/D,s[1][1])*D:Z=xu(T+U+(c?N:-N)/D,s[0][1])*D,P=Math.max(P,Z)}if(l){let Z=0;!c&&!u||c&&!u&&f?Z=xu(T+O/D,l[1][1])*D:Z=wu(T+(c?N:-N)/D,l[0][1])*D,P=Math.max(P,Z)}}if(h){const q=R3(F*D,x,w)/D;if(V=Math.max(V,q),s){let Z=0;!c&&!u||u&&!c&&f?Z=wu(_+F*D+L,s[1][0])/D:Z=xu(_+(u?M:-M)*D+L,s[0][0])/D,V=Math.max(V,Z)}if(l){let Z=0;!c&&!u||u&&!c&&f?Z=xu(_+F*D,l[1][0])/D:Z=wu(_+(u?M:-M)*D,l[0][0])/D,V=Math.max(V,Z)}}}M=M+(M<0?V:-V),N=N+(N<0?P:-P),a&&(f?O>F*D?M=(kV(c,u)?-N:N)/D:N=(kV(c,u)?-M:M)*D:d?(M=N/D,u=c):(N=M*D,c=u));const I=c?_+N:_,H=u?T+M:T;return{width:A+(c?-N:N),height:R+(u?-M:M),x:i[0]*N*(c?-1:1)+I,y:i[1]*M*(u?-1:1)+H}}const _V={width:0,height:0,x:0,y:0},gTe={..._V,pointerX:0,pointerY:0,aspectRatio:1};function yTe(e){return[[0,0],[e.measured.width,e.measured.height]]}function bTe(e,r,n){const o=r.position.x+e.position.x,a=r.position.y+e.position.y,i=e.measured.width??0,s=e.measured.height??0,l=n[0]*i,c=n[1]*s;return[[o-l,a-c],[o+i-l,a+s-c]]}function vTe({domNode:e,nodeId:r,getStoreItems:n,onChange:o,onEnd:a}){const i=za(e);let s={controlDirection:wV("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:d,keepAspectRatio:h,resizeDirection:f,onResizeStart:g,onResize:b,onResizeEnd:x,shouldResize:w}){let k={..._V},C={...gTe};s={boundaries:d,resizeDirection:f,keepAspectRatio:h,controlDirection:wV(u)};let _,T=null,A=[],R,D,N,M=!1;const O=tH().on("start",F=>{const{nodeLookup:L,transform:U,snapGrid:P,snapToGrid:V,nodeOrigin:I,paneDomNode:H}=n();if(_=L.get(r),!_)return;T=H?.getBoundingClientRect()??null;const{xSnapped:q,ySnapped:Z}=k0(F.sourceEvent,{transform:U,snapGrid:P,snapToGrid:V,containerBounds:T});k={width:_.measured.width??0,height:_.measured.height??0,x:_.position.x??0,y:_.position.y??0},C={...k,pointerX:q,pointerY:Z,aspectRatio:k.width/k.height},R=void 0,_.parentId&&(_.extent==="parent"||_.expandParent)&&(R=L.get(_.parentId),D=R&&_.extent==="parent"?yTe(R):void 0),A=[],N=void 0;for(const[W,G]of L)if(G.parentId===r&&(A.push({id:W,position:{...G.position},extent:G.extent}),G.extent==="parent"||G.expandParent)){const K=bTe(G,_,G.origin??I);N?N=[[Math.min(K[0][0],N[0][0]),Math.min(K[0][1],N[0][1])],[Math.max(K[1][0],N[1][0]),Math.max(K[1][1],N[1][1])]]:N=K}g?.(F,{...k})}).on("drag",F=>{const{transform:L,snapGrid:U,snapToGrid:P,nodeOrigin:V}=n(),I=k0(F.sourceEvent,{transform:L,snapGrid:U,snapToGrid:P,containerBounds:T}),H=[];if(!_)return;const{x:q,y:Z,width:W,height:G}=k,K={},j=_.origin??V,{width:Y,height:Q,x:J,y:ie}=mTe(C,s.controlDirection,I,s.boundaries,s.keepAspectRatio,j,D,N),ne=Y!==W,re=Q!==G,ge=J!==q&&ne,De=ie!==Z&&re;if(!ge&&!De&&!ne&&!re)return;if((ge||De||j[0]===1||j[1]===1)&&(K.x=ge?J:k.x,K.y=De?ie:k.y,k.x=K.x,k.y=K.y,A.length>0)){const Te=J-q,Ie=ie-Z;for(const Ze of A)Ze.position={x:Ze.position.x-Te+j[0]*(Y-W),y:Ze.position.y-Ie+j[1]*(Q-G)},H.push(Ze)}if((ne||re)&&(K.width=ne&&(!s.resizeDirection||s.resizeDirection==="horizontal")?Y:k.width,K.height=re&&(!s.resizeDirection||s.resizeDirection==="vertical")?Q:k.height,k.width=K.width,k.height=K.height),R&&_.expandParent){const Te=j[0]*(K.width??0);K.x&&K.x{M&&(x?.(F,{...k}),a?.({...k}),M=!1)});i.call(O)}function c(){i.on(".drag",null)}return{update:l,destroy:c}}function _9(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var EV={exports:{}},E9={},SV={exports:{}},S9={},CV;function xTe(){if(CV)return S9;CV=1;var e=dn;function r(h,f){return h===f&&(h!==0||1/h===1/f)||h!==h&&f!==f}var n=typeof Object.is=="function"?Object.is:r,o=e.useState,a=e.useEffect,i=e.useLayoutEffect,s=e.useDebugValue;function l(h,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})},[h,g,f]),a(function(){return c(x)&&w({inst:x}),h(function(){c(x)&&w({inst:x})})},[h]),s(g),g}function c(h){var f=h.getSnapshot;h=h.value;try{var g=f();return!n(h,g)}catch{return!0}}function u(h,f){return f()}var d=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:l;return S9.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:d,S9}var TV;function AV(){return TV||(TV=1,SV.exports=xTe()),SV.exports}var RV;function wTe(){if(RV)return E9;RV=1;var e=dn,r=AV();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,s=e.useEffect,l=e.useMemo,c=e.useDebugValue;return E9.useSyncExternalStoreWithSelector=function(u,d,h,f,g){var b=i(null);if(b.current===null){var x={hasValue:!1,value:null};b.current=x}else x=b.current;b=l(function(){function k(R){if(!C){if(C=!0,_=R,R=f(R),g!==void 0&&x.hasValue){var D=x.value;if(g(D,R))return T=D}return T=R}if(D=T,o(_,R))return D;var N=f(R);return g!==void 0&&g(D,N)?(_=R,D):(_=R,T=N)}var C=!1,_,T,A=h===void 0?null:h;return[function(){return k(d())},A===null?void 0:function(){return k(A())}]},[d,h,f,g]);var w=a(u,b[0],b[1]);return s(function(){x.hasValue=!0,x.value=w},[w]),c(w),w},E9}var NV;function kTe(){return NV||(NV=1,EV.exports=wTe()),EV.exports}var DV=kTe();const _Te=_9(DV),ETe={},$V=e=>{let r;const n=new Set,o=(l,c)=>{const u=typeof l=="function"?l(r):l;if(!Object.is(u,r)){const d=r;r=c??(typeof u!="object"||u===null)?u:Object.assign({},r,u),n.forEach(h=>h(r,d))}},a=()=>r,i={setState:o,getState:a,getInitialState:()=>s,subscribe:l=>(n.add(l),()=>n.delete(l)),destroy:()=>{(ETe?"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()}},s=r=e(o,a,i);return i},STe=e=>e?$V(e):$V,{useDebugValue:CTe}=dn,{useSyncExternalStoreWithSelector:TTe}=_Te,ATe=e=>e;function MV(e,r=ATe,n){const o=TTe(e.subscribe,e.getState,e.getServerState||e.getInitialState,r,n);return CTe(o),o}const PV=(e,r)=>{const n=STe(e),o=(a,i=r)=>MV(n,a,i);return Object.assign(o,n),o},RTe=(e,r)=>e?PV(e,r):PV;function Kr(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 N3=E.createContext(null),NTe=N3.Provider,zV=dl.error001();function qt(e,r){const n=E.useContext(N3);if(n===null)throw new Error(zV);return MV(n,e,r)}function Ar(){const e=E.useContext(N3);if(e===null)throw new Error(zV);return E.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const IV={display:"none"},DTe={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},OV="react-flow__node-desc",jV="react-flow__edge-desc",$Te="react-flow__aria-live",MTe=e=>e.ariaLiveMessage,PTe=e=>e.ariaLabelConfig;function zTe({rfId:e}){const r=qt(MTe);return y.jsx("div",{id:`${$Te}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:DTe,children:r})}function ITe({rfId:e,disableKeyboardA11y:r}){const n=qt(PTe);return y.jsxs(y.Fragment,{children:[y.jsx("div",{id:`${OV}-${e}`,style:IV,children:r?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),y.jsx("div",{id:`${jV}-${e}`,style:IV,children:n["edge.a11yDescription.default"]}),!r&&y.jsx(zTe,{rfId:e})]})}const ku=E.forwardRef(({position:e="top-left",children:r,className:n,style:o,...a},i)=>{const s=`${e}`.split("-");return y.jsx("div",{className:_n(["react-flow__panel",n,...s]),style:o,ref:i,...a,children:r})});ku.displayName="Panel";function OTe({proOptions:e,position:r="bottom-right"}){return e?.hideAttribution?null:y.jsx(ku,{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 jTe=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}},D3=e=>e.id;function LTe(e,r){return Kr(e.selectedNodes.map(D3),r.selectedNodes.map(D3))&&Kr(e.selectedEdges.map(D3),r.selectedEdges.map(D3))}function BTe({onSelectionChange:e}){const r=Ar(),{selectedNodes:n,selectedEdges:o}=qt(jTe,LTe);return E.useEffect(()=>{const a={nodes:n,edges:o};e?.(a),r.getState().onSelectionChangeHandlers.forEach(i=>i(a))},[n,o,e]),null}const FTe=e=>!!e.onSelectionChangeHandlers;function HTe({onSelectionChange:e}){const r=qt(FTe);return e||r?y.jsx(BTe,{onSelectionChange:e}):null}const LV=[0,0],VTe={x:0,y:0,zoom:1},qTe=["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"],BV=[...qTe,"rfId"],UTe=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}),FV={translateExtent:g0,nodeOrigin:LV,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1",paneClickDistance:0};function WTe(e){const{setNodes:r,setEdges:n,setMinZoom:o,setMaxZoom:a,setTranslateExtent:i,setNodeExtent:s,reset:l,setDefaultNodesAndEdges:c,setPaneClickDistance:u}=qt(UTe,Kr),d=Ar();E.useEffect(()=>(c(e.defaultNodes,e.defaultEdges),()=>{h.current=FV,l()}),[]);const h=E.useRef(FV);return E.useEffect(()=>{for(const f of BV){const g=e[f],b=h.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"?s(g):f==="paneClickDistance"?u(g):f==="ariaLabelConfig"?d.setState({ariaLabelConfig:DCe(g)}):f==="fitView"?d.setState({fitViewQueued:g}):f==="fitViewOptions"?d.setState({fitViewOptions:g}):d.setState({[f]:g})))}h.current=e},BV.map(f=>e[f])),null}function HV(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function YTe(e){const[r,n]=E.useState(e==="system"?null:e);return E.useEffect(()=>{if(e!=="system"){n(e);return}const o=HV(),a=()=>n(o?.matches?"dark":"light");return a(),o?.addEventListener("change",a),()=>{o?.removeEventListener("change",a)}},[e]),r!==null?r:HV()?.matches?"dark":"light"}const VV=typeof document<"u"?document:null;function E0(e=null,r={target:VV,actInsideInputWithModifier:!0}){const[n,o]=E.useState(!1),a=E.useRef(!1),i=E.useRef(new Set([])),[s,l]=E.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(d=>typeof d=="string").map(d=>d.replace("+",` +`}),n}function JI(e){let r=0,n=e.charCodeAt(r);for(;n===9||n===32;)r++,n=e.charCodeAt(r);return e.slice(r)}function eO(e,r){const n=D2e(e,r),o=n.one(e,void 0),i=j2e(n),a=Array.isArray(o)?{type:"root",children:o}:o||{type:"root",children:[]};return i&&a.children.push({type:"text",value:` +`},i),a}function I2e(e,r){return e&&"run"in e?async function(n,o){const i=eO(n,{file:o,...r});await e.run(i,o)}:function(n,o){return eO(n,{file:o,...e||r})}}function tO(e){if(e)throw e}var s8,rO;function O2e(){if(rO)return s8;rO=1;var e=Object.prototype.hasOwnProperty,r=Object.prototype.toString,n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=function(d){return typeof Array.isArray=="function"?Array.isArray(d):r.call(d)==="[object Array]"},a=function(d){if(!d||r.call(d)!=="[object Object]")return!1;var u=e.call(d,"constructor"),p=d.constructor&&d.constructor.prototype&&e.call(d.constructor.prototype,"isPrototypeOf");if(d.constructor&&!u&&!p)return!1;var f;for(f in d);return typeof f>"u"||e.call(d,f)},l=function(d,u){n&&u.name==="__proto__"?n(d,u.name,{enumerable:!0,configurable:!0,value:u.newValue,writable:!0}):d[u.name]=u.newValue},s=function(d,u){if(u==="__proto__")if(e.call(d,u)){if(o)return o(d,u).value}else return;return d[u]};return s8=function c(){var d,u,p,f,m,v,w=arguments[0],x=1,k=arguments.length,C=!1;for(typeof w=="boolean"&&(C=w,w=arguments[1]||{},x=2),(w==null||typeof w!="object"&&typeof w!="function")&&(w={});xl.length;let c;s&&l.push(i);try{c=e.apply(this,l)}catch(d){const u=d;if(s&&n)throw u;return i(u)}s||(c&&c.then&&typeof c.then=="function"?c.then(a,i):c instanceof Error?i(c):a(c))}function i(l,...s){n||(n=!0,r(l,...s))}function a(l){i(null,l)}}class ti extends Error{constructor(r,n,o){super(),typeof n=="string"&&(o=n,n=void 0);let i="",a={},l=!1;if(n&&("line"in n&&"column"in n?a={place:n}:"start"in n&&"end"in n?a={place:n}:"type"in n?a={ancestors:[n],place:n.position}:a={...n}),typeof r=="string"?i=r:!a.cause&&r&&(l=!0,i=r.message,a.cause=r),!a.ruleId&&!a.source&&typeof o=="string"){const c=o.indexOf(":");c===-1?a.ruleId=o:(a.source=o.slice(0,c),a.ruleId=o.slice(c+1))}if(!a.place&&a.ancestors&&a.ancestors){const c=a.ancestors[a.ancestors.length-1];c&&(a.place=c.position)}const s=a.place&&"start"in a.place?a.place.start:a.place;this.ancestors=a.ancestors||void 0,this.cause=a.cause||void 0,this.column=s?s.column:void 0,this.fatal=void 0,this.file,this.message=i,this.line=s?s.line:void 0,this.name=u1(a.place)||"1:1",this.place=a.place||void 0,this.reason=this.message,this.ruleId=a.ruleId||void 0,this.source=a.source||void 0,this.stack=l&&a.cause&&typeof a.cause.stack=="string"?a.cause.stack:"",this.actual,this.expected,this.note,this.url}}ti.prototype.file="",ti.prototype.name="",ti.prototype.reason="",ti.prototype.message="",ti.prototype.stack="",ti.prototype.column=void 0,ti.prototype.line=void 0,ti.prototype.ancestors=void 0,ti.prototype.cause=void 0,ti.prototype.fatal=void 0,ti.prototype.place=void 0,ti.prototype.ruleId=void 0,ti.prototype.source=void 0;const ql={basename:q2e,dirname:H2e,extname:U2e,join:W2e,sep:"/"};function q2e(e,r){if(r!==void 0&&typeof r!="string")throw new TypeError('"ext" argument must be a string');p1(e);let n=0,o=-1,i=e.length,a;if(r===void 0||r.length===0||r.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else o<0&&(a=!0,o=i+1);return o<0?"":e.slice(n,o)}if(r===e)return"";let l=-1,s=r.length-1;for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else l<0&&(a=!0,l=i+1),s>-1&&(e.codePointAt(i)===r.codePointAt(s--)?s<0&&(o=i):(s=-1,o=l));return n===o?o=l:o<0&&(o=e.length),e.slice(n,o)}function H2e(e){if(p1(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 U2e(e){p1(e);let r=e.length,n=-1,o=0,i=-1,a=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?i<0?i=r:a!==1&&(a=1):i>-1&&(a=-1)}return i<0||n<0||a===0||a===1&&i===n-1&&i===o+1?"":e.slice(i,n)}function W2e(...e){let r=-1,n;for(;++r0&&e.codePointAt(e.length-1)===47&&(n+="/"),r?"/"+n:n}function Y2e(e,r){let n="",o=0,i=-1,a=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("/")),i=l,a=0;continue}}else if(n.length>0){n="",o=0,i=l,a=0;continue}}r&&(n=n.length>0?n+"/..":"..",o=2)}else n.length>0?n+="/"+e.slice(i+1,l):n=e.slice(i+1,l),o=l-i-1;i=l,a=0}else s===46&&a>-1?a++:a=-1}return n}function p1(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const X2e={cwd:K2e};function K2e(){return"/"}function u8(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function Z2e(e){if(typeof e=="string")e=new URL(e);else if(!u8(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 Q2e(e)}function Q2e(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[m,...v]=u;const w=o[f][1];d8(w)&&d8(m)&&(m=c8(!0,w,m)),o[f]=[d,m,...v]}}}}const n4e=new g8().freeze();function m8(e,r){if(typeof r!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function y8(e,r){if(typeof r!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function v8(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 oO(e){if(!d8(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function iO(e,r,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+r+"` instead")}function Xb(e){return o4e(e)?e:new J2e(e)}function o4e(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function i4e(e){return typeof e=="string"||a4e(e)}function a4e(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}function l4e(){return n4e().use(r2e).use(T3e).use(D3e).use(I2e,{allowDangerousHtml:!0}).use(S0e,XM({attributes:{"*":["className"],svg:["width","height","viewBox","fill","ariaHidden"],path:["d","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin"]},tagNames:["svg","g","path","div"]},P_)).use(Fve,{allowDangerousHtml:!0})}function s4e(e){return(""+l4e().processSync(e)).trim()}function c4e(e){return Hb(UI(e),{includeHtml:!1,includeImageAlt:!1})}var b8,aO;function d4e(){if(aO)return b8;aO=1;var e=aB(),r=Ab();function n(){this.clear()}return n.prototype.clear=function(){this.items=[],this.offset=0,this.size=0},n.prototype.enqueue=function(o){return this.items.push(o),++this.size},n.prototype.dequeue=function(){if(this.size){var o=this.items[this.offset];return++this.offset*2>=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,i){i=arguments.length>1?i:this;for(var a=this.offset,l=0,s=this.items.length;a=o.length)return{done:!0};var a=o[i];return i++,{value:a,done:!1}})},n.prototype.entries=function(){var o=this.items,i=this.offset,a=0;return new e(function(){if(i>=o.length)return{done:!0};var l=o[i];return i++,{value:[a++,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 i=new n;return r(o,function(a){i.enqueue(a)}),i},n.of=function(){return n.from(arguments)},b8=n,b8}var u4e=d4e();const x8=Qm(u4e);var w8,lO;function p4e(){if(lO)return w8;lO=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++}},w8=e,w8}var h4e=p4e();const Ln=Qm(h4e);function Ji(e){return!!e}function sO(e){return r=>!e(r)}function f4e(...e){return ao(g4e,e)}const g4e=(e,r)=>r.every(n=>n(e));function m4e(...e){return ao(y4e,e)}const y4e=(e,r)=>r.some(n=>n(e));function Xn(e){return e==null}function cO(e,r){return e[Iu]===r}const Iu="_stage",h1="_type",k8="_layout";function v4e(e){return Ji(e.kind)&&!Ji(e.element)}function b4e(e){return"tag"in e}function x4e(e){return"kind"in e}function w4e(e){return"participant"in e}function k4e(e){return"not"in e}function _4e(e){return"and"in e}function S4e(e){return"or"in e}function Ou(e){switch(!0){case w4e(e):{const r=e.participant,n=Ou(e.operator);return E4e(r,n)}case b4e(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 x4e(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=>Xn(n.kind)||n.kind!==r}case k4e(e):{const r=Ou(e.not);return sO(r)}case _4e(e):{const r=e.and.map(Ou);return f4e(r)}case S4e(e):{const r=e.or.map(Ou);return m4e(r)}default:Qo(e)}}function E4e(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)}}}function C4e(e){return e._type==="dynamic"}function f1(...e){return ao(Object.entries,e)}function Lu(e,...r){return typeof e=="string"||typeof e=="number"||typeof e=="symbol"?n=>dO(n,e,...r):dO(e,...r)}function dO(e,...r){let n=e;for(let o of r){if(n==null)return;n=n[o]}return n}function Kb(...e){return ao($4e,e,R4e)}const $4e=(e,r)=>e.map(r),R4e=e=>(r,n,o)=>({done:!1,hasNext:!0,next:e(r,n,o)});function z4e(e,r){let n=r.length-e.length;if(n===1){let[o,...i]=r;return Ns(o,{lazy:e,lazyArgs:i})}if(n===0){let o={lazy:e,lazyArgs:r};return Object.assign(i=>Ns(i,o),o)}throw Error("Wrong number of arguments")}function Zb(...e){return z4e(T4e,e)}function T4e(){let e=new Set;return r=>e.has(r)?E_:(e.add(r),{done:!1,hasNext:!0,next:r})}var _8={},uO;function j4e(){return uO||(uO=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,i,a,l=arguments.length;for(a=0;an.size)return!1;for(;i=o.next(),!i.done;)if(!n.has(i.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(),i;i=o.next(),!i.done;)r.add(i.value)},e.subtract=function(r,n){for(var o=n.values(),i;i=o.next(),!i.done;)r.delete(i.value)},e.intersect=function(r,n){for(var o=r.values(),i;i=o.next(),!i.done;)n.has(i.value)||r.delete(i.value)},e.disjunct=function(r,n){for(var o=r.values(),i,a=[];i=o.next(),!i.done;)n.has(i.value)&&a.push(i.value);for(o=n.values();i=o.next(),!i.done;)r.has(i.value)||r.add(i.value);for(var l=0,s=a.length;ln.size&&(o=r,r=n,n=o),r.size===0)return 0;if(r===n)return r.size;for(var i=r.values(),a,l=0;a=i.next(),!a.done;)n.has(a.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 i=r.size+n.size-o;return o/i},e.overlap=function(r,n){var o=e.intersectionSize(r,n);return o===0?0:o/Math.min(r.size,n.size)}})(_8)),_8}var pO=j4e();function S8(...e){let r=new Set;for(const n of e)for(const o of n)r.add(o);return r}function Hh(e,...r){let n=new Set;if(e.size===0)return n;let o=Ll(r,2)?pO.intersection(...r):r[0];if(o.size===0)return n;for(const i of e)o.has(i)&&n.add(i);return n}function E8(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 A4e(e,r){return e.size===r.size&&[...e].every(n=>r.has(n))}function D4e(e,r){return pO.symmetricDifference(e,r)}function g1(e){return e?hO(e):hO}function hO(e){const r=e[Symbol.iterator](),{value:n}=r.next();return n}const Qb=e=>typeof e=="function";function Is(e,r){const n=r??e;He(Qb(n));function*o(i){for(const a of i)n(a)&&(yield a)}return r?o(e):o}const fO={asc:(e,r)=>e>r,desc:(e,r)=>ee(a,i)}function C8(e,r,...n){let o=typeof e=="function"?e:e[0],i=typeof e=="function"?"asc":e[1],{[i]:a}=fO,l=r===void 0?void 0:C8(r,...n);return(s,c)=>{let d=o(s),u=o(c);return a(d,u)?1:a(u,d)?-1:l?.(s,c)??0}}function M4e(e){if(gO(e))return!0;if(typeof e!="object"||!Array.isArray(e))return!1;let[r,n,...o]=e;return gO(r)&&typeof n=="string"&&n in fO&&o.length===0}const gO=e=>typeof e=="function"&&e.length===1;function N4e(...e){return ao(B4e,e,I4e)}const B4e=(e,r)=>e.filter(r),I4e=e=>(r,n,o)=>e(r,n,o)?{done:!1,hasNext:!0,next:r}:E_;function mO(...e){return ao(O4e,e,L4e)}const O4e=(e,r)=>e.flatMap(r),L4e=e=>(r,n,o)=>{let i=e(r,n,o);return Array.isArray(i)?{done:!1,hasNext:!0,hasMany:!0,next:i}:{done:!1,hasNext:!0,next:i}};function $8(...e){return ao(F4e,e)}const F4e=(e,r)=>{let n=Object.create(null);for(let o=0;oNs(r,...e)}function vO(...e){return P4e(U4e,e)}const U4e=(e,r)=>[...e].sort(r);var bO=Symbol.for("immer-nothing"),xO=Symbol.for("immer-draftable"),Io=Symbol.for("immer-state");function Wa(e,...r){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var wi=Object,Uh=wi.getPrototypeOf,Jb="constructor",ex="prototype",T8="configurable",tx="enumerable",rx="writable",m1="value",nd=e=>!!e&&!!e[Io];function Os(e){return e?kO(e)||ox(e)||!!e[xO]||!!e[Jb]?.[xO]||ix(e)||ax(e):!1}var W4e=wi[ex][Jb].toString(),wO=new WeakMap;function kO(e){if(!e||!A8(e))return!1;const r=Uh(e);if(r===null||r===wi[ex])return!0;const n=wi.hasOwnProperty.call(r,Jb)&&r[Jb];if(n===Object)return!0;if(!Wh(n))return!1;let o=wO.get(n);return o===void 0&&(o=Function.toString.call(n),wO.set(n,o)),o===W4e}function y1(e,r,n=!0){v1(e)===0?(n?Reflect.ownKeys(e):wi.keys(e)).forEach(i=>{r(i,e[i],e)}):e.forEach((o,i)=>r(i,o,e))}function v1(e){const r=e[Io];return r?r.type_:ox(e)?1:ix(e)?2:ax(e)?3:0}var _O=(e,r,n=v1(e))=>n===2?e.has(r):wi[ex].hasOwnProperty.call(e,r),j8=(e,r,n=v1(e))=>n===2?e.get(r):e[r],nx=(e,r,n,o=v1(e))=>{o===2?e.set(r,n):o===3?e.add(n):e[r]=n};function G4e(e,r){return e===r?e!==0||1/e===1/r:e!==e&&r!==r}var ox=Array.isArray,ix=e=>e instanceof Map,ax=e=>e instanceof Set,A8=e=>typeof e=="object",Wh=e=>typeof e=="function",D8=e=>typeof e=="boolean",Ls=e=>e.copy_||e.base_,P8=e=>e.modified_?e.copy_:e.base_;function M8(e,r){if(ix(e))return new Map(e);if(ax(e))return new Set(e);if(ox(e))return Array[ex].slice.call(e);const n=kO(e);if(r===!0||r==="class_only"&&!n){const o=wi.getOwnPropertyDescriptors(e);delete o[Io];let i=Reflect.ownKeys(o);for(let a=0;a1&&wi.defineProperties(e,{set:lx,add:lx,clear:lx,delete:lx}),wi.freeze(e),r&&y1(e,(n,o)=>{N8(o,!0)},!1)),e}function Y4e(){Wa(2)}var lx={[m1]:Y4e};function sx(e){return e===null||!A8(e)?!0:wi.isFrozen(e)}var cx="MapSet",B8="Patches",SO={};function Gh(e){const r=SO[e];return r||Wa(0,e),r}var X4e=e=>!!SO[e],b1,EO=()=>b1,K4e=(e,r)=>({drafts_:[],parent_:e,immer_:r,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:X4e(cx)?Gh(cx):void 0});function CO(e,r){r&&(e.patchPlugin_=Gh(B8),e.patches_=[],e.inversePatches_=[],e.patchListener_=r)}function I8(e){O8(e),e.drafts_.forEach(Z4e),e.drafts_=null}function O8(e){e===b1&&(b1=e.parent_)}var $O=e=>b1=K4e(b1,e);function Z4e(e){const r=e[Io];r.type_===0||r.type_===1?r.revoke_():r.revoked_=!0}function RO(e,r){r.unfinalizedDrafts_=r.drafts_.length;const n=r.drafts_[0];if(e!==void 0&&e!==n){n[Io].modified_&&(I8(r),Wa(4)),Os(e)&&(e=zO(r,e));const{patchPlugin_:i}=r;i&&i.generateReplacementPatches_(n[Io].base_,e,r)}else e=zO(r,n);return Q4e(r,e,!0),I8(r),r.patches_&&r.patchListener_(r.patches_,r.inversePatches_),e!==bO?e:void 0}function zO(e,r){if(sx(r))return r;const n=r[Io];if(!n)return L8(r,e.handledSet_,e);if(!dx(n,e))return r;if(!n.modified_)return n.base_;if(!n.finalized_){const{callbacks_:o}=n;if(o)for(;o.length>0;)o.pop()(e);AO(n,e)}return n.copy_}function Q4e(e,r,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&N8(r,n)}function TO(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var dx=(e,r)=>e.scope_===r,J4e=[];function jO(e,r,n,o){const i=Ls(e),a=e.type_;if(o!==void 0&&j8(i,o,a)===r){nx(i,o,n,a);return}if(!e.draftLocations_){const s=e.draftLocations_=new Map;y1(i,(c,d)=>{if(nd(d)){const u=s.get(d)||[];u.push(c),s.set(d,u)}})}const l=e.draftLocations_.get(r)??J4e;for(const s of l)nx(i,s,n,a)}function e5e(e,r,n){e.callbacks_.push(function(i){const a=r;if(!a||!dx(a,i))return;i.mapSetPlugin_?.fixSetContents(a);const l=P8(a);jO(e,a.draft_??a,l,n),AO(a,i)})}function AO(e,r){if(e.modified_&&!e.finalized_&&(e.type_===3||(e.assigned_?.size??0)>0)){const{patchPlugin_:o}=r;if(o){const i=o.getPath(e);i&&o.generatePatches_(e,i,r)}TO(e)}}function t5e(e,r,n){const{scope_:o}=e;if(nd(n)){const i=n[Io];dx(i,o)&&i.callbacks_.push(function(){ux(e);const l=P8(i);jO(e,n,l,r)})}else Os(n)&&e.callbacks_.push(function(){const a=Ls(e);j8(a,r,e.type_)===n&&o.drafts_.length>1&&(e.assigned_.get(r)??!1)===!0&&e.copy_&&L8(j8(e.copy_,r,e.type_),o.handledSet_,o)})}function L8(e,r,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||nd(e)||r.has(e)||!Os(e)||sx(e)||(r.add(e),y1(e,(o,i)=>{if(nd(i)){const a=i[Io];if(dx(a,n)){const l=P8(a);nx(e,o,l,e.type_),TO(a)}}else Os(i)&&L8(i,r,n)})),e}function r5e(e,r){const n=ox(e),o={type_:n?1:0,scope_:r?r.scope_:EO(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:r,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let i=o,a=F8;n&&(i=[o],a=x1);const{revoke:l,proxy:s}=Proxy.revocable(i,a);return o.draft_=s,o.revoke_=l,[s,o]}var F8={get(e,r){if(r===Io)return e;const n=Ls(e);if(!_O(n,r,e.type_))return n5e(e,n,r);const o=n[r];if(e.finalized_||!Os(o))return o;if(o===V8(e.base_,r)){ux(e);const i=e.type_===1?+r:r,a=H8(e.scope_,o,e,i);return e.copy_[i]=a}return o},has(e,r){return r in Ls(e)},ownKeys(e){return Reflect.ownKeys(Ls(e))},set(e,r,n){const o=DO(Ls(e),r);if(o?.set)return o.set.call(e.draft_,n),!0;if(!e.modified_){const i=V8(Ls(e),r),a=i?.[Io];if(a&&a.base_===n)return e.copy_[r]=n,e.assigned_.set(r,!1),!0;if(G4e(n,i)&&(n!==void 0||_O(e.base_,r,e.type_)))return!0;ux(e),q8(e)}return e.copy_[r]===n&&(n!==void 0||r in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[r])||(e.copy_[r]=n,e.assigned_.set(r,!0),t5e(e,r,n)),!0},deleteProperty(e,r){return ux(e),V8(e.base_,r)!==void 0||r in e.base_?(e.assigned_.set(r,!1),q8(e)):e.assigned_.delete(r),e.copy_&&delete e.copy_[r],!0},getOwnPropertyDescriptor(e,r){const n=Ls(e),o=Reflect.getOwnPropertyDescriptor(n,r);return o&&{[rx]:!0,[T8]:e.type_!==1||r!=="length",[tx]:o[tx],[m1]:n[r]}},defineProperty(){Wa(11)},getPrototypeOf(e){return Uh(e.base_)},setPrototypeOf(){Wa(12)}},x1={};y1(F8,(e,r)=>{x1[e]=function(){const n=arguments;return n[0]=n[0][0],r.apply(this,n)}}),x1.deleteProperty=function(e,r){return x1.set.call(this,e,r,void 0)},x1.set=function(e,r,n){return F8.set.call(this,e[0],r,n,e[0])};function V8(e,r){const n=e[Io];return(n?Ls(n):e)[r]}function n5e(e,r,n){const o=DO(r,n);return o?m1 in o?o[m1]:o.get?.call(e.draft_):void 0}function DO(e,r){if(!(r in e))return;let n=Uh(e);for(;n;){const o=Object.getOwnPropertyDescriptor(n,r);if(o)return o;n=Uh(n)}}function q8(e){e.modified_||(e.modified_=!0,e.parent_&&q8(e.parent_))}function ux(e){e.copy_||(e.assigned_=new Map,e.copy_=M8(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var o5e=class{constructor(r){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(n,o,i)=>{if(Wh(n)&&!Wh(o)){const l=o;o=n;const s=this;return function(d=l,...u){return s.produce(d,p=>o.call(this,p,...u))}}Wh(o)||Wa(6),i!==void 0&&!Wh(i)&&Wa(7);let a;if(Os(n)){const l=$O(this),s=H8(l,n,void 0);let c=!0;try{a=o(s),c=!1}finally{c?I8(l):O8(l)}return CO(l,i),RO(a,l)}else if(!n||!A8(n)){if(a=o(n),a===void 0&&(a=n),a===bO&&(a=void 0),this.autoFreeze_&&N8(a,!0),i){const l=[],s=[];Gh(B8).generateReplacementPatches_(n,a,{patches_:l,inversePatches_:s}),i(l,s)}return a}else Wa(1,n)},this.produceWithPatches=(n,o)=>{if(Wh(n))return(s,...c)=>this.produceWithPatches(s,d=>n(d,...c));let i,a;return[this.produce(n,o,(s,c)=>{i=s,a=c}),i,a]},D8(r?.autoFreeze)&&this.setAutoFreeze(r.autoFreeze),D8(r?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(r.useStrictShallowCopy),D8(r?.useStrictIteration)&&this.setUseStrictIteration(r.useStrictIteration)}createDraft(r){Os(r)||Wa(8),nd(r)&&(r=i5e(r));const n=$O(this),o=H8(n,r,void 0);return o[Io].isManual_=!0,O8(n),o}finishDraft(r,n){const o=r&&r[Io];(!o||!o.isManual_)&&Wa(9);const{scope_:i}=o;return CO(i,n),RO(void 0,i)}setAutoFreeze(r){this.autoFreeze_=r}setUseStrictShallowCopy(r){this.useStrictShallowCopy_=r}setUseStrictIteration(r){this.useStrictIteration_=r}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(r,n){let o;for(o=n.length-1;o>=0;o--){const a=n[o];if(a.path.length===0&&a.op==="replace"){r=a.value;break}}o>-1&&(n=n.slice(o+1));const i=Gh(B8).applyPatches_;return nd(r)?i(r,n):this.produce(r,a=>i(a,n))}};function H8(e,r,n,o){const[i,a]=ix(r)?Gh(cx).proxyMap_(r,n):ax(r)?Gh(cx).proxySet_(r,n):r5e(r,n);return(n?.scope_??EO()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=o,n&&o!==void 0?e5e(n,a,o):a.callbacks_.push(function(c){c.mapSetPlugin_?.fixSetContents(a);const{patchPlugin_:d}=c;a.modified_&&d&&d.generatePatches_(a,[],c)}),i}function i5e(e){return nd(e)||Wa(10,e),PO(e)}function PO(e){if(!Os(e)||sx(e))return e;const r=e[Io];let n,o=!0;if(r){if(!r.modified_)return r.base_;r.finalized_=!0,n=M8(e,r.scope_.immer_.useStrictShallowCopy_),o=r.scope_.immer_.shouldUseStrictIteration()}else n=M8(e,!0);return y1(n,(i,a)=>{nx(n,i,PO(a))},o),r&&(r.finalized_=!1),n}var a5e=new o5e,Yh=a5e.produce,MO=e=>e;function l5e(e){return Ns(e,N4e(r=>!!r.notation),$8(Lu("notation")),R8(z8($8(Lu("shape")),R8(z8($8(Lu("color")),R8(z8(Kb(Lu("kind")),Zb())),f1(),Kb(([r,n])=>({kinds:n,color:r})))),f1(),mO(([r,n])=>n.map(({color:o,kinds:i})=>({shape:r,color:o,kinds:i}))))),f1(),mO(([r,n])=>n.map(({shape:o,color:i,kinds:a})=>({title:r,shape:o,color:i,kinds:a}))),vO(Lu("shape"),Lu("title"),[r=>r.kinds.length,"desc"]))}const wo=(e,r)=>e===r||Xn(e)&&Xn(r)?!1:!yb(e,r),px=5;function s5e(e,r){e.color=r.color,e.kind=r.kind,e.navigateTo=r.navigateTo??null,e.links=r.links?[...r.links]:null,e.tags=[...r.tags],Xn(r.style.border)?delete e.style.border:e.style.border=r.style.border,V4e(r.style.opacity)?e.style.opacity=r.style.opacity:delete e.style.opacity,Xn(r.style.multiple)?delete e.style.multiple:e.style.multiple=r.style.multiple}function c5e(e,r,n){if(wo(r.icon??"none",e.icon??"none")){const o=Ji(e.icon)&&e.icon!=="none";switch(!0){case(o&&Ji(r.icon)&&r.icon!=="none"):return e.icon=r.icon,!0;case(o&&(Xn(r.icon)||r.icon==="none")):return e.icon="none",!0;case(!o&&Ji(r.icon)&&r.icon!=="none"):return n?(e.icon=r.icon,!0):!1}}return!0}function U8(e,r){return e?"md"in r?(e.md=r.md,delete e.txt,e):("txt"in r&&(e.txt=r.txt,delete e.md),e):r}function d5e(e,r,n){let o=!0;return wo(e.title,r.title)&&(n?e.title=r.title:o=!1),wo(e.description,r.description)&&(Xn(r.description)?delete e.description:n?e.description=U8(e.description,r.description):o=!1),wo(e.technology,r.technology)&&(Xn(r.technology)?delete e.technology:n?e.technology=r.technology:o=!1),o}function u5e(e,r,n){return e.title=r.title,Xn(r.description)?delete e.description:e.description=U8(e.description,r.description),Xn(r.technology)?delete e.technology:e.technology=r.technology,!0}function NO(e,r){He(e.id===r.id,"applyManualLayout: view ids do not match"),He(e._stage==="layouted","applyManualLayout: expected layouted view"),He(r._stage==="layouted","applyManualLayout: expected layouted snapshot"),He(e._layout!=="manual","applyManualLayout: expected auto-layouted view");const n=new Set;e._type!==r._type&&n.add("type-changed");const o=new Map(e.nodes.map(u=>[u.id,u])),i=new Map(e.edges.map(u=>[u.id,u])),a=p5e(r.nodes,o,n),l=h5e(r.edges,i,n),s=l5e(a),c=Object.assign({...r},{title:e.title??r.title,description:e.description??r.description,tags:e.tags?[...e.tags]:null,links:e.links?[...e.links]:null,[k8]:"manual",...s&&s.length>0?{notation:{nodes:s}}:{},nodes:a,edges:l});C4e(e)&&c._type==="dynamic"&&(c.variant=e.variant);const d=[...n];return Ll(d,1)?c.drifts=d:"drifts"in c&&delete c.drifts,c}function p5e(e,r,n){const o=e.map(i=>{const a=r.get(i.id);return a&&r.delete(a.id),Yh(i,l=>{if(!a){l.drifts=["removed"],n.add("nodes-removed");return}s5e(l,a);const s=new Set,c=i.children.length>0,d=a.children.length>0;(wo(l.modelRef,a.modelRef)||wo(l.deploymentRef,a.deploymentRef))&&s.add("modelRef-changed"),d&&!c&&s.add("became-compound"),!d&&c&&s.add("became-leaf"),wo(l.parent,a.parent)&&s.add("parent-changed");const u=l.width+px>=a.width&&l.height+px>=a.height;wo(l.shape,a.shape)&&(u?l.shape=a.shape:s.add("shape-changed")),c5e(l,a,u&&d===c)||s.add("label-changed"),(c?u5e:d5e)(l,a,u)||s.add("label-changed"),wo(i.notation,a.notation)&&(l.notation=a.notation??null),c&&d&&D4e(new Set(i.children),new Set(a.children)).size>0&&s.add("children-changed");const f=[...s];Ll(f,1)?(n.add("nodes-drift"),l.drifts=f):delete l.drifts})});return r.size>0&&n.add("nodes-added"),o}function h5e(e,r,n){const o=e.map(i=>{let a=r.get(i.id)??Ns(r.values(),Is(l=>l.source===i.source&&l.target===i.target),g1());return a&&r.delete(a.id),Yh(i,l=>{if(!a){l.drifts=["removed"],n.add("edges-removed");return}const s=new Set,c=i.id===a.id;switch(!0){case(c&&i.source==a.source&&i.target==a.target):{wo(l.dir??"forward",a.dir??"forward")&&s.add("direction-changed");break}case(c&&i.source==a.target&&i.target==a.source):{i.source!==i.target&&s.add("direction-changed");break}case c:{i.source!=a.source&&s.add("source-changed"),i.target!=a.target&&s.add("target-changed");break}default:{He(i.id!=a.id,"Unexpected case in edge drift detection, ids should not match"),He(i.source==a.source,"Unexpected case in edge drift detection, sources should match"),He(i.target==a.target,"Unexpected case in edge drift detection, targets should match"),wo(l.dir??"forward",a.dir??"forward")&&s.add("direction-changed");break}}l.color=a.color,l.line=a.line,l.navigateTo=a.navigateTo??null,l.tags=a.tags?[...a.tags]:null,wo(i.notes,a.notes)&&(Xn(i.notes)!==Xn(a.notes)&&s.add("notes-changed"),l.notes=a.notes??i.notes),a.astPath?l.astPath=a.astPath:delete l.astPath;const d=yO(i,["label","description","technology","labelBBox"]),u=yO(a,["label","description","technology","labelBBox"]);if(wo(d,u))switch(!0){case(a.labelBBox&&!i.labelBBox):{s.add("label-added");break}case(i.labelBBox&&!a.labelBBox):{s.add("label-removed");break}case(!!i.labelBBox&&!!a.labelBBox):{a.labelBBox.width*a.labelBBox.height>(i.labelBBox.width+px)*(i.labelBBox.height+px)&&(l.labelBBox.width=Math.round(a.labelBBox.width),l.labelBBox.height=Math.round(a.labelBBox.height)),wo(i.label,a.label)&&(Xn(a.label)!==Xn(i.label)&&s.add("label-changed"),l.label=a.label??i.label),wo(i.description,a.description)&&(Xn(a.description)!==Xn(i.description)&&s.add("label-changed"),a.description&&(l.description=U8(i.description,a.description))),wo(i.technology,a.technology)&&(Xn(a.technology)!==Xn(i.technology)&&s.add("label-changed"),l.technology=a.technology??i.technology??null);break}default:He(!i.labelBBox,"Unexpected case in edge labelBBox drift detection"),He(!a.labelBBox,"Unexpected case in next labelBBox drift detection");break}const p=[...s];Ll(p,1)?(n.add("edges-drift"),l.drifts=p):delete l.drifts})});return r.size>0&&n.add("edges-added"),o}function f5e(e,r){const{drifts:n,...o}=NO(e,r);if(n){const i=new Set;n.includes("type-changed")&&i.add("type-changed");const a=new Map(o.nodes.map(u=>[u.id,u])),l=new Map(o.edges.map(u=>[u.id,u])),s=e.nodes.map(u=>{const p=a.get(u.id);return p&&a.delete(p.id),Yh(u,f=>{if(!p){i.add("nodes-added"),f.drifts=["added"];return}p.drifts?(i.add("nodes-drift"),f.drifts=[...p.drifts]):delete f.drifts})});a.size>0&&i.add("nodes-removed");const c=e.edges.map(u=>{const p=l.get(u.id)??Ns(l.values(),Is(f=>f.source===u.source&&f.target===u.target),g1());return p&&l.delete(p.id),Yh(u,f=>{if(!p){i.add("edges-added"),f.drifts=["added"];return}p.drifts?(i.add("edges-drift"),f.drifts=[...p.drifts]):delete f.drifts})});l.size>0&&i.add("edges-removed");const d=[...i];return Yh(e,u=>{Ll(d,1)?u.drifts=d:delete u.drifts,u.nodes=MO(s),u.edges=MO(c),u[k8]="auto"})}return Yh(e,i=>{delete i.drifts,i[k8]="auto"})}function Fs(e){return e.summary??e.description}function Xh(e){return e.description??e.summary}const w1="@group";function g5e(e){return e.kind===w1}function BO(e,r){return He(typeof e=="string"&&e!=""),"@"+e+"."+r}function m5e(e){return e.startsWith("@")}function y5e(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 k1(e){return e.startsWith("step-")}function IO(e){if(!k1(e))throw new Error(`Invalid step edge id: ${e}`);return parseFloat(e.slice(5))}function v5e(...e){return ao(b5e,e)}function b5e(e,r){let n={...e};for(let[o,i]of Object.entries(n))r(i,o,e)&&delete n[o];return n}var W8={},OO;function G8(){return OO||(OO=1,(function(e){var r=Math.pow(2,8)-1,n=Math.pow(2,16)-1,o=Math.pow(2,32)-1,i=Math.pow(2,7)-1,a=Math.pow(2,15)-1,l=Math.pow(2,31)-1;e.getPointerArray=function(c){var d=c-1;if(d<=r)return Uint8Array;if(d<=n)return Uint16Array;if(d<=o)return Uint32Array;throw new Error("mnemonist: Pointer Array of size > 4294967295 is not supported.")},e.getSignedPointerArray=function(c){var d=c-1;return d<=i?Int8Array:d<=a?Int16Array:d<=l?Int32Array:Float64Array},e.getNumberType=function(c){return c===(c|0)?Math.sign(c)===-1?c<=127&&c>=-128?Int8Array:c<=32767&&c>=-32768?Int16Array:Int32Array:c<=255?Uint8Array:c<=65535?Uint16Array:Uint32Array:Float64Array};var s={Uint8Array:1,Int8Array:2,Uint16Array:3,Int16Array:4,Uint32Array:5,Int32Array:6,Float32Array:7,Float64Array:8};e.getMinimalRepresentation=function(c,d){var u=null,p=0,f,m,v,w,x;for(w=0,x=c.length;wp&&(p=f,u=m);return u},e.isTypedArray=function(c){return typeof ArrayBuffer<"u"&&ArrayBuffer.isView(c)},e.concat=function(){var c=0,d,u,p;for(d=0,p=arguments.length;d"u"))return this.splayOnTop(l),this.V[l]},i.prototype.peek=function(a){var l=this.items[a];if(!(typeof l>"u"))return this.V[l]},i.prototype.forEach=function(a,l){l=arguments.length>1?l:this;for(var s=0,c=this.size,d=this.head,u=this.K,p=this.V,f=this.forward;s=l)return{done:!0};var u=c[s];return a++,a=l)return{done:!0};var u=c[s];return a++,a=l)return{done:!0};var p=c[s],f=d[s];return a++,a"u"))return this.splayOnTop(l),this.V[l]},i.prototype.peek=function(a){var l=this.items.get(a);if(!(typeof l>"u"))return this.V[l]},i.prototype.splayOnTop=e.prototype.splayOnTop,i.prototype.forEach=e.prototype.forEach,i.prototype.keys=e.prototype.keys,i.prototype.values=e.prototype.values,i.prototype.entries=e.prototype.entries,typeof Symbol<"u"&&(i.prototype[Symbol.iterator]=i.prototype.entries),i.prototype.inspect=e.prototype.inspect,i.from=function(a,l,s,c){if(arguments.length<2){if(c=o.guessLength(a),typeof c!="number")throw new Error("mnemonist/lru-cache.from: could not guess iterable length. Please provide desired capacity as last argument.")}else arguments.length===2&&(c=l,l=null,s=null);var d=new i(l,s,c);return r(a,function(u,p){d.set(p,u)}),d},X8=i,X8}var k5e=w5e();const HO=Qm(k5e);function _1(e){return v5e(e,r=>r===void 0)}const _5e=Symbol.for("text"),S5e=Symbol.for("html"),Vs="",UO=new HO(500),WO=new HO(500);class ur{static getOrCreateFromText(r){if(r.trim()===Vs)return ur.EMPTY;let n=WO.get(r);return n||(n=new ur({txt:r}),WO.set(r,n),n)}static getOrCreateFromMarkdown(r){if(r.trim()===Vs)return ur.EMPTY;let n=UO.get(r);return n||(n=new ur({md:r}),UO.set(r,n),n)}static memoize(r,n,o){return ar(r,n,()=>ur.from(o))}static from(r){return r==null||r===ur.EMPTY?ur.EMPTY:r instanceof ur?r:typeof r=="string"?this.getOrCreateFromText(r):"isEmpty"in r&&r.isEmpty?ur.EMPTY:"md"in r?this.getOrCreateFromMarkdown(r.md):this.getOrCreateFromText(r.txt)}static EMPTY=new class extends ur{isEmpty=!0;nonEmpty=!1;isMarkdown=!1;$source=null;constructor(){super({txt:Vs})}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()===Vs):(this.$source=r,this.isEmpty=!0,"md"in r?(this.isEmpty=r.md===Vs,this.isMarkdown=!0):this.isEmpty=r.txt===Vs),this.nonEmpty=!this.isEmpty}get text(){if(this.isEmpty||this.$source===null)return Vs;const r=this.$source;return"txt"in r?r.txt:ar(this,_5e,()=>c4e(r.md))}get md(){if(this.isEmpty||this.$source===null)return Vs;const r=this.$source;if("md"in r)return r.md;if("txt"in r)return r.txt;Qo(r)}get html(){if(this.isEmpty||this.$source===null)return Vs;const r=this.$source;return"txt"in r?r.txt:ar(this,S5e,()=>s4e(r.md))}equals(r){return this===r?!0:r instanceof ur?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}}var S1;(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 BO(c.project,c.model);if(r(c))return c.model;throw new Error("Expected FqnRef.ModelRef or FqnRef.ImportRef")}e.flatten=o;function i(c){return r(c)||n(c)}e.isModelRef=i;function a(c){return"deployment"in c&&"element"in c}e.isInsideInstanceRef=a;function l(c){return"deployment"in c&&!("element"in c)}e.isDeploymentElementRef=l;function s(c){return l(c)||a(c)}e.isDeploymentRef=s})(S1||(S1={}));var ko;(e=>{function r({x:u,y:p,width:f,height:m}){return{x:u+f/2,y:p+m/2}}e.center=r;function n({x:u,y:p,width:f,height:m}){return[{x:u,y:p},{x:u+f,y:p},{x:u+f,y:p+m},{x:u,y:p+m}]}e.toPoints=n;function o(u){const{x1:p,y1:f,x2:m,y2:v}=K8.fromPoints(u);return{x:p,y:f,width:m-p,height:v-f}}e.fromPoints=o;function i(...u){if(He(Ll(u,1),"No boxes provided"),u.length===1)return u[0];let p=u[0].x,f=u[0].y,m=u[0].x+u[0].width,v=u[0].y+u[0].height;for(let w=1;w=p.x+p.width&&u.y+u.height>=p.y+p.height}e.includes=d})(ko||(ko={}));var K8;(e=>{function r({x1:l,y1:s,x2:c,y2:d}){return{x:(l+c)/2,y:(s+d)/2}}e.center=r;function n(l){He(l.length>0,"At least one point is required");let s=1/0,c=1/0,d=-1/0,u=-1/0;for(const[p,f]of l)s=Math.min(s,p),c=Math.min(c,f),d=Math.max(d,p),u=Math.max(u,f);return{x1:s,y1:c,x2:d,y2:u}}e.fromPoints=n;function o(...l){He(l.length>0,"No boxes provided");let s=1/0,c=1/0,d=-1/0,u=-1/0;for(const p of l)s=Math.min(s,p.x1),c=Math.min(c,p.y1),d=Math.max(d,p.x2),u=Math.max(u,p.y2);return{x1:s,y1:c,x2:d,y2:u}}e.merge=o;function i(l){return{x:l.x1,y:l.y1,width:l.x2-l.x1,height:l.y2-l.y1}}e.toBBox=i;function a(l,s){return l===s?!0:l.x1<=s.x1&&l.y1<=s.y1&&l.x2>=s.x2&&l.y2>=s.y2}e.includes=a})(K8||(K8={}));class ki{constructor(r,n){this.x=r,this.y=n}static create(...r){return r.length===2?new ki(r[0],r[1]):new ki(r[0].x,r[0].y)}static add(r,n){return{x:r.x+n.x,y:r.y+n.y}}static subtract(r,n){return{x:r.x-n.x,y:r.y-n.y}}static multiply(r,n){return{x:r.x*n,y:r.y*n}}static divide(r,n){return{x:r.x/n,y:r.y/n}}static dot(r,n){return r.x*n.x+r.y*n.y}add(r){return new ki(this.x+r.x,this.y+r.y)}subtract(r){return new ki(this.x-r.x,this.y-r.y)}multiply(r){return new ki(this.x*r,this.y*r)}divide(r){return new ki(this.x/r,this.y/r)}dot(r){return this.x*r.x+this.y*r.y}cross(r){return this.x*r.y-this.y*r.x}length(){return this.x===0&&this.y===0?0:Math.sqrt(this.x**2+this.y**2)}normalize(){const r=this.length();return r===0?new ki(0,0):new ki(this.x/r,this.y/r)}round(){return new ki(Math.round(this.x),Math.round(this.y))}toObject(){return{x:this.x,y:this.y}}}function Qr(...e){return e.length===1&&e[0]instanceof ki?e[0]:e.length===2?new ki(e[0],e[1]):new ki(e[0].x,e[0].y)}function Z8(e){return k1(e)&&e.includes(".")?e.slice(0,e.indexOf(".")+1):null}function GO(e){const r=typeof e=="string"?e:e.color;return r.startsWith("#")||r.startsWith("rgb")}function Q8(...e){return ao(E5e,e)}function E5e(e,r){let n=[...e];return n.sort(r),n}const C5e=["tomato","grass","blue","ruby","orange","indigo","pink","teal","purple","amber","crimson","red","lime","yellow","violet"];function $5e(e,r,n){let o=e.get(r);return o||(o=n(r),e.set(r,o)),o}function R5e(e){let r=5381;const n=e.length;He(n>0,"stringHash: empty string");for(let o=0;o>>0).toString(36)}function E1(e,r){const n=r??e;He(Qb(n));function o(i){for(const a of i)if(n(a))return a}return r?o(e):o}function z5e(e,r){const n=e;He(Qb(n));function*o(i){for(const a of i)yield n(a)}return o}function C1(e){return e?Array.from(e):r=>Array.from(r)}function T5e(e){return e?new Set(e):r=>new Set(r)}function YO(e,r){const n=r??e;He(Qb(n));function o(i){for(const a of i)if(n(a))return!0;return!1}return r?o(e):o}function j5e(e,r){const n=e;He(n>=0,"Count must be a non-negative number");function*o(i){let a=0;for(const l of i){if(a>=n)break;yield l,a++}}return i=>o(i)}function A5e(e,r){let n=Math.ceil(e),o=Math.floor(r);if(o{setTimeout(()=>{n(D5e)},r??100)})}function hx(e){const r=Jc([...e]),n=new Set(r),o=new Map(r.map(l=>[l._literalId,l])),i=new Ln(()=>null),a=r.reduce((l,s,c,d)=>(l.set(s,d.slice(c+1).filter(tB(s)).map(u=>(n.delete(u),u)).reduce((u,p)=>(u.some(Yn(p))||(u.push(p),i.set(p,s)),u),[])),l),new Ln(()=>[]));return{sorted:r,byId:l=>gt(o.get(l),`Element not found by id: ${l}`),root:n,parent:l=>i.get(l),children:l=>a.get(l),flatten:()=>new Set([...n,...r.reduce((l,s)=>{const c=a.get(s);return c.length===0?(l.push(s),l):(c.length>1&&l.push(...c),l)},[])])}}const J8=(e,r)=>e.size>2&&r.size!==e.size?new Set(Jc([...hx(e).flatten(),...r])):e.size>1?new Set(Jc([...e])):e;function KO(e,r,n){const o=c=>r.has(c);let i=new Set([e]);const a={incomers:new Set,subjects:new Set([e]),outgoers:new Set};let l=new Set(n.incoming.flatMap(c=>{if(a.subjects.add(c.target),a.incomers.add(c.source),i.add(c.target),c.target!==e){let p=c.target.parent;for(;p&&p!==e;)i.add(p),p=p.parent}let d=c.source;const u=[];for(;u.push(d),!(o(d)||!d.parent);)d=d.parent;return u})),s=new Set(n.outgoing.flatMap(c=>{if(a.subjects.add(c.source),a.outgoers.add(c.target),i.add(c.source),c.source!==e){let p=c.source.parent;for(;p&&p!==e;)i.add(p),p=p.parent}let d=c.target;const u=[];for(;u.push(d),!(o(d)||!d.parent);)d=d.parent;return u}));return{incomers:J8(l,a.incomers),incoming:new Set(n.incoming),subjects:J8(i,a.subjects),outgoing:new Set(n.outgoing),outgoers:J8(s,a.outgoers)}}function ZO(e,r,n,o="global"){const i=n?r.findView(n):null;if(o==="view")return He(i,'Scope view id is required when scope is "view"'),P5e(e,i,r);const a=r.element(e),l=T5e(a.ascendingSiblings());return KO(a,l,{incoming:[...a.incoming()],outgoing:[...a.outgoing()]})}function P5e(e,r,n){const o=n.element(e);let i={incoming:C1(Is(o.incoming(),s=>r.includesRelation(s.id))),outgoing:C1(Is(o.outgoing(),s=>r.includesRelation(s.id)))};const a=tB(o),l=new Set([...o.ascendingSiblings(),...Ns(r.elements(),z5e(s=>s.element),Is(s=>s!==o&&a(s)))]);return KO(o,l,i)}var QO;(e=>{e.isInside=r=>n=>Yn(r,n.source.id)&&Yn(r,n.target.id),e.isDirectedBetween=(r,n)=>o=>(o.source.id===r||Yn(r,o.source.id))&&(o.target.id===n||Yn(n,o.target.id)),e.isAnyBetween=(r,n)=>{const o=(0,e.isDirectedBetween)(r,n),i=(0,e.isDirectedBetween)(n,r);return a=>o(a)||i(a)},e.isIncoming=r=>n=>(n.target.id===r||Yn(r,n.target.id))&&!Yn(r,n.source.id),e.isOutgoing=r=>n=>(n.source.id===r||Yn(r,n.source.id))&&!Yn(r,n.target.id),e.isAnyInOut=r=>{const n=(0,e.isIncoming)(r),o=(0,e.isOutgoing)(r);return i=>n(i)||o(i)}})(QO||(QO={}));const M5e=Symbol.for("nodejs.util.inspect.custom");function $1(e){return e===""||e===void 0?!0:Array.isArray(e)?e.length===0:Object.keys(e).length===0}function e7(...e){return ao(N5e,e)}function N5e(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 B5e(e,r);if(e instanceof Set&&r instanceof Set)return I5e(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]:i}=e,{[o]:a}=r;if(i!==a||!Object.is(i,a))return!1}return!0}function B5e(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e){let i=r.get(n);if(o!==i||!Object.is(o,i))return!1}return!0}function I5e(e,r){if(e.size!==r.size)return!1;for(let n of e)if(!r.has(n))return!1;return!0}class JO{Aux;get style(){return ar(this,"style",()=>_1({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 Jm(this.id)}get shape(){return this.style.shape}get color(){return this.style.color}get icon(){return this.style.icon??null}get summary(){return ur.memoize(this,"summary",Fs(this.$node))}get description(){return ur.memoize(this,"description",Xh(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=t1(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 ar(this,Symbol.for("allOutgoing"),()=>od.from(new Set(this.outgoingModelRelationships()),new Set(this.outgoing())))}get allIncoming(){return ar(this,Symbol.for("allIncoming"),()=>od.from(new Set(this.incomingModelRelationships()),new Set(this.incoming())))}hasMetadata(){return!!this.$node.metadata&&!$1(this.$node.metadata)}getMetadata(r){return r?this.$node.metadata?.[r]:this.$node.metadata??{}}isTagged(r){return this.tags.includes(r)}}class eL extends JO{constructor(r,n){super(),this.$model=r,this.$node=n,this.id=n.id,this._literalId=n.id,this.title=n.title,this.hierarchyLevel=Tb(n.id)}id;_literalId;title;hierarchyLevel;get parent(){return this.$model.parent(this)}get kind(){return this.$node.kind}get tags(){return ar(this,Symbol.for("tags"),()=>Zb([...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=g1(r);return n?n.isInstance()?n:n.onlyOneInstance():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 i of o.element.outgoing())r.add(i);for(const i of o.element.incoming())n.add(i)}return this._relationshipsFromInstances}outgoingModelRelationships(){return this.relationshipsFromInstances().outgoing.values()}incomingModelRelationships(){return this.relationshipsFromInstances().incoming.values()}internalModelRelationships(){const{outgoing:r,incoming:n}=this.relationshipsFromInstances();return Hh(n,r)}}class tL extends JO{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=Tb(n.id)}id;_literalId;title;hierarchyLevel;get $node(){return this.$instance}get parent(){return gt(this.$model.parent(this),`Parent of ${this.id} not found`)}get style(){return ar(this,"style",()=>_1({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 ar(this,Symbol.for("tags"),()=>Zb([...this.$instance.tags??[],...this.element.tags]))}get kind(){return this.element.kind}get summary(){return ur.memoize(this,"summary",Fs(this.$instance)??Fs(this.element.$element))}get description(){return ur.memoize(this,"description",Xh(this.$instance)??Xh(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 O5e{constructor(r,n){this.instance=r,this.element=n}get id(){return this.instance.id}get _literalId(){return this.instance.id}get style(){return ar(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 L5e{constructor(r,n){this.$model=r,this.$relationship=n,this.source=r.deploymentRef(n.source),this.target=r.deploymentRef(n.target);const o=t1(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 Ji(this.$relationship.title)?this.$relationship.title:null}get technology(){return this.$relationship.technology??null}get hasSummary(){return!!this.$relationship.summary&&!!this.$relationship.description&&!e7(this.$relationship.summary,this.$relationship.description)}get summary(){return ur.memoize(this,"summary",Fs(this.$relationship))}get description(){return ur.memoize(this,"description",Xh(this.$relationship))}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&&!$1(this.$relationship.metadata)}getMetadata(r){return r?this.$relationship.metadata?.[r]:this.$relationship.metadata??{}}isTagged(r){return this.tags.includes(r)}}class od{constructor(r=new Set,n=new Set){this.model=r,this.deployment=n}static empty(){return new od}static from(r,n){return new od(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 od.from(Hh(this.model,r.model),Hh(this.deployment,r.deployment))}difference(r){return od.from(E8(this.model,r.model),E8(this.deployment,r.deployment))}union(r){return od.from(S8(this.model,r.model),S8(this.deployment,r.deployment))}}function rL(e,r){return n=>e.source===n.source&&e.target===n.target}function t7(e,r,n="directed"){if(e===r)return[];if(eB(e,r))return[];const o=Hh(e.allOutgoing,r.allIncoming),i=o.size>0?new ea(e,r,o):null;if(n==="directed")return i?[i]:[];const a=Hh(e.allIncoming,r.allOutgoing),l=a.size>0?new ea(r,e,a):null;return i&&l?[i,l]:i?[i]:l?[l]:[]}function nL(e,r,n="both"){if(e.allIncoming.size===0&&e.allOutgoing.size===0)return[];const o=[],i=[];for(const a of r)if(e!==a)for(const l of t7(e,a,n))l.source===e?o.push(l):i.push(l);return[...o,...i]}function F5e(e){return[...e].reduce((r,n,o,i)=>(o===i.length-1||r.push(...nL(n,i.slice(o+1),"both")),r),[])}const V5e={__proto__:null,findConnection:t7,findConnectionsBetween:nL,findConnectionsWithin:F5e};class ea{constructor(r,n,o=new Set){this.source=r,this.target=n,this.relations=o,this.id=R5e(`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()&&YO(this.relations,sO(rL(this)))}get directRelations(){return new Set(Is(this.relations,rL(this)))}nonEmpty(){return this.relations.size>0}mergeWith(r){return He(this.source.id===r.source.id,"Cannot merge connections with different sources"),He(this.target.id===r.target.id,"Cannot merge connections with different targets"),new ea(this.source,this.target,S8(this.relations,r.relations))}difference(r){return new ea(this.source,this.target,E8(this.relations,r.relations))}intersect(r){return He(r instanceof ea,"Cannot intersect connection with different type"),new ea(this.source,this.target,Hh(this.relations,r.relations))}equals(r){He(r instanceof ea,"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&&A4e(this.relations,n.relations)}update(r){return new ea(this.source,this.target,r)}[M5e](r,n,o){const i=this.toString();return Object.defineProperty(i,"constructor",{value:ea,enumerable:!1}),i}toString(){return[this.expression,this.relations.size?" relations:":" relations: [ ]",...[...this.relations].map(r=>" "+r.expression)].join(` +`)}reversed(r=!1){if(!r)return new ea(this.target,this.source);const[n]=t7(this.target,this.source,"directed");return n??new ea(this.target,this.source,new Set)}}function q5e(e){if(e==null||e==="")return!0;if(typeof e!="object")return!1;if("length"in e&&typeof e.length=="number")return e.length===0;if("size"in e&&typeof e.size=="number")return e.size===0;for(let r in e)return!1;return Object.getOwnPropertySymbols(e).length===0}function H5e(...e){return ao(U5e,e)}const U5e=e=>e.at(-1);function oL(e,r,n){return typeof r=="number"||r===void 0?o=>o.split(e,r):e.split(r,n)}function fx(...e){return ao(Object.values,e)}class gx{constructor(r,n){this.$model=r,this.$element=n,this.id=this.$element.id,this._literalId=this.$element.id;const[o,i]=y5e(this.id);o?(this.imported={from:o,fqn:i},this.hierarchyLevel=Tb(i)):(this.imported=null,this.hierarchyLevel=Tb(this.id))}Aux;id;_literalId;hierarchyLevel;imported;get name(){return Jm(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 ar(this,Symbol.for("tags"),()=>Zb([...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&&!e7(this.$element.summary,this.$element.description)}get summary(){return ur.memoize(this,"summary",Fs(this.$element))}get description(){return ur.memoize(this,"description",Xh(this.$element))}get technology(){return this.$element.technology??null}get links(){return this.$element.links??[]}get defaultView(){return ar(this,Symbol.for("defaultView"),()=>g1(this.scopedViews())??null)}get isRoot(){return this.parent===null}get style(){return ar(this,"style",()=>_1({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 Yn(this,r)}isDescendantOf(r){return Yn(r,this)}ancestors(){return this.$model.ancestors(this)}commonAncestor(r){const n=t1(this.id,r.id);return n?this.$model.element(n):null}children(){return this.$model.children(this)}descendants(r){return r?rB([...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 ar(this,Symbol.for("allOutgoing"),()=>new Set(this.outgoing()))}get allIncoming(){return ar(this,Symbol.for("allIncoming"),()=>new Set(this.incoming()))}views(){return ar(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 ar(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 Ji(g1(this.deployments()))}deployments(){return this.$model.deployment.instancesOf(this)}hasMetadata(){return!!this.$element.metadata&&!$1(this.$element.metadata)}getMetadata(r){return r?this.$element.metadata?.[r]:this.$element.metadata??{}}isTagged(r){return this.tags.includes(r)}}const yr=e=>typeof e=="string"?e:e.id,_i="/",r7=e=>{if(He(!e.includes(` +`),"View title cannot contain newlines"),e.includes(_i)){const r=e.split(_i).map(n=>n.trim()).filter(n=>n.length>0);return Ll(r,1)?r:[""]}return[e.trim()]},mx=e=>r7(e).join(_i),W5e=e=>{const r=r7(e);return Ll(r,2)?r.slice(0,-1).join(_i):null},n7=e=>e.includes(_i)?r7(e).pop()??e:e.trim();class G5e{constructor(r){this.$model=r;const n=this.$deployments=r.$data.deployments,o=fx(n.elements);for(const i of Jc(o)){const a=this.addElement(i);for(const l of a.tags)this.#c.get(l).add(a);a.isInstance()&&this.#r.get(a.element.id).add(a)}for(const i of fx(n.relations)){const a=this.addRelation(i);for(const l of a.tags)this.#c.get(l).add(a)}}#e=new Map;#a=new Map;#t=new Ln(()=>new Set);#r=new Ln(()=>new Set);#l=new Set;#n=new Map;#s=new Ln(()=>new Set);#i=new Ln(()=>new Set);#o=new Ln(()=>new Set);#c=new Ln(()=>new Set);#d=new Map;$deployments;get $styles(){return this.$model.$styles}element(r){if(r instanceof eL||r instanceof tL)return r;const n=yr(r);return gt(this.#e.get(n),`Element ${n} not found`)}findElement(r){return this.#e.get(r)??null}node(r){const n=this.element(r);return He(n.isDeploymentNode(),`Element ${n.id} is not a deployment node`),n}findNode(r){const n=this.findElement(r);return n?(He(n.isDeploymentNode(),`Element ${n?.id} is not a deployment node`),n):null}instance(r){const n=this.element(r);return He(n.isInstance(),`Element ${n.id} is not a deployed instance`),n}findInstance(r){const n=this.findElement(r);return n?(He(n.isInstance(),`Element ${n?.id} is not a deployed instance`),n):null}roots(){return this.#l.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=yr(r),o=this.#r.get(n);o&&(yield*o)}deploymentRef(r){if(S1.isInsideInstanceRef(r)){const{deployment:n,element:o}=r;return $5e(this.#d,`${n}@${o}`,()=>new O5e(this.instance(n),this.$model.element(o)))}return this.element(r.deployment)}relationships(){return this.#n.values()}relationship(r){const n=yr(r);return gt(this.#n.get(n),`DeploymentRelationModel ${n} 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=yr(r);return this.#a.get(n)||null}children(r){const n=yr(r);return this.#t.get(n)}*siblings(r){const n=yr(r),o=this.parent(r)?.children()??this.roots();for(const i of o)i.id!==n&&(yield i)}*ancestors(r){let n=yr(r),o;for(;o=this.#a.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=yr(r);for(const i of this.#s.get(o))switch(!0){case n==="all":case(n==="direct"&&i.target.id===o):case(n==="to-descendants"&&i.target.id!==o):yield i;break}}*outgoing(r,n="all"){const o=yr(r);for(const i of this.#i.get(o))switch(!0){case n==="all":case(n==="direct"&&i.source.id===o):case(n==="from-descendants"&&i.source.id!==o):yield i;break}}addElement(r){if(this.#e.has(r.id))throw new Error(`Element ${r.id} already exists`);const n=v4e(r)?new eL(this,Object.freeze(r)):new tL(this,Object.freeze(r),this.$model.element(r.element));this.#e.set(n.id,n);const o=zb(n.id);return o?(He(this.#e.has(o),`Parent ${o} of ${n.id} not found`),this.#a.set(n.id,this.node(o)),this.#t.get(o).add(n)):(He(n.isDeploymentNode(),`Root element ${n.id} is not a deployment node`),this.#l.add(n)),n}addRelation(r){if(this.#n.has(r.id))throw new Error(`Relation ${r.id} already exists`);const n=new L5e(this,Object.freeze(r));this.#n.set(n.id,n),this.#s.get(n.target.id).add(n),this.#i.get(n.source.id).add(n);const o=n.boundary?.id??null;if(o)for(const i of[o,...Du(o)])this.#o.get(i).add(n);for(const i of Du(n.source.id)){if(i===o)break;this.#i.get(i).add(n)}for(const i of Du(n.target.id)){if(i===o)break;this.#s.get(i).add(n)}return n}}class iL{constructor(r,n){this.model=r,this.$relationship=n,this.source=r.element(S1.flatten(n.source)),this.target=r.element(S1.flatten(n.target));const o=t1(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 Ji(this.$relationship.title)?this.$relationship.title:null}get technology(){return Ji(this.$relationship.technology)?this.$relationship.technology:null}get hasSummary(){return!!this.$relationship.summary&&!!this.$relationship.description&&!e7(this.$relationship.summary,this.$relationship.description)}get summary(){return ur.memoize(this,"summary",Fs(this.$relationship))}get description(){return ur.memoize(this,"description",Xh(this.$relationship))}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&&!$1(this.$relationship.metadata)}getMetadata(r){return r?this.$relationship.metadata?.[r]:this.$relationship.metadata??{}}isTagged(r){return this.tags.includes(r)}}class Y5e{constructor(r,n,o,i){this.source=o,this.target=i,this.$viewModel=r,this.$view=r.$view,this.$edge=n}Aux;$viewModel;$view;$edge;get id(){return this.$edge.id}get parent(){return this.$edge.parent?this.$viewModel.node(this.$edge.parent):null}get label(){return this.$edge.label??null}get description(){return ur.memoize(this,"description",this.$edge.description)}get technology(){return this.$edge.technology??null}hasParent(){return this.$edge.parent!==null}get tags(){return this.$edge.tags??[]}get stepNumber(){return this.isStep()?IO(this.id):null}get navigateTo(){return this.$edge.navigateTo?this.$viewModel.$model.view(this.$edge.navigateTo):null}get color(){return this.$edge.color}get line(){return this.$edge.line??this.$viewModel.$styles.defaults.relationship.line}get head(){return this.$edge.head??this.$viewModel.$styles.defaults.relationship.arrow}get tail(){return this.$edge.tail}isStep(){return k1(this.id)}*relationships(r){for(const n of this.$edge.relations)if(r){const o=this.$viewModel.$model.findRelationship(n,r);o&&(yield o)}else yield this.$viewModel.$model.relationship(n)}includesRelation(r){const n=typeof r=="string"?r:r.id;return this.$edge.relations.includes(n)}isTagged(r){return this.tags.includes(r)}}class X5e{Aux;$viewModel;$view;$node;constructor(r,n){this.$viewModel=r,this.$view=r.$view,this.$node=n}get id(){return this.$node.id}get title(){return this.$node.title}get kind(){return this.$node.kind}get description(){return ur.memoize(this,"description",this.$node.description)}get technology(){return this.$node.technology??null}get parent(){return this.$node.parent?this.$viewModel.node(this.$node.parent):null}get element(){const r=this.$node.modelRef;return r?this.$viewModel.$model.element(r):null}get deployment(){const r=this.$node.deploymentRef;return r?this.$viewModel.$model.deployment.element(r):null}get shape(){return this.$node.shape}get color(){return this.$node.color}get icon(){return this.$node.icon??null}get tags(){return this.$node.tags}get links(){return this.$node.links??[]}get navigateTo(){return this.$node.navigateTo?this.$viewModel.$model.view(this.$node.navigateTo):null}get style(){return this.$node.style}get x(){return"x"in this.$node?this.$node.x:void 0}get y(){return"y"in this.$node?this.$node.y:void 0}get width(){return"width"in this.$node?this.$node.width:void 0}get height(){return"height"in this.$node?this.$node.height:void 0}children(){return ar(this,"children",()=>new Set(this.$node.children.map(r=>this.$viewModel.node(r))))}*ancestors(){let r=this.parent;for(;r;)yield r,r=r.parent}*siblings(){const r=this.parent?.children()??this.$viewModel.roots();for(const n of r)n.id!==this.id&&(yield n)}*incoming(r="all"){for(const n of this.$node.inEdges){const o=this.$viewModel.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.$node.outEdges){const o=this.$viewModel.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)}isLayouted(){return"width"in this.$node&&"height"in this.$node}hasChildren(){return this.$node.children.length>0}hasParent(){return this.$node.parent!==null}hasElement(){return Ji(this.$node.modelRef)}hasDeployment(){return Ji(this.$node.deploymentRef)}hasDeployedInstance(){return this.hasElement()&&this.hasDeployment()}isGroup(){return g5e(this.$node)}isTagged(r){return this.tags.includes(r)}}class o7{Aux;#e;#a=new Set;#t=new Map;#r=new Map;#l=new Set;#n=new Set;#s=new Set;#i=new Ln(r=>new Set);#o;id;$model;title;folder;viewPath;constructor(r,n,o,i){this.$model=r,this.#e=o,this.id=o.id,this.folder=n,this.#o=i;for(const a of this.#e.nodes){const l=new X5e(this,Object.freeze(a));this.#t.set(a.id,l),a.parent||this.#a.add(l),a.deploymentRef&&this.#n.add(a.deploymentRef),a.modelRef&&this.#l.add(a.modelRef);for(const s of l.tags)this.#i.get(s).add(l)}for(const a of this.#e.edges){const l=new Y5e(this,Object.freeze(a),this.node(a.source),this.node(a.target));for(const s of l.tags)this.#i.get(s).add(l);for(const s of a.relations)this.#s.add(s);this.#r.set(a.id,l)}this.title=o.title?n7(o.title):null,this.viewPath=o.title?mx(o.title):o.id}get $styles(){return this.$model.$styles}get _type(){return this.#e[h1]}get stage(){return this.#e[Iu]}get bounds(){if("bounds"in this.#e)return this.#e.bounds;if(this.#o)return this.#o.bounds;throw new Error("View is not layouted")}get titleOrId(){return this.title??this.viewOf?.title??this.id}get titleOrUntitled(){return this.title??"Untitled"}get breadcrumbs(){return ar(this,"breadcrumbs",()=>this.folder.isRoot?[this]:[...this.folder.breadcrumbs,this])}get description(){return ur.memoize(this,"description",this.#e.description)}get tags(){return this.#e.tags??[]}get links(){return this.#e.links??[]}get viewOf(){if(this.isElementView()){const r=this.#e.viewOf;return r?this.$model.element(r):null}return null}get mode(){return this.isDynamicView()?this.#e.variant??"diagram":null}get includedTags(){return[...this.#i.keys()]}get $view(){if(!this.isLayouted()||"drifts"in this.#e)return this.#e;const r=this.#o;return r?ar(this,"withDriftReasons",()=>f5e(this.#e,r)):this.#e}get $layouted(){if(!this.isLayouted())throw new Error("View is not layouted");return this.$manual??this.#e}get hasManualLayout(){return this.#o!==void 0}get hasLayoutDrifts(){if(!this.isLayouted())return!1;const r=this.$manual;return!!r?.drifts&&r.drifts.length>0}get $manual(){if(!this.isLayouted())return null;const r=this.#o;return r?ar(this,"snapshotWithManualLayout",()=>NO(this.#e,r)):null}roots(){return this.#a.values()}*compounds(){for(const r of this.#t.values())r.hasChildren()&&(yield r)}node(r){const n=yr(r);return gt(this.#t.get(n),`Node ${n} not found in view ${this.#e.id}`)}findNode(r){return this.#t.get(yr(r))??null}findNodeWithElement(r){const n=yr(r);return this.#l.has(n)?E1(this.#t.values(),o=>o.hasElement()&&o.element.id===n)??null:null}nodes(){return this.#t.values()}edge(r){const n=yr(r);return gt(this.#r.get(n),`Edge ${n} not found in view ${this.#e.id}`)}findEdge(r){return this.#r.get(yr(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.#l.has(yr(r))}includesDeployment(r){return this.#n.has(yr(r))}includesRelation(r){return this.#s.has(yr(r))}isComputed(){return this.#e[Iu]==="computed"}isLayouted(){return this.#e[Iu]==="layouted"}isDiagram(){return this.#e[Iu]==="layouted"}isElementView(){return this.#e[h1]==="element"}isScopedElementView(){return this.#e[h1]==="element"&&Ji(this.#e.viewOf)}isDeploymentView(){return this.#e[h1]==="deployment"}isDynamicView(){return this.#e[h1]==="dynamic"}}class yx{$model;path;title;isRoot;parentPath;defaultViewId;constructor(r,n,o){this.$model=r,this.path=n.join("/"),this.isRoot=this.path==="",this.title=H5e(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 He(!this.isRoot,"Root view folder has no breadcrumbs"),ar(this,"breadcrumbs",()=>{const r=this.parent;return r?r.isRoot?[r,this]:[...r.breadcrumbs,this]:[this]})}get parent(){return He(!this.isRoot,"Root view folder has no parent"),q5e(this.parentPath)?null:this.$model.viewFolder(this.parentPath)}get children(){return this.$model.viewFolderItems(this.path)}get folders(){return ar(this,"folders",()=>{const r=[];for(const n of this.children)n instanceof yx&&r.push(n);return r})}get views(){return ar(this,"views",()=>{const r=[];for(const n of this.children)n instanceof o7&&r.push(n);return r})}}class Fu{Aux;_elements=new Map;_parents=new Map;_children=new Ln(()=>new Set);_rootElements=new Set;_relations=new Map;_incoming=new Ln(()=>new Set);_outgoing=new Ln(()=>new Set);_internal=new Ln(()=>new Set);_views=new Map;_rootViewFolder;_viewFolders=new Map;_viewFolderItems=new Ln(()=>new Set);_allTags=new Ln(()=>new Set);static fromParsed(r){return new Fu(r)}static create(r){return new Fu(r)}static fromDump(r){const{_stage:n="layouted",projectId:o="unknown",project:i,globals:a,imports:l,deployments:s,views:c,relations:d,elements:u,specification:p}=r;return new Fu({[Iu]:n,projectId:o,project:i,globals:{predicates:a?.predicates??{},dynamicPredicates:a?.dynamicPredicates??{},styles:a?.styles??{}},imports:l??{},deployments:{elements:s?.elements??{},relations:s?.relations??{}},views:c??{},relations:d??{},elements:u??{},specification:p})}deployment;$data;constructor(r){this.$data=r;for(const[,n]of f1(r.elements)){const o=this.addElement(n);for(const i of o.tags)this._allTags.get(i).add(o)}for(const[n,o]of f1(r.imports??{}))for(const i of Jc(o)){const a=this.addImportedElement(n,i);for(const l of a.tags)this._allTags.get(l).add(a)}for(const n of fx(r.relations)){const o=this.addRelation(n);for(const i of o.tags)this._allTags.get(i).add(o)}if(this.deployment=new G5e(this),cO(r,"computed")||cO(r,"layouted")){const n=JN(_i),o=Ns(fx(r.views),Kb(a=>({view:a,path:mx(a.title??a.id),folderPath:a.title&&W5e(a.title)||""})),Q8((a,l)=>n(a.folderPath,l.folderPath))),i=a=>{let l=this._viewFolders.get(a);if(!l){const s=oL(a,_i);He(Ll(s,1),`View group path "${a}" must have at least one element`);let c;a===""?c=o.find(d=>d.view.id==="index"):c=o.find(d=>d.path===a),l=new yx(this,s,c?.view.id),this._viewFolders.set(a,l)}return l};this._rootViewFolder=i("");for(const{folderPath:a}of o)this._viewFolders.has(a)||oL(a,_i).reduce((l,s)=>{const c=l.join(_i),d=$1(c)?s:c+_i+s,u=i(d);return this._viewFolderItems.get(c).add(u),l.push(s),l},[]);for(const{view:a,folderPath:l}of o){const s=new o7(this,i(l),a,r.manualLayouts?.[a.id]);this._viewFolderItems.get(l).add(s),this._views.set(a.id,s);for(const c of s.tags)this._allTags.get(c).add(s)}}else this._rootViewFolder=new yx(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 ar(this,"styles",()=>XN.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[Iu]}get projectId(){return this.$data.projectId??"default"}get project(){return this.$data.project??ar(this,Symbol.for("project"),()=>({id:this.projectId}))}get specification(){return this.$data.specification}get globals(){return ar(this,Symbol.for("globals"),()=>({predicates:{...this.$data.globals?.predicates},dynamicPredicates:{...this.$data.globals?.dynamicPredicates},styles:{...this.$data.globals?.styles}}))}element(r){if(r instanceof gx)return r;const n=yr(r);return gt(this._elements.get(n),`Element ${n} not found`)}findElement(r){return this._elements.get(yr(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=yr(r);let i=this._relations.get(o)??null;return i||n==="model"?gt(i,`Model relation ${o} not found`):gt(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(yr(r))??null;return o||n==="model"?o:this.deployment.findRelationship(r)}views(){return this._views.values()}view(r){const n=yr(r);return gt(this._views.get(n),`View ${n} not found`)}findView(r){return this._views.get(r)??null}findManualLayout(r){return"manualLayouts"in this.$data?this.$data.manualLayouts?.[r]??null:null}viewFolder(r){return gt(this._viewFolders.get(r),`View folder ${r} not found`)}get rootViewFolder(){return this._rootViewFolder}get hasViewFolders(){return this._viewFolders.size>1}viewFolderItems(r){return He(this._viewFolders.has(r),`View folder ${r} not found`),this._viewFolderItems.get(r)}parent(r){const n=yr(r);return this._parents.get(n)||null}children(r){const n=yr(r);return this._children.get(n)}*siblings(r){const n=yr(r),o=this._parents.get(n),i=o?this._children.get(o.id).values():this.roots();for(const a of i)a.id!==n&&(yield a)}*ancestors(r){let n=yr(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=yr(r);for(const i of this._incoming.get(o))switch(!0){case n==="all":case(n==="direct"&&i.target.id===o):case(n==="to-descendants"&&i.target.id!==o):yield i;break}}*outgoing(r,n="all"){const o=yr(r);for(const i of this._outgoing.get(o))switch(!0){case n==="all":case(n==="direct"&&i.source.id===o):case(n==="from-descendants"&&i.source.id!==o):yield i;break}}get tags(){return ar(this,"tags",()=>Q8([...this._allTags.keys()],Rb))}get tagsSortedByUsage(){return ar(this,"tagsSortedByUsage",()=>Ns([...this._allTags.entries()],Kb(([r,n])=>({tag:r,count:n.size,tagged:n})),Q8((r,n)=>Rb(r.tag,n.tag)),vO([Lu("count"),"desc"])))}findByTag(r,n){return Is(this._allTags.get(r),o=>n==="elements"?o instanceof gx:n==="views"?o instanceof o7:n==="relationships"?o instanceof iL:!0)}*elementsOfKind(r){for(const n of this._elements.values())n.kind===r&&(yield n)}*elementsWhere(r){const n=Ou(r);for(const o of this._elements.values())n(o)&&(yield o)}*relationshipsWhere(r){const n=Ou(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 gx(this,Object.freeze(r));this._elements.set(n.id,n);const o=zb(n.id);return o?(He(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){He(!m5e(n.id),"Imported element already has global FQN");const o=BO(r,n.id);if(this._elements.has(o))throw new Error(`Element ${o} already exists`);const i=new gx(this,Object.freeze({...n,id:o}));this._elements.set(i.id,i);let a=zb(i.id);for(;a;){if(a.includes(".")&&this._elements.has(a))return this._parents.set(i.id,this.element(a)),this._children.get(a).add(i),i;a=zb(a)}return this._rootElements.add(i),i}addRelation(r){if(this._relations.has(r.id))throw new Error(`Relation ${r.id} already exists`);const n=new iL(this,Object.freeze(r)),{source:o,target:i}=n;this._relations.set(n.id,n),this._incoming.get(i.id).add(n),this._outgoing.get(o.id).add(n);const a=t1(o.id,i.id);if(a)for(const l of[a,...Du(a)])this._internal.get(l).add(n);for(const l of Du(o.id)){if(l===a)break;this._outgoing.get(l).add(n)}for(const l of Du(i.id)){if(l===a)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:{}})})(Fu||(Fu={}));function vx(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)}var K5e=e=>typeof e=="object"&&e!==null;function Vu(e){return Object.fromEntries(Object.entries(e??{}).filter(([r,n])=>n!==void 0))}var Z5e=e=>e==="base";function Q5e(e){return e.slice().filter(r=>!Z5e(r))}function aL(e){return String.fromCharCode(e+(e>25?39:97))}function J5e(e){let r="",n;for(n=Math.abs(e);n>52;n=n/52|0)r=aL(n%52)+r;return aL(n%52)+r}function eke(e,r){let n=r.length;for(;n;)e=e*33^r.charCodeAt(--n);return e}function tke(e){return J5e(eke(5381,e)>>>0)}var lL=/\s*!(important)?/i;function rke(e){return typeof e=="string"?lL.test(e):!1}function nke(e){return typeof e=="string"?e.replace(lL,"").trim():e}function i7(e){return typeof e=="string"?e.replaceAll(" ","_"):e}var Kn=e=>{const r=new Map;return(...n)=>{const o=JSON.stringify(n);if(r.has(o))return r.get(o);const i=e(...n);return r.set(o,i),i}},oke=new Set(["__proto__","constructor","prototype"]);function a7(...e){return e.reduce((r,n)=>(n&&Object.keys(n).forEach(o=>{if(oke.has(o))return;const i=r[o],a=n[o];vx(i)&&vx(a)?r[o]=a7(i,a):r[o]=a}),r),{})}var ike=e=>e!=null;function l7(e,r,n={}){const{stop:o,getKey:i}=n;function a(l,s=[]){if(K5e(l)){const c={};for(const[d,u]of Object.entries(l)){const p=i?.(d,u)??d,f=[...s,p];if(o?.(l,f))return r(l,s);const m=a(u,f);ike(m)&&(c[p]=m)}return c}return r(l,s)}return a(e)}function ake(e,r){return Array.isArray(e)?e.map(n=>r(n)):vx(e)?l7(e,n=>r(n)):r(e)}function lke(e,r){return e.reduce((n,o,i)=>{const a=r[i];return o!=null&&(n[a]=o),n},{})}function sL(e,r,n=!0){const{utility:o,conditions:i}=r,{hasShorthand:a,resolveShorthand:l}=o;return l7(e,s=>Array.isArray(s)?lke(s,i.breakpoints.keys):s,{stop:s=>Array.isArray(s),getKey:n?s=>a?l(s):s:void 0})}var ske={shift:e=>e,finalize:e=>e,breakpoints:{keys:[]}},cke=e=>typeof e=="string"?e.replaceAll(/[\n\s]+/g," "):e;function cL(e){const{utility:r,hash:n,conditions:o=ske}=e,i=l=>[r.prefix,l].filter(Boolean).join("-"),a=(l,s)=>{let c;if(n){const d=[...o.finalize(l),s];c=i(r.toHash(d,tke))}else c=[...o.finalize(l),i(s)].join(":");return c};return Kn(({base:l,...s}={})=>{const c=Object.assign(s,l),d=sL(c,e),u=new Set;return l7(d,(p,f)=>{if(p==null)return;const m=rke(p),[v,...w]=o.shift(f),x=Q5e(w),k=r.transform(v,nke(cke(p)));let C=a(x,k.className);m&&(C=`${C}!`),u.add(C)}),Array.from(u).join(" ")})}function dke(...e){return e.flat().filter(r=>vx(r)&&Object.keys(Vu(r)).length>0)}function uke(e){function r(i){const a=dke(...i);return a.length===1?a:a.map(l=>sL(l,e))}function n(...i){return a7(...r(i))}function o(...i){return Object.assign({},...r(i))}return{mergeCss:Kn(n),assignCss:o}}var pke=/([A-Z])/g,hke=/^ms-/,fke=Kn(e=>e.startsWith("--")?e:e.replace(pke,"-$1").replace(hke,"-ms-").toLowerCase()),gke=["min","max","clamp","calc"],mke=new RegExp(`^(${gke.join("|")})\\(.*\\)`),yke=e=>typeof e=="string"&&mke.test(e),vke="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,%",bke=`(?:${vke.split(",").join("|")})`,xke=new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${bke}$`),wke=e=>typeof e=="string"&&xke.test(e),kke=e=>typeof e=="string"&&/^var\(--.+\)$/.test(e),R1={map:ake,isCssFunction:yke,isCssVar:kke,isCssUnit:wke},z1=(e,r)=>{if(!e?.defaultValues)return r;const n=typeof e.defaultValues=="function"?e.defaultValues(r):e.defaultValues;return Object.assign({},n,Vu(r))},_ke=(e={})=>{const r=o=>({className:[e.className,o].filter(Boolean).join("__"),base:e.base?.[o]??{},variants:{},defaultVariants:e.defaultVariants??{},compoundVariants:e.compoundVariants?s7(e.compoundVariants,o):[]}),n=(e.slots??[]).map(o=>[o,r(o)]);for(const[o,i]of Object.entries(e.variants??{}))for(const[a,l]of Object.entries(i))n.forEach(([s,c])=>{c.variants[o]??={},c.variants[o][a]=l[s]??{}});return Object.fromEntries(n)},s7=(e,r)=>e.filter(n=>n.css[r]).map(n=>({...n,css:n.css[r]}));function Fn(e,...r){const n=Object.getOwnPropertyDescriptors(e),o=Object.keys(n),i=l=>{const s={};for(let c=0;ci(Array.isArray(l)?l:o.filter(l));return r.map(a).concat(i(o))}var c7=(...e)=>{const r=e.reduce((n,o)=>(o&&o.forEach(i=>n.add(i)),n),new Set([]));return Array.from(r)},dL=["htmlSize","htmlTranslate","htmlWidth","htmlHeight"];function Ske(e){return dL.includes(e)?e.replace("html","").toLowerCase():e}function d7(e){return Object.fromEntries(Object.entries(e).map(([r,n])=>[Ske(r),n]))}d7.keys=dL;const Eke="_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,_whenSelectable,_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",uL=new Set(Eke.split(",")),Cke=/^@|&|&$/;function pL(e){return uL.has(e)||Cke.test(e)}const $ke=/^_/,Rke=/&|@/;function hL(e){return e.map(r=>uL.has(r)?r.replace($ke,""):Rke.test(r)?`[${i7(r.trim())}]`:r)}function fL(e){return e.sort((r,n)=>{const o=pL(r),i=pL(n);return o&&!i?1:!o&&i?-1:0})}const zke="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,WebkitTextFillColor:wktf-c,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",gL=new Map,mL=new Map;zke.split(",").forEach(e=>{const[r,n]=e.split(":"),[o,...i]=n.split("/");gL.set(r,o),i.length&&i.forEach(a=>{mL.set(a==="1"?o:a,r)})});const yL=e=>mL.get(e)||e,vL={conditions:{shift:fL,finalize:hL,breakpoints:{keys:["base","xs","sm","md","lg","xl"]}},utility:{transform:(e,r)=>{const n=yL(e);return{className:`${gL.get(n)||fke(n)}_${i7(r)}`}},hasShorthand:!0,toHash:(e,r)=>r(e.join(":")),resolveShorthand:yL}},Tke=cL(vL),fe=(...e)=>Tke(qu(...e));fe.raw=(...e)=>qu(...e);const{mergeCss:qu}=uke(vL);function Ge(){let e="",r=0,n;for(;r({base:{},variants:{},defaultVariants:{},compoundVariants:[],...e});function T1(e){const{base:r,variants:n,defaultVariants:o,compoundVariants:i}=bL(e),a=f=>({...o,...Vu(f)});function l(f={}){const m=a(f);let v={...r};for(const[x,k]of Object.entries(m))n[x]?.[k]&&(v=qu(v,n[x][k]));const w=u7(i,m);return qu(v,w)}function s(f){const m=bL(f.config),v=c7(f.variantKeys,Object.keys(n));return T1({base:qu(r,m.base),variants:Object.fromEntries(v.map(w=>[w,qu(n[w],m.variants[w])])),defaultVariants:a7(o,m.defaultVariants),compoundVariants:[...i,...m.compoundVariants]})}function c(f){return fe(l(f))}const d=Object.keys(n);function u(f){return Fn(f,d)}const p=Object.fromEntries(Object.entries(n).map(([f,m])=>[f,Object.keys(m)]));return Object.assign(Kn(c),{__cva__:!0,variantMap:p,variantKeys:d,raw:l,config:e,merge:s,splitVariantProps:u,getVariantProps:a})}function u7(e,r){let n={};return e.forEach(o=>{Object.entries(o).every(([i,a])=>i==="css"?!0:(Array.isArray(a)?a:[a]).some(l=>r[i]===l))&&(n=qu(n,o.css))}),n}function jke(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 Ake(e){const r=Object.entries(_ke(e)).map(([p,f])=>[p,T1(f)]),n=e.defaultVariants??{},o=r.reduce((p,[f,m])=>(e.className&&(p[f]=m.config.className),p),{});function i(p){const f=r.map(([m,v])=>[m,Ge(v(p),o[m])]);return Object.fromEntries(f)}function a(p){const f=r.map(([m,v])=>[m,v.raw(p)]);return Object.fromEntries(f)}const l=e.variants??{},s=Object.keys(l);function c(p){return Fn(p,s)}const d=p=>({...n,...Vu(p)}),u=Object.fromEntries(Object.entries(l).map(([p,f])=>[p,Object.keys(f)]));return Object.assign(Kn(i),{__cva__:!1,raw:a,config:e,variantMap:u,variantKeys:s,classNameMap:o,splitVariantProps:c,getVariantProps:d})}var Dke={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"}};const wt=(e,r,n,o)=>{const i=S.forwardRef(({color:a="currentColor",size:l=24,stroke:s=2,title:c,className:d,children:u,...p},f)=>S.createElement("svg",{ref:f,...Dke[e],width:l,height:l,className:["tabler-icon",`tabler-icon-${r}`,d].join(" "),...e==="filled"?{fill:a}:{strokeWidth:s,stroke:a},...p},[c&&S.createElement("title",{key:"svg-title"},c),...o.map(([m,v])=>S.createElement(m,v)),...Array.isArray(u)?u:[u]]));return i.displayName=`${n}`,i},Pke=[["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"}]],xL=wt("outline","cylinder","Cylinder",Pke),Mke=[["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"}]],Nke=wt("outline","rectangular-prism","RectangularPrism",Mke),Bke=[["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"}]],Ike=wt("outline","reorder","Reorder",Bke),Oke=[["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"}]],Lke=wt("outline","user","User",Oke),Fke=[["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"}]],Vke=wt("outline","device-mobile","DeviceMobile",Fke),qke=[["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"}]],Hke=wt("outline","browser","Browser",qke),p7=S.createContext(null);function Uke({value:e,children:r}){return S.useContext(p7)?y.jsx(y.Fragment,{children:r}):y.jsx(p7.Provider,{value:e,children:r})}function bx({element:e,className:r,style:n}){const o=S.useContext(p7);if(!e||!e.icon||e.icon==="none")return null;let i;return e.icon.startsWith("http://")||e.icon.startsWith("https://")?i=y.jsx("img",{src:e.icon,alt:e.title}):o&&(i=y.jsx(o,{node:e})),i?y.jsx("div",{className:Ge(r,"likec4-element-icon"),"data-likec4-icon":e.icon,style:n,children:i}):null}const Wke={browser:Hke,cylinder:xL,mobile:Vke,person:Lke,queue:Ike,rectangle:Nke,storage:xL};function Gke({element:e,className:r}){const n=y.jsx(bx,{element:e,className:r});if(n)return n;const o=Wke[e.shape];return y.jsx("div",{className:Ge(r,"likec4-shape-icon"),children:y.jsx(o,{})})}function Zh(e){const r=S.useRef(e);return r.current=e,S.useMemo(()=>Object.freeze({get current(){return r.current}}),[])}function wL(e){const r=Zh(e);S.useEffect(()=>()=>{r.current()},[])}function h7(e,r,n,o=0){const i=S.useRef(void 0),a=S.useRef(void 0),l=S.useRef(e),s=S.useRef(void 0),c=()=>{i.current&&(clearTimeout(i.current),i.current=void 0),a.current&&(clearTimeout(a.current),a.current=void 0)};return wL(c),S.useEffect(()=>{l.current=e},r),S.useMemo(()=>{const d=()=>{if(c(),!s.current)return;const p=s.current;s.current=void 0,l.current.apply(p.this,p.args)},u=function(...p){i.current&&clearTimeout(i.current),s.current={args:p,this:this},i.current=setTimeout(d,n),o>0&&!a.current&&(a.current=setTimeout(d,o))};return Object.defineProperties(u,{length:{value:e.length},name:{value:`${e.name||"anonymous"}__debounced__${n}`}}),u},[n,o,...r])}const Yke=()=>{},xx=typeof globalThis<"u"&&typeof navigator<"u"&&typeof document<"u";function Xke(e){const r=Zh(e),n=S.useRef(0),o=S.useCallback(()=>{xx&&n.current&&(cancelAnimationFrame(n.current),n.current=0)},[]);return wL(o),[S.useMemo(()=>{const i=(...a)=>{xx&&(o(),n.current=requestAnimationFrame(()=>{r.current(...a),n.current=0}))};return Object.defineProperties(i,{length:{value:e.length},name:{value:`${e.name||"anonymous"}__raf`}}),i},[]),o]}const Kke=(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 Zke(e,r,n=Kke,o=S.useEffect,...i){const a=S.useRef(void 0);(a.current===void 0||xx&&!n(a.current,r))&&(a.current=r),o(e,a.current,...i)}function kL(){const e=S.useRef(!0);return S.useEffect(()=>{e.current=!1},[]),e.current}const f7=xx?S.useLayoutEffect:S.useEffect;function Qke(e){S.useEffect(()=>{e()},[])}function _L(e,r){const[n,o]=Xke(e);S.useEffect(()=>(n(),o),r)}const Jke=e=>(e+1)%Number.MAX_SAFE_INTEGER;function e6e(){const[,e]=S.useState(0);return S.useCallback(()=>{e(Jke)},[])}function t6e(e,r){const n=kL();S.useEffect(n?Yke:e,r)}const r6e=e=>{e&&clearTimeout(e)};function wx(e,r){const n=Zh(e),o=Zh(r),i=S.useRef(null),a=S.useCallback(()=>{r6e(i.current)},[]),l=S.useCallback(()=>{o.current!==void 0&&(a(),i.current=setTimeout(()=>{n.current()},o.current))},[]);return S.useEffect(()=>(l(),a),[r]),[a,l]}const SL=(e,r,n)=>{const o=S.useRef(void 0);return(o.current===void 0||!n(o.current,r))&&(o.current=r),S.useMemo(e,o.current)};function dn(e){if(typeof e=="string"||typeof e=="number")return""+e;let r="";if(Array.isArray(e))for(let n=0,o;n{}};function kx(){for(var e=0,r=arguments.length,n={},o;e=0&&(o=n.slice(i+1),n=n.slice(0,i)),n&&!r.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:o}})}_x.prototype=kx.prototype={constructor:_x,on:function(e,r){var n=this._,o=o6e(e+"",n),i,a=-1,l=o.length;if(arguments.length<2){for(;++a0)for(var n=new Array(i),o=0,i,a;o=0&&(r=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),CL.hasOwnProperty(r)?{space:CL[r],local:e}:e}function a6e(e){return function(){var r=this.ownerDocument,n=this.namespaceURI;return n===g7&&r.documentElement.namespaceURI===g7?r.createElement(e):r.createElementNS(n,e)}}function l6e(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function $L(e){var r=Sx(e);return(r.local?l6e:a6e)(r)}function s6e(){}function m7(e){return e==null?s6e:function(){return this.querySelector(e)}}function c6e(e){typeof e!="function"&&(e=m7(e));for(var r=this._groups,n=r.length,o=new Array(n),i=0;i=_&&(_=C+1);!(R=x[_])&&++_=0;)(l=o[i])&&(a&&l.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(l,a),a=l);return this}function P6e(e){e||(e=M6e);function r(p,f){return p&&f?e(p.__data__,f.__data__):!p-!f}for(var n=this._groups,o=n.length,i=new Array(o),a=0;ar?1:e>=r?0:NaN}function N6e(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function B6e(){return Array.from(this)}function I6e(){for(var e=this._groups,r=0,n=e.length;r1?this.each((r==null?X6e:typeof r=="function"?Z6e:K6e)(e,r,n??"")):Qh(this.node(),e)}function Qh(e,r){return e.style.getPropertyValue(r)||AL(e).getComputedStyle(e,null).getPropertyValue(r)}function J6e(e){return function(){delete this[e]}}function e_e(e,r){return function(){this[e]=r}}function t_e(e,r){return function(){var n=r.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function r_e(e,r){return arguments.length>1?this.each((r==null?J6e:typeof r=="function"?t_e:e_e)(e,r)):this.node()[e]}function DL(e){return e.trim().split(/^|\s+/)}function y7(e){return e.classList||new PL(e)}function PL(e){this._node=e,this._names=DL(e.getAttribute("class")||"")}PL.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 ML(e,r){for(var n=y7(e),o=-1,i=r.length;++o=0&&(n=r.slice(o+1),r=r.slice(0,o)),{type:r,name:n}})}function T_e(e){return function(){var r=this.__on;if(r){for(var n=0,o=-1,i=r.length,a;n()=>e;function b7(e,{sourceEvent:r,subject:n,target:o,identifier:i,active:a,x:l,y:s,dx:c,dy:d,dispatch:u}){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:i,enumerable:!0,configurable:!0},active:{value:a,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:d,enumerable:!0,configurable:!0},_:{value:u}})}b7.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function L_e(e){return!e.ctrlKey&&!e.button}function F_e(){return this.parentNode}function V_e(e,r){return r??{x:e.x,y:e.y}}function q_e(){return navigator.maxTouchPoints||"ontouchstart"in this}function FL(){var e=L_e,r=F_e,n=V_e,o=q_e,i={},a=kx("start","drag","end"),l=0,s,c,d,u,p=0;function f($){$.on("mousedown.drag",m).filter(o).on("touchstart.drag",x).on("touchmove.drag",k,O_e).on("touchend.drag touchcancel.drag",C).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m($,R){if(!(u||!e.call(this,$,R))){var T=_(this,r.call(this,$,R),$,R,"mouse");T&&(Ei($.view).on("mousemove.drag",v,A1).on("mouseup.drag",w,A1),OL($.view),v7($),d=!1,s=$.clientX,c=$.clientY,T("start",$))}}function v($){if(Jh($),!d){var R=$.clientX-s,T=$.clientY-c;d=R*R+T*T>p}i.mouse("drag",$)}function w($){Ei($.view).on("mousemove.drag mouseup.drag",null),LL($.view,d),Jh($),i.mouse("end",$)}function x($,R){if(e.call(this,$,R)){var T=$.changedTouches,A=r.call(this,$,R),z=T.length,j,I;for(j=0;j>8&15|r>>4&240,r>>4&15|r&240,(r&15)<<4|r&15,1):n===8?Rx(r>>24&255,r>>16&255,r>>8&255,(r&255)/255):n===4?Rx(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=U_e.exec(e))?new ri(r[1],r[2],r[3],1):(r=W_e.exec(e))?new ri(r[1]*255/100,r[2]*255/100,r[3]*255/100,1):(r=G_e.exec(e))?Rx(r[1],r[2],r[3],r[4]):(r=Y_e.exec(e))?Rx(r[1]*255/100,r[2]*255/100,r[3]*255/100,r[4]):(r=X_e.exec(e))?XL(r[1],r[2]/100,r[3]/100,1):(r=K_e.exec(e))?XL(r[1],r[2]/100,r[3]/100,r[4]):qL.hasOwnProperty(e)?WL(qL[e]):e==="transparent"?new ri(NaN,NaN,NaN,0):null}function WL(e){return new ri(e>>16&255,e>>8&255,e&255,1)}function Rx(e,r,n,o){return o<=0&&(e=r=n=NaN),new ri(e,r,n,o)}function J_e(e){return e instanceof D1||(e=Hu(e)),e?(e=e.rgb(),new ri(e.r,e.g,e.b,e.opacity)):new ri}function w7(e,r,n,o){return arguments.length===1?J_e(e):new ri(e,r,n,o??1)}function ri(e,r,n,o){this.r=+e,this.g=+r,this.b=+n,this.opacity=+o}x7(ri,w7,VL(D1,{brighter(e){return e=e==null?$x:Math.pow($x,e),new ri(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?P1:Math.pow(P1,e),new ri(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ri(Uu(this.r),Uu(this.g),Uu(this.b),zx(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:GL,formatHex:GL,formatHex8:e8e,formatRgb:YL,toString:YL}));function GL(){return`#${Wu(this.r)}${Wu(this.g)}${Wu(this.b)}`}function e8e(){return`#${Wu(this.r)}${Wu(this.g)}${Wu(this.b)}${Wu((isNaN(this.opacity)?1:this.opacity)*255)}`}function YL(){const e=zx(this.opacity);return`${e===1?"rgb(":"rgba("}${Uu(this.r)}, ${Uu(this.g)}, ${Uu(this.b)}${e===1?")":`, ${e})`}`}function zx(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Uu(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Wu(e){return e=Uu(e),(e<16?"0":"")+e.toString(16)}function XL(e,r,n,o){return o<=0?e=r=n=NaN:n<=0||n>=1?e=r=NaN:r<=0&&(e=NaN),new Ya(e,r,n,o)}function KL(e){if(e instanceof Ya)return new Ya(e.h,e.s,e.l,e.opacity);if(e instanceof D1||(e=Hu(e)),!e)return new Ya;if(e instanceof Ya)return e;e=e.rgb();var r=e.r/255,n=e.g/255,o=e.b/255,i=Math.min(r,n,o),a=Math.max(r,n,o),l=NaN,s=a-i,c=(a+i)/2;return s?(r===a?l=(n-o)/s+(n0&&c<1?0:l,new Ya(l,s,c,e.opacity)}function t8e(e,r,n,o){return arguments.length===1?KL(e):new Ya(e,r,n,o??1)}function Ya(e,r,n,o){this.h=+e,this.s=+r,this.l=+n,this.opacity=+o}x7(Ya,t8e,VL(D1,{brighter(e){return e=e==null?$x:Math.pow($x,e),new Ya(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?P1:Math.pow(P1,e),new Ya(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,i=2*n-o;return new ri(k7(e>=240?e-240:e+120,i,o),k7(e,i,o),k7(e<120?e+240:e-120,i,o),this.opacity)},clamp(){return new Ya(ZL(this.h),Tx(this.s),Tx(this.l),zx(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=zx(this.opacity);return`${e===1?"hsl(":"hsla("}${ZL(this.h)}, ${Tx(this.s)*100}%, ${Tx(this.l)*100}%${e===1?")":`, ${e})`}`}}));function ZL(e){return e=(e||0)%360,e<0?e+360:e}function Tx(e){return Math.max(0,Math.min(1,e||0))}function k7(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 _7=e=>()=>e;function r8e(e,r){return function(n){return e+n*r}}function n8e(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 o8e(e){return(e=+e)==1?QL:function(r,n){return n-r?n8e(r,n,e):_7(isNaN(r)?n:r)}}function QL(e,r){var n=r-e;return n?r8e(e,n):_7(isNaN(e)?r:e)}const jx=(function e(r){var n=o8e(r);function o(i,a){var l=n((i=w7(i)).r,(a=w7(a)).r),s=n(i.g,a.g),c=n(i.b,a.b),d=QL(i.opacity,a.opacity);return function(u){return i.r=l(u),i.g=s(u),i.b=c(u),i.opacity=d(u),i+""}}return o.gamma=e,o})(1);function i8e(e,r){r||(r=[]);var n=e?Math.min(r.length,e.length):0,o=r.slice(),i;return function(a){for(i=0;in&&(a=r.slice(n,a),s[l]?s[l]+=a:s[++l]=a),(o=o[0])===(i=i[0])?s[l]?s[l]+=i:s[++l]=i:(s[++l]=null,c.push({i:l,x:Ul(o,i)})),n=E7.lastIndex;return n180?u+=360:u-d>180&&(d+=360),f.push({i:p.push(i(p)+"rotate(",null,o)-2,x:Ul(d,u)})):u&&p.push(i(p)+"rotate("+u+o)}function s(d,u,p,f){d!==u?f.push({i:p.push(i(p)+"skewX(",null,o)-2,x:Ul(d,u)}):u&&p.push(i(p)+"skewX("+u+o)}function c(d,u,p,f,m,v){if(d!==p||u!==f){var w=m.push(i(m)+"scale(",null,",",null,")");v.push({i:w-4,x:Ul(d,p)},{i:w-2,x:Ul(u,f)})}else(p!==1||f!==1)&&m.push(i(m)+"scale("+p+","+f+")")}return function(d,u){var p=[],f=[];return d=e(d),u=e(u),a(d.translateX,d.translateY,u.translateX,u.translateY,p,f),l(d.rotate,u.rotate,p,f),s(d.skewX,u.skewX,p,f),c(d.scaleX,d.scaleY,u.scaleX,u.scaleY,p,f),d=u=null,function(m){for(var v=-1,w=f.length,x;++v=0&&e._call.call(void 0,r),e=e._next;--tf}function sF(){Gu=(Mx=L1.now())+Nx,tf=B1=0;try{x8e()}finally{tf=0,k8e(),Gu=0}}function w8e(){var e=L1.now(),r=e-Mx;r>iF&&(Nx-=r,Mx=e)}function k8e(){for(var e,r=Px,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:Px=n);O1=e,$7(o)}function $7(e){if(!tf){B1&&(B1=clearTimeout(B1));var r=e-Gu;r>24?(e<1/0&&(B1=setTimeout(sF,e-L1.now()-Nx)),I1&&(I1=clearInterval(I1))):(I1||(Mx=L1.now(),I1=setInterval(w8e,iF)),tf=1,aF(sF))}}function cF(e,r,n){var o=new Bx;return r=r==null?0:+r,o.restart(i=>{o.stop(),e(i+r)},r,n),o}var _8e=kx("start","end","cancel","interrupt"),S8e=[],dF=0,uF=1,R7=2,Ix=3,pF=4,z7=5,Ox=6;function Lx(e,r,n,o,i,a){var l=e.__transition;if(!l)e.__transition={};else if(n in l)return;E8e(e,n,{name:r,index:o,group:i,on:_8e,tween:S8e,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:dF})}function T7(e,r){var n=Xa(e,r);if(n.state>dF)throw new Error("too late; already scheduled");return n}function Wl(e,r){var n=Xa(e,r);if(n.state>Ix)throw new Error("too late; already running");return n}function Xa(e,r){var n=e.__transition;if(!n||!(n=n[r]))throw new Error("transition not found");return n}function E8e(e,r,n){var o=e.__transition,i;o[r]=n,n.timer=lF(a,0,n.time);function a(d){n.state=uF,n.timer.restart(l,n.delay,n.time),n.delay<=d&&l(d-n.delay)}function l(d){var u,p,f,m;if(n.state!==uF)return c();for(u in o)if(m=o[u],m.name===n.name){if(m.state===Ix)return cF(l);m.state===pF?(m.state=Ox,m.timer.stop(),m.on.call("interrupt",e,e.__data__,m.index,m.group),delete o[u]):+uR7&&o.state=0&&(r=r.slice(0,n)),!r||r==="start"})}function t7e(e,r,n){var o,i,a=e7e(r)?T7:Wl;return function(){var l=a(this,e),s=l.on;s!==o&&(i=(o=s).copy()).on(r,n),l.on=i}}function r7e(e,r){var n=this._id;return arguments.length<2?Xa(this.node(),n).on.on(e):this.each(t7e(n,e,r))}function n7e(e){return function(){var r=this.parentNode;for(var n in this.__transition)if(+n!==e)return;r&&r.removeChild(this)}}function o7e(){return this.on("end.remove",n7e(this._id))}function i7e(e){var r=this._name,n=this._id;typeof e!="function"&&(e=m7(e));for(var o=this._groups,i=o.length,a=new Array(i),l=0;l()=>e;function T7e(e,{sourceEvent:r,target:n,transform:o,dispatch:i}){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:i}})}function Us(e,r,n){this.k=e,this.x=r,this.y=n}Us.prototype={constructor:Us,scale:function(e){return e===1?this:new Us(this.k*e,this.x,this.y)},translate:function(e,r){return e===0&r===0?this:new Us(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 qx=new Us(1,0,0);mF.prototype=Us.prototype;function mF(e){for(;!e.__zoom;)if(!(e=e.parentNode))return qx;return e.__zoom}function A7(e){e.stopImmediatePropagation()}function F1(e){e.preventDefault(),e.stopImmediatePropagation()}function j7e(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function A7e(){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 yF(){return this.__zoom||qx}function D7e(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function P7e(){return navigator.maxTouchPoints||"ontouchstart"in this}function M7e(e,r,n){var o=e.invertX(r[0][0])-n[0][0],i=e.invertX(r[1][0])-n[1][0],a=e.invertY(r[0][1])-n[0][1],l=e.invertY(r[1][1])-n[1][1];return e.translate(i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i),l>a?(a+l)/2:Math.min(0,a)||Math.max(0,l))}function vF(){var e=j7e,r=A7e,n=M7e,o=D7e,i=P7e,a=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],s=250,c=Dx,d=kx("start","zoom","end"),u,p,f,m=500,v=150,w=0,x=10;function k(P){P.property("__zoom",yF).on("wheel.zoom",z,{passive:!1}).on("mousedown.zoom",j).on("dblclick.zoom",I).filter(i).on("touchstart.zoom",N).on("touchmove.zoom",L).on("touchend.zoom touchcancel.zoom",H).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}k.transform=function(P,V,B,F){var q=P.selection?P.selection():P;q.property("__zoom",yF),P!==q?R(P,V,B,F):q.interrupt().each(function(){T(this,arguments).event(F).start().zoom(null,typeof V=="function"?V.apply(this,arguments):V).end()})},k.scaleBy=function(P,V,B,F){k.scaleTo(P,function(){var q=this.__zoom.k,G=typeof V=="function"?V.apply(this,arguments):V;return q*G},B,F)},k.scaleTo=function(P,V,B,F){k.transform(P,function(){var q=r.apply(this,arguments),G=this.__zoom,U=B==null?$(q):typeof B=="function"?B.apply(this,arguments):B,Y=G.invert(U),K=typeof V=="function"?V.apply(this,arguments):V;return n(_(C(G,K),U,Y),q,l)},B,F)},k.translateBy=function(P,V,B,F){k.transform(P,function(){return n(this.__zoom.translate(typeof V=="function"?V.apply(this,arguments):V,typeof B=="function"?B.apply(this,arguments):B),r.apply(this,arguments),l)},null,F)},k.translateTo=function(P,V,B,F,q){k.transform(P,function(){var G=r.apply(this,arguments),U=this.__zoom,Y=F==null?$(G):typeof F=="function"?F.apply(this,arguments):F;return n(qx.translate(Y[0],Y[1]).scale(U.k).translate(typeof V=="function"?-V.apply(this,arguments):-V,typeof B=="function"?-B.apply(this,arguments):-B),G,l)},F,q)};function C(P,V){return V=Math.max(a[0],Math.min(a[1],V)),V===P.k?P:new Us(V,P.x,P.y)}function _(P,V,B){var F=V[0]-B[0]*P.k,q=V[1]-B[1]*P.k;return F===P.x&&q===P.y?P:new Us(P.k,F,q)}function $(P){return[(+P[0][0]+ +P[1][0])/2,(+P[0][1]+ +P[1][1])/2]}function R(P,V,B,F){P.on("start.zoom",function(){T(this,arguments).event(F).start()}).on("interrupt.zoom end.zoom",function(){T(this,arguments).event(F).end()}).tween("zoom",function(){var q=this,G=arguments,U=T(q,G).event(F),Y=r.apply(q,G),K=B==null?$(Y):typeof B=="function"?B.apply(q,G):B,O=Math.max(Y[1][0]-Y[0][0],Y[1][1]-Y[0][1]),W=q.__zoom,Z=typeof V=="function"?V.apply(q,G):V,Q=c(W.invert(K).concat(O/W.k),Z.invert(K).concat(O/Z.k));return function(ie){if(ie===1)ie=Z;else{var te=Q(ie),re=O/te[2];ie=new Us(re,K[0]-te[0]*re,K[1]-te[1]*re)}U.zoom(null,ie)}})}function T(P,V,B){return!B&&P.__zooming||new A(P,V)}function A(P,V){this.that=P,this.args=V,this.active=0,this.sourceEvent=null,this.extent=r.apply(P,V),this.taps=0}A.prototype={event:function(P){return P&&(this.sourceEvent=P),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(P,V){return this.mouse&&P!=="mouse"&&(this.mouse[1]=V.invert(this.mouse[0])),this.touch0&&P!=="touch"&&(this.touch0[1]=V.invert(this.touch0[0])),this.touch1&&P!=="touch"&&(this.touch1[1]=V.invert(this.touch1[0])),this.that.__zoom=V,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(P){var V=Ei(this.that).datum();d.call(P,this.that,new T7e(P,{sourceEvent:this.sourceEvent,target:k,transform:this.that.__zoom,dispatch:d}),V)}};function z(P,...V){if(!e.apply(this,arguments))return;var B=T(this,V).event(P),F=this.__zoom,q=Math.max(a[0],Math.min(a[1],F.k*Math.pow(2,o.apply(this,arguments)))),G=Ga(P);if(B.wheel)(B.mouse[0][0]!==G[0]||B.mouse[0][1]!==G[1])&&(B.mouse[1]=F.invert(B.mouse[0]=G)),clearTimeout(B.wheel);else{if(F.k===q)return;B.mouse=[G,F.invert(G)],Fx(this),B.start()}F1(P),B.wheel=setTimeout(U,v),B.zoom("mouse",n(_(C(F,q),B.mouse[0],B.mouse[1]),B.extent,l));function U(){B.wheel=null,B.end()}}function j(P,...V){if(f||!e.apply(this,arguments))return;var B=P.currentTarget,F=T(this,V,!0).event(P),q=Ei(P.view).on("mousemove.zoom",K,!0).on("mouseup.zoom",O,!0),G=Ga(P,B),U=P.clientX,Y=P.clientY;OL(P.view),A7(P),F.mouse=[G,this.__zoom.invert(G)],Fx(this),F.start();function K(W){if(F1(W),!F.moved){var Z=W.clientX-U,Q=W.clientY-Y;F.moved=Z*Z+Q*Q>w}F.event(W).zoom("mouse",n(_(F.that.__zoom,F.mouse[0]=Ga(W,B),F.mouse[1]),F.extent,l))}function O(W){q.on("mousemove.zoom mouseup.zoom",null),LL(W.view,F.moved),F1(W),F.event(W).end()}}function I(P,...V){if(e.apply(this,arguments)){var B=this.__zoom,F=Ga(P.changedTouches?P.changedTouches[0]:P,this),q=B.invert(F),G=B.k*(P.shiftKey?.5:2),U=n(_(C(B,G),F,q),r.apply(this,V),l);F1(P),s>0?Ei(this).transition().duration(s).call(R,U,F,P):Ei(this).call(k.transform,U,F,P)}}function N(P,...V){if(e.apply(this,arguments)){var B=P.touches,F=B.length,q=T(this,V,P.changedTouches.length===F).event(P),G,U,Y,K;for(A7(P),U=0;U"[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."},V1=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],bF=["Enter"," ","Escape"],xF={"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 rf;(function(e){e.Strict="strict",e.Loose="loose"})(rf||(rf={}));var Yu;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Yu||(Yu={}));var q1;(function(e){e.Partial="partial",e.Full="full"})(q1||(q1={}));const wF={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var id;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(id||(id={}));var Hx;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Hx||(Hx={}));var Ue;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Ue||(Ue={}));const kF={[Ue.Left]:Ue.Right,[Ue.Right]:Ue.Left,[Ue.Top]:Ue.Bottom,[Ue.Bottom]:Ue.Top};function _F(e){return e===null?null:e?"valid":"invalid"}const SF=e=>"id"in e&&"source"in e&&"target"in e,N7e=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),D7=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),H1=(e,r=[0,0])=>{const{width:n,height:o}=_o(e),i=e.origin??r,a=n*i[0],l=o*i[1];return{x:e.position.x-a,y:e.position.y-l}},EF=(e,r={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((o,i)=>{const a=typeof i=="string";let l=!r.nodeLookup&&!a?i:void 0;r.nodeLookup&&(l=a?r.nodeLookup.get(i):D7(i)?i:r.nodeLookup.get(i.id));const s=l?Gx(l,r.nodeOrigin):{x:0,y:0,x2:0,y2:0};return Ux(o,s)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Wx(n)},nf=(e,r={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(i=>{(r.filter===void 0||r.filter(i))&&(n=Ux(n,Gx(i)),o=!0)}),o?Wx(n):{x:0,y:0,width:0,height:0}},P7=(e,r,[n,o,i]=[0,0,1],a=!1,l=!1)=>{const s={...G1(r,[n,o,i]),width:r.width/i,height:r.height/i},c=[];for(const d of e.values()){const{measured:u,selectable:p=!0,hidden:f=!1}=d;if(l&&!p||f)continue;const m=u.width??d.width??d.initialWidth??null,v=u.height??d.height??d.initialHeight??null,w=U1(s,Ku(d)),x=(m??0)*(v??0),k=a&&w>0;(!d.internals.handleBounds||k||w>=x||d.dragging)&&c.push(d)}return c},B7e=(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 I7e(e,r){const n=new Map,o=r?.nodes?new Set(r.nodes.map(i=>i.id)):null;return e.forEach(i=>{i.measured.width&&i.measured.height&&(r?.includeHiddenNodes||!i.hidden)&&(!o||o.has(i.id))&&n.set(i.id,i)}),n}async function O7e({nodes:e,width:r,height:n,panZoom:o,minZoom:i,maxZoom:a},l){if(e.size===0)return Promise.resolve(!0);const s=I7e(e,l),c=nf(s),d=Ws(c,r,n,l?.minZoom??i,l?.maxZoom??a,l?.padding??.1);return await o.setViewport(d,{duration:l?.duration,ease:l?.ease,interpolate:l?.interpolate}),Promise.resolve(!0)}function CF({nodeId:e,nextPosition:r,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:i,onError:a}){const l=n.get(e),s=l.parentId?n.get(l.parentId):void 0,{x:c,y:d}=s?s.internals.positionAbsolute:{x:0,y:0},u=l.origin??o;let p=l.extent||i;if(l.extent==="parent"&&!l.expandParent)if(!s)a?.("005",Gl.error005());else{const m=s.measured.width,v=s.measured.height;m&&v&&(p=[[c,d],[c+m,d+v]])}else s&&sf(l.extent)&&(p=[[l.extent[0][0]+c,l.extent[0][1]+d],[l.extent[1][0]+c,l.extent[1][1]+d]]);const f=sf(p)?Xu(r,p,l.measured):r;return(l.measured.width===void 0||l.measured.height===void 0)&&a?.("015",Gl.error015()),{position:{x:f.x-c+(l.measured.width??0)*u[0],y:f.y-d+(l.measured.height??0)*u[1]},positionAbsolute:f}}async function L7e({nodesToRemove:e=[],edgesToRemove:r=[],nodes:n,edges:o,onBeforeDelete:i}){const a=new Set(e.map(p=>p.id)),l=[];for(const p of n){if(p.deletable===!1)continue;const f=a.has(p.id),m=!f&&p.parentId&&l.find(v=>v.id===p.parentId);(f||m)&&l.push(p)}const s=new Set(r.map(p=>p.id)),c=o.filter(p=>p.deletable!==!1),d=B7e(l,c);for(const p of c)s.has(p.id)&&!d.find(f=>f.id===p.id)&&d.push(p);if(!i)return{edges:d,nodes:l};const u=await i({nodes:l,edges:d});return typeof u=="boolean"?u?{edges:d,nodes:l}:{edges:[],nodes:[]}:u}const of=(e,r=0,n=1)=>Math.min(Math.max(e,r),n),Xu=(e={x:0,y:0},r,n)=>({x:of(e.x,r[0][0],r[1][0]-(n?.width??0)),y:of(e.y,r[0][1],r[1][1]-(n?.height??0))});function $F(e,r,n){const{width:o,height:i}=_o(n),{x:a,y:l}=n.internals.positionAbsolute;return Xu(e,[[a,l],[a+o,l+i]],r)}const RF=(e,r,n)=>en?-of(Math.abs(e-n),1,r)/r:0,zF=(e,r,n=15,o=40)=>{const i=RF(e.x,o,r.width-o)*n,a=RF(e.y,o,r.height-o)*n;return[i,a]},Ux=(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)}),M7=({x:e,y:r,width:n,height:o})=>({x:e,y:r,x2:e+n,y2:r+o}),Wx=({x:e,y:r,x2:n,y2:o})=>({x:e,y:r,width:n-e,height:o-r}),Ku=(e,r=[0,0])=>{const{x:n,y:o}=D7(e)?e.internals.positionAbsolute:H1(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}},Gx=(e,r=[0,0])=>{const{x:n,y:o}=D7(e)?e.internals.positionAbsolute:H1(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)}},TF=(e,r)=>Wx(Ux(M7(e),M7(r))),U1=(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)},jF=e=>Ka(e.width)&&Ka(e.height)&&Ka(e.x)&&Ka(e.y),Ka=e=>!isNaN(e)&&isFinite(e),F7e=(e,r)=>{},W1=(e,r=[1,1])=>({x:r[0]*Math.round(e.x/r[0]),y:r[1]*Math.round(e.y/r[1])}),G1=({x:e,y:r},[n,o,i],a=!1,l=[1,1])=>{const s={x:(e-n)/i,y:(r-o)/i};return a?W1(s,l):s},Yx=({x:e,y:r},[n,o,i])=>({x:e*i+n,y:r*i+o});function af(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 V7e(e,r,n){if(typeof e=="string"||typeof e=="number"){const o=af(e,n),i=af(e,r);return{top:o,right:i,bottom:o,left:i,x:i*2,y:o*2}}if(typeof e=="object"){const o=af(e.top??e.y??0,n),i=af(e.bottom??e.y??0,n),a=af(e.left??e.x??0,r),l=af(e.right??e.x??0,r);return{top:o,right:l,bottom:i,left:a,x:a+l,y:o+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function q7e(e,r,n,o,i,a){const{x:l,y:s}=Yx(e,[r,n,o]),{x:c,y:d}=Yx({x:e.x+e.width,y:e.y+e.height},[r,n,o]),u=i-c,p=a-d;return{left:Math.floor(l),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(p)}}const Ws=(e,r,n,o,i,a)=>{const l=V7e(a,r,n),s=(r-l.x)/e.width,c=(n-l.y)/e.height,d=Math.min(s,c),u=of(d,o,i),p=e.x+e.width/2,f=e.y+e.height/2,m=r/2-p*u,v=n/2-f*u,w=q7e(e,m,v,u,r,n),x={left:Math.min(w.left-l.left,0),top:Math.min(w.top-l.top,0),right:Math.min(w.right-l.right,0),bottom:Math.min(w.bottom-l.bottom,0)};return{x:m-x.left+x.right,y:v-x.top+x.bottom,zoom:u}},lf=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function sf(e){return e!=null&&e!=="parent"}function _o(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function AF(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function DF(e,r={width:0,height:0},n,o,i){const a={...e},l=o.get(n);if(l){const s=l.origin||i;a.x+=l.internals.positionAbsolute.x-(r.width??0)*s[0],a.y+=l.internals.positionAbsolute.y-(r.height??0)*s[1]}return a}function PF(e,r){if(e.size!==r.size)return!1;for(const n of e)if(!r.has(n))return!1;return!0}function H7e(){let e,r;return{promise:new Promise((n,o)=>{e=n,r=o}),resolve:e,reject:r}}function U7e(e){return{...xF,...e||{}}}function Y1(e,{snapGrid:r=[0,0],snapToGrid:n=!1,transform:o,containerBounds:i}){const{x:a,y:l}=Za(e),s=G1({x:a-(i?.left??0),y:l-(i?.top??0)},o),{x:c,y:d}=n?W1(s,r):s;return{xSnapped:c,ySnapped:d,...s}}const N7=e=>({width:e.offsetWidth,height:e.offsetHeight}),MF=e=>e?.getRootNode?.()||window?.document,W7e=["INPUT","SELECT","TEXTAREA"];function NF(e){const r=e.composedPath?.()?.[0]||e.target;return r?.nodeType!==1?!1:W7e.includes(r.nodeName)||r.hasAttribute("contenteditable")||!!r.closest(".nokey")}const BF=e=>"clientX"in e,Za=(e,r)=>{const n=BF(e),o=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:o-(r?.left??0),y:i-(r?.top??0)}},IF=(e,r,n,o,i)=>{const a=r.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(l=>{const s=l.getBoundingClientRect();return{id:l.getAttribute("data-handleid"),type:e,nodeId:i,position:l.getAttribute("data-handlepos"),x:(s.left-n.left)/o,y:(s.top-n.top)/o,...N7(l)}})};function OF({sourceX:e,sourceY:r,targetX:n,targetY:o,sourceControlX:i,sourceControlY:a,targetControlX:l,targetControlY:s}){const c=e*.125+i*.375+l*.375+n*.125,d=r*.125+a*.375+s*.375+o*.125,u=Math.abs(c-e),p=Math.abs(d-r);return[c,d,u,p]}function Xx(e,r){return e>=0?.5*e:r*25*Math.sqrt(-e)}function LF({pos:e,x1:r,y1:n,x2:o,y2:i,c:a}){switch(e){case Ue.Left:return[r-Xx(r-o,a),n];case Ue.Right:return[r+Xx(o-r,a),n];case Ue.Top:return[r,n-Xx(n-i,a)];case Ue.Bottom:return[r,n+Xx(i-n,a)]}}function Kx({sourceX:e,sourceY:r,sourcePosition:n=Ue.Bottom,targetX:o,targetY:i,targetPosition:a=Ue.Top,curvature:l=.25}){const[s,c]=LF({pos:n,x1:e,y1:r,x2:o,y2:i,c:l}),[d,u]=LF({pos:a,x1:o,y1:i,x2:e,y2:r,c:l}),[p,f,m,v]=OF({sourceX:e,sourceY:r,targetX:o,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:d,targetControlY:u});return[`M${e},${r} C${s},${c} ${d},${u} ${o},${i}`,p,f,m,v]}function FF({sourceX:e,sourceY:r,targetX:n,targetY:o}){const i=Math.abs(n-e)/2,a=n0}const X7e=({source:e,sourceHandle:r,target:n,targetHandle:o})=>`xy-edge__${e}${r||""}-${n}${o||""}`,K7e=(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)),Z7e=(e,r,n={})=>{if(!e.source||!e.target)return r;const o=n.getEdgeId||X7e;let i;return SF(e)?i={...e}:i={...e,id:o(e)},K7e(i,r)?r:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,r.concat(i))};function VF({sourceX:e,sourceY:r,targetX:n,targetY:o}){const[i,a,l,s]=FF({sourceX:e,sourceY:r,targetX:n,targetY:o});return[`M ${e},${r}L ${n},${o}`,i,a,l,s]}const qF={[Ue.Left]:{x:-1,y:0},[Ue.Right]:{x:1,y:0},[Ue.Top]:{x:0,y:-1},[Ue.Bottom]:{x:0,y:1}},Q7e=({source:e,sourcePosition:r=Ue.Bottom,target:n})=>r===Ue.Left||r===Ue.Right?e.xMath.sqrt(Math.pow(r.x-e.x,2)+Math.pow(r.y-e.y,2));function J7e({source:e,sourcePosition:r=Ue.Bottom,target:n,targetPosition:o=Ue.Top,center:i,offset:a,stepPosition:l}){const s=qF[r],c=qF[o],d={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},p=Q7e({source:d,sourcePosition:r,target:u}),f=p.x!==0?"x":"y",m=p[f];let v=[],w,x;const k={x:0,y:0},C={x:0,y:0},[,,_,$]=FF({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f==="x"?(w=i.x??d.x+(u.x-d.x)*l,x=i.y??(d.y+u.y)/2):(w=i.x??(d.x+u.x)/2,x=i.y??d.y+(u.y-d.y)*l);const R=[{x:w,y:d.y},{x:w,y:u.y}],T=[{x:d.x,y:x},{x:u.x,y:x}];s[f]===m?v=f==="x"?R:T:v=f==="x"?T:R}else{const R=[{x:d.x,y:u.y}],T=[{x:u.x,y:d.y}];if(f==="x"?v=s.x===m?T:R:v=s.y===m?R:T,r===o){const N=Math.abs(e[f]-n[f]);if(N<=a){const L=Math.min(a-1,a-N);s[f]===m?k[f]=(d[f]>e[f]?-1:1)*L:C[f]=(u[f]>n[f]?-1:1)*L}}if(r!==o){const N=f==="x"?"y":"x",L=s[f]===c[N],H=d[N]>u[N],P=d[N]=I?(w=(A.x+z.x)/2,x=v[0].y):(w=v[0].x,x=(A.y+z.y)/2)}return[[e,{x:d.x+k.x,y:d.y+k.y},...v,{x:u.x+C.x,y:u.y+C.y},n],w,x,_,$]}function e9e(e,r,n,o){const i=Math.min(HF(e,r)/2,HF(r,n)/2,o),{x:a,y:l}=r;if(e.x===a&&a===n.x||e.y===l&&l===n.y)return`L${a} ${l}`;if(e.y===l){const d=e.x{let _="";return C>0&&Cn.id===r):e[0])||null}function B7(e,r){return e?typeof e=="string"?e:`${r?`${r}__`:""}${Object.keys(e).sort().map(n=>`${n}=${e[n]}`).join("&")}`:""}function t9e(e,{id:r,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:i}){const a=new Set;return e.reduce((l,s)=>([s.markerStart||o,s.markerEnd||i].forEach(c=>{if(c&&typeof c=="object"){const d=B7(c,r);a.has(d)||(l.push({id:d,color:c.color||n,...c}),a.add(d))}}),l),[]).sort((l,s)=>l.id.localeCompare(s.id))}function r9e(e,r,n,o,i){let a=.5;i==="start"?a=0:i==="end"&&(a=1);let l=[(e.x+e.width*a)*r.zoom+r.x,e.y*r.zoom+r.y-o],s=[-100*a,-100];switch(n){case Ue.Right:l=[(e.x+e.width)*r.zoom+r.x+o,(e.y+e.height*a)*r.zoom+r.y],s=[0,-100*a];break;case Ue.Bottom:l[1]=(e.y+e.height)*r.zoom+r.y+o,s[1]=0;break;case Ue.Left:l=[e.x*r.zoom+r.x-o,(e.y+e.height*a)*r.zoom+r.y],s=[-100,-100*a];break}return`translate(${l[0]}px, ${l[1]}px) translate(${s[0]}%, ${s[1]}%)`}const XF=1e3,n9e=10,I7={nodeOrigin:[0,0],nodeExtent:V1,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},o9e={...I7,checkEquality:!0};function O7(e,r){const n={...e};for(const o in r)r[o]!==void 0&&(n[o]=r[o]);return n}function i9e(e,r,n){const o=O7(I7,n);for(const i of e.values())if(i.parentId)V7(i,e,r,o);else{const a=H1(i,o.nodeOrigin),l=sf(i.extent)?i.extent:o.nodeExtent,s=Xu(a,l,_o(i));i.internals.positionAbsolute=s}}function a9e(e,r){if(!e.handles)return e.measured?r?.internals.handleBounds:void 0;const n=[],o=[];for(const i of e.handles){const a={id:i.id,width:i.width??1,height:i.height??1,nodeId:e.id,x:i.x,y:i.y,position:i.position,type:i.type};i.type==="source"?n.push(a):i.type==="target"&&o.push(a)}return{source:n,target:o}}function L7(e){return e==="manual"}function F7(e,r,n,o={}){const i=O7(o9e,o),a={i:0},l=new Map(r),s=i?.elevateNodesOnSelect&&!L7(i.zIndexMode)?XF:0;let c=e.length>0;r.clear(),n.clear();for(const d of e){let u=l.get(d.id);if(i.checkEquality&&d===u?.internals.userNode)r.set(d.id,u);else{const p=H1(d,i.nodeOrigin),f=sf(d.extent)?d.extent:i.nodeExtent,m=Xu(p,f,_o(d));u={...i.defaults,...d,measured:{width:d.measured?.width,height:d.measured?.height},internals:{positionAbsolute:m,handleBounds:a9e(d,u),z:KF(d,s,i.zIndexMode),userNode:d}},r.set(d.id,u)}(u.measured===void 0||u.measured.width===void 0||u.measured.height===void 0)&&!u.hidden&&(c=!1),d.parentId&&V7(u,r,n,o,a)}return c}function l9e(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 V7(e,r,n,o,i){const{elevateNodesOnSelect:a,nodeOrigin:l,nodeExtent:s,zIndexMode:c}=O7(I7,o),d=e.parentId,u=r.get(d);if(!u){console.warn(`Parent node ${d} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}l9e(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c==="auto"&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*n9e),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);const p=a&&!L7(c)?XF:0,{x:f,y:m,z:v}=s9e(e,u,l,s,p,c),{positionAbsolute:w}=e.internals,x=f!==w.x||m!==w.y;(x||v!==e.internals.z)&&r.set(e.id,{...e,internals:{...e.internals,positionAbsolute:x?{x:f,y:m}:w,z:v}})}function KF(e,r,n){const o=Ka(e.zIndex)?e.zIndex:0;return L7(n)?o:o+(e.selected?r:0)}function s9e(e,r,n,o,i,a){const{x:l,y:s}=r.internals.positionAbsolute,c=_o(e),d=H1(e,n),u=sf(e.extent)?Xu(d,e.extent,c):d;let p=Xu({x:l+u.x,y:s+u.y},o,c);e.extent==="parent"&&(p=$F(p,c,r));const f=KF(e,i,a),m=r.internals.z??0;return{x:p.x,y:p.y,z:m>=f?m+1:f}}function q7(e,r,n,o=[0,0]){const i=[],a=new Map;for(const l of e){const s=r.get(l.parentId);if(!s)continue;const c=a.get(l.parentId)?.expandedRect??Ku(s),d=TF(c,l.rect);a.set(l.parentId,{expandedRect:d,parent:s})}return a.size>0&&a.forEach(({expandedRect:l,parent:s},c)=>{const d=s.internals.positionAbsolute,u=_o(s),p=s.origin??o,f=l.x0||m>0||x||k)&&(i.push({id:c,type:"position",position:{x:s.position.x-f+x,y:s.position.y-m+k}}),n.get(c)?.forEach(C=>{e.some(_=>_.id===C.id)||i.push({id:C.id,type:"position",position:{x:C.position.x+f,y:C.position.y+m}})})),(u.width0){const m=q7(f,r,n,i);d.push(...m)}return{changes:d,updatedInternals:c}}async function d9e({delta:e,panZoom:r,transform:n,translateExtent:o,width:i,height:a}){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],[i,a]],o),s=!!l&&(l.x!==n[0]||l.y!==n[1]||l.k!==n[2]);return Promise.resolve(s)}function ZF(e,r,n,o,i,a){let l=i;const s=o.get(l)||new Map;o.set(l,s.set(n,r)),l=`${i}-${e}`;const c=o.get(l)||new Map;if(o.set(l,c.set(n,r)),a){l=`${i}-${e}-${a}`;const d=o.get(l)||new Map;o.set(l,d.set(n,r))}}function QF(e,r,n){e.clear(),r.clear();for(const o of n){const{source:i,target:a,sourceHandle:l=null,targetHandle:s=null}=o,c={edgeId:o.id,source:i,target:a,sourceHandle:l,targetHandle:s},d=`${i}-${l}--${a}-${s}`,u=`${a}-${s}--${i}-${l}`;ZF("source",c,u,e,i,l),ZF("target",c,d,e,a,s),r.set(o.id,o)}}function JF(e,r){if(!e.parentId)return!1;const n=r.get(e.parentId);return n?n.selected?!0:JF(n,r):!1}function eV(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 u9e(e,r,n,o){const i=new Map;for(const[a,l]of e)if((l.selected||l.id===o)&&(!l.parentId||!JF(l,e))&&(l.draggable||r&&typeof l.draggable>"u")){const s=e.get(a);s&&i.set(a,{id:a,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 i}function H7({nodeId:e,dragItems:r,nodeLookup:n,dragging:o=!0}){const i=[];for(const[l,s]of r){const c=n.get(l)?.internals.userNode;c&&i.push({...c,position:s.position,dragging:o})}if(!e)return[i[0],i];const a=n.get(e)?.internals.userNode;return[a?{...a,position:r.get(e)?.position||a.position,dragging:o}:i[0],i]}function p9e({dragItems:e,snapGrid:r,x:n,y:o}){const i=e.values().next().value;if(!i)return null;const a={x:n-i.distance.x,y:o-i.distance.y},l=W1(a,r);return{x:l.x-a.x,y:l.y-a.y}}function h9e({onNodeMouseDown:e,getStoreItems:r,onDragStart:n,onDrag:o,onDragStop:i}){let a={x:null,y:null},l=0,s=new Map,c=!1,d={x:0,y:0},u=null,p=!1,f=null,m=!1,v=!1,w=null;function x({noDragClassName:C,handleSelector:_,domNode:$,isSelectable:R,nodeId:T,nodeClickDistance:A=0}){f=Ei($);function z({x:L,y:H}){const{nodeLookup:P,nodeExtent:V,snapGrid:B,snapToGrid:F,nodeOrigin:q,onNodeDrag:G,onSelectionDrag:U,onError:Y,updateNodePositions:K}=r();a={x:L,y:H};let O=!1;const W=s.size>1,Z=W&&V?M7(nf(s)):null,Q=W&&F?p9e({dragItems:s,snapGrid:B,x:L,y:H}):null;for(const[ie,te]of s){if(!P.has(ie))continue;let re={x:L-te.distance.x,y:H-te.distance.y};F&&(re=Q?{x:Math.round(re.x+Q.x),y:Math.round(re.y+Q.y)}:W1(re,B));let ue=null;if(W&&V&&!te.extent&&Z){const{positionAbsolute:pe}=te.internals,xe=pe.x-Z.x+V[0][0],je=pe.x+te.measured.width-Z.x2+V[1][0],Be=pe.y-Z.y+V[0][1],Je=pe.y+te.measured.height-Z.y2+V[1][1];ue=[[xe,Be],[je,Je]]}const{position:_e,positionAbsolute:ce}=CF({nodeId:ie,nextPosition:re,nodeLookup:P,nodeExtent:ue||V,nodeOrigin:q,onError:Y});O=O||te.position.x!==_e.x||te.position.y!==_e.y,te.position=_e,te.internals.positionAbsolute=ce}if(v=v||O,!!O&&(K(s,!0),w&&(o||G||!T&&U))){const[ie,te]=H7({nodeId:T,dragItems:s,nodeLookup:P});o?.(w,s,ie,te),G?.(w,ie,te),T||U?.(w,te)}}async function j(){if(!u)return;const{transform:L,panBy:H,autoPanSpeed:P,autoPanOnNodeDrag:V}=r();if(!V){c=!1,cancelAnimationFrame(l);return}const[B,F]=zF(d,u,P);(B!==0||F!==0)&&(a.x=(a.x??0)-B/L[2],a.y=(a.y??0)-F/L[2],await H({x:B,y:F})&&z(a)),l=requestAnimationFrame(j)}function I(L){const{nodeLookup:H,multiSelectionActive:P,nodesDraggable:V,transform:B,snapGrid:F,snapToGrid:q,selectNodesOnDrag:G,onNodeDragStart:U,onSelectionDragStart:Y,unselectNodesAndEdges:K}=r();p=!0,(!G||!R)&&!P&&T&&(H.get(T)?.selected||K()),R&&G&&T&&e?.(T);const O=Y1(L.sourceEvent,{transform:B,snapGrid:F,snapToGrid:q,containerBounds:u});if(a=O,s=u9e(H,V,O,T),s.size>0&&(n||U||!T&&Y)){const[W,Z]=H7({nodeId:T,dragItems:s,nodeLookup:H});n?.(L.sourceEvent,s,W,Z),U?.(L.sourceEvent,W,Z),T||Y?.(L.sourceEvent,Z)}}const N=FL().clickDistance(A).on("start",L=>{const{domNode:H,nodeDragThreshold:P,transform:V,snapGrid:B,snapToGrid:F}=r();u=H?.getBoundingClientRect()||null,m=!1,v=!1,w=L.sourceEvent,P===0&&I(L),a=Y1(L.sourceEvent,{transform:V,snapGrid:B,snapToGrid:F,containerBounds:u}),d=Za(L.sourceEvent,u)}).on("drag",L=>{const{autoPanOnNodeDrag:H,transform:P,snapGrid:V,snapToGrid:B,nodeDragThreshold:F,nodeLookup:q}=r(),G=Y1(L.sourceEvent,{transform:P,snapGrid:V,snapToGrid:B,containerBounds:u});if(w=L.sourceEvent,(L.sourceEvent.type==="touchmove"&&L.sourceEvent.touches.length>1||T&&!q.has(T))&&(m=!0),!m){if(!c&&H&&p&&(c=!0,j()),!p){const U=Za(L.sourceEvent,u),Y=U.x-d.x,K=U.y-d.y;Math.sqrt(Y*Y+K*K)>F&&I(L)}(a.x!==G.xSnapped||a.y!==G.ySnapped)&&s&&p&&(d=Za(L.sourceEvent,u),z(G))}}).on("end",L=>{if(!(!p||m)&&(c=!1,p=!1,cancelAnimationFrame(l),s.size>0)){const{nodeLookup:H,updateNodePositions:P,onNodeDragStop:V,onSelectionDragStop:B}=r();if(v&&(P(s,!1),v=!1),i||V||!T&&B){const[F,q]=H7({nodeId:T,dragItems:s,nodeLookup:H,dragging:!1});i?.(L.sourceEvent,s,F,q),V?.(L.sourceEvent,F,q),T||B?.(L.sourceEvent,q)}}}).filter(L=>{const H=L.target;return!L.button&&(!C||!eV(H,`.${C}`,$))&&(!_||eV(H,_,$))});f.call(N)}function k(){f?.on(".drag",null)}return{update:x,destroy:k}}function f9e(e,r,n){const o=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const a of r.values())U1(i,Ku(a))>0&&o.push(a);return o}const g9e=250;function m9e(e,r,n,o){let i=[],a=1/0;const l=f9e(e,n,r+g9e);for(const s of l){const c=[...s.internals.handleBounds?.source??[],...s.internals.handleBounds?.target??[]];for(const d of c){if(o.nodeId===d.nodeId&&o.type===d.type&&o.id===d.id)continue;const{x:u,y:p}=Zu(s,d,d.position,!0),f=Math.sqrt(Math.pow(u-e.x,2)+Math.pow(p-e.y,2));f>r||(f1){const s=o.type==="source"?"target":"source";return i.find(c=>c.type===s)??i[0]}return i[0]}function tV(e,r,n,o,i,a=!1){const l=o.get(e);if(!l)return null;const s=i==="strict"?l.internals.handleBounds?.[r]:[...l.internals.handleBounds?.source??[],...l.internals.handleBounds?.target??[]],c=(n?s?.find(d=>d.id===n):s?.[0])??null;return c&&a?{...c,...Zu(l,c,c.position,!0)}:c}function rV(e,r){return e||(r?.classList.contains("target")?"target":r?.classList.contains("source")?"source":null)}function y9e(e,r){let n=null;return r?n=!0:e&&!r&&(n=!1),n}const nV=()=>!0;function v9e(e,{connectionMode:r,connectionRadius:n,handleId:o,nodeId:i,edgeUpdaterType:a,isTarget:l,domNode:s,nodeLookup:c,lib:d,autoPanOnConnect:u,flowId:p,panBy:f,cancelConnection:m,onConnectStart:v,onConnect:w,onConnectEnd:x,isValidConnection:k=nV,onReconnectEnd:C,updateConnection:_,getTransform:$,getFromHandle:R,autoPanSpeed:T,dragThreshold:A=1,handleDomNode:z}){const j=MF(e.target);let I=0,N;const{x:L,y:H}=Za(e),P=rV(a,z),V=s?.getBoundingClientRect();let B=!1;if(!V||!P)return;const F=tV(i,P,o,c,r);if(!F)return;let q=Za(e,V),G=!1,U=null,Y=!1,K=null;function O(){if(!u||!V)return;const[ue,_e]=zF(q,V,T);f({x:ue,y:_e}),I=requestAnimationFrame(O)}const W={...F,nodeId:i,type:P,position:F.position},Z=c.get(i);let Q={inProgress:!0,isValid:null,from:Zu(Z,W,Ue.Left,!0),fromHandle:W,fromPosition:W.position,fromNode:Z,to:q,toHandle:null,toPosition:kF[W.position],toNode:null,pointer:q};function ie(){B=!0,_(Q),v?.(e,{nodeId:i,handleId:o,handleType:P})}A===0&&ie();function te(ue){if(!B){const{x:Be,y:Je}=Za(ue),st=Be-L,Le=Je-H;if(!(st*st+Le*Le>A*A))return;ie()}if(!R()||!W){re(ue);return}const _e=$();q=Za(ue,V),N=m9e(G1(q,_e,!1,[1,1]),n,c,W),G||(O(),G=!0);const ce=oV(ue,{handle:N,connectionMode:r,fromNodeId:i,fromHandleId:o,fromType:l?"target":"source",isValidConnection:k,doc:j,lib:d,flowId:p,nodeLookup:c});K=ce.handleDomNode,U=ce.connection,Y=y9e(!!N,ce.isValid);const pe=c.get(i),xe=pe?Zu(pe,W,Ue.Left,!0):Q.from,je={...Q,from:xe,isValid:Y,to:ce.toHandle&&Y?Yx({x:ce.toHandle.x,y:ce.toHandle.y},_e):q,toHandle:ce.toHandle,toPosition:Y&&ce.toHandle?ce.toHandle.position:kF[W.position],toNode:ce.toHandle?c.get(ce.toHandle.nodeId):null,pointer:q};_(je),Q=je}function re(ue){if(!("touches"in ue&&ue.touches.length>0)){if(B){(N||K)&&U&&Y&&w?.(U);const{inProgress:_e,...ce}=Q,pe={...ce,toPosition:Q.toHandle?Q.toPosition:null};x?.(ue,pe),a&&C?.(ue,pe)}m(),cancelAnimationFrame(I),G=!1,Y=!1,U=null,K=null,j.removeEventListener("mousemove",te),j.removeEventListener("mouseup",re),j.removeEventListener("touchmove",te),j.removeEventListener("touchend",re)}}j.addEventListener("mousemove",te),j.addEventListener("mouseup",re),j.addEventListener("touchmove",te),j.addEventListener("touchend",re)}function oV(e,{handle:r,connectionMode:n,fromNodeId:o,fromHandleId:i,fromType:a,doc:l,lib:s,flowId:c,isValidConnection:d=nV,nodeLookup:u}){const p=a==="target",f=r?l.querySelector(`.${s}-flow__handle[data-id="${c}-${r?.nodeId}-${r?.id}-${r?.type}"]`):null,{x:m,y:v}=Za(e),w=l.elementFromPoint(m,v),x=w?.classList.contains(`${s}-flow__handle`)?w:f,k={handleDomNode:x,isValid:!1,connection:null,toHandle:null};if(x){const C=rV(void 0,x),_=x.getAttribute("data-nodeid"),$=x.getAttribute("data-handleid"),R=x.classList.contains("connectable"),T=x.classList.contains("connectableend");if(!_||!C)return k;const A={source:p?_:o,sourceHandle:p?$:i,target:p?o:_,targetHandle:p?i:$};k.connection=A;const z=R&&T&&(n===rf.Strict?p&&C==="source"||!p&&C==="target":_!==o||$!==i);k.isValid=z&&d(A),k.toHandle=tV(_,C,$,u,n,!0)}return k}const U7={onPointerDown:v9e,isValid:oV};function b9e({domNode:e,panZoom:r,getTransform:n,getViewScale:o}){const i=Ei(e);function a({translateExtent:s,width:c,height:d,zoomStep:u=1,pannable:p=!0,zoomable:f=!0,inversePan:m=!1}){const v=_=>{if(_.sourceEvent.type!=="wheel"||!r)return;const $=n(),R=_.sourceEvent.ctrlKey&&lf()?10:1,T=-_.sourceEvent.deltaY*(_.sourceEvent.deltaMode===1?.05:_.sourceEvent.deltaMode?1:.002)*u,A=$[2]*Math.pow(2,T*R);r.scaleTo(A)};let w=[0,0];const x=_=>{(_.sourceEvent.type==="mousedown"||_.sourceEvent.type==="touchstart")&&(w=[_.sourceEvent.clientX??_.sourceEvent.touches[0].clientX,_.sourceEvent.clientY??_.sourceEvent.touches[0].clientY])},k=_=>{const $=n();if(_.sourceEvent.type!=="mousemove"&&_.sourceEvent.type!=="touchmove"||!r)return;const R=[_.sourceEvent.clientX??_.sourceEvent.touches[0].clientX,_.sourceEvent.clientY??_.sourceEvent.touches[0].clientY],T=[R[0]-w[0],R[1]-w[1]];w=R;const A=o()*Math.max($[2],Math.log($[2]))*(m?-1:1),z={x:$[0]-T[0]*A,y:$[1]-T[1]*A},j=[[0,0],[c,d]];r.setViewportConstrained({x:z.x,y:z.y,zoom:$[2]},j,s)},C=vF().on("start",x).on("zoom",p?k:null).on("zoom.wheel",f?v:null);i.call(C,{})}function l(){i.on("zoom",null)}return{update:a,destroy:l,pointer:Ga}}const Qx=e=>({x:e.x,y:e.y,zoom:e.k}),W7=({x:e,y:r,zoom:n})=>qx.translate(e,r).scale(n),cf=(e,r)=>e.target.closest(`.${r}`),iV=(e,r)=>r===2&&Array.isArray(e)&&e.includes(2),x9e=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,G7=(e,r=0,n=x9e,o=()=>{})=>{const i=typeof r=="number"&&r>0;return i||o(),i?e.transition().duration(r).ease(n).on("end",o):e},aV=e=>{const r=e.ctrlKey&&lf()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*r};function w9e({zoomPanValues:e,noWheelClassName:r,d3Selection:n,d3Zoom:o,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:l,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:d}){return u=>{if(cf(u,r))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();const p=n.property("__zoom").k||1;if(u.ctrlKey&&l){const x=Ga(u),k=aV(u),C=p*Math.pow(2,k);o.scaleTo(n,C,x,u);return}const f=u.deltaMode===1?20:1;let m=i===Yu.Vertical?0:u.deltaX*f,v=i===Yu.Horizontal?0:u.deltaY*f;!lf()&&u.shiftKey&&i!==Yu.Vertical&&(m=u.deltaY*f,v=0),o.translateBy(n,-(m/p)*a,-(v/p)*a,{internal:!0});const w=Qx(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(c?.(u,w),e.panScrollTimeout=setTimeout(()=>{d?.(u,w),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,s?.(u,w))}}function k9e({noWheelClassName:e,preventScrolling:r,d3ZoomHandler:n}){return function(o,i){const a=o.type==="wheel",l=!r&&a&&!o.ctrlKey,s=cf(o,e);if(o.ctrlKey&&a&&s&&o.preventDefault(),l||s)return null;o.preventDefault(),n.call(this,o,i)}}function _9e({zoomPanValues:e,onDraggingChange:r,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const i=Qx(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,o.sourceEvent?.type==="mousedown"&&r(!0),n&&n?.(o.sourceEvent,i)}}function S9e({zoomPanValues:e,panOnDrag:r,onPaneContextMenu:n,onTransformChange:o,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&iV(r,e.mouseButton??0)),a.sourceEvent?.sync||o([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,Qx(a.transform))}}function E9e({zoomPanValues:e,panOnDrag:r,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:i,onPaneContextMenu:a}){return l=>{if(!l.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&iV(r,e.mouseButton??0)&&!e.usedRightMouseButton&&l.sourceEvent&&a(l.sourceEvent),e.usedRightMouseButton=!1,o(!1),i)){const s=Qx(l.transform);e.prevViewport=s,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(l.sourceEvent,s)},n?150:0)}}}function C9e({zoomActivationKeyPressed:e,zoomOnScroll:r,zoomOnPinch:n,panOnDrag:o,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:l,noWheelClassName:s,noPanClassName:c,lib:d,connectionInProgress:u}){return p=>{const f=e||r,m=n&&p.ctrlKey,v=p.type==="wheel";if(p.button===1&&p.type==="mousedown"&&(cf(p,`${d}-flow__node`)||cf(p,`${d}-flow__edge`)))return!0;if(!o&&!f&&!i&&!a&&!n||l||u&&!v||cf(p,s)&&v||cf(p,c)&&(!v||i&&v&&!e)||!n&&p.ctrlKey&&v)return!1;if(!n&&p.type==="touchstart"&&p.touches?.length>1)return p.preventDefault(),!1;if(!f&&!i&&!m&&v||!o&&(p.type==="mousedown"||p.type==="touchstart")||Array.isArray(o)&&!o.includes(p.button)&&p.type==="mousedown")return!1;const w=Array.isArray(o)&&o.includes(p.button)||!p.button||p.button<=1;return(!p.ctrlKey||v)&&w}}function $9e({domNode:e,minZoom:r,maxZoom:n,translateExtent:o,viewport:i,onPanZoom:a,onPanZoomStart:l,onPanZoomEnd:s,onDraggingChange:c}){const d={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),p=vF().scaleExtent([r,n]).translateExtent(o),f=Ei(e).call(p);C({x:i.x,y:i.y,zoom:of(i.zoom,r,n)},[[0,0],[u.width,u.height]],o);const m=f.on("wheel.zoom"),v=f.on("dblclick.zoom");p.wheelDelta(aV);function w(N,L){return f?new Promise(H=>{p?.interpolate(L?.interpolate==="linear"?N1:Dx).transform(G7(f,L?.duration,L?.ease,()=>H(!0)),N)}):Promise.resolve(!1)}function x({noWheelClassName:N,noPanClassName:L,onPaneContextMenu:H,userSelectionActive:P,panOnScroll:V,panOnDrag:B,panOnScrollMode:F,panOnScrollSpeed:q,preventScrolling:G,zoomOnPinch:U,zoomOnScroll:Y,zoomOnDoubleClick:K,zoomActivationKeyPressed:O,lib:W,onTransformChange:Z,connectionInProgress:Q,paneClickDistance:ie,selectionOnDrag:te}){P&&!d.isZoomingOrPanning&&k();const re=V&&!O&&!P;p.clickDistance(te?1/0:!Ka(ie)||ie<0?0:ie);const ue=re?w9e({zoomPanValues:d,noWheelClassName:N,d3Selection:f,d3Zoom:p,panOnScrollMode:F,panOnScrollSpeed:q,zoomOnPinch:U,onPanZoomStart:l,onPanZoom:a,onPanZoomEnd:s}):k9e({noWheelClassName:N,preventScrolling:G,d3ZoomHandler:m});if(f.on("wheel.zoom",ue,{passive:!1}),!P){const ce=_9e({zoomPanValues:d,onDraggingChange:c,onPanZoomStart:l});p.on("start",ce);const pe=S9e({zoomPanValues:d,panOnDrag:B,onPaneContextMenu:!!H,onPanZoom:a,onTransformChange:Z});p.on("zoom",pe);const xe=E9e({zoomPanValues:d,panOnDrag:B,panOnScroll:V,onPaneContextMenu:H,onPanZoomEnd:s,onDraggingChange:c});p.on("end",xe)}const _e=C9e({zoomActivationKeyPressed:O,panOnDrag:B,zoomOnScroll:Y,panOnScroll:V,zoomOnDoubleClick:K,zoomOnPinch:U,userSelectionActive:P,noPanClassName:L,noWheelClassName:N,lib:W,connectionInProgress:Q});p.filter(_e),K?f.on("dblclick.zoom",v):f.on("dblclick.zoom",null)}function k(){p.on("zoom",null)}async function C(N,L,H){const P=W7(N),V=p?.constrain()(P,L,H);return V&&await w(V),new Promise(B=>B(V))}async function _(N,L){const H=W7(N);return await w(H,L),new Promise(P=>P(H))}function $(N){if(f){const L=W7(N),H=f.property("__zoom");(H.k!==N.zoom||H.x!==N.x||H.y!==N.y)&&p?.transform(f,L,null,{sync:!0})}}function R(){const N=f?mF(f.node()):{x:0,y:0,k:1};return{x:N.x,y:N.y,zoom:N.k}}function T(N,L){return f?new Promise(H=>{p?.interpolate(L?.interpolate==="linear"?N1:Dx).scaleTo(G7(f,L?.duration,L?.ease,()=>H(!0)),N)}):Promise.resolve(!1)}function A(N,L){return f?new Promise(H=>{p?.interpolate(L?.interpolate==="linear"?N1:Dx).scaleBy(G7(f,L?.duration,L?.ease,()=>H(!0)),N)}):Promise.resolve(!1)}function z(N){p?.scaleExtent(N)}function j(N){p?.translateExtent(N)}function I(N){const L=!Ka(N)||N<0?0:N;p?.clickDistance(L)}return{update:x,destroy:k,setViewport:_,setViewportConstrained:C,getViewport:R,scaleTo:T,scaleBy:A,setScaleExtent:z,setTranslateExtent:j,syncViewport:$,setClickDistance:I}}var df;(function(e){e.Line="line",e.Handle="handle"})(df||(df={}));function R9e({width:e,prevWidth:r,height:n,prevHeight:o,affectsX:i,affectsY:a}){const l=e-r,s=n-o,c=[l>0?1:l<0?-1:0,s>0?1:s<0?-1:0];return l&&i&&(c[0]=c[0]*-1),s&&a&&(c[1]=c[1]*-1),c}function lV(e){const r=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),o=e.includes("left"),i=e.includes("top");return{isHorizontal:r,isVertical:n,affectsX:o,affectsY:i}}function ad(e,r){return Math.max(0,r-e)}function ld(e,r){return Math.max(0,e-r)}function Jx(e,r,n){return Math.max(0,r-e,e-n)}function sV(e,r){return e?!r:r}function z9e(e,r,n,o,i,a,l,s){let{affectsX:c,affectsY:d}=r;const{isHorizontal:u,isVertical:p}=r,f=u&&p,{xSnapped:m,ySnapped:v}=n,{minWidth:w,maxWidth:x,minHeight:k,maxHeight:C}=o,{x:_,y:$,width:R,height:T,aspectRatio:A}=e;let z=Math.floor(u?m-e.pointerX:0),j=Math.floor(p?v-e.pointerY:0);const I=R+(c?-z:z),N=T+(d?-j:j),L=-a[0]*R,H=-a[1]*T;let P=Jx(I,w,x),V=Jx(N,k,C);if(l){let q=0,G=0;c&&z<0?q=ad(_+z+L,l[0][0]):!c&&z>0&&(q=ld(_+I+L,l[1][0])),d&&j<0?G=ad($+j+H,l[0][1]):!d&&j>0&&(G=ld($+N+H,l[1][1])),P=Math.max(P,q),V=Math.max(V,G)}if(s){let q=0,G=0;c&&z>0?q=ld(_+z,s[0][0]):!c&&z<0&&(q=ad(_+I,s[1][0])),d&&j>0?G=ld($+j,s[0][1]):!d&&j<0&&(G=ad($+N,s[1][1])),P=Math.max(P,q),V=Math.max(V,G)}if(i){if(u){const q=Jx(I/A,k,C)*A;if(P=Math.max(P,q),l){let G=0;!c&&!d||c&&!d&&f?G=ld($+H+I/A,l[1][1])*A:G=ad($+H+(c?z:-z)/A,l[0][1])*A,P=Math.max(P,G)}if(s){let G=0;!c&&!d||c&&!d&&f?G=ad($+I/A,s[1][1])*A:G=ld($+(c?z:-z)/A,s[0][1])*A,P=Math.max(P,G)}}if(p){const q=Jx(N*A,w,x)/A;if(V=Math.max(V,q),l){let G=0;!c&&!d||d&&!c&&f?G=ld(_+N*A+L,l[1][0])/A:G=ad(_+(d?j:-j)*A+L,l[0][0])/A,V=Math.max(V,G)}if(s){let G=0;!c&&!d||d&&!c&&f?G=ad(_+N*A,s[1][0])/A:G=ld(_+(d?j:-j)*A,s[0][0])/A,V=Math.max(V,G)}}}j=j+(j<0?V:-V),z=z+(z<0?P:-P),i&&(f?I>N*A?j=(sV(c,d)?-z:z)/A:z=(sV(c,d)?-j:j)*A:u?(j=z/A,d=c):(z=j*A,c=d));const B=c?_+z:_,F=d?$+j:$;return{width:R+(c?-z:z),height:T+(d?-j:j),x:a[0]*z*(c?-1:1)+B,y:a[1]*j*(d?-1:1)+F}}const cV={width:0,height:0,x:0,y:0},T9e={...cV,pointerX:0,pointerY:0,aspectRatio:1};function j9e(e){return[[0,0],[e.measured.width,e.measured.height]]}function A9e(e,r,n){const o=r.position.x+e.position.x,i=r.position.y+e.position.y,a=e.measured.width??0,l=e.measured.height??0,s=n[0]*a,c=n[1]*l;return[[o-s,i-c],[o+a-s,i+l-c]]}function D9e({domNode:e,nodeId:r,getStoreItems:n,onChange:o,onEnd:i}){const a=Ei(e);let l={controlDirection:lV("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:d,boundaries:u,keepAspectRatio:p,resizeDirection:f,onResizeStart:m,onResize:v,onResizeEnd:w,shouldResize:x}){let k={...cV},C={...T9e};l={boundaries:u,resizeDirection:f,keepAspectRatio:p,controlDirection:lV(d)};let _,$=null,R=[],T,A,z,j=!1;const I=FL().on("start",N=>{const{nodeLookup:L,transform:H,snapGrid:P,snapToGrid:V,nodeOrigin:B,paneDomNode:F}=n();if(_=L.get(r),!_)return;$=F?.getBoundingClientRect()??null;const{xSnapped:q,ySnapped:G}=Y1(N.sourceEvent,{transform:H,snapGrid:P,snapToGrid:V,containerBounds:$});k={width:_.measured.width??0,height:_.measured.height??0,x:_.position.x??0,y:_.position.y??0},C={...k,pointerX:q,pointerY:G,aspectRatio:k.width/k.height},T=void 0,_.parentId&&(_.extent==="parent"||_.expandParent)&&(T=L.get(_.parentId),A=T&&_.extent==="parent"?j9e(T):void 0),R=[],z=void 0;for(const[U,Y]of L)if(Y.parentId===r&&(R.push({id:U,position:{...Y.position},extent:Y.extent}),Y.extent==="parent"||Y.expandParent)){const K=A9e(Y,_,Y.origin??B);z?z=[[Math.min(K[0][0],z[0][0]),Math.min(K[0][1],z[0][1])],[Math.max(K[1][0],z[1][0]),Math.max(K[1][1],z[1][1])]]:z=K}m?.(N,{...k})}).on("drag",N=>{const{transform:L,snapGrid:H,snapToGrid:P,nodeOrigin:V}=n(),B=Y1(N.sourceEvent,{transform:L,snapGrid:H,snapToGrid:P,containerBounds:$}),F=[];if(!_)return;const{x:q,y:G,width:U,height:Y}=k,K={},O=_.origin??V,{width:W,height:Z,x:Q,y:ie}=z9e(C,l.controlDirection,B,l.boundaries,l.keepAspectRatio,O,A,z),te=W!==U,re=Z!==Y,ue=Q!==q&&te,_e=ie!==G&&re;if(!ue&&!_e&&!te&&!re)return;if((ue||_e||O[0]===1||O[1]===1)&&(K.x=ue?Q:k.x,K.y=_e?ie:k.y,k.x=K.x,k.y=K.y,R.length>0)){const xe=Q-q,je=ie-G;for(const Be of R)Be.position={x:Be.position.x-xe+O[0]*(W-U),y:Be.position.y-je+O[1]*(Z-Y)},F.push(Be)}if((te||re)&&(K.width=te&&(!l.resizeDirection||l.resizeDirection==="horizontal")?W:k.width,K.height=re&&(!l.resizeDirection||l.resizeDirection==="vertical")?Z:k.height,k.width=K.width,k.height=K.height),T&&_.expandParent){const xe=O[0]*(K.width??0);K.x&&K.x{j&&(w?.(N,{...k}),i?.({...k}),j=!1)});a.call(I)}function c(){a.on(".drag",null)}return{update:s,destroy:c}}function Y7(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var dV={exports:{}},X7={},uV={exports:{}},K7={},pV;function P9e(){if(pV)return K7;pV=1;var e=Zr;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,i=e.useEffect,a=e.useLayoutEffect,l=e.useDebugValue;function s(p,f){var m=f(),v=o({inst:{value:m,getSnapshot:f}}),w=v[0].inst,x=v[1];return a(function(){w.value=m,w.getSnapshot=f,c(w)&&x({inst:w})},[p,m,f]),i(function(){return c(w)&&x({inst:w}),p(function(){c(w)&&x({inst:w})})},[p]),l(m),m}function c(p){var f=p.getSnapshot;p=p.value;try{var m=f();return!n(p,m)}catch{return!0}}function d(p,f){return f()}var u=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?d:s;return K7.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:u,K7}var hV;function fV(){return hV||(hV=1,uV.exports=P9e()),uV.exports}var gV;function M9e(){if(gV)return X7;gV=1;var e=Zr,r=fV();function n(d,u){return d===u&&(d!==0||1/d===1/u)||d!==d&&u!==u}var o=typeof Object.is=="function"?Object.is:n,i=r.useSyncExternalStore,a=e.useRef,l=e.useEffect,s=e.useMemo,c=e.useDebugValue;return X7.useSyncExternalStoreWithSelector=function(d,u,p,f,m){var v=a(null);if(v.current===null){var w={hasValue:!1,value:null};v.current=w}else w=v.current;v=s(function(){function k(T){if(!C){if(C=!0,_=T,T=f(T),m!==void 0&&w.hasValue){var A=w.value;if(m(A,T))return $=A}return $=T}if(A=$,o(_,T))return A;var z=f(T);return m!==void 0&&m(A,z)?(_=T,A):(_=T,$=z)}var C=!1,_,$,R=p===void 0?null:p;return[function(){return k(u())},R===null?void 0:function(){return k(R())}]},[u,p,f,m]);var x=i(d,v[0],v[1]);return l(function(){w.hasValue=!0,w.value=x},[x]),c(x),x},X7}var mV;function N9e(){return mV||(mV=1,dV.exports=M9e()),dV.exports}var yV=N9e();const B9e=Y7(yV),I9e={},vV=e=>{let r;const n=new Set,o=(s,c)=>{const d=typeof s=="function"?s(r):s;if(!Object.is(d,r)){const u=r;r=c??(typeof d!="object"||d===null)?d:Object.assign({},r,d),n.forEach(p=>p(r,u))}},i=()=>r,a={setState:o,getState:i,getInitialState:()=>l,subscribe:s=>(n.add(s),()=>n.delete(s)),destroy:()=>{(I9e?"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,i,a);return a},O9e=e=>e?vV(e):vV,{useDebugValue:L9e}=Zr,{useSyncExternalStoreWithSelector:F9e}=B9e,V9e=e=>e;function bV(e,r=V9e,n){const o=F9e(e.subscribe,e.getState,e.getServerState||e.getInitialState,r,n);return L9e(o),o}const xV=(e,r)=>{const n=O9e(e),o=(i,a=r)=>bV(n,i,a);return Object.assign(o,n),o},q9e=(e,r)=>e?xV(e,r):xV;function jr(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,i]of e)if(!Object.is(i,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 ew=S.createContext(null),H9e=ew.Provider,wV=Gl.error001();function Dt(e,r){const n=S.useContext(ew);if(n===null)throw new Error(wV);return bV(n,e,r)}function vr(){const e=S.useContext(ew);if(e===null)throw new Error(wV);return S.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const kV={display:"none"},U9e={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},_V="react-flow__node-desc",SV="react-flow__edge-desc",W9e="react-flow__aria-live",G9e=e=>e.ariaLiveMessage,Y9e=e=>e.ariaLabelConfig;function X9e({rfId:e}){const r=Dt(G9e);return y.jsx("div",{id:`${W9e}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:U9e,children:r})}function K9e({rfId:e,disableKeyboardA11y:r}){const n=Dt(Y9e);return y.jsxs(y.Fragment,{children:[y.jsx("div",{id:`${_V}-${e}`,style:kV,children:r?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),y.jsx("div",{id:`${SV}-${e}`,style:kV,children:n["edge.a11yDescription.default"]}),!r&&y.jsx(X9e,{rfId:e})]})}const sd=S.forwardRef(({position:e="top-left",children:r,className:n,style:o,...i},a)=>{const l=`${e}`.split("-");return y.jsx("div",{className:dn(["react-flow__panel",n,...l]),style:o,ref:a,...i,children:r})});sd.displayName="Panel";function Z9e({proOptions:e,position:r="bottom-right"}){return e?.hideAttribution?null:y.jsx(sd,{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 Q9e=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}},tw=e=>e.id;function J9e(e,r){return jr(e.selectedNodes.map(tw),r.selectedNodes.map(tw))&&jr(e.selectedEdges.map(tw),r.selectedEdges.map(tw))}function eSe({onSelectionChange:e}){const r=vr(),{selectedNodes:n,selectedEdges:o}=Dt(Q9e,J9e);return S.useEffect(()=>{const i={nodes:n,edges:o};e?.(i),r.getState().onSelectionChangeHandlers.forEach(a=>a(i))},[n,o,e]),null}const tSe=e=>!!e.onSelectionChangeHandlers;function rSe({onSelectionChange:e}){const r=Dt(tSe);return e||r?y.jsx(eSe,{onSelectionChange:e}):null}const EV=[0,0],nSe={x:0,y:0,zoom:1},oSe=["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","ariaLabelConfig","zIndexMode"],CV=[...oSe,"rfId"],iSe=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}),$V={translateExtent:V1,nodeOrigin:EV,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function aSe(e){const{setNodes:r,setEdges:n,setMinZoom:o,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:l,reset:s,setDefaultNodesAndEdges:c}=Dt(iSe,jr),d=vr();S.useEffect(()=>(c(e.defaultNodes,e.defaultEdges),()=>{u.current=$V,s()}),[]);const u=S.useRef($V);return S.useEffect(()=>{for(const p of CV){const f=e[p],m=u.current[p];f!==m&&(typeof e[p]>"u"||(p==="nodes"?r(f):p==="edges"?n(f):p==="minZoom"?o(f):p==="maxZoom"?i(f):p==="translateExtent"?a(f):p==="nodeExtent"?l(f):p==="ariaLabelConfig"?d.setState({ariaLabelConfig:U7e(f)}):p==="fitView"?d.setState({fitViewQueued:f}):p==="fitViewOptions"?d.setState({fitViewOptions:f}):d.setState({[p]:f})))}u.current=e},CV.map(p=>e[p])),null}function RV(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function lSe(e){const[r,n]=S.useState(e==="system"?null:e);return S.useEffect(()=>{if(e!=="system"){n(e);return}const o=RV(),i=()=>n(o?.matches?"dark":"light");return i(),o?.addEventListener("change",i),()=>{o?.removeEventListener("change",i)}},[e]),r!==null?r:RV()?.matches?"dark":"light"}const zV=typeof document<"u"?document:null;function X1(e=null,r={target:zV,actInsideInputWithModifier:!0}){const[n,o]=S.useState(!1),i=S.useRef(!1),a=S.useRef(new Set([])),[l,s]=S.useMemo(()=>{if(e!==null){const c=(Array.isArray(e)?e:[e]).filter(u=>typeof u=="string").map(u=>u.replace("+",` `).replace(` `,` +`).split(` -`)),u=c.reduce((d,h)=>d.concat(...h),[]);return[c,u]}return[[],[]]},[e]);return E.useEffect(()=>{const c=r?.target??VV,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)&&KH(g))return!1;const b=UV(g.code,l);if(i.current.add(g[b]),qV(s,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)}},h=g=>{const b=UV(g.code,l);qV(s,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",h),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{c?.removeEventListener("keydown",d),c?.removeEventListener("keyup",h),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,o]),n}function qV(e,r,n){return e.filter(o=>n||o.length===r.size).some(o=>o.every(a=>r.has(a)))}function UV(e,r){return r.includes(e)?"code":"key"}const GTe=()=>{const e=Ar();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:s}=e.getState();return s?(await s.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:s,panZoom:l}=e.getState(),c=vu(r,o,a,i,s,n?.padding??.1);return l?(await l.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:s}=e.getState();if(!s)return r;const{x:l,y:c}=s.getBoundingClientRect(),u={x:r.x-l,y:r.y-c},d=n.snapGrid??a,h=n.snapToGrid??i;return w0(u,o,h,d)},flowToScreenPosition:r=>{const{transform:n,domNode:o}=e.getState();if(!o)return r;const{x:a,y:i}=o.getBoundingClientRect(),s=E3(r,n);return{x:s.x+a,y:s.y+i}}}),[])};function WV(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 s=o.get(i.id);s?s.push(i):o.set(i.id,[i])}for(const i of r){const s=o.get(i.id);if(!s){n.push(i);continue}if(s[0].type==="remove")continue;if(s[0].type==="replace"){n.push({...s[0].item});continue}const l={...i};for(const c of s)XTe(c,l);n.push(l)}return a.length&&a.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function XTe(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 $3(e,r){return WV(e,r)}function M3(e,r){return WV(e,r)}function pp(e,r){return{id:e,type:"select",selected:r}}function Lf(e,r=new Set,n=!1){const o=[];for(const[a,i]of e){const s=r.has(a);!(i.selected===void 0&&!s)&&i.selected!==s&&(n&&(i.selected=s),o.push(pp(i.id,s)))}return o}function YV({items:e=[],lookup:r}){const n=[],o=new Map(e.map(a=>[a.id,a]));for(const[a,i]of e.entries()){const s=r.get(i.id),l=s?.internals?.userNode??s;l!==void 0&&l!==i&&n.push({id:i.id,item:i,type:"replace"}),l===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 GV(e){return{id:e.id,type:"remove"}}const XV=e=>kCe(e),KTe=e=>jH(e);function KV(e){return E.forwardRef(e)}const ZTe=typeof window<"u"?E.useLayoutEffect:E.useEffect;function ZV(e){const[r,n]=E.useState(BigInt(0)),[o]=E.useState(()=>QTe(()=>n(a=>a+BigInt(1))));return ZTe(()=>{const a=o.get();a.length&&(e(a),o.reset())},[r]),o}function QTe(e){let r=[];return{get:()=>r,reset:()=>{r=[]},push:n=>{r.push(n),e()}}}const QV=E.createContext(null);function JTe({children:e}){const r=Ar(),n=E.useCallback(l=>{const{nodes:c=[],setNodes:u,hasDefaultNodes:d,onNodesChange:h,nodeLookup:f,fitViewQueued:g}=r.getState();let b=c;for(const w of l)b=typeof w=="function"?w(b):w;const x=YV({items:b,lookup:f});d&&u(b),x.length>0?h?.(x):g&&window.requestAnimationFrame(()=>{const{fitViewQueued:w,nodes:k,setNodes:C}=r.getState();w&&C(k)})},[]),o=ZV(n),a=E.useCallback(l=>{const{edges:c=[],setEdges:u,hasDefaultEdges:d,onEdgesChange:h,edgeLookup:f}=r.getState();let g=c;for(const b of l)g=typeof b=="function"?b(g):b;d?u(g):h&&h(YV({items:g,lookup:f}))},[]),i=ZV(a),s=E.useMemo(()=>({nodeQueue:o,edgeQueue:i}),[]);return y.jsx(QV.Provider,{value:s,children:e})}function eAe(){const e=E.useContext(QV);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const tAe=e=>!!e.panZoom;function Bf(){const e=GTe(),r=Ar(),n=eAe(),o=qt(tAe),a=E.useMemo(()=>{const i=h=>r.getState().nodeLookup.get(h),s=h=>{n.nodeQueue.push(h)},l=h=>{n.edgeQueue.push(h)},c=h=>{const{nodeLookup:f,nodeOrigin:g}=r.getState(),b=XV(h)?h:f.get(h.id),x=b.parentId?YH(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 dp(w)},u=(h,f,g={replace:!1})=>{s(b=>b.map(x=>{if(x.id===h){const w=typeof f=="function"?f(x):f;return g.replace&&XV(w)?w:{...x,...w}}return x}))},d=(h,f,g={replace:!1})=>{l(b=>b.map(x=>{if(x.id===h){const w=typeof f=="function"?f(x):f;return g.replace&&KTe(w)?w:{...x,...w}}return x}))};return{getNodes:()=>r.getState().nodes.map(h=>({...h})),getNode:h=>i(h)?.internals.userNode,getInternalNode:i,getEdges:()=>{const{edges:h=[]}=r.getState();return h.map(f=>({...f}))},getEdge:h=>r.getState().edgeLookup.get(h),setNodes:s,setEdges:l,addNodes:h=>{const f=Array.isArray(h)?h:[h];n.nodeQueue.push(g=>[...g,...f])},addEdges:h=>{const f=Array.isArray(h)?h:[h];n.edgeQueue.push(g=>[...g,...f])},toObject:()=>{const{nodes:h=[],edges:f=[],transform:g}=r.getState(),[b,x,w]=g;return{nodes:h.map(k=>({...k})),edges:f.map(k=>({...k})),viewport:{x:b,y:x,zoom:w}}},deleteElements:async({nodes:h=[],edges:f=[]})=>{const{nodes:g,edges:b,onNodesDelete:x,onEdgesDelete:w,triggerNodeChanges:k,triggerEdgeChanges:C,onDelete:_,onBeforeDelete:T}=r.getState(),{nodes:A,edges:R}=await CCe({nodesToRemove:h,edgesToRemove:f,nodes:g,edges:b,onBeforeDelete:T}),D=R.length>0,N=A.length>0;if(D){const M=R.map(GV);w?.(R),C(M)}if(N){const M=A.map(GV);x?.(A),k(M)}return(N||D)&&_?.({nodes:A,edges:R}),{deletedNodes:A,deletedEdges:R}},getIntersectingNodes:(h,f=!0,g)=>{const b=UH(h),x=b?h:c(h),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===h.id||!C.internals.positionAbsolute))return!1;const _=dp(w?k:C),T=v0(_,x);return f&&T>0||T>=_.width*_.height||T>=x.width*x.height}):[]},isNodeIntersecting:(h,f,g=!0)=>{const b=UH(h)?h:c(h);if(!b)return!1;const x=v0(b,f);return g&&x>0||x>=f.width*f.height||x>=b.width*b.height},updateNode:u,updateNodeData:(h,f,g={replace:!1})=>{u(h,b=>{const x=typeof f=="function"?f(b):f;return g.replace?{...b,data:x}:{...b,data:{...b.data,...x}}},g)},updateEdge:d,updateEdgeData:(h,f,g={replace:!1})=>{d(h,b=>{const x=typeof f=="function"?f(b):f;return g.replace?{...b,data:x}:{...b,data:{...b.data,...x}}},g)},getNodesBounds:h=>{const{nodeLookup:f,nodeOrigin:g}=r.getState();return LH(h,{nodeLookup:f,nodeOrigin:g})},getHandleConnections:({type:h,id:f,nodeId:g})=>Array.from(r.getState().connectionLookup.get(`${g}-${h}${f?`-${f}`:""}`)?.values()??[]),getNodeConnections:({type:h,handleId:f,nodeId:g})=>Array.from(r.getState().connectionLookup.get(`${g}${h?f?`-${h}-${f}`:`-${h}`:""}`)?.values()??[]),fitView:async h=>{const f=r.getState().fitViewResolver??NCe();return r.setState({fitViewQueued:!0,fitViewOptions:h,fitViewResolver:f}),n.nodeQueue.push(g=>[...g]),f.promise}}},[]);return E.useMemo(()=>({...a,...e,viewportInitialized:o}),[o])}const JV=e=>e.selected,rAe=typeof window<"u"?window:void 0;function nAe({deleteKeyCode:e,multiSelectionKeyCode:r}){const n=Ar(),{deleteElements:o}=Bf(),a=E0(e,{actInsideInputWithModifier:!1}),i=E0(r,{target:rAe});E.useEffect(()=>{if(a){const{edges:s,nodes:l}=n.getState();o({nodes:l.filter(JV),edges:s.filter(JV)}),n.setState({nodesSelectionActive:!1})}},[a]),E.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function oAe(e){const r=Ar();E.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const o=p9(e.current);(o.height===0||o.width===0)&&r.getState().onError?.("004",dl.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 P3={position:"absolute",width:"100%",height:"100%",top:0,left:0},aAe=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function iAe({onPaneContextMenu:e,zoomOnScroll:r=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:a=.5,panOnScrollMode:i=cp.Free,zoomOnDoubleClick:s=!0,panOnDrag:l=!0,defaultViewport:c,translateExtent:u,minZoom:d,maxZoom:h,zoomActivationKeyCode:f,preventScrolling:g=!0,children:b,noWheelClassName:x,noPanClassName:w,onViewportChange:k,isControlledViewport:C,paneClickDistance:_}){const T=Ar(),A=E.useRef(null),{userSelectionActive:R,lib:D,connectionInProgress:N}=qt(aAe,Kr),M=E0(f),O=E.useRef();oAe(A);const F=E.useCallback(L=>{k?.({x:L[0],y:L[1],zoom:L[2]}),C||T.setState({transform:L})},[k,C]);return E.useEffect(()=>{if(A.current){O.current=hTe({domNode:A.current,minZoom:d,maxZoom:h,translateExtent:u,viewport:c,paneClickDistance:_,onDraggingChange:V=>T.setState({paneDragging:V}),onPanZoomStart:(V,I)=>{const{onViewportChangeStart:H,onMoveStart:q}=T.getState();q?.(V,I),H?.(I)},onPanZoom:(V,I)=>{const{onViewportChange:H,onMove:q}=T.getState();q?.(V,I),H?.(I)},onPanZoomEnd:(V,I)=>{const{onViewportChangeEnd:H,onMoveEnd:q}=T.getState();q?.(V,I),H?.(I)}});const{x:L,y:U,zoom:P}=O.current.getViewport();return T.setState({panZoom:O.current,transform:[L,U,P],domNode:A.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:s,panOnDrag:l,zoomActivationKeyPressed:M,preventScrolling:g,noPanClassName:w,userSelectionActive:R,noWheelClassName:x,lib:D,onTransformChange:F,connectionInProgress:N})},[e,r,n,o,a,i,s,l,M,g,w,R,x,D,F,N]),y.jsx("div",{className:"react-flow__renderer",ref:A,style:P3,children:b})}const sAe=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function lAe(){const{userSelectionActive:e,userSelectionRect:r}=qt(sAe,Kr);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 C9=(e,r)=>n=>{n.target===r.current&&e?.(n)},cAe=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function uAe({isSelecting:e,selectionKeyPressed:r,selectionMode:n=y0.Full,panOnDrag:o,selectionOnDrag:a,onSelectionStart:i,onSelectionEnd:s,onPaneClick:l,onPaneContextMenu:c,onPaneScroll:u,onPaneMouseEnter:d,onPaneMouseMove:h,onPaneMouseLeave:f,children:g}){const b=Ar(),{userSelectionActive:x,elementsSelectable:w,dragging:k,connectionInProgress:C}=qt(cAe,Kr),_=w&&(e||x),T=E.useRef(null),A=E.useRef(),R=E.useRef(new Set),D=E.useRef(new Set),N=E.useRef(!1),M=E.useRef(!1),O=q=>{if(N.current||C){N.current=!1;return}l?.(q),b.getState().resetSelectedElements(),b.setState({nodesSelectionActive:!1})},F=q=>{if(Array.isArray(o)&&o?.includes(2)){q.preventDefault();return}c?.(q)},L=u?q=>u(q):void 0,U=q=>{(a&&T.current===q.target||!a||r)&&q.stopPropagation()},P=q=>{const{resetSelectedElements:Z,domNode:W}=b.getState();A.current=W?.getBoundingClientRect();const G=q.target!==T.current&&!!q.target.closest(".nokey"),K=a&&T.current===q.target||!a||r;if(!w||!e||q.button!==0||!A.current||G||!K||!q.isPrimary)return;q.stopPropagation(),q.preventDefault(),q.target?.setPointerCapture?.(q.pointerId),M.current=!0,N.current=!1;const{x:j,y:Y}=ls(q.nativeEvent,A.current);Z(),b.setState({userSelectionRect:{width:0,height:0,startX:j,startY:Y,x:j,y:Y}}),i?.(q)},V=q=>{const{userSelectionRect:Z,transform:W,nodeLookup:G,edgeLookup:K,connectionLookup:j,triggerNodeChanges:Y,triggerEdgeChanges:Q,defaultEdgeOptions:J}=b.getState();if(!A.current||!Z)return;N.current=!0;const{x:ie,y:ne}=ls(q.nativeEvent,A.current),{startX:re,startY:ge}=Z,De={startX:re,startY:ge,x:ieIe.id)),D.current=new Set;const Te=J?.selectable??!0;for(const Ie of R.current){const Ze=j.get(Ie);if(Ze)for(const{edgeId:rt}of Ze.values()){const Rt=K.get(rt);Rt&&(Rt.selectable??Te)&&D.current.add(rt)}}if(!GH(he,R.current)){const Ie=Lf(G,R.current,!0);Y(Ie)}if(!GH(me,D.current)){const Ie=Lf(K,D.current);Q(Ie)}b.setState({userSelectionRect:De,userSelectionActive:!0,nodesSelectionActive:!1})},I=q=>{if(q.button!==0||!M.current)return;q.target?.releasePointerCapture?.(q.pointerId);const{userSelectionRect:Z}=b.getState();!x&&Z&&q.target===T.current&&O?.(q),b.setState({userSelectionActive:!1,userSelectionRect:null,nodesSelectionActive:R.current.size>0}),s?.(q),(r||a)&&(N.current=!1),M.current=!1},H=o===!0||Array.isArray(o)&&o.includes(0);return y.jsxs("div",{className:_n(["react-flow__pane",{draggable:H,dragging:k,selection:e}]),onClick:_?void 0:C9(O,T),onContextMenu:C9(F,T),onWheel:C9(L,T),onPointerEnter:_?void 0:d,onPointerMove:_?V:h,onPointerUp:_?I:void 0,onPointerDownCapture:_?P:void 0,onClickCapture:_?U:void 0,onPointerLeave:f,ref:T,style:P3,children:[g,y.jsx(lAe,{})]})}function T9({id:e,store:r,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:a,unselectNodesAndEdges:i,multiSelectionActive:s,nodeLookup:l,onError:c}=r.getState(),u=l.get(e);if(!u){c?.("012",dl.error012(e));return}r.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&s)&&(i({nodes:[u],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):a([e])}function eq({nodeRef:e,disabled:r=!1,noDragClassName:n,handleSelector:o,nodeId:a,isSelectable:i,nodeClickDistance:s}){const l=Ar(),[c,u]=E.useState(!1),d=E.useRef();return E.useEffect(()=>{d.current=JCe({getStoreItems:()=>l.getState(),onNodeMouseDown:h=>{T9({id:h,store:l,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:s}),()=>{d.current?.destroy()}},[n,o,r,i,e,a]),c}const dAe=e=>r=>r.selected&&(r.draggable||e&&typeof r.draggable>"u");function tq(){const e=Ar();return E.useCallback(r=>{const{nodeExtent:n,snapToGrid:o,snapGrid:a,nodesDraggable:i,onError:s,updateNodePositions:l,nodeLookup:c,nodeOrigin:u}=e.getState(),d=new Map,h=dAe(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(!h(w))continue;let k={x:w.internals.positionAbsolute.x+b,y:w.internals.positionAbsolute.y+x};o&&(k=x0(k,a));const{position:C,positionAbsolute:_}=BH({nodeId:w.id,nextPosition:k,nodeLookup:c,nodeExtent:n,nodeOrigin:u,onError:s});w.position=C,w.internals.positionAbsolute=_,d.set(w.id,w)}l(d)},[])}const A9=E.createContext(null),pAe=A9.Provider;A9.Consumer;const R9=()=>E.useContext(A9),hAe=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),fAe=(e,r,n)=>o=>{const{connectionClickStartHandle:a,connectionMode:i,connection:s}=o,{fromHandle:l,toHandle:c,isValid:u}=s,d=c?.nodeId===e&&c?.id===r&&c?.type===n;return{connectingFrom:l?.nodeId===e&&l?.id===r&&l?.type===n,connectingTo:d,clickConnecting:a?.nodeId===e&&a?.id===r&&a?.type===n,isPossibleEndHandle:i===Df.Strict?l?.type!==n:e!==l?.nodeId||r!==l?.id,connectionInProcess:!!l,clickConnectionInProcess:!!a,valid:d&&u}};function mAe({type:e="source",position:r=tt.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:a=!0,isConnectableEnd:i=!0,id:s,onConnect:l,children:c,className:u,onMouseDown:d,onTouchStart:h,...f},g){const b=s||null,x=e==="target",w=Ar(),k=R9(),{connectOnClick:C,noPanClassName:_,rfId:T}=qt(hAe,Kr),{connectingFrom:A,connectingTo:R,clickConnecting:D,isPossibleEndHandle:N,connectionInProcess:M,clickConnectionInProcess:O,valid:F}=qt(fAe(k,b,e),Kr);k||w.getState().onError?.("010",dl.error010());const L=V=>{const{defaultEdgeOptions:I,onConnect:H,hasDefaultEdges:q}=w.getState(),Z={...I,...V};if(q){const{edges:W,setEdges:G}=w.getState();G(OCe(Z,W))}H?.(Z),l?.(Z)},U=V=>{if(!k)return;const I=ZH(V.nativeEvent);if(a&&(I&&V.button===0||!I)){const H=w.getState();x9.onPointerDown(V.nativeEvent,{handleDomNode:V.currentTarget,autoPanOnConnect:H.autoPanOnConnect,connectionMode:H.connectionMode,connectionRadius:H.connectionRadius,domNode:H.domNode,nodeLookup:H.nodeLookup,lib:H.lib,isTarget:x,handleId:b,nodeId:k,flowId:H.rfId,panBy:H.panBy,cancelConnection:H.cancelConnection,onConnectStart:H.onConnectStart,onConnectEnd:H.onConnectEnd,updateConnection:H.updateConnection,onConnect:L,isValidConnection:n||H.isValidConnection,getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:H.autoPanSpeed,dragThreshold:H.connectionDragThreshold})}I?d?.(V):h?.(V)},P=V=>{const{onClickConnectStart:I,onClickConnectEnd:H,connectionClickStartHandle:q,connectionMode:Z,isValidConnection:W,lib:G,rfId:K,nodeLookup:j,connection:Y}=w.getState();if(!k||!q&&!a)return;if(!q){I?.(V.nativeEvent,{nodeId:k,handleId:b,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:k,type:e,id:b}});return}const Q=XH(V.target),J=n||W,{connection:ie,isValid:ne}=x9.isValid(V.nativeEvent,{handle:{nodeId:k,id:b,type:e},connectionMode:Z,fromNodeId:q.nodeId,fromHandleId:q.id||null,fromType:q.type,isValidConnection:J,flowId:K,doc:Q,lib:G,nodeLookup:j});ne&&ie&&L(ie);const re=structuredClone(Y);delete re.inProgress,re.toPosition=re.toHandle?re.toHandle.position:null,H?.(V,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:_n(["react-flow__handle",`react-flow__handle-${r}`,"nodrag",_,u,{source:!x,target:x,connectable:o,connectablestart:a,connectableend:i,clickconnecting:D,connectingfrom:A,connectingto:R,valid:F,connectionindicator:o&&(!M||N)&&(M||O?i:a)}]),onMouseDown:U,onTouchStart:U,onClick:C?P:void 0,ref:g,...f,children:c})}const yo=E.memo(KV(mAe));function gAe({data:e,isConnectable:r,sourcePosition:n=tt.Bottom}){return y.jsxs(y.Fragment,{children:[e?.label,y.jsx(yo,{type:"source",position:n,isConnectable:r})]})}function yAe({data:e,isConnectable:r,targetPosition:n=tt.Top,sourcePosition:o=tt.Bottom}){return y.jsxs(y.Fragment,{children:[y.jsx(yo,{type:"target",position:n,isConnectable:r}),e?.label,y.jsx(yo,{type:"source",position:o,isConnectable:r})]})}function bAe(){return null}function vAe({data:e,isConnectable:r,targetPosition:n=tt.Top}){return y.jsxs(y.Fragment,{children:[y.jsx(yo,{type:"target",position:n,isConnectable:r}),e?.label]})}const z3={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},rq={input:gAe,default:yAe,output:vAe,group:bAe};function xAe(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 wAe=e=>{const{width:r,height:n,x:o,y:a}=$f(e.nodeLookup,{filter:i=>!!i.selected});return{width:ss(r)?r:null,height:ss(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 kAe({onSelectionContextMenu:e,noPanClassName:r,disableKeyboardA11y:n}){const o=Ar(),{width:a,height:i,transformString:s,userSelectionActive:l}=qt(wAe,Kr),c=tq(),u=E.useRef(null);if(E.useEffect(()=>{n||u.current?.focus({preventScroll:!0})},[n]),eq({nodeRef:u}),l||!a||!i)return null;const d=e?f=>{const g=o.getState().nodes.filter(b=>b.selected);e(f,g)}:void 0,h=f=>{Object.prototype.hasOwnProperty.call(z3,f.key)&&(f.preventDefault(),c({direction:z3[f.key],factor:f.shiftKey?4:1}))};return y.jsx("div",{className:_n(["react-flow__nodesselection","react-flow__container",r]),style:{transform:s},children:y.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:h,style:{width:a,height:i}})})}const nq=typeof window<"u"?window:void 0,_Ae=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function oq({children:e,onPaneClick:r,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:a,onPaneContextMenu:i,onPaneScroll:s,paneClickDistance:l,deleteKeyCode:c,selectionKeyCode:u,selectionOnDrag:d,selectionMode:h,onSelectionStart:f,onSelectionEnd:g,multiSelectionKeyCode:b,panActivationKeyCode:x,zoomActivationKeyCode:w,elementsSelectable:k,zoomOnScroll:C,zoomOnPinch:_,panOnScroll:T,panOnScrollSpeed:A,panOnScrollMode:R,zoomOnDoubleClick:D,panOnDrag:N,defaultViewport:M,translateExtent:O,minZoom:F,maxZoom:L,preventScrolling:U,onSelectionContextMenu:P,noWheelClassName:V,noPanClassName:I,disableKeyboardA11y:H,onViewportChange:q,isControlledViewport:Z}){const{nodesSelectionActive:W,userSelectionActive:G}=qt(_Ae),K=E0(u,{target:nq}),j=E0(x,{target:nq}),Y=j||N,Q=j||T,J=d&&Y!==!0,ie=K||G||J;return nAe({deleteKeyCode:c,multiSelectionKeyCode:b}),y.jsx(iAe,{onPaneContextMenu:i,elementsSelectable:k,zoomOnScroll:C,zoomOnPinch:_,panOnScroll:Q,panOnScrollSpeed:A,panOnScrollMode:R,zoomOnDoubleClick:D,panOnDrag:!K&&Y,defaultViewport:M,translateExtent:O,minZoom:F,maxZoom:L,zoomActivationKeyCode:w,preventScrolling:U,noWheelClassName:V,noPanClassName:I,onViewportChange:q,isControlledViewport:Z,paneClickDistance:l,children:y.jsxs(uAe,{onSelectionStart:f,onSelectionEnd:g,onPaneClick:r,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:a,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:Y,isSelecting:!!ie,selectionMode:h,selectionKeyPressed:K,selectionOnDrag:J,children:[e,W&&y.jsx(kAe,{onSelectionContextMenu:P,noPanClassName:I,disableKeyboardA11y:H})]})})}oq.displayName="FlowRenderer";const EAe=E.memo(oq),SAe=e=>r=>e?u9(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 CAe(e){return qt(E.useCallback(SAe(e),[e]),Kr)}const TAe=e=>e.updateNodeInternals;function AAe(){const e=qt(TAe),[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 RAe({node:e,nodeType:r,hasDimensions:n,resizeObserver:o}){const a=Ar(),i=E.useRef(null),s=E.useRef(null),l=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||s.current!==i.current)&&(s.current&&o?.unobserve(s.current),o?.observe(i.current),s.current=i.current)},[d,e.hidden]),E.useEffect(()=>()=>{s.current&&(o?.unobserve(s.current),s.current=null)},[]),E.useEffect(()=>{if(i.current){const h=u.current!==r,f=l.current!==e.sourcePosition,g=c.current!==e.targetPosition;(h||f||g)&&(u.current=r,l.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 NAe({id:e,onClick:r,onMouseEnter:n,onMouseMove:o,onMouseLeave:a,onContextMenu:i,onDoubleClick:s,nodesDraggable:l,elementsSelectable:c,nodesConnectable:u,nodesFocusable:d,resizeObserver:h,noDragClassName:f,noPanClassName:g,disableKeyboardA11y:b,rfId:x,nodeTypes:w,nodeClickDistance:k,onError:C}){const{node:_,internals:T,isParent:A}=qt(ne=>{const re=ne.nodeLookup.get(e),ge=ne.parentLookup.has(e);return{node:re,internals:re.internals,isParent:ge}},Kr);let R=_.type||"default",D=w?.[R]||rq[R];D===void 0&&(C?.("003",dl.error003(R)),R="default",D=w?.default||rq.default);const N=!!(_.draggable||l&&typeof _.draggable>"u"),M=!!(_.selectable||c&&typeof _.selectable>"u"),O=!!(_.connectable||u&&typeof _.connectable>"u"),F=!!(_.focusable||d&&typeof _.focusable>"u"),L=Ar(),U=WH(_),P=RAe({node:_,nodeType:R,hasDimensions:U,resizeObserver:h}),V=eq({nodeRef:P,disabled:_.hidden||!N,noDragClassName:f,handleSelector:_.dragHandle,nodeId:e,isSelectable:M,nodeClickDistance:k}),I=tq();if(_.hidden)return null;const H=ao(_),q=xAe(_),Z=M||N||r||n||o||a,W=n?ne=>n(ne,{...T.userNode}):void 0,G=o?ne=>o(ne,{...T.userNode}):void 0,K=a?ne=>a(ne,{...T.userNode}):void 0,j=i?ne=>i(ne,{...T.userNode}):void 0,Y=s?ne=>s(ne,{...T.userNode}):void 0,Q=ne=>{const{selectNodesOnDrag:re,nodeDragThreshold:ge}=L.getState();M&&(!re||!N||ge>0)&&T9({id:e,store:L,nodeRef:P}),r&&r(ne,{...T.userNode})},J=ne=>{if(!(KH(ne.nativeEvent)||b)){if(MH.includes(ne.key)&&M){const re=ne.key==="Escape";T9({id:e,store:L,unselect:re,nodeRef:P})}else if(N&&_.selected&&Object.prototype.hasOwnProperty.call(z3,ne.key)){ne.preventDefault();const{ariaLabelConfig:re}=L.getState();L.setState({ariaLiveMessage:re["node.a11yDescription.ariaLiveMessage"]({direction:ne.key.replace("Arrow","").toLowerCase(),x:~~T.positionAbsolute.x,y:~~T.positionAbsolute.y})}),I({direction:z3[ne.key],factor:ne.shiftKey?4:1})}}},ie=()=>{if(b||!P.current?.matches(":focus-visible"))return;const{transform:ne,width:re,height:ge,autoPanOnNodeFocus:De,setCenter:he}=L.getState();De&&(u9(new Map([[e,_]]),{x:0,y:0,width:re,height:ge},ne,!0).length>0||he(_.position.x+H.width/2,_.position.y+H.height/2,{zoom:ne[2]}))};return y.jsx("div",{className:_n(["react-flow__node",`react-flow__node-${R}`,{[g]:N},_.className,{selected:_.selected,selectable:M,parent:A,draggable:N,dragging:V}]),ref:P,style:{zIndex:T.z,transform:`translate(${T.positionAbsolute.x}px,${T.positionAbsolute.y}px)`,pointerEvents:Z?"all":"none",visibility:U?"visible":"hidden",..._.style,...q},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:W,onMouseMove:G,onMouseLeave:K,onContextMenu:j,onClick:Q,onDoubleClick:Y,onKeyDown:F?J:void 0,tabIndex:F?0:void 0,onFocus:F?ie:void 0,role:_.ariaRole??(F?"group":void 0),"aria-roledescription":"node","aria-describedby":b?void 0:`${OV}-${x}`,"aria-label":_.ariaLabel,..._.domAttributes,children:y.jsx(pAe,{value:e,children:y.jsx(D,{id:e,data:_.data,type:R,positionAbsoluteX:T.positionAbsolute.x,positionAbsoluteY:T.positionAbsolute.y,selected:_.selected??!1,selectable:M,draggable:N,deletable:_.deletable??!0,isConnectable:O,sourcePosition:_.sourcePosition,targetPosition:_.targetPosition,dragging:V,dragHandle:_.dragHandle,zIndex:T.z,parentId:_.parentId,...H})})})}var DAe=E.memo(NAe);const $Ae=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function aq(e){const{nodesDraggable:r,nodesConnectable:n,nodesFocusable:o,elementsSelectable:a,onError:i}=qt($Ae,Kr),s=CAe(e.onlyRenderVisibleElements),l=AAe();return y.jsx("div",{className:"react-flow__nodes",style:P3,children:s.map(c=>y.jsx(DAe,{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:l,nodesDraggable:r,nodesConnectable:n,nodesFocusable:o,elementsSelectable:a,nodeClickDistance:e.nodeClickDistance,onError:i},c))})}aq.displayName="NodeRenderer";const MAe=E.memo(aq);function PAe(e){return qt(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]),Kr)}const zAe=({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"})},IAe=({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"})},iq={[x3.Arrow]:zAe,[x3.ArrowClosed]:IAe};function OAe(e){const r=Ar();return E.useMemo(()=>Object.prototype.hasOwnProperty.call(iq,e)?iq[e]:(r.getState().onError?.("009",dl.error009(e)),null),[e])}const jAe=({id:e,type:r,color:n,width:o=12.5,height:a=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:l="auto-start-reverse"})=>{const c=OAe(r);return c?y.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:l,refX:"0",refY:"0",children:y.jsx(c,{color:n,strokeWidth:s})}):null},sq=({defaultColor:e,rfId:r})=>{const n=qt(i=>i.edges),o=qt(i=>i.defaultEdgeOptions),a=E.useMemo(()=>FCe(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(jAe,{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};sq.displayName="MarkerDefinitions";var LAe=E.memo(sq);function lq({x:e,y:r,label:n,labelStyle:o,labelShowBg:a=!0,labelBgStyle:i,labelBgPadding:s=[2,4],labelBgBorderRadius:l=2,children:c,className:u,...d}){const[h,f]=E.useState({x:1,y:0,width:0,height:0}),g=_n(["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-h.width/2} ${r-h.height/2})`,className:g,visibility:h.width?"visible":"hidden",...d,children:[a&&y.jsx("rect",{width:h.width+2*s[0],x:-s[0],y:-s[1],height:h.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:l,ry:l}),y.jsx("text",{className:"react-flow__edge-text",y:h.height/2,dy:"0.3em",ref:b,style:o,children:n}),c]}):null}lq.displayName="EdgeText";const BAe=E.memo(lq);function I3({path:e,labelX:r,labelY:n,label:o,labelStyle:a,labelShowBg:i,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:c,interactionWidth:u=20,...d}){return y.jsxs(y.Fragment,{children:[y.jsx("path",{...d,d:e,fill:"none",className:_n(["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&&ss(r)&&ss(n)?y.jsx(BAe,{x:r,y:n,label:o,labelStyle:a,labelShowBg:i,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:c}):null]})}function cq({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 uq({sourceX:e,sourceY:r,sourcePosition:n=tt.Bottom,targetX:o,targetY:a,targetPosition:i=tt.Top}){const[s,l]=cq({pos:n,x1:e,y1:r,x2:o,y2:a}),[c,u]=cq({pos:i,x1:o,y1:a,x2:e,y2:r}),[d,h,f,g]=JH({sourceX:e,sourceY:r,targetX:o,targetY:a,sourceControlX:s,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${r} C${s},${l} ${c},${u} ${o},${a}`,d,h,f,g]}function dq(e){return E.memo(({id:r,sourceX:n,sourceY:o,targetX:a,targetY:i,sourcePosition:s,targetPosition:l,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:g,style:b,markerEnd:x,markerStart:w,interactionWidth:k})=>{const[C,_,T]=uq({sourceX:n,sourceY:o,sourcePosition:s,targetX:a,targetY:i,targetPosition:l}),A=e.isInternal?void 0:r;return y.jsx(I3,{id:A,path:C,labelX:_,labelY:T,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:g,style:b,markerEnd:x,markerStart:w,interactionWidth:k})})}const FAe=dq({isInternal:!1}),pq=dq({isInternal:!0});FAe.displayName="SimpleBezierEdge",pq.displayName="SimpleBezierEdgeInternal";function hq(e){return E.memo(({id:r,sourceX:n,sourceY:o,targetX:a,targetY:i,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,sourcePosition:g=tt.Bottom,targetPosition:b=tt.Top,markerEnd:x,markerStart:w,pathOptions:k,interactionWidth:C})=>{const[_,T,A]=T3({sourceX:n,sourceY:o,sourcePosition:g,targetX:a,targetY:i,targetPosition:b,borderRadius:k?.borderRadius,offset:k?.offset,stepPosition:k?.stepPosition}),R=e.isInternal?void 0:r;return y.jsx(I3,{id:R,path:_,labelX:T,labelY:A,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:x,markerStart:w,interactionWidth:C})})}const fq=hq({isInternal:!1}),mq=hq({isInternal:!0});fq.displayName="SmoothStepEdge",mq.displayName="SmoothStepEdgeInternal";function gq(e){return E.memo(({id:r,...n})=>{const o=e.isInternal?void 0:r;return y.jsx(fq,{...n,id:o,pathOptions:E.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const HAe=gq({isInternal:!1}),yq=gq({isInternal:!0});HAe.displayName="StepEdge",yq.displayName="StepEdgeInternal";function bq(e){return E.memo(({id:r,sourceX:n,sourceY:o,targetX:a,targetY:i,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:g,markerStart:b,interactionWidth:x})=>{const[w,k,C]=rV({sourceX:n,sourceY:o,targetX:a,targetY:i}),_=e.isInternal?void 0:r;return y.jsx(I3,{id:_,path:w,labelX:k,labelY:C,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:g,markerStart:b,interactionWidth:x})})}const VAe=bq({isInternal:!1}),vq=bq({isInternal:!0});VAe.displayName="StraightEdge",vq.displayName="StraightEdgeInternal";function xq(e){return E.memo(({id:r,sourceX:n,sourceY:o,targetX:a,targetY:i,sourcePosition:s=tt.Bottom,targetPosition:l=tt.Top,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:g,style:b,markerEnd:x,markerStart:w,pathOptions:k,interactionWidth:C})=>{const[_,T,A]=C3({sourceX:n,sourceY:o,sourcePosition:s,targetX:a,targetY:i,targetPosition:l,curvature:k?.curvature}),R=e.isInternal?void 0:r;return y.jsx(I3,{id:R,path:_,labelX:T,labelY:A,label:c,labelStyle:u,labelShowBg:d,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:g,style:b,markerEnd:x,markerStart:w,interactionWidth:C})})}const qAe=xq({isInternal:!1}),wq=xq({isInternal:!0});qAe.displayName="BezierEdge",wq.displayName="BezierEdgeInternal";const kq={default:wq,straight:vq,step:yq,smoothstep:mq,simplebezier:pq},_q={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},UAe=(e,r,n)=>n===tt.Left?e-r:n===tt.Right?e+r:e,WAe=(e,r,n)=>n===tt.Top?e-r:n===tt.Bottom?e+r:e,Eq="react-flow__edgeupdater";function Sq({position:e,centerX:r,centerY:n,radius:o=10,onMouseDown:a,onMouseEnter:i,onMouseOut:s,type:l}){return y.jsx("circle",{onMouseDown:a,onMouseEnter:i,onMouseOut:s,className:_n([Eq,`${Eq}-${l}`]),cx:UAe(r,o,e),cy:WAe(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function YAe({isReconnectable:e,reconnectRadius:r,edge:n,sourceX:o,sourceY:a,targetX:i,targetY:s,sourcePosition:l,targetPosition:c,onReconnect:u,onReconnectStart:d,onReconnectEnd:h,setReconnecting:f,setUpdateHover:g}){const b=Ar(),x=(T,A)=>{if(T.button!==0)return;const{autoPanOnConnect:R,domNode:D,isValidConnection:N,connectionMode:M,connectionRadius:O,lib:F,onConnectStart:L,onConnectEnd:U,cancelConnection:P,nodeLookup:V,rfId:I,panBy:H,updateConnection:q}=b.getState(),Z=A.type==="target",W=(j,Y)=>{f(!1),h?.(j,n,A.type,Y)},G=j=>u?.(n,j),K=(j,Y)=>{f(!0),d?.(T,n,A.type),L?.(j,Y)};x9.onPointerDown(T.nativeEvent,{autoPanOnConnect:R,connectionMode:M,connectionRadius:O,domNode:D,handleId:A.id,nodeId:A.nodeId,nodeLookup:V,isTarget:Z,edgeUpdaterType:A.type,lib:F,flowId:I,cancelConnection:P,panBy:H,isValidConnection:N,onConnect:G,onConnectStart:K,onConnectEnd:U,onReconnectEnd:W,updateConnection:q,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(Sq,{position:l,centerX:o,centerY:a,radius:r,onMouseDown:w,onMouseEnter:C,onMouseOut:_,type:"source"}),(e===!0||e==="target")&&y.jsx(Sq,{position:c,centerX:i,centerY:s,radius:r,onMouseDown:k,onMouseEnter:C,onMouseOut:_,type:"target"})]})}function GAe({id:e,edgesFocusable:r,edgesReconnectable:n,elementsSelectable:o,onClick:a,onDoubleClick:i,onContextMenu:s,onMouseEnter:l,onMouseMove:c,onMouseLeave:u,reconnectRadius:d,onReconnect:h,onReconnectStart:f,onReconnectEnd:g,rfId:b,edgeTypes:x,noPanClassName:w,onError:k,disableKeyboardA11y:C}){let _=qt(he=>he.edgeLookup.get(e));const T=qt(he=>he.defaultEdgeOptions);_=T?{...T,..._}:_;let A=_.type||"default",R=x?.[A]||kq[A];R===void 0&&(k?.("011",dl.error011(A)),A="default",R=x?.default||kq.default);const D=!!(_.focusable||r&&typeof _.focusable>"u"),N=typeof h<"u"&&(_.reconnectable||n&&typeof _.reconnectable>"u"),M=!!(_.selectable||o&&typeof _.selectable>"u"),O=E.useRef(null),[F,L]=E.useState(!1),[U,P]=E.useState(!1),V=Ar(),{zIndex:I,sourceX:H,sourceY:q,targetX:Z,targetY:W,sourcePosition:G,targetPosition:K}=qt(E.useCallback(he=>{const me=he.nodeLookup.get(_.source),Te=he.nodeLookup.get(_.target);if(!me||!Te)return{zIndex:_.zIndex,..._q};const Ie=iV({id:e,sourceNode:me,targetNode:Te,sourceHandle:_.sourceHandle||null,targetHandle:_.targetHandle||null,connectionMode:he.connectionMode,onError:k});return{zIndex:MCe({selected:_.selected,zIndex:_.zIndex,sourceNode:me,targetNode:Te,elevateOnSelect:he.elevateEdgesOnSelect}),...Ie||_q}},[_.source,_.target,_.sourceHandle,_.targetHandle,_.selected,_.zIndex]),Kr),j=E.useMemo(()=>_.markerStart?`url('#${h9(_.markerStart,b)}')`:void 0,[_.markerStart,b]),Y=E.useMemo(()=>_.markerEnd?`url('#${h9(_.markerEnd,b)}')`:void 0,[_.markerEnd,b]);if(_.hidden||H===null||q===null||Z===null||W===null)return null;const Q=he=>{const{addSelectedEdges:me,unselectNodesAndEdges:Te,multiSelectionActive:Ie}=V.getState();M&&(V.setState({nodesSelectionActive:!1}),_.selected&&Ie?(Te({nodes:[],edges:[_]}),O.current?.blur()):me([e])),a&&a(he,_)},J=i?he=>{i(he,{..._})}:void 0,ie=s?he=>{s(he,{..._})}:void 0,ne=l?he=>{l(he,{..._})}:void 0,re=c?he=>{c(he,{..._})}:void 0,ge=u?he=>{u(he,{..._})}:void 0,De=he=>{if(!C&&MH.includes(he.key)&&M){const{unselectNodesAndEdges:me,addSelectedEdges:Te}=V.getState();he.key==="Escape"?(O.current?.blur(),me({edges:[_]})):Te([e])}};return y.jsx("svg",{style:{zIndex:I},children:y.jsxs("g",{className:_n(["react-flow__edge",`react-flow__edge-${A}`,_.className,w,{selected:_.selected,animated:_.animated,inactive:!M&&!a,updating:F,selectable:M}]),onClick:Q,onDoubleClick:J,onContextMenu:ie,onMouseEnter:ne,onMouseMove:re,onMouseLeave:ge,onKeyDown:D?De: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?`${jV}-${b}`:void 0,ref:O,..._.domAttributes,children:[!U&&y.jsx(R,{id:e,source:_.source,target:_.target,type:_.type,selected:_.selected,animated:_.animated,selectable:M,deletable:_.deletable??!0,label:_.label,labelStyle:_.labelStyle,labelShowBg:_.labelShowBg,labelBgStyle:_.labelBgStyle,labelBgPadding:_.labelBgPadding,labelBgBorderRadius:_.labelBgBorderRadius,sourceX:H,sourceY:q,targetX:Z,targetY:W,sourcePosition:G,targetPosition:K,data:_.data,style:_.style,sourceHandleId:_.sourceHandle,targetHandleId:_.targetHandle,markerStart:j,markerEnd:Y,pathOptions:"pathOptions"in _?_.pathOptions:void 0,interactionWidth:_.interactionWidth}),N&&y.jsx(YAe,{edge:_,isReconnectable:N,reconnectRadius:d,onReconnect:h,onReconnectStart:f,onReconnectEnd:g,sourceX:H,sourceY:q,targetX:Z,targetY:W,sourcePosition:G,targetPosition:K,setUpdateHover:L,setReconnecting:P})]})})}var XAe=E.memo(GAe);const KAe=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Cq({defaultMarkerColor:e,onlyRenderVisibleElements:r,rfId:n,edgeTypes:o,noPanClassName:a,onReconnect:i,onEdgeContextMenu:s,onEdgeMouseEnter:l,onEdgeMouseMove:c,onEdgeMouseLeave:u,onEdgeClick:d,reconnectRadius:h,onEdgeDoubleClick:f,onReconnectStart:g,onReconnectEnd:b,disableKeyboardA11y:x}){const{edgesFocusable:w,edgesReconnectable:k,elementsSelectable:C,onError:_}=qt(KAe,Kr),T=PAe(r);return y.jsxs("div",{className:"react-flow__edges",children:[y.jsx(LAe,{defaultColor:e,rfId:n}),T.map(A=>y.jsx(XAe,{id:A,edgesFocusable:w,edgesReconnectable:k,elementsSelectable:C,noPanClassName:a,onReconnect:i,onContextMenu:s,onMouseEnter:l,onMouseMove:c,onMouseLeave:u,onClick:d,reconnectRadius:h,onDoubleClick:f,onReconnectStart:g,onReconnectEnd:b,rfId:n,onError:_,edgeTypes:o,disableKeyboardA11y:x},A))]})}Cq.displayName="EdgeRenderer";const ZAe=E.memo(Cq),QAe=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function JAe({children:e}){const r=qt(QAe);return y.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:r},children:e})}function eRe(e){const r=Bf(),n=E.useRef(!1);E.useEffect(()=>{!n.current&&r.viewportInitialized&&e&&(setTimeout(()=>e(r),1),n.current=!0)},[e,r.viewportInitialized])}const tRe=e=>e.panZoom?.syncViewport;function rRe(e){const r=qt(tRe),n=Ar();return E.useEffect(()=>{e&&(r?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,r]),null}function nRe(e){return e.connection.inProgress?{...e.connection,to:w0(e.connection.to,e.transform)}:{...e.connection}}function oRe(e){return nRe}function aRe(e){const r=oRe();return qt(r,Kr)}const iRe=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function sRe({containerStyle:e,style:r,type:n,component:o}){const{nodesConnectable:a,width:i,height:s,isValid:l,inProgress:c}=qt(iRe,Kr);return i&&a&&c?y.jsx("svg",{style:e,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:y.jsx("g",{className:_n(["react-flow__connection",OH(l)]),children:y.jsx(Tq,{style:r,type:n,CustomComponent:o,isValid:l})})}):null}const Tq=({style:e,type:r=bu.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:a,from:i,fromNode:s,fromHandle:l,fromPosition:c,to:u,toNode:d,toHandle:h,toPosition:f}=aRe();if(!a)return;if(n)return y.jsx(n,{connectionLineType:r,connectionLineStyle:e,fromNode:s,fromHandle:l,fromX:i.x,fromY:i.y,toX:u.x,toY:u.y,fromPosition:c,toPosition:f,connectionStatus:OH(o),toNode:d,toHandle:h});let g="";const b={sourceX:i.x,sourceY:i.y,sourcePosition:c,targetX:u.x,targetY:u.y,targetPosition:f};switch(r){case bu.Bezier:[g]=C3(b);break;case bu.SimpleBezier:[g]=uq(b);break;case bu.Step:[g]=T3({...b,borderRadius:0});break;case bu.SmoothStep:[g]=T3(b);break;default:[g]=rV(b)}return y.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};Tq.displayName="ConnectionLine";const lRe={};function Aq(e=lRe){E.useRef(e),Ar(),E.useEffect(()=>{},[e])}function cRe(){Ar(),E.useRef(!1),E.useEffect(()=>{},[])}function Rq({nodeTypes:e,edgeTypes:r,onInit:n,onNodeClick:o,onEdgeClick:a,onNodeDoubleClick:i,onEdgeDoubleClick:s,onNodeMouseEnter:l,onNodeMouseMove:c,onNodeMouseLeave:u,onNodeContextMenu:d,onSelectionContextMenu:h,onSelectionStart:f,onSelectionEnd:g,connectionLineType:b,connectionLineStyle:x,connectionLineComponent:w,connectionLineContainerStyle:k,selectionKeyCode:C,selectionOnDrag:_,selectionMode:T,multiSelectionKeyCode:A,panActivationKeyCode:R,zoomActivationKeyCode:D,deleteKeyCode:N,onlyRenderVisibleElements:M,elementsSelectable:O,defaultViewport:F,translateExtent:L,minZoom:U,maxZoom:P,preventScrolling:V,defaultMarkerColor:I,zoomOnScroll:H,zoomOnPinch:q,panOnScroll:Z,panOnScrollSpeed:W,panOnScrollMode:G,zoomOnDoubleClick:K,panOnDrag:j,onPaneClick:Y,onPaneMouseEnter:Q,onPaneMouseMove:J,onPaneMouseLeave:ie,onPaneScroll:ne,onPaneContextMenu:re,paneClickDistance:ge,nodeClickDistance:De,onEdgeContextMenu:he,onEdgeMouseEnter:me,onEdgeMouseMove:Te,onEdgeMouseLeave:Ie,reconnectRadius:Ze,onReconnect:rt,onReconnectStart:Rt,onReconnectEnd:Qe,noDragClassName:Pt,noWheelClassName:Ke,noPanClassName:Ge,disableKeyboardA11y:ct,nodeExtent:ut,rfId:Ir,viewport:Ee,onViewportChange:Se}){return Aq(e),Aq(r),cRe(),eRe(n),rRe(Ee),y.jsx(EAe,{onPaneClick:Y,onPaneMouseEnter:Q,onPaneMouseMove:J,onPaneMouseLeave:ie,onPaneContextMenu:re,onPaneScroll:ne,paneClickDistance:ge,deleteKeyCode:N,selectionKeyCode:C,selectionOnDrag:_,selectionMode:T,onSelectionStart:f,onSelectionEnd:g,multiSelectionKeyCode:A,panActivationKeyCode:R,zoomActivationKeyCode:D,elementsSelectable:O,zoomOnScroll:H,zoomOnPinch:q,zoomOnDoubleClick:K,panOnScroll:Z,panOnScrollSpeed:W,panOnScrollMode:G,panOnDrag:j,defaultViewport:F,translateExtent:L,minZoom:U,maxZoom:P,onSelectionContextMenu:h,preventScrolling:V,noDragClassName:Pt,noWheelClassName:Ke,noPanClassName:Ge,disableKeyboardA11y:ct,onViewportChange:Se,isControlledViewport:!!Ee,children:y.jsxs(JAe,{children:[y.jsx(ZAe,{edgeTypes:r,onEdgeClick:a,onEdgeDoubleClick:s,onReconnect:rt,onReconnectStart:Rt,onReconnectEnd:Qe,onlyRenderVisibleElements:M,onEdgeContextMenu:he,onEdgeMouseEnter:me,onEdgeMouseMove:Te,onEdgeMouseLeave:Ie,reconnectRadius:Ze,defaultMarkerColor:I,noPanClassName:Ge,disableKeyboardA11y:ct,rfId:Ir}),y.jsx(sRe,{style:x,type:b,component:w,containerStyle:k}),y.jsx("div",{className:"react-flow__edgelabel-renderer"}),y.jsx(MAe,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:i,onNodeMouseEnter:l,onNodeMouseMove:c,onNodeMouseLeave:u,onNodeContextMenu:d,nodeClickDistance:De,onlyRenderVisibleElements:M,noPanClassName:Ge,noDragClassName:Pt,disableKeyboardA11y:ct,nodeExtent:ut,rfId:Ir}),y.jsx("div",{className:"react-flow__viewport-portal"})]})})}Rq.displayName="GraphView";const uRe=E.memo(Rq),Nq=({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,width:a,height:i,fitView:s,fitViewOptions:l,minZoom:c=.5,maxZoom:u=2,nodeOrigin:d,nodeExtent:h}={})=>{const f=new Map,g=new Map,b=new Map,x=new Map,w=o??r??[],k=n??e??[],C=d??[0,0],_=h??g0;pV(b,x,w);const T=g9(k,f,g,{nodeOrigin:C,nodeExtent:_,elevateNodesOnSelect:!1});let A=[0,0,1];if(s&&a&&i){const R=$f(f,{filter:O=>!!((O.width||O.initialWidth)&&(O.height||O.initialHeight))}),{x:D,y:N,zoom:M}=vu(R,a,i,c,u,l?.padding??.1);A=[D,N,M]}return{rfId:"1",width:a??0,height:i??0,transform:A,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:g0,nodeExtent:_,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Df.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:s??!1,fitViewOptions:l,fitViewResolver:null,connection:{...zH},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:TCe,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:PH}},dRe=({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,width:a,height:i,fitView:s,fitViewOptions:l,minZoom:c,maxZoom:u,nodeOrigin:d,nodeExtent:h})=>RTe((f,g)=>{async function b(){const{nodeLookup:x,panZoom:w,fitViewOptions:k,fitViewResolver:C,width:_,height:T,minZoom:A,maxZoom:R}=g();w&&(await SCe({nodes:x,width:_,height:T,panZoom:w,minZoom:A,maxZoom:R},k),C?.resolve(!0),f({fitViewResolver:null}))}return{...Nq({nodes:e,edges:r,width:a,height:i,fitView:s,fitViewOptions:l,minZoom:c,maxZoom:u,nodeOrigin:d,nodeExtent:h,defaultNodes:n,defaultEdges:o}),setNodes:x=>{const{nodeLookup:w,parentLookup:k,nodeOrigin:C,elevateNodesOnSelect:_,fitViewQueued:T}=g(),A=g9(x,w,k,{nodeOrigin:C,nodeExtent:h,elevateNodesOnSelect:_,checkEquality:!0});T&&A?(b(),f({nodes:x,nodesInitialized:A,fitViewQueued:!1,fitViewOptions:void 0})):f({nodes:x,nodesInitialized:A})},setEdges:x=>{const{connectionLookup:w,edgeLookup:k}=g();pV(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:A,debug:R,fitViewQueued:D}=g(),{changes:N,updatedInternals:M}=XCe(x,k,C,_,T,A);M&&(UCe(k,C,{nodeOrigin:T,nodeExtent:A}),D?(b(),f({fitViewQueued:!1,fitViewOptions:void 0})):f({}),N?.length>0&&(R&&console.log("React Flow: trigger node changes",N),w?.(N)))},updateNodePositions:(x,w=!1)=>{const k=[],C=[],{nodeLookup:_,triggerNodeChanges:T}=g();for(const[A,R]of x){const D=_.get(A),N=!!(D?.expandParent&&D?.parentId&&R?.position),M={id:A,type:"position",position:N?{x:Math.max(0,R.position.x),y:Math.max(0,R.position.y)}:R.position,dragging:w};N&&D.parentId&&k.push({id:A,parentId:D.parentId,rect:{...R.internals.positionAbsolute,width:R.measured.width??0,height:R.measured.height??0}}),C.push(M)}if(k.length>0){const{parentLookup:A,nodeOrigin:R}=g(),D=b9(k,_,A,R);C.push(...D)}T(C)},triggerNodeChanges:x=>{const{onNodesChange:w,setNodes:k,nodes:C,hasDefaultNodes:_,debug:T}=g();if(x?.length){if(_){const A=$3(x,C);k(A)}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 A=M3(x,C);k(A)}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 A=x.map(R=>pp(R,!0));_(A);return}_(Lf(C,new Set([...x]),!0)),T(Lf(k))},addSelectedEdges:x=>{const{multiSelectionActive:w,edgeLookup:k,nodeLookup:C,triggerNodeChanges:_,triggerEdgeChanges:T}=g();if(w){const A=x.map(R=>pp(R,!0));T(A);return}T(Lf(k,new Set([...x]))),_(Lf(C,new Set,!0))},unselectNodesAndEdges:({nodes:x,edges:w}={})=>{const{edges:k,nodes:C,nodeLookup:_,triggerNodeChanges:T,triggerEdgeChanges:A}=g(),R=x||C,D=w||k,N=R.map(O=>{const F=_.get(O.id);return F&&(F.selected=!1),pp(O.id,!1)}),M=D.map(O=>pp(O.id,!1));T(N),A(M)},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((R,D)=>D.selected?[...R,pp(D.id,!1)]:R,[]),A=x.reduce((R,D)=>D.selected?[...R,pp(D.id,!1)]:R,[]);k(T),C(A)},setNodeExtent:x=>{const{nodes:w,nodeLookup:k,parentLookup:C,nodeOrigin:_,elevateNodesOnSelect:T,nodeExtent:A}=g();x[0][0]===A[0][0]&&x[0][1]===A[0][1]&&x[1][0]===A[1][0]&&x[1][1]===A[1][1]||(g9(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 KCe({delta:x,panZoom:_,transform:w,translateExtent:T,width:k,height:C})},setCenter:async(x,w,k)=>{const{width:C,height:_,maxZoom:T,panZoom:A}=g();if(!A)return Promise.resolve(!1);const R=typeof k?.zoom<"u"?k.zoom:T;return await A.setViewport({x:C/2-x*R,y:_/2-w*R,zoom:R},{duration:k?.duration,ease:k?.ease,interpolate:k?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{f({connection:{...zH}})},updateConnection:x=>{f({connection:x})},reset:()=>f({...Nq()})}},Object.is);function O3({initialNodes:e,initialEdges:r,defaultNodes:n,defaultEdges:o,initialWidth:a,initialHeight:i,initialMinZoom:s,initialMaxZoom:l,initialFitViewOptions:c,fitView:u,nodeOrigin:d,nodeExtent:h,children:f}){const[g]=E.useState(()=>dRe({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,width:a,height:i,fitView:u,minZoom:s,maxZoom:l,fitViewOptions:c,nodeOrigin:d,nodeExtent:h}));return y.jsx(NTe,{value:g,children:y.jsx(JTe,{children:f})})}function pRe({children:e,nodes:r,edges:n,defaultNodes:o,defaultEdges:a,width:i,height:s,fitView:l,fitViewOptions:c,minZoom:u,maxZoom:d,nodeOrigin:h,nodeExtent:f}){return E.useContext(N3)?y.jsx(y.Fragment,{children:e}):y.jsx(O3,{initialNodes:r,initialEdges:n,defaultNodes:o,defaultEdges:a,initialWidth:i,initialHeight:s,fitView:l,initialFitViewOptions:c,initialMinZoom:u,initialMaxZoom:d,nodeOrigin:h,nodeExtent:f,children:e})}const hRe={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function fRe({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,className:a,nodeTypes:i,edgeTypes:s,onNodeClick:l,onEdgeClick:c,onInit:u,onMove:d,onMoveStart:h,onMoveEnd:f,onConnect:g,onConnectStart:b,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:k,onNodeMouseEnter:C,onNodeMouseMove:_,onNodeMouseLeave:T,onNodeContextMenu:A,onNodeDoubleClick:R,onNodeDragStart:D,onNodeDrag:N,onNodeDragStop:M,onNodesDelete:O,onEdgesDelete:F,onDelete:L,onSelectionChange:U,onSelectionDragStart:P,onSelectionDrag:V,onSelectionDragStop:I,onSelectionContextMenu:H,onSelectionStart:q,onSelectionEnd:Z,onBeforeDelete:W,connectionMode:G,connectionLineType:K=bu.Bezier,connectionLineStyle:j,connectionLineComponent:Y,connectionLineContainerStyle:Q,deleteKeyCode:J="Backspace",selectionKeyCode:ie="Shift",selectionOnDrag:ne=!1,selectionMode:re=y0.Full,panActivationKeyCode:ge="Space",multiSelectionKeyCode:De=zf()?"Meta":"Control",zoomActivationKeyCode:he=zf()?"Meta":"Control",snapToGrid:me,snapGrid:Te,onlyRenderVisibleElements:Ie=!1,selectNodesOnDrag:Ze,nodesDraggable:rt,autoPanOnNodeFocus:Rt,nodesConnectable:Qe,nodesFocusable:Pt,nodeOrigin:Ke=LV,edgesFocusable:Ge,edgesReconnectable:ct,elementsSelectable:ut=!0,defaultViewport:Ir=VTe,minZoom:Ee=.5,maxZoom:Se=2,translateExtent:it=g0,preventScrolling:xt=!0,nodeExtent:zt,defaultMarkerColor:Fr="#b1b1b7",zoomOnScroll:It=!0,zoomOnPinch:vr=!0,panOnScroll:fr=!1,panOnScrollSpeed:un=.5,panOnScrollMode:ir=cp.Free,zoomOnDoubleClick:vn=!0,panOnDrag:xr=!0,onPaneClick:ea,onPaneMouseEnter:xa,onPaneMouseMove:Gs,onPaneMouseLeave:Vo,onPaneScroll:wa,onPaneContextMenu:Xs,paneClickDistance:fo=0,nodeClickDistance:Ol=0,children:jl,onReconnect:Bc,onReconnectStart:Ks,onReconnectEnd:Rh,onEdgeContextMenu:Ll,onEdgeDoubleClick:id,onEdgeMouseEnter:ta,onEdgeMouseMove:Fc,onEdgeMouseLeave:Bl,reconnectRadius:sd=10,onNodesChange:Fl,onEdgesChange:ra,noDragClassName:Wr="nodrag",noWheelClassName:Vn="nowheel",noPanClassName:qo="nopan",fitView:Zs,fitViewOptions:Hc,connectOnClick:Nh,attributionPosition:Za,proOptions:Oi,defaultEdgeOptions:Qs,elevateNodesOnSelect:ji,elevateEdgesOnSelect:Li,disableKeyboardA11y:ka=!1,autoPanOnConnect:So,autoPanOnNodeDrag:rn,autoPanSpeed:Vc,connectionRadius:qc,isValidConnection:Qa,onError:Bi,style:ld,id:Hl,nodeDragThreshold:cd,connectionDragThreshold:Dh,viewport:Vl,onViewportChange:ql,width:Uo,height:nn,colorMode:ud="light",debug:$h,onScroll:Fi,ariaLabelConfig:dd,...Ul},pd){const ee=Hl||"1",te=YTe(ud),ae=E.useCallback(le=>{le.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Fi?.(le)},[Fi]);return y.jsx("div",{"data-testid":"rf__wrapper",...Ul,onScroll:ae,style:{...ld,...hRe},ref:pd,className:_n(["react-flow",a,te]),id:Hl,role:"application",children:y.jsxs(pRe,{nodes:e,edges:r,width:Uo,height:nn,fitView:Zs,fitViewOptions:Hc,minZoom:Ee,maxZoom:Se,nodeOrigin:Ke,nodeExtent:zt,children:[y.jsx(uRe,{onInit:u,onNodeClick:l,onEdgeClick:c,onNodeMouseEnter:C,onNodeMouseMove:_,onNodeMouseLeave:T,onNodeContextMenu:A,onNodeDoubleClick:R,nodeTypes:i,edgeTypes:s,connectionLineType:K,connectionLineStyle:j,connectionLineComponent:Y,connectionLineContainerStyle:Q,selectionKeyCode:ie,selectionOnDrag:ne,selectionMode:re,deleteKeyCode:J,multiSelectionKeyCode:De,panActivationKeyCode:ge,zoomActivationKeyCode:he,onlyRenderVisibleElements:Ie,defaultViewport:Ir,translateExtent:it,minZoom:Ee,maxZoom:Se,preventScrolling:xt,zoomOnScroll:It,zoomOnPinch:vr,zoomOnDoubleClick:vn,panOnScroll:fr,panOnScrollSpeed:un,panOnScrollMode:ir,panOnDrag:xr,onPaneClick:ea,onPaneMouseEnter:xa,onPaneMouseMove:Gs,onPaneMouseLeave:Vo,onPaneScroll:wa,onPaneContextMenu:Xs,paneClickDistance:fo,nodeClickDistance:Ol,onSelectionContextMenu:H,onSelectionStart:q,onSelectionEnd:Z,onReconnect:Bc,onReconnectStart:Ks,onReconnectEnd:Rh,onEdgeContextMenu:Ll,onEdgeDoubleClick:id,onEdgeMouseEnter:ta,onEdgeMouseMove:Fc,onEdgeMouseLeave:Bl,reconnectRadius:sd,defaultMarkerColor:Fr,noDragClassName:Wr,noWheelClassName:Vn,noPanClassName:qo,rfId:ee,disableKeyboardA11y:ka,nodeExtent:zt,viewport:Vl,onViewportChange:ql}),y.jsx(WTe,{nodes:e,edges:r,defaultNodes:n,defaultEdges:o,onConnect:g,onConnectStart:b,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:k,nodesDraggable:rt,autoPanOnNodeFocus:Rt,nodesConnectable:Qe,nodesFocusable:Pt,edgesFocusable:Ge,edgesReconnectable:ct,elementsSelectable:ut,elevateNodesOnSelect:ji,elevateEdgesOnSelect:Li,minZoom:Ee,maxZoom:Se,nodeExtent:zt,onNodesChange:Fl,onEdgesChange:ra,snapToGrid:me,snapGrid:Te,connectionMode:G,translateExtent:it,connectOnClick:Nh,defaultEdgeOptions:Qs,fitView:Zs,fitViewOptions:Hc,onNodesDelete:O,onEdgesDelete:F,onDelete:L,onNodeDragStart:D,onNodeDrag:N,onNodeDragStop:M,onSelectionDrag:V,onSelectionDragStart:P,onSelectionDragStop:I,onMove:d,onMoveStart:h,onMoveEnd:f,noPanClassName:qo,nodeOrigin:Ke,rfId:ee,autoPanOnConnect:So,autoPanOnNodeDrag:rn,autoPanSpeed:Vc,onError:Bi,connectionRadius:qc,isValidConnection:Qa,selectNodesOnDrag:Ze,nodeDragThreshold:cd,connectionDragThreshold:Dh,onBeforeDelete:W,paneClickDistance:fo,debug:$h,ariaLabelConfig:dd}),y.jsx(HTe,{onSelectionChange:U}),jl,y.jsx(OTe,{proOptions:Oi,position:Za}),y.jsx(ITe,{rfId:ee,disableKeyboardA11y:ka})]})})}var mRe=KV(fRe);const gRe=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");function Dq({children:e}){const r=qt(gRe);return r?Ki.createPortal(e,r):null}function yRe({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:_n(["react-flow__background-pattern",n,o])})}function bRe({radius:e,className:r}){return y.jsx("circle",{cx:e,cy:e,r:e,className:_n(["react-flow__background-pattern","dots",r])})}var cs;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(cs||(cs={}));const vRe={[cs.Dots]:1,[cs.Lines]:1,[cs.Cross]:6},xRe=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function $q({id:e,variant:r=cs.Dots,gap:n=20,size:o,lineWidth:a=1,offset:i=0,color:s,bgColor:l,style:c,className:u,patternClassName:d}){const h=E.useRef(null),{transform:f,patternId:g}=qt(xRe,Kr),b=o||vRe[r],x=r===cs.Dots,w=r===cs.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],A=w?[_,_]:C,R=[T[0]*f[2]||1+A[0]/2,T[1]*f[2]||1+A[1]/2],D=`${g}${e||""}`;return y.jsxs("svg",{className:_n(["react-flow__background",u]),style:{...c,...P3,"--xy-background-color-props":l,"--xy-background-pattern-color-props":s},ref:h,"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(-${R[0]},-${R[1]})`,children:x?y.jsx(bRe,{radius:_/2,className:d}):y.jsx(yRe,{dimensions:A,lineWidth:a,variant:r,className:d})}),y.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${D})`})]})}$q.displayName="Background";const Mq=E.memo($q);function wRe(){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 kRe(){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 _Re(){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 ERe(){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 SRe(){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 j3({children:e,className:r,...n}){return y.jsx("button",{type:"button",className:_n(["react-flow__controls-button",r]),...n,children:e})}const CRe=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function Pq({style:e,showZoom:r=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:a,onZoomIn:i,onZoomOut:s,onFitView:l,onInteractiveChange:c,className:u,children:d,position:h="bottom-left",orientation:f="vertical","aria-label":g}){const b=Ar(),{isInteractive:x,minZoomReached:w,maxZoomReached:k,ariaLabelConfig:C}=qt(CRe,Kr),{zoomIn:_,zoomOut:T,fitView:A}=Bf(),R=()=>{_(),i?.()},D=()=>{T(),s?.()},N=()=>{A(a),l?.()},M=()=>{b.setState({nodesDraggable:!x,nodesConnectable:!x,elementsSelectable:!x}),c?.(!x)};return y.jsxs(ku,{className:_n(["react-flow__controls",f==="horizontal"?"horizontal":"vertical",u]),position:h,style:e,"data-testid":"rf__controls","aria-label":g??C["controls.ariaLabel"],children:[r&&y.jsxs(y.Fragment,{children:[y.jsx(j3,{onClick:R,className:"react-flow__controls-zoomin",title:C["controls.zoomIn.ariaLabel"],"aria-label":C["controls.zoomIn.ariaLabel"],disabled:k,children:y.jsx(wRe,{})}),y.jsx(j3,{onClick:D,className:"react-flow__controls-zoomout",title:C["controls.zoomOut.ariaLabel"],"aria-label":C["controls.zoomOut.ariaLabel"],disabled:w,children:y.jsx(kRe,{})})]}),n&&y.jsx(j3,{className:"react-flow__controls-fitview",onClick:N,title:C["controls.fitView.ariaLabel"],"aria-label":C["controls.fitView.ariaLabel"],children:y.jsx(_Re,{})}),o&&y.jsx(j3,{className:"react-flow__controls-interactive",onClick:M,title:C["controls.interactive.ariaLabel"],"aria-label":C["controls.interactive.ariaLabel"],children:x?y.jsx(SRe,{}):y.jsx(ERe,{})}),d]})}Pq.displayName="Controls",E.memo(Pq);function TRe({id:e,x:r,y:n,width:o,height:a,style:i,color:s,strokeColor:l,strokeWidth:c,className:u,borderRadius:d,shapeRendering:h,selected:f,onClick:g}){const{background:b,backgroundColor:x}=i||{},w=s||b||x;return y.jsx("rect",{className:_n(["react-flow__minimap-node",{selected:f},u]),x:r,y:n,rx:d,ry:d,width:o,height:a,style:{fill:w,stroke:l,strokeWidth:c},shapeRendering:h,onClick:g?k=>g(k,e):void 0})}const ARe=E.memo(TRe),RRe=e=>e.nodes.map(r=>r.id),N9=e=>e instanceof Function?e:()=>e;function NRe({nodeStrokeColor:e,nodeColor:r,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:a,nodeComponent:i=ARe,onClick:s}){const l=qt(RRe,Kr),c=N9(r),u=N9(e),d=N9(n),h=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return y.jsx(y.Fragment,{children:l.map(f=>y.jsx($Re,{id:f,nodeColorFunc:c,nodeStrokeColorFunc:u,nodeClassNameFunc:d,nodeBorderRadius:o,nodeStrokeWidth:a,NodeComponent:i,onClick:s,shapeRendering:h},f))})}function DRe({id:e,nodeColorFunc:r,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:a,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:l,onClick:c}){const{node:u,x:d,y:h,width:f,height:g}=qt(b=>{const{internals:x}=b.nodeLookup.get(e),w=x.userNode,{x:k,y:C}=x.positionAbsolute,{width:_,height:T}=ao(w);return{node:w,x:k,y:C,width:_,height:T}},Kr);return!u||u.hidden||!WH(u)?null:y.jsx(l,{x:d,y:h,width:f,height:g,style:u.style,selected:!!u.selected,className:o(u),color:r(u),borderRadius:a,strokeColor:n(u),strokeWidth:i,shapeRendering:s,onClick:c,id:u.id})}const $Re=E.memo(DRe);var MRe=E.memo(NRe);const PRe=200,zRe=150,IRe=e=>!e.hidden,ORe=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?qH($f(e.nodeLookup,{filter:IRe}),r):r,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},jRe="react-flow__minimap-desc";function zq({style:e,className:r,nodeStrokeColor:n,nodeColor:o,nodeClassName:a="",nodeBorderRadius:i=5,nodeStrokeWidth:s,nodeComponent:l,bgColor:c,maskColor:u,maskStrokeColor:d,maskStrokeWidth:h,position:f="bottom-right",onClick:g,onNodeClick:b,pannable:x=!1,zoomable:w=!1,ariaLabel:k,inversePan:C,zoomStep:_=1,offsetScale:T=5}){const A=Ar(),R=E.useRef(null),{boundingRect:D,viewBB:N,rfId:M,panZoom:O,translateExtent:F,flowWidth:L,flowHeight:U,ariaLabelConfig:P}=qt(ORe,Kr),V=e?.width??PRe,I=e?.height??zRe,H=D.width/V,q=D.height/I,Z=Math.max(H,q),W=Z*V,G=Z*I,K=T*Z,j=D.x-(W-D.width)/2-K,Y=D.y-(G-D.height)/2-K,Q=W+K*2,J=G+K*2,ie=`${jRe}-${M}`,ne=E.useRef(0),re=E.useRef();ne.current=Z,E.useEffect(()=>{if(R.current&&O)return re.current=aTe({domNode:R.current,panZoom:O,getTransform:()=>A.getState().transform,getViewScale:()=>ne.current}),()=>{re.current?.destroy()}},[O]),E.useEffect(()=>{re.current?.update({translateExtent:F,width:L,height:U,inversePan:C,pannable:x,zoomStep:_,zoomable:w})},[x,w,C,_,F,L,U]);const ge=g?me=>{const[Te,Ie]=re.current?.pointer(me)||[0,0];g(me,{x:Te,y:Ie})}:void 0,De=b?E.useCallback((me,Te)=>{const Ie=A.getState().nodeLookup.get(Te).internals.userNode;b(me,Ie)},[]):void 0,he=k??P["minimap.ariaLabel"];return y.jsx(ku,{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 h=="number"?h*Z: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 s=="number"?s:void 0},className:_n(["react-flow__minimap",r]),"data-testid":"rf__minimap",children:y.jsxs("svg",{width:V,height:I,viewBox:`${j} ${Y} ${Q} ${J}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":ie,ref:R,onClick:ge,children:[he&&y.jsx("title",{id:ie,children:he}),y.jsx(MRe,{onClick:De,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:a,nodeStrokeWidth:s,nodeComponent:l}),y.jsx("path",{className:"react-flow__minimap-mask",d:`M${j-K},${Y-K}h${Q+K*2}v${J+K*2}h${-Q-K*2}z - M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}zq.displayName="MiniMap",E.memo(zq);const LRe=e=>r=>e?`${Math.max(1/r.transform[2],1)}`:void 0,BRe={[jf.Line]:"right",[jf.Handle]:"bottom-right"};function FRe({nodeId:e,position:r,variant:n=jf.Handle,className:o,style:a=void 0,children:i,color:s,minWidth:l=10,minHeight:c=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:h=!1,resizeDirection:f,autoScale:g=!0,shouldResize:b,onResizeStart:x,onResize:w,onResizeEnd:k}){const C=R9(),_=typeof e=="string"?e:C,T=Ar(),A=E.useRef(null),R=n===jf.Handle,D=qt(E.useCallback(LRe(R&&g),[R,g]),Kr),N=E.useRef(null),M=r??BRe[n];E.useEffect(()=>{if(!(!A.current||!_))return N.current||(N.current=vTe({domNode:A.current,nodeId:_,getStoreItems:()=>{const{nodeLookup:F,transform:L,snapGrid:U,snapToGrid:P,nodeOrigin:V,domNode:I}=T.getState();return{nodeLookup:F,transform:L,snapGrid:U,snapToGrid:P,nodeOrigin:V,paneDomNode:I}},onChange:(F,L)=>{const{triggerNodeChanges:U,nodeLookup:P,parentLookup:V,nodeOrigin:I}=T.getState(),H=[],q={x:F.x,y:F.y},Z=P.get(_);if(Z&&Z.expandParent&&Z.parentId){const W=Z.origin??I,G=F.width??Z.measured.width??0,K=F.height??Z.measured.height??0,j={id:Z.id,parentId:Z.parentId,rect:{width:G,height:K,...YH({x:F.x??Z.position.x,y:F.y??Z.position.y},{width:G,height:K},Z.parentId,P,W)}},Y=b9([j],P,V,I);H.push(...Y),q.x=F.x?Math.max(W[0]*G,F.x):void 0,q.y=F.y?Math.max(W[1]*K,F.y):void 0}if(q.x!==void 0&&q.y!==void 0){const W={id:_,type:"position",position:{...q}};H.push(W)}if(F.width!==void 0&&F.height!==void 0){const W={id:_,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:F.width,height:F.height}};H.push(W)}for(const W of L){const G={...W,type:"position"};H.push(G)}U(H)},onEnd:({width:F,height:L})=>{const U={id:_,type:"dimensions",resizing:!1,dimensions:{width:F,height:L}};T.getState().triggerNodeChanges([U])}})),N.current.update({controlPosition:M,boundaries:{minWidth:l,minHeight:c,maxWidth:u,maxHeight:d},keepAspectRatio:h,resizeDirection:f,onResizeStart:x,onResize:w,onResizeEnd:k,shouldResize:b}),()=>{N.current?.destroy()}},[M,l,c,u,d,h,x,w,k,b]);const O=M.split("-");return y.jsx("div",{className:_n(["react-flow__resize-control","nodrag",...O,n,o]),ref:A,style:{...a,scale:D,...s&&{[R?"backgroundColor":"borderColor"]:s}},children:i})}E.memo(FRe);const HRe=e=>e.domNode?.querySelector(".react-flow__renderer");function VRe({children:e}){const r=qt(HRe);return r?Ki.createPortal(e,r):null}const qRe=(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,URe=(e,r)=>{if(e.size!==r.size)return!1;for(const[n,o]of e)if(qRe(o,r.get(n)))return!1;return!0},WRe=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2],selectedNodesCount:e.nodes.filter(r=>r.selected).length});function D9({nodeId:e,children:r,className:n,style:o,isVisible:a,position:i=tt.Top,offset:s=10,align:l="center",...c}){const u=R9(),d=E.useCallback(T=>(Array.isArray(e)?e:[e||u||""]).reduce((A,R)=>{const D=T.nodeLookup.get(R);return D&&A.set(D.id,D),A},new Map),[e,u]),h=qt(d,URe),{x:f,y:g,zoom:b,selectedNodesCount:x}=qt(WRe,Kr);if(!(typeof a=="boolean"?a:h.size===1&&h.values().next().value?.selected&&x===1)||!h.size)return null;const w=$f(h),k=Array.from(h.values()),C=Math.max(...k.map(T=>T.internals.z+1)),_={position:"absolute",transform:HCe(w,{x:f,y:g,zoom:b},i,s,l),zIndex:C,...o};return y.jsx(VRe,{children:y.jsx("div",{style:_,className:_n(["react-flow__node-toolbar",n]),...c,"data-id":k.reduce((T,A)=>`${T}${A.id} `,"").trim(),children:r})})}function YRe(e,r,n){let o=a=>e(a,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function hr(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return YRe(e,r,n);throw Error("Wrong number of arguments")}const GRe=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=Iq(r,n),a=e(o);return Iq(a,-n)};function Iq(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 XRe(...e){return hr(GRe(Math.ceil),e)}function us(...e){return hr(KRe,e)}const KRe=(e,{min:r,max:n})=>r!==void 0&&en?n:e;function ZRe(...e){return hr(QRe,e)}const QRe=(e,r)=>[...e,...r],L3={done:!1,hasNext:!1};function En(e,...r){let n=e,o=r.map(i=>"lazy"in i?JRe(i):void 0),a=0;for(;aEn(a,o),o)}throw Error("Wrong number of arguments")}function bo(...e){return hr(rNe,e)}const rNe=(e,r)=>e.length>=r,jq={asc:(e,r)=>e>r,desc:(e,r)=>ee(i,a)}function $9(e,r,...n){let o=typeof e=="function"?e:e[0],a=typeof e=="function"?"asc":e[1],{[a]:i}=jq,s=r===void 0?void 0:$9(r,...n);return(l,c)=>{let u=o(l),d=o(c);return i(u,d)?1:i(d,u)?-1:s?.(l,c)??0}}function oNe(e){if(Lq(e))return!0;if(typeof e!="object"||!Array.isArray(e))return!1;let[r,n,...o]=e;return Lq(r)&&typeof n=="string"&&n in jq&&o.length===0}const Lq=e=>typeof e=="function"&&e.length===1;function M9(...e){return hr(Object.entries,e)}function hp(...e){return hr(aNe,e,iNe)}const aNe=(e,r)=>e.filter(r),iNe=e=>(r,n,o)=>e(r,n,o)?{done:!1,hasNext:!0,next:r}:L3,Bq=e=>Object.assign(e,{single:!0});function B3(...e){return hr(sNe,e,Bq(lNe))}const sNe=(e,r)=>e.find(r),lNe=e=>(r,n,o)=>e(r,n,o)?{done:!0,hasNext:!0,next:r}:L3;function Ff(...e){return hr(cNe,e,Bq(uNe))}const cNe=([e])=>e,uNe=()=>dNe,dNe=e=>({hasNext:!0,next:e,done:!0});function pNe(...e){return hr(hNe,e,fNe)}const hNe=(e,r)=>e.flatMap(r),fNe=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 mNe(...e){return hr(gNe,e,yNe)}function gNe(e,r){return e.forEach(r),e}const yNe=e=>(r,n,o)=>(e(r,n,o),{done:!1,hasNext:!0,next:r});function bNe(...e){return hr(vNe,e)}function vNe(e,r){for(let[n,o]of Object.entries(e))r(o,n,e);return e}function xNe(...e){return hr(wNe,e)}const wNe=(e,r)=>{let n=Object.create(null);for(let o=0;otypeof e=="function";function RNe(e){return e!==null}function Vq(e){return e!=null}function z9(e){return e==null}function _u(e){return typeof e=="number"&&!Number.isNaN(e)}function T0(e){if(typeof e!="object"||!e)return!1;let r=Object.getPrototypeOf(e);return r===null||r===Object.prototype}function H3(e){return typeof e=="string"}function ua(e){return!!e}function qq(...e){return hr(NNe,e)}const NNe=(e,r)=>e.join(r);function I9(...e){return hr(Object.keys,e)}function lc(...e){return hr(DNe,e)}const DNe=e=>e.at(-1);function Sn(...e){return hr($Ne,e,MNe)}const $Ne=(e,r)=>e.map(r),MNe=e=>(r,n,o)=>({done:!1,hasNext:!0,next:e(r,n,o)});function V3(...e){return hr(PNe,e)}function PNe(e,r){let n={};for(let[o,a]of e.entries()){let[i,s]=r(a,o,e);n[i]=s}return n}function zNe(...e){return hr(INe,e)}function INe(e,r){let n={};for(let[o,a]of Object.entries(e))n[o]=r(a,o,e);return n}function Uq(...e){return hr(Wq,e)}function Wq(e,r){let n={...e,...r};for(let o in r){if(!(o in e))continue;let{[o]:a}=e;if(!T0(a))continue;let{[o]:i}=r;T0(i)&&(n[o]=Wq(a,i))}return n}function Eu(...e){return hr(ONe,e)}function ONe(e,r){if(!bo(r,1))return{...e};if(!bo(r,2)){let{[r[0]]:o,...a}=e;return a}let n={...e};for(let o of r)delete n[o];return n}function q3(...e){return hr(jNe,e)}const jNe=e=>e.length===1?e[0]:void 0;function Yq(...e){return hr(LNe,e)}const LNe=(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 Gq(...e){return hr(BNe,e)}function BNe(e,r){let n={};for(let o of r)o in e&&(n[o]=e[o]);return n}function FNe(...e){return hr(HNe,e)}function HNe(e,r){let n={};for(let[o,a]of Object.entries(e))r(a,o,e)&&(n[o]=a);return n}function mp(e,...r){return typeof e=="string"||typeof e=="number"||typeof e=="symbol"?n=>Xq(n,e,...r):Xq(e,...r)}function Xq(e,...r){let n=e;for(let o of r){if(n==null)return;n=n[o]}return n}function VNe(...e){return hr(qNe,e)}function qNe(e,r){let n=[];for(let o=e;oe.reduce(r,n);function WNe(...e){return hr(YNe,e)}function YNe(e){return[...e].reverse()}function GNe(...e){return hr(XNe,e)}function XNe(e,r){let n=[...e];return n.sort(r),n}function W3(...e){return nNe(KNe,e)}const KNe=(e,r)=>[...e].sort(r);function Kq(...e){return hr(ZNe,e)}function ZNe(e,r){return r(e),e}function O9(...e){return tNe(QNe,e)}function QNe(){let e=new Set;return r=>e.has(r)?L3:(e.add(r),{done:!1,hasNext:!0,next:r})}let ds=[],Su=0;const Y3=4;let JNe=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=Su+Y3;i"u")return gDe;var r=yDe(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])}},vDe=tU(),Hf="data-scroll-locked",xDe=function(e,r,n,o){var a=e.left,i=e.top,s=e.right,l=e.gap;return n===void 0&&(n="margin"),` - .`.concat(tDe,` { +`)),d=c.reduce((u,p)=>u.concat(...p),[]);return[c,d]}return[[],[]]},[e]);return S.useEffect(()=>{const c=r?.target??zV,d=r?.actInsideInputWithModifier??!0;if(e!==null){const u=m=>{if(i.current=m.ctrlKey||m.metaKey||m.shiftKey||m.altKey,(!i.current||i.current&&!d)&&NF(m))return!1;const v=jV(m.code,s);if(a.current.add(m[v]),TV(l,a.current,!1)){const w=m.composedPath?.()?.[0]||m.target,x=w?.nodeName==="BUTTON"||w?.nodeName==="A";r.preventDefault!==!1&&(i.current||!x)&&m.preventDefault(),o(!0)}},p=m=>{const v=jV(m.code,s);TV(l,a.current,!0)?(o(!1),a.current.clear()):a.current.delete(m[v]),m.key==="Meta"&&a.current.clear(),i.current=!1},f=()=>{a.current.clear(),o(!1)};return c?.addEventListener("keydown",u),c?.addEventListener("keyup",p),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{c?.removeEventListener("keydown",u),c?.removeEventListener("keyup",p),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,o]),n}function TV(e,r,n){return e.filter(o=>n||o.length===r.size).some(o=>o.every(i=>r.has(i)))}function jV(e,r){return r.includes(e)?"code":"key"}const sSe=()=>{const e=vr();return S.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,i,a],panZoom:l}=e.getState();return l?(await l.setViewport({x:r.x??o,y:r.y??i,zoom:r.zoom??a},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:i,minZoom:a,maxZoom:l,panZoom:s}=e.getState(),c=Ws(r,o,i,a,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:i,snapToGrid:a,domNode:l}=e.getState();if(!l)return r;const{x:s,y:c}=l.getBoundingClientRect(),d={x:r.x-s,y:r.y-c},u=n.snapGrid??i,p=n.snapToGrid??a;return G1(d,o,p,u)},flowToScreenPosition:r=>{const{transform:n,domNode:o}=e.getState();if(!o)return r;const{x:i,y:a}=o.getBoundingClientRect(),l=Yx(r,n);return{x:l.x+i,y:l.y+a}}}),[])};function AV(e,r){const n=[],o=new Map,i=[];for(const a of e)if(a.type==="add"){i.push(a);continue}else if(a.type==="remove"||a.type==="replace")o.set(a.id,[a]);else{const l=o.get(a.id);l?l.push(a):o.set(a.id,[a])}for(const a of r){const l=o.get(a.id);if(!l){n.push(a);continue}if(l[0].type==="remove")continue;if(l[0].type==="replace"){n.push({...l[0].item});continue}const s={...a};for(const c of l)cSe(c,s);n.push(s)}return i.length&&i.forEach(a=>{a.index!==void 0?n.splice(a.index,0,{...a.item}):n.push({...a.item})}),n}function cSe(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={...e.dimensions},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 rw(e,r){return AV(e,r)}function nw(e,r){return AV(e,r)}function Qu(e,r){return{id:e,type:"select",selected:r}}function uf(e,r=new Set,n=!1){const o=[];for(const[i,a]of e){const l=r.has(i);!(a.selected===void 0&&!l)&&a.selected!==l&&(n&&(a.selected=l),o.push(Qu(a.id,l)))}return o}function DV({items:e=[],lookup:r}){const n=[],o=new Map(e.map(i=>[i.id,i]));for(const[i,a]of e.entries()){const l=r.get(a.id),s=l?.internals?.userNode??l;s!==void 0&&s!==a&&n.push({id:a.id,item:a,type:"replace"}),s===void 0&&n.push({item:a,type:"add",index:i})}for(const[i]of r)o.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function PV(e){return{id:e.id,type:"remove"}}const MV=e=>N7e(e),dSe=e=>SF(e);function NV(e){return S.forwardRef(e)}const uSe=typeof window<"u"?S.useLayoutEffect:S.useEffect;function BV(e){const[r,n]=S.useState(BigInt(0)),[o]=S.useState(()=>pSe(()=>n(i=>i+BigInt(1))));return uSe(()=>{const i=o.get();i.length&&(e(i),o.reset())},[r]),o}function pSe(e){let r=[];return{get:()=>r,reset:()=>{r=[]},push:n=>{r.push(n),e()}}}const IV=S.createContext(null);function hSe({children:e}){const r=vr(),n=S.useCallback(s=>{const{nodes:c=[],setNodes:d,hasDefaultNodes:u,onNodesChange:p,nodeLookup:f,fitViewQueued:m,onNodesChangeMiddlewareMap:v}=r.getState();let w=c;for(const k of s)w=typeof k=="function"?k(w):k;let x=DV({items:w,lookup:f});for(const k of v.values())x=k(x);u&&d(w),x.length>0?p?.(x):m&&window.requestAnimationFrame(()=>{const{fitViewQueued:k,nodes:C,setNodes:_}=r.getState();k&&_(C)})},[]),o=BV(n),i=S.useCallback(s=>{const{edges:c=[],setEdges:d,hasDefaultEdges:u,onEdgesChange:p,edgeLookup:f}=r.getState();let m=c;for(const v of s)m=typeof v=="function"?v(m):v;u?d(m):p&&p(DV({items:m,lookup:f}))},[]),a=BV(i),l=S.useMemo(()=>({nodeQueue:o,edgeQueue:a}),[]);return y.jsx(IV.Provider,{value:l,children:e})}function fSe(){const e=S.useContext(IV);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const gSe=e=>!!e.panZoom;function pf(){const e=sSe(),r=vr(),n=fSe(),o=Dt(gSe),i=S.useMemo(()=>{const a=p=>r.getState().nodeLookup.get(p),l=p=>{n.nodeQueue.push(p)},s=p=>{n.edgeQueue.push(p)},c=p=>{const{nodeLookup:f,nodeOrigin:m}=r.getState(),v=MV(p)?p:f.get(p.id),w=v.parentId?DF(v.position,v.measured,v.parentId,f,m):v.position,x={...v,position:w,width:v.measured?.width??v.width,height:v.measured?.height??v.height};return Ku(x)},d=(p,f,m={replace:!1})=>{l(v=>v.map(w=>{if(w.id===p){const x=typeof f=="function"?f(w):f;return m.replace&&MV(x)?x:{...w,...x}}return w}))},u=(p,f,m={replace:!1})=>{s(v=>v.map(w=>{if(w.id===p){const x=typeof f=="function"?f(w):f;return m.replace&&dSe(x)?x:{...w,...x}}return w}))};return{getNodes:()=>r.getState().nodes.map(p=>({...p})),getNode:p=>a(p)?.internals.userNode,getInternalNode:a,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(m=>[...m,...f])},addEdges:p=>{const f=Array.isArray(p)?p:[p];n.edgeQueue.push(m=>[...m,...f])},toObject:()=>{const{nodes:p=[],edges:f=[],transform:m}=r.getState(),[v,w,x]=m;return{nodes:p.map(k=>({...k})),edges:f.map(k=>({...k})),viewport:{x:v,y:w,zoom:x}}},deleteElements:async({nodes:p=[],edges:f=[]})=>{const{nodes:m,edges:v,onNodesDelete:w,onEdgesDelete:x,triggerNodeChanges:k,triggerEdgeChanges:C,onDelete:_,onBeforeDelete:$}=r.getState(),{nodes:R,edges:T}=await L7e({nodesToRemove:p,edgesToRemove:f,nodes:m,edges:v,onBeforeDelete:$}),A=T.length>0,z=R.length>0;if(A){const j=T.map(PV);x?.(T),C(j)}if(z){const j=R.map(PV);w?.(R),k(j)}return(z||A)&&_?.({nodes:R,edges:T}),{deletedNodes:R,deletedEdges:T}},getIntersectingNodes:(p,f=!0,m)=>{const v=jF(p),w=v?p:c(p),x=m!==void 0;return w?(m||r.getState().nodes).filter(k=>{const C=r.getState().nodeLookup.get(k.id);if(C&&!v&&(k.id===p.id||!C.internals.positionAbsolute))return!1;const _=Ku(x?k:C),$=U1(_,w);return f&&$>0||$>=_.width*_.height||$>=w.width*w.height}):[]},isNodeIntersecting:(p,f,m=!0)=>{const v=jF(p)?p:c(p);if(!v)return!1;const w=U1(v,f);return m&&w>0||w>=f.width*f.height||w>=v.width*v.height},updateNode:d,updateNodeData:(p,f,m={replace:!1})=>{d(p,v=>{const w=typeof f=="function"?f(v):f;return m.replace?{...v,data:w}:{...v,data:{...v.data,...w}}},m)},updateEdge:u,updateEdgeData:(p,f,m={replace:!1})=>{u(p,v=>{const w=typeof f=="function"?f(v):f;return m.replace?{...v,data:w}:{...v,data:{...v.data,...w}}},m)},getNodesBounds:p=>{const{nodeLookup:f,nodeOrigin:m}=r.getState();return EF(p,{nodeLookup:f,nodeOrigin:m})},getHandleConnections:({type:p,id:f,nodeId:m})=>Array.from(r.getState().connectionLookup.get(`${m}-${p}${f?`-${f}`:""}`)?.values()??[]),getNodeConnections:({type:p,handleId:f,nodeId:m})=>Array.from(r.getState().connectionLookup.get(`${m}${p?f?`-${p}-${f}`:`-${p}`:""}`)?.values()??[]),fitView:async p=>{const f=r.getState().fitViewResolver??H7e();return r.setState({fitViewQueued:!0,fitViewOptions:p,fitViewResolver:f}),n.nodeQueue.push(m=>[...m]),f.promise}}},[]);return S.useMemo(()=>({...i,...e,viewportInitialized:o}),[o])}const OV=e=>e.selected,mSe=typeof window<"u"?window:void 0;function ySe({deleteKeyCode:e,multiSelectionKeyCode:r}){const n=vr(),{deleteElements:o}=pf(),i=X1(e,{actInsideInputWithModifier:!1}),a=X1(r,{target:mSe});S.useEffect(()=>{if(i){const{edges:l,nodes:s}=n.getState();o({nodes:s.filter(OV),edges:l.filter(OV)}),n.setState({nodesSelectionActive:!1})}},[i]),S.useEffect(()=>{n.setState({multiSelectionActive:a})},[a])}function vSe(e){const r=vr();S.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const o=N7(e.current);(o.height===0||o.width===0)&&r.getState().onError?.("004",Gl.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 ow={position:"absolute",width:"100%",height:"100%",top:0,left:0},bSe=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function xSe({onPaneContextMenu:e,zoomOnScroll:r=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=Yu.Free,zoomOnDoubleClick:l=!0,panOnDrag:s=!0,defaultViewport:c,translateExtent:d,minZoom:u,maxZoom:p,zoomActivationKeyCode:f,preventScrolling:m=!0,children:v,noWheelClassName:w,noPanClassName:x,onViewportChange:k,isControlledViewport:C,paneClickDistance:_,selectionOnDrag:$}){const R=vr(),T=S.useRef(null),{userSelectionActive:A,lib:z,connectionInProgress:j}=Dt(bSe,jr),I=X1(f),N=S.useRef();vSe(T);const L=S.useCallback(H=>{k?.({x:H[0],y:H[1],zoom:H[2]}),C||R.setState({transform:H})},[k,C]);return S.useEffect(()=>{if(T.current){N.current=$9e({domNode:T.current,minZoom:u,maxZoom:p,translateExtent:d,viewport:c,onDraggingChange:B=>R.setState({paneDragging:B}),onPanZoomStart:(B,F)=>{const{onViewportChangeStart:q,onMoveStart:G}=R.getState();G?.(B,F),q?.(F)},onPanZoom:(B,F)=>{const{onViewportChange:q,onMove:G}=R.getState();G?.(B,F),q?.(F)},onPanZoomEnd:(B,F)=>{const{onViewportChangeEnd:q,onMoveEnd:G}=R.getState();G?.(B,F),q?.(F)}});const{x:H,y:P,zoom:V}=N.current.getViewport();return R.setState({panZoom:N.current,transform:[H,P,V],domNode:T.current.closest(".react-flow")}),()=>{N.current?.destroy()}}},[]),S.useEffect(()=>{N.current?.update({onPaneContextMenu:e,zoomOnScroll:r,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:l,panOnDrag:s,zoomActivationKeyPressed:I,preventScrolling:m,noPanClassName:x,userSelectionActive:A,noWheelClassName:w,lib:z,onTransformChange:L,connectionInProgress:j,selectionOnDrag:$,paneClickDistance:_})},[e,r,n,o,i,a,l,s,I,m,x,A,w,z,L,j,$,_]),y.jsx("div",{className:"react-flow__renderer",ref:T,style:ow,children:v})}const wSe=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function kSe(){const{userSelectionActive:e,userSelectionRect:r}=Dt(wSe,jr);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 Z7=(e,r)=>n=>{n.target===r.current&&e?.(n)},_Se=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function SSe({isSelecting:e,selectionKeyPressed:r,selectionMode:n=q1.Full,panOnDrag:o,paneClickDistance:i,selectionOnDrag:a,onSelectionStart:l,onSelectionEnd:s,onPaneClick:c,onPaneContextMenu:d,onPaneScroll:u,onPaneMouseEnter:p,onPaneMouseMove:f,onPaneMouseLeave:m,children:v}){const w=vr(),{userSelectionActive:x,elementsSelectable:k,dragging:C,connectionInProgress:_}=Dt(_Se,jr),$=k&&(e||x),R=S.useRef(null),T=S.useRef(),A=S.useRef(new Set),z=S.useRef(new Set),j=S.useRef(!1),I=q=>{if(j.current||_){j.current=!1;return}c?.(q),w.getState().resetSelectedElements(),w.setState({nodesSelectionActive:!1})},N=q=>{if(Array.isArray(o)&&o?.includes(2)){q.preventDefault();return}d?.(q)},L=u?q=>u(q):void 0,H=q=>{j.current&&(q.stopPropagation(),j.current=!1)},P=q=>{const{domNode:G}=w.getState();if(T.current=G?.getBoundingClientRect(),!T.current)return;const U=q.target===R.current;if(!U&&q.target.closest(".nokey")||!e||!(a&&U||r)||q.button!==0||!q.isPrimary)return;q.target?.setPointerCapture?.(q.pointerId),j.current=!1;const{x:Y,y:K}=Za(q.nativeEvent,T.current);w.setState({userSelectionRect:{width:0,height:0,startX:Y,startY:K,x:Y,y:K}}),U||(q.stopPropagation(),q.preventDefault())},V=q=>{const{userSelectionRect:G,transform:U,nodeLookup:Y,edgeLookup:K,connectionLookup:O,triggerNodeChanges:W,triggerEdgeChanges:Z,defaultEdgeOptions:Q,resetSelectedElements:ie}=w.getState();if(!T.current||!G)return;const{x:te,y:re}=Za(q.nativeEvent,T.current),{startX:ue,startY:_e}=G;if(!j.current){const Be=r?0:i;if(Math.hypot(te-ue,re-_e)<=Be)return;ie(),l?.(q)}j.current=!0;const ce={startX:ue,startY:_e,x:teBe.id)),z.current=new Set;const je=Q?.selectable??!0;for(const Be of A.current){const Je=O.get(Be);if(Je)for(const{edgeId:st}of Je.values()){const Le=K.get(st);Le&&(Le.selectable??je)&&z.current.add(st)}}if(!PF(pe,A.current)){const Be=uf(Y,A.current,!0);W(Be)}if(!PF(xe,z.current)){const Be=uf(K,z.current);Z(Be)}w.setState({userSelectionRect:ce,userSelectionActive:!0,nodesSelectionActive:!1})},B=q=>{q.button===0&&(q.target?.releasePointerCapture?.(q.pointerId),!x&&q.target===R.current&&w.getState().userSelectionRect&&I?.(q),w.setState({userSelectionActive:!1,userSelectionRect:null}),j.current&&(s?.(q),w.setState({nodesSelectionActive:A.current.size>0})))},F=o===!0||Array.isArray(o)&&o.includes(0);return y.jsxs("div",{className:dn(["react-flow__pane",{draggable:F,dragging:C,selection:e}]),onClick:$?void 0:Z7(I,R),onContextMenu:Z7(N,R),onWheel:Z7(L,R),onPointerEnter:$?void 0:p,onPointerMove:$?V:f,onPointerUp:$?B:void 0,onPointerDownCapture:$?P:void 0,onClickCapture:$?H:void 0,onPointerLeave:m,ref:R,style:ow,children:[v,y.jsx(kSe,{})]})}function Q7({id:e,store:r,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:l,nodeLookup:s,onError:c}=r.getState(),d=s.get(e);if(!d){c?.("012",Gl.error012(e));return}r.setState({nodesSelectionActive:!1}),d.selected?(n||d.selected&&l)&&(a({nodes:[d],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):i([e])}function LV({nodeRef:e,disabled:r=!1,noDragClassName:n,handleSelector:o,nodeId:i,isSelectable:a,nodeClickDistance:l}){const s=vr(),[c,d]=S.useState(!1),u=S.useRef();return S.useEffect(()=>{u.current=h9e({getStoreItems:()=>s.getState(),onNodeMouseDown:p=>{Q7({id:p,store:s,nodeRef:e})},onDragStart:()=>{d(!0)},onDragStop:()=>{d(!1)}})},[]),S.useEffect(()=>{if(r)u.current?.destroy();else if(e.current)return u.current?.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:l}),()=>{u.current?.destroy()}},[n,o,r,a,e,i]),c}const ESe=e=>r=>r.selected&&(r.draggable||e&&typeof r.draggable>"u");function FV(){const e=vr();return S.useCallback(r=>{const{nodeExtent:n,snapToGrid:o,snapGrid:i,nodesDraggable:a,onError:l,updateNodePositions:s,nodeLookup:c,nodeOrigin:d}=e.getState(),u=new Map,p=ESe(a),f=o?i[0]:5,m=o?i[1]:5,v=r.direction.x*f*r.factor,w=r.direction.y*m*r.factor;for(const[,x]of c){if(!p(x))continue;let k={x:x.internals.positionAbsolute.x+v,y:x.internals.positionAbsolute.y+w};o&&(k=W1(k,i));const{position:C,positionAbsolute:_}=CF({nodeId:x.id,nextPosition:k,nodeLookup:c,nodeExtent:n,nodeOrigin:d,onError:l});x.position=C,x.internals.positionAbsolute=_,u.set(x.id,x)}s(u)},[])}const J7=S.createContext(null),CSe=J7.Provider;J7.Consumer;const e9=()=>S.useContext(J7),$Se=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),RSe=(e,r,n)=>o=>{const{connectionClickStartHandle:i,connectionMode:a,connection:l}=o,{fromHandle:s,toHandle:c,isValid:d}=l,u=c?.nodeId===e&&c?.id===r&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===r&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===r&&i?.type===n,isPossibleEndHandle:a===rf.Strict?s?.type!==n:e!==s?.nodeId||r!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&d}};function zSe({type:e="source",position:r=Ue.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:l,onConnect:s,children:c,className:d,onMouseDown:u,onTouchStart:p,...f},m){const v=l||null,w=e==="target",x=vr(),k=e9(),{connectOnClick:C,noPanClassName:_,rfId:$}=Dt($Se,jr),{connectingFrom:R,connectingTo:T,clickConnecting:A,isPossibleEndHandle:z,connectionInProcess:j,clickConnectionInProcess:I,valid:N}=Dt(RSe(k,v,e),jr);k||x.getState().onError?.("010",Gl.error010());const L=V=>{const{defaultEdgeOptions:B,onConnect:F,hasDefaultEdges:q}=x.getState(),G={...B,...V};if(q){const{edges:U,setEdges:Y}=x.getState();Y(Z7e(G,U))}F?.(G),s?.(G)},H=V=>{if(!k)return;const B=BF(V.nativeEvent);if(i&&(B&&V.button===0||!B)){const F=x.getState();U7.onPointerDown(V.nativeEvent,{handleDomNode:V.currentTarget,autoPanOnConnect:F.autoPanOnConnect,connectionMode:F.connectionMode,connectionRadius:F.connectionRadius,domNode:F.domNode,nodeLookup:F.nodeLookup,lib:F.lib,isTarget:w,handleId:v,nodeId:k,flowId:F.rfId,panBy:F.panBy,cancelConnection:F.cancelConnection,onConnectStart:F.onConnectStart,onConnectEnd:F.onConnectEnd,updateConnection:F.updateConnection,onConnect:L,isValidConnection:n||F.isValidConnection,getTransform:()=>x.getState().transform,getFromHandle:()=>x.getState().connection.fromHandle,autoPanSpeed:F.autoPanSpeed,dragThreshold:F.connectionDragThreshold})}B?u?.(V):p?.(V)},P=V=>{const{onClickConnectStart:B,onClickConnectEnd:F,connectionClickStartHandle:q,connectionMode:G,isValidConnection:U,lib:Y,rfId:K,nodeLookup:O,connection:W}=x.getState();if(!k||!q&&!i)return;if(!q){B?.(V.nativeEvent,{nodeId:k,handleId:v,handleType:e}),x.setState({connectionClickStartHandle:{nodeId:k,type:e,id:v}});return}const Z=MF(V.target),Q=n||U,{connection:ie,isValid:te}=U7.isValid(V.nativeEvent,{handle:{nodeId:k,id:v,type:e},connectionMode:G,fromNodeId:q.nodeId,fromHandleId:q.id||null,fromType:q.type,isValidConnection:Q,flowId:K,doc:Z,lib:Y,nodeLookup:O});te&&ie&&L(ie);const re=structuredClone(W);delete re.inProgress,re.toPosition=re.toHandle?re.toHandle.position:null,F?.(V,re),x.setState({connectionClickStartHandle:null})};return y.jsx("div",{"data-handleid":v,"data-nodeid":k,"data-handlepos":r,"data-id":`${$}-${k}-${v}-${e}`,className:dn(["react-flow__handle",`react-flow__handle-${r}`,"nodrag",_,d,{source:!w,target:w,connectable:o,connectablestart:i,connectableend:a,clickconnecting:A,connectingfrom:R,connectingto:T,valid:N,connectionindicator:o&&(!j||z)&&(j||I?a:i)}]),onMouseDown:H,onTouchStart:H,onClick:C?P:void 0,ref:m,...f,children:c})}const Oo=S.memo(NV(zSe));function TSe({data:e,isConnectable:r,sourcePosition:n=Ue.Bottom}){return y.jsxs(y.Fragment,{children:[e?.label,y.jsx(Oo,{type:"source",position:n,isConnectable:r})]})}function jSe({data:e,isConnectable:r,targetPosition:n=Ue.Top,sourcePosition:o=Ue.Bottom}){return y.jsxs(y.Fragment,{children:[y.jsx(Oo,{type:"target",position:n,isConnectable:r}),e?.label,y.jsx(Oo,{type:"source",position:o,isConnectable:r})]})}function ASe(){return null}function DSe({data:e,isConnectable:r,targetPosition:n=Ue.Top}){return y.jsxs(y.Fragment,{children:[y.jsx(Oo,{type:"target",position:n,isConnectable:r}),e?.label]})}const iw={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},VV={input:TSe,default:jSe,output:DSe,group:ASe};function PSe(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 MSe=e=>{const{width:r,height:n,x:o,y:i}=nf(e.nodeLookup,{filter:a=>!!a.selected});return{width:Ka(r)?r:null,height:Ka(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${i}px)`}};function NSe({onSelectionContextMenu:e,noPanClassName:r,disableKeyboardA11y:n}){const o=vr(),{width:i,height:a,transformString:l,userSelectionActive:s}=Dt(MSe,jr),c=FV(),d=S.useRef(null);if(S.useEffect(()=>{n||d.current?.focus({preventScroll:!0})},[n]),LV({nodeRef:d}),s||!i||!a)return null;const u=e?f=>{const m=o.getState().nodes.filter(v=>v.selected);e(f,m)}:void 0,p=f=>{Object.prototype.hasOwnProperty.call(iw,f.key)&&(f.preventDefault(),c({direction:iw[f.key],factor:f.shiftKey?4:1}))};return y.jsx("div",{className:dn(["react-flow__nodesselection","react-flow__container",r]),style:{transform:l},children:y.jsx("div",{ref:d,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:n?void 0:-1,onKeyDown:n?void 0:p,style:{width:i,height:a}})})}const qV=typeof window<"u"?window:void 0,BSe=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function HV({children:e,onPaneClick:r,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:l,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:d,selectionOnDrag:u,selectionMode:p,onSelectionStart:f,onSelectionEnd:m,multiSelectionKeyCode:v,panActivationKeyCode:w,zoomActivationKeyCode:x,elementsSelectable:k,zoomOnScroll:C,zoomOnPinch:_,panOnScroll:$,panOnScrollSpeed:R,panOnScrollMode:T,zoomOnDoubleClick:A,panOnDrag:z,defaultViewport:j,translateExtent:I,minZoom:N,maxZoom:L,preventScrolling:H,onSelectionContextMenu:P,noWheelClassName:V,noPanClassName:B,disableKeyboardA11y:F,onViewportChange:q,isControlledViewport:G}){const{nodesSelectionActive:U,userSelectionActive:Y}=Dt(BSe,jr),K=X1(d,{target:qV}),O=X1(w,{target:qV}),W=O||z,Z=O||$,Q=u&&W!==!0,ie=K||Y||Q;return ySe({deleteKeyCode:c,multiSelectionKeyCode:v}),y.jsx(xSe,{onPaneContextMenu:a,elementsSelectable:k,zoomOnScroll:C,zoomOnPinch:_,panOnScroll:Z,panOnScrollSpeed:R,panOnScrollMode:T,zoomOnDoubleClick:A,panOnDrag:!K&&W,defaultViewport:j,translateExtent:I,minZoom:N,maxZoom:L,zoomActivationKeyCode:x,preventScrolling:H,noWheelClassName:V,noPanClassName:B,onViewportChange:q,isControlledViewport:G,paneClickDistance:s,selectionOnDrag:Q,children:y.jsxs(SSe,{onSelectionStart:f,onSelectionEnd:m,onPaneClick:r,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:l,panOnDrag:W,isSelecting:!!ie,selectionMode:p,selectionKeyPressed:K,paneClickDistance:s,selectionOnDrag:Q,children:[e,U&&y.jsx(NSe,{onSelectionContextMenu:P,noPanClassName:B,disableKeyboardA11y:F})]})})}HV.displayName="FlowRenderer";const ISe=S.memo(HV),OSe=e=>r=>e?P7(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 LSe(e){return Dt(S.useCallback(OSe(e),[e]),jr)}const FSe=e=>e.updateNodeInternals;function VSe(){const e=Dt(FSe),[r]=S.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const o=new Map;n.forEach(i=>{const a=i.target.getAttribute("data-id");o.set(a,{id:a,nodeElement:i.target,force:!0})}),e(o)}));return S.useEffect(()=>()=>{r?.disconnect()},[r]),r}function qSe({node:e,nodeType:r,hasDimensions:n,resizeObserver:o}){const i=vr(),a=S.useRef(null),l=S.useRef(null),s=S.useRef(e.sourcePosition),c=S.useRef(e.targetPosition),d=S.useRef(r),u=n&&!!e.internals.handleBounds;return S.useEffect(()=>{a.current&&!e.hidden&&(!u||l.current!==a.current)&&(l.current&&o?.unobserve(l.current),o?.observe(a.current),l.current=a.current)},[u,e.hidden]),S.useEffect(()=>()=>{l.current&&(o?.unobserve(l.current),l.current=null)},[]),S.useEffect(()=>{if(a.current){const p=d.current!==r,f=s.current!==e.sourcePosition,m=c.current!==e.targetPosition;(p||f||m)&&(d.current=r,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,r,e.sourcePosition,e.targetPosition]),a}function HSe({id:e,onClick:r,onMouseEnter:n,onMouseMove:o,onMouseLeave:i,onContextMenu:a,onDoubleClick:l,nodesDraggable:s,elementsSelectable:c,nodesConnectable:d,nodesFocusable:u,resizeObserver:p,noDragClassName:f,noPanClassName:m,disableKeyboardA11y:v,rfId:w,nodeTypes:x,nodeClickDistance:k,onError:C}){const{node:_,internals:$,isParent:R}=Dt(te=>{const re=te.nodeLookup.get(e),ue=te.parentLookup.has(e);return{node:re,internals:re.internals,isParent:ue}},jr);let T=_.type||"default",A=x?.[T]||VV[T];A===void 0&&(C?.("003",Gl.error003(T)),T="default",A=x?.default||VV.default);const z=!!(_.draggable||s&&typeof _.draggable>"u"),j=!!(_.selectable||c&&typeof _.selectable>"u"),I=!!(_.connectable||d&&typeof _.connectable>"u"),N=!!(_.focusable||u&&typeof _.focusable>"u"),L=vr(),H=AF(_),P=qSe({node:_,nodeType:T,hasDimensions:H,resizeObserver:p}),V=LV({nodeRef:P,disabled:_.hidden||!z,noDragClassName:f,handleSelector:_.dragHandle,nodeId:e,isSelectable:j,nodeClickDistance:k}),B=FV();if(_.hidden)return null;const F=_o(_),q=PSe(_),G=j||z||r||n||o||i,U=n?te=>n(te,{...$.userNode}):void 0,Y=o?te=>o(te,{...$.userNode}):void 0,K=i?te=>i(te,{...$.userNode}):void 0,O=a?te=>a(te,{...$.userNode}):void 0,W=l?te=>l(te,{...$.userNode}):void 0,Z=te=>{const{selectNodesOnDrag:re,nodeDragThreshold:ue}=L.getState();j&&(!re||!z||ue>0)&&Q7({id:e,store:L,nodeRef:P}),r&&r(te,{...$.userNode})},Q=te=>{if(!(NF(te.nativeEvent)||v)){if(bF.includes(te.key)&&j){const re=te.key==="Escape";Q7({id:e,store:L,unselect:re,nodeRef:P})}else if(z&&_.selected&&Object.prototype.hasOwnProperty.call(iw,te.key)){te.preventDefault();const{ariaLabelConfig:re}=L.getState();L.setState({ariaLiveMessage:re["node.a11yDescription.ariaLiveMessage"]({direction:te.key.replace("Arrow","").toLowerCase(),x:~~$.positionAbsolute.x,y:~~$.positionAbsolute.y})}),B({direction:iw[te.key],factor:te.shiftKey?4:1})}}},ie=()=>{if(v||!P.current?.matches(":focus-visible"))return;const{transform:te,width:re,height:ue,autoPanOnNodeFocus:_e,setCenter:ce}=L.getState();_e&&(P7(new Map([[e,_]]),{x:0,y:0,width:re,height:ue},te,!0).length>0||ce(_.position.x+F.width/2,_.position.y+F.height/2,{zoom:te[2]}))};return y.jsx("div",{className:dn(["react-flow__node",`react-flow__node-${T}`,{[m]:z},_.className,{selected:_.selected,selectable:j,parent:R,draggable:z,dragging:V}]),ref:P,style:{zIndex:$.z,transform:`translate(${$.positionAbsolute.x}px,${$.positionAbsolute.y}px)`,pointerEvents:G?"all":"none",visibility:H?"visible":"hidden",..._.style,...q},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:U,onMouseMove:Y,onMouseLeave:K,onContextMenu:O,onClick:Z,onDoubleClick:W,onKeyDown:N?Q:void 0,tabIndex:N?0:void 0,onFocus:N?ie:void 0,role:_.ariaRole??(N?"group":void 0),"aria-roledescription":"node","aria-describedby":v?void 0:`${_V}-${w}`,"aria-label":_.ariaLabel,..._.domAttributes,children:y.jsx(CSe,{value:e,children:y.jsx(A,{id:e,data:_.data,type:T,positionAbsoluteX:$.positionAbsolute.x,positionAbsoluteY:$.positionAbsolute.y,selected:_.selected??!1,selectable:j,draggable:z,deletable:_.deletable??!0,isConnectable:I,sourcePosition:_.sourcePosition,targetPosition:_.targetPosition,dragging:V,dragHandle:_.dragHandle,zIndex:$.z,parentId:_.parentId,...F})})})}var USe=S.memo(HSe);const WSe=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function UV(e){const{nodesDraggable:r,nodesConnectable:n,nodesFocusable:o,elementsSelectable:i,onError:a}=Dt(WSe,jr),l=LSe(e.onlyRenderVisibleElements),s=VSe();return y.jsx("div",{className:"react-flow__nodes",style:ow,children:l.map(c=>y.jsx(USe,{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:i,nodeClickDistance:e.nodeClickDistance,onError:a},c))})}UV.displayName="NodeRenderer";const GSe=S.memo(UV);function YSe(e){return Dt(S.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 i=r.nodeLookup.get(o.source),a=r.nodeLookup.get(o.target);i&&a&&Y7e({sourceNode:i,targetNode:a,width:r.width,height:r.height,transform:r.transform})&&n.push(o.id)}return n},[e]),jr)}const XSe=({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"})},KSe=({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"})},WV={[Hx.Arrow]:XSe,[Hx.ArrowClosed]:KSe};function ZSe(e){const r=vr();return S.useMemo(()=>Object.prototype.hasOwnProperty.call(WV,e)?WV[e]:(r.getState().onError?.("009",Gl.error009(e)),null),[e])}const QSe=({id:e,type:r,color:n,width:o=12.5,height:i=12.5,markerUnits:a="strokeWidth",strokeWidth:l,orient:s="auto-start-reverse"})=>{const c=ZSe(r);return c?y.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:a,orient:s,refX:"0",refY:"0",children:y.jsx(c,{color:n,strokeWidth:l})}):null},GV=({defaultColor:e,rfId:r})=>{const n=Dt(a=>a.edges),o=Dt(a=>a.defaultEdgeOptions),i=S.useMemo(()=>t9e(n,{id:r,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,r,e]);return i.length?y.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:y.jsx("defs",{children:i.map(a=>y.jsx(QSe,{id:a.id,type:a.type,color:a.color,width:a.width,height:a.height,markerUnits:a.markerUnits,strokeWidth:a.strokeWidth,orient:a.orient},a.id))})}):null};GV.displayName="MarkerDefinitions";var JSe=S.memo(GV);function YV({x:e,y:r,label:n,labelStyle:o,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:l=[2,4],labelBgBorderRadius:s=2,children:c,className:d,...u}){const[p,f]=S.useState({x:1,y:0,width:0,height:0}),m=dn(["react-flow__edge-textwrapper",d]),v=S.useRef(null);return S.useEffect(()=>{if(v.current){const w=v.current.getBBox();f({x:w.x,y:w.y,width:w.width,height:w.height})}},[n]),n?y.jsxs("g",{transform:`translate(${e-p.width/2} ${r-p.height/2})`,className:m,visibility:p.width?"visible":"hidden",...u,children:[i&&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:a,rx:s,ry:s}),y.jsx("text",{className:"react-flow__edge-text",y:p.height/2,dy:"0.3em",ref:v,style:o,children:n}),c]}):null}YV.displayName="EdgeText";const eEe=S.memo(YV);function aw({path:e,labelX:r,labelY:n,label:o,labelStyle:i,labelShowBg:a,labelBgStyle:l,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:d=20,...u}){return y.jsxs(y.Fragment,{children:[y.jsx("path",{...u,d:e,fill:"none",className:dn(["react-flow__edge-path",u.className])}),d?y.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:d,className:"react-flow__edge-interaction"}):null,o&&Ka(r)&&Ka(n)?y.jsx(eEe,{x:r,y:n,label:o,labelStyle:i,labelShowBg:a,labelBgStyle:l,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function XV({pos:e,x1:r,y1:n,x2:o,y2:i}){return e===Ue.Left||e===Ue.Right?[.5*(r+o),n]:[r,.5*(n+i)]}function KV({sourceX:e,sourceY:r,sourcePosition:n=Ue.Bottom,targetX:o,targetY:i,targetPosition:a=Ue.Top}){const[l,s]=XV({pos:n,x1:e,y1:r,x2:o,y2:i}),[c,d]=XV({pos:a,x1:o,y1:i,x2:e,y2:r}),[u,p,f,m]=OF({sourceX:e,sourceY:r,targetX:o,targetY:i,sourceControlX:l,sourceControlY:s,targetControlX:c,targetControlY:d});return[`M${e},${r} C${l},${s} ${c},${d} ${o},${i}`,u,p,f,m]}function ZV(e){return S.memo(({id:r,sourceX:n,sourceY:o,targetX:i,targetY:a,sourcePosition:l,targetPosition:s,label:c,labelStyle:d,labelShowBg:u,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:m,style:v,markerEnd:w,markerStart:x,interactionWidth:k})=>{const[C,_,$]=KV({sourceX:n,sourceY:o,sourcePosition:l,targetX:i,targetY:a,targetPosition:s}),R=e.isInternal?void 0:r;return y.jsx(aw,{id:R,path:C,labelX:_,labelY:$,label:c,labelStyle:d,labelShowBg:u,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:m,style:v,markerEnd:w,markerStart:x,interactionWidth:k})})}const tEe=ZV({isInternal:!1}),QV=ZV({isInternal:!0});tEe.displayName="SimpleBezierEdge",QV.displayName="SimpleBezierEdgeInternal";function JV(e){return S.memo(({id:r,sourceX:n,sourceY:o,targetX:i,targetY:a,label:l,labelStyle:s,labelShowBg:c,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:p,style:f,sourcePosition:m=Ue.Bottom,targetPosition:v=Ue.Top,markerEnd:w,markerStart:x,pathOptions:k,interactionWidth:C})=>{const[_,$,R]=Zx({sourceX:n,sourceY:o,sourcePosition:m,targetX:i,targetY:a,targetPosition:v,borderRadius:k?.borderRadius,offset:k?.offset,stepPosition:k?.stepPosition}),T=e.isInternal?void 0:r;return y.jsx(aw,{id:T,path:_,labelX:$,labelY:R,label:l,labelStyle:s,labelShowBg:c,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:p,style:f,markerEnd:w,markerStart:x,interactionWidth:C})})}const eq=JV({isInternal:!1}),tq=JV({isInternal:!0});eq.displayName="SmoothStepEdge",tq.displayName="SmoothStepEdgeInternal";function rq(e){return S.memo(({id:r,...n})=>{const o=e.isInternal?void 0:r;return y.jsx(eq,{...n,id:o,pathOptions:S.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const rEe=rq({isInternal:!1}),nq=rq({isInternal:!0});rEe.displayName="StepEdge",nq.displayName="StepEdgeInternal";function oq(e){return S.memo(({id:r,sourceX:n,sourceY:o,targetX:i,targetY:a,label:l,labelStyle:s,labelShowBg:c,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:p,style:f,markerEnd:m,markerStart:v,interactionWidth:w})=>{const[x,k,C]=VF({sourceX:n,sourceY:o,targetX:i,targetY:a}),_=e.isInternal?void 0:r;return y.jsx(aw,{id:_,path:x,labelX:k,labelY:C,label:l,labelStyle:s,labelShowBg:c,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:p,style:f,markerEnd:m,markerStart:v,interactionWidth:w})})}const nEe=oq({isInternal:!1}),iq=oq({isInternal:!0});nEe.displayName="StraightEdge",iq.displayName="StraightEdgeInternal";function aq(e){return S.memo(({id:r,sourceX:n,sourceY:o,targetX:i,targetY:a,sourcePosition:l=Ue.Bottom,targetPosition:s=Ue.Top,label:c,labelStyle:d,labelShowBg:u,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:m,style:v,markerEnd:w,markerStart:x,pathOptions:k,interactionWidth:C})=>{const[_,$,R]=Kx({sourceX:n,sourceY:o,sourcePosition:l,targetX:i,targetY:a,targetPosition:s,curvature:k?.curvature}),T=e.isInternal?void 0:r;return y.jsx(aw,{id:T,path:_,labelX:$,labelY:R,label:c,labelStyle:d,labelShowBg:u,labelBgStyle:p,labelBgPadding:f,labelBgBorderRadius:m,style:v,markerEnd:w,markerStart:x,interactionWidth:C})})}const oEe=aq({isInternal:!1}),lq=aq({isInternal:!0});oEe.displayName="BezierEdge",lq.displayName="BezierEdgeInternal";const sq={default:lq,straight:iq,step:nq,smoothstep:tq,simplebezier:QV},cq={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},iEe=(e,r,n)=>n===Ue.Left?e-r:n===Ue.Right?e+r:e,aEe=(e,r,n)=>n===Ue.Top?e-r:n===Ue.Bottom?e+r:e,dq="react-flow__edgeupdater";function uq({position:e,centerX:r,centerY:n,radius:o=10,onMouseDown:i,onMouseEnter:a,onMouseOut:l,type:s}){return y.jsx("circle",{onMouseDown:i,onMouseEnter:a,onMouseOut:l,className:dn([dq,`${dq}-${s}`]),cx:iEe(r,o,e),cy:aEe(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function lEe({isReconnectable:e,reconnectRadius:r,edge:n,sourceX:o,sourceY:i,targetX:a,targetY:l,sourcePosition:s,targetPosition:c,onReconnect:d,onReconnectStart:u,onReconnectEnd:p,setReconnecting:f,setUpdateHover:m}){const v=vr(),w=($,R)=>{if($.button!==0)return;const{autoPanOnConnect:T,domNode:A,isValidConnection:z,connectionMode:j,connectionRadius:I,lib:N,onConnectStart:L,onConnectEnd:H,cancelConnection:P,nodeLookup:V,rfId:B,panBy:F,updateConnection:q}=v.getState(),G=R.type==="target",U=(O,W)=>{f(!1),p?.(O,n,R.type,W)},Y=O=>d?.(n,O),K=(O,W)=>{f(!0),u?.($,n,R.type),L?.(O,W)};U7.onPointerDown($.nativeEvent,{autoPanOnConnect:T,connectionMode:j,connectionRadius:I,domNode:A,handleId:R.id,nodeId:R.nodeId,nodeLookup:V,isTarget:G,edgeUpdaterType:R.type,lib:N,flowId:B,cancelConnection:P,panBy:F,isValidConnection:z,onConnect:Y,onConnectStart:K,onConnectEnd:H,onReconnectEnd:U,updateConnection:q,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,dragThreshold:v.getState().connectionDragThreshold,handleDomNode:$.currentTarget})},x=$=>w($,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),k=$=>w($,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),C=()=>m(!0),_=()=>m(!1);return y.jsxs(y.Fragment,{children:[(e===!0||e==="source")&&y.jsx(uq,{position:s,centerX:o,centerY:i,radius:r,onMouseDown:x,onMouseEnter:C,onMouseOut:_,type:"source"}),(e===!0||e==="target")&&y.jsx(uq,{position:c,centerX:a,centerY:l,radius:r,onMouseDown:k,onMouseEnter:C,onMouseOut:_,type:"target"})]})}function sEe({id:e,edgesFocusable:r,edgesReconnectable:n,elementsSelectable:o,onClick:i,onDoubleClick:a,onContextMenu:l,onMouseEnter:s,onMouseMove:c,onMouseLeave:d,reconnectRadius:u,onReconnect:p,onReconnectStart:f,onReconnectEnd:m,rfId:v,edgeTypes:w,noPanClassName:x,onError:k,disableKeyboardA11y:C}){let _=Dt(ce=>ce.edgeLookup.get(e));const $=Dt(ce=>ce.defaultEdgeOptions);_=$?{...$,..._}:_;let R=_.type||"default",T=w?.[R]||sq[R];T===void 0&&(k?.("011",Gl.error011(R)),R="default",T=w?.default||sq.default);const A=!!(_.focusable||r&&typeof _.focusable>"u"),z=typeof p<"u"&&(_.reconnectable||n&&typeof _.reconnectable>"u"),j=!!(_.selectable||o&&typeof _.selectable>"u"),I=S.useRef(null),[N,L]=S.useState(!1),[H,P]=S.useState(!1),V=vr(),{zIndex:B,sourceX:F,sourceY:q,targetX:G,targetY:U,sourcePosition:Y,targetPosition:K}=Dt(S.useCallback(ce=>{const pe=ce.nodeLookup.get(_.source),xe=ce.nodeLookup.get(_.target);if(!pe||!xe)return{zIndex:_.zIndex,...cq};const je=WF({id:e,sourceNode:pe,targetNode:xe,sourceHandle:_.sourceHandle||null,targetHandle:_.targetHandle||null,connectionMode:ce.connectionMode,onError:k});return{zIndex:G7e({selected:_.selected,zIndex:_.zIndex,sourceNode:pe,targetNode:xe,elevateOnSelect:ce.elevateEdgesOnSelect,zIndexMode:ce.zIndexMode}),...je||cq}},[_.source,_.target,_.sourceHandle,_.targetHandle,_.selected,_.zIndex]),jr),O=S.useMemo(()=>_.markerStart?`url('#${B7(_.markerStart,v)}')`:void 0,[_.markerStart,v]),W=S.useMemo(()=>_.markerEnd?`url('#${B7(_.markerEnd,v)}')`:void 0,[_.markerEnd,v]);if(_.hidden||F===null||q===null||G===null||U===null)return null;const Z=ce=>{const{addSelectedEdges:pe,unselectNodesAndEdges:xe,multiSelectionActive:je}=V.getState();j&&(V.setState({nodesSelectionActive:!1}),_.selected&&je?(xe({nodes:[],edges:[_]}),I.current?.blur()):pe([e])),i&&i(ce,_)},Q=a?ce=>{a(ce,{..._})}:void 0,ie=l?ce=>{l(ce,{..._})}:void 0,te=s?ce=>{s(ce,{..._})}:void 0,re=c?ce=>{c(ce,{..._})}:void 0,ue=d?ce=>{d(ce,{..._})}:void 0,_e=ce=>{if(!C&&bF.includes(ce.key)&&j){const{unselectNodesAndEdges:pe,addSelectedEdges:xe}=V.getState();ce.key==="Escape"?(I.current?.blur(),pe({edges:[_]})):xe([e])}};return y.jsx("svg",{style:{zIndex:B},children:y.jsxs("g",{className:dn(["react-flow__edge",`react-flow__edge-${R}`,_.className,x,{selected:_.selected,animated:_.animated,inactive:!j&&!i,updating:N,selectable:j}]),onClick:Z,onDoubleClick:Q,onContextMenu:ie,onMouseEnter:te,onMouseMove:re,onMouseLeave:ue,onKeyDown:A?_e:void 0,tabIndex:A?0:void 0,role:_.ariaRole??(A?"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":A?`${SV}-${v}`:void 0,ref:I,..._.domAttributes,children:[!H&&y.jsx(T,{id:e,source:_.source,target:_.target,type:_.type,selected:_.selected,animated:_.animated,selectable:j,deletable:_.deletable??!0,label:_.label,labelStyle:_.labelStyle,labelShowBg:_.labelShowBg,labelBgStyle:_.labelBgStyle,labelBgPadding:_.labelBgPadding,labelBgBorderRadius:_.labelBgBorderRadius,sourceX:F,sourceY:q,targetX:G,targetY:U,sourcePosition:Y,targetPosition:K,data:_.data,style:_.style,sourceHandleId:_.sourceHandle,targetHandleId:_.targetHandle,markerStart:O,markerEnd:W,pathOptions:"pathOptions"in _?_.pathOptions:void 0,interactionWidth:_.interactionWidth}),z&&y.jsx(lEe,{edge:_,isReconnectable:z,reconnectRadius:u,onReconnect:p,onReconnectStart:f,onReconnectEnd:m,sourceX:F,sourceY:q,targetX:G,targetY:U,sourcePosition:Y,targetPosition:K,setUpdateHover:L,setReconnecting:P})]})})}var cEe=S.memo(sEe);const dEe=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function pq({defaultMarkerColor:e,onlyRenderVisibleElements:r,rfId:n,edgeTypes:o,noPanClassName:i,onReconnect:a,onEdgeContextMenu:l,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:d,onEdgeClick:u,reconnectRadius:p,onEdgeDoubleClick:f,onReconnectStart:m,onReconnectEnd:v,disableKeyboardA11y:w}){const{edgesFocusable:x,edgesReconnectable:k,elementsSelectable:C,onError:_}=Dt(dEe,jr),$=YSe(r);return y.jsxs("div",{className:"react-flow__edges",children:[y.jsx(JSe,{defaultColor:e,rfId:n}),$.map(R=>y.jsx(cEe,{id:R,edgesFocusable:x,edgesReconnectable:k,elementsSelectable:C,noPanClassName:i,onReconnect:a,onContextMenu:l,onMouseEnter:s,onMouseMove:c,onMouseLeave:d,onClick:u,reconnectRadius:p,onDoubleClick:f,onReconnectStart:m,onReconnectEnd:v,rfId:n,onError:_,edgeTypes:o,disableKeyboardA11y:w},R))]})}pq.displayName="EdgeRenderer";const uEe=S.memo(pq),pEe=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function hEe({children:e}){const r=Dt(pEe);return y.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:r},children:e})}function fEe(e){const r=pf(),n=S.useRef(!1);S.useEffect(()=>{!n.current&&r.viewportInitialized&&e&&(setTimeout(()=>e(r),1),n.current=!0)},[e,r.viewportInitialized])}const gEe=e=>e.panZoom?.syncViewport;function mEe(e){const r=Dt(gEe),n=vr();return S.useEffect(()=>{e&&(r?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,r]),null}function yEe(e){return e.connection.inProgress?{...e.connection,to:G1(e.connection.to,e.transform)}:{...e.connection}}function vEe(e){return yEe}function bEe(e){const r=vEe();return Dt(r,jr)}const xEe=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function wEe({containerStyle:e,style:r,type:n,component:o}){const{nodesConnectable:i,width:a,height:l,isValid:s,inProgress:c}=Dt(xEe,jr);return a&&i&&c?y.jsx("svg",{style:e,width:a,height:l,className:"react-flow__connectionline react-flow__container",children:y.jsx("g",{className:dn(["react-flow__connection",_F(s)]),children:y.jsx(hq,{style:r,type:n,CustomComponent:o,isValid:s})})}):null}const hq=({style:e,type:r=id.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:i,from:a,fromNode:l,fromHandle:s,fromPosition:c,to:d,toNode:u,toHandle:p,toPosition:f,pointer:m}=bEe();if(!i)return;if(n)return y.jsx(n,{connectionLineType:r,connectionLineStyle:e,fromNode:l,fromHandle:s,fromX:a.x,fromY:a.y,toX:d.x,toY:d.y,fromPosition:c,toPosition:f,connectionStatus:_F(o),toNode:u,toHandle:p,pointer:m});let v="";const w={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:d.x,targetY:d.y,targetPosition:f};switch(r){case id.Bezier:[v]=Kx(w);break;case id.SimpleBezier:[v]=KV(w);break;case id.Step:[v]=Zx({...w,borderRadius:0});break;case id.SmoothStep:[v]=Zx(w);break;default:[v]=VF(w)}return y.jsx("path",{d:v,fill:"none",className:"react-flow__connection-path",style:e})};hq.displayName="ConnectionLine";const kEe={};function fq(e=kEe){S.useRef(e),vr(),S.useEffect(()=>{},[e])}function _Ee(){vr(),S.useRef(!1),S.useEffect(()=>{},[])}function gq({nodeTypes:e,edgeTypes:r,onInit:n,onNodeClick:o,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:l,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:d,onNodeContextMenu:u,onSelectionContextMenu:p,onSelectionStart:f,onSelectionEnd:m,connectionLineType:v,connectionLineStyle:w,connectionLineComponent:x,connectionLineContainerStyle:k,selectionKeyCode:C,selectionOnDrag:_,selectionMode:$,multiSelectionKeyCode:R,panActivationKeyCode:T,zoomActivationKeyCode:A,deleteKeyCode:z,onlyRenderVisibleElements:j,elementsSelectable:I,defaultViewport:N,translateExtent:L,minZoom:H,maxZoom:P,preventScrolling:V,defaultMarkerColor:B,zoomOnScroll:F,zoomOnPinch:q,panOnScroll:G,panOnScrollSpeed:U,panOnScrollMode:Y,zoomOnDoubleClick:K,panOnDrag:O,onPaneClick:W,onPaneMouseEnter:Z,onPaneMouseMove:Q,onPaneMouseLeave:ie,onPaneScroll:te,onPaneContextMenu:re,paneClickDistance:ue,nodeClickDistance:_e,onEdgeContextMenu:ce,onEdgeMouseEnter:pe,onEdgeMouseMove:xe,onEdgeMouseLeave:je,reconnectRadius:Be,onReconnect:Je,onReconnectStart:st,onReconnectEnd:Le,noDragClassName:St,noWheelClassName:Ve,noPanClassName:qe,disableKeyboardA11y:Xe,nodeExtent:It,rfId:Et,viewport:be,onViewportChange:ke}){return fq(e),fq(r),_Ee(),fEe(n),mEe(be),y.jsx(ISe,{onPaneClick:W,onPaneMouseEnter:Z,onPaneMouseMove:Q,onPaneMouseLeave:ie,onPaneContextMenu:re,onPaneScroll:te,paneClickDistance:ue,deleteKeyCode:z,selectionKeyCode:C,selectionOnDrag:_,selectionMode:$,onSelectionStart:f,onSelectionEnd:m,multiSelectionKeyCode:R,panActivationKeyCode:T,zoomActivationKeyCode:A,elementsSelectable:I,zoomOnScroll:F,zoomOnPinch:q,zoomOnDoubleClick:K,panOnScroll:G,panOnScrollSpeed:U,panOnScrollMode:Y,panOnDrag:O,defaultViewport:N,translateExtent:L,minZoom:H,maxZoom:P,onSelectionContextMenu:p,preventScrolling:V,noDragClassName:St,noWheelClassName:Ve,noPanClassName:qe,disableKeyboardA11y:Xe,onViewportChange:ke,isControlledViewport:!!be,children:y.jsxs(hEe,{children:[y.jsx(uEe,{edgeTypes:r,onEdgeClick:i,onEdgeDoubleClick:l,onReconnect:Je,onReconnectStart:st,onReconnectEnd:Le,onlyRenderVisibleElements:j,onEdgeContextMenu:ce,onEdgeMouseEnter:pe,onEdgeMouseMove:xe,onEdgeMouseLeave:je,reconnectRadius:Be,defaultMarkerColor:B,noPanClassName:qe,disableKeyboardA11y:Xe,rfId:Et}),y.jsx(wEe,{style:w,type:v,component:x,containerStyle:k}),y.jsx("div",{className:"react-flow__edgelabel-renderer"}),y.jsx(GSe,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:d,onNodeContextMenu:u,nodeClickDistance:_e,onlyRenderVisibleElements:j,noPanClassName:qe,noDragClassName:St,disableKeyboardA11y:Xe,nodeExtent:It,rfId:Et}),y.jsx("div",{className:"react-flow__viewport-portal"})]})})}gq.displayName="GraphView";const SEe=S.memo(gq),mq=({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,width:i,height:a,fitView:l,fitViewOptions:s,minZoom:c=.5,maxZoom:d=2,nodeOrigin:u,nodeExtent:p,zIndexMode:f="basic"}={})=>{const m=new Map,v=new Map,w=new Map,x=new Map,k=o??r??[],C=n??e??[],_=u??[0,0],$=p??V1;QF(w,x,k);const R=F7(C,m,v,{nodeOrigin:_,nodeExtent:$,zIndexMode:f});let T=[0,0,1];if(l&&i&&a){const A=nf(m,{filter:N=>!!((N.width||N.initialWidth)&&(N.height||N.initialHeight))}),{x:z,y:j,zoom:I}=Ws(A,i,a,c,d,s?.padding??.1);T=[z,j,I]}return{rfId:"1",width:i??0,height:a??0,transform:T,nodes:C,nodesInitialized:R,nodeLookup:m,parentLookup:v,edges:k,edgeLookup:x,connectionLookup:w,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:o!==void 0,panZoom:null,minZoom:c,maxZoom:d,translateExtent:V1,nodeExtent:$,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:rf.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:_,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:l??!1,fitViewOptions:s,fitViewResolver:null,connection:{...wF},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:F7e,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:xF,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},EEe=({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,width:i,height:a,fitView:l,fitViewOptions:s,minZoom:c,maxZoom:d,nodeOrigin:u,nodeExtent:p,zIndexMode:f})=>q9e((m,v)=>{async function w(){const{nodeLookup:x,panZoom:k,fitViewOptions:C,fitViewResolver:_,width:$,height:R,minZoom:T,maxZoom:A}=v();k&&(await O7e({nodes:x,width:$,height:R,panZoom:k,minZoom:T,maxZoom:A},C),_?.resolve(!0),m({fitViewResolver:null}))}return{...mq({nodes:e,edges:r,width:i,height:a,fitView:l,fitViewOptions:s,minZoom:c,maxZoom:d,nodeOrigin:u,nodeExtent:p,defaultNodes:n,defaultEdges:o,zIndexMode:f}),setNodes:x=>{const{nodeLookup:k,parentLookup:C,nodeOrigin:_,elevateNodesOnSelect:$,fitViewQueued:R,zIndexMode:T}=v(),A=F7(x,k,C,{nodeOrigin:_,nodeExtent:p,elevateNodesOnSelect:$,checkEquality:!0,zIndexMode:T});R&&A?(w(),m({nodes:x,nodesInitialized:A,fitViewQueued:!1,fitViewOptions:void 0})):m({nodes:x,nodesInitialized:A})},setEdges:x=>{const{connectionLookup:k,edgeLookup:C}=v();QF(k,C,x),m({edges:x})},setDefaultNodesAndEdges:(x,k)=>{if(x){const{setNodes:C}=v();C(x),m({hasDefaultNodes:!0})}if(k){const{setEdges:C}=v();C(k),m({hasDefaultEdges:!0})}},updateNodeInternals:x=>{const{triggerNodeChanges:k,nodeLookup:C,parentLookup:_,domNode:$,nodeOrigin:R,nodeExtent:T,debug:A,fitViewQueued:z,zIndexMode:j}=v(),{changes:I,updatedInternals:N}=c9e(x,C,_,$,R,T,j);N&&(i9e(C,_,{nodeOrigin:R,nodeExtent:T,zIndexMode:j}),z?(w(),m({fitViewQueued:!1,fitViewOptions:void 0})):m({}),I?.length>0&&(A&&console.log("React Flow: trigger node changes",I),k?.(I)))},updateNodePositions:(x,k=!1)=>{const C=[];let _=[];const{nodeLookup:$,triggerNodeChanges:R,connection:T,updateConnection:A,onNodesChangeMiddlewareMap:z}=v();for(const[j,I]of x){const N=$.get(j),L=!!(N?.expandParent&&N?.parentId&&I?.position),H={id:j,type:"position",position:L?{x:Math.max(0,I.position.x),y:Math.max(0,I.position.y)}:I.position,dragging:k};if(N&&T.inProgress&&T.fromNode.id===N.id){const P=Zu(N,T.fromHandle,Ue.Left,!0);A({...T,from:P})}L&&N.parentId&&C.push({id:j,parentId:N.parentId,rect:{...I.internals.positionAbsolute,width:I.measured.width??0,height:I.measured.height??0}}),_.push(H)}if(C.length>0){const{parentLookup:j,nodeOrigin:I}=v(),N=q7(C,$,j,I);_.push(...N)}for(const j of z.values())_=j(_);R(_)},triggerNodeChanges:x=>{const{onNodesChange:k,setNodes:C,nodes:_,hasDefaultNodes:$,debug:R}=v();if(x?.length){if($){const T=rw(x,_);C(T)}R&&console.log("React Flow: trigger node changes",x),k?.(x)}},triggerEdgeChanges:x=>{const{onEdgesChange:k,setEdges:C,edges:_,hasDefaultEdges:$,debug:R}=v();if(x?.length){if($){const T=nw(x,_);C(T)}R&&console.log("React Flow: trigger edge changes",x),k?.(x)}},addSelectedNodes:x=>{const{multiSelectionActive:k,edgeLookup:C,nodeLookup:_,triggerNodeChanges:$,triggerEdgeChanges:R}=v();if(k){const T=x.map(A=>Qu(A,!0));$(T);return}$(uf(_,new Set([...x]),!0)),R(uf(C))},addSelectedEdges:x=>{const{multiSelectionActive:k,edgeLookup:C,nodeLookup:_,triggerNodeChanges:$,triggerEdgeChanges:R}=v();if(k){const T=x.map(A=>Qu(A,!0));R(T);return}R(uf(C,new Set([...x]))),$(uf(_,new Set,!0))},unselectNodesAndEdges:({nodes:x,edges:k}={})=>{const{edges:C,nodes:_,nodeLookup:$,triggerNodeChanges:R,triggerEdgeChanges:T}=v(),A=x||_,z=k||C,j=A.map(N=>{const L=$.get(N.id);return L&&(L.selected=!1),Qu(N.id,!1)}),I=z.map(N=>Qu(N.id,!1));R(j),T(I)},setMinZoom:x=>{const{panZoom:k,maxZoom:C}=v();k?.setScaleExtent([x,C]),m({minZoom:x})},setMaxZoom:x=>{const{panZoom:k,minZoom:C}=v();k?.setScaleExtent([C,x]),m({maxZoom:x})},setTranslateExtent:x=>{v().panZoom?.setTranslateExtent(x),m({translateExtent:x})},resetSelectedElements:()=>{const{edges:x,nodes:k,triggerNodeChanges:C,triggerEdgeChanges:_,elementsSelectable:$}=v();if(!$)return;const R=k.reduce((A,z)=>z.selected?[...A,Qu(z.id,!1)]:A,[]),T=x.reduce((A,z)=>z.selected?[...A,Qu(z.id,!1)]:A,[]);C(R),_(T)},setNodeExtent:x=>{const{nodes:k,nodeLookup:C,parentLookup:_,nodeOrigin:$,elevateNodesOnSelect:R,nodeExtent:T,zIndexMode:A}=v();x[0][0]===T[0][0]&&x[0][1]===T[0][1]&&x[1][0]===T[1][0]&&x[1][1]===T[1][1]||(F7(k,C,_,{nodeOrigin:$,nodeExtent:x,elevateNodesOnSelect:R,checkEquality:!1,zIndexMode:A}),m({nodeExtent:x}))},panBy:x=>{const{transform:k,width:C,height:_,panZoom:$,translateExtent:R}=v();return d9e({delta:x,panZoom:$,transform:k,translateExtent:R,width:C,height:_})},setCenter:async(x,k,C)=>{const{width:_,height:$,maxZoom:R,panZoom:T}=v();if(!T)return Promise.resolve(!1);const A=typeof C?.zoom<"u"?C.zoom:R;return await T.setViewport({x:_/2-x*A,y:$/2-k*A,zoom:A},{duration:C?.duration,ease:C?.ease,interpolate:C?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{m({connection:{...wF}})},updateConnection:x=>{m({connection:x})},reset:()=>m({...mq()})}},Object.is);function lw({initialNodes:e,initialEdges:r,defaultNodes:n,defaultEdges:o,initialWidth:i,initialHeight:a,initialMinZoom:l,initialMaxZoom:s,initialFitViewOptions:c,fitView:d,nodeOrigin:u,nodeExtent:p,zIndexMode:f,children:m}){const[v]=S.useState(()=>EEe({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,width:i,height:a,fitView:d,minZoom:l,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:p,zIndexMode:f}));return y.jsx(H9e,{value:v,children:y.jsx(hSe,{children:m})})}function CEe({children:e,nodes:r,edges:n,defaultNodes:o,defaultEdges:i,width:a,height:l,fitView:s,fitViewOptions:c,minZoom:d,maxZoom:u,nodeOrigin:p,nodeExtent:f,zIndexMode:m}){return S.useContext(ew)?y.jsx(y.Fragment,{children:e}):y.jsx(lw,{initialNodes:r,initialEdges:n,defaultNodes:o,defaultEdges:i,initialWidth:a,initialHeight:l,fitView:s,initialFitViewOptions:c,initialMinZoom:d,initialMaxZoom:u,nodeOrigin:p,nodeExtent:f,zIndexMode:m,children:e})}const $Ee={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function REe({nodes:e,edges:r,defaultNodes:n,defaultEdges:o,className:i,nodeTypes:a,edgeTypes:l,onNodeClick:s,onEdgeClick:c,onInit:d,onMove:u,onMoveStart:p,onMoveEnd:f,onConnect:m,onConnectStart:v,onConnectEnd:w,onClickConnectStart:x,onClickConnectEnd:k,onNodeMouseEnter:C,onNodeMouseMove:_,onNodeMouseLeave:$,onNodeContextMenu:R,onNodeDoubleClick:T,onNodeDragStart:A,onNodeDrag:z,onNodeDragStop:j,onNodesDelete:I,onEdgesDelete:N,onDelete:L,onSelectionChange:H,onSelectionDragStart:P,onSelectionDrag:V,onSelectionDragStop:B,onSelectionContextMenu:F,onSelectionStart:q,onSelectionEnd:G,onBeforeDelete:U,connectionMode:Y,connectionLineType:K=id.Bezier,connectionLineStyle:O,connectionLineComponent:W,connectionLineContainerStyle:Z,deleteKeyCode:Q="Backspace",selectionKeyCode:ie="Shift",selectionOnDrag:te=!1,selectionMode:re=q1.Full,panActivationKeyCode:ue="Space",multiSelectionKeyCode:_e=lf()?"Meta":"Control",zoomActivationKeyCode:ce=lf()?"Meta":"Control",snapToGrid:pe,snapGrid:xe,onlyRenderVisibleElements:je=!1,selectNodesOnDrag:Be,nodesDraggable:Je,autoPanOnNodeFocus:st,nodesConnectable:Le,nodesFocusable:St,nodeOrigin:Ve=EV,edgesFocusable:qe,edgesReconnectable:Xe,elementsSelectable:It=!0,defaultViewport:Et=nSe,minZoom:be=.5,maxZoom:ke=2,translateExtent:Ye=V1,preventScrolling:yt=!0,nodeExtent:xt,defaultMarkerColor:Tr="#b1b1b7",zoomOnScroll:er=!0,zoomOnPinch:qt=!0,panOnScroll:Ht=!1,panOnScrollSpeed:Kr=.5,panOnScrollMode:Gt=Yu.Free,zoomOnDoubleClick:ln=!0,panOnDrag:Wn=!0,onPaneClick:fn,onPaneMouseEnter:oo,onPaneMouseMove:Yo,onPaneMouseLeave:jo,onPaneScroll:ui,onPaneContextMenu:Dl,paneClickDistance:Ao=1,nodeClickDistance:xs=0,children:ws,onReconnect:zc,onReconnectStart:Pl,onReconnectEnd:lh,onEdgeContextMenu:ks,onEdgeDoubleClick:tu,onEdgeMouseEnter:Xo,onEdgeMouseMove:Tc,onEdgeMouseLeave:_s,reconnectRadius:ru=10,onNodesChange:Ss,onEdgesChange:Ko,noDragClassName:Mr="nodrag",noWheelClassName:Pn="nowheel",noPanClassName:Do="nopan",fitView:Ml,fitViewOptions:jc,connectOnClick:sh,attributionPosition:Li,proOptions:Ra,defaultEdgeOptions:Nl,elevateNodesOnSelect:za=!0,elevateEdgesOnSelect:Ta=!1,disableKeyboardA11y:pi=!1,autoPanOnConnect:ho,autoPanOnNodeDrag:Wr,autoPanSpeed:Ac,connectionRadius:Dc,isValidConnection:Fi,onError:ja,style:nu,id:Es,nodeDragThreshold:ou,connectionDragThreshold:ch,viewport:Cs,onViewportChange:$s,width:Po,height:Gr,colorMode:iu="light",debug:dh,onScroll:Aa,ariaLabelConfig:au,zIndexMode:Da="basic",...lu},J){const ee=Es||"1",oe=lSe(iu),ae=S.useCallback(le=>{le.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Aa?.(le)},[Aa]);return y.jsx("div",{"data-testid":"rf__wrapper",...lu,onScroll:ae,style:{...nu,...$Ee},ref:J,className:dn(["react-flow",i,oe]),id:Es,role:"application",children:y.jsxs(CEe,{nodes:e,edges:r,width:Po,height:Gr,fitView:Ml,fitViewOptions:jc,minZoom:be,maxZoom:ke,nodeOrigin:Ve,nodeExtent:xt,zIndexMode:Da,children:[y.jsx(SEe,{onInit:d,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:C,onNodeMouseMove:_,onNodeMouseLeave:$,onNodeContextMenu:R,onNodeDoubleClick:T,nodeTypes:a,edgeTypes:l,connectionLineType:K,connectionLineStyle:O,connectionLineComponent:W,connectionLineContainerStyle:Z,selectionKeyCode:ie,selectionOnDrag:te,selectionMode:re,deleteKeyCode:Q,multiSelectionKeyCode:_e,panActivationKeyCode:ue,zoomActivationKeyCode:ce,onlyRenderVisibleElements:je,defaultViewport:Et,translateExtent:Ye,minZoom:be,maxZoom:ke,preventScrolling:yt,zoomOnScroll:er,zoomOnPinch:qt,zoomOnDoubleClick:ln,panOnScroll:Ht,panOnScrollSpeed:Kr,panOnScrollMode:Gt,panOnDrag:Wn,onPaneClick:fn,onPaneMouseEnter:oo,onPaneMouseMove:Yo,onPaneMouseLeave:jo,onPaneScroll:ui,onPaneContextMenu:Dl,paneClickDistance:Ao,nodeClickDistance:xs,onSelectionContextMenu:F,onSelectionStart:q,onSelectionEnd:G,onReconnect:zc,onReconnectStart:Pl,onReconnectEnd:lh,onEdgeContextMenu:ks,onEdgeDoubleClick:tu,onEdgeMouseEnter:Xo,onEdgeMouseMove:Tc,onEdgeMouseLeave:_s,reconnectRadius:ru,defaultMarkerColor:Tr,noDragClassName:Mr,noWheelClassName:Pn,noPanClassName:Do,rfId:ee,disableKeyboardA11y:pi,nodeExtent:xt,viewport:Cs,onViewportChange:$s}),y.jsx(aSe,{nodes:e,edges:r,defaultNodes:n,defaultEdges:o,onConnect:m,onConnectStart:v,onConnectEnd:w,onClickConnectStart:x,onClickConnectEnd:k,nodesDraggable:Je,autoPanOnNodeFocus:st,nodesConnectable:Le,nodesFocusable:St,edgesFocusable:qe,edgesReconnectable:Xe,elementsSelectable:It,elevateNodesOnSelect:za,elevateEdgesOnSelect:Ta,minZoom:be,maxZoom:ke,nodeExtent:xt,onNodesChange:Ss,onEdgesChange:Ko,snapToGrid:pe,snapGrid:xe,connectionMode:Y,translateExtent:Ye,connectOnClick:sh,defaultEdgeOptions:Nl,fitView:Ml,fitViewOptions:jc,onNodesDelete:I,onEdgesDelete:N,onDelete:L,onNodeDragStart:A,onNodeDrag:z,onNodeDragStop:j,onSelectionDrag:V,onSelectionDragStart:P,onSelectionDragStop:B,onMove:u,onMoveStart:p,onMoveEnd:f,noPanClassName:Do,nodeOrigin:Ve,rfId:ee,autoPanOnConnect:ho,autoPanOnNodeDrag:Wr,autoPanSpeed:Ac,onError:ja,connectionRadius:Dc,isValidConnection:Fi,selectNodesOnDrag:Be,nodeDragThreshold:ou,connectionDragThreshold:ch,onBeforeDelete:U,debug:dh,ariaLabelConfig:au,zIndexMode:Da}),y.jsx(rSe,{onSelectionChange:H}),ws,y.jsx(Z9e,{proOptions:Ra,position:Li}),y.jsx(K9e,{rfId:ee,disableKeyboardA11y:pi})]})})}var zEe=NV(REe);const TEe=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");function yq({children:e}){const r=Dt(TEe);return r?Va.createPortal(e,r):null}function jEe({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:dn(["react-flow__background-pattern",n,o])})}function AEe({radius:e,className:r}){return y.jsx("circle",{cx:e,cy:e,r:e,className:dn(["react-flow__background-pattern","dots",r])})}var Qa;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Qa||(Qa={}));const DEe={[Qa.Dots]:1,[Qa.Lines]:1,[Qa.Cross]:6},PEe=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function vq({id:e,variant:r=Qa.Dots,gap:n=20,size:o,lineWidth:i=1,offset:a=0,color:l,bgColor:s,style:c,className:d,patternClassName:u}){const p=S.useRef(null),{transform:f,patternId:m}=Dt(PEe,jr),v=o||DEe[r],w=r===Qa.Dots,x=r===Qa.Cross,k=Array.isArray(n)?n:[n,n],C=[k[0]*f[2]||1,k[1]*f[2]||1],_=v*f[2],$=Array.isArray(a)?a:[a,a],R=x?[_,_]:C,T=[$[0]*f[2]||1+R[0]/2,$[1]*f[2]||1+R[1]/2],A=`${m}${e||""}`;return y.jsxs("svg",{className:dn(["react-flow__background",d]),style:{...c,...ow,"--xy-background-color-props":s,"--xy-background-pattern-color-props":l},ref:p,"data-testid":"rf__background",children:[y.jsx("pattern",{id:A,x:f[0]%C[0],y:f[1]%C[1],width:C[0],height:C[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${T[0]},-${T[1]})`,children:w?y.jsx(AEe,{radius:_/2,className:u}):y.jsx(jEe,{dimensions:R,lineWidth:i,variant:r,className:u})}),y.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${A})`})]})}vq.displayName="Background";const bq=S.memo(vq);function MEe(){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 NEe(){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 BEe(){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 IEe(){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 OEe(){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 sw({children:e,className:r,...n}){return y.jsx("button",{type:"button",className:dn(["react-flow__controls-button",r]),...n,children:e})}const LEe=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function xq({style:e,showZoom:r=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:l,onFitView:s,onInteractiveChange:c,className:d,children:u,position:p="bottom-left",orientation:f="vertical","aria-label":m}){const v=vr(),{isInteractive:w,minZoomReached:x,maxZoomReached:k,ariaLabelConfig:C}=Dt(LEe,jr),{zoomIn:_,zoomOut:$,fitView:R}=pf(),T=()=>{_(),a?.()},A=()=>{$(),l?.()},z=()=>{R(i),s?.()},j=()=>{v.setState({nodesDraggable:!w,nodesConnectable:!w,elementsSelectable:!w}),c?.(!w)};return y.jsxs(sd,{className:dn(["react-flow__controls",f==="horizontal"?"horizontal":"vertical",d]),position:p,style:e,"data-testid":"rf__controls","aria-label":m??C["controls.ariaLabel"],children:[r&&y.jsxs(y.Fragment,{children:[y.jsx(sw,{onClick:T,className:"react-flow__controls-zoomin",title:C["controls.zoomIn.ariaLabel"],"aria-label":C["controls.zoomIn.ariaLabel"],disabled:k,children:y.jsx(MEe,{})}),y.jsx(sw,{onClick:A,className:"react-flow__controls-zoomout",title:C["controls.zoomOut.ariaLabel"],"aria-label":C["controls.zoomOut.ariaLabel"],disabled:x,children:y.jsx(NEe,{})})]}),n&&y.jsx(sw,{className:"react-flow__controls-fitview",onClick:z,title:C["controls.fitView.ariaLabel"],"aria-label":C["controls.fitView.ariaLabel"],children:y.jsx(BEe,{})}),o&&y.jsx(sw,{className:"react-flow__controls-interactive",onClick:j,title:C["controls.interactive.ariaLabel"],"aria-label":C["controls.interactive.ariaLabel"],children:w?y.jsx(OEe,{}):y.jsx(IEe,{})}),u]})}xq.displayName="Controls",S.memo(xq);function FEe({id:e,x:r,y:n,width:o,height:i,style:a,color:l,strokeColor:s,strokeWidth:c,className:d,borderRadius:u,shapeRendering:p,selected:f,onClick:m}){const{background:v,backgroundColor:w}=a||{},x=l||v||w;return y.jsx("rect",{className:dn(["react-flow__minimap-node",{selected:f},d]),x:r,y:n,rx:u,ry:u,width:o,height:i,style:{fill:x,stroke:s,strokeWidth:c},shapeRendering:p,onClick:m?k=>m(k,e):void 0})}const VEe=S.memo(FEe),qEe=e=>e.nodes.map(r=>r.id),t9=e=>e instanceof Function?e:()=>e;function HEe({nodeStrokeColor:e,nodeColor:r,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:i,nodeComponent:a=VEe,onClick:l}){const s=Dt(qEe,jr),c=t9(r),d=t9(e),u=t9(n),p=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return y.jsx(y.Fragment,{children:s.map(f=>y.jsx(WEe,{id:f,nodeColorFunc:c,nodeStrokeColorFunc:d,nodeClassNameFunc:u,nodeBorderRadius:o,nodeStrokeWidth:i,NodeComponent:a,onClick:l,shapeRendering:p},f))})}function UEe({id:e,nodeColorFunc:r,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:l,NodeComponent:s,onClick:c}){const{node:d,x:u,y:p,width:f,height:m}=Dt(v=>{const{internals:w}=v.nodeLookup.get(e),x=w.userNode,{x:k,y:C}=w.positionAbsolute,{width:_,height:$}=_o(x);return{node:x,x:k,y:C,width:_,height:$}},jr);return!d||d.hidden||!AF(d)?null:y.jsx(s,{x:u,y:p,width:f,height:m,style:d.style,selected:!!d.selected,className:o(d),color:r(d),borderRadius:i,strokeColor:n(d),strokeWidth:a,shapeRendering:l,onClick:c,id:d.id})}const WEe=S.memo(UEe);var GEe=S.memo(HEe);const YEe=200,XEe=150,KEe=e=>!e.hidden,ZEe=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?TF(nf(e.nodeLookup,{filter:KEe}),r):r,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},QEe="react-flow__minimap-desc";function wq({style:e,className:r,nodeStrokeColor:n,nodeColor:o,nodeClassName:i="",nodeBorderRadius:a=5,nodeStrokeWidth:l,nodeComponent:s,bgColor:c,maskColor:d,maskStrokeColor:u,maskStrokeWidth:p,position:f="bottom-right",onClick:m,onNodeClick:v,pannable:w=!1,zoomable:x=!1,ariaLabel:k,inversePan:C,zoomStep:_=1,offsetScale:$=5}){const R=vr(),T=S.useRef(null),{boundingRect:A,viewBB:z,rfId:j,panZoom:I,translateExtent:N,flowWidth:L,flowHeight:H,ariaLabelConfig:P}=Dt(ZEe,jr),V=e?.width??YEe,B=e?.height??XEe,F=A.width/V,q=A.height/B,G=Math.max(F,q),U=G*V,Y=G*B,K=$*G,O=A.x-(U-A.width)/2-K,W=A.y-(Y-A.height)/2-K,Z=U+K*2,Q=Y+K*2,ie=`${QEe}-${j}`,te=S.useRef(0),re=S.useRef();te.current=G,S.useEffect(()=>{if(T.current&&I)return re.current=b9e({domNode:T.current,panZoom:I,getTransform:()=>R.getState().transform,getViewScale:()=>te.current}),()=>{re.current?.destroy()}},[I]),S.useEffect(()=>{re.current?.update({translateExtent:N,width:L,height:H,inversePan:C,pannable:w,zoomStep:_,zoomable:x})},[w,x,C,_,N,L,H]);const ue=m?pe=>{const[xe,je]=re.current?.pointer(pe)||[0,0];m(pe,{x:xe,y:je})}:void 0,_e=v?S.useCallback((pe,xe)=>{const je=R.getState().nodeLookup.get(xe).internals.userNode;v(pe,je)},[]):void 0,ce=k??P["minimap.ariaLabel"];return y.jsx(sd,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-background-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-color-props":typeof u=="string"?u: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:dn(["react-flow__minimap",r]),"data-testid":"rf__minimap",children:y.jsxs("svg",{width:V,height:B,viewBox:`${O} ${W} ${Z} ${Q}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":ie,ref:T,onClick:ue,children:[ce&&y.jsx("title",{id:ie,children:ce}),y.jsx(GEe,{onClick:_e,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:l,nodeComponent:s}),y.jsx("path",{className:"react-flow__minimap-mask",d:`M${O-K},${W-K}h${Z+K*2}v${Q+K*2}h${-Z-K*2}z + M${z.x},${z.y}h${z.width}v${z.height}h${-z.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}wq.displayName="MiniMap",S.memo(wq);const JEe=e=>r=>e?`${Math.max(1/r.transform[2],1)}`:void 0,eCe={[df.Line]:"right",[df.Handle]:"bottom-right"};function tCe({nodeId:e,position:r,variant:n=df.Handle,className:o,style:i=void 0,children:a,color:l,minWidth:s=10,minHeight:c=10,maxWidth:d=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:p=!1,resizeDirection:f,autoScale:m=!0,shouldResize:v,onResizeStart:w,onResize:x,onResizeEnd:k}){const C=e9(),_=typeof e=="string"?e:C,$=vr(),R=S.useRef(null),T=n===df.Handle,A=Dt(S.useCallback(JEe(T&&m),[T,m]),jr),z=S.useRef(null),j=r??eCe[n];S.useEffect(()=>{if(!(!R.current||!_))return z.current||(z.current=D9e({domNode:R.current,nodeId:_,getStoreItems:()=>{const{nodeLookup:N,transform:L,snapGrid:H,snapToGrid:P,nodeOrigin:V,domNode:B}=$.getState();return{nodeLookup:N,transform:L,snapGrid:H,snapToGrid:P,nodeOrigin:V,paneDomNode:B}},onChange:(N,L)=>{const{triggerNodeChanges:H,nodeLookup:P,parentLookup:V,nodeOrigin:B}=$.getState(),F=[],q={x:N.x,y:N.y},G=P.get(_);if(G&&G.expandParent&&G.parentId){const U=G.origin??B,Y=N.width??G.measured.width??0,K=N.height??G.measured.height??0,O={id:G.id,parentId:G.parentId,rect:{width:Y,height:K,...DF({x:N.x??G.position.x,y:N.y??G.position.y},{width:Y,height:K},G.parentId,P,U)}},W=q7([O],P,V,B);F.push(...W),q.x=N.x?Math.max(U[0]*Y,N.x):void 0,q.y=N.y?Math.max(U[1]*K,N.y):void 0}if(q.x!==void 0&&q.y!==void 0){const U={id:_,type:"position",position:{...q}};F.push(U)}if(N.width!==void 0&&N.height!==void 0){const U={id:_,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:N.width,height:N.height}};F.push(U)}for(const U of L){const Y={...U,type:"position"};F.push(Y)}H(F)},onEnd:({width:N,height:L})=>{const H={id:_,type:"dimensions",resizing:!1,dimensions:{width:N,height:L}};$.getState().triggerNodeChanges([H])}})),z.current.update({controlPosition:j,boundaries:{minWidth:s,minHeight:c,maxWidth:d,maxHeight:u},keepAspectRatio:p,resizeDirection:f,onResizeStart:w,onResize:x,onResizeEnd:k,shouldResize:v}),()=>{z.current?.destroy()}},[j,s,c,d,u,p,w,x,k,v]);const I=j.split("-");return y.jsx("div",{className:dn(["react-flow__resize-control","nodrag",...I,n,o]),ref:R,style:{...i,scale:A,...l&&{[T?"backgroundColor":"borderColor"]:l}},children:a})}S.memo(tCe);const rCe=e=>e.domNode?.querySelector(".react-flow__renderer");function nCe({children:e}){const r=Dt(rCe);return r?Va.createPortal(e,r):null}const oCe=(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,iCe=(e,r)=>{if(e.size!==r.size)return!1;for(const[n,o]of e)if(oCe(o,r.get(n)))return!1;return!0},aCe=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2],selectedNodesCount:e.nodes.filter(r=>r.selected).length});function r9({nodeId:e,children:r,className:n,style:o,isVisible:i,position:a=Ue.Top,offset:l=10,align:s="center",...c}){const d=e9(),u=S.useCallback($=>(Array.isArray(e)?e:[e||d||""]).reduce((R,T)=>{const A=$.nodeLookup.get(T);return A&&R.set(A.id,A),R},new Map),[e,d]),p=Dt(u,iCe),{x:f,y:m,zoom:v,selectedNodesCount:w}=Dt(aCe,jr);if(!(typeof i=="boolean"?i:p.size===1&&p.values().next().value?.selected&&w===1)||!p.size)return null;const x=nf(p),k=Array.from(p.values()),C=Math.max(...k.map($=>$.internals.z+1)),_={position:"absolute",transform:r9e(x,{x:f,y:m,zoom:v},a,l,s),zIndex:C,...o};return y.jsx(nCe,{children:y.jsx("div",{style:_,className:dn(["react-flow__node-toolbar",n]),...c,"data-id":k.reduce(($,R)=>`${$}${R.id} `,"").trim(),children:r})})}const{getOwnPropertyNames:lCe,getOwnPropertySymbols:sCe}=Object,{hasOwnProperty:cCe}=Object.prototype;function n9(e,r){return function(n,o,i){return e(n,o,i)&&r(n,o,i)}}function cw(e){return function(r,n,o){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,o);const{cache:i}=o,a=i.get(r),l=i.get(n);if(a&&l)return a===n&&l===r;i.set(r,n),i.set(n,r);const s=e(r,n,o);return i.delete(r),i.delete(n),s}}function dCe(e){return e?.[Symbol.toStringTag]}function kq(e){return lCe(e).concat(sCe(e))}const uCe=Object.hasOwn||((e,r)=>cCe.call(e,r));function Ju(e,r){return e===r||!e&&!r&&e!==e&&r!==r}const pCe="__v",hCe="__o",fCe="_owner",{getOwnPropertyDescriptor:_q,keys:Sq}=Object;function gCe(e,r){return e.byteLength===r.byteLength&&dw(new Uint8Array(e),new Uint8Array(r))}function mCe(e,r,n){let 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 yCe(e,r){return e.byteLength===r.byteLength&&dw(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}function vCe(e,r){return Ju(e.getTime(),r.getTime())}function bCe(e,r){return e.name===r.name&&e.message===r.message&&e.cause===r.cause&&e.stack===r.stack}function xCe(e,r){return e===r}function Eq(e,r,n){const o=e.size;if(o!==r.size)return!1;if(!o)return!0;const i=new Array(o),a=e.entries();let l,s,c=0;for(;(l=a.next())&&!l.done;){const d=r.entries();let u=!1,p=0;for(;(s=d.next())&&!s.done;){if(i[p]){p++;continue}const f=l.value,m=s.value;if(n.equals(f[0],m[0],c,p,e,r,n)&&n.equals(f[1],m[1],f[0],m[0],e,r,n)){u=i[p]=!0;break}p++}if(!u)return!1;c++}return!0}const wCe=Ju;function kCe(e,r,n){const o=Sq(e);let i=o.length;if(Sq(r).length!==i)return!1;for(;i-- >0;)if(!$q(e,r,n,o[i]))return!1;return!0}function K1(e,r,n){const o=kq(e);let i=o.length;if(kq(r).length!==i)return!1;let a,l,s;for(;i-- >0;)if(a=o[i],!$q(e,r,n,a)||(l=_q(e,a),s=_q(r,a),(l||s)&&(!l||!s||l.configurable!==s.configurable||l.enumerable!==s.enumerable||l.writable!==s.writable)))return!1;return!0}function _Ce(e,r){return Ju(e.valueOf(),r.valueOf())}function SCe(e,r){return e.source===r.source&&e.flags===r.flags}function Cq(e,r,n){const o=e.size;if(o!==r.size)return!1;if(!o)return!0;const i=new Array(o),a=e.values();let l,s;for(;(l=a.next())&&!l.done;){const c=r.values();let d=!1,u=0;for(;(s=c.next())&&!s.done;){if(!i[u]&&n.equals(l.value,s.value,l.value,s.value,e,r,n)){d=i[u]=!0;break}u++}if(!d)return!1}return!0}function dw(e,r){let n=e.byteLength;if(r.byteLength!==n||e.byteOffset!==r.byteOffset)return!1;for(;n-- >0;)if(e[n]!==r[n])return!1;return!0}function ECe(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 $q(e,r,n,o){return(o===fCe||o===hCe||o===pCe)&&(e.$$typeof||r.$$typeof)?!0:uCe(r,o)&&n.equals(e[o],r[o],o,o,e,r,n)}const CCe="[object ArrayBuffer]",$Ce="[object Arguments]",RCe="[object Boolean]",zCe="[object DataView]",TCe="[object Date]",jCe="[object Error]",ACe="[object Map]",DCe="[object Number]",PCe="[object Object]",MCe="[object RegExp]",NCe="[object Set]",BCe="[object String]",ICe={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},OCe="[object URL]",LCe=Object.prototype.toString;function FCe({areArrayBuffersEqual:e,areArraysEqual:r,areDataViewsEqual:n,areDatesEqual:o,areErrorsEqual:i,areFunctionsEqual:a,areMapsEqual:l,areNumbersEqual:s,areObjectsEqual:c,arePrimitiveWrappersEqual:d,areRegExpsEqual:u,areSetsEqual:p,areTypedArraysEqual:f,areUrlsEqual:m,unknownTagComparators:v}){return function(w,x,k){if(w===x)return!0;if(w==null||x==null)return!1;const C=typeof w;if(C!==typeof x)return!1;if(C!=="object")return C==="number"?s(w,x,k):C==="function"?a(w,x,k):!1;const _=w.constructor;if(_!==x.constructor)return!1;if(_===Object)return c(w,x,k);if(Array.isArray(w))return r(w,x,k);if(_===Date)return o(w,x,k);if(_===RegExp)return u(w,x,k);if(_===Map)return l(w,x,k);if(_===Set)return p(w,x,k);const $=LCe.call(w);if($===TCe)return o(w,x,k);if($===MCe)return u(w,x,k);if($===ACe)return l(w,x,k);if($===NCe)return p(w,x,k);if($===PCe)return typeof w.then!="function"&&typeof x.then!="function"&&c(w,x,k);if($===OCe)return m(w,x,k);if($===jCe)return i(w,x,k);if($===$Ce)return c(w,x,k);if(ICe[$])return f(w,x,k);if($===CCe)return e(w,x,k);if($===zCe)return n(w,x,k);if($===RCe||$===DCe||$===BCe)return d(w,x,k);if(v){let R=v[$];if(!R){const T=dCe(w);T&&(R=v[T])}if(R)return R(w,x,k)}return!1}}function VCe({circular:e,createCustomConfig:r,strict:n}){let o={areArrayBuffersEqual:gCe,areArraysEqual:n?K1:mCe,areDataViewsEqual:yCe,areDatesEqual:vCe,areErrorsEqual:bCe,areFunctionsEqual:xCe,areMapsEqual:n?n9(Eq,K1):Eq,areNumbersEqual:wCe,areObjectsEqual:n?K1:kCe,arePrimitiveWrappersEqual:_Ce,areRegExpsEqual:SCe,areSetsEqual:n?n9(Cq,K1):Cq,areTypedArraysEqual:n?n9(dw,K1):dw,areUrlsEqual:ECe,unknownTagComparators:void 0};if(r&&(o=Object.assign({},o,r(o))),e){const i=cw(o.areArraysEqual),a=cw(o.areMapsEqual),l=cw(o.areObjectsEqual),s=cw(o.areSetsEqual);o=Object.assign({},o,{areArraysEqual:i,areMapsEqual:a,areObjectsEqual:l,areSetsEqual:s})}return o}function qCe(e){return function(r,n,o,i,a,l,s){return e(r,n,s)}}function HCe({circular:e,comparator:r,createState:n,equals:o,strict:i}){if(n)return function(l,s){const{cache:c=e?new WeakMap:void 0,meta:d}=n();return r(l,s,{cache:c,equals:o,meta:d,strict:i})};if(e)return function(l,s){return r(l,s,{cache:new WeakMap,equals:o,meta:void 0,strict:i})};const a={cache:void 0,equals:o,meta:void 0,strict:i};return function(l,s){return r(l,s,a)}}const tt=cd();cd({strict:!0}),cd({circular:!0}),cd({circular:!0,strict:!0});const Ir=cd({createInternalComparator:()=>Ju});cd({strict:!0,createInternalComparator:()=>Ju}),cd({circular:!0,createInternalComparator:()=>Ju}),cd({circular:!0,createInternalComparator:()=>Ju,strict:!0});function cd(e={}){const{circular:r=!1,createInternalComparator:n,createState:o,strict:i=!1}=e,a=VCe(e),l=FCe(a),s=n?n(l):qCe(l);return HCe({circular:r,comparator:l,createState:o,equals:s,strict:i})}function UCe(e,r,n){let o=i=>e(i,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function nr(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return UCe(e,r,n);throw Error("Wrong number of arguments")}const WCe=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=Rq(r,n),i=e(o);return Rq(i,-n)};function Rq(e,r){let[n,o]=e.toString().split("e"),i=(o===void 0?0:Number.parseInt(o,10))+r,a=`${n}e${i.toString()}`;return Number.parseFloat(a)}function GCe(...e){return nr(WCe(Math.ceil),e)}function ta(...e){return nr(YCe,e)}const YCe=(e,{min:r,max:n})=>r!==void 0&&en?n:e;function XCe(...e){return nr(KCe,e)}const KCe=(e,r)=>[...e,...r],Z1={done:!1,hasNext:!1},ZCe=e=>({hasNext:!0,next:e,done:!1});function Jr(e,...r){let n=e,o=r.map(a=>"lazy"in a?QCe(a):void 0),i=0;for(;iJr(i,o),o)}throw Error("Wrong number of arguments")}function e$e(...e){return Tq(t$e,e)}function t$e(e){if(e.length===0)return ZCe;let r=new Map;for(let n of e)r.set(n,(r.get(n)??0)+1);return n=>{let o=r.get(n);return o===void 0||o===0?{done:!1,hasNext:!0,next:n}:(r.set(n,o-1),Z1)}}function xn(...e){return nr(r$e,e)}const r$e=(e,r)=>e.length>=r,jq={asc:(e,r)=>e>r,desc:(e,r)=>ee(a,i)}function o9(e,r,...n){let o=typeof e=="function"?e:e[0],i=typeof e=="function"?"asc":e[1],{[i]:a}=jq,l=r===void 0?void 0:o9(r,...n);return(s,c)=>{let d=o(s),u=o(c);return a(d,u)?1:a(u,d)?-1:l?.(s,c)??0}}function o$e(e){if(Aq(e))return!0;if(typeof e!="object"||!Array.isArray(e))return!1;let[r,n,...o]=e;return Aq(r)&&typeof n=="string"&&n in jq&&o.length===0}const Aq=e=>typeof e=="function"&&e.length===1;function uw(...e){return nr(Object.entries,e)}function ep(...e){return nr(i$e,e,a$e)}const i$e=(e,r)=>e.filter(r),a$e=e=>(r,n,o)=>e(r,n,o)?{done:!1,hasNext:!0,next:r}:Z1,Dq=e=>Object.assign(e,{single:!0});function Q1(...e){return nr(l$e,e,Dq(s$e))}const l$e=(e,r)=>e.find(r),s$e=e=>(r,n,o)=>e(r,n,o)?{done:!0,hasNext:!0,next:r}:Z1;function hf(...e){return nr(c$e,e,Dq(d$e))}const c$e=([e])=>e,d$e=()=>u$e,u$e=e=>({hasNext:!0,next:e,done:!0});function Pq(...e){return nr(p$e,e,h$e)}const p$e=(e,r)=>e.flatMap(r),h$e=e=>(r,n,o)=>{let i=e(r,n,o);return Array.isArray(i)?{done:!1,hasNext:!0,hasMany:!0,next:i}:{done:!1,hasNext:!0,next:i}};function f$e(...e){return nr(g$e,e)}function g$e(e,r){for(let[n,o]of Object.entries(e))r(o,n,e);return e}function m$e(...e){return nr(y$e,e)}const y$e=(e,r)=>{let n=Object.create(null);for(let o=0;otypeof e=="function";function _$e(e){return e!==null}function Bq(e){return e!=null}function S$e(e){return r=>!e(r)}function ty(e){return e==null}function Iq(e){return typeof e=="number"&&!Number.isNaN(e)}function a9(e){if(typeof e!="object"||!e)return!1;let r=Object.getPrototypeOf(e);return r===null||r===Object.prototype}function Oq(...e){return nr(E$e,e)}function E$e(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 C$e(e,r);if(e instanceof Set&&r instanceof Set)return $$e(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]:i}=e,{[o]:a}=r;if(i!==a||!Object.is(i,a))return!1}return!0}function C$e(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e){let i=r.get(n);if(o!==i||!Object.is(o,i))return!1}return!0}function $$e(e,r){if(e.size!==r.size)return!1;for(let n of e)if(!r.has(n))return!1;return!0}function pw(e){return typeof e=="string"}function Zn(e){return!!e}function Lq(...e){return nr(R$e,e)}const R$e=(e,r)=>e.join(r);function l9(...e){return nr(Object.keys,e)}function dd(...e){return nr(z$e,e)}const z$e=e=>e.at(-1);function un(...e){return nr(T$e,e,j$e)}const T$e=(e,r)=>e.map(r),j$e=e=>(r,n,o)=>({done:!1,hasNext:!0,next:e(r,n,o)});function hw(...e){return nr(A$e,e)}function A$e(e,r){let n={};for(let[o,i]of e.entries()){let[a,l]=r(i,o,e);n[a]=l}return n}function D$e(...e){return nr(P$e,e)}function P$e(e,r){let n={};for(let[o,i]of Object.entries(e))n[o]=r(i,o,e);return n}function Fq(...e){return nr(Vq,e)}function Vq(e,r){let n={...e,...r};for(let o in r){if(!(o in e))continue;let{[o]:i}=e;if(!a9(i))continue;let{[o]:a}=r;a9(a)&&(n[o]=Vq(i,a))}return n}function ud(...e){return nr(M$e,e)}function M$e(e,r){if(!xn(r,1))return{...e};if(!xn(r,2)){let{[r[0]]:o,...i}=e;return i}let n={...e};for(let o of r)delete n[o];return n}function N$e(...e){return nr(B$e,e)}function B$e(e,r){let n={...e};for(let[o,i]of Object.entries(n))r(i,o,e)&&delete n[o];return n}function fw(...e){return nr(I$e,e)}const I$e=e=>e.length===1?e[0]:void 0;function qq(...e){return nr(O$e,e)}const O$e=(e,r)=>{let n=[[],[]];for(let[o,i]of e.entries())r(i,o,e)?n[0].push(i):n[1].push(i);return n};function Hq(...e){return nr(L$e,e)}function L$e(e,r){let n={};for(let o of r)o in e&&(n[o]=e[o]);return n}function ry(...e){return nr(F$e,e)}function F$e(e,r){let n={};for(let[o,i]of Object.entries(e))r(i,o,e)&&(n[o]=i);return n}function rp(e,...r){return typeof e=="string"||typeof e=="number"||typeof e=="symbol"?n=>Uq(n,e,...r):Uq(e,...r)}function Uq(e,...r){let n=e;for(let o of r){if(n==null)return;n=n[o]}return n}function V$e(...e){return nr(q$e,e)}function q$e(e,r){let n=[];for(let o=e;oe.reduce(r,n);function U$e(...e){return nr(W$e,e)}function W$e(e){return[...e].reverse()}function G$e(...e){return nr(Y$e,e)}function Y$e(e,r){let n=[...e];return n.sort(r),n}function mw(...e){return n$e(X$e,e)}const X$e=(e,r)=>[...e].sort(r);function Wq(...e){return nr(K$e,e)}function K$e(e,r){return r(e),e}function yw(...e){return Tq(Z$e,e)}function Z$e(){let e=new Set;return r=>e.has(r)?Z1:(e.add(r),{done:!1,hasNext:!0,next:r})}let Ja=[],pd=0;const vw=4,Q$e=e=>{let r=[],n={get(){return n.lc||n.listen(()=>{})(),n.value},lc:0,listen(o){return n.lc=r.push(o),()=>{for(let a=pd+vw;a"u")return gRe;var r=mRe(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])}},vRe=Zq(),ff="data-scroll-locked",bRe=function(e,r,n,o){var i=e.left,a=e.top,l=e.right,s=e.gap;return n===void 0&&(n="margin"),` + .`.concat(eRe,` { overflow: hidden `).concat(o,`; - padding-right: `).concat(l,"px ").concat(o,`; + padding-right: `).concat(s,"px ").concat(o,`; } - body[`).concat(Hf,`] { + 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(s,`px; + padding-left: `.concat(i,`px; + padding-top: `).concat(a,`px; + padding-right: `).concat(l,`px; margin-left:0; margin-top:0; - margin-right: `).concat(l,"px ").concat(o,`; - `),n==="padding"&&"padding-right: ".concat(l,"px ").concat(o,";")].filter(Boolean).join(""),` + margin-right: `).concat(s,"px ").concat(o,`; + `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(o,";")].filter(Boolean).join(""),` } - .`).concat(G3,` { - right: `).concat(l,"px ").concat(o,`; + .`).concat(bw,` { + right: `).concat(s,"px ").concat(o,`; } - .`).concat(X3,` { - margin-right: `).concat(l,"px ").concat(o,`; + .`).concat(xw,` { + margin-right: `).concat(s,"px ").concat(o,`; } - .`).concat(G3," .").concat(G3,` { + .`).concat(bw," .").concat(bw,` { right: 0 `).concat(o,`; } - .`).concat(X3," .").concat(X3,` { + .`).concat(xw," .").concat(xw,` { margin-right: 0 `).concat(o,`; } - body[`).concat(Hf,`] { - `).concat(rDe,": ").concat(l,`px; + body[`).concat(ff,`] { + `).concat(tRe,": ").concat(s,`px; } -`)},rU=function(){var e=parseInt(document.body.getAttribute(Hf)||"0",10);return isFinite(e)?e:0},wDe=function(){E.useEffect(function(){return document.body.setAttribute(Hf,(rU()+1).toString()),function(){var e=rU()-1;e<=0?document.body.removeAttribute(Hf):document.body.setAttribute(Hf,e.toString())}},[])},kDe=function(e){var r=e.noRelative,n=e.noImportant,o=e.gapMode,a=o===void 0?"margin":o;wDe();var i=E.useMemo(function(){return bDe(a)},[a]);return E.createElement(vDe,{styles:xDe(i,!r,a,n?"":"!important")})},F9=!1;if(typeof window<"u")try{var Z3=Object.defineProperty({},"passive",{get:function(){return F9=!0,!0}});window.addEventListener("test",Z3,Z3),window.removeEventListener("test",Z3,Z3)}catch{F9=!1}var Vf=F9?{passive:!1}:!1,_De=function(e){return e.tagName==="TEXTAREA"},nU=function(e,r){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[r]!=="hidden"&&!(n.overflowY===n.overflowX&&!_De(e)&&n[r]==="visible")},EDe=function(e){return nU(e,"overflowY")},SDe=function(e){return nU(e,"overflowX")},oU=function(e,r){var n=r.ownerDocument,o=r;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var a=aU(e,o);if(a){var i=iU(e,o),s=i[1],l=i[2];if(s>l)return!0}o=o.parentNode}while(o&&o!==n.body);return!1},CDe=function(e){var r=e.scrollTop,n=e.scrollHeight,o=e.clientHeight;return[r,n,o]},TDe=function(e){var r=e.scrollLeft,n=e.scrollWidth,o=e.clientWidth;return[r,n,o]},aU=function(e,r){return e==="v"?EDe(r):SDe(r)},iU=function(e,r){return e==="v"?CDe(r):TDe(r)},ADe=function(e,r){return e==="h"&&r==="rtl"?-1:1},RDe=function(e,r,n,o,a){var i=ADe(e,window.getComputedStyle(r).direction),s=i*o,l=n.target,c=r.contains(l),u=!1,d=s>0,h=0,f=0;do{if(!l)break;var g=iU(e,l),b=g[0],x=g[1],w=g[2],k=x-w-i*b;(b||k)&&aU(e,l)&&(h+=k,f+=b);var C=l.parentNode;l=C&&C.nodeType===Node.DOCUMENT_FRAGMENT_NODE?C.host:C}while(!c&&l!==document.body||c&&(r.contains(l)||r===l));return(d&&Math.abs(h)<1||!d&&Math.abs(f)<1)&&(u=!0),u},Q3=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},sU=function(e){return[e.deltaX,e.deltaY]},lU=function(e){return e&&"current"in e?e.current:e},NDe=function(e,r){return e[0]===r[0]&&e[1]===r[1]},DDe=function(e){return` +`)},Qq=function(){var e=parseInt(document.body.getAttribute(ff)||"0",10);return isFinite(e)?e:0},xRe=function(){S.useEffect(function(){return document.body.setAttribute(ff,(Qq()+1).toString()),function(){var e=Qq()-1;e<=0?document.body.removeAttribute(ff):document.body.setAttribute(ff,e.toString())}},[])},wRe=function(e){var r=e.noRelative,n=e.noImportant,o=e.gapMode,i=o===void 0?"margin":o;xRe();var a=S.useMemo(function(){return yRe(i)},[i]);return S.createElement(vRe,{styles:bRe(a,!r,i,n?"":"!important")})},u9=!1;if(typeof window<"u")try{var kw=Object.defineProperty({},"passive",{get:function(){return u9=!0,!0}});window.addEventListener("test",kw,kw),window.removeEventListener("test",kw,kw)}catch{u9=!1}var gf=u9?{passive:!1}:!1,kRe=function(e){return e.tagName==="TEXTAREA"},Jq=function(e,r){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[r]!=="hidden"&&!(n.overflowY===n.overflowX&&!kRe(e)&&n[r]==="visible")},_Re=function(e){return Jq(e,"overflowY")},SRe=function(e){return Jq(e,"overflowX")},eH=function(e,r){var n=r.ownerDocument,o=r;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var i=tH(e,o);if(i){var a=rH(e,o),l=a[1],s=a[2];if(l>s)return!0}o=o.parentNode}while(o&&o!==n.body);return!1},ERe=function(e){var r=e.scrollTop,n=e.scrollHeight,o=e.clientHeight;return[r,n,o]},CRe=function(e){var r=e.scrollLeft,n=e.scrollWidth,o=e.clientWidth;return[r,n,o]},tH=function(e,r){return e==="v"?_Re(r):SRe(r)},rH=function(e,r){return e==="v"?ERe(r):CRe(r)},$Re=function(e,r){return e==="h"&&r==="rtl"?-1:1},RRe=function(e,r,n,o,i){var a=$Re(e,window.getComputedStyle(r).direction),l=a*o,s=n.target,c=r.contains(s),d=!1,u=l>0,p=0,f=0;do{if(!s)break;var m=rH(e,s),v=m[0],w=m[1],x=m[2],k=w-x-a*v;(v||k)&&tH(e,s)&&(p+=k,f+=v);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(u&&Math.abs(p)<1||!u&&Math.abs(f)<1)&&(d=!0),d},_w=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},nH=function(e){return[e.deltaX,e.deltaY]},oH=function(e){return e&&"current"in e?e.current:e},zRe=function(e,r){return e[0]===r[0]&&e[1]===r[1]},TRe=function(e){return` .block-interactivity-`.concat(e,` {pointer-events: none;} .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},$De=0,qf=[];function MDe(e){var r=E.useRef([]),n=E.useRef([0,0]),o=E.useRef(),a=E.useState($De++)[0],i=E.useState(tU)[0],s=E.useRef(e);E.useEffect(function(){s.current=e},[e]),E.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var x=eDe([e.lockRef.current],(e.shards||[]).map(lU)).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 l=E.useCallback(function(x,w){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!s.current.allowPinchZoom;var k=Q3(x),C=n.current,_="deltaX"in x?x.deltaX:C[0]-k[0],T="deltaY"in x?x.deltaY:C[1]-k[1],A,R=x.target,D=Math.abs(_)>Math.abs(T)?"h":"v";if("touches"in x&&D==="h"&&R.type==="range")return!1;var N=oU(D,R);if(!N)return!0;if(N?A=D:(A=D==="v"?"h":"v",N=oU(D,R)),!N)return!1;if(!o.current&&"changedTouches"in x&&(_||T)&&(o.current=A),!A)return!0;var M=o.current||A;return RDe(M,w,x,M==="h"?_:T)},[]),c=E.useCallback(function(x){var w=x;if(!(!qf.length||qf[qf.length-1]!==i)){var k="deltaY"in w?sU(w):Q3(w),C=r.current.filter(function(A){return A.name===w.type&&(A.target===w.target||w.target===A.shadowParent)&&NDe(A.delta,k)})[0];if(C&&C.should){w.cancelable&&w.preventDefault();return}if(!C){var _=(s.current.shards||[]).map(lU).filter(Boolean).filter(function(A){return A.contains(w.target)}),T=_.length>0?l(w,_[0]):!s.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:PDe(k)};r.current.push(_),setTimeout(function(){r.current=r.current.filter(function(T){return T!==_})},1)},[]),d=E.useCallback(function(x){n.current=Q3(x),o.current=void 0},[]),h=E.useCallback(function(x){u(x.type,sU(x),x.target,l(x,e.lockRef.current))},[]),f=E.useCallback(function(x){u(x.type,Q3(x),x.target,l(x,e.lockRef.current))},[]);E.useEffect(function(){return qf.push(i),e.setCallbacks({onScrollCapture:h,onWheelCapture:h,onTouchMoveCapture:f}),document.addEventListener("wheel",c,Vf),document.addEventListener("touchmove",c,Vf),document.addEventListener("touchstart",d,Vf),function(){qf=qf.filter(function(x){return x!==i}),document.removeEventListener("wheel",c,Vf),document.removeEventListener("touchmove",c,Vf),document.removeEventListener("touchstart",d,Vf)}},[]);var g=e.removeScrollBar,b=e.inert;return E.createElement(E.Fragment,null,b?E.createElement(i,{styles:DDe(a)}):null,g?E.createElement(kDe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function PDe(e){for(var r=null;e!==null;)e instanceof ShadowRoot&&(r=e.host,e=e.host),e=e.parentNode;return r}const zDe=cDe(eU,MDe);var A0=E.forwardRef(function(e,r){return E.createElement(K3,pl({},e,{ref:r,sideCar:zDe}))});A0.classNames=K3.classNames;function zo(e){return Object.keys(e)}function H9(e){return e&&typeof e=="object"&&!Array.isArray(e)}function V9(e,r){const n={...e},o=r;return H9(e)&&H9(r)&&Object.keys(r).forEach(a=>{H9(o[a])&&a in e?n[a]=V9(n[a],o[a]):n[a]=o[a]}),n}function IDe(e){return e.replace(/[A-Z]/g,r=>`-${r.toLowerCase()}`)}function ODe(e){return typeof e!="string"||!e.includes("var(--mantine-scale)")?e:e.match(/^calc\((.*?)\)$/)?.[1].split("*")[0].trim()}function q9(e){const r=ODe(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 cU(e){return e==="0rem"?"0rem":`calc(${e} * var(--mantine-scale))`}function uU(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?cU(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?cU(i):i}}return o}return n}const Me=uU("rem",{shouldScale:!0}),dU=uU("em");function Uf(e){return Object.keys(e).reduce((r,n)=>(e[n]!==void 0&&(r[n]=e[n]),r),{})}function pU(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 ps(e){return Array.isArray(e)||e===null?!1:typeof e=="object"?e.type!==E.Fragment:!1}function hi(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 R0(e=null){const r=E.createContext(e);return[({children:n,value:o})=>y.jsx(r.Provider,{value:o,children:n}),()=>E.useContext(r)]}function hU(e,r){return n=>{if(typeof n!="string"||n.trim().length===0)throw new Error(r);return`${e}-${n}`}}function Wf(e,r){let n=e;for(;(n=n.parentElement)&&!n.matches(r););return n}function jDe(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 LDe(e,r,n){for(let o=e+1;o{n?.(l);const c=Array.from(Wf(l.currentTarget,e)?.querySelectorAll(r)||[]).filter(b=>BDe(l.currentTarget,b,e)),u=c.findIndex(b=>l.currentTarget===b),d=LDe(u,c,o),h=jDe(u,c,o),f=i==="rtl"?h:d,g=i==="rtl"?d:h;switch(l.key){case"ArrowRight":{s==="horizontal"&&(l.stopPropagation(),l.preventDefault(),c[f].focus(),a&&c[f].click());break}case"ArrowLeft":{s==="horizontal"&&(l.stopPropagation(),l.preventDefault(),c[g].focus(),a&&c[g].click());break}case"ArrowUp":{s==="vertical"&&(l.stopPropagation(),l.preventDefault(),c[h].focus(),a&&c[h].click());break}case"ArrowDown":{s==="vertical"&&(l.stopPropagation(),l.preventDefault(),c[d].focus(),a&&c[d].click());break}case"Home":{l.stopPropagation(),l.preventDefault(),!c[0].disabled&&c[0].focus();break}case"End":{l.stopPropagation(),l.preventDefault();const b=c.length-1;!c[b].disabled&&c[b].focus();break}}}}const FDe={app:100,modal:200,popover:300,overlay:400,max:9999};function J3(e){return FDe[e]}const fU=()=>{};function HDe(e,r={active:!0}){return typeof e!="function"||!r.active?r.onKeyDown||fU:n=>{n.key==="Escape"&&(e(n),r.onTrigger?.())}}function kr(e,r="size",n=!0){if(e!==void 0)return pU(e)?n?Me(e):e:`var(--${r}-${e})`}function cc(e){return kr(e,"mantine-spacing")}function Pn(e){return e===void 0?"var(--mantine-radius-default)":kr(e,"mantine-radius")}function Io(e){return kr(e,"mantine-font-size")}function VDe(e){return kr(e,"mantine-line-height",!1)}function mU(e){if(e)return kr(e,"mantine-shadow",!1)}function zn(e,r){return n=>{e?.(n),r?.(n)}}function qDe(e,r){return e in r?q9(r[e]):q9(e)}function gU(e,r){const n=e.map(o=>({value:o,px:qDe(o,r)}));return n.sort((o,a)=>o.px-a.px),n}function D0(e){return typeof e=="object"&&e!==null?"base"in e?e.base:void 0:e}function UDe(e,r,n){return n?Array.from(Wf(n,r)?.querySelectorAll(e)||[]).findIndex(o=>o===n):null}function Cu(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 U9(e="mantine-"){return`${e}${Math.random().toString(36).slice(2,11)}`}function WDe(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 Yf(e,r){const{delay:n,flushOnUnmount:o,leading:a}=typeof r=="number"?{delay:r,flushOnUnmount:!1,leading:!1}:r,i=io(e),s=E.useRef(0),l=E.useMemo(()=>{const c=Object.assign((...u)=>{window.clearTimeout(s.current);const d=c._isFirstCall;c._isFirstCall=!1;function h(){window.clearTimeout(s.current),s.current=0,c._isFirstCall=!0}if(a&&d){i(...u);const b=()=>{h()},x=()=>{s.current!==0&&(h(),i(...u))},w=()=>{h()};c.flush=x,c.cancel=w,s.current=window.setTimeout(b,n);return}if(a&&!d){const b=()=>{s.current!==0&&(h(),i(...u))},x=()=>{h()};c.flush=b,c.cancel=x;const w=()=>{h()};s.current=window.setTimeout(w,n);return}const f=()=>{s.current!==0&&(h(),i(...u))},g=()=>{h()};c.flush=f,c.cancel=g,s.current=window.setTimeout(f,n)},{flush:()=>{},cancel:()=>{},_isFirstCall:!0});return c},[i,n,a]);return E.useEffect(()=>()=>{o?l.flush():l.cancel()},[l,o]),l}const YDe=["mousedown","touchstart"];function yU(e,r,n){const o=E.useRef(null),a=r||YDe;return E.useEffect(()=>{const i=s=>{const{target:l}=s??{};if(Array.isArray(n)){const c=!document.body.contains(l)&&l?.tagName!=="HTML";n.every(u=>!!u&&!s.composedPath().includes(u))&&!c&&e(s)}else o.current&&!o.current.contains(l)&&e(s)};return a.forEach(s=>document.addEventListener(s,i)),()=>{a.forEach(s=>document.removeEventListener(s,i))}},[o,e,n]),o}function GDe(e={timeout:2e3}){const[r,n]=E.useState(null),[o,a]=E.useState(!1),[i,s]=E.useState(null),l=c=>{window.clearTimeout(i),s(window.setTimeout(()=>a(!1),e.timeout)),a(c)};return{copy:c=>{"clipboard"in navigator?navigator.clipboard.writeText(c).then(()=>l(!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 XDe(e,r){try{return e.addEventListener("change",r),()=>e.removeEventListener("change",r)}catch{return e.addListener(r),()=>e.removeListener(r)}}function KDe(e,r){return typeof window<"u"&&"matchMedia"in window?window.matchMedia(e).matches:!1}function bU(e,r,{getInitialValueInEffect:n}={getInitialValueInEffect:!0}){const[o,a]=E.useState(n?r:KDe(e));return E.useEffect(()=>{try{const i=window.matchMedia(e);return a(i.matches),XDe(i,s=>a(s.matches))}catch{return}},[e]),o||!1}function vU(e,r){return bU("(prefers-color-scheme: dark)",e==="dark",r)?"dark":"light"}function ZDe(e,r,n={leading:!1}){const[o,a]=E.useState(e),i=E.useRef(null),s=E.useRef(!0),l=()=>window.clearTimeout(i.current);E.useEffect(()=>l,[]);const c=E.useCallback(u=>{l(),s.current&&n.leading?a(u):i.current=window.setTimeout(()=>{s.current=!0,a(u)},r),s.current=!1},[n.leading]);return[o,c]}function W9(e,r,n={leading:!1}){const[o,a]=E.useState(e),i=E.useRef(!1),s=E.useRef(null),l=E.useRef(!1),c=E.useCallback(()=>window.clearTimeout(s.current),[]);return E.useEffect(()=>{i.current&&(!l.current&&n.leading?(l.current=!0,a(e)):(c(),s.current=window.setTimeout(()=>{l.current=!1,a(e)},r)))},[e,n.leading,r]),E.useEffect(()=>(i.current=!0,c),[]),[o,c]}const $0=typeof document<"u"?E.useLayoutEffect:E.useEffect;function gp(e,r){const n=E.useRef(!1);E.useEffect(()=>()=>{n.current=!1},[]),E.useEffect(()=>{if(n.current)return e();n.current=!0},r)}function QDe({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 gp(()=>{let a=-1;const i=s=>{s.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 JDe=/input|select|textarea|button|object/,xU="a, input, select, textarea, button, object, [tabindex]";function e$e(e){return e.style.display==="none"}function t$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(e$e(r))return!1;r=r.parentNode}return!0}function wU(e){let r=e.getAttribute("tabindex");return r===null&&(r=void 0),parseInt(r,10)}function Y9(e){const r=e.nodeName.toLowerCase(),n=!Number.isNaN(wU(e));return(JDe.test(r)&&!e.disabled||e instanceof HTMLAnchorElement&&e.href||n)&&t$e(e)}function kU(e){const r=wU(e);return(Number.isNaN(r)||r>=0)&&Y9(e)}function r$e(e){return Array.from(e.querySelectorAll(xU)).filter(kU)}function n$e(e,r){const n=r$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 s=a.activeElement;if(s.tagName==="INPUT"&&s.getAttribute("type")==="radio"&&(i=n.filter(c=>c.getAttribute("type")==="radio"&&c.getAttribute("name")===s.getAttribute("name")).includes(o)),!i)return;r.preventDefault();const l=n[r.shiftKey?n.length-1:0];l&&l.focus()}function _U(e=!0){const r=E.useRef(null),n=a=>{let i=a.querySelector("[data-autofocus]");if(!i){const s=Array.from(a.querySelectorAll(xU));i=s.find(kU)||s.find(Y9)||null,!i&&Y9(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&&n$e(r.current,i)};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[e]),o}const o$e=dn.useId||(()=>{});function a$e(){const e=o$e();return e?`mantine-${e.replace(/:/g,"")}`:""}function fi(e){const r=a$e(),[n,o]=E.useState(r);return $0(()=>{o(U9())},[]),typeof e=="string"?e:typeof window>"u"?r:n}function Gf(e,r,n){E.useEffect(()=>(window.addEventListener(e,r,n),()=>window.removeEventListener(e,r,n)),[e,r])}function i$e(e,r="use-local-storage"){try{return JSON.stringify(e)}catch{throw new Error(`@mantine/hooks ${r}: Failed to serialize the value`)}}function s$e(e){try{return e&&JSON.parse(e)}catch{return e}}function l$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 EU(e,r){const n=e==="localStorage"?"mantine-local-storage":"mantine-session-storage",{getItem:o,setItem:a,removeItem:i}=l$e(e);return function({key:s,defaultValue:l,getInitialValueInEffect:c=!0,sync:u=!0,deserialize:d=s$e,serialize:h=f=>i$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 l;const _=o(s);return _!==null?d(_):l},[s,l]),[g,b]=E.useState(f(c)),x=E.useCallback(k=>{k instanceof Function?b(C=>{const _=k(C);return a(s,h(_)),queueMicrotask(()=>{window.dispatchEvent(new CustomEvent(n,{detail:{key:s,value:k(C)}}))}),_}):(a(s,h(k)),window.dispatchEvent(new CustomEvent(n,{detail:{key:s,value:k}})),b(k))},[s]),w=E.useCallback(()=>{i(s),b(l),window.dispatchEvent(new CustomEvent(n,{detail:{key:s,value:l}}))},[s,l]);return Gf("storage",k=>{u&&k.storageArea===window[e]&&k.key===s&&b(d(k.newValue??void 0))}),Gf(n,k=>{u&&k.detail.key===s&&b(k.detail.value)}),E.useEffect(()=>{l!==void 0&&g===void 0&&x(l)},[l,g,x]),E.useEffect(()=>{const k=f();k!==void 0&&x(k)},[s]),[g===void 0?l:g,x,w]}}function c$e(e){return EU("localStorage","use-local-storage")(e)}function u$e(e){return EU("sessionStorage","use-session-storage")(e)}function G9(e,r){if(typeof e=="function")return e(r);typeof e=="object"&&e!==null&&"current"in e&&(e.current=r)}function SU(...e){const r=new Map;return n=>{if(e.forEach(o=>{const a=G9(o,n);a&&r.set(o,a)}),r.size>0)return()=>{e.forEach(o=>{const a=r.get(o);a&&typeof a=="function"?a():G9(o,null)}),r.clear()}}}function Hr(...e){return E.useCallback(SU(...e),e)}function d$e(e){return{x:Cu(e.x,0,1),y:Cu(e.y,0,1)}}function CU(e,r,n="ltr"){const o=E.useRef(!1),a=E.useRef(!1),i=E.useRef(0),[s,l]=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 A=u.getBoundingClientRect();if(A.width&&A.height){const R=Cu((_-A.left)/A.width,0,1);e({x:n==="ltr"?R:1-R,y:Cu((T-A.top)/A.height,0,1)})}}})},h=()=>{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(),l(!0),h())},b=()=>{a.current&&o.current&&(a.current=!1,l(!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:s}}function uc({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,(l,...c)=>{i(l),o?.(l,...c)},!1]}function TU(e,r){return bU("(prefers-reduced-motion: reduce)",e,r)}function p$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 Gf("resize",n,AU),Gf("orientationchange",n,AU),E.useEffect(n,[]),e}const g$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 e2(e){const r=e.replace("Key","").toLowerCase();return g$e[e]||r}function y$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 b$e(e,r,n){const{alt:o,ctrl:a,meta:i,mod:s,shift:l,key:c}=e,{altKey:u,ctrlKey:d,metaKey:h,shiftKey:f,key:g,code:b}=r;if(o!==u)return!1;if(s){if(!d&&!h)return!1}else if(a!==d||i!==h)return!1;return l!==f?!1:!!(c&&(n?e2(b)===e2(c):e2(g??b)===e2(c)))}function RU(e,r){return n=>b$e(y$e(e),n,r)}function t2(e){return r=>{const n="nativeEvent"in r?r.nativeEvent:r;e.forEach(([o,a,i={preventDefault:!0,usePhysicalKeys:!1}])=>{RU(o,i.usePhysicalKeys)(n)&&(i.preventDefault&&r.preventDefault(),a(n))})}}function v$e(e,r,n=!1){return e.target instanceof HTMLElement?(n||!e.target.isContentEditable)&&!r.includes(e.target.tagName):!0}function x$e(e,r=["INPUT","TEXTAREA","SELECT"],n=!1){E.useEffect(()=>{const o=a=>{e.forEach(([i,s,l={preventDefault:!0,usePhysicalKeys:!1}])=>{RU(i,l.usePhysicalKeys)(a)&&v$e(a,r,n)&&(l.preventDefault&&a.preventDefault(),s(a))})};return document.documentElement.addEventListener("keydown",o),()=>document.documentElement.removeEventListener("keydown",o)},[e])}function X9(){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 w$e(e=!1,r={}){const[n,o]=E.useState(e),a=E.useCallback(()=>{o(l=>l||(r.onOpen?.(),!0))},[r.onOpen]),i=E.useCallback(()=>{o(l=>l&&(r.onClose?.(),!1))},[r.onClose]),s=E.useCallback(()=>{n?i():a()},[i,a,n]);return[n,{open:a,close:i,toggle:s}]}function k$e(e){return e.currentTarget instanceof HTMLElement&&e.relatedTarget instanceof HTMLElement?e.currentTarget.contains(e.relatedTarget):!1}function _$e({onBlur:e,onFocus:r}={}){const[n,o]=E.useState(!1),a=E.useRef(!1),i=E.useRef(null),s=E.useCallback(d=>{o(d),a.current=d},[]),l=E.useCallback(d=>{a.current||(s(!0),r?.(d))},[r]),c=E.useCallback(d=>{a.current&&!k$e(d)&&(s(!1),e?.(d))},[e]),u=E.useCallback(d=>{d&&(i.current&&(i.current.removeEventListener("focusin",l),i.current.removeEventListener("focusout",c)),d.addEventListener("focusin",l),d.addEventListener("focusout",c))},[l,c]);return E.useEffect(()=>()=>{i.current&&(i.current.removeEventListener("focusin",l),i.current.removeEventListener("focusout",c))},[]),{ref:u,focused:n}}function NU(e,r,n={autoInvoke:!1}){const o=E.useRef(null),a=E.useCallback((...s)=>{o.current||(o.current=window.setTimeout(()=>{e(s),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 DU(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$e(){const[e,r]=E.useState(!1);return E.useEffect(()=>r(!0),[]),e}function $U(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)})),[]),s=E.useCallback(()=>{n({history:[e],current:0})},[e]),l=E.useMemo(()=>({back:a,forward:i,reset:s,set:o}),[a,i,s,o]);return[r.history[r.current],l,r]}function S$e(e,r){const n=io(e),o=E.useRef(null),a=E.useRef(null),i=E.useRef(!0),s=E.useRef(r),l=E.useRef(-1),c=()=>window.clearTimeout(l.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),l.current=window.setTimeout(d,s.current)):i.current=!0},[u]),h=E.useCallback((...f)=>{i.current?(u(...f),l.current=window.setTimeout(d,s.current)):o.current=f},[u,d]);return E.useEffect(()=>{s.current=r},[r]),[h,c]}function C$e(e,r){return S$e(e,r)[0]}function T$e(){return typeof process<"u"&&process.env?"production":"development"}function MU(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 PU(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]=hs(r[o],a):r[o]=a})}),r}function n2({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||A$e);return R$e(a)}function o2({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 a2=E.createContext(null);function Tu(){const e=E.useContext(a2);if(!e)throw new Error("[@mantine/core] MantineProvider was not found in tree");return e}function N$e(){return Tu().cssVariablesResolver}function D$e(){return Tu().classNamesPrefix}function yp(){return Tu().getStyleNonce}function $$e(){return Tu().withStaticClasses}function M$e(){return Tu().headless}function P$e(){return Tu().stylesTransform?.sx}function z$e(){return Tu().stylesTransform?.styles}function i2(){return Tu().env||"default"}function I$e(e){return/^#?([0-9A-F]{3}){1,2}([0-9A-F]{2})?$/i.test(e)}function O$e(e){let r=e.replace("#","");if(r.length===3){const s=r.split("");r=[s[0],s[0],s[1],s[1],s[2],s[2]].join("")}if(r.length===8){const s=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:s}}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 j$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 L$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,s=n[5]?parseFloat(n[5]):void 0,l=(1-Math.abs(2*i-1))*a,c=o/60,u=l*(1-Math.abs(c%2-1)),d=i-l/2;let h,f,g;return c>=0&&c<1?(h=l,f=u,g=0):c>=1&&c<2?(h=u,f=l,g=0):c>=2&&c<3?(h=0,f=l,g=u):c>=3&&c<4?(h=0,f=u,g=l):c>=4&&c<5?(h=u,f=0,g=l):(h=l,f=0,g=u),{r:Math.round((h+d)*255),g:Math.round((f+d)*255),b:Math.round((g+d)*255),a:s||1}}function K9(e){return I$e(e)?O$e(e):e.startsWith("rgb")?j$e(e):e.startsWith("hsl")?L$e(e):{r:0,g:0,b:0,a:1}}function s2(e,r){if(e.startsWith("var("))return`color-mix(in srgb, ${e}, black ${r*100}%)`;const{r:n,g:o,b:a,a:i}=K9(e),s=1-r,l=c=>Math.round(c*s);return`rgba(${l(n)}, ${l(o)}, ${l(a)}, ${i})`}function M0(e,r){return typeof e.primaryShade=="number"?e.primaryShade:r==="dark"?e.primaryShade.dark:e.primaryShade.light}function Z9(e){return e<=.03928?e/12.92:((e+.055)/1.055)**2.4}function B$e(e){const r=e.match(/oklch\((.*?)%\s/);return r?parseFloat(r[1]):null}function F$e(e){if(e.startsWith("oklch("))return(B$e(e)||0)/100;const{r,g:n,b:o}=K9(e),a=r/255,i=n/255,s=o/255,l=Z9(a),c=Z9(i),u=Z9(s);return .2126*l+.7152*c+.0722*u}function P0(e,r=.179){return e.startsWith("var(")?!1:F$e(e)>r}function Au({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:P0(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:P0(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:P0(e==="white"?r.white:r.black,r.luminanceThreshold),variable:`--mantine-color-${e}`};const[o,a]=e.split("."),i=a?Number(a):void 0,s=o in r.colors;if(s){const l=i!==void 0?r.colors[o][i]:r.colors[o][M0(r,n||"light")];return{color:o,value:l,shade:i,isThemeColor:s,isLight:P0(l,r.luminanceThreshold),variable:a?`--mantine-color-${o}-${i}`:`--mantine-color-${o}-filled`}}return{color:e,value:e,isThemeColor:s,isLight:P0(e,r.luminanceThreshold),shade:i,variable:void 0}}function Ia(e,r){const n=Au({color:e||r.primaryColor,theme:r});return n.variable?`var(${n.variable})`:e}function Q9(e,r){const n={from:e?.from||r.defaultGradient.from,to:e?.to||r.defaultGradient.to,deg:e?.deg??r.defaultGradient.deg??0},o=Ia(n.from,r),a=Ia(n.to,r);return`linear-gradient(${n.deg}deg, ${o} 0%, ${a} 100%)`}function hl(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}=K9(e);return`rgba(${n}, ${o}, ${a}, ${r})`}const Xf=hl,H$e=({color:e,theme:r,variant:n,gradient:o,autoContrast:a})=>{const i=Au({color:e,theme:r}),s=typeof a=="boolean"?a:r.autoContrast;if(n==="none")return{background:"transparent",hover:"transparent",color:"inherit",border:"none"};if(n==="filled"){const l=s&&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:l,border:`${Me(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:l,border:`${Me(1)} solid transparent`}:{background:e,hover:s2(e,.1),color:l,border:`${Me(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:`${Me(1)} solid transparent`};const l=r.colors[i.color][i.shade];return{background:hl(l,.1),hover:hl(l,.12),color:`var(--mantine-color-${i.color}-${Math.min(i.shade,6)})`,border:`${Me(1)} solid transparent`}}return{background:hl(e,.1),hover:hl(e,.12),color:e,border:`${Me(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:`${Me(1)} solid var(--mantine-color-${e}-outline)`}:{background:"transparent",hover:hl(r.colors[i.color][i.shade],.05),color:`var(--mantine-color-${i.color}-${i.shade})`,border:`${Me(1)} solid var(--mantine-color-${i.color}-${i.shade})`}:{background:"transparent",hover:hl(e,.05),color:e,border:`${Me(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:`${Me(1)} solid transparent`};const l=r.colors[i.color][i.shade];return{background:"transparent",hover:hl(l,.12),color:`var(--mantine-color-${i.color}-${Math.min(i.shade,6)})`,border:`${Me(1)} solid transparent`}}return{background:"transparent",hover:hl(e,.12),color:e,border:`${Me(1)} solid transparent`}}return n==="transparent"?i.isThemeColor?i.shade===void 0?{background:"transparent",hover:"transparent",color:`var(--mantine-color-${e}-light-color)`,border:`${Me(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:`var(--mantine-color-${i.color}-${Math.min(i.shade,6)})`,border:`${Me(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:e,border:`${Me(1)} solid transparent`}:n==="white"?i.isThemeColor?i.shade===void 0?{background:"var(--mantine-color-white)",hover:s2(r.white,.01),color:`var(--mantine-color-${e}-filled)`,border:`${Me(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:s2(r.white,.01),color:`var(--mantine-color-${i.color}-${i.shade})`,border:`${Me(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:s2(r.white,.01),color:e,border:`${Me(1)} solid transparent`}:n==="gradient"?{background:Q9(o,r),hover:Q9(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:`${Me(1)} solid var(--mantine-color-default-border)`}:{}},V$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"]},IU="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji",J9={scale:1,fontSmoothing:!0,focusRing:"auto",white:"#fff",black:"#000",colors:V$e,primaryShade:{light:6,dark:8},primaryColor:"blue",variantColorResolver:H$e,autoContrast:!1,luminanceThreshold:.3,fontFamily:IU,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:IU,fontWeight:"700",textWrap:"wrap",sizes:{h1:{fontSize:Me(34),lineHeight:"1.3"},h2:{fontSize:Me(26),lineHeight:"1.35"},h3:{fontSize:Me(22),lineHeight:"1.4"},h4:{fontSize:Me(18),lineHeight:"1.45"},h5:{fontSize:Me(16),lineHeight:"1.5"},h6:{fontSize:Me(14),lineHeight:"1.5"}}},fontSizes:{xs:Me(12),sm:Me(14),md:Me(16),lg:Me(18),xl:Me(20)},lineHeights:{xs:"1.4",sm:"1.45",md:"1.55",lg:"1.6",xl:"1.65"},radius:{xs:Me(2),sm:Me(4),md:Me(8),lg:Me(16),xl:Me(32)},spacing:{xs:Me(10),sm:Me(12),md:Me(16),lg:Me(20),xl:Me(32)},breakpoints:{xs:"36em",sm:"48em",md:"62em",lg:"75em",xl:"88em"},shadows:{xs:`0 ${Me(1)} ${Me(3)} rgba(0, 0, 0, 0.05), 0 ${Me(1)} ${Me(2)} rgba(0, 0, 0, 0.1)`,sm:`0 ${Me(1)} ${Me(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${Me(10)} ${Me(15)} ${Me(-5)}, rgba(0, 0, 0, 0.04) 0 ${Me(7)} ${Me(7)} ${Me(-5)}`,md:`0 ${Me(1)} ${Me(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${Me(20)} ${Me(25)} ${Me(-5)}, rgba(0, 0, 0, 0.04) 0 ${Me(10)} ${Me(10)} ${Me(-5)}`,lg:`0 ${Me(1)} ${Me(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${Me(28)} ${Me(23)} ${Me(-7)}, rgba(0, 0, 0, 0.04) 0 ${Me(12)} ${Me(12)} ${Me(-7)}`,xl:`0 ${Me(1)} ${Me(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${Me(36)} ${Me(28)} ${Me(-7)}, rgba(0, 0, 0, 0.04) 0 ${Me(17)} ${Me(17)} ${Me(-7)}`},other:{},components:{}};function OU(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 OU(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&&OU(o.newValue)&&n(o.newValue)},window.addEventListener("storage",r)},unsubscribe:()=>{window.removeEventListener("storage",r)},clear:()=>{window.localStorage.removeItem(e)}}}const U$e="[@mantine/core] MantineProvider: Invalid theme.primaryColor, it accepts only key of theme.colors, learn more – https://mantine.dev/theming/colors/#primary-color",jU="[@mantine/core] MantineProvider: Invalid theme.primaryShade, it accepts only 0-9 integers or an object { light: 0-9, dark: 0-9 }";function e7(e){return e<0||e>9?!1:parseInt(e.toString(),10)===e}function LU(e){if(!(e.primaryColor in e.colors))throw new Error(U$e);if(typeof e.primaryShade=="object"&&(!e7(e.primaryShade.dark)||!e7(e.primaryShade.light)))throw new Error(jU);if(typeof e.primaryShade=="number"&&!e7(e.primaryShade))throw new Error(jU)}function W$e(e,r){if(!r)return LU(e),e;const n=V9(e,r);return r.fontFamily&&!r.headings?.fontFamily&&(n.headings.fontFamily=r.fontFamily),LU(n),n}const t7=E.createContext(null),Y$e=()=>E.useContext(t7)||J9;function vo(){const e=E.useContext(t7);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 BU({theme:e,children:r,inherit:n=!0}){const o=Y$e(),a=E.useMemo(()=>W$e(n?o:J9,e),[e,o,n]);return y.jsx(t7.Provider,{value:a,children:r})}BU.displayName="@mantine/core/MantineThemeProvider";function G$e(){const e=vo(),r=yp(),n=zo(e.breakpoints).reduce((o,a)=>{const i=e.breakpoints[a].includes("px"),s=q9(e.breakpoints[a]),l=i?`${s-.1}px`:dU(s-.1),c=i?`${s}px`:dU(s);return`${o}@media (max-width: ${l}) {.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 r7(e){return Object.entries(e).map(([r,n])=>`${r}: ${n};`).join("")}function n7(e,r){return(Array.isArray(e)?e:[e]).reduce((n,o)=>`${o}{${n}}`,r)}function X$e(e,r){const n=r7(e.variables),o=n?n7(r,n):"",a=r7(e.dark),i=r7(e.light),s=a?n7(r===":host"?`${r}([data-mantine-color-scheme="dark"])`:`${r}[data-mantine-color-scheme="dark"]`,a):"",l=i?n7(r===":host"?`${r}([data-mantine-color-scheme="light"])`:`${r}[data-mantine-color-scheme="light"]`,i):"";return`${o} +`)},jRe=0,mf=[];function ARe(e){var r=S.useRef([]),n=S.useRef([0,0]),o=S.useRef(),i=S.useState(jRe++)[0],a=S.useState(Zq)[0],l=S.useRef(e);S.useEffect(function(){l.current=e},[e]),S.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var w=J$e([e.lockRef.current],(e.shards||[]).map(oH)).filter(Boolean);return w.forEach(function(x){return x.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),w.forEach(function(x){return x.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var s=S.useCallback(function(w,x){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!l.current.allowPinchZoom;var k=_w(w),C=n.current,_="deltaX"in w?w.deltaX:C[0]-k[0],$="deltaY"in w?w.deltaY:C[1]-k[1],R,T=w.target,A=Math.abs(_)>Math.abs($)?"h":"v";if("touches"in w&&A==="h"&&T.type==="range")return!1;var z=eH(A,T);if(!z)return!0;if(z?R=A:(R=A==="v"?"h":"v",z=eH(A,T)),!z)return!1;if(!o.current&&"changedTouches"in w&&(_||$)&&(o.current=R),!R)return!0;var j=o.current||R;return RRe(j,x,w,j==="h"?_:$)},[]),c=S.useCallback(function(w){var x=w;if(!(!mf.length||mf[mf.length-1]!==a)){var k="deltaY"in x?nH(x):_w(x),C=r.current.filter(function(R){return R.name===x.type&&(R.target===x.target||x.target===R.shadowParent)&&zRe(R.delta,k)})[0];if(C&&C.should){x.cancelable&&x.preventDefault();return}if(!C){var _=(l.current.shards||[]).map(oH).filter(Boolean).filter(function(R){return R.contains(x.target)}),$=_.length>0?s(x,_[0]):!l.current.noIsolation;$&&x.cancelable&&x.preventDefault()}}},[]),d=S.useCallback(function(w,x,k,C){var _={name:w,delta:x,target:k,should:C,shadowParent:DRe(k)};r.current.push(_),setTimeout(function(){r.current=r.current.filter(function($){return $!==_})},1)},[]),u=S.useCallback(function(w){n.current=_w(w),o.current=void 0},[]),p=S.useCallback(function(w){d(w.type,nH(w),w.target,s(w,e.lockRef.current))},[]),f=S.useCallback(function(w){d(w.type,_w(w),w.target,s(w,e.lockRef.current))},[]);S.useEffect(function(){return mf.push(a),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:f}),document.addEventListener("wheel",c,gf),document.addEventListener("touchmove",c,gf),document.addEventListener("touchstart",u,gf),function(){mf=mf.filter(function(w){return w!==a}),document.removeEventListener("wheel",c,gf),document.removeEventListener("touchmove",c,gf),document.removeEventListener("touchstart",u,gf)}},[]);var m=e.removeScrollBar,v=e.inert;return S.createElement(S.Fragment,null,v?S.createElement(a,{styles:TRe(i)}):null,m?S.createElement(wRe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function DRe(e){for(var r=null;e!==null;)e instanceof ShadowRoot&&(r=e.host,e=e.host),e=e.parentNode;return r}const PRe=sRe(Kq,ARe);var ny=S.forwardRef(function(e,r){return S.createElement(ww,Yl({},e,{ref:r,sideCar:PRe}))});ny.classNames=ww.classNames;function So(e){return Object.keys(e)}function p9(e){return e&&typeof e=="object"&&!Array.isArray(e)}function h9(e,r){const n={...e},o=r;return p9(e)&&p9(r)&&Object.keys(r).forEach(i=>{p9(o[i])&&i in e?n[i]=h9(n[i],o[i]):n[i]=o[i]}),n}function MRe(e){return e.replace(/[A-Z]/g,r=>`-${r.toLowerCase()}`)}function NRe(e){return typeof e!="string"||!e.includes("var(--mantine-scale)")?e:e.match(/^calc\((.*?)\)$/)?.[1].split("*")[0].trim()}function f9(e){const r=NRe(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 iH(e){return e==="0rem"?"0rem":`calc(${e} * var(--mantine-scale))`}function aH(e,{shouldScale:r=!1}={}){function n(o){if(o===0||o==="0")return`0${e}`;if(typeof o=="number"){const i=`${o/16}${e}`;return r?iH(i):i}if(typeof o=="string"){if(o===""||o.startsWith("calc(")||o.startsWith("clamp(")||o.includes("rgba("))return o;if(o.includes(","))return o.split(",").map(a=>n(a)).join(",");if(o.includes(" "))return o.split(" ").map(a=>n(a)).join(" ");const i=o.replace("px","");if(!Number.isNaN(Number(i))){const a=`${Number(i)/16}${e}`;return r?iH(a):a}}return o}return n}const $e=aH("rem",{shouldScale:!0}),lH=aH("em");function yf(e){return Object.keys(e).reduce((r,n)=>(e[n]!==void 0&&(r[n]=e[n]),r),{})}function sH(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 Sw(e){return Array.isArray(e)||e===null?!1:typeof e=="object"?e.type!==S.Fragment:!1}function na(e){const r=S.createContext(null);return[({children:n,value:o})=>y.jsx(r.Provider,{value:o,children:n}),()=>{const n=S.useContext(r);if(n===null)throw new Error(e);return n}]}function oy(e=null){const r=S.createContext(e);return[({children:n,value:o})=>y.jsx(r.Provider,{value:o,children:n}),()=>S.useContext(r)]}function cH(e,r){return n=>{if(typeof n!="string"||n.trim().length===0)throw new Error(r);return`${e}-${n}`}}function vf(e,r){let n=e;for(;(n=n.parentElement)&&!n.matches(r););return n}function BRe(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 IRe(e,r,n){for(let o=e+1;o{n?.(s);const c=Array.from(vf(s.currentTarget,e)?.querySelectorAll(r)||[]).filter(v=>ORe(s.currentTarget,v,e)),d=c.findIndex(v=>s.currentTarget===v),u=IRe(d,c,o),p=BRe(d,c,o),f=a==="rtl"?p:u,m=a==="rtl"?u:p;switch(s.key){case"ArrowRight":{l==="horizontal"&&(s.stopPropagation(),s.preventDefault(),c[f].focus(),i&&c[f].click());break}case"ArrowLeft":{l==="horizontal"&&(s.stopPropagation(),s.preventDefault(),c[m].focus(),i&&c[m].click());break}case"ArrowUp":{l==="vertical"&&(s.stopPropagation(),s.preventDefault(),c[p].focus(),i&&c[p].click());break}case"ArrowDown":{l==="vertical"&&(s.stopPropagation(),s.preventDefault(),c[u].focus(),i&&c[u].click());break}case"Home":{s.stopPropagation(),s.preventDefault(),!c[0].disabled&&c[0].focus();break}case"End":{s.stopPropagation(),s.preventDefault();const v=c.length-1;!c[v].disabled&&c[v].focus();break}}}}const LRe={app:100,modal:200,popover:300,overlay:400,max:9999};function Ew(e){return LRe[e]}const dH=()=>{};function FRe(e,r={active:!0}){return typeof e!="function"||!r.active?r.onKeyDown||dH:n=>{n.key==="Escape"&&(e(n),r.onTrigger?.())}}function dr(e,r="size",n=!0){if(e!==void 0)return sH(e)?n?$e(e):e:`var(--${r}-${e})`}function Gs(e){return dr(e,"mantine-spacing")}function wn(e){return e===void 0?"var(--mantine-radius-default)":dr(e,"mantine-radius")}function Eo(e){return dr(e,"mantine-font-size")}function VRe(e){return dr(e,"mantine-line-height",!1)}function uH(e){if(e)return dr(e,"mantine-shadow",!1)}function kn(e,r){return n=>{e?.(n),r?.(n)}}function qRe(e,r){return e in r?f9(r[e]):f9(e)}function pH(e,r){const n=e.map(o=>({value:o,px:qRe(o,r)}));return n.sort((o,i)=>o.px-i.px),n}function ay(e){return typeof e=="object"&&e!==null?"base"in e?e.base:void 0:e}function HRe(e,r,n){return n?Array.from(vf(n,r)?.querySelectorAll(e)||[]).findIndex(o=>o===n):null}function hd(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 g9(e="mantine-"){return`${e}${Math.random().toString(36).slice(2,11)}`}function URe(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 i=0;i{r.current=e}),S.useMemo(()=>((...n)=>r.current?.(...n)),[])}function bf(e,r){const{delay:n,flushOnUnmount:o,leading:i}=typeof r=="number"?{delay:r,flushOnUnmount:!1,leading:!1}:r,a=Qn(e),l=S.useRef(0),s=S.useMemo(()=>{const c=Object.assign((...d)=>{window.clearTimeout(l.current);const u=c._isFirstCall;c._isFirstCall=!1;function p(){window.clearTimeout(l.current),l.current=0,c._isFirstCall=!0}if(i&&u){a(...d);const v=()=>{p()},w=()=>{l.current!==0&&(p(),a(...d))},x=()=>{p()};c.flush=w,c.cancel=x,l.current=window.setTimeout(v,n);return}if(i&&!u){const v=()=>{l.current!==0&&(p(),a(...d))},w=()=>{p()};c.flush=v,c.cancel=w;const x=()=>{p()};l.current=window.setTimeout(x,n);return}const f=()=>{l.current!==0&&(p(),a(...d))},m=()=>{p()};c.flush=f,c.cancel=m,l.current=window.setTimeout(f,n)},{flush:()=>{},cancel:()=>{},_isFirstCall:!0});return c},[a,n,i]);return S.useEffect(()=>()=>{o?s.flush():s.cancel()},[s,o]),s}const WRe=["mousedown","touchstart"];function hH(e,r,n){const o=S.useRef(null),i=r||WRe;return S.useEffect(()=>{const a=l=>{const{target:s}=l??{};if(Array.isArray(n)){const c=!document.body.contains(s)&&s?.tagName!=="HTML";n.every(d=>!!d&&!l.composedPath().includes(d))&&!c&&e(l)}else o.current&&!o.current.contains(s)&&e(l)};return i.forEach(l=>document.addEventListener(l,a)),()=>{i.forEach(l=>document.removeEventListener(l,a))}},[o,e,n]),o}function GRe(e={timeout:2e3}){const[r,n]=S.useState(null),[o,i]=S.useState(!1),[a,l]=S.useState(null),s=c=>{window.clearTimeout(a),l(window.setTimeout(()=>i(!1),e.timeout)),i(c)};return{copy:c=>{"clipboard"in navigator?navigator.clipboard.writeText(c).then(()=>s(!0)).catch(d=>n(d)):n(new Error("useClipboard: navigator.clipboard is not supported"))},reset:()=>{i(!1),n(null),window.clearTimeout(a)},error:r,copied:o}}function YRe(e,r){try{return e.addEventListener("change",r),()=>e.removeEventListener("change",r)}catch{return e.addListener(r),()=>e.removeListener(r)}}function XRe(e,r){return typeof window<"u"&&"matchMedia"in window?window.matchMedia(e).matches:!1}function fH(e,r,{getInitialValueInEffect:n}={getInitialValueInEffect:!0}){const[o,i]=S.useState(n?r:XRe(e));return S.useEffect(()=>{try{const a=window.matchMedia(e);return i(a.matches),YRe(a,l=>i(l.matches))}catch{return}},[e]),o||!1}function gH(e,r){return fH("(prefers-color-scheme: dark)",e==="dark",r)?"dark":"light"}function KRe(e,r,n={leading:!1}){const[o,i]=S.useState(e),a=S.useRef(null),l=S.useRef(!0),s=()=>window.clearTimeout(a.current);S.useEffect(()=>s,[]);const c=S.useCallback(d=>{s(),l.current&&n.leading?i(d):a.current=window.setTimeout(()=>{l.current=!0,i(d)},r),l.current=!1},[n.leading]);return[o,c]}function m9(e,r,n={leading:!1}){const[o,i]=S.useState(e),a=S.useRef(!1),l=S.useRef(null),s=S.useRef(!1),c=S.useCallback(()=>window.clearTimeout(l.current),[]);return S.useEffect(()=>{a.current&&(!s.current&&n.leading?(s.current=!0,i(e)):(c(),l.current=window.setTimeout(()=>{s.current=!1,i(e)},r)))},[e,n.leading,r]),S.useEffect(()=>(a.current=!0,c),[]),[o,c]}const xf=typeof document<"u"?S.useLayoutEffect:S.useEffect;function wf(e,r){const n=S.useRef(!1);S.useEffect(()=>()=>{n.current=!1},[]),S.useEffect(()=>{if(n.current)return e();n.current=!0},r)}function ZRe({opened:e,shouldReturnFocus:r=!0}){const n=S.useRef(null),o=()=>{n.current&&"focus"in n.current&&typeof n.current.focus=="function"&&n.current?.focus({preventScroll:!0})};return wf(()=>{let i=-1;const a=l=>{l.key==="Tab"&&window.clearTimeout(i)};return document.addEventListener("keydown",a),e?n.current=document.activeElement:r&&(i=window.setTimeout(o,10)),()=>{window.clearTimeout(i),document.removeEventListener("keydown",a)}},[e,r]),o}const QRe=/input|select|textarea|button|object/,mH="a, input, select, textarea, button, object, [tabindex]";function JRe(e){return e.style.display==="none"}function eze(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(JRe(r))return!1;r=r.parentNode}return!0}function yH(e){let r=e.getAttribute("tabindex");return r===null&&(r=void 0),parseInt(r,10)}function y9(e){const r=e.nodeName.toLowerCase(),n=!Number.isNaN(yH(e));return(QRe.test(r)&&!e.disabled||e instanceof HTMLAnchorElement&&e.href||n)&&eze(e)}function vH(e){const r=yH(e);return(Number.isNaN(r)||r>=0)&&y9(e)}function tze(e){return Array.from(e.querySelectorAll(mH)).filter(vH)}function rze(e,r){const n=tze(e);if(!n.length){r.preventDefault();return}const o=n[r.shiftKey?0:n.length-1],i=e.getRootNode();let a=o===i.activeElement||e===i.activeElement;const l=i.activeElement;if(l.tagName==="INPUT"&&l.getAttribute("type")==="radio"&&(a=n.filter(c=>c.getAttribute("type")==="radio"&&c.getAttribute("name")===l.getAttribute("name")).includes(o)),!a)return;r.preventDefault();const s=n[r.shiftKey?n.length-1:0];s&&s.focus()}function bH(e=!0){const r=S.useRef(null),n=i=>{let a=i.querySelector("[data-autofocus]");if(!a){const l=Array.from(i.querySelectorAll(mH));a=l.find(vH)||l.find(y9)||null,!a&&y9(i)&&(a=i)}a&&a.focus({preventScroll:!0})},o=S.useCallback(i=>{e&&i!==null&&r.current!==i&&(i?(setTimeout(()=>{i.getRootNode()&&n(i)}),r.current=i):r.current=null)},[e]);return S.useEffect(()=>{if(!e)return;r.current&&setTimeout(()=>n(r.current));const i=a=>{a.key==="Tab"&&r.current&&rze(r.current,a)};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[e]),o}const nze=Zr.useId||(()=>{});function oze(){const e=nze();return e?`mantine-${e.replace(/:/g,"")}`:""}function oa(e){const r=oze(),[n,o]=S.useState(r);return xf(()=>{o(g9())},[]),typeof e=="string"?e:typeof window>"u"?r:n}function kf(e,r,n){S.useEffect(()=>(window.addEventListener(e,r,n),()=>window.removeEventListener(e,r,n)),[e,r])}function ize(e,r="use-local-storage"){try{return JSON.stringify(e)}catch{throw new Error(`@mantine/hooks ${r}: Failed to serialize the value`)}}function aze(e){try{return e&&JSON.parse(e)}catch{return e}}function lze(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 xH(e,r){const n=e==="localStorage"?"mantine-local-storage":"mantine-session-storage",{getItem:o,setItem:i,removeItem:a}=lze(e);return function({key:l,defaultValue:s,getInitialValueInEffect:c=!0,sync:d=!0,deserialize:u=aze,serialize:p=f=>ize(f,r)}){const f=S.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?u(_):s},[l,s]),[m,v]=S.useState(f(c)),w=S.useCallback(k=>{k instanceof Function?v(C=>{const _=k(C);return i(l,p(_)),queueMicrotask(()=>{window.dispatchEvent(new CustomEvent(n,{detail:{key:l,value:k(C)}}))}),_}):(i(l,p(k)),window.dispatchEvent(new CustomEvent(n,{detail:{key:l,value:k}})),v(k))},[l]),x=S.useCallback(()=>{a(l),v(s),window.dispatchEvent(new CustomEvent(n,{detail:{key:l,value:s}}))},[l,s]);return kf("storage",k=>{d&&k.storageArea===window[e]&&k.key===l&&v(u(k.newValue??void 0))}),kf(n,k=>{d&&k.detail.key===l&&v(k.detail.value)}),S.useEffect(()=>{s!==void 0&&m===void 0&&w(s)},[s,m,w]),S.useEffect(()=>{const k=f();k!==void 0&&w(k)},[l]),[m===void 0?s:m,w,x]}}function sze(e){return xH("localStorage","use-local-storage")(e)}function cze(e){return xH("sessionStorage","use-session-storage")(e)}function v9(e,r){if(typeof e=="function")return e(r);typeof e=="object"&&e!==null&&"current"in e&&(e.current=r)}function wH(...e){const r=new Map;return n=>{if(e.forEach(o=>{const i=v9(o,n);i&&r.set(o,i)}),r.size>0)return()=>{e.forEach(o=>{const i=r.get(o);i&&typeof i=="function"?i():v9(o,null)}),r.clear()}}}function $r(...e){return S.useCallback(wH(...e),e)}function dze(e){return{x:hd(e.x,0,1),y:hd(e.y,0,1)}}function kH(e,r,n="ltr"){const o=S.useRef(!1),i=S.useRef(!1),a=S.useRef(0),[l,s]=S.useState(!1),c=S.useRef(null);return S.useEffect(()=>{o.current=!0},[]),{ref:S.useCallback(d=>{if(c.current&&(c.current(),c.current=null),!d)return;const u=({x:_,y:$})=>{cancelAnimationFrame(a.current),a.current=requestAnimationFrame(()=>{if(o.current&&d){d.style.userSelect="none";const R=d.getBoundingClientRect();if(R.width&&R.height){const T=hd((_-R.left)/R.width,0,1);e({x:n==="ltr"?T:1-T,y:hd(($-R.top)/R.height,0,1)})}}})},p=()=>{document.addEventListener("mousemove",x),document.addEventListener("mouseup",v),document.addEventListener("touchmove",C,{passive:!1}),document.addEventListener("touchend",v)},f=()=>{document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",v),document.removeEventListener("touchmove",C),document.removeEventListener("touchend",v)},m=()=>{!i.current&&o.current&&(i.current=!0,typeof r?.onScrubStart=="function"&&r.onScrubStart(),s(!0),p())},v=()=>{i.current&&o.current&&(i.current=!1,s(!1),f(),setTimeout(()=>{typeof r?.onScrubEnd=="function"&&r.onScrubEnd()},0))},w=_=>{m(),_.preventDefault(),x(_)},x=_=>u({x:_.clientX,y:_.clientY}),k=_=>{_.cancelable&&_.preventDefault(),m(),C(_)},C=_=>{_.cancelable&&_.preventDefault(),u({x:_.changedTouches[0].clientX,y:_.changedTouches[0].clientY})};d.addEventListener("mousedown",w),d.addEventListener("touchstart",k,{passive:!1}),c.current=()=>{d.removeEventListener("mousedown",w),d.removeEventListener("touchstart",k)}},[n,e]),active:l}}function Ys({value:e,defaultValue:r,finalValue:n,onChange:o=()=>{}}){const[i,a]=S.useState(r!==void 0?r:n);return e!==void 0?[e,o,!0]:[i,(s,...c)=>{a(s),o?.(s,...c)},!1]}function _H(e,r){return fH("(prefers-reduced-motion: reduce)",e,r)}function uze(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 kf("resize",n,SH),kf("orientationchange",n,SH),S.useEffect(n,[]),e}const gze={" ":"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 Cw(e){const r=e.replace("Key","").toLowerCase();return gze[e]||r}function mze(e){const r=e.toLowerCase().split("+").map(a=>a.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"],i=r.find(a=>!o.includes(a));return{...n,key:i==="[plus]"?"+":i}}function yze(e,r,n){const{alt:o,ctrl:i,meta:a,mod:l,shift:s,key:c}=e,{altKey:d,ctrlKey:u,metaKey:p,shiftKey:f,key:m,code:v}=r;if(o!==d)return!1;if(l){if(!u&&!p)return!1}else if(i!==u||a!==p)return!1;return s!==f?!1:!!(c&&(n?Cw(v)===Cw(c):Cw(m??v)===Cw(c)))}function EH(e,r){return n=>yze(mze(e),n,r)}function $w(e){return r=>{const n="nativeEvent"in r?r.nativeEvent:r;e.forEach(([o,i,a={preventDefault:!0,usePhysicalKeys:!1}])=>{EH(o,a.usePhysicalKeys)(n)&&(a.preventDefault&&r.preventDefault(),i(n))})}}function vze(e,r,n=!1){return e.target instanceof HTMLElement?(n||!e.target.isContentEditable)&&!r.includes(e.target.tagName):!0}function bze(e,r=["INPUT","TEXTAREA","SELECT"],n=!1){S.useEffect(()=>{const o=i=>{e.forEach(([a,l,s={preventDefault:!0,usePhysicalKeys:!1}])=>{EH(a,s.usePhysicalKeys)(i)&&vze(i,r,n)&&(s.preventDefault&&i.preventDefault(),l(i))})};return document.documentElement.addEventListener("keydown",o),()=>document.documentElement.removeEventListener("keydown",o)},[e])}function b9(){const[e,r]=S.useState(!1),n=S.useRef(null),o=S.useCallback(()=>{r(!0)},[]),i=S.useCallback(()=>{r(!1)},[]);return{ref:S.useCallback(a=>{n.current&&(n.current.removeEventListener("mouseenter",o),n.current.removeEventListener("mouseleave",i)),a&&(a.addEventListener("mouseenter",o),a.addEventListener("mouseleave",i)),n.current=a},[o,i]),hovered:e}}function xze(e=!1,r={}){const[n,o]=S.useState(e),i=S.useCallback(()=>{o(s=>s||(r.onOpen?.(),!0))},[r.onOpen]),a=S.useCallback(()=>{o(s=>s&&(r.onClose?.(),!1))},[r.onClose]),l=S.useCallback(()=>{n?a():i()},[a,i,n]);return[n,{open:i,close:a,toggle:l}]}function wze(e){return e.currentTarget instanceof HTMLElement&&e.relatedTarget instanceof HTMLElement?e.currentTarget.contains(e.relatedTarget):!1}function kze({onBlur:e,onFocus:r}={}){const[n,o]=S.useState(!1),i=S.useRef(!1),a=S.useRef(null),l=S.useCallback(u=>{o(u),i.current=u},[]),s=S.useCallback(u=>{i.current||(l(!0),r?.(u))},[r]),c=S.useCallback(u=>{i.current&&!wze(u)&&(l(!1),e?.(u))},[e]),d=S.useCallback(u=>{u&&(a.current&&(a.current.removeEventListener("focusin",s),a.current.removeEventListener("focusout",c)),u.addEventListener("focusin",s),u.addEventListener("focusout",c),a.current=u)},[s,c]);return S.useEffect(()=>()=>{a.current&&(a.current.removeEventListener("focusin",s),a.current.removeEventListener("focusout",c))},[]),{ref:d,focused:n}}function CH(e,r,n={autoInvoke:!1}){const o=S.useRef(null),i=S.useCallback((...l)=>{o.current||(o.current=window.setTimeout(()=>{e(l),o.current=null},r))},[r]),a=S.useCallback(()=>{o.current&&(window.clearTimeout(o.current),o.current=null)},[]);return S.useEffect(()=>(n.autoInvoke&&i(),a),[a,i]),{start:i,clear:a}}function $H(e,r,n){const o=S.useRef(null),i=S.useRef(null);return S.useEffect(()=>{const a=typeof n=="function"?n():n;return(a||i.current)&&(o.current=new MutationObserver(e),o.current.observe(a||i.current,r)),()=>{o.current?.disconnect()}},[e,r]),i}function _ze(){const[e,r]=S.useState(!1);return S.useEffect(()=>r(!0),[]),e}function RH(e){const[r,n]=S.useState({history:[e],current:0}),o=S.useCallback(c=>n(d=>{const u=[...d.history.slice(0,d.current+1),c];return{history:u,current:u.length-1}}),[]),i=S.useCallback((c=1)=>n(d=>({history:d.history,current:Math.max(0,d.current-c)})),[]),a=S.useCallback((c=1)=>n(d=>({history:d.history,current:Math.min(d.history.length-1,d.current+c)})),[]),l=S.useCallback(()=>{n({history:[e],current:0})},[e]),s=S.useMemo(()=>({back:i,forward:a,reset:l,set:o}),[i,a,l,o]);return[r.history[r.current],s,r]}function Sze(e,r){const n=Qn(e),o=S.useRef(null),i=S.useRef(null),a=S.useRef(!0),l=S.useRef(r),s=S.useRef(-1),c=()=>window.clearTimeout(s.current),d=S.useCallback((...f)=>{n(...f),o.current=f,i.current=f,a.current=!1},[n]),u=S.useCallback(()=>{o.current&&o.current!==i.current?(d(...o.current),s.current=window.setTimeout(u,l.current)):a.current=!0},[d]),p=S.useCallback((...f)=>{a.current?(d(...f),s.current=window.setTimeout(u,l.current)):o.current=f},[d,u]);return S.useEffect(()=>{l.current=r},[r]),[p,c]}function Eze(e,r){return Sze(e,r)[0]}function Cze(){return typeof process<"u"&&process.env?"production":"development"}function zH(e){const r=new Map;return(...n)=>{const o=JSON.stringify(n);if(r.has(o))return r.get(o);const i=e(...n);return r.set(o,i),i}}function TH(e,r){return r.length===0?e:r.reduce((n,o)=>Math.abs(o-e){Object.entries(n).forEach(([o,i])=>{r[o]?r[o]=el(r[o],i):r[o]=i})}),r}function Tw({theme:e,classNames:r,props:n,stylesCtx:o}){const i=(Array.isArray(r)?r:[r]).map(a=>typeof a=="function"?a(e,n,o):a||$ze);return Rze(i)}function jw({theme:e,styles:r,props:n,stylesCtx:o}){return(Array.isArray(r)?r:[r]).reduce((i,a)=>typeof a=="function"?{...i,...a(e,n,o)}:{...i,...a},{})}const Aw=S.createContext(null);function yd(){const e=S.useContext(Aw);if(!e)throw new Error("[@mantine/core] MantineProvider was not found in tree");return e}function zze(){return yd().cssVariablesResolver}function Tze(){return yd().classNamesPrefix}function np(){return yd().getStyleNonce}function jze(){return yd().withStaticClasses}function Aze(){return yd().headless}function Dze(){return yd().stylesTransform?.sx}function Pze(){return yd().stylesTransform?.styles}function Dw(){return yd().env||"default"}function Mze(e){return/^#?([0-9A-F]{3}){1,2}([0-9A-F]{2})?$/i.test(e)}function Nze(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,i=n>>8&255,a=n&255;return{r:o,g:i,b:a,a:1}}function Bze(e){const[r,n,o,i]=e.replace(/[^0-9,./]/g,"").split(/[/,]/).map(Number);return{r,g:n,b:o,a:i===void 0?1:i}}function Ize(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),i=parseInt(n[2],10)/100,a=parseInt(n[3],10)/100,l=n[5]?parseFloat(n[5]):void 0,s=(1-Math.abs(2*a-1))*i,c=o/60,d=s*(1-Math.abs(c%2-1)),u=a-s/2;let p,f,m;return c>=0&&c<1?(p=s,f=d,m=0):c>=1&&c<2?(p=d,f=s,m=0):c>=2&&c<3?(p=0,f=s,m=d):c>=3&&c<4?(p=0,f=d,m=s):c>=4&&c<5?(p=d,f=0,m=s):(p=s,f=0,m=d),{r:Math.round((p+u)*255),g:Math.round((f+u)*255),b:Math.round((m+u)*255),a:l||1}}function x9(e){return Mze(e)?Nze(e):e.startsWith("rgb")?Bze(e):e.startsWith("hsl")?Ize(e):{r:0,g:0,b:0,a:1}}function Pw(e,r){if(e.startsWith("var("))return`color-mix(in srgb, ${e}, black ${r*100}%)`;const{r:n,g:o,b:i,a}=x9(e),l=1-r,s=c=>Math.round(c*l);return`rgba(${s(n)}, ${s(o)}, ${s(i)}, ${a})`}function ly(e,r){return typeof e.primaryShade=="number"?e.primaryShade:r==="dark"?e.primaryShade.dark:e.primaryShade.light}function w9(e){return e<=.03928?e/12.92:((e+.055)/1.055)**2.4}function Oze(e){const r=e.match(/oklch\((.*?)%\s/);return r?parseFloat(r[1]):null}function Lze(e){if(e.startsWith("oklch("))return(Oze(e)||0)/100;const{r,g:n,b:o}=x9(e),i=r/255,a=n/255,l=o/255,s=w9(i),c=w9(a),d=w9(l);return .2126*s+.7152*c+.0722*d}function sy(e,r=.179){return e.startsWith("var(")?!1:Lze(e)>r}function vd({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:sy(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:sy(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:sy(e==="white"?r.white:r.black,r.luminanceThreshold),variable:`--mantine-color-${e}`};const[o,i]=e.split("."),a=i?Number(i):void 0,l=o in r.colors;if(l){const s=a!==void 0?r.colors[o][a]:r.colors[o][ly(r,n||"light")];return{color:o,value:s,shade:a,isThemeColor:l,isLight:sy(s,r.luminanceThreshold),variable:i?`--mantine-color-${o}-${a}`:`--mantine-color-${o}-filled`}}return{color:e,value:e,isThemeColor:l,isLight:sy(e,r.luminanceThreshold),shade:a,variable:void 0}}function Ci(e,r){const n=vd({color:e||r.primaryColor,theme:r});return n.variable?`var(${n.variable})`:e}function k9(e,r){const n={from:e?.from||r.defaultGradient.from,to:e?.to||r.defaultGradient.to,deg:e?.deg??r.defaultGradient.deg??0},o=Ci(n.from,r),i=Ci(n.to,r);return`linear-gradient(${n.deg}deg, ${o} 0%, ${i} 100%)`}function Xl(e,r){if(typeof e!="string"||r>1||r<0)return"rgba(0, 0, 0, 1)";if(e.startsWith("var(")){const a=(1-r)*100;return`color-mix(in srgb, ${e}, transparent ${a}%)`}if(e.startsWith("oklch"))return e.includes("/")?e.replace(/\/\s*[\d.]+\s*\)/,`/ ${r})`):e.replace(")",` / ${r})`);const{r:n,g:o,b:i}=x9(e);return`rgba(${n}, ${o}, ${i}, ${r})`}const _f=Xl,Fze=({color:e,theme:r,variant:n,gradient:o,autoContrast:i})=>{const a=vd({color:e,theme:r}),l=typeof i=="boolean"?i:r.autoContrast;if(n==="none")return{background:"transparent",hover:"transparent",color:"inherit",border:"none"};if(n==="filled"){const s=l&&a.isLight?"var(--mantine-color-black)":"var(--mantine-color-white)";return a.isThemeColor?a.shade===void 0?{background:`var(--mantine-color-${e}-filled)`,hover:`var(--mantine-color-${e}-filled-hover)`,color:s,border:`${$e(1)} solid transparent`}:{background:`var(--mantine-color-${a.color}-${a.shade})`,hover:`var(--mantine-color-${a.color}-${a.shade===9?8:a.shade+1})`,color:s,border:`${$e(1)} solid transparent`}:{background:e,hover:Pw(e,.1),color:s,border:`${$e(1)} solid transparent`}}if(n==="light"){if(a.isThemeColor){if(a.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:`${$e(1)} solid transparent`};const s=r.colors[a.color][a.shade];return{background:Xl(s,.1),hover:Xl(s,.12),color:`var(--mantine-color-${a.color}-${Math.min(a.shade,6)})`,border:`${$e(1)} solid transparent`}}return{background:Xl(e,.1),hover:Xl(e,.12),color:e,border:`${$e(1)} solid transparent`}}if(n==="outline")return a.isThemeColor?a.shade===void 0?{background:"transparent",hover:`var(--mantine-color-${e}-outline-hover)`,color:`var(--mantine-color-${e}-outline)`,border:`${$e(1)} solid var(--mantine-color-${e}-outline)`}:{background:"transparent",hover:Xl(r.colors[a.color][a.shade],.05),color:`var(--mantine-color-${a.color}-${a.shade})`,border:`${$e(1)} solid var(--mantine-color-${a.color}-${a.shade})`}:{background:"transparent",hover:Xl(e,.05),color:e,border:`${$e(1)} solid ${e}`};if(n==="subtle"){if(a.isThemeColor){if(a.shade===void 0)return{background:"transparent",hover:`var(--mantine-color-${e}-light-hover)`,color:`var(--mantine-color-${e}-light-color)`,border:`${$e(1)} solid transparent`};const s=r.colors[a.color][a.shade];return{background:"transparent",hover:Xl(s,.12),color:`var(--mantine-color-${a.color}-${Math.min(a.shade,6)})`,border:`${$e(1)} solid transparent`}}return{background:"transparent",hover:Xl(e,.12),color:e,border:`${$e(1)} solid transparent`}}return n==="transparent"?a.isThemeColor?a.shade===void 0?{background:"transparent",hover:"transparent",color:`var(--mantine-color-${e}-light-color)`,border:`${$e(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:`var(--mantine-color-${a.color}-${Math.min(a.shade,6)})`,border:`${$e(1)} solid transparent`}:{background:"transparent",hover:"transparent",color:e,border:`${$e(1)} solid transparent`}:n==="white"?a.isThemeColor?a.shade===void 0?{background:"var(--mantine-color-white)",hover:Pw(r.white,.01),color:`var(--mantine-color-${e}-filled)`,border:`${$e(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:Pw(r.white,.01),color:`var(--mantine-color-${a.color}-${a.shade})`,border:`${$e(1)} solid transparent`}:{background:"var(--mantine-color-white)",hover:Pw(r.white,.01),color:e,border:`${$e(1)} solid transparent`}:n==="gradient"?{background:k9(o,r),hover:k9(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:`${$e(1)} solid var(--mantine-color-default-border)`}:{}},Vze={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"]},AH="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji",_9={scale:1,fontSmoothing:!0,focusRing:"auto",white:"#fff",black:"#000",colors:Vze,primaryShade:{light:6,dark:8},primaryColor:"blue",variantColorResolver:Fze,autoContrast:!1,luminanceThreshold:.3,fontFamily:AH,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:AH,fontWeight:"700",textWrap:"wrap",sizes:{h1:{fontSize:$e(34),lineHeight:"1.3"},h2:{fontSize:$e(26),lineHeight:"1.35"},h3:{fontSize:$e(22),lineHeight:"1.4"},h4:{fontSize:$e(18),lineHeight:"1.45"},h5:{fontSize:$e(16),lineHeight:"1.5"},h6:{fontSize:$e(14),lineHeight:"1.5"}}},fontSizes:{xs:$e(12),sm:$e(14),md:$e(16),lg:$e(18),xl:$e(20)},lineHeights:{xs:"1.4",sm:"1.45",md:"1.55",lg:"1.6",xl:"1.65"},radius:{xs:$e(2),sm:$e(4),md:$e(8),lg:$e(16),xl:$e(32)},spacing:{xs:$e(10),sm:$e(12),md:$e(16),lg:$e(20),xl:$e(32)},breakpoints:{xs:"36em",sm:"48em",md:"62em",lg:"75em",xl:"88em"},shadows:{xs:`0 ${$e(1)} ${$e(3)} rgba(0, 0, 0, 0.05), 0 ${$e(1)} ${$e(2)} rgba(0, 0, 0, 0.1)`,sm:`0 ${$e(1)} ${$e(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${$e(10)} ${$e(15)} ${$e(-5)}, rgba(0, 0, 0, 0.04) 0 ${$e(7)} ${$e(7)} ${$e(-5)}`,md:`0 ${$e(1)} ${$e(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${$e(20)} ${$e(25)} ${$e(-5)}, rgba(0, 0, 0, 0.04) 0 ${$e(10)} ${$e(10)} ${$e(-5)}`,lg:`0 ${$e(1)} ${$e(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${$e(28)} ${$e(23)} ${$e(-7)}, rgba(0, 0, 0, 0.04) 0 ${$e(12)} ${$e(12)} ${$e(-7)}`,xl:`0 ${$e(1)} ${$e(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${$e(36)} ${$e(28)} ${$e(-7)}, rgba(0, 0, 0, 0.04) 0 ${$e(17)} ${$e(17)} ${$e(-7)}`},other:{},components:{}};function DH(e){return e==="auto"||e==="dark"||e==="light"}function qze({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 DH(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&&DH(o.newValue)&&n(o.newValue)},window.addEventListener("storage",r)},unsubscribe:()=>{window.removeEventListener("storage",r)},clear:()=>{window.localStorage.removeItem(e)}}}const Hze="[@mantine/core] MantineProvider: Invalid theme.primaryColor, it accepts only key of theme.colors, learn more – https://mantine.dev/theming/colors/#primary-color",PH="[@mantine/core] MantineProvider: Invalid theme.primaryShade, it accepts only 0-9 integers or an object { light: 0-9, dark: 0-9 }";function S9(e){return e<0||e>9?!1:parseInt(e.toString(),10)===e}function MH(e){if(!(e.primaryColor in e.colors))throw new Error(Hze);if(typeof e.primaryShade=="object"&&(!S9(e.primaryShade.dark)||!S9(e.primaryShade.light)))throw new Error(PH);if(typeof e.primaryShade=="number"&&!S9(e.primaryShade))throw new Error(PH)}function Uze(e,r){if(!r)return MH(e),e;const n=h9(e,r);return r.fontFamily&&!r.headings?.fontFamily&&(n.headings.fontFamily=r.fontFamily),MH(n),n}const E9=S.createContext(null),Wze=()=>S.useContext(E9)||_9;function lo(){const e=S.useContext(E9);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 NH({theme:e,children:r,inherit:n=!0}){const o=Wze(),i=S.useMemo(()=>Uze(n?o:_9,e),[e,o,n]);return y.jsx(E9.Provider,{value:i,children:r})}NH.displayName="@mantine/core/MantineThemeProvider";function Gze(){const e=lo(),r=np(),n=So(e.breakpoints).reduce((o,i)=>{const a=e.breakpoints[i].includes("px"),l=f9(e.breakpoints[i]),s=a?`${l-.1}px`:lH(l-.1),c=a?`${l}px`:lH(l);return`${o}@media (max-width: ${s}) {.mantine-visible-from-${i} {display: none !important;}}@media (min-width: ${c}) {.mantine-hidden-from-${i} {display: none !important;}}`},"");return y.jsx("style",{"data-mantine-styles":"classes",nonce:r?.(),dangerouslySetInnerHTML:{__html:n}})}function C9(e){return Object.entries(e).map(([r,n])=>`${r}: ${n};`).join("")}function BH(e,r){const n=r?[r]:[":root",":host"],o=C9(e.variables),i=o?`${n.join(", ")}{${o}}`:"",a=C9(e.dark),l=C9(e.light),s=u=>n.map(p=>p===":host"?`${p}([data-mantine-color-scheme="${u}"])`:`${p}[data-mantine-color-scheme="${u}"]`).join(", "),c=a?`${s("dark")}{${a}}`:"",d=l?`${s("light")}{${l}}`:"";return`${i} -${s} +${c} -${l}`}function o7({color:e,theme:r,autoContrast:n}){return(typeof n=="boolean"?n:r.autoContrast)&&Au({color:e||r.primaryColor,theme:r}).isLight?"var(--mantine-color-black)":"var(--mantine-color-white)"}function FU(e,r){return o7({color:e.colors[e.primaryColor][M0(e,r)],theme:e,autoContrast:null})}function l2({theme:e,color:r,colorScheme:n,name:o=r,withColorValues:a=!0}){if(!e.colors[r])return{};if(n==="light"){const l=M0(e,"light"),c={[`--mantine-color-${o}-text`]:`var(--mantine-color-${o}-filled)`,[`--mantine-color-${o}-filled`]:`var(--mantine-color-${o}-${l})`,[`--mantine-color-${o}-filled-hover`]:`var(--mantine-color-${o}-${l===9?8:l+1})`,[`--mantine-color-${o}-light`]:Xf(e.colors[r][l],.1),[`--mantine-color-${o}-light-hover`]:Xf(e.colors[r][l],.12),[`--mantine-color-${o}-light-color`]:`var(--mantine-color-${o}-${l})`,[`--mantine-color-${o}-outline`]:`var(--mantine-color-${o}-${l})`,[`--mantine-color-${o}-outline-hover`]:Xf(e.colors[r][l],.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=M0(e,"dark"),s={[`--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`]:Xf(e.colors[r][Math.max(0,i-2)],.15),[`--mantine-color-${o}-light-hover`]:Xf(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`]:Xf(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],...s}:s}function K$e(e){return!!e&&typeof e=="object"&&"mantine-virtual-color"in e}function Kf(e,r,n){zo(r).forEach(o=>Object.assign(e,{[`--mantine-${n}-${o}`]:r[o]}))}const HU=e=>{const r=M0(e,"light"),n=e.defaultRadius in e.radius?e.radius[e.defaultRadius]:Me(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":FU(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":FU(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,s)=>{o.variables[`--mantine-primary-color-${s}`]=`var(--mantine-color-${e.primaryColor}-${s})`}),zo(e.colors).forEach(i=>{const s=e.colors[i];if(K$e(s)){Object.assign(o.light,l2({theme:e,name:s.name,color:s.light,colorScheme:"light",withColorValues:!0})),Object.assign(o.dark,l2({theme:e,name:s.name,color:s.dark,colorScheme:"dark",withColorValues:!0}));return}s.forEach((l,c)=>{o.variables[`--mantine-color-${i}-${c}`]=l}),Object.assign(o.light,l2({theme:e,color:i,colorScheme:"light",withColorValues:!1})),Object.assign(o.dark,l2({theme:e,color:i,colorScheme:"dark",withColorValues:!1}))});const a=e.headings.sizes;return zo(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 Z$e({theme:e,generator:r}){const n=HU(e),o=r?.(e);return o?V9(n,o):n}const a7=HU(J9);function Q$e(e){const r={variables:{},light:{},dark:{}};return zo(e.variables).forEach(n=>{a7.variables[n]!==e.variables[n]&&(r.variables[n]=e.variables[n])}),zo(e.light).forEach(n=>{a7.light[n]!==e.light[n]&&(r.light[n]=e.light[n])}),zo(e.dark).forEach(n=>{a7.dark[n]!==e.dark[n]&&(r.dark[n]=e.dark[n])}),r}function J$e(e){return` - ${e}[data-mantine-color-scheme="dark"] { --mantine-color-scheme: dark; } - ${e}[data-mantine-color-scheme="light"] { --mantine-color-scheme: light; } -`}function VU({cssVariablesSelector:e,deduplicateCssVariables:r}){const n=vo(),o=yp(),a=N$e(),i=Z$e({theme:n,generator:a}),s=e===":root"&&r,l=s?Q$e(i):i,c=X$e(l,e);return c?y.jsx("style",{"data-mantine-styles":!0,nonce:o?.(),dangerouslySetInnerHTML:{__html:`${c}${s?"":J$e(e)}`}}):null}VU.displayName="@mantine/CssVariables";function Zf(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 eMe({manager:e,defaultColorScheme:r,getRootElement:n,forceColorScheme:o}){const a=E.useRef(null),[i,s]=E.useState(()=>e.get(r)),l=o||i,c=E.useCallback(d=>{o||(Zf(d,n),s(d),e.set(d))},[e.set,l,o]),u=E.useCallback(()=>{s(r),Zf(r,n),e.clear()},[e.clear,r]);return E.useEffect(()=>(e.subscribe(c),e.unsubscribe),[e.subscribe,e.unsubscribe]),$0(()=>{Zf(e.get(r),n)},[]),E.useEffect(()=>{if(o)return Zf(o,n),()=>{};o===void 0&&Zf(i,n),typeof window<"u"&&"matchMedia"in window&&(a.current=window.matchMedia("(prefers-color-scheme: dark)"));const d=h=>{i==="auto"&&Zf(h.matches?"dark":"light",n)};return a.current?.addEventListener("change",d),()=>a.current?.removeEventListener("change",d)},[i,o]),{colorScheme:l,setColorScheme:c,clearColorScheme:u}}function tMe({respectReducedMotion:e,getRootElement:r}){$0(()=>{e&&r()?.setAttribute("data-respect-reduced-motion","true")},[e])}function i7({theme:e,children:r,getStyleNonce:n,withStaticClasses:o=!0,withGlobalClasses:a=!0,deduplicateCssVariables:i=!0,withCssVariables:s=!0,cssVariablesSelector:l=":root",classNamesPrefix:c="mantine",colorSchemeManager:u=q$e(),defaultColorScheme:d="light",getRootElement:h=()=>document.documentElement,cssVariablesResolver:f,forceColorScheme:g,stylesTransform:b,env:x}){const{colorScheme:w,setColorScheme:k,clearColorScheme:C}=eMe({defaultColorScheme:d,forceColorScheme:g,manager:u,getRootElement:h});return tMe({respectReducedMotion:e?.respectReducedMotion||!1,getRootElement:h}),y.jsx(a2.Provider,{value:{colorScheme:w,setColorScheme:k,clearColorScheme:C,getRootElement:h,classNamesPrefix:c,getStyleNonce:n,cssVariablesResolver:f,cssVariablesSelector:l,withStaticClasses:o,stylesTransform:b,env:x},children:y.jsxs(BU,{theme:e,children:[s&&y.jsx(VU,{cssVariablesSelector:l,deduplicateCssVariables:i}),a&&y.jsx(G$e,{}),r]})})}i7.displayName="@mantine/core/MantineProvider";function s7({classNames:e,styles:r,props:n,stylesCtx:o}){const a=vo();return{resolvedClassNames:n2({theme:a,classNames:e,props:n,stylesCtx:o||void 0}),resolvedStyles:o2({theme:a,styles:r,props:n,stylesCtx:o||void 0})}}const rMe={always:"mantine-focus-always",auto:"mantine-focus-auto",never:"mantine-focus-never"};function nMe({theme:e,options:r,unstyled:n}){return hs(r?.focusable&&!n&&(e.focusClassName||rMe[e.focusRing]),r?.active&&!n&&e.activeClassName)}function oMe({selector:e,stylesCtx:r,options:n,props:o,theme:a}){return n2({theme:a,classNames:n?.classNames,props:n?.props||o,stylesCtx:r})[e]}function qU({selector:e,stylesCtx:r,theme:n,classNames:o,props:a}){return n2({theme:n,classNames:o,props:a,stylesCtx:r})[e]}function aMe({rootSelector:e,selector:r,className:n}){return e===r?n:void 0}function iMe({selector:e,classes:r,unstyled:n}){return n?void 0:r[e]}function sMe({themeName:e,classNamesPrefix:r,selector:n,withStaticClass:o}){return o===!1?[]:e.map(a=>`${r}-${a}-${n}`)}function lMe({themeName:e,theme:r,selector:n,props:o,stylesCtx:a}){return e.map(i=>n2({theme:r,classNames:r.components[i]?.classNames,props:o,stylesCtx:a})?.[n])}function cMe({options:e,classes:r,selector:n,unstyled:o}){return e?.variant&&!o?r[`${n}--${e.variant}`]:void 0}function uMe({theme:e,options:r,themeName:n,selector:o,classNamesPrefix:a,classNames:i,classes:s,unstyled:l,className:c,rootSelector:u,props:d,stylesCtx:h,withStaticClasses:f,headless:g,transformedStyles:b}){return hs(nMe({theme:e,options:r,unstyled:l||g}),lMe({theme:e,themeName:n,selector:o,props:d,stylesCtx:h}),cMe({options:r,classes:s,selector:o,unstyled:l}),qU({selector:o,stylesCtx:h,theme:e,classNames:i,props:d}),qU({selector:o,stylesCtx:h,theme:e,classNames:b,props:d}),oMe({selector:o,stylesCtx:h,options:r,props:d,theme:e}),aMe({rootSelector:u,selector:o,className:c}),iMe({selector:o,classes:s,unstyled:l||g}),f&&!g&&sMe({themeName:n,classNamesPrefix:a,selector:o,withStaticClass:r?.withStaticClass}),r?.className)}function dMe({theme:e,themeName:r,props:n,stylesCtx:o,selector:a}){return r.map(i=>o2({theme:e,styles:e.components[i]?.styles,props:n,stylesCtx:o})[a]).reduce((i,s)=>({...i,...s}),{})}function l7({style:e,theme:r}){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,...l7({style:o,theme:r})}),{}):typeof e=="function"?e(r):e??{}}function pMe(e){return e.reduce((r,n)=>(n&&Object.keys(n).forEach(o=>{r[o]={...r[o],...Uf(n[o])}}),r),{})}function hMe({vars:e,varsResolver:r,theme:n,props:o,stylesCtx:a,selector:i,themeName:s,headless:l}){return pMe([l?{}:r?.(n,o,a),...s.map(c=>n.components?.[c]?.vars?.(n,o,a)),e?.(n,o,a)])?.[i]}function fMe({theme:e,themeName:r,selector:n,options:o,props:a,stylesCtx:i,rootSelector:s,styles:l,style:c,vars:u,varsResolver:d,headless:h,withStylesTransform:f}){return{...!f&&dMe({theme:e,themeName:r,props:a,stylesCtx:i,selector:n}),...!f&&o2({theme:e,styles:l,props:a,stylesCtx:i})[n],...!f&&o2({theme:e,styles:o?.styles,props:o?.props||a,stylesCtx:i})[n],...hMe({theme:e,props:a,stylesCtx:i,vars:u,varsResolver:d,selector:n,themeName:r,headless:h}),...s===n?l7({style:c,theme:e}):null,...l7({style:o?.style,theme:e})}}function mMe({props:e,stylesCtx:r,themeName:n}){const o=vo(),a=z$e()?.();return{getTransformedStyles:i=>a?[...i.map(s=>a(s,{props:e,theme:o,ctx:r})),...n.map(s=>a(o.components[s]?.styles,{props:e,theme:o,ctx:r}))].filter(Boolean):[],withStylesTransform:!!a}}function Dt({name:e,classes:r,props:n,stylesCtx:o,className:a,style:i,rootSelector:s="root",unstyled:l,classNames:c,styles:u,vars:d,varsResolver:h,attributes:f}){const g=vo(),b=D$e(),x=$$e(),w=M$e(),k=(Array.isArray(e)?e:[e]).filter(T=>T),{withStylesTransform:C,getTransformedStyles:_}=mMe({props:n,stylesCtx:o,themeName:k});return(T,A)=>({className:uMe({theme:g,options:A,themeName:k,selector:T,classNamesPrefix:b,classNames:c,classes:r,unstyled:l,className:a,rootSelector:s,props:n,stylesCtx:o,withStaticClasses:x,headless:w,transformedStyles:_([A?.styles,u])}),style:fMe({theme:g,themeName:k,selector:T,options:A,props:n,stylesCtx:o,rootSelector:s,styles:u,style:i,vars:d,varsResolver:h,headless:w,withStylesTransform:C}),...f?.[T]})}function gMe(e,r){return typeof e=="boolean"?e:r.autoContrast}function UU(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 yMe({keepTransitions:e}={}){const r=E.useRef(fU),n=E.useRef(-1),o=E.useContext(a2),a=yp(),i=E.useRef(a?.());if(!o)throw new Error("[@mantine/core] MantineProvider was not found in tree");const s=h=>{o.setColorScheme(h),r.current=e?()=>{}:UU(i.current),window.clearTimeout(n.current),n.current=window.setTimeout(()=>{r.current?.()},10)},l=()=>{o.clearColorScheme(),r.current=e?()=>{}:UU(i.current),window.clearTimeout(n.current),n.current=window.setTimeout(()=>{r.current?.()},10)},c=vU("light",{getInitialValueInEffect:!1}),u=o.colorScheme==="auto"?c:o.colorScheme,d=E.useCallback(()=>s(u==="light"?"dark":"light"),[s,u]);return E.useEffect(()=>()=>{r.current?.(),window.clearTimeout(n.current)},[]),{colorScheme:o.colorScheme,setColorScheme:s,clearColorScheme:l,toggleColorScheme:d}}function He(e,r,n){const o=vo(),a=o.components[e]?.defaultProps,i=typeof a=="function"?a(o):a;return{...r,...i,...Uf(n)}}function c7(e){return zo(e).reduce((r,n)=>e[n]!==void 0?`${r}${IDe(n)}:${e[n]};`:r,"").trim()}function bMe({selector:e,styles:r,media:n,container:o}){const a=r?c7(r):"",i=Array.isArray(n)?n.map(l=>`@media${l.query}{${e}{${c7(l.styles)}}}`):[],s=Array.isArray(o)?o.map(l=>`@container ${l.query}{${e}{${c7(l.styles)}}}`):[];return`${a?`${e}{${a}}`:""}${i.join("")}${s.join("")}`.trim()}function c2(e){const r=yp();return y.jsx("style",{"data-mantine-styles":"inline",nonce:r?.(),dangerouslySetInnerHTML:{__html:bMe(e)}})}function WU(e){const{m:r,mx:n,my:o,mt:a,mb:i,ml:s,mr:l,me:c,ms:u,p:d,px:h,py:f,pt:g,pb:b,pl:x,pr:w,pe:k,ps:C,bd:_,bdrs:T,bg:A,c:R,opacity:D,ff:N,fz:M,fw:O,lts:F,ta:L,lh:U,fs:P,tt:V,td:I,w:H,miw:q,maw:Z,h:W,mih:G,mah:K,bgsz:j,bgp:Y,bgr:Q,bga:J,pos:ie,top:ne,left:re,bottom:ge,right:De,inset:he,display:me,flex:Te,hiddenFrom:Ie,visibleFrom:Ze,lightHidden:rt,darkHidden:Rt,sx:Qe,...Pt}=e;return{styleProps:Uf({m:r,mx:n,my:o,mt:a,mb:i,ml:s,mr:l,me:c,ms:u,p:d,px:h,py:f,pt:g,pb:b,pl:x,pr:w,pe:k,ps:C,bd:_,bg:A,c:R,opacity:D,ff:N,fz:M,fw:O,lts:F,ta:L,lh:U,fs:P,tt:V,td:I,w:H,miw:q,maw:Z,h:W,mih:G,mah:K,bgsz:j,bgp:Y,bgr:Q,bga:J,pos:ie,top:ne,left:re,bottom:ge,right:De,inset:he,display:me,flex:Te,bdrs:T,hiddenFrom:Ie,visibleFrom:Ze,lightHidden:rt,darkHidden:Rt,sx:Qe}),rest:Pt}}const vMe={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 u7(e,r){const n=Au({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 xMe(e,r){const n=Au({color:e,theme:r});return n.isThemeColor&&n.shade===void 0?`var(--mantine-color-${n.color}-text)`:u7(e,r)}function wMe(e,r){if(typeof e=="number")return Me(e);if(typeof e=="string"){const[n,o,...a]=e.split(" ").filter(s=>s.trim()!=="");let i=`${Me(n)}`;return o&&(i+=` ${o}`),a.length>0&&(i+=` ${u7(a.join(" "),r)}`),i.trim()}return e}const YU={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 kMe(e){return typeof e=="string"&&e in YU?YU[e]:e}const _Me=["h1","h2","h3","h4","h5","h6"];function EMe(e,r){return typeof e=="string"&&e in r.fontSizes?`var(--mantine-font-size-${e})`:typeof e=="string"&&_Me.includes(e)?`var(--mantine-${e}-font-size)`:typeof e=="number"||typeof e=="string"?Me(e):e}function SMe(e){return e}const CMe=["h1","h2","h3","h4","h5","h6"];function TMe(e,r){return typeof e=="string"&&e in r.lineHeights?`var(--mantine-line-height-${e})`:typeof e=="string"&&CMe.includes(e)?`var(--mantine-${e}-line-height)`:e}function AMe(e,r){return typeof e=="string"&&e in r.radius?`var(--mantine-radius-${e})`:typeof e=="number"||typeof e=="string"?Me(e):e}function RMe(e){return typeof e=="number"?Me(e):e}function NMe(e,r){if(typeof e=="number")return Me(e);if(typeof e=="string"){const n=e.replace("-","");if(!(n in r.spacing))return Me(e);const o=`--mantine-spacing-${n}`;return e.startsWith("-")?`calc(var(${o}) * -1)`:`var(${o})`}return e}const d7={color:u7,textColor:xMe,fontSize:EMe,spacing:NMe,radius:AMe,identity:SMe,size:RMe,lineHeight:TMe,fontFamily:kMe,border:wMe};function GU(e){return e.replace("(min-width: ","").replace("em)","")}function DMe({media:e,...r}){const n=Object.keys(e).sort((o,a)=>Number(GU(o))-Number(GU(a))).map(o=>({query:o,styles:e[o]}));return{...r,media:n}}function $Me(e){if(typeof e!="object"||e===null)return!1;const r=Object.keys(e);return!(r.length===1&&r[0]==="base")}function MMe(e){return typeof e=="object"&&e!==null?"base"in e?e.base:void 0:e}function PMe(e){return typeof e=="object"&&e!==null?zo(e).filter(r=>r!=="base"):[]}function zMe(e,r){return typeof e=="object"&&e!==null&&r in e?e[r]:e}function XU({styleProps:e,data:r,theme:n}){return DMe(zo(e).reduce((o,a)=>{if(a==="hiddenFrom"||a==="visibleFrom"||a==="sx")return o;const i=r[a],s=Array.isArray(i.property)?i.property:[i.property],l=MMe(e[a]);if(!$Me(e[a]))return s.forEach(u=>{o.inlineStyles[u]=d7[i.type](l,n)}),o;o.hasResponsiveStyles=!0;const c=PMe(e[a]);return s.forEach(u=>{l!=null&&(o.styles[u]=d7[i.type](l,n)),c.forEach(d=>{const h=`(min-width: ${n.breakpoints[d]})`;o.media[h]={...o.media[h],[u]:d7[i.type](zMe(e[a],d),n)}})}),o},{hasResponsiveStyles:!1,styles:{},inlineStyles:{},media:{}}))}function u2(){return`__m__-${E.useId().replace(/[:«»]/g,"")}`}function p7(e,r){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,...p7(o,r)}),{}):typeof e=="function"?e(r):e??{}}function KU(e){return e.startsWith("data-")?e:`data-${e}`}function IMe(e){return Object.keys(e).reduce((r,n)=>{const o=e[n];return o===void 0||o===""||o===!1||o===null||(r[KU(n)]=e[n]),r},{})}function ZU(e){return e?typeof e=="string"?{[KU(e)]:!0}:Array.isArray(e)?[...e].reduce((r,n)=>({...r,...ZU(n)}),{}):IMe(e):null}function h7(e,r){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,...h7(o,r)}),{}):typeof e=="function"?e(r):e??{}}function OMe({theme:e,style:r,vars:n,styleProps:o}){const a=h7(r,e),i=h7(n,e);return{...a,...i,...o}}const QU=E.forwardRef(({component:e,style:r,__vars:n,className:o,variant:a,mod:i,size:s,hiddenFrom:l,visibleFrom:c,lightHidden:u,darkHidden:d,renderRoot:h,__size:f,...g},b)=>{const x=vo(),w=e||"div",{styleProps:k,rest:C}=WU(g),_=P$e()?.()?.(k.sx),T=u2(),A=XU({styleProps:k,theme:x,data:vMe}),R={ref:b,style:OMe({theme:x,style:r,vars:n,styleProps:A.inlineStyles}),className:hs(o,_,{[T]:A.hasResponsiveStyles,"mantine-light-hidden":u,"mantine-dark-hidden":d,[`mantine-hidden-from-${l}`]:l,[`mantine-visible-from-${c}`]:c}),"data-variant":a,"data-size":pU(s)?void 0:s||void 0,size:f,...ZU(i),...C};return y.jsxs(y.Fragment,{children:[A.hasResponsiveStyles&&y.jsx(c2,{selector:`.${T}`,styles:A.styles,media:A.media}),typeof h=="function"?h(R):y.jsx(w,{...R})]})});QU.displayName="@mantine/core/Box";const Re=QU;function JU(e){return e}function jMe(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 ht(e){const r=E.forwardRef(e);return r.extend=JU,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 so(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=JU,r}const LMe=E.createContext({dir:"ltr",toggleDirection:()=>{},setDirection:()=>{}});function Ru(){return E.useContext(LMe)}function BMe(e){if(!e||typeof e=="string")return 0;const r=e/36;return Math.round((4+15*r**.25+r/5)*10)}function f7(e){return e?.current?e.current.scrollHeight:"auto"}const d2=typeof window<"u"&&window.requestAnimationFrame,eW=0,FMe=e=>({height:0,overflow:"hidden",...e?{}:{display:"none"}});function HMe({transitionDuration:e,transitionTimingFunction:r="ease",onTransitionEnd:n=()=>{},opened:o,keepMounted:a=!1}){const i=E.useRef(null),s=FMe(a),[l,c]=E.useState(o?{}:s),u=b=>{Ki.flushSync(()=>c(b))},d=b=>{u(x=>({...x,...b}))};function h(b){const x=e||BMe(b);return{transition:`height ${x}ms ${r}, opacity ${x}ms ${r}`}}gp(()=>{typeof d2=="function"&&d2(o?()=>{d({willChange:"height",display:"block",overflow:"hidden"}),d2(()=>{const b=f7(i);d({...h(b),height:b})})}:()=>{const b=f7(i);d({...h(b),willChange:"height",height:b}),d2(()=>d({height:eW,overflow:"hidden"}))})},[o]);const f=b=>{if(!(b.target!==i.current||b.propertyName!=="height"))if(o){const x=f7(i);x===l.height?u({}):d({height:x}),n()}else l.height===eW&&(u(s),n())};function g({style:b={},refKey:x="ref",...w}={}){const k=w[x],C={"aria-hidden":!o,...w,[x]:SU(i,k),onTransitionEnd:f,style:{boxSizing:"border-box",...b,...l}};return dn.version.startsWith("18")?o||(C.inert=""):C.inert=!o,C}return g}const VMe={transitionDuration:200,transitionTimingFunction:"ease",animateOpacity:!0},tW=ht((e,r)=>{const{children:n,in:o,transitionDuration:a,transitionTimingFunction:i,style:s,onTransitionEnd:l,animateOpacity:c,keepMounted:u,...d}=He("Collapse",VMe,e),h=vo(),f=TU(),g=h.respectReducedMotion&&f?0:a,b=HMe({opened:o,transitionDuration:g,transitionTimingFunction:i,onTransitionEnd:l,keepMounted:u});return g===0?o?y.jsx(Re,{...d,children:n}):null:y.jsx(Re,{...b({style:{opacity:o||!c?1:0,transition:c?`opacity ${g}ms ${i}`:"none",...p7(s,h)},ref:r,...d}),children:n})});tW.displayName="@mantine/core/Collapse";function p2(){return typeof window<"u"}function Qf(e){return rW(e)?(e.nodeName||"").toLowerCase():"#document"}function da(e){var r;return(e==null||(r=e.ownerDocument)==null?void 0:r.defaultView)||window}function fl(e){var r;return(r=(rW(e)?e.ownerDocument:e.document)||window.document)==null?void 0:r.documentElement}function rW(e){return p2()?e instanceof Node||e instanceof da(e).Node:!1}function Vr(e){return p2()?e instanceof Element||e instanceof da(e).Element:!1}function Oa(e){return p2()?e instanceof HTMLElement||e instanceof da(e).HTMLElement:!1}function m7(e){return!p2()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof da(e).ShadowRoot}const qMe=new Set(["inline","contents"]);function z0(e){const{overflow:r,overflowX:n,overflowY:o,display:a}=mi(e);return/auto|scroll|overlay|hidden|clip/.test(r+o+n)&&!qMe.has(a)}const UMe=new Set(["table","td","th"]);function WMe(e){return UMe.has(Qf(e))}const YMe=[":popover-open",":modal"];function h2(e){return YMe.some(r=>{try{return e.matches(r)}catch{return!1}})}const GMe=["transform","translate","scale","rotate","perspective"],XMe=["transform","translate","scale","rotate","perspective","filter"],KMe=["paint","layout","strict","content"];function g7(e){const r=f2(),n=Vr(e)?mi(e):e;return GMe.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)||XMe.some(o=>(n.willChange||"").includes(o))||KMe.some(o=>(n.contain||"").includes(o))}function ZMe(e){let r=pc(e);for(;Oa(r)&&!dc(r);){if(g7(r))return r;if(h2(r))return null;r=pc(r)}return null}function f2(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const QMe=new Set(["html","body","#document"]);function dc(e){return QMe.has(Qf(e))}function mi(e){return da(e).getComputedStyle(e)}function m2(e){return Vr(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function pc(e){if(Qf(e)==="html")return e;const r=e.assignedSlot||e.parentNode||m7(e)&&e.host||fl(e);return m7(r)?r.host:r}function nW(e){const r=pc(e);return dc(r)?e.ownerDocument?e.ownerDocument.body:e.body:Oa(r)&&z0(r)?r:nW(r)}function hc(e,r,n){var o;r===void 0&&(r=[]),n===void 0&&(n=!0);const a=nW(e),i=a===((o=e.ownerDocument)==null?void 0:o.body),s=da(a);if(i){const l=y7(s);return r.concat(s,s.visualViewport||[],z0(a)?a:[],l&&n?hc(l):[])}return r.concat(a,hc(a,[],n))}function y7(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}const oW=["top","right","bottom","left"],aW=["start","end"],iW=oW.reduce((e,r)=>e.concat(r,r+"-"+aW[0],r+"-"+aW[1]),[]),fs=Math.min,Oo=Math.max,g2=Math.round,y2=Math.floor,ml=e=>({x:e,y:e}),JMe={left:"right",right:"left",bottom:"top",top:"bottom"},ePe={start:"end",end:"start"};function b7(e,r,n){return Oo(e,fs(r,n))}function ms(e,r){return typeof e=="function"?e(r):e}function ja(e){return e.split("-")[0]}function gs(e){return e.split("-")[1]}function v7(e){return e==="x"?"y":"x"}function x7(e){return e==="y"?"height":"width"}const tPe=new Set(["top","bottom"]);function ys(e){return tPe.has(ja(e))?"y":"x"}function w7(e){return v7(ys(e))}function sW(e,r,n){n===void 0&&(n=!1);const o=gs(e),a=w7(e),i=x7(a);let s=a==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return r.reference[i]>r.floating[i]&&(s=v2(s)),[s,v2(s)]}function rPe(e){const r=v2(e);return[b2(e),r,b2(r)]}function b2(e){return e.replace(/start|end/g,r=>ePe[r])}const lW=["left","right"],cW=["right","left"],nPe=["top","bottom"],oPe=["bottom","top"];function aPe(e,r,n){switch(e){case"top":case"bottom":return n?r?cW:lW:r?lW:cW;case"left":case"right":return r?nPe:oPe;default:return[]}}function iPe(e,r,n,o){const a=gs(e);let i=aPe(ja(e),n==="start",o);return a&&(i=i.map(s=>s+"-"+a),r&&(i=i.concat(i.map(b2)))),i}function v2(e){return e.replace(/left|right|bottom|top/g,r=>JMe[r])}function sPe(e){return{top:0,right:0,bottom:0,left:0,...e}}function k7(e){return typeof e!="number"?sPe(e):{top:e,right:e,bottom:e,left:e}}function Jf(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 lPe(){const e=navigator.userAgentData;return e!=null&&e.platform?e.platform:navigator.platform}function cPe(){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 uPe(){return/apple/i.test(navigator.vendor)}function dPe(){return lPe().toLowerCase().startsWith("mac")&&!navigator.maxTouchPoints}function pPe(){return cPe().includes("jsdom/")}const uW="data-floating-ui-focusable",hPe="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";function dW(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 I0(e,r){if(!e||!r)return!1;const n=r.getRootNode==null?void 0:r.getRootNode();if(e.contains(r))return!0;if(n&&m7(n)){let o=r;for(;o;){if(e===o)return!0;o=o.parentNode||o.host}}return!1}function em(e){return"composedPath"in e?e.composedPath()[0]:e.target}function _7(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 fPe(e){return e.matches("html,body")}function bp(e){return e?.ownerDocument||document}function mPe(e){return Oa(e)&&e.matches(hPe)}function gPe(e){if(!e||pPe())return!0;try{return e.matches(":focus-visible")}catch{return!0}}function yPe(e){return e?e.hasAttribute(uW)?e:e.querySelector("["+uW+"]")||e:null}function x2(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,...x2(e,o.id,n)])}function bPe(e){return"nativeEvent"in e}function E7(e,r){const n=["mouse","pen"];return n.push("",void 0),n.includes(e)}var vPe=typeof document<"u",xPe=function(){},gl=vPe?E.useLayoutEffect:xPe;const wPe={...Hv};function w2(e){const r=E.useRef(e);return gl(()=>{r.current=e}),r}const kPe=wPe.useInsertionEffect,_Pe=kPe||(e=>e());function yl(e){const r=E.useRef(()=>{});return _Pe(()=>{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:s}=n,l=i.filter(Boolean),c=await(s.isRTL==null?void 0:s.isRTL(r));let u=await s.getElementRects({reference:e,floating:r,strategy:a}),{x:d,y:h}=pW(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:s,elements:l,middlewareData:c}=r,{element:u,padding:d=0}=ms(e,r)||{};if(u==null)return{};const h=k7(d),f={x:n,y:o},g=w7(a),b=x7(g),x=await s.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],A=f[g]-i.reference[g],R=await(s.getOffsetParent==null?void 0:s.getOffsetParent(u));let D=R?R[_]:0;(!D||!await(s.isElement==null?void 0:s.isElement(R)))&&(D=l.floating[_]||i.floating[b]);const N=T/2-A/2,M=D/2-x[b]/2-1,O=fs(h[k],M),F=fs(h[C],M),L=O,U=D-x[b]-F,P=D/2-x[b]/2+N,V=b7(L,P,U),I=!c.arrow&&gs(a)!=null&&P!==V&&i.reference[b]/2-(Pgs(o)===e),...n.filter(o=>gs(o)!==e)]:n.filter(o=>ja(o)===o)).filter(o=>e?gs(o)===e||(r?b2(o)!==o:!1):!0)}const TPe=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(r){var n,o,a;const{rects:i,middlewareData:s,placement:l,platform:c,elements:u}=r,{crossAxis:d=!1,alignment:h,allowedPlacements:f=iW,autoAlignment:g=!0,...b}=ms(e,r),x=h!==void 0||f===iW?CPe(h||null,g,f):f,w=await tm(r,b),k=((n=s.autoPlacement)==null?void 0:n.index)||0,C=x[k];if(C==null)return{};const _=sW(C,i,await(c.isRTL==null?void 0:c.isRTL(u.floating)));if(l!==C)return{reset:{placement:x[0]}};const T=[w[ja(C)],w[_[0]],w[_[1]]],A=[...((o=s.autoPlacement)==null?void 0:o.overflows)||[],{placement:C,overflows:T}],R=x[k+1];if(R)return{data:{index:k+1,overflows:A},reset:{placement:R}};const D=A.map(M=>{const O=gs(M.placement);return[M.placement,O&&d?M.overflows.slice(0,2).reduce((F,L)=>F+L,0):M.overflows[0],M.overflows]}).sort((M,O)=>M[1]-O[1]),N=((a=D.filter(M=>M[2].slice(0,gs(M[0])?2:3).every(O=>O<=0))[0])==null?void 0:a[0])||D[0][0];return N!==l?{data:{index:k+1,overflows:A},reset:{placement:N}}:{}}}},APe=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(r){var n,o;const{placement:a,middlewareData:i,rects:s,initialPlacement:l,platform:c,elements:u}=r,{mainAxis:d=!0,crossAxis:h=!0,fallbackPlacements:f,fallbackStrategy:g="bestFit",fallbackAxisSideDirection:b="none",flipAlignment:x=!0,...w}=ms(e,r);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const k=ja(a),C=ys(l),_=ja(l)===l,T=await(c.isRTL==null?void 0:c.isRTL(u.floating)),A=f||(_||!x?[v2(l)]:rPe(l)),R=b!=="none";!f&&R&&A.push(...iPe(l,x,b,T));const D=[l,...A],N=await tm(r,w),M=[];let O=((o=i.flip)==null?void 0:o.overflows)||[];if(d&&M.push(N[k]),h){const P=sW(a,s,T);M.push(N[P[0]],N[P[1]])}if(O=[...O,{placement:a,overflows:M}],!M.every(P=>P<=0)){var F,L;const P=(((F=i.flip)==null?void 0:F.index)||0)+1,V=D[P];if(V&&(!(h==="alignment"&&C!==ys(V))||O.every(H=>ys(H.placement)===C?H.overflows[0]>0:!0)))return{data:{index:P,overflows:O},reset:{placement:V}};let I=(L=O.filter(H=>H.overflows[0]<=0).sort((H,q)=>H.overflows[1]-q.overflows[1])[0])==null?void 0:L.placement;if(!I)switch(g){case"bestFit":{var U;const H=(U=O.filter(q=>{if(R){const Z=ys(q.placement);return Z===C||Z==="y"}return!0}).map(q=>[q.placement,q.overflows.filter(Z=>Z>0).reduce((Z,W)=>Z+W,0)]).sort((q,Z)=>q[1]-Z[1])[0])==null?void 0:U[0];H&&(I=H);break}case"initialPlacement":I=l;break}if(a!==I)return{reset:{placement:I}}}return{}}}};function hW(e,r){return{top:e.top-r.height,right:e.right-r.width,bottom:e.bottom-r.height,left:e.left-r.width}}function fW(e){return oW.some(r=>e[r]>=0)}const RPe=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(r){const{rects:n}=r,{strategy:o="referenceHidden",...a}=ms(e,r);switch(o){case"referenceHidden":{const i=await tm(r,{...a,elementContext:"reference"}),s=hW(i,n.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:fW(s)}}}case"escaped":{const i=await tm(r,{...a,altBoundary:!0}),s=hW(i,n.floating);return{data:{escapedOffsets:s,escaped:fW(s)}}}default:return{}}}}};function mW(e){const r=fs(...e.map(i=>i.left)),n=fs(...e.map(i=>i.top)),o=Oo(...e.map(i=>i.right)),a=Oo(...e.map(i=>i.bottom));return{x:r,y:n,width:o-r,height:a-n}}function NPe(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=>Jf(mW(a)))}const DPe=function(e){return e===void 0&&(e={}),{name:"inline",options:e,async fn(r){const{placement:n,elements:o,rects:a,platform:i,strategy:s}=r,{padding:l=2,x:c,y:u}=ms(e,r),d=Array.from(await(i.getClientRects==null?void 0:i.getClientRects(o.reference))||[]),h=NPe(d),f=Jf(mW(d)),g=k7(l);function b(){if(h.length===2&&h[0].left>h[1].right&&c!=null&&u!=null)return h.find(w=>c>w.left-g.left&&cw.top-g.top&&u=2){if(ys(n)==="y"){const O=h[0],F=h[h.length-1],L=ja(n)==="top",U=O.top,P=F.bottom,V=L?O.left:F.left,I=L?O.right:F.right,H=I-V,q=P-U;return{top:U,bottom:P,left:V,right:I,width:H,height:q,x:V,y:U}}const w=ja(n)==="left",k=Oo(...h.map(O=>O.right)),C=fs(...h.map(O=>O.left)),_=h.filter(O=>w?O.left===C:O.right===k),T=_[0].top,A=_[_.length-1].bottom,R=C,D=k,N=D-R,M=A-T;return{top:T,bottom:A,left:R,right:D,width:N,height:M,x:R,y:T}}return f}const x=await i.getElementRects({reference:{getBoundingClientRect:b},floating:o.floating,strategy:s});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}}:{}}}},gW=new Set(["left","top"]);async function $Pe(e,r){const{placement:n,platform:o,elements:a}=e,i=await(o.isRTL==null?void 0:o.isRTL(a.floating)),s=ja(n),l=gs(n),c=ys(n)==="y",u=gW.has(s)?-1:1,d=i&&c?-1:1,h=ms(r,e);let{mainAxis:f,crossAxis:g,alignmentAxis:b}=typeof h=="number"?{mainAxis:h,crossAxis:0,alignmentAxis:null}:{mainAxis:h.mainAxis||0,crossAxis:h.crossAxis||0,alignmentAxis:h.alignmentAxis};return l&&typeof b=="number"&&(g=l==="end"?b*-1:b),c?{x:g*d,y:f*u}:{x:f*u,y:g*d}}const MPe=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(r){var n,o;const{x:a,y:i,placement:s,middlewareData:l}=r,c=await $Pe(r,e);return s===((n=l.offset)==null?void 0:n.placement)&&(o=l.arrow)!=null&&o.alignmentOffset?{}:{x:a+c.x,y:i+c.y,data:{...c,placement:s}}}}},PPe=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:s=!1,limiter:l={fn:w=>{let{x:k,y:C}=w;return{x:k,y:C}}},...c}=ms(e,r),u={x:n,y:o},d=await tm(r,c),h=ys(ja(a)),f=v7(h);let g=u[f],b=u[h];if(i){const w=f==="y"?"top":"left",k=f==="y"?"bottom":"right",C=g+d[w],_=g-d[k];g=b7(C,g,_)}if(s){const w=h==="y"?"top":"left",k=h==="y"?"bottom":"right",C=b+d[w],_=b-d[k];b=b7(C,b,_)}const x=l.fn({...r,[f]:g,[h]:b});return{...x,data:{x:x.x-n,y:x.y-o,enabled:{[f]:i,[h]:s}}}}}},zPe=function(e){return e===void 0&&(e={}),{options:e,fn(r){const{x:n,y:o,placement:a,rects:i,middlewareData:s}=r,{offset:l=0,mainAxis:c=!0,crossAxis:u=!0}=ms(e,r),d={x:n,y:o},h=ys(a),f=v7(h);let g=d[f],b=d[h];const x=ms(l,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,A=i.reference[f]+i.reference[_]-w.mainAxis;gA&&(g=A)}if(u){var k,C;const _=f==="y"?"width":"height",T=gW.has(ja(a)),A=i.reference[h]-i.floating[_]+(T&&((k=s.offset)==null?void 0:k[h])||0)+(T?0:w.crossAxis),R=i.reference[h]+i.reference[_]+(T?0:((C=s.offset)==null?void 0:C[h])||0)-(T?w.crossAxis:0);bR&&(b=R)}return{[f]:g,[h]:b}}}},IPe=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(r){var n,o;const{placement:a,rects:i,platform:s,elements:l}=r,{apply:c=()=>{},...u}=ms(e,r),d=await tm(r,u),h=ja(a),f=gs(a),g=ys(a)==="y",{width:b,height:x}=i.floating;let w,k;h==="top"||h==="bottom"?(w=h,k=f===(await(s.isRTL==null?void 0:s.isRTL(l.floating))?"start":"end")?"left":"right"):(k=h,w=f==="end"?"top":"bottom");const C=x-d.top-d.bottom,_=b-d.left-d.right,T=fs(x-d[w],C),A=fs(b-d[k],_),R=!r.middlewareData.shift;let D=T,N=A;if((n=r.middlewareData.shift)!=null&&n.enabled.x&&(N=_),(o=r.middlewareData.shift)!=null&&o.enabled.y&&(D=C),R&&!f){const O=Oo(d.left,0),F=Oo(d.right,0),L=Oo(d.top,0),U=Oo(d.bottom,0);g?N=b-2*(O!==0||F!==0?O+F:Oo(d.left,d.right)):D=x-2*(L!==0||U!==0?L+U:Oo(d.top,d.bottom))}await c({...r,availableWidth:N,availableHeight:D});const M=await s.getDimensions(l.floating);return b!==M.width||x!==M.height?{reset:{rects:!0}}:{}}}};function yW(e){const r=mi(e);let n=parseFloat(r.width)||0,o=parseFloat(r.height)||0;const a=Oa(e),i=a?e.offsetWidth:n,s=a?e.offsetHeight:o,l=g2(n)!==i||g2(o)!==s;return l&&(n=i,o=s),{width:n,height:o,$:l}}function S7(e){return Vr(e)?e:e.contextElement}function rm(e){const r=S7(e);if(!Oa(r))return ml(1);const n=r.getBoundingClientRect(),{width:o,height:a,$:i}=yW(r);let s=(i?g2(n.width):n.width)/o,l=(i?g2(n.height):n.height)/a;return(!s||!Number.isFinite(s))&&(s=1),(!l||!Number.isFinite(l))&&(l=1),{x:s,y:l}}const OPe=ml(0);function bW(e){const r=da(e);return!f2()||!r.visualViewport?OPe:{x:r.visualViewport.offsetLeft,y:r.visualViewport.offsetTop}}function jPe(e,r,n){return r===void 0&&(r=!1),!n||r&&n!==da(e)?!1:r}function vp(e,r,n,o){r===void 0&&(r=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),i=S7(e);let s=ml(1);r&&(o?Vr(o)&&(s=rm(o)):s=rm(e));const l=jPe(i,n,o)?bW(i):ml(0);let c=(a.left+l.x)/s.x,u=(a.top+l.y)/s.y,d=a.width/s.x,h=a.height/s.y;if(i){const f=da(i),g=o&&Vr(o)?da(o):o;let b=f,x=y7(b);for(;x&&o&&g!==b;){const w=rm(x),k=x.getBoundingClientRect(),C=mi(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,h*=w.y,c+=_,u+=T,b=da(x),x=y7(b)}}return Jf({width:d,height:h,x:c,y:u})}function k2(e,r){const n=m2(e).scrollLeft;return r?r.left+n:vp(fl(e)).left+n}function vW(e,r){const n=e.getBoundingClientRect(),o=n.left+r.scrollLeft-k2(e,n),a=n.top+r.scrollTop;return{x:o,y:a}}function LPe(e){let{elements:r,rect:n,offsetParent:o,strategy:a}=e;const i=a==="fixed",s=fl(o),l=r?h2(r.floating):!1;if(o===s||l&&i)return n;let c={scrollLeft:0,scrollTop:0},u=ml(1);const d=ml(0),h=Oa(o);if((h||!h&&!i)&&((Qf(o)!=="body"||z0(s))&&(c=m2(o)),Oa(o))){const g=vp(o);u=rm(o),d.x=g.x+o.clientLeft,d.y=g.y+o.clientTop}const f=s&&!h&&!i?vW(s,c):ml(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 BPe(e){return Array.from(e.getClientRects())}function FPe(e){const r=fl(e),n=m2(e),o=e.ownerDocument.body,a=Oo(r.scrollWidth,r.clientWidth,o.scrollWidth,o.clientWidth),i=Oo(r.scrollHeight,r.clientHeight,o.scrollHeight,o.clientHeight);let s=-n.scrollLeft+k2(e);const l=-n.scrollTop;return mi(o).direction==="rtl"&&(s+=Oo(r.clientWidth,o.clientWidth)-a),{width:a,height:i,x:s,y:l}}const xW=25;function HPe(e,r){const n=da(e),o=fl(e),a=n.visualViewport;let i=o.clientWidth,s=o.clientHeight,l=0,c=0;if(a){i=a.width,s=a.height;const d=f2();(!d||d&&r==="fixed")&&(l=a.offsetLeft,c=a.offsetTop)}const u=k2(o);if(u<=0){const d=o.ownerDocument,h=d.body,f=getComputedStyle(h),g=d.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,b=Math.abs(o.clientWidth-h.clientWidth-g);b<=xW&&(i-=b)}else u<=xW&&(i+=u);return{width:i,height:s,x:l,y:c}}const VPe=new Set(["absolute","fixed"]);function qPe(e,r){const n=vp(e,!0,r==="fixed"),o=n.top+e.clientTop,a=n.left+e.clientLeft,i=Oa(e)?rm(e):ml(1),s=e.clientWidth*i.x,l=e.clientHeight*i.y,c=a*i.x,u=o*i.y;return{width:s,height:l,x:c,y:u}}function wW(e,r,n){let o;if(r==="viewport")o=HPe(e,n);else if(r==="document")o=FPe(fl(e));else if(Vr(r))o=qPe(r,n);else{const a=bW(e);o={x:r.x-a.x,y:r.y-a.y,width:r.width,height:r.height}}return Jf(o)}function kW(e,r){const n=pc(e);return n===r||!Vr(n)||dc(n)?!1:mi(n).position==="fixed"||kW(n,r)}function UPe(e,r){const n=r.get(e);if(n)return n;let o=hc(e,[],!1).filter(l=>Vr(l)&&Qf(l)!=="body"),a=null;const i=mi(e).position==="fixed";let s=i?pc(e):e;for(;Vr(s)&&!dc(s);){const l=mi(s),c=g7(s);!c&&l.position==="fixed"&&(a=null),(i?!c&&!a:!c&&l.position==="static"&&a&&VPe.has(a.position)||z0(s)&&!c&&kW(e,s))?o=o.filter(u=>u!==s):a=l,s=pc(s)}return r.set(e,o),o}function WPe(e){let{element:r,boundary:n,rootBoundary:o,strategy:a}=e;const i=[...n==="clippingAncestors"?h2(r)?[]:UPe(r,this._c):[].concat(n),o],s=i[0],l=i.reduce((c,u)=>{const d=wW(r,u,a);return c.top=Oo(d.top,c.top),c.right=fs(d.right,c.right),c.bottom=fs(d.bottom,c.bottom),c.left=Oo(d.left,c.left),c},wW(r,s,a));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function YPe(e){const{width:r,height:n}=yW(e);return{width:r,height:n}}function GPe(e,r,n){const o=Oa(r),a=fl(r),i=n==="fixed",s=vp(e,!0,i,r);let l={scrollLeft:0,scrollTop:0};const c=ml(0);function u(){c.x=k2(a)}if(o||!o&&!i)if((Qf(r)!=="body"||z0(a))&&(l=m2(r)),o){const g=vp(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?vW(a,l):ml(0),h=s.left+l.scrollLeft-c.x-d.x,f=s.top+l.scrollTop-c.y-d.y;return{x:h,y:f,width:s.width,height:s.height}}function C7(e){return mi(e).position==="static"}function _W(e,r){if(!Oa(e)||mi(e).position==="fixed")return null;if(r)return r(e);let n=e.offsetParent;return fl(e)===n&&(n=n.ownerDocument.body),n}function EW(e,r){const n=da(e);if(h2(e))return n;if(!Oa(e)){let a=pc(e);for(;a&&!dc(a);){if(Vr(a)&&!C7(a))return a;a=pc(a)}return n}let o=_W(e,r);for(;o&&WMe(o)&&C7(o);)o=_W(o,r);return o&&dc(o)&&C7(o)&&!g7(o)?n:o||ZMe(e)||n}const XPe=async function(e){const r=this.getOffsetParent||EW,n=this.getDimensions,o=await n(e.floating);return{reference:GPe(e.reference,await r(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function KPe(e){return mi(e).direction==="rtl"}const ZPe={convertOffsetParentRelativeRectToViewportRelativeRect:LPe,getDocumentElement:fl,getClippingRect:WPe,getOffsetParent:EW,getElementRects:XPe,getClientRects:BPe,getDimensions:YPe,getScale:rm,isElement:Vr,isRTL:KPe};function SW(e,r){return e.x===r.x&&e.y===r.y&&e.width===r.width&&e.height===r.height}function QPe(e,r){let n=null,o;const a=fl(e);function i(){var l;clearTimeout(o),(l=n)==null||l.disconnect(),n=null}function s(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),i();const u=e.getBoundingClientRect(),{left:d,top:h,width:f,height:g}=u;if(l||r(),!f||!g)return;const b=y2(h),x=y2(a.clientWidth-(d+f)),w=y2(a.clientHeight-(h+g)),k=y2(d),C={rootMargin:-b+"px "+-x+"px "+-w+"px "+-k+"px",threshold:Oo(0,fs(1,c))||1};let _=!0;function T(A){const R=A[0].intersectionRatio;if(R!==c){if(!_)return s();R?s(!1,R):o=setTimeout(()=>{s(!1,1e-7)},1e3)}R===1&&!SW(u,e.getBoundingClientRect())&&s(),_=!1}try{n=new IntersectionObserver(T,{...C,root:a.ownerDocument})}catch{n=new IntersectionObserver(T,C)}n.observe(e)}return s(!0),i}function _2(e,r,n,o){o===void 0&&(o={});const{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=o,u=S7(e),d=a||i?[...u?hc(u):[],...hc(r)]:[];d.forEach(k=>{a&&k.addEventListener("scroll",n,{passive:!0}),i&&k.addEventListener("resize",n)});const h=u&&l?QPe(u,n):null;let f=-1,g=null;s&&(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?vp(e):null;c&&w();function w(){const k=vp(e);x&&!SW(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)}),h?.(),(k=g)==null||k.disconnect(),g=null,c&&cancelAnimationFrame(b)}}const CW=MPe,JPe=TPe,eze=PPe,tze=APe,TW=IPe,AW=RPe,RW=SPe,rze=DPe,nze=zPe,NW=(e,r,n)=>{const o=new Map,a={platform:ZPe,...n},i={...a.platform,_c:o};return EPe(e,r,{...a,platform:i})};var oze=typeof document<"u",aze=function(){},E2=oze?E.useLayoutEffect:aze;function S2(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(!S2(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)&&!S2(e[i],r[i]))return!1}return!0}return e!==e&&r!==r}function DW(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function $W(e,r){const n=DW(e);return Math.round(r*n)/n}function T7(e){const r=E.useRef(e);return E2(()=>{r.current=e}),r}function ize(e){e===void 0&&(e={});const{placement:r="bottom",strategy:n="absolute",middleware:o=[],platform:a,elements:{reference:i,floating:s}={},transform:l=!0,whileElementsMounted:c,open:u}=e,[d,h]=E.useState({x:0,y:0,strategy:n,placement:r,middlewareData:{},isPositioned:!1}),[f,g]=E.useState(o);S2(f,o)||g(o);const[b,x]=E.useState(null),[w,k]=E.useState(null),C=E.useCallback(q=>{q!==R.current&&(R.current=q,x(q))},[]),_=E.useCallback(q=>{q!==D.current&&(D.current=q,k(q))},[]),T=i||b,A=s||w,R=E.useRef(null),D=E.useRef(null),N=E.useRef(d),M=c!=null,O=T7(c),F=T7(a),L=T7(u),U=E.useCallback(()=>{if(!R.current||!D.current)return;const q={placement:r,strategy:n,middleware:f};F.current&&(q.platform=F.current),NW(R.current,D.current,q).then(Z=>{const W={...Z,isPositioned:L.current!==!1};P.current&&!S2(N.current,W)&&(N.current=W,Ki.flushSync(()=>{h(W)}))})},[f,r,n,F,L]);E2(()=>{u===!1&&N.current.isPositioned&&(N.current.isPositioned=!1,h(q=>({...q,isPositioned:!1})))},[u]);const P=E.useRef(!1);E2(()=>(P.current=!0,()=>{P.current=!1}),[]),E2(()=>{if(T&&(R.current=T),A&&(D.current=A),T&&A){if(O.current)return O.current(T,A,U);U()}},[T,A,U,O,M]);const V=E.useMemo(()=>({reference:R,floating:D,setReference:C,setFloating:_}),[C,_]),I=E.useMemo(()=>({reference:T,floating:A}),[T,A]),H=E.useMemo(()=>{const q={position:n,left:0,top:0};if(!I.floating)return q;const Z=$W(I.floating,d.x),W=$W(I.floating,d.y);return l?{...q,transform:"translate("+Z+"px, "+W+"px)",...DW(I.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:Z,top:W}},[n,l,I.floating,d.x,d.y]);return E.useMemo(()=>({...d,update:U,refs:V,elements:I,floatingStyles:H}),[d,U,V,I,H])}const sze=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?RW({element:o.current,padding:a}).fn(n):{}:o?RW({element:o,padding:a}).fn(n):{}}}},MW=(e,r)=>({...CW(e),options:[e,r]}),A7=(e,r)=>({...eze(e),options:[e,r]}),PW=(e,r)=>({...nze(e),options:[e,r]}),C2=(e,r)=>({...tze(e),options:[e,r]}),lze=(e,r)=>({...TW(e),options:[e,r]}),cze=(e,r)=>({...AW(e),options:[e,r]}),O0=(e,r)=>({...rze(e),options:[e,r]}),zW=(e,r)=>({...sze(e),options:[e,r]});function IW(e){const r=E.useRef(void 0),n=E.useCallback(o=>{const a=e.map(i=>{if(i!=null){if(typeof i=="function"){const s=i,l=s(o);return typeof l=="function"?l:()=>{s(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 uze="data-floating-ui-focusable",OW="active",jW="selected",dze={...Hv};let LW=!1,pze=0;const BW=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+pze++;function hze(){const[e,r]=E.useState(()=>LW?BW():void 0);return gl(()=>{e==null&&r(BW())},[]),E.useEffect(()=>{LW=!0},[]),e}const fze=dze.useId,FW=fze||hze;function mze(){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 gze=E.createContext(null),yze=E.createContext(null),R7=()=>{var e;return((e=E.useContext(gze))==null?void 0:e.id)||null},N7=()=>E.useContext(yze);function D7(e){return"data-floating-ui-"+e}function gi(e){e.current!==-1&&(clearTimeout(e.current),e.current=-1)}const HW=D7("safe-polygon");function T2(e,r,n){if(n&&!E7(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 $7(e){return typeof e=="function"?e():e}function VW(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,dataRef:a,events:i,elements:s}=e,{enabled:l=!0,delay:c=0,handleClose:u=null,mouseOnly:d=!1,restMs:h=0,move:f=!0}=r,g=N7(),b=R7(),x=w2(u),w=w2(c),k=w2(n),C=w2(h),_=E.useRef(),T=E.useRef(-1),A=E.useRef(),R=E.useRef(-1),D=E.useRef(!0),N=E.useRef(!1),M=E.useRef(()=>{}),O=E.useRef(!1),F=yl(()=>{var H;const q=(H=a.current.openEvent)==null?void 0:H.type;return q?.includes("mouse")&&q!=="mousedown"});E.useEffect(()=>{if(!l)return;function H(q){let{open:Z}=q;Z||(gi(T),gi(R),D.current=!0,O.current=!1)}return i.on("openchange",H),()=>{i.off("openchange",H)}},[l,i]),E.useEffect(()=>{if(!l||!x.current||!n)return;function H(Z){F()&&o(!1,Z,"hover")}const q=bp(s.floating).documentElement;return q.addEventListener("mouseleave",H),()=>{q.removeEventListener("mouseleave",H)}},[s.floating,n,o,l,x,F]);const L=E.useCallback(function(H,q,Z){q===void 0&&(q=!0),Z===void 0&&(Z="hover");const W=T2(w.current,"close",_.current);W&&!A.current?(gi(T),T.current=window.setTimeout(()=>o(!1,H,Z),W)):q&&(gi(T),o(!1,H,Z))},[w,o]),U=yl(()=>{M.current(),A.current=void 0}),P=yl(()=>{if(N.current){const H=bp(s.floating).body;H.style.pointerEvents="",H.removeAttribute(HW),N.current=!1}}),V=yl(()=>a.current.openEvent?["click","mousedown"].includes(a.current.openEvent.type):!1);E.useEffect(()=>{if(!l)return;function H(K){if(gi(T),D.current=!1,d&&!E7(_.current)||$7(C.current)>0&&!T2(w.current,"open"))return;const j=T2(w.current,"open",_.current);j?T.current=window.setTimeout(()=>{k.current||o(!0,K,"hover")},j):n||o(!0,K,"hover")}function q(K){if(V()){P();return}M.current();const j=bp(s.floating);if(gi(R),O.current=!1,x.current&&a.current.floatingContext){n||gi(T),A.current=x.current({...a.current.floatingContext,tree:g,x:K.clientX,y:K.clientY,onClose(){P(),U(),V()||L(K,!0,"safe-polygon")}});const Y=A.current;j.addEventListener("mousemove",Y),M.current=()=>{j.removeEventListener("mousemove",Y)};return}(_.current!=="touch"||!I0(s.floating,K.relatedTarget))&&L(K)}function Z(K){V()||a.current.floatingContext&&(x.current==null||x.current({...a.current.floatingContext,tree:g,x:K.clientX,y:K.clientY,onClose(){P(),U(),V()||L(K)}})(K))}function W(){gi(T)}function G(K){V()||L(K,!1)}if(Vr(s.domReference)){const K=s.domReference,j=s.floating;return n&&K.addEventListener("mouseleave",Z),f&&K.addEventListener("mousemove",H,{once:!0}),K.addEventListener("mouseenter",H),K.addEventListener("mouseleave",q),j&&(j.addEventListener("mouseleave",Z),j.addEventListener("mouseenter",W),j.addEventListener("mouseleave",G)),()=>{n&&K.removeEventListener("mouseleave",Z),f&&K.removeEventListener("mousemove",H),K.removeEventListener("mouseenter",H),K.removeEventListener("mouseleave",q),j&&(j.removeEventListener("mouseleave",Z),j.removeEventListener("mouseenter",W),j.removeEventListener("mouseleave",G))}}},[s,l,e,d,f,L,U,P,o,n,k,g,w,x,a,V,C]),gl(()=>{var H;if(l&&n&&(H=x.current)!=null&&(H=H.__options)!=null&&H.blockPointerEvents&&F()){N.current=!0;const Z=s.floating;if(Vr(s.domReference)&&Z){var q;const W=bp(s.floating).body;W.setAttribute(HW,"");const G=s.domReference,K=g==null||(q=g.nodesRef.current.find(j=>j.id===b))==null||(q=q.context)==null?void 0:q.elements.floating;return K&&(K.style.pointerEvents=""),W.style.pointerEvents="none",G.style.pointerEvents="auto",Z.style.pointerEvents="auto",()=>{W.style.pointerEvents="",G.style.pointerEvents="",Z.style.pointerEvents=""}}}},[l,n,b,s,g,x,F]),gl(()=>{n||(_.current=void 0,O.current=!1,U(),P())},[n,U,P]),E.useEffect(()=>()=>{U(),gi(T),gi(R),P()},[l,s.domReference,U,P]);const I=E.useMemo(()=>{function H(q){_.current=q.pointerType}return{onPointerDown:H,onPointerEnter:H,onMouseMove(q){const{nativeEvent:Z}=q;function W(){!D.current&&!k.current&&o(!0,Z,"hover")}d&&!E7(_.current)||n||$7(C.current)===0||O.current&&q.movementX**2+q.movementY**2<2||(gi(R),_.current==="touch"?W():(O.current=!0,R.current=window.setTimeout(W,$7(C.current))))}}},[d,o,n,k,C]);return E.useMemo(()=>l?{reference:I}:{},[l,I])}const M7=()=>{},qW=E.createContext({delay:0,initialDelay:0,timeoutMs:0,currentId:null,setCurrentId:M7,setState:M7,isInstantPhase:!1}),bze=()=>E.useContext(qW);function UW(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}),s=E.useRef(null),l=E.useCallback(c=>{i({currentId:c})},[]);return gl(()=>{a.currentId?s.current===null?s.current=a.currentId:a.isInstantPhase||i({isInstantPhase:!0}):(a.isInstantPhase&&i({isInstantPhase:!1}),s.current=null)},[a.currentId,a.isInstantPhase]),y.jsx(qW.Provider,{value:E.useMemo(()=>({...a,setState:i,setCurrentId:l}),[a,l]),children:r})}function WW(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,floatingId:a}=e,{id:i,enabled:s=!0}=r,l=i??a,c=bze(),{currentId:u,setCurrentId:d,initialDelay:h,setState:f,timeoutMs:g}=c;return gl(()=>{s&&u&&(f({delay:{open:1,close:T2(h,"close")}}),u!==l&&o(!1))},[s,l,o,f,u,h]),gl(()=>{function b(){o(!1),f({delay:h,currentId:null})}if(s&&u&&!n&&u===l){if(g){const x=window.setTimeout(b,g);return()=>{clearTimeout(x)}}b()}},[s,n,f,u,l,o,h,g]),gl(()=>{s&&(d===M7||!n||d(l))},[s,n,d,l]),c}const vze={pointerdown:"onPointerDown",mousedown:"onMouseDown",click:"onClick"},xze={pointerdown:"onPointerDownCapture",mousedown:"onMouseDownCapture",click:"onClickCapture"},YW=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 GW(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,elements:a,dataRef:i}=e,{enabled:s=!0,escapeKey:l=!0,outsidePress:c=!0,outsidePressEvent:u="pointerdown",referencePress:d=!1,referencePressEvent:h="pointerdown",ancestorScroll:f=!1,bubbles:g,capture:b}=r,x=N7(),w=yl(typeof c=="function"?c:()=>!1),k=typeof c=="function"?w:c,C=E.useRef(!1),{escapeKey:_,outsidePress:T}=YW(g),{escapeKey:A,outsidePress:R}=YW(b),D=E.useRef(!1),N=yl(P=>{var V;if(!n||!s||!l||P.key!=="Escape"||D.current)return;const I=(V=i.current.floatingContext)==null?void 0:V.nodeId,H=x?x2(x.nodesRef.current,I):[];if(!_&&(P.stopPropagation(),H.length>0)){let q=!0;if(H.forEach(Z=>{var W;if((W=Z.context)!=null&&W.open&&!Z.context.dataRef.current.__escapeKeyBubbles){q=!1;return}}),!q)return}o(!1,bPe(P)?P.nativeEvent:P,"escape-key")}),M=yl(P=>{var V;const I=()=>{var H;N(P),(H=em(P))==null||H.removeEventListener("keydown",I)};(V=em(P))==null||V.addEventListener("keydown",I)}),O=yl(P=>{var V;const I=i.current.insideReactTree;i.current.insideReactTree=!1;const H=C.current;if(C.current=!1,u==="click"&&H||I||typeof k=="function"&&!k(P))return;const q=em(P),Z="["+D7("inert")+"]",W=bp(a.floating).querySelectorAll(Z);let G=Vr(q)?q:null;for(;G&&!dc(G);){const Q=pc(G);if(dc(Q)||!Vr(Q))break;G=Q}if(W.length&&Vr(q)&&!fPe(q)&&!I0(q,a.floating)&&Array.from(W).every(Q=>!I0(G,Q)))return;if(Oa(q)&&U){const Q=dc(q),J=mi(q),ie=/auto|scroll/,ne=Q||ie.test(J.overflowX),re=Q||ie.test(J.overflowY),ge=ne&&q.clientWidth>0&&q.scrollWidth>q.clientWidth,De=re&&q.clientHeight>0&&q.scrollHeight>q.clientHeight,he=J.direction==="rtl",me=De&&(he?P.offsetX<=q.offsetWidth-q.clientWidth:P.offsetX>q.clientWidth),Te=ge&&P.offsetY>q.clientHeight;if(me||Te)return}const K=(V=i.current.floatingContext)==null?void 0:V.nodeId,j=x&&x2(x.nodesRef.current,K).some(Q=>{var J;return _7(P,(J=Q.context)==null?void 0:J.elements.floating)});if(_7(P,a.floating)||_7(P,a.domReference)||j)return;const Y=x?x2(x.nodesRef.current,K):[];if(Y.length>0){let Q=!0;if(Y.forEach(J=>{var ie;if((ie=J.context)!=null&&ie.open&&!J.context.dataRef.current.__outsidePressBubbles){Q=!1;return}}),!Q)return}o(!1,P,"outside-press")}),F=yl(P=>{var V;const I=()=>{var H;O(P),(H=em(P))==null||H.removeEventListener(u,I)};(V=em(P))==null||V.addEventListener(u,I)});E.useEffect(()=>{if(!n||!s)return;i.current.__escapeKeyBubbles=_,i.current.__outsidePressBubbles=T;let P=-1;function V(W){o(!1,W,"ancestor-scroll")}function I(){window.clearTimeout(P),D.current=!0}function H(){P=window.setTimeout(()=>{D.current=!1},f2()?5:0)}const q=bp(a.floating);l&&(q.addEventListener("keydown",A?M:N,A),q.addEventListener("compositionstart",I),q.addEventListener("compositionend",H)),k&&q.addEventListener(u,R?F:O,R);let Z=[];return f&&(Vr(a.domReference)&&(Z=hc(a.domReference)),Vr(a.floating)&&(Z=Z.concat(hc(a.floating))),!Vr(a.reference)&&a.reference&&a.reference.contextElement&&(Z=Z.concat(hc(a.reference.contextElement)))),Z=Z.filter(W=>{var G;return W!==((G=q.defaultView)==null?void 0:G.visualViewport)}),Z.forEach(W=>{W.addEventListener("scroll",V,{passive:!0})}),()=>{l&&(q.removeEventListener("keydown",A?M:N,A),q.removeEventListener("compositionstart",I),q.removeEventListener("compositionend",H)),k&&q.removeEventListener(u,R?F:O,R),Z.forEach(W=>{W.removeEventListener("scroll",V)}),window.clearTimeout(P)}},[i,a,l,k,u,n,o,f,s,_,T,N,A,M,O,R,F]),E.useEffect(()=>{i.current.insideReactTree=!1},[i,k,u]);const L=E.useMemo(()=>({onKeyDown:N,...d&&{[vze[h]]:P=>{o(!1,P.nativeEvent,"reference-press")},...h!=="click"&&{onClick(P){o(!1,P.nativeEvent,"reference-press")}}}}),[N,o,d,h]),U=E.useMemo(()=>({onKeyDown:N,onMouseDown(){C.current=!0},onMouseUp(){C.current=!0},[xze[u]]:()=>{i.current.insideReactTree=!0}}),[N,u,i]);return E.useMemo(()=>s?{reference:L,floating:U}:{},[s,L,U])}function wze(e){const{open:r=!1,onOpenChange:n,elements:o}=e,a=FW(),i=E.useRef({}),[s]=E.useState(()=>mze()),l=R7()!=null,[c,u]=E.useState(o.reference),d=yl((g,b,x)=>{i.current.openEvent=g?b:void 0,s.emit("openchange",{open:g,event:b,reason:x,nested:l}),n?.(g,b,x)}),h=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:s,floatingId:a,refs:h}),[r,d,f,s,a,h])}function A2(e){e===void 0&&(e={});const{nodeId:r}=e,n=wze({...e,elements:{reference:null,floating:null,...e.elements}}),o=e.rootContext||n,a=o.elements,[i,s]=E.useState(null),[l,c]=E.useState(null),u=a?.domReference||i,d=E.useRef(null),h=N7();gl(()=>{u&&(d.current=u)},[u]);const f=ize({...e,elements:{...a,...l&&{reference:l}}}),g=E.useCallback(C=>{const _=Vr(C)?{getBoundingClientRect:()=>C.getBoundingClientRect(),getClientRects:()=>C.getClientRects(),contextElement:C}:C;c(_),f.refs.setReference(_)},[f.refs]),b=E.useCallback(C=>{(Vr(C)||C===null)&&(d.current=C,s(C)),(Vr(f.refs.reference.current)||f.refs.reference.current===null||C!==null&&!Vr(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 gl(()=>{o.dataRef.current.floatingContext=k;const C=h?.nodesRef.current.find(_=>_.id===r);C&&(C.context=k)}),E.useMemo(()=>({...f,context:k,refs:x,elements:w}),[f,x,w,k])}function P7(){return dPe()&&uPe()}function kze(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,events:a,dataRef:i,elements:s}=e,{enabled:l=!0,visibleOnly:c=!0}=r,u=E.useRef(!1),d=E.useRef(-1),h=E.useRef(!0);E.useEffect(()=>{if(!l)return;const g=da(s.domReference);function b(){!n&&Oa(s.domReference)&&s.domReference===dW(bp(s.domReference))&&(u.current=!0)}function x(){h.current=!0}function w(){h.current=!1}return g.addEventListener("blur",b),P7()&&(g.addEventListener("keydown",x,!0),g.addEventListener("pointerdown",w,!0)),()=>{g.removeEventListener("blur",b),P7()&&(g.removeEventListener("keydown",x,!0),g.removeEventListener("pointerdown",w,!0))}},[s.domReference,n,l]),E.useEffect(()=>{if(!l)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,l]),E.useEffect(()=>()=>{gi(d)},[]);const f=E.useMemo(()=>({onMouseLeave(){u.current=!1},onFocus(g){if(u.current)return;const b=em(g.nativeEvent);if(c&&Vr(b)){if(P7()&&!g.relatedTarget){if(!h.current&&!mPe(b))return}else if(!gPe(b))return}o(!0,g.nativeEvent,"focus")},onBlur(g){u.current=!1;const b=g.relatedTarget,x=g.nativeEvent,w=Vr(b)&&b.hasAttribute(D7("focus-guard"))&&b.getAttribute("data-type")==="outside";d.current=window.setTimeout(()=>{var k;const C=dW(s.domReference?s.domReference.ownerDocument:document);!b&&C===s.domReference||I0((k=i.current.floatingContext)==null?void 0:k.refs.floating.current,C)||I0(s.domReference,C)||w||o(!1,x,"focus")})}}),[i,s.domReference,o,c]);return E.useMemo(()=>l?{reference:f}:{},[l,f])}function z7(e,r,n){const o=new Map,a=n==="item";let i=e;if(a&&e){const{[OW]:s,[jW]:l,...c}=e;i=c}return{...n==="floating"&&{tabIndex:-1,[uze]:""},...i,...r.map(s=>{const l=s?s[n]:null;return typeof l=="function"?e?l(e):null:l}).concat(e).reduce((s,l)=>(l&&Object.entries(l).forEach(c=>{let[u,d]=c;if(!(a&&[OW,jW].includes(u)))if(u.indexOf("on")===0){if(o.has(u)||o.set(u,[]),typeof d=="function"){var h;(h=o.get(u))==null||h.push(d),s[u]=function(){for(var f,g=arguments.length,b=new Array(g),x=0;xw(...b)).find(w=>w!==void 0)}}}else s[u]=d}),s),{})}}function XW(e){e===void 0&&(e=[]);const r=e.map(l=>l?.reference),n=e.map(l=>l?.floating),o=e.map(l=>l?.item),a=E.useCallback(l=>z7(l,e,"reference"),r),i=E.useCallback(l=>z7(l,e,"floating"),n),s=E.useCallback(l=>z7(l,e,"item"),o);return E.useMemo(()=>({getReferenceProps:a,getFloatingProps:i,getItemProps:s}),[a,i,s])}const _ze=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);function KW(e,r){var n,o;r===void 0&&(r={});const{open:a,elements:i,floatingId:s}=e,{enabled:l=!0,role:c="dialog"}=r,u=FW(),d=((n=i.domReference)==null?void 0:n.id)||u,h=E.useMemo(()=>{var k;return((k=yPe(i.floating))==null?void 0:k.id)||s},[i.floating,s]),f=(o=_ze.get(c))!=null?o:c,g=R7()!=null,b=E.useMemo(()=>f==="tooltip"||c==="label"?{["aria-"+(c==="label"?"labelledby":"describedby")]:a?h:void 0}:{"aria-expanded":a?"true":"false","aria-haspopup":f==="alertdialog"?"dialog":f,"aria-controls":a?h: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,h,g,a,d,c]),x=E.useMemo(()=>{const k={id:h,...f&&{role:f}};return f==="tooltip"||c==="label"?k:{...k,...f==="menu"&&{"aria-labelledby":d}}},[f,h,d,c]),w=E.useCallback(k=>{let{active:C,selected:_}=k;const T={role:"option",...C&&{id:h+"-fui-option"}};switch(c){case"select":case"combobox":return{...T,"aria-selected":_}}return{}},[h,c]);return E.useMemo(()=>l?{reference:b,floating:x,item:w}:{},[l,b,x,w])}const[Eze,yi]=hi("ScrollArea.Root component was not found in tree");function nm(e,r){const n=io(r);$0(()=>{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 Sze=E.forwardRef((e,r)=>{const{style:n,...o}=e,a=yi(),[i,s]=E.useState(0),[l,c]=E.useState(0),u=!!(i&&l);return nm(a.scrollbarX,()=>{const d=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(d),c(d)}),nm(a.scrollbarY,()=>{const d=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(d),s(d)}),u?y.jsx("div",{...o,ref:r,style:{...n,width:i,height:l}}):null}),Cze=E.forwardRef((e,r)=>{const n=yi(),o=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&o?y.jsx(Sze,{...e,ref:r}):null}),Tze={scrollHideDelay:1e3,type:"hover"},ZW=E.forwardRef((e,r)=>{const{type:n,scrollHideDelay:o,scrollbars:a,getStyles:i,...s}=He("ScrollAreaRoot",Tze,e),[l,c]=E.useState(null),[u,d]=E.useState(null),[h,f]=E.useState(null),[g,b]=E.useState(null),[x,w]=E.useState(null),[k,C]=E.useState(0),[_,T]=E.useState(0),[A,R]=E.useState(!1),[D,N]=E.useState(!1),M=Hr(r,O=>c(O));return y.jsx(Eze,{value:{type:n,scrollHideDelay:o,scrollArea:l,viewport:u,onViewportChange:d,content:h,onContentChange:f,scrollbarX:g,onScrollbarXChange:b,scrollbarXEnabled:A,onScrollbarXEnabledChange:R,scrollbarY:x,onScrollbarYChange:w,scrollbarYEnabled:D,onScrollbarYEnabledChange:N,onCornerWidthChange:C,onCornerHeightChange:T,getStyles:i},children:y.jsx(Re,{...s,ref:M,__vars:{"--sa-corner-width":a!=="xy"?"0px":`${k}px`,"--sa-corner-height":a!=="xy"?"0px":`${_}px`}})})});ZW.displayName="@mantine/core/ScrollAreaRoot";function QW(e,r){const n=e/r;return Number.isNaN(n)?0:n}function R2(e){const r=QW(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,o=(e.scrollbar.size-n)*r;return Math.max(o,18)}function JW(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 Aze(e,[r,n]){return Math.min(n,Math.max(r,e))}function eY(e,r,n="ltr"){const o=R2(r),a=r.scrollbar.paddingStart+r.scrollbar.paddingEnd,i=r.scrollbar.size-a,s=r.content-r.viewport,l=i-o,c=n==="ltr"?[0,s]:[s*-1,0],u=Aze(e,c);return JW([0,s],[0,l])(u)}function Rze(e,r,n,o="ltr"){const a=R2(n),i=a/2,s=r||i,l=a-s,c=n.scrollbar.paddingStart+s,u=n.scrollbar.size-n.scrollbar.paddingEnd-l,d=n.content-n.viewport,h=o==="ltr"?[0,d]:[d*-1,0];return JW([c,u],h)(e)}function tY(e,r){return e>0&&e{e?.(o),(n===!1||!o.defaultPrevented)&&r?.(o)}}const[Nze,rY]=hi("ScrollAreaScrollbar was not found in tree"),nY=E.forwardRef((e,r)=>{const{sizes:n,hasThumb:o,onThumbChange:a,onThumbPointerUp:i,onThumbPointerDown:s,onThumbPositionChange:l,onDragScroll:c,onWheelScroll:u,onResize:d,...h}=e,f=yi(),[g,b]=E.useState(null),x=Hr(r,N=>b(N)),w=E.useRef(null),k=E.useRef(""),{viewport:C}=f,_=n.content-n.viewport,T=io(u),A=io(l),R=Yf(d,10),D=N=>{if(w.current){const M=N.clientX-w.current.left,O=N.clientY-w.current.top;c({x:M,y:O})}};return E.useEffect(()=>{const N=M=>{const O=M.target;g?.contains(O)&&T(M,_)};return document.addEventListener("wheel",N,{passive:!1}),()=>document.removeEventListener("wheel",N,{passive:!1})},[C,g,_,T]),E.useEffect(A,[n,A]),nm(g,R),nm(f.content,R),y.jsx(Nze,{value:{scrollbar:g,hasThumb:o,onThumbChange:io(a),onThumbPointerUp:io(i),onThumbPositionChange:A,onThumbPointerDown:io(s)},children:y.jsx("div",{...h,ref:x,"data-mantine-scrollbar":!0,style:{position:"absolute",...h.style},onPointerDown:xp(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:xp(e.onPointerMove,D),onPointerUp:xp(e.onPointerUp,N=>{const M=N.target;M.hasPointerCapture(N.pointerId)&&(N.preventDefault(),M.releasePointerCapture(N.pointerId))}),onLostPointerCapture:()=>{document.body.style.webkitUserSelect=k.current,w.current=null}})})}),oY=E.forwardRef((e,r)=>{const{sizes:n,onSizesChange:o,style:a,...i}=e,s=yi(),[l,c]=E.useState(),u=E.useRef(null),d=Hr(r,u,s.onScrollbarXChange);return E.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),y.jsx(nY,{"data-orientation":"horizontal",...i,ref:d,sizes:n,style:{...a,"--sa-thumb-width":`${R2(n)}px`},onThumbPointerDown:h=>e.onThumbPointerDown(h.x),onDragScroll:h=>e.onDragScroll(h.x),onWheelScroll:(h,f)=>{if(s.viewport){const g=s.viewport.scrollLeft+h.deltaX;e.onWheelScroll(g),tY(g,f)&&h.preventDefault()}},onResize:()=>{u.current&&s.viewport&&l&&o({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:Nu(l.paddingLeft),paddingEnd:Nu(l.paddingRight)}})}})});oY.displayName="@mantine/core/ScrollAreaScrollbarX";const aY=E.forwardRef((e,r)=>{const{sizes:n,onSizesChange:o,style:a,...i}=e,s=yi(),[l,c]=E.useState(),u=E.useRef(null),d=Hr(r,u,s.onScrollbarYChange);return E.useEffect(()=>{u.current&&c(window.getComputedStyle(u.current))},[]),y.jsx(nY,{...i,"data-orientation":"vertical",ref:d,sizes:n,style:{"--sa-thumb-height":`${R2(n)}px`,...a},onThumbPointerDown:h=>e.onThumbPointerDown(h.y),onDragScroll:h=>e.onDragScroll(h.y),onWheelScroll:(h,f)=>{if(s.viewport){const g=s.viewport.scrollTop+h.deltaY;e.onWheelScroll(g),tY(g,f)&&h.preventDefault()}},onResize:()=>{u.current&&s.viewport&&l&&o({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:Nu(l.paddingTop),paddingEnd:Nu(l.paddingBottom)}})}})});aY.displayName="@mantine/core/ScrollAreaScrollbarY";const N2=E.forwardRef((e,r)=>{const{orientation:n="vertical",...o}=e,{dir:a}=Ru(),i=yi(),s=E.useRef(null),l=E.useRef(0),[c,u]=E.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=QW(c.viewport,c.content),h={...o,sizes:c,onSizesChange:u,hasThumb:d>0&&d<1,onThumbChange:g=>{s.current=g},onThumbPointerUp:()=>{l.current=0},onThumbPointerDown:g=>{l.current=g}},f=(g,b)=>Rze(g,l.current,c,b);return n==="horizontal"?y.jsx(oY,{...h,ref:r,onThumbPositionChange:()=>{if(i.viewport&&s.current){const g=i.viewport.scrollLeft,b=eY(g,c,a);s.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(aY,{...h,ref:r,onThumbPositionChange:()=>{if(i.viewport&&s.current){const g=i.viewport.scrollTop,b=eY(g,c);c.scrollbar.size===0?s.current.style.setProperty("--thumb-opacity","0"):s.current.style.setProperty("--thumb-opacity","1"),s.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});N2.displayName="@mantine/core/ScrollAreaScrollbarVisible";const I7=E.forwardRef((e,r)=>{const n=yi(),{forceMount:o,...a}=e,[i,s]=E.useState(!1),l=e.orientation==="horizontal",c=Yf(()=>{if(n.viewport){const u=n.viewport.offsetWidth{const{forceMount:n,...o}=e,a=yi(),[i,s]=E.useState(!1);return E.useEffect(()=>{const{scrollArea:l}=a;let c=0;if(l){const u=()=>{window.clearTimeout(c),s(!0)},d=()=>{c=window.setTimeout(()=>s(!1),a.scrollHideDelay)};return l.addEventListener("pointerenter",u),l.addEventListener("pointerleave",d),()=>{window.clearTimeout(c),l.removeEventListener("pointerenter",u),l.removeEventListener("pointerleave",d)}}},[a.scrollArea,a.scrollHideDelay]),n||i?y.jsx(I7,{"data-state":i?"visible":"hidden",...o,ref:r}):null});iY.displayName="@mantine/core/ScrollAreaScrollbarHover";const Dze=E.forwardRef((e,r)=>{const{forceMount:n,...o}=e,a=yi(),i=e.orientation==="horizontal",[s,l]=E.useState("hidden"),c=Yf(()=>l("idle"),100);return E.useEffect(()=>{if(s==="idle"){const u=window.setTimeout(()=>l("hidden"),a.scrollHideDelay);return()=>window.clearTimeout(u)}},[s,a.scrollHideDelay]),E.useEffect(()=>{const{viewport:u}=a,d=i?"scrollLeft":"scrollTop";if(u){let h=u[d];const f=()=>{const g=u[d];h!==g&&(l("scrolling"),c()),h=g};return u.addEventListener("scroll",f),()=>u.removeEventListener("scroll",f)}},[a.viewport,i,c]),n||s!=="hidden"?y.jsx(N2,{"data-state":s==="hidden"?"hidden":"visible",...o,ref:r,onPointerEnter:xp(e.onPointerEnter,()=>l("interacting")),onPointerLeave:xp(e.onPointerLeave,()=>l("idle"))}):null}),O7=E.forwardRef((e,r)=>{const{forceMount:n,...o}=e,a=yi(),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:s}=a,l=e.orientation==="horizontal";return E.useEffect(()=>(l?i(!0):s(!0),()=>{l?i(!1):s(!1)}),[l,i,s]),a.type==="hover"?y.jsx(iY,{...o,ref:r,forceMount:n}):a.type==="scroll"?y.jsx(Dze,{...o,ref:r,forceMount:n}):a.type==="auto"?y.jsx(I7,{...o,ref:r,forceMount:n}):a.type==="always"?y.jsx(N2,{...o,ref:r}):null});O7.displayName="@mantine/core/ScrollAreaScrollbar";function $ze(e,r=()=>{}){let n={left:e.scrollLeft,top:e.scrollTop},o=0;return(function a(){const i={left:e.scrollLeft,top:e.scrollTop},s=n.left!==i.left,l=n.top!==i.top;(s||l)&&r(),n=i,o=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(o)}const sY=E.forwardRef((e,r)=>{const{style:n,...o}=e,a=yi(),i=rY(),{onThumbPositionChange:s}=i,l=Hr(r,d=>i.onThumbChange(d)),c=E.useRef(void 0),u=Yf(()=>{c.current&&(c.current(),c.current=void 0)},100);return E.useEffect(()=>{const{viewport:d}=a;if(d){const h=()=>{if(u(),!c.current){const f=$ze(d,s);c.current=f,s()}};return s(),d.addEventListener("scroll",h),()=>d.removeEventListener("scroll",h)}},[a.viewport,u,s]),y.jsx("div",{"data-state":i.hasThumb?"visible":"hidden",...o,ref:l,style:{width:"var(--sa-thumb-width)",height:"var(--sa-thumb-height)",...n},onPointerDownCapture:xp(e.onPointerDownCapture,d=>{const h=d.target.getBoundingClientRect(),f=d.clientX-h.left,g=d.clientY-h.top;i.onThumbPointerDown({x:f,y:g})}),onPointerUp:xp(e.onPointerUp,i.onThumbPointerUp)})});sY.displayName="@mantine/core/ScrollAreaThumb";const j7=E.forwardRef((e,r)=>{const{forceMount:n,...o}=e,a=rY();return n||a.hasThumb?y.jsx(sY,{ref:r,...o}):null});j7.displayName="@mantine/core/ScrollAreaThumb";const lY=E.forwardRef(({children:e,style:r,...n},o)=>{const a=yi(),i=Hr(o,a.onViewportChange);return y.jsx(Re,{...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})})});lY.displayName="@mantine/core/ScrollAreaViewport";var L7={root:"m_d57069b5",content:"m_b1336c6",viewport:"m_c0783ff9",viewportInner:"m_f8f631dd",scrollbar:"m_c44ba933",thumb:"m_d8b5e363",corner:"m_21657268"};const cY={scrollHideDelay:1e3,type:"hover",scrollbars:"xy"},Mze=(e,{scrollbarSize:r,overscrollBehavior:n})=>({root:{"--scrollarea-scrollbar-size":Me(r),"--scrollarea-over-scroll-behavior":n}}),bl=ht((e,r)=>{const n=He("ScrollArea",cY,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,scrollbarSize:c,vars:u,type:d,scrollHideDelay:h,viewportProps:f,viewportRef:g,onScrollPositionChange:b,children:x,offsetScrollbars:w,scrollbars:k,onBottomReached:C,onTopReached:_,overscrollBehavior:T,attributes:A,...R}=n,[D,N]=E.useState(!1),[M,O]=E.useState(!1),[F,L]=E.useState(!1),U=Dt({name:"ScrollArea",props:n,classes:L7,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:A,vars:u,varsResolver:Mze}),P=E.useRef(null),V=IW([g,P]);return E.useEffect(()=>{if(!P.current||w!=="present")return;const I=P.current,H=new ResizeObserver(()=>{const{scrollHeight:q,clientHeight:Z,scrollWidth:W,clientWidth:G}=I;O(q>Z),L(W>G)});return H.observe(I),()=>H.disconnect()},[P,w]),y.jsxs(ZW,{getStyles:U,type:d==="never"?"always":d,scrollHideDelay:h,ref:r,scrollbars:k,...U("root"),...R,children:[y.jsx(lY,{...f,...U("viewport",{style:f?.style}),ref:V,"data-offset-scrollbars":w===!0?"xy":w||void 0,"data-scrollbars":k||void 0,"data-horizontal-hidden":w==="present"&&!F?"true":void 0,"data-vertical-hidden":w==="present"&&!M?"true":void 0,onScroll:I=>{f?.onScroll?.(I),b?.({x:I.currentTarget.scrollLeft,y:I.currentTarget.scrollTop});const{scrollTop:H,scrollHeight:q,clientHeight:Z}=I.currentTarget;H-(q-Z)>=-.6&&C?.(),H===0&&_?.()},children:x}),(k==="xy"||k==="x")&&y.jsx(O7,{...U("scrollbar"),orientation:"horizontal","data-hidden":d==="never"||w==="present"&&!F?!0:void 0,forceMount:!0,onMouseEnter:()=>N(!0),onMouseLeave:()=>N(!1),children:y.jsx(j7,{...U("thumb")})}),(k==="xy"||k==="y")&&y.jsx(O7,{...U("scrollbar"),orientation:"vertical","data-hidden":d==="never"||w==="present"&&!M?!0:void 0,forceMount:!0,onMouseEnter:()=>N(!0),onMouseLeave:()=>N(!1),children:y.jsx(j7,{...U("thumb")})}),y.jsx(Cze,{...U("corner"),"data-hovered":D||void 0,"data-hidden":d==="never"||void 0})]})});bl.displayName="@mantine/core/ScrollArea";const pa=ht((e,r)=>{const{children:n,classNames:o,styles:a,scrollbarSize:i,scrollHideDelay:s,type:l,dir:c,offsetScrollbars:u,viewportRef:d,onScrollPositionChange:h,unstyled:f,variant:g,viewportProps:b,scrollbars:x,style:w,vars:k,onBottomReached:C,onTopReached:_,onOverflowChange:T,...A}=He("ScrollAreaAutosize",cY,e),R=E.useRef(null),D=IW([d,R]),[N,M]=E.useState(!1),O=E.useRef(!1);return E.useEffect(()=>{if(!T)return;const F=R.current;if(!F)return;const L=()=>{const P=F.scrollHeight>F.clientHeight;P!==N&&(O.current?T?.(P):(O.current=!0,P&&T?.(!0)),M(P))};L();const U=new ResizeObserver(L);return U.observe(F),()=>U.disconnect()},[T,N]),y.jsx(Re,{...A,ref:r,style:[{display:"flex",overflow:"hidden"},w],children:y.jsx(Re,{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(bl,{classNames:o,styles:a,scrollHideDelay:s,scrollbarSize:i,type:l,dir:c,offsetScrollbars:u,viewportRef:D,onScrollPositionChange:h,unstyled:f,variant:g,viewportProps:b,vars:k,scrollbars:x,onBottomReached:C,onTopReached:_,"data-autosize":"true",children:n})})})});bl.classes=L7,pa.displayName="@mantine/core/ScrollAreaAutosize",pa.classes=L7,bl.Autosize=pa;var uY={root:"m_87cf2631"};const Pze={__staticSelector:"UnstyledButton"},Er=so((e,r)=>{const n=He("UnstyledButton",Pze,e),{className:o,component:a="button",__staticSelector:i,unstyled:s,classNames:l,styles:c,style:u,attributes:d,...h}=n,f=Dt({name:i,props:n,classes:uY,className:o,style:u,classNames:l,styles:c,unstyled:s,attributes:d});return y.jsx(Re,{...f("root",{focusable:!0}),component:a,ref:r,type:a==="button"?"button":void 0,...h})});Er.classes=uY,Er.displayName="@mantine/core/UnstyledButton";var dY={root:"m_515a97f8"};const D2=ht((e,r)=>{const n=He("VisuallyHidden",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,attributes:u,...d}=n,h=Dt({name:"VisuallyHidden",classes:dY,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:u});return y.jsx(Re,{component:"span",ref:r,...h("root"),...d})});D2.classes=dY,D2.displayName="@mantine/core/VisuallyHidden";var pY={root:"m_1b7284a3"};const zze=(e,{radius:r,shadow:n})=>({root:{"--paper-radius":r===void 0?void 0:Pn(r),"--paper-shadow":mU(n)}}),om=so((e,r)=>{const n=He("Paper",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,withBorder:c,vars:u,radius:d,shadow:h,variant:f,mod:g,attributes:b,...x}=n,w=Dt({name:"Paper",props:n,classes:pY,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:b,vars:u,varsResolver:zze});return y.jsx(Re,{ref:r,mod:[{"data-with-border":c},g],...w("root"),variant:f,...x})});om.classes=pY,om.displayName="@mantine/core/Paper";function hY(e,r,n,o){return e==="center"||o==="center"?{top:r}:e==="end"?{bottom:n}:e==="start"?{top:n}:{}}function fY(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 Ize={bottom:"borderTopLeftRadius",left:"borderTopRightRadius",right:"borderBottomLeftRadius",top:"borderBottomRightRadius"};function Oze({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:a,arrowX:i,arrowY:s,dir:l}){const[c,u="center"]=e.split("-"),d={width:r,height:r,transform:"rotate(45deg)",position:"absolute",[Ize[c]]:o},h=-r/2;return c==="left"?{...d,...hY(u,s,n,a),right:h,borderLeftColor:"transparent",borderBottomColor:"transparent",clipPath:"polygon(100% 0, 0 0, 100% 100%)"}:c==="right"?{...d,...hY(u,s,n,a),left:h,borderRightColor:"transparent",borderTopColor:"transparent",clipPath:"polygon(0 100%, 0 0, 100% 100%)"}:c==="top"?{...d,...fY(u,i,n,a,l),bottom:h,borderTopColor:"transparent",borderLeftColor:"transparent",clipPath:"polygon(0 100%, 100% 100%, 100% 0)"}:c==="bottom"?{...d,...fY(u,i,n,a,l),top:h,borderBottomColor:"transparent",borderRightColor:"transparent",clipPath:"polygon(0 100%, 0 0, 100% 0)"}:{}}const $2=E.forwardRef(({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:a,visible:i,arrowX:s,arrowY:l,style:c,...u},d)=>{const{dir:h}=Ru();return i?y.jsx("div",{...u,ref:d,style:{...c,...Oze({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:a,dir:h,arrowX:s,arrowY:l})}}):null});$2.displayName="@mantine/core/FloatingArrow";function mY(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 gY={root:"m_9814e45f"};const jze={zIndex:J3("modal")},Lze=(e,{gradient:r,color:n,backgroundOpacity:o,blur:a,radius:i,zIndex:s})=>({root:{"--overlay-bg":r||(n!==void 0||o!==void 0)&&hl(n||"#000",o??.6)||void 0,"--overlay-filter":a?`blur(${Me(a)})`:void 0,"--overlay-radius":i===void 0?void 0:Pn(i),"--overlay-z-index":s?.toString()}}),B7=so((e,r)=>{const n=He("Overlay",jze,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,fixed:u,center:d,children:h,radius:f,zIndex:g,gradient:b,blur:x,color:w,backgroundOpacity:k,mod:C,attributes:_,...T}=n,A=Dt({name:"Overlay",props:n,classes:gY,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:_,vars:c,varsResolver:Lze});return y.jsx(Re,{ref:r,...A("root"),mod:[{center:d,fixed:u},C],...T,children:h})});B7.classes=gY,B7.displayName="@mantine/core/Overlay";function F7(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 Bze({target:e,reuseTargetNode:r,...n}){if(e)return typeof e=="string"?document.querySelector(e)||F7(n):e;if(r){const o=document.querySelector("[data-mantine-shared-portal-node]");if(o)return o;const a=F7(n);return a.setAttribute("data-mantine-shared-portal-node","true"),document.body.appendChild(a),a}return F7(n)}const Fze={reuseTargetNode:!0},j0=ht((e,r)=>{const{children:n,target:o,reuseTargetNode:a,...i}=He("Portal",Fze,e),[s,l]=E.useState(!1),c=E.useRef(null);return $0(()=>(l(!0),c.current=Bze({target:o,reuseTargetNode:a,...i}),G9(r,c.current),!o&&!a&&c.current&&document.body.appendChild(c.current),()=>{!o&&!a&&c.current&&document.body.removeChild(c.current)}),[o]),!s||!c.current?null:Ki.createPortal(y.jsx(y.Fragment,{children:n}),c.current)});j0.displayName="@mantine/core/Portal";const am=ht(({withinPortal:e=!0,children:r,...n},o)=>i2()==="test"||!e?y.jsx(y.Fragment,{children:r}):y.jsx(j0,{ref:o,...n,children:r}));am.displayName="@mantine/core/OptionalPortal";const L0=e=>({in:{opacity:1,transform:"scale(1)"},out:{opacity:0,transform:`scale(.9) translateY(${e==="bottom"?10:-10}px)`},transitionProperty:"transform, opacity"}),M2={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:{...L0("bottom"),common:{transformOrigin:"center center"}},"pop-bottom-left":{...L0("bottom"),common:{transformOrigin:"bottom left"}},"pop-bottom-right":{...L0("bottom"),common:{transformOrigin:"bottom right"}},"pop-top-left":{...L0("top"),common:{transformOrigin:"top left"}},"pop-top-right":{...L0("top"),common:{transformOrigin:"top right"}}},yY={entering:"in",entered:"in",exiting:"out",exited:"out","pre-exiting":"out","pre-entering":"out"};function Hze({transition:e,state:r,duration:n,timingFunction:o}){const a={WebkitBackfaceVisibility:"hidden",transitionDuration:`${n}ms`,transitionTimingFunction:o};return typeof e=="string"?e in M2?{transitionProperty:M2[e].transitionProperty,...a,...M2[e].common,...M2[e][yY[r]]}:{}:{transitionProperty:e.transitionProperty,...a,...e.common,...e[yY[r]]}}function Vze({duration:e,exitDuration:r,timingFunction:n,mounted:o,onEnter:a,onExit:i,onEntered:s,onExited:l,enterDelay:c,exitDelay:u}){const d=vo(),h=TU(),f=d.respectReducedMotion?h:!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 A=D=>{T();const N=D?a:i,M=D?s:l,O=f?0:D?e:r;b(O),O===0?(typeof N=="function"&&N(),typeof M=="function"&&M(),w(D?"entered":"exited")):_.current=requestAnimationFrame(()=>{Zz.flushSync(()=>{w(D?"pre-entering":"pre-exiting")}),_.current=requestAnimationFrame(()=>{typeof N=="function"&&N(),w(D?"entering":"exiting"),k.current=window.setTimeout(()=>{typeof M=="function"&&M(),w(D?"entered":"exited")},O)})})},R=D=>{if(T(),typeof(D?c:u)!="number"){A(D);return}C.current=window.setTimeout(()=>{A(D)},D?c:u)};return gp(()=>{R(o)},[o]),E.useEffect(()=>()=>{T()},[]),{transitionDuration:g,transitionStatus:x,transitionTimingFunction:n||"ease"}}function Du({keepMounted:e,transition:r="fade",duration:n=250,exitDuration:o=n,mounted:a,children:i,timingFunction:s="ease",onExit:l,onEntered:c,onEnter:u,onExited:d,enterDelay:h,exitDelay:f}){const g=i2(),{transitionDuration:b,transitionStatus:x,transitionTimingFunction:w}=Vze({mounted:a,exitDuration:o,duration:n,timingFunction:s,onExit:l,onEntered:c,onEnter:u,onExited:d,enterDelay:h,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(Hze({transition:r,duration:b,state:x,timingFunction:w}))})}Du.displayName="@mantine/core/Transition";const[qze,bY]=hi("Popover component was not found in the tree");function P2({children:e,active:r=!0,refProp:n="ref",innerRef:o}){const a=_U(r),i=Hr(a,o);return ps(e)?E.cloneElement(e,{[n]:i}):e}function vY(e){return y.jsx(D2,{tabIndex:-1,"data-autofocus":!0,...e})}P2.displayName="@mantine/core/FocusTrap",vY.displayName="@mantine/core/FocusTrapInitialFocus",P2.InitialFocus=vY;var xY={dropdown:"m_38a85659",arrow:"m_a31dc6c1",overlay:"m_3d7bc908"};const fc=ht((e,r)=>{const n=He("PopoverDropdown",null,e),{className:o,style:a,vars:i,children:s,onKeyDownCapture:l,variant:c,classNames:u,styles:d,...h}=n,f=bY(),g=QDe({opened:f.opened,shouldReturnFocus:f.returnFocus}),b=f.withRoles?{"aria-labelledby":f.getTargetId(),id:f.getDropdownId(),role:"dialog",tabIndex:-1}:{},x=Hr(r,f.floating);return f.disabled?null:y.jsx(am,{...f.portalProps,withinPortal:f.withinPortal,children:y.jsx(Du,{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(P2,{active:f.trapFocus&&f.opened,innerRef:x,children:y.jsxs(Re,{...b,...h,variant:c,onKeyDownCapture:HDe(()=>{f.onClose?.(),f.onDismiss?.()},{active:f.closeOnEscape,onTrigger:g,onKeyDown:l}),"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:Me(f.width),...f.referenceHidden?{display:"none"}:null},f.resolvedStyles.dropdown,d?.dropdown,a]}),children:[s,y.jsx($2,{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})})]})})})})});fc.classes=xY,fc.displayName="@mantine/core/PopoverDropdown";const Uze={refProp:"ref",popupType:"dialog"},$u=ht((e,r)=>{const{children:n,refProp:o,popupType:a,...i}=He("PopoverTarget",Uze,e);if(!ps(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 s=i,l=bY(),c=Hr(l.reference,r2(n),r),u=l.withRoles?{"aria-haspopup":a,"aria-expanded":l.opened,"aria-controls":l.getDropdownId(),id:l.getTargetId()}:{};return E.cloneElement(n,{...s,...u,...l.targetProps,className:hs(l.targetProps.className,s.className,n.props.className),[o]:c,...l.controlled?null:{onClick:()=>{l.onToggle(),n.props.onClick?.()}}})});$u.displayName="@mantine/core/PopoverTarget";function Wze(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 Yze(e,r,n){const o=Wze(e.middlewares),a=[MW(e.offset),cze()];return e.dropdownVisible&&n!=="test"&&e.preventPositionChangeWhenVisible&&(o.flip=!1),o.shift&&a.push(A7(typeof o.shift=="boolean"?{limiter:PW(),padding:5}:{limiter:PW(),padding:5,...o.shift})),o.flip&&a.push(typeof o.flip=="boolean"?C2():C2(o.flip)),o.inline&&a.push(typeof o.inline=="boolean"?O0():O0(o.inline)),a.push(zW({element:e.arrowRef,padding:e.arrowOffset})),(o.size||e.width==="target")&&a.push(lze({...typeof o.size=="boolean"?{}:o.size,apply({rects:i,availableWidth:s,availableHeight:l,...c}){const u=r().refs.floating.current?.style??{};o.size&&(typeof o.size=="object"&&o.size.apply?o.size.apply({rects:i,availableWidth:s,availableHeight:l,...c}):Object.assign(u,{maxWidth:`${s}px`,maxHeight:`${l}px`})),e.width==="target"&&Object.assign(u,{width:`${i.reference.width}px`})}})),a}function Gze(e){const r=i2(),[n,o]=uc({value:e.opened,defaultValue:e.defaultOpened,finalValue:!1,onChange:e.onChange}),a=E.useRef(n),i=()=>{n&&!e.disabled&&o(!1)},s=()=>{e.disabled||o(!n)},l=A2({strategy:e.strategy,placement:e.preventPositionChangeWhenVisible?e.positionRef.current:e.position,middleware:Yze(e,()=>l,r),whileElementsMounted:e.keepMounted?void 0:_2});return E.useEffect(()=>{if(!(!l.refs.reference.current||!l.refs.floating.current)&&n)return _2(l.refs.reference.current,l.refs.floating.current,l.update)},[n,l.update]),gp(()=>{e.onPositionChange?.(l.placement),e.positionRef.current=l.placement},[l.placement,e.preventPositionChangeWhenVisible]),gp(()=>{n!==a.current&&(n?e.onOpen?.():e.onClose?.()),a.current=n},[n,e.onClose,e.onOpen]),gp(()=>{let c=-1;return n&&(c=window.setTimeout(()=>e.setDropdownVisible(!0),4)),()=>{window.clearTimeout(c)}},[n,e.position]),{floating:l,controlled:typeof e.opened=="boolean",opened:n,onClose:i,onToggle:s}}const Xze={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:J3("popover"),__staticSelector:"Popover",width:"max-content"},Kze=(e,{radius:r,shadow:n})=>({dropdown:{"--popover-radius":r===void 0?void 0:Pn(r),"--popover-shadow":mU(n)}});function Rr(e){const r=He("Popover",Xze,e),{children:n,position:o,offset:a,onPositionChange:i,positionDependencies:s,opened:l,transitionProps:c,onExitTransitionEnd:u,onEnterTransitionEnd:d,width:h,middlewares:f,withArrow:g,arrowSize:b,arrowOffset:x,arrowRadius:w,arrowPosition:k,unstyled:C,classNames:_,styles:T,closeOnClickOutside:A,withinPortal:R,portalProps:D,closeOnEscape:N,clickOutsideEvents:M,trapFocus:O,onClose:F,onDismiss:L,onOpen:U,onChange:P,zIndex:V,radius:I,shadow:H,id:q,defaultOpened:Z,__staticSelector:W,withRoles:G,disabled:K,returnFocus:j,variant:Y,keepMounted:Q,vars:J,floatingStrategy:ie,withOverlay:ne,overlayProps:re,hideDetached:ge,attributes:De,preventPositionChangeWhenVisible:he,...me}=r,Te=Dt({name:W,props:r,classes:xY,classNames:_,styles:T,unstyled:C,attributes:De,rootSelector:"dropdown",vars:J,varsResolver:Kze}),{resolvedStyles:Ie}=s7({classNames:_,styles:T,props:r}),[Ze,rt]=E.useState(l??Z??!1),Rt=E.useRef(o),Qe=E.useRef(null),[Pt,Ke]=E.useState(null),[Ge,ct]=E.useState(null),{dir:ut}=Ru(),Ir=i2(),Ee=fi(q),Se=Gze({middlewares:f,width:h,position:mY(ut,o),offset:typeof a=="number"?a+(g?b/2:0):a,arrowRef:Qe,arrowOffset:x,onPositionChange:i,positionDependencies:s,opened:l,defaultOpened:Z,onChange:P,onOpen:U,onClose:F,onDismiss:L,strategy:ie,dropdownVisible:Ze,setDropdownVisible:rt,positionRef:Rt,disabled:K,preventPositionChangeWhenVisible:he,keepMounted:Q});yU(()=>{A&&(Se.onClose(),L?.())},M,[Pt,Ge]);const it=E.useCallback(It=>{Ke(It),Se.floating.refs.setReference(It)},[Se.floating.refs.setReference]),xt=E.useCallback(It=>{ct(It),Se.floating.refs.setFloating(It)},[Se.floating.refs.setFloating]),zt=E.useCallback(()=>{c?.onExited?.(),u?.(),rt(!1),he||(Rt.current=o)},[c?.onExited,u,he,o]),Fr=E.useCallback(()=>{c?.onEntered?.(),d?.()},[c?.onEntered,d]);return y.jsxs(qze,{value:{returnFocus:j,disabled:K,controlled:Se.controlled,reference:it,floating:xt,x:Se.floating.x,y:Se.floating.y,arrowX:Se.floating?.middlewareData?.arrow?.x,arrowY:Se.floating?.middlewareData?.arrow?.y,opened:Se.opened,arrowRef:Qe,transitionProps:{...c,onExited:zt,onEntered:Fr},width:h,withArrow:g,arrowSize:b,arrowOffset:x,arrowRadius:w,arrowPosition:k,placement:Se.floating.placement,trapFocus:O,withinPortal:R,portalProps:D,zIndex:V,radius:I,shadow:H,closeOnEscape:N,onDismiss:L,onClose:Se.onClose,onToggle:Se.onToggle,getTargetId:()=>`${Ee}-target`,getDropdownId:()=>`${Ee}-dropdown`,withRoles:G,targetProps:me,__staticSelector:W,classNames:_,styles:T,unstyled:C,variant:Y,keepMounted:Q,getStyles:Te,resolvedStyles:Ie,floatingStrategy:ie,referenceHidden:ge&&Ir!=="test"?Se.floating.middlewareData.hide?.referenceHidden:!1},children:[n,ne&&y.jsx(Du,{transition:"fade",mounted:Se.opened,duration:c?.duration||250,exitDuration:c?.exitDuration||250,children:It=>y.jsx(am,{withinPortal:R,children:y.jsx(B7,{...re,...Te("overlay",{className:re?.className,style:[It,re?.style]})})})})]})}Rr.Target=$u,Rr.Dropdown=fc,Rr.displayName="@mantine/core/Popover",Rr.extend=e=>e;var bs={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 wY=E.forwardRef(({className:e,...r},n)=>y.jsxs(Re,{component:"span",className:hs(bs.barsLoader,e),...r,ref:n,children:[y.jsx("span",{className:bs.bar}),y.jsx("span",{className:bs.bar}),y.jsx("span",{className:bs.bar})]}));wY.displayName="@mantine/core/Bars";const kY=E.forwardRef(({className:e,...r},n)=>y.jsxs(Re,{component:"span",className:hs(bs.dotsLoader,e),...r,ref:n,children:[y.jsx("span",{className:bs.dot}),y.jsx("span",{className:bs.dot}),y.jsx("span",{className:bs.dot})]}));kY.displayName="@mantine/core/Dots";const _Y=E.forwardRef(({className:e,...r},n)=>y.jsx(Re,{component:"span",className:hs(bs.ovalLoader,e),...r,ref:n}));_Y.displayName="@mantine/core/Oval";const EY={bars:wY,oval:_Y,dots:kY},Zze={loaders:EY,type:"oval"},Qze=(e,{size:r,color:n})=>({root:{"--loader-size":kr(r,"loader-size"),"--loader-color":n?Ia(n,e):void 0}}),im=ht((e,r)=>{const n=He("Loader",Zze,e),{size:o,color:a,type:i,vars:s,className:l,style:c,classNames:u,styles:d,unstyled:h,loaders:f,variant:g,children:b,attributes:x,...w}=n,k=Dt({name:"Loader",props:n,classes:bs,className:l,style:c,classNames:u,styles:d,unstyled:h,attributes:x,vars:s,varsResolver:Qze});return b?y.jsx(Re,{...k("root"),ref:r,...w,children:b}):y.jsx(Re,{...k("root"),ref:r,component:f[i],variant:g,size:o,...w})});im.defaultLoaders=EY,im.classes=bs,im.displayName="@mantine/core/Loader";var sm={root:"m_8d3f4000",icon:"m_8d3afb97",loader:"m_302b9fb1",group:"m_1a0f1b21",groupSection:"m_437b6484"};const SY={orientation:"horizontal"},Jze=(e,{borderWidth:r})=>({group:{"--ai-border-width":Me(r)}}),z2=ht((e,r)=>{const n=He("ActionIconGroup",SY,e),{className:o,style:a,classNames:i,styles:s,unstyled:l,orientation:c,vars:u,borderWidth:d,variant:h,mod:f,attributes:g,...b}=He("ActionIconGroup",SY,e),x=Dt({name:"ActionIconGroup",props:n,classes:sm,className:o,style:a,classNames:i,styles:s,unstyled:l,attributes:g,vars:u,varsResolver:Jze,rootSelector:"group"});return y.jsx(Re,{...x("group"),ref:r,variant:h,mod:[{"data-orientation":c},f],role:"group",...b})});z2.classes=sm,z2.displayName="@mantine/core/ActionIconGroup";const eIe=(e,{radius:r,color:n,gradient:o,variant:a,autoContrast:i,size:s})=>{const l=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:i});return{groupSection:{"--section-height":kr(s,"section-height"),"--section-padding-x":kr(s,"section-padding-x"),"--section-fz":Io(s),"--section-radius":r===void 0?void 0:Pn(r),"--section-bg":n||a?l.background:void 0,"--section-color":l.color,"--section-bd":n||a?l.border:void 0}}},H7=ht((e,r)=>{const n=He("ActionIconGroupSection",null,e),{className:o,style:a,classNames:i,styles:s,unstyled:l,vars:c,variant:u,gradient:d,radius:h,autoContrast:f,attributes:g,...b}=n,x=Dt({name:"ActionIconGroupSection",props:n,classes:sm,className:o,style:a,classNames:i,styles:s,unstyled:l,attributes:g,vars:c,varsResolver:eIe,rootSelector:"groupSection"});return y.jsx(Re,{...x("groupSection"),ref:r,variant:u,...b})});H7.classes=sm,H7.displayName="@mantine/core/ActionIconGroupSection";const tIe=(e,{size:r,radius:n,variant:o,gradient:a,color:i,autoContrast:s})=>{const l=e.variantColorResolver({color:i||e.primaryColor,theme:e,gradient:a,variant:o||"filled",autoContrast:s});return{root:{"--ai-size":kr(r,"ai-size"),"--ai-radius":n===void 0?void 0:Pn(n),"--ai-bg":i||o?l.background:void 0,"--ai-hover":i||o?l.hover:void 0,"--ai-hover-color":i||o?l.hoverColor:void 0,"--ai-color":l.color,"--ai-bd":i||o?l.border:void 0}}},br=so((e,r)=>{const n=He("ActionIcon",null,e),{className:o,unstyled:a,variant:i,classNames:s,styles:l,style:c,loading:u,loaderProps:d,size:h,color:f,radius:g,__staticSelector:b,gradient:x,vars:w,children:k,disabled:C,"data-disabled":_,autoContrast:T,mod:A,attributes:R,...D}=n,N=Dt({name:["ActionIcon",b],props:n,className:o,style:c,classes:sm,classNames:s,styles:l,unstyled:a,attributes:R,vars:w,varsResolver:tIe});return y.jsxs(Er,{...N("root",{active:!C&&!u&&!_}),...D,unstyled:a,variant:i,size:h,disabled:C||u,ref:r,mod:[{loading:u,disabled:C||_},A],children:[typeof u=="boolean"&&y.jsx(Du,{mounted:u,transition:"slide-down",duration:150,children:M=>y.jsx(Re,{component:"span",...N("loader",{style:M}),"aria-hidden":!0,children:y.jsx(im,{color:"var(--ai-color)",size:"calc(var(--ai-size) * 0.55)",...d})})}),y.jsx(Re,{component:"span",mod:{loading:u},...N("icon"),children:k})]})});br.classes=sm,br.displayName="@mantine/core/ActionIcon",br.Group=z2,br.GroupSection=H7;const CY=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"})}));CY.displayName="@mantine/core/CloseIcon";var TY={root:"m_86a44da5","root--subtle":"m_220c80f2"};const rIe={variant:"subtle"},nIe=(e,{size:r,radius:n,iconSize:o})=>({root:{"--cb-size":kr(r,"cb-size"),"--cb-radius":n===void 0?void 0:Pn(n),"--cb-icon-size":Me(o)}}),wp=so((e,r)=>{const n=He("CloseButton",rIe,e),{iconSize:o,children:a,vars:i,radius:s,className:l,classNames:c,style:u,styles:d,unstyled:h,"data-disabled":f,disabled:g,variant:b,icon:x,mod:w,attributes:k,__staticSelector:C,..._}=n,T=Dt({name:C||"CloseButton",props:n,className:l,style:u,classes:TY,classNames:c,styles:d,unstyled:h,attributes:k,vars:i,varsResolver:nIe});return y.jsxs(Er,{ref:r,..._,unstyled:h,variant:b,disabled:g,mod:[{disabled:g||f},w],...T("root",{variant:b,active:!g&&!f}),children:[x||y.jsx(CY,{}),a]})});wp.classes=TY,wp.displayName="@mantine/core/CloseButton";function oIe(e){return E.Children.toArray(e).filter(Boolean)}var AY={root:"m_4081bf90"};const aIe={preventGrowOverflow:!0,gap:"md",align:"center",justify:"flex-start",wrap:"wrap"},iIe=(e,{grow:r,preventGrowOverflow:n,gap:o,align:a,justify:i,wrap:s},{childWidth:l})=>({root:{"--group-child-width":r&&n?l:void 0,"--group-gap":cc(o),"--group-align":a,"--group-justify":i,"--group-wrap":s}}),pn=ht((e,r)=>{const n=He("Group",aIe,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,children:c,gap:u,align:d,justify:h,wrap:f,grow:g,preventGrowOverflow:b,vars:x,variant:w,__size:k,mod:C,attributes:_,...T}=n,A=oIe(c),R=A.length,D=cc(u??"md"),N={childWidth:`calc(${100/R}% - (${D} - ${D} / ${R}))`},M=Dt({name:"Group",props:n,stylesCtx:N,className:a,style:i,classes:AY,classNames:o,styles:s,unstyled:l,attributes:_,vars:x,varsResolver:iIe});return y.jsx(Re,{...M("root"),ref:r,variant:w,mod:[{grow:g},C],size:k,...T,children:A})});pn.classes=AY,pn.displayName="@mantine/core/Group";const[sIe,lIe]=R0({size:"sm"}),RY=ht((e,r)=>{const n=He("InputClearButton",null,e),{size:o,variant:a,vars:i,classNames:s,styles:l,...c}=n,u=lIe(),{resolvedClassNames:d,resolvedStyles:h}=s7({classNames:s,styles:l,props:n});return y.jsx(wp,{variant:a||"transparent",ref:r,size:o||u?.size||"sm",classNames:d,styles:h,__staticSelector:"InputClearButton",style:{pointerEvents:"all",background:"var(--input-bg)",...c.style},...c})});RY.displayName="@mantine/core/InputClearButton";const cIe={xs:7,sm:8,md:10,lg:12,xl:15};function uIe({__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:cIe[a]},children:[i,n||o]}):n===null?null:n||i||o}const[dIe,I2]=R0({offsetBottom:!1,offsetTop:!1,describedBy:void 0,getStyles:null,inputId:void 0,labelId:void 0});var bi={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 pIe=(e,{size:r})=>({description:{"--input-description-size":r===void 0?void 0:`calc(${Io(r)} - ${Me(2)})`}}),O2=ht((e,r)=>{const n=He("InputDescription",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,size:u,__staticSelector:d,__inheritStyles:h=!0,attributes:f,variant:g,...b}=He("InputDescription",null,n),x=I2(),w=Dt({name:["InputWrapper",d],props:n,classes:bi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:f,rootSelector:"description",vars:c,varsResolver:pIe}),k=h&&x?.getStyles||w;return y.jsx(Re,{component:"p",ref:r,variant:g,size:u,...k("description",x?.getStyles?{className:a,style:i}:void 0),...b})});O2.classes=bi,O2.displayName="@mantine/core/InputDescription";const hIe=(e,{size:r})=>({error:{"--input-error-size":r===void 0?void 0:`calc(${Io(r)} - ${Me(2)})`}}),j2=ht((e,r)=>{const n=He("InputError",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,size:u,attributes:d,__staticSelector:h,__inheritStyles:f=!0,variant:g,...b}=n,x=Dt({name:["InputWrapper",h],props:n,classes:bi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:d,rootSelector:"error",vars:c,varsResolver:hIe}),w=I2(),k=f&&w?.getStyles||x;return y.jsx(Re,{component:"p",ref:r,variant:g,size:u,...k("error",w?.getStyles?{className:a,style:i}:void 0),...b})});j2.classes=bi,j2.displayName="@mantine/core/InputError";const NY={labelElement:"label"},fIe=(e,{size:r})=>({label:{"--input-label-size":Io(r),"--input-asterisk-color":void 0}}),L2=ht((e,r)=>{const n=He("InputLabel",NY,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,labelElement:u,size:d,required:h,htmlFor:f,onMouseDown:g,children:b,__staticSelector:x,variant:w,mod:k,attributes:C,..._}=He("InputLabel",NY,n),T=Dt({name:["InputWrapper",x],props:n,classes:bi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:C,rootSelector:"label",vars:c,varsResolver:fIe}),A=I2(),R=A?.getStyles||T;return y.jsxs(Re,{...R("label",A?.getStyles?{className:a,style:i}:void 0),component:u,variant:w,size:d,ref:r,htmlFor:u==="label"?f:void 0,mod:[{required:h},k],onMouseDown:D=>{g?.(D),!D.defaultPrevented&&D.detail>1&&D.preventDefault()},..._,children:[b,h&&y.jsx("span",{...R("required"),"aria-hidden":!0,children:" *"})]})});L2.classes=bi,L2.displayName="@mantine/core/InputLabel";const V7=ht((e,r)=>{const n=He("InputPlaceholder",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,__staticSelector:u,variant:d,error:h,mod:f,attributes:g,...b}=n,x=Dt({name:["InputPlaceholder",u],props:n,classes:bi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:g,rootSelector:"placeholder"});return y.jsx(Re,{...x("placeholder"),mod:[{error:!!h},f],component:"span",variant:d,ref:r,...b})});V7.classes=bi,V7.displayName="@mantine/core/InputPlaceholder";function mIe(e,{hasDescription:r,hasError:n}){const o=e.findIndex(l=>l==="input"),a=e.slice(0,o),i=e.slice(o+1),s=r&&a.includes("description")||n&&a.includes("error");return{offsetBottom:r&&i.includes("description")||n&&i.includes("error"),offsetTop:s}}const gIe={labelElement:"label",inputContainer:e=>e,inputWrapperOrder:["label","description","input","error"]},yIe=(e,{size:r})=>({label:{"--input-label-size":Io(r),"--input-asterisk-color":void 0},error:{"--input-error-size":r===void 0?void 0:`calc(${Io(r)} - ${Me(2)})`},description:{"--input-description-size":r===void 0?void 0:`calc(${Io(r)} - ${Me(2)})`}}),q7=ht((e,r)=>{const n=He("InputWrapper",gIe,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,size:u,variant:d,__staticSelector:h,inputContainer:f,inputWrapperOrder:g,label:b,error:x,description:w,labelProps:k,descriptionProps:C,errorProps:_,labelElement:T,children:A,withAsterisk:R,id:D,required:N,__stylesApiProps:M,mod:O,attributes:F,...L}=n,U=Dt({name:["InputWrapper",h],props:M||n,classes:bi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:F,vars:c,varsResolver:yIe}),P={size:u,variant:d,__staticSelector:h},V=fi(D),I=typeof R=="boolean"?R:N,H=_?.id||`${V}-error`,q=C?.id||`${V}-description`,Z=V,W=!!x&&typeof x!="boolean",G=!!w,K=`${W?H:""} ${G?q:""}`,j=K.trim().length>0?K.trim():void 0,Y=k?.id||`${V}-label`,Q=b&&y.jsx(L2,{labelElement:T,id:Y,htmlFor:Z,required:I,...P,...k,children:b},"label"),J=G&&y.jsx(O2,{...C,...P,size:C?.size||P.size,id:C?.id||q,children:w},"description"),ie=y.jsx(E.Fragment,{children:f(A)},"input"),ne=W&&E.createElement(j2,{..._,...P,size:_?.size||P.size,key:"error",id:_?.id||H},x),re=g.map(ge=>{switch(ge){case"label":return Q;case"input":return ie;case"description":return J;case"error":return ne;default:return null}});return y.jsx(dIe,{value:{getStyles:U,describedBy:j,inputId:Z,labelId:Y,...mIe(g,{hasDescription:G,hasError:W})},children:y.jsx(Re,{ref:r,variant:d,size:u,mod:[{error:!!x},O],...U("root"),...L,children:re})})});q7.classes=bi,q7.displayName="@mantine/core/InputWrapper";const bIe={variant:"default",leftSectionPointerEvents:"none",rightSectionPointerEvents:"none",withAria:!0,withErrorStyles:!0,size:"sm"},vIe=(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":kr(r.size,"input-height"),"--input-fz":Io(r.size),"--input-radius":r.radius===void 0?void 0:Pn(r.radius),"--input-left-section-width":r.leftSectionWidth!==void 0?Me(r.leftSectionWidth):void 0,"--input-right-section-width":r.rightSectionWidth!==void 0?Me(r.rightSectionWidth):void 0,"--input-padding-y":r.multiline?kr(r.size,"input-padding-y"):void 0,"--input-left-section-pointer-events":r.leftSectionPointerEvents,"--input-right-section-pointer-events":r.rightSectionPointerEvents}}),La=so((e,r)=>{const n=He("Input",bIe,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,required:c,__staticSelector:u,__stylesApiProps:d,size:h,wrapperProps:f,error:g,disabled:b,leftSection:x,leftSectionProps:w,leftSectionWidth:k,rightSection:C,rightSectionProps:_,rightSectionWidth:T,rightSectionPointerEvents:A,leftSectionPointerEvents:R,variant:D,vars:N,pointer:M,multiline:O,radius:F,id:L,withAria:U,withErrorStyles:P,mod:V,inputSize:I,attributes:H,__clearSection:q,__clearable:Z,__defaultRightSection:W,...G}=n,{styleProps:K,rest:j}=WU(G),Y=I2(),Q={offsetBottom:Y?.offsetBottom,offsetTop:Y?.offsetTop},J=Dt({name:["Input",u],props:d||n,classes:bi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:H,stylesCtx:Q,rootSelector:"wrapper",vars:N,varsResolver:vIe}),ie=U?{required:c,disabled:b,"aria-invalid":!!g,"aria-describedby":Y?.describedBy,id:Y?.inputId||L}:{},ne=uIe({__clearable:Z,__clearSection:q,rightSection:C,__defaultRightSection:W,size:h});return y.jsx(sIe,{value:{size:h||"sm"},children:y.jsxs(Re,{...J("wrapper"),...K,...f,mod:[{error:!!g&&P,pointer:M,disabled:b,multiline:O,"data-with-right-section":!!ne,"data-with-left-section":!!x},V],variant:D,size:h,children:[x&&y.jsx("div",{...w,"data-position":"left",...J("section",{className:w?.className,style:w?.style}),children:x}),y.jsx(Re,{component:"input",...j,...ie,ref:r,required:c,mod:{disabled:b,error:!!g&&P},variant:D,__size:I,...J("input")}),ne&&y.jsx("div",{..._,"data-position":"right",...J("section",{className:_?.className,style:_?.style}),children:ne})]})})});La.classes=bi,La.Wrapper=q7,La.Label=L2,La.Error=j2,La.Description=O2,La.Placeholder=V7,La.ClearButton=RY,La.displayName="@mantine/core/Input";const xIe={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 DY={root:"m_8bffd616"};const mc=so((e,r)=>{const n=He("Flex",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,gap:u,rowGap:d,columnGap:h,align:f,justify:g,wrap:b,direction:x,attributes:w,...k}=n,C=Dt({name:"Flex",classes:DY,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:w,vars:c}),_=vo(),T=u2(),A=XU({styleProps:{gap:u,rowGap:d,columnGap:h,align:f,justify:g,wrap:b,direction:x},theme:_,data:xIe});return y.jsxs(y.Fragment,{children:[A.hasResponsiveStyles&&y.jsx(c2,{selector:`.${T}`,styles:A.styles,media:A.media}),y.jsx(Re,{ref:r,...C("root",{className:T,style:Uf(A.inlineStyles)}),...k})]})});mc.classes=DY,mc.displayName="@mantine/core/Flex";function wIe(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 kIe({target:e,parent:r,ref:n,displayAfterTransitionEnd:o}){const a=E.useRef(-1),[i,s]=E.useState(!1),[l,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=Nu(x.borderTopWidth)+Nu(w.borderTopWidth),C=Nu(x.borderLeftWidth)+Nu(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)},h=E.useRef(null),f=E.useRef(null);return E.useEffect(()=>{if(u(),e)return h.current=new ResizeObserver(d),h.current.observe(e),r&&(f.current=new ResizeObserver(d),f.current.observe(r)),()=>{h.current?.disconnect(),f.current?.disconnect()}},[r,e]),E.useEffect(()=>{if(r){const g=b=>{wIe(b.target,r)&&(d(),c(!1))};return r.addEventListener("transitionend",g),()=>{r.removeEventListener("transitionend",g)}}},[r]),NU(()=>{T$e()!=="test"&&s(!0)},20,{autoInvoke:!0}),DU(g=>{g.forEach(b=>{b.type==="attributes"&&b.attributeName==="dir"&&d()})},{attributes:!0,attributeFilter:["dir"]},()=>document.documentElement),{initialized:i,hidden:l}}var $Y={root:"m_96b553a6"};const _Ie=(e,{transitionDuration:r})=>({root:{"--transition-duration":typeof r=="number"?`${r}ms`:r}}),B2=ht((e,r)=>{const n=He("FloatingIndicator",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,target:u,parent:d,transitionDuration:h,mod:f,displayAfterTransitionEnd:g,attributes:b,...x}=n,w=Dt({name:"FloatingIndicator",classes:$Y,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:b,vars:c,varsResolver:_Ie}),k=E.useRef(null),{initialized:C,hidden:_}=kIe({target:u,parent:d,ref:k,displayAfterTransitionEnd:g}),T=Hr(r,k);return!u||!d?null:y.jsx(Re,{ref:T,mod:[{initialized:C,hidden:_},f],...w("root"),...x})});B2.displayName="@mantine/core/FloatingIndicator",B2.classes=$Y;function MY({open:e,close:r,openDelay:n,closeDelay:o}){const a=E.useRef(-1),i=E.useRef(-1),s=()=>{window.clearTimeout(a.current),window.clearTimeout(i.current)},l=()=>{s(),n===0||n===void 0?e():a.current=window.setTimeout(e,n)},c=()=>{s(),o===0||o===void 0?r():i.current=window.setTimeout(r,o)};return E.useEffect(()=>s,[]),{openDropdown:l,closeDropdown:c}}function U7({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:Me(r),height:Me(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"})})}U7.displayName="@mantine/core/AccordionChevron";var PY={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 EIe=(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:Pn(r),"--alert-bg":n||o?i.background:void 0,"--alert-color":i.color,"--alert-bd":n||o?i.border:void 0}}},F2=ht((e,r)=>{const n=He("Alert",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,radius:u,color:d,title:h,children:f,id:g,icon:b,withCloseButton:x,onClose:w,closeButtonLabel:k,variant:C,autoContrast:_,attributes:T,...A}=n,R=Dt({name:"Alert",classes:PY,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:T,vars:c,varsResolver:EIe}),D=fi(g),N=h&&`${D}-title`||void 0,M=`${D}-body`;return y.jsx(Re,{id:D,...R("root",{variant:C}),variant:C,ref:r,...A,role:"alert","aria-describedby":f?M:void 0,"aria-labelledby":h?N:void 0,children:y.jsxs("div",{...R("wrapper"),children:[b&&y.jsx("div",{...R("icon"),children:b}),y.jsxs("div",{...R("body"),children:[h&&y.jsx("div",{...R("title"),"data-with-close-button":x||void 0,children:y.jsx("span",{id:N,...R("label"),children:h})}),f&&y.jsx("div",{id:M,...R("message"),"data-variant":C,children:f})]}),x&&y.jsx(wp,{...R("closeButton"),onClick:w,variant:"transparent",size:16,iconSize:16,"aria-label":k,unstyled:l})]})})});F2.classes=PY,F2.displayName="@mantine/core/Alert";var zY={root:"m_b6d8b162"};function SIe(e){if(e==="start")return"start";if(e==="end"||e)return"end"}const CIe={inherit:!1},TIe=(e,{variant:r,lineClamp:n,gradient:o,size:a,color:i})=>({root:{"--text-fz":Io(a),"--text-lh":VDe(a),"--text-gradient":r==="gradient"?Q9(o,e):void 0,"--text-line-clamp":typeof n=="number"?n.toString():void 0,"--text-color":i?Ia(i,e):void 0}}),ft=so((e,r)=>{const n=He("Text",CIe,e),{lineClamp:o,truncate:a,inline:i,inherit:s,gradient:l,span:c,__staticSelector:u,vars:d,className:h,style:f,classNames:g,styles:b,unstyled:x,variant:w,mod:k,size:C,attributes:_,...T}=n,A=Dt({name:["Text",u],props:n,classes:zY,className:h,style:f,classNames:g,styles:b,unstyled:x,attributes:_,vars:d,varsResolver:TIe});return y.jsx(Re,{...A("root",{focusable:!0}),ref:r,component:c?"span":"p",variant:w,mod:[{"data-truncate":SIe(a),"data-line-clamp":typeof o=="number","data-inline":i,"data-inherit":s},k],size:C,...T})});ft.classes=zY,ft.displayName="@mantine/core/Text";var IY={root:"m_849cf0da"};const AIe={underline:"hover"},W7=so((e,r)=>{const{underline:n,className:o,unstyled:a,mod:i,...s}=He("Anchor",AIe,e);return y.jsx(ft,{component:"a",ref:r,className:hs({[IY.root]:!a},o),...s,mod:[{underline:n},i],__staticSelector:"Anchor",unstyled:a})});W7.classes=IY,W7.displayName="@mantine/core/Anchor";var vi={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 RIe={error:null},NIe=(e,{size:r,color:n})=>({chevron:{"--combobox-chevron-size":kr(r,"combobox-chevron-size"),"--combobox-chevron-color":n?Ia(n,e):void 0}}),Y7=ht((e,r)=>{const n=He("ComboboxChevron",RIe,e),{size:o,error:a,style:i,className:s,classNames:l,styles:c,unstyled:u,vars:d,mod:h,...f}=n,g=Dt({name:"ComboboxChevron",classes:vi,props:n,style:i,className:s,classNames:l,styles:c,unstyled:u,vars:d,varsResolver:NIe,rootSelector:"chevron"});return y.jsx(Re,{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},h],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"})})});Y7.classes=vi,Y7.displayName="@mantine/core/ComboboxChevron";const[DIe,xi]=hi("Combobox component was not found in tree"),OY=E.forwardRef(({size:e,onMouseDown:r,onClick:n,onClear:o,...a},i)=>y.jsx(La.ClearButton,{ref:i,tabIndex:-1,"aria-hidden":!0,...a,onMouseDown:s=>{s.preventDefault(),r?.(s)},onClick:s=>{o(),n?.(s)}}));OY.displayName="@mantine/core/ComboboxClearButton";const H2=ht((e,r)=>{const{classNames:n,styles:o,className:a,style:i,hidden:s,...l}=He("ComboboxDropdown",null,e),c=xi();return y.jsx(Rr.Dropdown,{...l,ref:r,role:"presentation","data-hidden":s||void 0,...c.getStyles("dropdown",{className:a,style:i,classNames:n,styles:o})})});H2.classes=vi,H2.displayName="@mantine/core/ComboboxDropdown";const $Ie={refProp:"ref"},jY=ht((e,r)=>{const{children:n,refProp:o}=He("ComboboxDropdownTarget",$Ie,e);if(xi(),!ps(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(Rr.Target,{ref:r,refProp:o,children:n})});jY.displayName="@mantine/core/ComboboxDropdownTarget";const B0=ht((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,...l}=He("ComboboxEmpty",null,e),c=xi();return y.jsx(Re,{ref:r,...c.getStyles("empty",{className:o,classNames:n,styles:i,style:a}),...l})});B0.classes=vi,B0.displayName="@mantine/core/ComboboxEmpty";function G7({onKeyDown:e,withKeyboardNavigation:r,withAriaAttributes:n,withExpandedAttribute:o,targetType:a,autoComplete:i}){const s=xi(),[l,c]=E.useState(null),u=d=>{if(e?.(d),!s.readOnly&&r){if(d.nativeEvent.isComposing)return;if(d.nativeEvent.code==="ArrowDown"&&(d.preventDefault(),s.store.dropdownOpened?c(s.store.selectNextOption()):(s.store.openDropdown("keyboard"),c(s.store.selectActiveOption()),s.store.updateSelectedOptionIndex("selected",{scrollIntoView:!0}))),d.nativeEvent.code==="ArrowUp"&&(d.preventDefault(),s.store.dropdownOpened?c(s.store.selectPreviousOption()):(s.store.openDropdown("keyboard"),c(s.store.selectActiveOption()),s.store.updateSelectedOptionIndex("selected",{scrollIntoView:!0}))),d.nativeEvent.code==="Enter"||d.nativeEvent.code==="NumpadEnter"){if(d.nativeEvent.keyCode===229)return;const h=s.store.getSelectedOptionIndex();s.store.dropdownOpened&&h!==-1?(d.preventDefault(),s.store.clickSelectedOption()):a==="button"&&(d.preventDefault(),s.store.openDropdown("keyboard"))}d.key==="Escape"&&s.store.closeDropdown("keyboard"),d.nativeEvent.code==="Space"&&a==="button"&&(d.preventDefault(),s.store.toggleDropdown("keyboard"))}};return{...n?{"aria-haspopup":"listbox","aria-expanded":o?!!(s.store.listId&&s.store.dropdownOpened):void 0,"aria-controls":s.store.dropdownOpened&&s.store.listId?s.store.listId:void 0,"aria-activedescendant":s.store.dropdownOpened&&l||void 0,autoComplete:i,"data-expanded":s.store.dropdownOpened||void 0,"data-mantine-stop-propagation":s.store.dropdownOpened||void 0}:{},onKeyDown:u}}const MIe={refProp:"ref",targetType:"input",withKeyboardNavigation:!0,withAriaAttributes:!0,withExpandedAttribute:!1,autoComplete:"off"},LY=ht((e,r)=>{const{children:n,refProp:o,withKeyboardNavigation:a,withAriaAttributes:i,withExpandedAttribute:s,targetType:l,autoComplete:c,...u}=He("ComboboxEventsTarget",MIe,e);if(!ps(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=xi(),h=G7({targetType:l,withAriaAttributes:i,withKeyboardNavigation:a,withExpandedAttribute:s,onKeyDown:n.props.onKeyDown,autoComplete:c});return E.cloneElement(n,{...h,...u,[o]:Hr(r,d.store.targetRef,r2(n))})});LY.displayName="@mantine/core/ComboboxEventsTarget";const X7=ht((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,...l}=He("ComboboxFooter",null,e),c=xi();return y.jsx(Re,{ref:r,...c.getStyles("footer",{className:o,classNames:n,style:a,styles:i}),...l,onMouseDown:u=>{u.preventDefault()}})});X7.classes=vi,X7.displayName="@mantine/core/ComboboxFooter";const K7=ht((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,children:l,label:c,id:u,...d}=He("ComboboxGroup",null,e),h=xi(),f=fi(u);return y.jsxs(Re,{ref:r,role:"group","aria-labelledby":c?f:void 0,...h.getStyles("group",{className:o,classNames:n,style:a,styles:i}),...d,children:[c&&y.jsx("div",{id:f,...h.getStyles("groupLabel",{classNames:n,styles:i}),children:c}),l]})});K7.classes=vi,K7.displayName="@mantine/core/ComboboxGroup";const Z7=ht((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,...l}=He("ComboboxHeader",null,e),c=xi();return y.jsx(Re,{ref:r,...c.getStyles("header",{className:o,classNames:n,style:a,styles:i}),...l,onMouseDown:u=>{u.preventDefault()}})});Z7.classes=vi,Z7.displayName="@mantine/core/ComboboxHeader";function BY({value:e,valuesDivider:r=",",...n}){return y.jsx("input",{type:"hidden",value:Array.isArray(e)?e.join(r):e||"",...n})}BY.displayName="@mantine/core/ComboboxHiddenInput";const F0=ht((e,r)=>{const n=He("ComboboxOption",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,onClick:c,id:u,active:d,onMouseDown:h,onMouseOver:f,disabled:g,selected:b,mod:x,...w}=n,k=xi(),C=E.useId(),_=u||C;return y.jsx(Re,{...k.getStyles("option",{className:a,classNames:o,styles:s,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(),h?.(T)},onMouseOver:T=>{k.resetSelectionOnOptionHover&&k.store.resetSelectedOption(),f?.(T)}})});F0.classes=vi,F0.displayName="@mantine/core/ComboboxOption";const V2=ht((e,r)=>{const n=He("ComboboxOptions",null,e),{classNames:o,className:a,style:i,styles:s,id:l,onMouseDown:c,labelledBy:u,...d}=n,h=xi(),f=fi(l);return E.useEffect(()=>{h.store.setListId(f)},[f]),y.jsx(Re,{ref:r,...h.getStyles("options",{className:a,style:i,classNames:o,styles:s}),...d,id:f,role:"listbox","aria-labelledby":u,onMouseDown:g=>{g.preventDefault(),c?.(g)}})});V2.classes=vi,V2.displayName="@mantine/core/ComboboxOptions";const PIe={withAriaAttributes:!0,withKeyboardNavigation:!0},Q7=ht((e,r)=>{const n=He("ComboboxSearch",PIe,e),{classNames:o,styles:a,unstyled:i,vars:s,withAriaAttributes:l,onKeyDown:c,withKeyboardNavigation:u,size:d,...h}=n,f=xi(),g=f.getStyles("search"),b=G7({targetType:"input",withAriaAttributes:l,withKeyboardNavigation:u,withExpandedAttribute:!1,onKeyDown:c,autoComplete:"off"});return y.jsx(La,{ref:Hr(r,f.store.searchRef),classNames:[{input:g.className},o],styles:[{input:g.style},a],size:d||f.size,...b,...h,__staticSelector:"Combobox"})});Q7.classes=vi,Q7.displayName="@mantine/core/ComboboxSearch";const zIe={refProp:"ref",targetType:"input",withKeyboardNavigation:!0,withAriaAttributes:!0,withExpandedAttribute:!1,autoComplete:"off"},J7=ht((e,r)=>{const{children:n,refProp:o,withKeyboardNavigation:a,withAriaAttributes:i,withExpandedAttribute:s,targetType:l,autoComplete:c,...u}=He("ComboboxTarget",zIe,e);if(!ps(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=xi(),h=G7({targetType:l,withAriaAttributes:i,withKeyboardNavigation:a,withExpandedAttribute:s,onKeyDown:n.props.onKeyDown,autoComplete:c}),f=E.cloneElement(n,{...h,...u});return y.jsx(Rr.Target,{ref:Hr(r,d.store.targetRef),children:f})});J7.displayName="@mantine/core/ComboboxTarget";function IIe(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 OIe(e,r,n){for(let o=e+1;o{l||(c(!0),a?.(I))},[c,a,l]),k=E.useCallback((I="unknown")=>{l&&(c(!1),o?.(I))},[c,o,l]),C=E.useCallback((I="unknown")=>{l?k(I):w(I)},[k,w,l]),_=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 H=document.getElementById(u.current)?.querySelectorAll("[data-combobox-option]");if(!H)return null;const q=I>=H.length?0:I<0?H.length-1:I;return d.current=q,H?.[q]&&!H[q].hasAttribute("data-combobox-disabled")?(_(),H[q].setAttribute("data-combobox-selected","true"),H[q].setAttribute("aria-selected","true"),H[q].scrollIntoView({block:"nearest",behavior:s}),H[q].id):null},[s,_]),A=E.useCallback(()=>{const I=document.querySelector(`#${u.current} [data-combobox-active]`);if(I){const H=document.querySelectorAll(`#${u.current} [data-combobox-option]`),q=Array.from(H).findIndex(Z=>Z===I);return T(q)}return T(0)},[T]),R=E.useCallback(()=>T(OIe(d.current,document.querySelectorAll(`#${u.current} [data-combobox-option]`),i)),[T,i]),D=E.useCallback(()=>T(IIe(d.current,document.querySelectorAll(`#${u.current} [data-combobox-option]`),i)),[T,i]),N=E.useCallback(()=>T(jIe(document.querySelectorAll(`#${u.current} [data-combobox-option]`))),[T]),M=E.useCallback((I="selected",H)=>{x.current=window.setTimeout(()=>{const q=document.querySelectorAll(`#${u.current} [data-combobox-option]`),Z=Array.from(q).findIndex(W=>W.hasAttribute(`data-combobox-${I}`));d.current=Z,H?.scrollIntoView&&q[Z]?.scrollIntoView({block:"nearest",behavior:s})},0)},[]),O=E.useCallback(()=>{d.current=-1,_()},[_]),F=E.useCallback(()=>{document.querySelectorAll(`#${u.current} [data-combobox-option]`)?.[d.current]?.click()},[]),L=E.useCallback(I=>{u.current=I},[]),U=E.useCallback(()=>{g.current=window.setTimeout(()=>h.current?.focus(),0)},[]),P=E.useCallback(()=>{b.current=window.setTimeout(()=>f.current?.focus(),0)},[]),V=E.useCallback(()=>d.current,[]);return E.useEffect(()=>()=>{window.clearTimeout(g.current),window.clearTimeout(b.current),window.clearTimeout(x.current)},[]),{dropdownOpened:l,openDropdown:w,closeDropdown:k,toggleDropdown:C,selectedOptionIndex:d.current,getSelectedOptionIndex:V,selectOption:T,selectFirstOption:N,selectActiveOption:A,selectNextOption:R,selectPreviousOption:D,resetSelectedOption:O,updateSelectedOptionIndex:M,listId:u.current,setListId:L,clickSelectedOption:F,searchRef:h,focusSearchInput:U,targetRef:f,focusTarget:P}}const LIe={keepMounted:!0,withinPortal:!0,resetSelectionOnOptionHover:!1,width:"target",transitionProps:{transition:"fade",duration:0},size:"sm"},BIe=(e,{size:r,dropdownPadding:n})=>({options:{"--combobox-option-fz":Io(r),"--combobox-option-padding":kr(r,"combobox-option-padding")},dropdown:{"--combobox-padding":n===void 0?void 0:Me(n),"--combobox-option-fz":Io(r),"--combobox-option-padding":kr(r,"combobox-option-padding")}});function lo(e){const r=He("Combobox",LIe,e),{classNames:n,styles:o,unstyled:a,children:i,store:s,vars:l,onOptionSubmit:c,onClose:u,size:d,dropdownPadding:h,resetSelectionOnOptionHover:f,__staticSelector:g,readOnly:b,attributes:x,...w}=r,k=FY(),C=s||k,_=Dt({name:g||"Combobox",classes:vi,props:r,classNames:n,styles:o,unstyled:a,attributes:x,vars:l,varsResolver:BIe}),T=()=>{u?.(),C.closeDropdown()};return y.jsx(DIe,{value:{getStyles:_,store:C,onOptionSubmit:c,size:d,resetSelectionOnOptionHover:f,readOnly:b},children:y.jsx(Rr,{opened:C.dropdownOpened,preventPositionChangeWhenVisible:!0,...w,onChange:A=>!A&&T(),withRoles:!1,unstyled:a,children:i})})}const FIe=e=>e;lo.extend=FIe,lo.classes=vi,lo.displayName="@mantine/core/Combobox",lo.Target=J7,lo.Dropdown=H2,lo.Options=V2,lo.Option=F0,lo.Search=Q7,lo.Empty=B0,lo.Chevron=Y7,lo.Footer=X7,lo.Header=Z7,lo.EventsTarget=LY,lo.DropdownTarget=jY,lo.Group=K7,lo.ClearButton=OY,lo.HiddenInput=BY;function HY({size:e,style:r,...n}){const o=e!==void 0?{width:Me(e),height:Me(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 VY={root:"m_347db0ec","root--dot":"m_fbd81e3d",label:"m_5add502a",section:"m_91fdda9b"};const HIe=(e,{radius:r,color:n,gradient:o,variant:a,size:i,autoContrast:s})=>{const l=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:s});return{root:{"--badge-height":kr(i,"badge-height"),"--badge-padding-x":kr(i,"badge-padding-x"),"--badge-fz":kr(i,"badge-fz"),"--badge-radius":r===void 0?void 0:Pn(r),"--badge-bg":n||a?l.background:void 0,"--badge-color":n||a?l.color:void 0,"--badge-bd":n||a?l.border:void 0,"--badge-dot-color":a==="dot"?Ia(n,e):void 0}}},vl=so((e,r)=>{const n=He("Badge",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,radius:u,color:d,gradient:h,leftSection:f,rightSection:g,children:b,variant:x,fullWidth:w,autoContrast:k,circle:C,mod:_,attributes:T,...A}=n,R=Dt({name:"Badge",props:n,classes:VY,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:T,vars:c,varsResolver:HIe});return y.jsxs(Re,{variant:x,mod:[{block:w,circle:C,"with-right-section":!!g,"with-left-section":!!f},_],...R("root",{variant:x}),ref:r,...A,children:[f&&y.jsx("span",{...R("section"),"data-position":"left",children:f}),y.jsx("span",{...R("label"),children:b}),g&&y.jsx("span",{...R("section"),"data-position":"right",children:g})]})});vl.classes=VY,vl.displayName="@mantine/core/Badge";var qY={root:"m_8b3717df",breadcrumb:"m_f678d540",separator:"m_3b8f2208"};const VIe={separator:"/"},qIe=(e,{separatorMargin:r})=>({root:{"--bc-separator-margin":cc(r)}}),q2=ht((e,r)=>{const n=He("Breadcrumbs",VIe,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,children:u,separator:d,separatorMargin:h,attributes:f,...g}=n,b=Dt({name:"Breadcrumbs",classes:qY,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:f,vars:c,varsResolver:qIe}),x=E.Children.toArray(u).reduce((w,k,C,_)=>{const T=ps(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(Re,{...b("separator"),key:`separator-${C}`},d)),w},[]);return y.jsx(Re,{ref:r,...b("root"),...g,children:x})});q2.classes=qY,q2.displayName="@mantine/core/Breadcrumbs";var lm={root:"m_77c9d27d",inner:"m_80f1301b",label:"m_811560b9",section:"m_a74036a",loader:"m_a25b86ee",group:"m_80d6d844",groupSection:"m_70be2a01"};const UY={orientation:"horizontal"},UIe=(e,{borderWidth:r})=>({group:{"--button-border-width":Me(r)}}),eS=ht((e,r)=>{const n=He("ButtonGroup",UY,e),{className:o,style:a,classNames:i,styles:s,unstyled:l,orientation:c,vars:u,borderWidth:d,variant:h,mod:f,attributes:g,...b}=He("ButtonGroup",UY,e),x=Dt({name:"ButtonGroup",props:n,classes:lm,className:o,style:a,classNames:i,styles:s,unstyled:l,attributes:g,vars:u,varsResolver:UIe,rootSelector:"group"});return y.jsx(Re,{...x("group"),ref:r,variant:h,mod:[{"data-orientation":c},f],role:"group",...b})});eS.classes=lm,eS.displayName="@mantine/core/ButtonGroup";const WIe=(e,{radius:r,color:n,gradient:o,variant:a,autoContrast:i,size:s})=>{const l=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:i});return{groupSection:{"--section-height":kr(s,"section-height"),"--section-padding-x":kr(s,"section-padding-x"),"--section-fz":s?.includes("compact")?Io(s.replace("compact-","")):Io(s),"--section-radius":r===void 0?void 0:Pn(r),"--section-bg":n||a?l.background:void 0,"--section-color":l.color,"--section-bd":n||a?l.border:void 0}}},tS=ht((e,r)=>{const n=He("ButtonGroupSection",null,e),{className:o,style:a,classNames:i,styles:s,unstyled:l,vars:c,variant:u,gradient:d,radius:h,autoContrast:f,attributes:g,...b}=n,x=Dt({name:"ButtonGroupSection",props:n,classes:lm,className:o,style:a,classNames:i,styles:s,unstyled:l,attributes:g,vars:c,varsResolver:WIe,rootSelector:"groupSection"});return y.jsx(Re,{...x("groupSection"),ref:r,variant:u,...b})});tS.classes=lm,tS.displayName="@mantine/core/ButtonGroupSection";const YIe={in:{opacity:1,transform:`translate(-50%, calc(-50% + ${Me(1)}))`},out:{opacity:0,transform:"translate(-50%, -200%)"},common:{transformOrigin:"center"},transitionProperty:"transform, opacity"},GIe=(e,{radius:r,color:n,gradient:o,variant:a,size:i,justify:s,autoContrast:l})=>{const c=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:l});return{root:{"--button-justify":s,"--button-height":kr(i,"button-height"),"--button-padding-x":kr(i,"button-padding-x"),"--button-fz":i?.includes("compact")?Io(i.replace("compact-","")):Io(i),"--button-radius":r===void 0?void 0:Pn(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}}},Kn=so((e,r)=>{const n=He("Button",null,e),{style:o,vars:a,className:i,color:s,disabled:l,children:c,leftSection:u,rightSection:d,fullWidth:h,variant:f,radius:g,loading:b,loaderProps:x,gradient:w,classNames:k,styles:C,unstyled:_,"data-disabled":T,autoContrast:A,mod:R,attributes:D,...N}=n,M=Dt({name:"Button",props:n,classes:lm,className:i,style:o,classNames:k,styles:C,unstyled:_,attributes:D,vars:a,varsResolver:GIe}),O=!!u,F=!!d;return y.jsxs(Er,{ref:r,...M("root",{active:!l&&!b&&!T}),unstyled:_,variant:f,disabled:l||b,mod:[{disabled:l||T,loading:b,block:h,"with-left-section":O,"with-right-section":F},R],...N,children:[typeof b=="boolean"&&y.jsx(Du,{mounted:b,transition:YIe,duration:150,children:L=>y.jsx(Re,{component:"span",...M("loader",{style:L}),"aria-hidden":!0,children:y.jsx(im,{color:"var(--button-color)",size:"calc(var(--button-height) / 1.8)",...x})})}),y.jsxs("span",{...M("inner"),children:[u&&y.jsx(Re,{component:"span",...M("section"),mod:{position:"left"},children:u}),y.jsx(Re,{component:"span",mod:{loading:b},...M("label"),children:c}),d&&y.jsx(Re,{component:"span",...M("section"),mod:{position:"right"},children:d})]})]})});Kn.classes=lm,Kn.displayName="@mantine/core/Button",Kn.Group=eS,Kn.GroupSection=tS;const[XIe,KIe]=hi("Card component was not found in tree");var rS={root:"m_e615b15f",section:"m_599a2148"};const U2=so((e,r)=>{const n=He("CardSection",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,withBorder:c,inheritPadding:u,mod:d,...h}=n,f=KIe();return y.jsx(Re,{ref:r,mod:[{"with-border":c,"inherit-padding":u},d],...f.getStyles("section",{className:a,style:i,styles:s,classNames:o}),...h})});U2.classes=rS,U2.displayName="@mantine/core/CardSection";const ZIe=(e,{padding:r})=>({root:{"--card-padding":cc(r)}}),W2=so((e,r)=>{const n=He("Card",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,children:u,padding:d,attributes:h,...f}=n,g=Dt({name:"Card",props:n,classes:rS,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:h,vars:c,varsResolver:ZIe}),b=E.Children.toArray(u),x=b.map((w,k)=>typeof w=="object"&&w&&"type"in w&&w.type===U2?E.cloneElement(w,{"data-first-section":k===0||void 0,"data-last-section":k===b.length-1||void 0}):w);return y.jsx(XIe,{value:{getStyles:g},children:y.jsx(om,{ref:r,unstyled:l,...g("root"),...f,children:x})})});W2.classes=rS,W2.displayName="@mantine/core/Card",W2.Section=U2;var WY={root:"m_de3d2490",colorOverlay:"m_862f3d1b",shadowOverlay:"m_98ae7f22",alphaOverlay:"m_95709ac0",childrenOverlay:"m_93e74e3"};const YY={withShadow:!0},QIe=(e,{radius:r,size:n})=>({root:{"--cs-radius":r===void 0?void 0:Pn(r),"--cs-size":Me(n)}}),H0=so((e,r)=>{const n=He("ColorSwatch",YY,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,color:u,size:d,radius:h,withShadow:f,children:g,variant:b,attributes:x,...w}=He("ColorSwatch",YY,n),k=Dt({name:"ColorSwatch",props:n,classes:WY,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:x,vars:c,varsResolver:QIe});return y.jsxs(Re,{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})]})});H0.classes=WY,H0.displayName="@mantine/core/ColorSwatch";const JIe={timeout:1e3};function GY(e){const{children:r,timeout:n,value:o,...a}=He("CopyButton",JIe,e),i=GDe({timeout:n});return y.jsx(y.Fragment,{children:r({copy:()=>i.copy(o),copied:i.copied,...a})})}GY.displayName="@mantine/core/CopyButton";var XY={root:"m_3eebeb36",label:"m_9e365f20"};const eOe={orientation:"horizontal"},tOe=(e,{color:r,variant:n,size:o})=>({root:{"--divider-color":r?Ia(r,e):void 0,"--divider-border-style":n,"--divider-size":kr(o,"divider-size")}}),kp=ht((e,r)=>{const n=He("Divider",eOe,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,color:u,orientation:d,label:h,labelPosition:f,mod:g,attributes:b,...x}=n,w=Dt({name:"Divider",classes:XY,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:b,vars:c,varsResolver:tOe});return y.jsx(Re,{ref:r,mod:[{orientation:d,"with-label":!!h},g],...w("root"),...x,role:"separator",children:h&&y.jsx(Re,{component:"span",mod:{position:f},...w("label"),children:h})})});kp.classes=XY,kp.displayName="@mantine/core/Divider";const[KY,ZY]=hi("Grid component was not found in tree"),nS=(e,r)=>e==="content"?"auto":e==="auto"?"0rem":e?`${100/(r/e)}%`:void 0,QY=(e,r,n)=>n||e==="auto"?"100%":e==="content"?"unset":nS(e,r),JY=(e,r)=>{if(e)return e==="auto"||r?"1":"auto"},eG=(e,r)=>e===0?"0":e?`${100/(r/e)}%`:void 0;function rOe({span:e,order:r,offset:n,selector:o}){const a=vo(),i=ZY(),s=i.breakpoints||a.breakpoints,l=D0(e)===void 0?12:D0(e),c=Uf({"--col-order":D0(r)?.toString(),"--col-flex-grow":JY(l,i.grow),"--col-flex-basis":nS(l,i.columns),"--col-width":l==="content"?"auto":void 0,"--col-max-width":QY(l,i.columns,i.grow),"--col-offset":eG(D0(n),i.columns)}),u=zo(s).reduce((h,f)=>(h[f]||(h[f]={}),typeof r=="object"&&r[f]!==void 0&&(h[f]["--col-order"]=r[f]?.toString()),typeof e=="object"&&e[f]!==void 0&&(h[f]["--col-flex-grow"]=JY(e[f],i.grow),h[f]["--col-flex-basis"]=nS(e[f],i.columns),h[f]["--col-width"]=e[f]==="content"?"auto":void 0,h[f]["--col-max-width"]=QY(e[f],i.columns,i.grow)),typeof n=="object"&&n[f]!==void 0&&(h[f]["--col-offset"]=eG(n[f],i.columns)),h),{}),d=gU(zo(u),s).filter(h=>zo(u[h.value]).length>0).map(h=>({query:i.type==="container"?`mantine-grid (min-width: ${s[h.value]})`:`(min-width: ${s[h.value]})`,styles:u[h.value]}));return y.jsx(c2,{styles:c,media:i.type==="container"?void 0:d,container:i.type==="container"?d:void 0,selector:o})}var oS={container:"m_8478a6da",root:"m_410352e9",inner:"m_dee7bd2f",col:"m_96bdd299"};const nOe={span:12},_p=ht((e,r)=>{const n=He("GridCol",nOe,e),{classNames:o,className:a,style:i,styles:s,vars:l,span:c,order:u,offset:d,...h}=n,f=ZY(),g=u2();return y.jsxs(y.Fragment,{children:[y.jsx(rOe,{selector:`.${g}`,span:c,order:u,offset:d}),y.jsx(Re,{ref:r,...f.getStyles("col",{className:hs(a,g),style:i,classNames:o,styles:s}),...h})]})});_p.classes=oS,_p.displayName="@mantine/core/GridCol";function tG({gutter:e,selector:r,breakpoints:n,type:o}){const a=vo(),i=n||a.breakpoints,s=Uf({"--grid-gutter":cc(D0(e))}),l=zo(i).reduce((u,d)=>(u[d]||(u[d]={}),typeof e=="object"&&e[d]!==void 0&&(u[d]["--grid-gutter"]=cc(e[d])),u),{}),c=gU(zo(l),i).filter(u=>zo(l[u.value]).length>0).map(u=>({query:o==="container"?`mantine-grid (min-width: ${i[u.value]})`:`(min-width: ${i[u.value]})`,styles:l[u.value]}));return y.jsx(c2,{styles:s,media:o==="container"?void 0:c,container:o==="container"?c:void 0,selector:r})}const oOe={gutter:"md",grow:!1,columns:12},aOe=(e,{justify:r,align:n,overflow:o})=>({root:{"--grid-justify":r,"--grid-align":n,"--grid-overflow":o}}),V0=ht((e,r)=>{const n=He("Grid",oOe,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,grow:u,gutter:d,columns:h,align:f,justify:g,children:b,breakpoints:x,type:w,attributes:k,...C}=n,_=Dt({name:"Grid",classes:oS,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:k,vars:c,varsResolver:aOe}),T=u2();return w==="container"&&x?y.jsxs(KY,{value:{getStyles:_,grow:u,columns:h,breakpoints:x,type:w},children:[y.jsx(tG,{selector:`.${T}`,...n}),y.jsx("div",{..._("container"),children:y.jsx(Re,{ref:r,..._("root",{className:T}),...C,children:y.jsx("div",{..._("inner"),children:b})})})]}):y.jsxs(KY,{value:{getStyles:_,grow:u,columns:h,breakpoints:x,type:w},children:[y.jsx(tG,{selector:`.${T}`,...n}),y.jsx(Re,{ref:r,..._("root",{className:T}),...C,children:y.jsx("div",{..._("inner"),children:b})})]})});V0.classes=oS,V0.displayName="@mantine/core/Grid",V0.Col=_p;function rG({color:e,theme:r,defaultShade:n}){const o=Au({color:e,theme:r});return o.isThemeColor?o.shade===void 0?`var(--mantine-color-${o.color}-${n})`:`var(${o.variable})`:e}var nG={root:"m_bcb3f3c2"};const iOe={color:"yellow"},sOe=(e,{color:r})=>({root:{"--mark-bg-dark":rG({color:r,theme:e,defaultShade:5}),"--mark-bg-light":rG({color:r,theme:e,defaultShade:2})}}),aS=ht((e,r)=>{const n=He("Mark",iOe,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,color:u,variant:d,attributes:h,...f}=n,g=Dt({name:"Mark",props:n,className:a,style:i,classes:nG,classNames:o,styles:s,unstyled:l,attributes:h,vars:c,varsResolver:sOe});return y.jsx(Re,{component:"mark",ref:r,variant:d,...g("root"),...f})});aS.classes=nG,aS.displayName="@mantine/core/Mark";function oG(e){return e.replace(/[-[\]{}()*+?.,\\^$|#]/g,"\\$&")}function lOe(e,r){if(r==null)return[{chunk:e,highlighted:!1}];const n=Array.isArray(r)?r.map(oG):oG(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,s)=>s.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 gc=so((e,r)=>{const{unstyled:n,children:o,highlight:a,highlightStyles:i,color:s,...l}=He("Highlight",null,e),c=lOe(o,a);return y.jsx(ft,{unstyled:n,ref:r,...l,__staticSelector:"Highlight",children:c.map(({chunk:u,highlighted:d},h)=>d?y.jsx(aS,{unstyled:n,color:s,style:i,"data-highlight":u,children:u},h):y.jsx("span",{children:u},h))})});gc.classes=ft.classes,gc.displayName="@mantine/core/Highlight";const[cOe,aG]=hi("HoverCard component was not found in the tree"),iG=E.createContext(!1),uOe=iG.Provider,iS=()=>E.useContext(iG);function sS(e){const{children:r,onMouseEnter:n,onMouseLeave:o,...a}=He("HoverCardDropdown",null,e),i=aG();if(iS()&&i.getFloatingProps&&i.floating){const c=i.getFloatingProps();return y.jsx(Rr.Dropdown,{ref:i.floating,...c,onMouseEnter:zn(n,c.onMouseEnter),onMouseLeave:zn(o,c.onMouseLeave),...a,children:r})}const s=zn(n,i.openDropdown),l=zn(o,i.closeDropdown);return y.jsx(Rr.Dropdown,{onMouseEnter:s,onMouseLeave:l,...a,children:r})}sS.displayName="@mantine/core/HoverCardDropdown";const dOe={openDelay:0,closeDelay:0};function lS(e){const{openDelay:r,closeDelay:n,children:o}=He("HoverCardGroup",dOe,e);return y.jsx(uOe,{value:!0,children:y.jsx(UW,{delay:{open:r,close:n},children:o})})}lS.displayName="@mantine/core/HoverCardGroup",lS.extend=e=>e;const pOe={refProp:"ref"},cS=E.forwardRef((e,r)=>{const{children:n,refProp:o,eventPropsWrapperName:a,...i}=He("HoverCardTarget",pOe,e);if(!ps(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 s=aG();if(iS()&&s.getReferenceProps&&s.reference){const d=s.getReferenceProps();return y.jsx(Rr.Target,{refProp:o,ref:r,...i,children:E.cloneElement(n,a?{[a]:{...d,ref:s.reference}}:{...d,ref:s.reference})})}const l=zn(n.props.onMouseEnter,s.openDropdown),c=zn(n.props.onMouseLeave,s.closeDropdown),u={onMouseEnter:l,onMouseLeave:c};return y.jsx(Rr.Target,{refProp:o,ref:r,...i,children:E.cloneElement(n,a?{[a]:u}:u)})});cS.displayName="@mantine/core/HoverCardTarget";function hOe(e){const[r,n]=E.useState(e.defaultOpened),o=typeof e.opened=="boolean"?e.opened:r,a=iS(),i=fi(),s=E.useRef(-1),l=E.useRef(-1),c=E.useCallback(()=>{window.clearTimeout(s.current),window.clearTimeout(l.current)},[]),u=E.useCallback(C=>{n(C),C?(g(i),e.onOpen?.()):e.onClose?.()},[i,e.onOpen,e.onClose]),{context:d,refs:h}=A2({open:o,onOpenChange:u}),{delay:f,setCurrentId:g}=WW(d,{id:i}),{getReferenceProps:b,getFloatingProps:x}=XW([VW(d,{enabled:!0,delay:a?f:{open:e.openDelay,close:e.closeDelay}}),KW(d,{role:"dialog"}),GW(d,{enabled:a})]),w=E.useCallback(()=>{a||(c(),e.openDelay===0||e.openDelay===void 0?u(!0):s.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):l.current=window.setTimeout(()=>u(!1),e.closeDelay))},[a,c,e.closeDelay,u]);return E.useEffect(()=>()=>c(),[c]),{opened:o,reference:h.setReference,floating:h.setFloating,getReferenceProps:b,getFloatingProps:x,openDropdown:w,closeDropdown:k}}const fOe={openDelay:0,closeDelay:150,initiallyOpened:!1};function cm(e){const{children:r,onOpen:n,onClose:o,openDelay:a,closeDelay:i,initiallyOpened:s,...l}=He("HoverCard",fOe,e),c=hOe({openDelay:a,closeDelay:i,defaultOpened:s,onOpen:n,onClose:o});return y.jsx(cOe,{value:{openDropdown:c.openDropdown,closeDropdown:c.closeDropdown,getReferenceProps:c.getReferenceProps,getFloatingProps:c.getFloatingProps,reference:c.reference,floating:c.floating},children:y.jsx(Rr,{...l,opened:c.opened,__staticSelector:"HoverCard",children:r})})}cm.displayName="@mantine/core/HoverCard",cm.Target=cS,cm.Dropdown=sS,cm.Group=lS,cm.extend=e=>e;var mOe=E.useLayoutEffect;const[gOe,Mu]=hi("Menu component was not found in the tree");var Pu={dropdown:"m_dc9b7c9f",label:"m_9bfac126",divider:"m_efdf90cb",item:"m_99ac2aa1",itemLabel:"m_5476e0d3",itemSection:"m_8b75e504",chevron:"m_b85b0bed"};const uS=ht((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,...l}=He("MenuDivider",null,e),c=Mu();return y.jsx(Re,{ref:r,...c.getStyles("divider",{className:o,style:a,styles:i,classNames:n}),...l})});uS.classes=Pu,uS.displayName="@mantine/core/MenuDivider";const q0=ht((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,onMouseEnter:l,onMouseLeave:c,onKeyDown:u,children:d,...h}=He("MenuDropdown",null,e),f=E.useRef(null),g=Mu(),b=zn(u,k=>{(k.key==="ArrowUp"||k.key==="ArrowDown")&&(k.preventDefault(),f.current?.querySelectorAll("[data-menu-item]:not(:disabled)")[0]?.focus())}),x=zn(l,()=>(g.trigger==="hover"||g.trigger==="click-hover")&&g.openDropdown()),w=zn(c,()=>(g.trigger==="hover"||g.trigger==="click-hover")&&g.closeDropdown());return y.jsxs(Rr.Dropdown,{...h,onMouseEnter:x,onMouseLeave:w,role:"menu","aria-orientation":"vertical",ref:Hr(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]})});q0.classes=Pu,q0.displayName="@mantine/core/MenuDropdown";const[yOe,Y2]=R0(),U0=so((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,color:l,closeMenuOnClick:c,leftSection:u,rightSection:d,children:h,disabled:f,"data-disabled":g,...b}=He("MenuItem",null,e),x=Mu(),w=Y2(),k=vo(),{dir:C}=Ru(),_=E.useRef(null),T=b,A=zn(T.onClick,()=>{g||(typeof c=="boolean"?c&&x.closeDropdownImmediately():x.closeOnItemClick&&x.closeDropdownImmediately())}),R=l?k.variantColorResolver({color:l,theme:k,variant:"light"}):void 0,D=l?Au({color:l,theme:k}):null,N=zn(T.onKeyDown,M=>{M.key==="ArrowLeft"&&w&&(w.close(),w.focusParentItem())});return y.jsxs(Er,{onMouseDown:M=>M.preventDefault(),...b,unstyled:x.unstyled,tabIndex:x.menuItemTabIndex,...x.getStyles("item",{className:o,style:a,styles:i,classNames:n}),ref:Hr(_,r),role:"menuitem",disabled:f,"data-menu-item":!0,"data-disabled":f||g||void 0,"data-mantine-stop-propagation":!0,onClick:A,onKeyDown:N0({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)`:R?.color,"--menu-item-hover":R?.hover},children:[u&&y.jsx("div",{...x.getStyles("itemSection",{styles:i,classNames:n}),"data-position":"left",children:u}),h&&y.jsx("div",{...x.getStyles("itemLabel",{styles:i,classNames:n}),children:h}),d&&y.jsx("div",{...x.getStyles("itemSection",{styles:i,classNames:n}),"data-position":"right",children:d})]})});U0.classes=Pu,U0.displayName="@mantine/core/MenuItem";const dS=ht((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,...l}=He("MenuLabel",null,e),c=Mu();return y.jsx(Re,{ref:r,...c.getStyles("label",{className:o,style:a,styles:i,classNames:n}),...l})});dS.classes=Pu,dS.displayName="@mantine/core/MenuLabel";const pS=ht((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,onMouseEnter:l,onMouseLeave:c,onKeyDown:u,children:d,...h}=He("MenuSubDropdown",null,e),f=E.useRef(null),g=Mu(),b=Y2(),x=zn(l,b?.open),w=zn(c,b?.close);return y.jsx(Rr.Dropdown,{...h,onMouseEnter:x,onMouseLeave:w,role:"menu","aria-orientation":"vertical",ref:Hr(r,f),...g.getStyles("dropdown",{className:o,style:a,styles:i,classNames:n,withStaticClass:!1}),tabIndex:-1,"data-menu-dropdown":!0,children:d})});pS.classes=Pu,pS.displayName="@mantine/core/MenuSubDropdown";const hS=so((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,color:l,leftSection:c,rightSection:u,children:d,disabled:h,"data-disabled":f,closeMenuOnClick:g,...b}=He("MenuSubItem",null,e),x=Mu(),w=Y2(),k=vo(),{dir:C}=Ru(),_=E.useRef(null),T=b,A=l?k.variantColorResolver({color:l,theme:k,variant:"light"}):void 0,R=l?Au({color:l,theme:k}):null,D=zn(T.onKeyDown,F=>{F.key==="ArrowRight"&&(w?.open(),w?.focusFirstItem()),F.key==="ArrowLeft"&&w?.parentContext&&(w.parentContext.close(),w.parentContext.focusParentItem())}),N=zn(T.onClick,()=>{!f&&g&&x.closeDropdownImmediately()}),M=zn(T.onMouseEnter,w?.open),O=zn(T.onMouseLeave,w?.close);return y.jsxs(Er,{onMouseDown:F=>F.preventDefault(),...b,unstyled:x.unstyled,tabIndex:x.menuItemTabIndex,...x.getStyles("item",{className:o,style:a,styles:i,classNames:n}),ref:Hr(_,r),role:"menuitem",disabled:h,"data-menu-item":!0,"data-sub-menu-item":!0,"data-disabled":h||f||void 0,"data-mantine-stop-propagation":!0,onMouseEnter:M,onMouseLeave:O,onClick:N,onKeyDown:N0({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":R?.isThemeColor&&R?.shade===void 0?`var(--mantine-color-${R.color}-6)`:A?.color,"--menu-item-hover":A?.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(U7,{...x.getStyles("chevron"),size:14})})]})});hS.classes=Pu,hS.displayName="@mantine/core/MenuSubItem";function sG({children:e,refProp:r}){if(!ps(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(Rr.Target,{refProp:r,popupType:"menu",children:e})}sG.displayName="@mantine/core/MenuSubTarget";const bOe={offset:0,position:"right-start",transitionProps:{duration:0},middlewares:{shift:{crossAxis:!0}}};function um(e){const{children:r,closeDelay:n,...o}=He("MenuSub",bOe,e),a=fi(),[i,{open:s,close:l}]=w$e(!1),c=Y2(),{openDropdown:u,closeDropdown:d}=MY({open:s,close:l,closeDelay:n,openDelay:0});return y.jsx(yOe,{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(Rr,{opened:i,withinPortal:!1,withArrow:!1,id:a,...o,children:r})})}um.extend=e=>e,um.displayName="@mantine/core/MenuSub",um.Target=sG,um.Dropdown=pS,um.Item=hS;const vOe={refProp:"ref"},G2=E.forwardRef((e,r)=>{const{children:n,refProp:o,...a}=He("MenuTarget",vOe,e);if(!ps(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(),s=n.props,l=zn(s.onClick,()=>{i.trigger==="click"?i.toggleDropdown():i.trigger==="click-hover"&&(i.setOpenedViaClick(!0),i.opened||i.openDropdown())}),c=zn(s.onMouseEnter,()=>(i.trigger==="hover"||i.trigger==="click-hover")&&i.openDropdown()),u=zn(s.onMouseLeave,()=>{(i.trigger==="hover"||i.trigger==="click-hover"&&!i.openedViaClick)&&i.closeDropdown()});return y.jsx(Rr.Target,{refProp:o,popupType:"menu",ref:r,...a,children:E.cloneElement(n,{onClick:l,onMouseEnter:c,onMouseLeave:u,"data-expanded":i.opened?!0:void 0})})});G2.displayName="@mantine/core/MenuTarget";const xOe={trapFocus:!0,closeOnItemClick:!0,withInitialFocusPlaceholder:!0,clickOutsideEvents:["mousedown","touchstart","keydown"],loop:!0,trigger:"click",openDelay:0,closeDelay:100,menuItemTabIndex:-1};function hn(e){const r=He("Menu",xOe,e),{children:n,onOpen:o,onClose:a,opened:i,defaultOpened:s,trapFocus:l,onChange:c,closeOnItemClick:u,loop:d,closeOnEscape:h,trigger:f,openDelay:g,closeDelay:b,classNames:x,styles:w,unstyled:k,variant:C,vars:_,menuItemTabIndex:T,keepMounted:A,withInitialFocusPlaceholder:R,attributes:D,...N}=r,M=Dt({name:"Menu",classes:Pu,props:r,classNames:x,styles:w,unstyled:k,attributes:D}),[O,F]=uc({value:i,defaultValue:s,finalValue:!1,onChange:c}),[L,U]=E.useState(!1),P=()=>{F(!1),U(!1),O&&a?.()},V=()=>{F(!0),!O&&o?.()},I=()=>{O?P():V()},{openDropdown:H,closeDropdown:q}=MY({open:V,close:P,closeDelay:b,openDelay:g}),Z=K=>UDe("[data-menu-item]","[data-menu-dropdown]",K),{resolvedClassNames:W,resolvedStyles:G}=s7({classNames:x,styles:w,props:r});return y.jsx(gOe,{value:{getStyles:M,opened:O,toggleDropdown:I,getItemIndex:Z,openedViaClick:L,setOpenedViaClick:U,closeOnItemClick:u,closeDropdown:f==="click"?P:q,openDropdown:f==="click"?V:H,closeDropdownImmediately:P,loop:d,trigger:f,unstyled:k,menuItemTabIndex:T,withInitialFocusPlaceholder:R},children:y.jsx(Rr,{...N,opened:O,onChange:I,defaultOpened:s,trapFocus:A?!1:l,closeOnEscape:h,__staticSelector:"Menu",classNames:W,styles:G,unstyled:k,variant:C,keepMounted:A,children:n})})}hn.extend=e=>e,hn.withProps=jMe(hn),hn.classes=Pu,hn.displayName="@mantine/core/Menu",hn.Item=U0,hn.Label=dS,hn.Dropdown=q0,hn.Target=G2,hn.Divider=uS,hn.Sub=um;const[dkt,lG]=R0(),[wOe,kOe]=R0();var X2={root:"m_7cda1cd6","root--default":"m_44da308b","root--contrast":"m_e3a01f8",label:"m_1e0e6180",remove:"m_ae386778",group:"m_1dcfd90b"};const _Oe=(e,{gap:r},{size:n})=>({group:{"--pg-gap":r!==void 0?kr(r):kr(n,"pg-gap")}}),fS=ht((e,r)=>{const n=He("PillGroup",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,size:u,disabled:d,attributes:h,...f}=n,g=lG()?.size||u||void 0,b=Dt({name:"PillGroup",classes:X2,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:h,vars:c,varsResolver:_Oe,stylesCtx:{size:g},rootSelector:"group"});return y.jsx(wOe,{value:{size:g,disabled:d},children:y.jsx(Re,{ref:r,size:g,...b("group"),...f})})});fS.classes=X2,fS.displayName="@mantine/core/PillGroup";const EOe={variant:"default"},SOe=(e,{radius:r},{size:n})=>({root:{"--pill-fz":kr(n,"pill-fz"),"--pill-height":kr(n,"pill-height"),"--pill-radius":r===void 0?void 0:Pn(r)}}),K2=ht((e,r)=>{const n=He("Pill",EOe,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,variant:u,children:d,withRemoveButton:h,onRemove:f,removeButtonProps:g,radius:b,size:x,disabled:w,mod:k,attributes:C,..._}=n,T=kOe(),A=lG(),R=x||T?.size||void 0,D=A?.variant==="filled"?"contrast":u||"default",N=Dt({name:"Pill",classes:X2,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:C,vars:c,varsResolver:SOe,stylesCtx:{size:R}});return y.jsxs(Re,{component:"span",ref:r,variant:D,size:R,...N("root",{variant:D}),mod:[{"with-remove":h&&!w,disabled:w||T?.disabled},k],..._,children:[y.jsx("span",{...N("label"),children:d}),h&&y.jsx(wp,{variant:"transparent",radius:b,tabIndex:-1,"aria-hidden":!0,unstyled:l,...g,...N("remove",{className:g?.className,style:g?.style}),onMouseDown:M=>{M.preventDefault(),M.stopPropagation(),g?.onMouseDown?.(M)},onClick:M=>{M.stopPropagation(),f?.(),g?.onClick?.(M)}})]})});K2.classes=X2,K2.displayName="@mantine/core/Pill",K2.Group=fS;var cG={root:"m_f0824112",description:"m_57492dcc",section:"m_690090b5",label:"m_1f6ac4c4",body:"m_f07af9d2",children:"m_e17b862f",chevron:"m_1fd8a00b"};const COe=(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":cc(o)}}},mS=so((e,r)=>{const n=He("NavLink",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,opened:u,defaultOpened:d,onChange:h,children:f,active:g,disabled:b,leftSection:x,rightSection:w,label:k,description:C,disableRightSectionRotation:_,noWrap:T,childrenOffset:A,autoContrast:R,mod:D,attributes:N,onClick:M,onKeyDown:O,...F}=n,L=Dt({name:"NavLink",props:n,classes:cG,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:N,vars:c,varsResolver:COe}),[U,P]=uc({value:u,defaultValue:d,finalValue:!1,onChange:h}),V=!!f,I=H=>{M?.(H),V&&(H.preventDefault(),P(!U))};return y.jsxs(y.Fragment,{children:[y.jsxs(Er,{...L("root"),component:"a",ref:r,onClick:I,onKeyDown:H=>{O?.(H),H.nativeEvent.code==="Space"&&V&&(H.preventDefault(),P(!U))},unstyled:l,mod:[{disabled:b,active:g,expanded:U},D],...F,children:[x&&y.jsx(Re,{component:"span",...L("section"),mod:{position:"left"},children:x}),y.jsxs(Re,{...L("body"),mod:{"no-wrap":T},children:[y.jsx(Re,{component:"span",...L("label"),children:k}),y.jsx(Re,{component:"span",mod:{active:g},...L("description"),children:C})]}),(V||w!==void 0)&&y.jsx(Re,{...L("section"),component:"span",mod:{rotate:U&&!_,position:"right"},children:V?w!==void 0?w:y.jsx(U7,{...L("chevron")}):w})]}),V&&y.jsx(tW,{in:U,...L("collapse"),children:y.jsx("div",{...L("children"),children:f})})]})});mS.classes=cG,mS.displayName="@mantine/core/NavLink";var uG={root:"m_a513464",icon:"m_a4ceffb",loader:"m_b0920b15",body:"m_a49ed24",title:"m_3feedf16",description:"m_3d733a3a",closeButton:"m_919a4d88"};const TOe={withCloseButton:!0},AOe=(e,{radius:r,color:n})=>({root:{"--notification-radius":r===void 0?void 0:Pn(r),"--notification-color":n?Ia(n,e):void 0}}),Z2=ht((e,r)=>{const n=He("Notification",TOe,e),{className:o,color:a,radius:i,loading:s,withCloseButton:l,withBorder:c,title:u,icon:d,children:h,onClose:f,closeButtonProps:g,classNames:b,style:x,styles:w,unstyled:k,variant:C,vars:_,mod:T,loaderProps:A,role:R,attributes:D,...N}=n,M=Dt({name:"Notification",classes:uG,props:n,className:o,style:x,classNames:b,styles:w,unstyled:k,attributes:D,vars:_,varsResolver:AOe});return y.jsxs(Re,{...M("root"),mod:[{"data-with-icon":!!d||s,"data-with-border":c},T],ref:r,variant:C,role:R||"alert",...N,children:[d&&!s&&y.jsx("div",{...M("icon"),children:d}),s&&y.jsx(im,{size:28,color:a,...A,...M("loader")}),y.jsxs("div",{...M("body"),children:[u&&y.jsx("div",{...M("title"),children:u}),y.jsx(Re,{...M("description"),mod:{"data-with-title":!!u},children:h})]}),l&&y.jsx(wp,{iconSize:16,color:"gray",...g,unstyled:k,onClick:f,...M("closeButton")})]})});Z2.classes=uG,Z2.displayName="@mantine/core/Notification";const ROe={duration:100,transition:"fade"};function dG(e,r){return{...ROe,...r,...e}}function NOe({offset:e,position:r,defaultOpened:n}){const[o,a]=E.useState(n),i=E.useRef(null),{x:s,y:l,elements:c,refs:u,update:d,placement:h}=A2({placement:r,middleware:[A7({crossAxis:!0,padding:5,rootBoundary:"document"})]}),f=h.includes("right")?e:r.includes("left")?e*-1:0,g=h.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=hc(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:s,y:l,opened:o,setOpened:a,boundaryRef:i,floating:u.setFloating}}var Q2={tooltip:"m_1b3c8819",arrow:"m_f898399f"};const DOe={refProp:"ref",withinPortal:!0,offset:10,position:"right",zIndex:J3("popover")},$Oe=(e,{radius:r,color:n})=>({tooltip:{"--tooltip-radius":r===void 0?void 0:Pn(r),"--tooltip-bg":n?Ia(n,e):void 0,"--tooltip-color":n?"var(--mantine-color-white)":void 0}}),gS=ht((e,r)=>{const n=He("TooltipFloating",DOe,e),{children:o,refProp:a,withinPortal:i,style:s,className:l,classNames:c,styles:u,unstyled:d,radius:h,color:f,label:g,offset:b,position:x,multiline:w,zIndex:k,disabled:C,defaultOpened:_,variant:T,vars:A,portalProps:R,attributes:D,...N}=n,M=vo(),O=Dt({name:"TooltipFloating",props:n,classes:Q2,className:l,style:s,classNames:c,styles:u,unstyled:d,attributes:D,rootSelector:"tooltip",vars:A,varsResolver:$Oe}),{handleMouseMove:F,x:L,y:U,opened:P,boundaryRef:V,floating:I,setOpened:H}=NOe({offset:b,position:x,defaultOpened:_});if(!ps(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 q=Hr(V,r2(o),r),Z=o.props,W=K=>{Z.onMouseEnter?.(K),F(K),H(!0)},G=K=>{Z.onMouseLeave?.(K),H(!1)};return y.jsxs(y.Fragment,{children:[y.jsx(am,{...R,withinPortal:i,children:y.jsx(Re,{...N,...O("tooltip",{style:{...p7(s,M),zIndex:k,display:!C&&P?"block":"none",top:(U&&Math.round(U))??"",left:(L&&Math.round(L))??""}}),variant:T,ref:I,mod:{multiline:w},children:g})}),E.cloneElement(o,{...Z,[a]:q,onMouseEnter:W,onMouseLeave:G})]})});gS.classes=Q2,gS.displayName="@mantine/core/TooltipFloating";const pG=E.createContext(!1),MOe=pG.Provider,POe=()=>E.useContext(pG),zOe={openDelay:0,closeDelay:0};function Ep(e){const{openDelay:r,closeDelay:n,children:o}=He("TooltipGroup",zOe,e);return y.jsx(MOe,{value:!0,children:y.jsx(UW,{delay:{open:r,close:n},children:o})})}Ep.displayName="@mantine/core/TooltipGroup",Ep.extend=e=>e;function IOe(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 OOe(e){const r=IOe(e.middlewares),n=[MW(e.offset)];return r.shift&&n.push(A7(typeof r.shift=="boolean"?{padding:8}:{padding:8,...r.shift})),r.flip&&n.push(typeof r.flip=="boolean"?C2():C2(r.flip)),n.push(zW({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 jOe(e){const[r,n]=E.useState(e.defaultOpened),o=typeof e.opened=="boolean"?e.opened:r,a=POe(),i=fi(),s=E.useCallback(T=>{n(T),T&&w(i)},[i]),{x:l,y:c,context:u,refs:d,placement:h,middlewareData:{arrow:{x:f,y:g}={}}}=A2({strategy:e.strategy,placement:e.position,open:o,onOpenChange:s,middleware:OOe(e),whileElementsMounted:_2}),{delay:b,currentId:x,setCurrentId:w}=WW(u,{id:i}),{getReferenceProps:k,getFloatingProps:C}=XW([VW(u,{enabled:e.events?.hover,delay:a?b:{open:e.openDelay,close:e.closeDelay},mouseOnly:!e.events?.touch}),kze(u,{enabled:e.events?.focus,visibleOnly:!0}),KW(u,{role:"tooltip"}),GW(u,{enabled:typeof e.opened>"u"})]);gp(()=>{e.onPositionChange?.(h)},[h]);const _=o&&x&&x!==i;return{x:l,y:c,arrowX:f,arrowY:g,reference:d.setReference,floating:d.setFloating,getFloatingProps:C,getReferenceProps:k,isGroupPhase:_,opened:o,placement:h}}const hG={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:J3("popover"),positionDependencies:[],middlewares:{flip:!0,shift:!0,inline:!1}},LOe=(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:Pn(r),"--tooltip-bg":n?i.background:void 0,"--tooltip-color":n?i.color:void 0}}},co=ht((e,r)=>{const n=He("Tooltip",hG,e),{children:o,position:a,refProp:i,label:s,openDelay:l,closeDelay:c,onPositionChange:u,opened:d,defaultOpened:h,withinPortal:f,radius:g,color:b,classNames:x,styles:w,unstyled:k,style:C,className:_,withArrow:T,arrowSize:A,arrowOffset:R,arrowRadius:D,arrowPosition:N,offset:M,transitionProps:O,multiline:F,events:L,zIndex:U,disabled:P,positionDependencies:V,onClick:I,onMouseEnter:H,onMouseLeave:q,inline:Z,variant:W,keepMounted:G,vars:K,portalProps:j,mod:Y,floatingStrategy:Q,middlewares:J,autoContrast:ie,attributes:ne,target:re,...ge}=He("Tooltip",hG,n),{dir:De}=Ru(),he=E.useRef(null),me=jOe({position:mY(De,a),closeDelay:c,openDelay:l,onPositionChange:u,opened:d,defaultOpened:h,events:L,arrowRef:he,arrowOffset:R,offset:typeof M=="number"?M+(T?A/2:0):M,positionDependencies:[...V,re??o],inline:Z,strategy:Q,middlewares:J});E.useEffect(()=>{const Qe=re instanceof HTMLElement?re:typeof re=="string"?document.querySelector(re):re?.current||null;Qe&&me.reference(Qe)},[re,me]);const Te=Dt({name:"Tooltip",props:n,classes:Q2,className:_,style:C,classNames:x,styles:w,unstyled:k,attributes:ne,rootSelector:"tooltip",vars:K,varsResolver:LOe});if(!re&&!ps(o))return null;if(re){const Qe=dG(O,{duration:100,transition:"fade"});return y.jsx(y.Fragment,{children:y.jsx(am,{...j,withinPortal:f,children:y.jsx(Du,{...Qe,keepMounted:G,mounted:!P&&!!me.opened,duration:me.isGroupPhase?10:Qe.duration,children:Pt=>y.jsxs(Re,{...ge,"data-fixed":Q==="fixed"||void 0,variant:W,mod:[{multiline:F},Y],...me.getFloatingProps({ref:me.floating,className:Te("tooltip").className,style:{...Te("tooltip").style,...Pt,zIndex:U,top:me.y??0,left:me.x??0}}),children:[s,y.jsx($2,{ref:he,arrowX:me.arrowX,arrowY:me.arrowY,visible:T,position:me.placement,arrowSize:A,arrowOffset:R,arrowRadius:D,arrowPosition:N,...Te("arrow")})]})})})})}const Ie=o,Ze=Ie.props,rt=Hr(me.reference,r2(Ie),r),Rt=dG(O,{duration:100,transition:"fade"});return y.jsxs(y.Fragment,{children:[y.jsx(am,{...j,withinPortal:f,children:y.jsx(Du,{...Rt,keepMounted:G,mounted:!P&&!!me.opened,duration:me.isGroupPhase?10:Rt.duration,children:Qe=>y.jsxs(Re,{...ge,"data-fixed":Q==="fixed"||void 0,variant:W,mod:[{multiline:F},Y],...me.getFloatingProps({ref:me.floating,className:Te("tooltip").className,style:{...Te("tooltip").style,...Qe,zIndex:U,top:me.y??0,left:me.x??0}}),children:[s,y.jsx($2,{ref:he,arrowX:me.arrowX,arrowY:me.arrowY,visible:T,position:me.placement,arrowSize:A,arrowOffset:R,arrowRadius:D,arrowPosition:N,...Te("arrow")})]})})}),E.cloneElement(Ie,me.getReferenceProps({onClick:I,onMouseEnter:H,onMouseLeave:q,onMouseMove:n.onMouseMove,onPointerDown:n.onPointerDown,onPointerEnter:n.onPointerEnter,className:hs(_,Ze.className),...Ze,[i]:rt}))]})});co.classes=Q2,co.displayName="@mantine/core/Tooltip",co.Floating=gS,co.Group=Ep;var fG={root:"m_cf365364",indicator:"m_9e182ccd",label:"m_1738fcb2",input:"m_1714d588",control:"m_69686b9b",innerLabel:"m_78882f40"};const BOe={withItemsBorders:!0},FOe=(e,{radius:r,color:n,transitionDuration:o,size:a,transitionTimingFunction:i})=>({root:{"--sc-radius":r===void 0?void 0:Pn(r),"--sc-color":n?Ia(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":kr(a,"sc-padding"),"--sc-font-size":Io(a)}}),dm=ht((e,r)=>{const n=He("SegmentedControl",BOe,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,data:u,value:d,defaultValue:h,onChange:f,size:g,name:b,disabled:x,readOnly:w,fullWidth:k,orientation:C,radius:_,color:T,transitionDuration:A,transitionTimingFunction:R,variant:D,autoContrast:N,withItemsBorders:M,mod:O,attributes:F,...L}=n,U=Dt({name:"SegmentedControl",props:n,classes:fG,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:F,vars:c,varsResolver:FOe}),P=vo(),V=u.map(re=>typeof re=="string"?{label:re,value:re}:re),I=E$e(),[H,q]=E.useState(U9()),[Z,W]=E.useState(null),[G,K]=E.useState({}),j=(re,ge)=>{G[ge]=re,K(G)},[Y,Q]=uc({value:d,defaultValue:h,finalValue:Array.isArray(u)?V.find(re=>!re.disabled)?.value??u[0]?.value??null:null,onChange:f}),J=fi(b),ie=V.map(re=>E.createElement(Re,{...U("control"),mod:{active:Y===re.value,orientation:C},key:re.value},E.createElement("input",{...U("input"),disabled:x||re.disabled,type:"radio",name:J,value:re.value,id:`${J}-${re.value}`,checked:Y===re.value,onChange:()=>!w&&Q(re.value),"data-focus-ring":P.focusRing,key:`${re.value}-input`}),E.createElement(Re,{component:"label",...U("label"),mod:{active:Y===re.value&&!(x||re.disabled),disabled:x||re.disabled,"read-only":w},htmlFor:`${J}-${re.value}`,ref:ge=>j(ge,re.value),__vars:{"--sc-label-color":T!==void 0?o7({color:T,theme:P,autoContrast:N}):void 0},key:`${re.value}-label`},y.jsx("span",{...U("innerLabel"),children:re.label})))),ne=Hr(r,re=>W(re));return f$e(()=>{q(U9())},[u.length]),u.length===0?null:y.jsxs(Re,{...U("root"),variant:D,size:g,ref:ne,mod:[{"full-width":k,orientation:C,initialized:I,"with-items-borders":M},O],...L,role:"radiogroup","data-disabled":x,children:[typeof Y=="string"&&y.jsx(B2,{target:G[Y],parent:Z,component:"span",transitionDuration:"var(--sc-transition-duration)",...U("indicator")},H),ie]})});dm.classes=fG,dm.displayName="@mantine/core/SegmentedControl";const[HOe,J2]=hi("SliderProvider was not found in tree"),mG=E.forwardRef(({size:e,disabled:r,variant:n,color:o,thumbSize:a,radius:i,...s},l)=>{const{getStyles:c}=J2();return y.jsx(Re,{tabIndex:-1,variant:n,size:e,ref:l,...c("root"),...s})});mG.displayName="@mantine/core/SliderRoot";const gG=E.forwardRef(({max:e,min:r,value:n,position:o,label:a,dragging:i,onMouseDown:s,onKeyDownCapture:l,labelTransitionProps:c,labelAlwaysOn:u,thumbLabel:d,onFocus:h,onBlur:f,showLabelOnHover:g,isHovered:b,children:x=null,disabled:w},k)=>{const{getStyles:C}=J2(),[_,T]=E.useState(!1),A=u||i||_||g&&b;return y.jsxs(Re,{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:R=>{T(!0),typeof h=="function"&&h(R)},onBlur:R=>{T(!1),typeof f=="function"&&f(R)},onTouchStart:s,onMouseDown:s,onKeyDownCapture:l,onClick:R=>R.stopPropagation(),children:[x,y.jsx(Du,{mounted:a!=null&&!!A,transition:"fade",duration:0,...c,children:R=>y.jsx("div",{...C("label",{style:R}),children:a})})]})});gG.displayName="@mantine/core/SliderThumb";function yG({value:e,min:r,max:n}){const o=(e-r)/(n-r)*100;return Math.min(Math.max(o,0),100)}function VOe({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 bG({marks:e,min:r,max:n,disabled:o,value:a,offset:i,inverted:s}){const{getStyles:l}=J2();if(!e)return null;const c=e.map((u,d)=>E.createElement(Re,{...l("markWrapper"),__vars:{"--mark-offset":`${yG({value:u.value,min:r,max:n})}%`},key:d},y.jsx(Re,{...l("mark"),mod:{filled:VOe({mark:u,value:a,offset:i,inverted:s}),disabled:o}}),u.label&&y.jsx("div",{...l("markLabel"),children:u.label})));return y.jsx("div",{children:c})}bG.displayName="@mantine/core/SliderMarks";function vG({filled:e,children:r,offset:n,disabled:o,marksOffset:a,inverted:i,containerProps:s,...l}){const{getStyles:c}=J2();return y.jsx(Re,{...c("trackContainer"),mod:{disabled:o},...s,children:y.jsxs(Re,{...c("track"),mod:{inverted:i,disabled:o},children:[y.jsx(Re,{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(bG,{...l,offset:a,disabled:o,inverted:i})]})})}vG.displayName="@mantine/core/SliderTrack";function qOe({value:e,containerWidth:r,min:n,max:o,step:a,precision:i}){const s=(r?Math.min(Math.max(e,0),r)/r:e)*(o-n),l=(s!==0?Math.round(s/a)*a:0)+n,c=Math.max(l,n);return i!==void 0?Number(c.toFixed(i)):c}function ew(e,r){return parseFloat(e.toFixed(r))}function UOe(e){if(!e)return 0;const r=e.toString().split(".");return r.length>1?r[1].length:0}function yS(e,r){const n=[...r].sort((o,a)=>o.value-a.value).find(o=>o.value>e);return n?n.value:e}function bS(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 wG(e){const r=[...e].sort((n,o)=>n.value-o.value);return r.length>0?r[r.length-1].value:100}var kG={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 WOe={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"},YOe=(e,{size:r,color:n,thumbSize:o,radius:a})=>({root:{"--slider-size":kr(r,"slider-size"),"--slider-color":n?Ia(n,e):void 0,"--slider-radius":a===void 0?void 0:Pn(a),"--slider-thumb-size":o!==void 0?Me(o):"calc(var(--slider-size) * 2)"}}),vS=ht((e,r)=>{const n=He("Slider",WOe,e),{classNames:o,styles:a,value:i,onChange:s,onChangeEnd:l,size:c,min:u,max:d,domain:h,step:f,precision:g,defaultValue:b,name:x,marks:w,label:k,labelTransitionProps:C,labelAlwaysOn:_,thumbLabel:T,showLabelOnHover:A,thumbChildren:R,disabled:D,unstyled:N,scale:M,inverted:O,className:F,style:L,vars:U,hiddenInputProps:P,restrictToMarks:V,thumbProps:I,attributes:H,...q}=n,Z=Dt({name:"Slider",props:n,classes:kG,classNames:o,className:F,styles:a,style:L,attributes:H,vars:U,varsResolver:YOe,unstyled:N}),{dir:W}=Ru(),[G,K]=E.useState(!1),[j,Y]=uc({value:typeof i=="number"?Cu(i,u,d):i,defaultValue:typeof b=="number"?Cu(b,u,d):b,finalValue:Cu(0,u,d),onChange:s}),Q=E.useRef(j),J=E.useRef(l);E.useEffect(()=>{J.current=l},[l]);const ie=E.useRef(null),ne=E.useRef(null),[re,ge]=h||[u,d],De=yG({value:j,min:re,max:ge}),he=M(j),me=typeof k=="function"?k(he):k,Te=g??UOe(f),Ie=E.useCallback(({x:Ke})=>{if(!D){const Ge=qOe({value:Ke,min:re,max:ge,step:f,precision:Te}),ct=Cu(Ge,u,d);Y(V&&w?.length?PU(ct,w.map(ut=>ut.value)):ct),Q.current=ct}},[D,u,d,re,ge,f,Te,Y,w,V]),Ze=E.useCallback(()=>{if(!D&&J.current){const Ke=V&&w?.length?PU(Q.current,w.map(Ge=>Ge.value)):Q.current;J.current(Ke)}},[D,w,V]),{ref:rt,active:Rt}=CU(Ie,{onScrubEnd:Ze},W),Qe=E.useCallback(Ke=>{!D&&J.current&&J.current(Ke)},[D]),Pt=Ke=>{if(!D)switch(Ke.key){case"ArrowUp":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){const ct=yS(j,w);Y(ct),Qe(ct);break}const Ge=ew(Math.min(Math.max(j+f,u),d),Te);Y(Ge),Qe(Ge);break}case"ArrowRight":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){const ct=W==="rtl"?bS(j,w):yS(j,w);Y(ct),Qe(ct);break}const Ge=ew(Math.min(Math.max(W==="rtl"?j-f:j+f,u),d),Te);Y(Ge),Qe(Ge);break}case"ArrowDown":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){const ct=bS(j,w);Y(ct),Qe(ct);break}const Ge=ew(Math.min(Math.max(j-f,u),d),Te);Y(Ge),Qe(Ge);break}case"ArrowLeft":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){const ct=W==="rtl"?yS(j,w):bS(j,w);Y(ct),Qe(ct);break}const Ge=ew(Math.min(Math.max(W==="rtl"?j+f:j-f,u),d),Te);Y(Ge),Qe(Ge);break}case"Home":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){Y(xG(w)),Qe(xG(w));break}Y(u),Qe(u);break}case"End":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){Y(wG(w)),Qe(wG(w));break}Y(d),Qe(d);break}}};return y.jsx(HOe,{value:{getStyles:Z},children:y.jsxs(mG,{...q,ref:Hr(r,ie),onKeyDownCapture:Pt,onMouseDownCapture:()=>ie.current?.focus(),size:c,disabled:D,children:[y.jsx(vG,{inverted:O,offset:0,filled:De,marks:w,min:re,max:ge,value:he,disabled:D,containerProps:{ref:rt,onMouseEnter:A?()=>K(!0):void 0,onMouseLeave:A?()=>K(!1):void 0},children:y.jsx(gG,{max:ge,min:re,value:he,position:De,dragging:Rt,label:me,ref:ne,labelTransitionProps:C,labelAlwaysOn:_,thumbLabel:T,showLabelOnHover:A,isHovered:G,disabled:D,...I,children:R})}),y.jsx("input",{type:"hidden",name:x,value:he,...P})]})})});vS.classes=kG,vS.displayName="@mantine/core/Slider";const xS=ht((e,r)=>{const{w:n,h:o,miw:a,mih:i,...s}=He("Space",null,e);return y.jsx(Re,{ref:r,...s,w:n,miw:a??n,h:o,mih:i??o})});xS.displayName="@mantine/core/Space";var _G={root:"m_6d731127"};const GOe={gap:"md",align:"stretch",justify:"flex-start"},XOe=(e,{gap:r,align:n,justify:o})=>({root:{"--stack-gap":cc(r),"--stack-align":n,"--stack-justify":o}}),Xo=ht((e,r)=>{const n=He("Stack",GOe,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,align:u,justify:d,gap:h,variant:f,attributes:g,...b}=n,x=Dt({name:"Stack",props:n,classes:_G,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:g,vars:c,varsResolver:XOe});return y.jsx(Re,{ref:r,...x("root"),variant:f,...b})});Xo.classes=_G,Xo.displayName="@mantine/core/Stack";const[KOe,wS]=hi("Tabs component was not found in the tree");var W0={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 Y0=ht((e,r)=>{const n=He("TabsList",null,e),{children:o,className:a,grow:i,justify:s,classNames:l,styles:c,style:u,mod:d,...h}=n,f=wS();return y.jsx(Re,{...h,...f.getStyles("list",{className:a,style:u,classNames:l,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":s},children:o})});Y0.classes=W0,Y0.displayName="@mantine/core/TabsList";const yc=ht((e,r)=>{const n=He("TabsPanel",null,e),{children:o,className:a,value:i,classNames:s,styles:l,style:c,mod:u,keepMounted:d,...h}=n,f=wS(),g=f.value===i,b=f.keepMounted||d||g?o:null;return y.jsx(Re,{...f.getStyles("panel",{className:a,classNames:s,styles:l,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),...h,children:b})});yc.classes=W0,yc.displayName="@mantine/core/TabsPanel";const pm=ht((e,r)=>{const n=He("TabsTab",null,e),{className:o,children:a,rightSection:i,leftSection:s,value:l,onClick:c,onKeyDown:u,disabled:d,color:h,style:f,classNames:g,styles:b,vars:x,mod:w,tabIndex:k,...C}=n,_=vo(),{dir:T}=Ru(),A=wS(),R=l===A.value,D=M=>{A.onChange(A.allowTabDeactivation&&l===A.value?null:l),c?.(M)},N={classNames:g,styles:b,props:n};return y.jsxs(Er,{...A.getStyles("tab",{className:o,style:f,variant:A.variant,...N}),disabled:d,unstyled:A.unstyled,variant:A.variant,mod:[{active:R,disabled:d,orientation:A.orientation,inverted:A.inverted,placement:A.orientation==="vertical"&&A.placement},w],ref:r,role:"tab",id:A.getTabId(l),"aria-selected":R,tabIndex:k!==void 0?k:R||A.value===null?0:-1,"aria-controls":A.getPanelId(l),onClick:D,__vars:{"--tabs-color":h?Ia(h,_):void 0},onKeyDown:N0({siblingSelector:'[role="tab"]',parentSelector:'[role="tablist"]',activateOnFocus:A.activateTabWithKeyboard,loop:A.loop,orientation:A.orientation||"horizontal",dir:T,onKeyDown:u}),...C,children:[s&&y.jsx("span",{...A.getStyles("tabSection",N),"data-position":"left",children:s}),a&&y.jsx("span",{...A.getStyles("tabLabel",N),children:a}),i&&y.jsx("span",{...A.getStyles("tabSection",N),"data-position":"right",children:i})]})});pm.classes=W0,pm.displayName="@mantine/core/TabsTab";const EG="Tabs.Tab or Tabs.Panel component was rendered with invalid value or without value",ZOe={keepMounted:!0,orientation:"horizontal",loop:!0,activateTabWithKeyboard:!0,variant:"default",placement:"left"},QOe=(e,{radius:r,color:n,autoContrast:o})=>({root:{"--tabs-radius":Pn(r),"--tabs-color":Ia(n,e),"--tabs-text-color":gMe(o,e)?o7({color:n,theme:e,autoContrast:o}):void 0}}),Sp=ht((e,r)=>{const n=He("Tabs",ZOe,e),{defaultValue:o,value:a,onChange:i,orientation:s,children:l,loop:c,id:u,activateTabWithKeyboard:d,allowTabDeactivation:h,variant:f,color:g,radius:b,inverted:x,placement:w,keepMounted:k,classNames:C,styles:_,unstyled:T,className:A,style:R,vars:D,autoContrast:N,mod:M,attributes:O,...F}=n,L=fi(u),[U,P]=uc({value:a,defaultValue:o,finalValue:null,onChange:i}),V=Dt({name:"Tabs",props:n,classes:W0,className:A,style:R,classNames:C,styles:_,unstyled:T,attributes:O,vars:D,varsResolver:QOe});return y.jsx(KOe,{value:{placement:w,value:U,orientation:s,id:L,loop:c,activateTabWithKeyboard:d,getTabId:hU(`${L}-tab`,EG),getPanelId:hU(`${L}-panel`,EG),onChange:P,allowTabDeactivation:h,variant:f,color:g,radius:b,inverted:x,keepMounted:k,unstyled:T,getStyles:V},children:y.jsx(Re,{ref:r,id:L,variant:f,mod:[{orientation:s,inverted:s==="horizontal"&&x,placement:s==="vertical"&&w},M],...V("root"),...F,children:l})})});Sp.classes=W0,Sp.displayName="@mantine/core/Tabs",Sp.Tab=pm,Sp.Panel=yc,Sp.List=Y0;var SG={root:"m_7341320d"};const JOe=(e,{size:r,radius:n,variant:o,gradient:a,color:i,autoContrast:s})=>{const l=e.variantColorResolver({color:i||e.primaryColor,theme:e,gradient:a,variant:o||"filled",autoContrast:s});return{root:{"--ti-size":kr(r,"ti-size"),"--ti-radius":n===void 0?void 0:Pn(n),"--ti-bg":i||o?l.background:void 0,"--ti-color":i||o?l.color:void 0,"--ti-bd":i||o?l.border:void 0}}},Ba=ht((e,r)=>{const n=He("ThemeIcon",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,autoContrast:u,attributes:d,...h}=n,f=Dt({name:"ThemeIcon",classes:SG,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:d,vars:c,varsResolver:JOe});return y.jsx(Re,{ref:r,...f("root"),...h})});Ba.classes=SG,Ba.displayName="@mantine/core/ThemeIcon";const eje=["h1","h2","h3","h4","h5","h6"],tje=["xs","sm","md","lg","xl"];function rje(e,r){const n=r!==void 0?r:`h${e}`;return eje.includes(n)?{fontSize:`var(--mantine-${n}-font-size)`,fontWeight:`var(--mantine-${n}-font-weight)`,lineHeight:`var(--mantine-${n}-line-height)`}:tje.includes(n)?{fontSize:`var(--mantine-font-size-${n})`,fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}:{fontSize:Me(n),fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}}var CG={root:"m_8a5d1357"};const nje={order:1},oje=(e,{order:r,size:n,lineClamp:o,textWrap:a})=>{const i=rje(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}}},Cp=ht((e,r)=>{const n=He("Title",nje,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,order:c,vars:u,size:d,variant:h,lineClamp:f,textWrap:g,mod:b,attributes:x,...w}=n,k=Dt({name:"Title",props:n,classes:CG,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:x,vars:u,varsResolver:oje});return[1,2,3,4,5,6].includes(c)?y.jsx(Re,{...k("root"),component:`h${c}`,variant:h,ref:r,mod:[{order:c,"data-line-clamp":typeof f=="number"},b],size:d,...w}):null});Cp.classes=CG,Cp.displayName="@mantine/core/Title";function TG(e,r,n){if(!e||!r)return[];const o=n.indexOf(e),a=n.indexOf(r),i=Math.min(o,a),s=Math.max(o,a);return n.slice(i,s+1)}function kS({node:e,getStyles:r,rootIndex:n,controller:o,expandOnClick:a,selectOnClick:i,isSubtree:s,level:l=1,renderNode:c,flatValues:u,allowRangeSelection:d,expandOnSpace:h,checkOnSpace:f}){const g=E.useRef(null),b=(e.children||[]).map(_=>y.jsx(kS,{node:_,flatValues:u,getStyles:r,rootIndex:void 0,level:l+1,controller:o,expandOnClick:a,isSubtree:!0,renderNode:c,selectOnClick:i,allowRangeSelection:d,expandOnSpace:h,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):s&&Wf(_.currentTarget,"[role=treeitem]")?.focus()),_.nativeEvent.code==="ArrowDown"||_.nativeEvent.code==="ArrowUp"){const T=Wf(_.currentTarget,"[data-tree-root]");if(!T)return;_.stopPropagation(),_.preventDefault();const A=Array.from(T.querySelectorAll("[role=treeitem]")),R=A.indexOf(_.currentTarget);if(R===-1)return;const D=_.nativeEvent.code==="ArrowDown"?R+1:R-1;if(A[D]?.focus(),_.shiftKey){const N=A[D];N&&o.setSelectedState(TG(o.anchorNode,N.dataset.value,u))}}_.nativeEvent.code==="Space"&&(h&&(_.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(TG(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) * ${l-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":l,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:l,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(Re,{component:"ul",role:"group",...r("subtree"),"data-level":l,children:b})]})}kS.displayName="@mantine/core/TreeNode";function tw(e,r,n=[]){const o=[];for(const a of e)if(Array.isArray(a.children)&&a.children.length>0){const i=tw(a.children,r,n);if(i.currentTreeChecked.length===a.children.length){const s=i.currentTreeChecked.every(c=>c.checked),l={checked:s,indeterminate:!s,value:a.value,hasChildren:!0};o.push(l),n.push(l)}else if(i.currentTreeChecked.length>0){const s={checked:!1,indeterminate:!0,value:a.value,hasChildren:!0};o.push(s),n.push(s)}}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 AG(e,r){for(const n of r){if(n.value===e)return n;if(Array.isArray(n.children)){const o=AG(e,n.children);if(o)return o}}return null}function rw(e,r,n=[]){const o=AG(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?rw(a.value,r,n):n.push(a.value)}),n):n}function RG(e){return e.reduce((r,n)=>(Array.isArray(n.children)&&n.children.length>0?r.push(...RG(n.children)):r.push(n.value),r),[])}function aje(e,r,n){return n.length===0?!1:n.includes(e)?!0:tw(r,n).result.some(o=>o.value===e&&o.checked)}const ije=MU(aje);function sje(e,r,n){return n.length===0?!1:tw(r,n).result.some(o=>o.value===e&&o.indeterminate)}const lje=MU(sje);function NG(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)&&NG(e,a.children,n,o)}),o}function cje(e,r){const n=[];return e.forEach(o=>n.push(...rw(o,r))),Array.from(new Set(n))}function G0({initialSelectedState:e=[],initialCheckedState:r=[],initialExpandedState:n={},multiple:o=!1,onNodeCollapse:a,onNodeExpand:i}={}){const[s,l]=E.useState([]),[c,u]=E.useState(n),[d,h]=E.useState(e),[f,g]=E.useState(r),[b,x]=E.useState(null),[w,k]=E.useState(null),C=E.useCallback(I=>{u(H=>NG(H,I,d)),g(H=>cje(H,I)),l(I)},[d,f]),_=E.useCallback(I=>{u(H=>{const q={...H,[I]:!H[I]};return q[I]?i?.(I):a?.(I),q})},[a,i]),T=E.useCallback(I=>{u(H=>(H[I]!==!1&&a?.(I),{...H,[I]:!1}))},[a]),A=E.useCallback(I=>{u(H=>(H[I]!==!0&&i?.(I),{...H,[I]:!0}))},[i]),R=E.useCallback(()=>{u(I=>{const H={...I};return Object.keys(H).forEach(q=>{H[q]=!0}),H})},[]),D=E.useCallback(()=>{u(I=>{const H={...I};return Object.keys(H).forEach(q=>{H[q]=!1}),H})},[]),N=E.useCallback(I=>h(H=>o?H.includes(I)?(x(null),H.filter(q=>q!==I)):(x(I),[...H,I]):H.includes(I)?(x(null),[]):(x(I),[I])),[]),M=E.useCallback(I=>{x(I),h(H=>o?H.includes(I)?H:[...H,I]:[I])},[]),O=E.useCallback(I=>{b===I&&x(null),h(H=>H.filter(q=>q!==I))},[]),F=E.useCallback(()=>{h([]),x(null)},[]),L=E.useCallback(I=>{const H=rw(I,s);g(q=>Array.from(new Set([...q,...H])))},[s]),U=E.useCallback(I=>{const H=rw(I,s);g(q=>q.filter(Z=>!H.includes(Z)))},[s]),P=E.useCallback(()=>{g(()=>RG(s))},[s]),V=E.useCallback(()=>{g([])},[]);return{multiple:o,expandedState:c,selectedState:d,checkedState:f,anchorNode:b,initialize:C,toggleExpanded:_,collapse:T,expand:A,expandAllNodes:R,collapseAllNodes:D,setExpandedState:u,checkNode:L,uncheckNode:U,checkAllNodes:P,uncheckAllNodes:V,setCheckedState:g,toggleSelected:N,select:M,deselect:O,clearSelected:F,setSelectedState:h,hoveredNode:w,setHoveredNode:k,getCheckedNodes:()=>tw(s,f).result,isNodeChecked:I=>ije(I,s,f),isNodeIndeterminate:I=>lje(I,s,f)}}var DG={root:"m_f698e191",subtree:"m_75f3ecf",node:"m_f6970eb1",label:"m_dc283425"};function $G(e){return e.reduce((r,n)=>(r.push(n.value),n.children&&r.push(...$G(n.children)),r),[])}const uje={expandOnClick:!0,allowRangeSelection:!0,expandOnSpace:!0},dje=(e,{levelOffset:r})=>({root:{"--level-offset":cc(r)}}),hm=ht((e,r)=>{const n=He("Tree",uje,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,data:u,expandOnClick:d,tree:h,renderNode:f,selectOnClick:g,clearSelectionOnOutsideClick:b,allowRangeSelection:x,expandOnSpace:w,levelOffset:k,checkOnSpace:C,attributes:_,...T}=n,A=G0(),R=h||A,D=Dt({name:"Tree",classes:DG,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:_,vars:c,varsResolver:dje}),N=yU(()=>b&&R.clearSelected()),M=Hr(r,N),O=E.useMemo(()=>$G(u),[u]);E.useEffect(()=>{R.initialize(u)},[u]);const F=u.map((L,U)=>y.jsx(kS,{node:L,getStyles:D,rootIndex:U,expandOnClick:d,selectOnClick:g,controller:R,renderNode:f,flatValues:O,allowRangeSelection:x,expandOnSpace:w,checkOnSpace:C},L.value));return y.jsx(Re,{component:"ul",ref:M,...D("root"),...T,role:"tree","aria-multiselectable":R.multiple,"data-tree-root":!0,children:F})});hm.displayName="@mantine/core/Tree",hm.classes=DG;const _S=E.createContext(null);function MG(){const e=E.useContext(_S);if(!e)throw new Error("useRootContainer must be used within a RootContainer");return e}function pje(){return MG().ref}function hje(){return MG().ref.current}const PG=E.createContext(null);function fje(){const e=E.useContext(PG);return e===null&&console.warn("ReduceGraphicsMode is not provided"),e??!1}const[mje,gje]=hi("PanningAtomSafeCtx is not provided");function yje({id:e,className:r,reduceGraphics:n=!1,children:o}){const[a,i]=E.useState(!1),s=E.useRef(null),l=E.useRef(null);l.current||(l.current=JNe(!1)),VE(()=>{i(!0)},[]),E.useEffect(()=>l.current?.subscribe(u=>{s.current?.setAttribute("data-likec4-diagram-panning",u?"true":"false")}),[]);const c=E.useMemo(()=>({id:e,ref:s}),[e,s]);return y.jsx(mje,{value:l.current,children:y.jsx(PG.Provider,{value:n,children:y.jsx("div",{id:e,className:et("likec4-root",r),ref:s,...n&&{"data-likec4-reduced-graphics":!0},children:a&&!!c.ref.current&&y.jsx(_S.Provider,{value:c,children:o})})})})}var bje=Object.getOwnPropertyNames,vje=Object.getOwnPropertySymbols,xje=Object.prototype.hasOwnProperty;function zG(e,r){return function(n,o,a){return e(n,o,a)&&r(n,o,a)}}function nw(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),s=a.get(n);if(i&&s)return i===n&&s===r;a.set(r,n),a.set(n,r);var l=e(r,n,o);return a.delete(r),a.delete(n),l}}function wje(e){return e?.[Symbol.toStringTag]}function IG(e){return bje(e).concat(vje(e))}var kje=Object.hasOwn||(function(e,r){return xje.call(e,r)});function Tp(e,r){return e===r||!e&&!r&&e!==e&&r!==r}var _je="__v",Eje="__o",Sje="_owner",OG=Object.getOwnPropertyDescriptor,jG=Object.keys;function Cje(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 Tje(e,r){return Tp(e.getTime(),r.getTime())}function Aje(e,r){return e.name===r.name&&e.message===r.message&&e.cause===r.cause&&e.stack===r.stack}function Rje(e,r){return e===r}function LG(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(),s,l,c=0;(s=i.next())&&!s.done;){for(var u=r.entries(),d=!1,h=0;(l=u.next())&&!l.done;){if(a[h]){h++;continue}var f=s.value,g=l.value;if(n.equals(f[0],g[0],c,h,e,r,n)&&n.equals(f[1],g[1],f[0],g[0],e,r,n)){d=a[h]=!0;break}h++}if(!d)return!1;c++}return!0}var Nje=Tp;function Dje(e,r,n){var o=jG(e),a=o.length;if(jG(r).length!==a)return!1;for(;a-- >0;)if(!FG(e,r,n,o[a]))return!1;return!0}function X0(e,r,n){var o=IG(e),a=o.length;if(IG(r).length!==a)return!1;for(var i,s,l;a-- >0;)if(i=o[a],!FG(e,r,n,i)||(s=OG(e,i),l=OG(r,i),(s||l)&&(!s||!l||s.configurable!==l.configurable||s.enumerable!==l.enumerable||s.writable!==l.writable)))return!1;return!0}function $je(e,r){return Tp(e.valueOf(),r.valueOf())}function Mje(e,r){return e.source===r.source&&e.flags===r.flags}function BG(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(),s,l;(s=i.next())&&!s.done;){for(var c=r.values(),u=!1,d=0;(l=c.next())&&!l.done;){if(!a[d]&&n.equals(s.value,l.value,s.value,l.value,e,r,n)){u=a[d]=!0;break}d++}if(!u)return!1}return!0}function Pje(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 zje(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 FG(e,r,n,o){return(o===Sje||o===Eje||o===_je)&&(e.$$typeof||r.$$typeof)?!0:kje(r,o)&&n.equals(e[o],r[o],o,o,e,r,n)}var Ije="[object Arguments]",Oje="[object Boolean]",jje="[object Date]",Lje="[object Error]",Bje="[object Map]",Fje="[object Number]",Hje="[object Object]",Vje="[object RegExp]",qje="[object Set]",Uje="[object String]",Wje="[object URL]",Yje=Array.isArray,HG=typeof ArrayBuffer=="function"&&ArrayBuffer.isView?ArrayBuffer.isView:null,VG=Object.assign,Gje=Object.prototype.toString.call.bind(Object.prototype.toString);function Xje(e){var r=e.areArraysEqual,n=e.areDatesEqual,o=e.areErrorsEqual,a=e.areFunctionsEqual,i=e.areMapsEqual,s=e.areNumbersEqual,l=e.areObjectsEqual,c=e.arePrimitiveWrappersEqual,u=e.areRegExpsEqual,d=e.areSetsEqual,h=e.areTypedArraysEqual,f=e.areUrlsEqual,g=e.unknownTagComparators;return function(b,x,w){if(b===x)return!0;if(b==null||x==null)return!1;var k=typeof b;if(k!==typeof x)return!1;if(k!=="object")return k==="number"?s(b,x,w):k==="function"?a(b,x,w):!1;var C=b.constructor;if(C!==x.constructor)return!1;if(C===Object)return l(b,x,w);if(Yje(b))return r(b,x,w);if(HG!=null&&HG(b))return h(b,x,w);if(C===Date)return n(b,x,w);if(C===RegExp)return u(b,x,w);if(C===Map)return i(b,x,w);if(C===Set)return d(b,x,w);var _=Gje(b);if(_===jje)return n(b,x,w);if(_===Vje)return u(b,x,w);if(_===Bje)return i(b,x,w);if(_===qje)return d(b,x,w);if(_===Hje)return typeof b.then!="function"&&typeof x.then!="function"&&l(b,x,w);if(_===Wje)return f(b,x,w);if(_===Lje)return o(b,x,w);if(_===Ije)return l(b,x,w);if(_===Oje||_===Fje||_===Uje)return c(b,x,w);if(g){var T=g[_];if(!T){var A=wje(b);A&&(T=g[A])}if(T)return T(b,x,w)}return!1}}function Kje(e){var r=e.circular,n=e.createCustomConfig,o=e.strict,a={areArraysEqual:o?X0:Cje,areDatesEqual:Tje,areErrorsEqual:Aje,areFunctionsEqual:Rje,areMapsEqual:o?zG(LG,X0):LG,areNumbersEqual:Nje,areObjectsEqual:o?X0:Dje,arePrimitiveWrappersEqual:$je,areRegExpsEqual:Mje,areSetsEqual:o?zG(BG,X0):BG,areTypedArraysEqual:o?X0:Pje,areUrlsEqual:zje,unknownTagComparators:void 0};if(n&&(a=VG({},a,n(a))),r){var i=nw(a.areArraysEqual),s=nw(a.areMapsEqual),l=nw(a.areObjectsEqual),c=nw(a.areSetsEqual);a=VG({},a,{areArraysEqual:i,areMapsEqual:s,areObjectsEqual:l,areSetsEqual:c})}return a}function Zje(e){return function(r,n,o,a,i,s,l){return e(r,n,l)}}function Qje(e){var r=e.circular,n=e.comparator,o=e.createState,a=e.equals,i=e.strict;if(o)return function(l,c){var u=o(),d=u.cache,h=d===void 0?r?new WeakMap:void 0:d,f=u.meta;return n(l,c,{cache:h,equals:a,meta:f,strict:i})};if(r)return function(l,c){return n(l,c,{cache:new WeakMap,equals:a,meta:void 0,strict:i})};var s={cache:void 0,equals:a,meta:void 0,strict:i};return function(l,c){return n(l,c,s)}}var lt=zu();zu({strict:!0}),zu({circular:!0}),zu({circular:!0,strict:!0});var an=zu({createInternalComparator:function(){return Tp}});zu({strict:!0,createInternalComparator:function(){return Tp}}),zu({circular:!0,createInternalComparator:function(){return Tp}}),zu({circular:!0,createInternalComparator:function(){return Tp},strict:!0});function zu(e){e===void 0&&(e={});var r=e.circular,n=r===void 0?!1:r,o=e.createInternalComparator,a=e.createState,i=e.strict,s=i===void 0?!1:i,l=Kje(e),c=Xje(l),u=o?o(c):Zje(c);return Qje({circular:n,comparator:c,createState:a,equals:u,strict:s})}const K0=E.createContext(null),ES=E.createContext(null);function Jje(){return E.useContext(K0)}function Ko(){const e=E.useContext(K0);if(!e)throw new Error("LikeC4Model not found. Make sure you have LikeC4ModelProvider.");return e}function eLe(){const e=Ko(),[r,n]=E.useState(e.$data.specification);return E.useEffect(()=>{n(o=>lt(o,e.$data.specification)?o:e.$data.specification)},[e]),r}const qG=E.createContext({}),tLe=I6e,rLe=e=>{const r=e.color;if(OB(e))return` +${d}`}function $9({color:e,theme:r,autoContrast:n}){return(typeof n=="boolean"?n:r.autoContrast)&&vd({color:e||r.primaryColor,theme:r}).isLight?"var(--mantine-color-black)":"var(--mantine-color-white)"}function IH(e,r){return $9({color:e.colors[e.primaryColor][ly(e,r)],theme:e,autoContrast:null})}function Mw({theme:e,color:r,colorScheme:n,name:o=r,withColorValues:i=!0}){if(!e.colors[r])return{};if(n==="light"){const s=ly(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`]:_f(e.colors[r][s],.1),[`--mantine-color-${o}-light-hover`]:_f(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`]:_f(e.colors[r][s],.05)};return i?{[`--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 a=ly(e,"dark"),l={[`--mantine-color-${o}-text`]:`var(--mantine-color-${o}-4)`,[`--mantine-color-${o}-filled`]:`var(--mantine-color-${o}-${a})`,[`--mantine-color-${o}-filled-hover`]:`var(--mantine-color-${o}-${a===9?8:a+1})`,[`--mantine-color-${o}-light`]:_f(e.colors[r][Math.max(0,a-2)],.15),[`--mantine-color-${o}-light-hover`]:_f(e.colors[r][Math.max(0,a-2)],.2),[`--mantine-color-${o}-light-color`]:`var(--mantine-color-${o}-${Math.max(a-5,0)})`,[`--mantine-color-${o}-outline`]:`var(--mantine-color-${o}-${Math.max(a-4,0)})`,[`--mantine-color-${o}-outline-hover`]:_f(e.colors[r][Math.max(a-4,0)],.05)};return i?{[`--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 Yze(e){return!!e&&typeof e=="object"&&"mantine-virtual-color"in e}function Sf(e,r,n){So(r).forEach(o=>Object.assign(e,{[`--mantine-${n}-${o}`]:r[o]}))}const OH=e=>{const r=ly(e,"light"),n=e.defaultRadius in e.radius?e.radius[e.defaultRadius]:$e(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":IH(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":IH(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)"}};Sf(o.variables,e.breakpoints,"breakpoint"),Sf(o.variables,e.spacing,"spacing"),Sf(o.variables,e.fontSizes,"font-size"),Sf(o.variables,e.lineHeights,"line-height"),Sf(o.variables,e.shadows,"shadow"),Sf(o.variables,e.radius,"radius"),e.colors[e.primaryColor].forEach((a,l)=>{o.variables[`--mantine-primary-color-${l}`]=`var(--mantine-color-${e.primaryColor}-${l})`}),So(e.colors).forEach(a=>{const l=e.colors[a];if(Yze(l)){Object.assign(o.light,Mw({theme:e,name:l.name,color:l.light,colorScheme:"light",withColorValues:!0})),Object.assign(o.dark,Mw({theme:e,name:l.name,color:l.dark,colorScheme:"dark",withColorValues:!0}));return}l.forEach((s,c)=>{o.variables[`--mantine-color-${a}-${c}`]=s}),Object.assign(o.light,Mw({theme:e,color:a,colorScheme:"light",withColorValues:!1})),Object.assign(o.dark,Mw({theme:e,color:a,colorScheme:"dark",withColorValues:!1}))});const i=e.headings.sizes;return So(i).forEach(a=>{o.variables[`--mantine-${a}-font-size`]=i[a].fontSize,o.variables[`--mantine-${a}-line-height`]=i[a].lineHeight,o.variables[`--mantine-${a}-font-weight`]=i[a].fontWeight||e.headings.fontWeight}),o};function Xze({theme:e,generator:r}){const n=OH(e),o=r?.(e);return o?h9(n,o):n}const R9=OH(_9);function Kze(e){const r={variables:{},light:{},dark:{}};return So(e.variables).forEach(n=>{R9.variables[n]!==e.variables[n]&&(r.variables[n]=e.variables[n])}),So(e.light).forEach(n=>{R9.light[n]!==e.light[n]&&(r.light[n]=e.light[n])}),So(e.dark).forEach(n=>{R9.dark[n]!==e.dark[n]&&(r.dark[n]=e.dark[n])}),r}function Zze(e){return BH({variables:{},dark:{"--mantine-color-scheme":"dark"},light:{"--mantine-color-scheme":"light"}},e)}function LH({cssVariablesSelector:e,deduplicateCssVariables:r}){const n=lo(),o=np(),i=zze(),a=Xze({theme:n,generator:i}),l=(e===void 0||e===":root"||e===":host")&&r,s=l?Kze(a):a,c=BH(s,e);return c?y.jsx("style",{"data-mantine-styles":!0,nonce:o?.(),dangerouslySetInnerHTML:{__html:`${c}${l?"":Zze(e)}`}}):null}LH.displayName="@mantine/CssVariables";function Ef(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 Qze({manager:e,defaultColorScheme:r,getRootElement:n,forceColorScheme:o}){const i=S.useRef(null),[a,l]=S.useState(()=>e.get(r)),s=o||a,c=S.useCallback(u=>{o||(Ef(u,n),l(u),e.set(u))},[e.set,s,o]),d=S.useCallback(()=>{l(r),Ef(r,n),e.clear()},[e.clear,r]);return S.useEffect(()=>(e.subscribe(c),e.unsubscribe),[e.subscribe,e.unsubscribe]),xf(()=>{Ef(e.get(r),n)},[]),S.useEffect(()=>{if(o)return Ef(o,n),()=>{};o===void 0&&Ef(a,n),typeof window<"u"&&"matchMedia"in window&&(i.current=window.matchMedia("(prefers-color-scheme: dark)"));const u=p=>{a==="auto"&&Ef(p.matches?"dark":"light",n)};return i.current?.addEventListener("change",u),()=>i.current?.removeEventListener("change",u)},[a,o]),{colorScheme:s,setColorScheme:c,clearColorScheme:d}}function Jze({respectReducedMotion:e,getRootElement:r}){xf(()=>{e&&r()?.setAttribute("data-respect-reduced-motion","true")},[e])}function z9({theme:e,children:r,getStyleNonce:n,withStaticClasses:o=!0,withGlobalClasses:i=!0,deduplicateCssVariables:a=!0,withCssVariables:l=!0,cssVariablesSelector:s,classNamesPrefix:c="mantine",colorSchemeManager:d=qze(),defaultColorScheme:u="light",getRootElement:p=()=>document.documentElement,cssVariablesResolver:f,forceColorScheme:m,stylesTransform:v,env:w}){const{colorScheme:x,setColorScheme:k,clearColorScheme:C}=Qze({defaultColorScheme:u,forceColorScheme:m,manager:d,getRootElement:p});return Jze({respectReducedMotion:e?.respectReducedMotion||!1,getRootElement:p}),y.jsx(Aw.Provider,{value:{colorScheme:x,setColorScheme:k,clearColorScheme:C,getRootElement:p,classNamesPrefix:c,getStyleNonce:n,cssVariablesResolver:f,cssVariablesSelector:s??":root",withStaticClasses:o,stylesTransform:v,env:w},children:y.jsxs(NH,{theme:e,children:[l&&y.jsx(LH,{cssVariablesSelector:s,deduplicateCssVariables:a}),i&&y.jsx(Gze,{}),r]})})}z9.displayName="@mantine/core/MantineProvider";function T9({classNames:e,styles:r,props:n,stylesCtx:o}){const i=lo();return{resolvedClassNames:Tw({theme:i,classNames:e,props:n,stylesCtx:o||void 0}),resolvedStyles:jw({theme:i,styles:r,props:n,stylesCtx:o||void 0})}}const eTe={always:"mantine-focus-always",auto:"mantine-focus-auto",never:"mantine-focus-never"};function tTe({theme:e,options:r,unstyled:n}){return el(r?.focusable&&!n&&(e.focusClassName||eTe[e.focusRing]),r?.active&&!n&&e.activeClassName)}function rTe({selector:e,stylesCtx:r,options:n,props:o,theme:i}){return Tw({theme:i,classNames:n?.classNames,props:n?.props||o,stylesCtx:r})[e]}function FH({selector:e,stylesCtx:r,theme:n,classNames:o,props:i}){return Tw({theme:n,classNames:o,props:i,stylesCtx:r})[e]}function nTe({rootSelector:e,selector:r,className:n}){return e===r?n:void 0}function oTe({selector:e,classes:r,unstyled:n}){return n?void 0:r[e]}function iTe({themeName:e,classNamesPrefix:r,selector:n,withStaticClass:o}){return o===!1?[]:e.map(i=>`${r}-${i}-${n}`)}function aTe({themeName:e,theme:r,selector:n,props:o,stylesCtx:i}){return e.map(a=>Tw({theme:r,classNames:r.components[a]?.classNames,props:o,stylesCtx:i})?.[n])}function lTe({options:e,classes:r,selector:n,unstyled:o}){return e?.variant&&!o?r[`${n}--${e.variant}`]:void 0}function sTe({theme:e,options:r,themeName:n,selector:o,classNamesPrefix:i,classNames:a,classes:l,unstyled:s,className:c,rootSelector:d,props:u,stylesCtx:p,withStaticClasses:f,headless:m,transformedStyles:v}){return el(tTe({theme:e,options:r,unstyled:s||m}),aTe({theme:e,themeName:n,selector:o,props:u,stylesCtx:p}),lTe({options:r,classes:l,selector:o,unstyled:s}),FH({selector:o,stylesCtx:p,theme:e,classNames:a,props:u}),FH({selector:o,stylesCtx:p,theme:e,classNames:v,props:u}),rTe({selector:o,stylesCtx:p,options:r,props:u,theme:e}),nTe({rootSelector:d,selector:o,className:c}),oTe({selector:o,classes:l,unstyled:s||m}),f&&!m&&iTe({themeName:n,classNamesPrefix:i,selector:o,withStaticClass:r?.withStaticClass}),r?.className)}function cTe({theme:e,themeName:r,props:n,stylesCtx:o,selector:i}){return r.map(a=>jw({theme:e,styles:e.components[a]?.styles,props:n,stylesCtx:o})[i]).reduce((a,l)=>({...a,...l}),{})}function j9({style:e,theme:r}){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,...j9({style:o,theme:r})}),{}):typeof e=="function"?e(r):e??{}}function dTe(e){return e.reduce((r,n)=>(n&&Object.keys(n).forEach(o=>{r[o]={...r[o],...yf(n[o])}}),r),{})}function uTe({vars:e,varsResolver:r,theme:n,props:o,stylesCtx:i,selector:a,themeName:l,headless:s}){return dTe([s?{}:r?.(n,o,i),...l.map(c=>n.components?.[c]?.vars?.(n,o,i)),e?.(n,o,i)])?.[a]}function pTe({theme:e,themeName:r,selector:n,options:o,props:i,stylesCtx:a,rootSelector:l,styles:s,style:c,vars:d,varsResolver:u,headless:p,withStylesTransform:f}){return{...!f&&cTe({theme:e,themeName:r,props:i,stylesCtx:a,selector:n}),...!f&&jw({theme:e,styles:s,props:i,stylesCtx:a})[n],...!f&&jw({theme:e,styles:o?.styles,props:o?.props||i,stylesCtx:a})[n],...uTe({theme:e,props:i,stylesCtx:a,vars:d,varsResolver:u,selector:n,themeName:r,headless:p}),...l===n?j9({style:c,theme:e}):null,...j9({style:o?.style,theme:e})}}function hTe({props:e,stylesCtx:r,themeName:n}){const o=lo(),i=Pze()?.();return{getTransformedStyles:a=>i?[...a.map(l=>i(l,{props:e,theme:o,ctx:r})),...n.map(l=>i(o.components[l]?.styles,{props:e,theme:o,ctx:r}))].filter(Boolean):[],withStylesTransform:!!i}}function kt({name:e,classes:r,props:n,stylesCtx:o,className:i,style:a,rootSelector:l="root",unstyled:s,classNames:c,styles:d,vars:u,varsResolver:p,attributes:f}){const m=lo(),v=Tze(),w=jze(),x=Aze(),k=(Array.isArray(e)?e:[e]).filter($=>$),{withStylesTransform:C,getTransformedStyles:_}=hTe({props:n,stylesCtx:o,themeName:k});return($,R)=>({className:sTe({theme:m,options:R,themeName:k,selector:$,classNamesPrefix:v,classNames:c,classes:r,unstyled:s,className:i,rootSelector:l,props:n,stylesCtx:o,withStaticClasses:w,headless:x,transformedStyles:_([R?.styles,d])}),style:pTe({theme:m,themeName:k,selector:$,options:R,props:n,stylesCtx:o,rootSelector:l,styles:d,style:a,vars:u,varsResolver:p,headless:x,withStylesTransform:C}),...f?.[$]})}function fTe(e,r){return typeof e=="boolean"?e:r.autoContrast}function VH(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 gTe({keepTransitions:e}={}){const r=S.useRef(dH),n=S.useRef(-1),o=S.useContext(Aw),i=np(),a=S.useRef(i?.());if(!o)throw new Error("[@mantine/core] MantineProvider was not found in tree");const l=p=>{o.setColorScheme(p),r.current=e?()=>{}:VH(a.current),window.clearTimeout(n.current),n.current=window.setTimeout(()=>{r.current?.()},10)},s=()=>{o.clearColorScheme(),r.current=e?()=>{}:VH(a.current),window.clearTimeout(n.current),n.current=window.setTimeout(()=>{r.current?.()},10)},c=gH("light",{getInitialValueInEffect:!1}),d=o.colorScheme==="auto"?c:o.colorScheme,u=S.useCallback(()=>l(d==="light"?"dark":"light"),[l,d]);return S.useEffect(()=>()=>{r.current?.(),window.clearTimeout(n.current)},[]),{colorScheme:o.colorScheme,setColorScheme:l,clearColorScheme:s,toggleColorScheme:u}}function Pe(e,r,n){const o=lo(),i=o.components[e]?.defaultProps,a=typeof i=="function"?i(o):i;return{...r,...a,...yf(n)}}function A9(e){return So(e).reduce((r,n)=>e[n]!==void 0?`${r}${MRe(n)}:${e[n]};`:r,"").trim()}function mTe({selector:e,styles:r,media:n,container:o}){const i=r?A9(r):"",a=Array.isArray(n)?n.map(s=>`@media${s.query}{${e}{${A9(s.styles)}}}`):[],l=Array.isArray(o)?o.map(s=>`@container ${s.query}{${e}{${A9(s.styles)}}}`):[];return`${i?`${e}{${i}}`:""}${a.join("")}${l.join("")}`.trim()}function Nw(e){const r=np();return y.jsx("style",{"data-mantine-styles":"inline",nonce:r?.(),dangerouslySetInnerHTML:{__html:mTe(e)}})}function qH(e){const{m:r,mx:n,my:o,mt:i,mb:a,ml:l,mr:s,me:c,ms:d,p:u,px:p,py:f,pt:m,pb:v,pl:w,pr:x,pe:k,ps:C,bd:_,bdrs:$,bg:R,c:T,opacity:A,ff:z,fz:j,fw:I,lts:N,ta:L,lh:H,fs:P,tt:V,td:B,w:F,miw:q,maw:G,h:U,mih:Y,mah:K,bgsz:O,bgp:W,bgr:Z,bga:Q,pos:ie,top:te,left:re,bottom:ue,right:_e,inset:ce,display:pe,flex:xe,hiddenFrom:je,visibleFrom:Be,lightHidden:Je,darkHidden:st,sx:Le,...St}=e;return{styleProps:yf({m:r,mx:n,my:o,mt:i,mb:a,ml:l,mr:s,me:c,ms:d,p:u,px:p,py:f,pt:m,pb:v,pl:w,pr:x,pe:k,ps:C,bd:_,bg:R,c:T,opacity:A,ff:z,fz:j,fw:I,lts:N,ta:L,lh:H,fs:P,tt:V,td:B,w:F,miw:q,maw:G,h:U,mih:Y,mah:K,bgsz:O,bgp:W,bgr:Z,bga:Q,pos:ie,top:te,left:re,bottom:ue,right:_e,inset:ce,display:pe,flex:xe,bdrs:$,hiddenFrom:je,visibleFrom:Be,lightHidden:Je,darkHidden:st,sx:Le}),rest:St}}const yTe={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 D9(e,r){const n=vd({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 vTe(e,r){const n=vd({color:e,theme:r});return n.isThemeColor&&n.shade===void 0?`var(--mantine-color-${n.color}-text)`:D9(e,r)}function bTe(e,r){if(typeof e=="number")return $e(e);if(typeof e=="string"){const[n,o,...i]=e.split(" ").filter(l=>l.trim()!=="");let a=`${$e(n)}`;return o&&(a+=` ${o}`),i.length>0&&(a+=` ${D9(i.join(" "),r)}`),a.trim()}return e}const HH={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 xTe(e){return typeof e=="string"&&e in HH?HH[e]:e}const wTe=["h1","h2","h3","h4","h5","h6"];function kTe(e,r){return typeof e=="string"&&e in r.fontSizes?`var(--mantine-font-size-${e})`:typeof e=="string"&&wTe.includes(e)?`var(--mantine-${e}-font-size)`:typeof e=="number"||typeof e=="string"?$e(e):e}function _Te(e){return e}const STe=["h1","h2","h3","h4","h5","h6"];function ETe(e,r){return typeof e=="string"&&e in r.lineHeights?`var(--mantine-line-height-${e})`:typeof e=="string"&&STe.includes(e)?`var(--mantine-${e}-line-height)`:e}function CTe(e,r){return typeof e=="string"&&e in r.radius?`var(--mantine-radius-${e})`:typeof e=="number"||typeof e=="string"?$e(e):e}function $Te(e){return typeof e=="number"?$e(e):e}function RTe(e,r){if(typeof e=="number")return $e(e);if(typeof e=="string"){const n=e.replace("-","");if(!(n in r.spacing))return $e(e);const o=`--mantine-spacing-${n}`;return e.startsWith("-")?`calc(var(${o}) * -1)`:`var(${o})`}return e}const P9={color:D9,textColor:vTe,fontSize:kTe,spacing:RTe,radius:CTe,identity:_Te,size:$Te,lineHeight:ETe,fontFamily:xTe,border:bTe};function UH(e){return e.replace("(min-width: ","").replace("em)","")}function zTe({media:e,...r}){const n=Object.keys(e).sort((o,i)=>Number(UH(o))-Number(UH(i))).map(o=>({query:o,styles:e[o]}));return{...r,media:n}}function TTe(e){if(typeof e!="object"||e===null)return!1;const r=Object.keys(e);return!(r.length===1&&r[0]==="base")}function jTe(e){return typeof e=="object"&&e!==null?"base"in e?e.base:void 0:e}function ATe(e){return typeof e=="object"&&e!==null?So(e).filter(r=>r!=="base"):[]}function DTe(e,r){return typeof e=="object"&&e!==null&&r in e?e[r]:e}function WH({styleProps:e,data:r,theme:n}){return zTe(So(e).reduce((o,i)=>{if(i==="hiddenFrom"||i==="visibleFrom"||i==="sx")return o;const a=r[i],l=Array.isArray(a.property)?a.property:[a.property],s=jTe(e[i]);if(!TTe(e[i]))return l.forEach(d=>{o.inlineStyles[d]=P9[a.type](s,n)}),o;o.hasResponsiveStyles=!0;const c=ATe(e[i]);return l.forEach(d=>{s!=null&&(o.styles[d]=P9[a.type](s,n)),c.forEach(u=>{const p=`(min-width: ${n.breakpoints[u]})`;o.media[p]={...o.media[p],[d]:P9[a.type](DTe(e[i],u),n)}})}),o},{hasResponsiveStyles:!1,styles:{},inlineStyles:{},media:{}}))}function Bw(){return`__m__-${S.useId().replace(/[:«»]/g,"")}`}function M9(e,r){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,...M9(o,r)}),{}):typeof e=="function"?e(r):e??{}}function GH(e){return e.startsWith("data-")?e:`data-${e}`}function PTe(e){return Object.keys(e).reduce((r,n)=>{const o=e[n];return o===void 0||o===""||o===!1||o===null||(r[GH(n)]=e[n]),r},{})}function YH(e){return e?typeof e=="string"?{[GH(e)]:!0}:Array.isArray(e)?[...e].reduce((r,n)=>({...r,...YH(n)}),{}):PTe(e):null}function N9(e,r){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,...N9(o,r)}),{}):typeof e=="function"?e(r):e??{}}function MTe({theme:e,style:r,vars:n,styleProps:o}){const i=N9(r,e),a=N9(n,e);return{...i,...a,...o}}const XH=S.forwardRef(({component:e,style:r,__vars:n,className:o,variant:i,mod:a,size:l,hiddenFrom:s,visibleFrom:c,lightHidden:d,darkHidden:u,renderRoot:p,__size:f,...m},v)=>{const w=lo(),x=e||"div",{styleProps:k,rest:C}=qH(m),_=Dze()?.()?.(k.sx),$=Bw(),R=WH({styleProps:k,theme:w,data:yTe}),T={ref:v,style:MTe({theme:w,style:r,vars:n,styleProps:R.inlineStyles}),className:el(o,_,{[$]:R.hasResponsiveStyles,"mantine-light-hidden":d,"mantine-dark-hidden":u,[`mantine-hidden-from-${s}`]:s,[`mantine-visible-from-${c}`]:c}),"data-variant":i,"data-size":sH(l)?void 0:l||void 0,size:f,...YH(a),...C};return y.jsxs(y.Fragment,{children:[R.hasResponsiveStyles&&y.jsx(Nw,{selector:`.${$}`,styles:R.styles,media:R.media}),typeof p=="function"?p(T):y.jsx(x,{...T})]})});XH.displayName="@mantine/core/Box";const Se=XH;function KH(e){return e}function NTe(e){const r=e;return n=>{const o=S.forwardRef((i,a)=>y.jsx(r,{...n,...i,ref:a}));return o.extend=r.extend,o.displayName=`WithProps(${r.displayName})`,o}}function ot(e){const r=S.forwardRef(e);return r.extend=KH,r.withProps=n=>{const o=S.forwardRef((i,a)=>y.jsx(r,{...n,...i,ref:a}));return o.extend=r.extend,o.displayName=`WithProps(${r.displayName})`,o},r}function Jn(e){const r=S.forwardRef(e);return r.withProps=n=>{const o=S.forwardRef((i,a)=>y.jsx(r,{...n,...i,ref:a}));return o.extend=r.extend,o.displayName=`WithProps(${r.displayName})`,o},r.extend=KH,r}const BTe=S.createContext({dir:"ltr",toggleDirection:()=>{},setDirection:()=>{}});function bd(){return S.useContext(BTe)}function ITe(e){if(!e||typeof e=="string")return 0;const r=e/36;return Math.round((4+15*r**.25+r/5)*10)}function B9(e){return e?.current?e.current.scrollHeight:"auto"}const Iw=typeof window<"u"&&window.requestAnimationFrame,ZH=0,OTe=e=>({height:0,overflow:"hidden",...e?{}:{display:"none"}});function LTe({transitionDuration:e,transitionTimingFunction:r="ease",onTransitionEnd:n=()=>{},opened:o,keepMounted:i=!1}){const a=S.useRef(null),l=OTe(i),[s,c]=S.useState(o?{}:l),d=v=>{Va.flushSync(()=>c(v))},u=v=>{d(w=>({...w,...v}))};function p(v){const w=e||ITe(v);return{transition:`height ${w}ms ${r}, opacity ${w}ms ${r}`}}wf(()=>{typeof Iw=="function"&&Iw(o?()=>{u({willChange:"height",display:"block",overflow:"hidden"}),Iw(()=>{const v=B9(a);u({...p(v),height:v})})}:()=>{const v=B9(a);u({...p(v),willChange:"height",height:v}),Iw(()=>u({height:ZH,overflow:"hidden"}))})},[o]);const f=v=>{if(!(v.target!==a.current||v.propertyName!=="height"))if(o){const w=B9(a);w===s.height?d({}):u({height:w}),n()}else s.height===ZH&&(d(l),n())};function m({style:v={},refKey:w="ref",...x}={}){const k=x[w],C={"aria-hidden":!o,...x,[w]:wH(a,k),onTransitionEnd:f,style:{boxSizing:"border-box",...v,...s}};return Zr.version.startsWith("18")?o||(C.inert=""):C.inert=!o,C}return m}const FTe={transitionDuration:200,transitionTimingFunction:"ease",animateOpacity:!0},QH=ot((e,r)=>{const{children:n,in:o,transitionDuration:i,transitionTimingFunction:a,style:l,onTransitionEnd:s,animateOpacity:c,keepMounted:d,...u}=Pe("Collapse",FTe,e),p=lo(),f=_H(),m=p.respectReducedMotion&&f?0:i,v=LTe({opened:o,transitionDuration:m,transitionTimingFunction:a,onTransitionEnd:s,keepMounted:d});return m===0?o?y.jsx(Se,{...u,children:n}):null:y.jsx(Se,{...v({style:{opacity:o||!c?1:0,transition:c?`opacity ${m}ms ${a}`:"none",...M9(l,p)},ref:r,...u}),children:n})});QH.displayName="@mantine/core/Collapse";function Ow(){return typeof window<"u"}function Cf(e){return JH(e)?(e.nodeName||"").toLowerCase():"#document"}function ni(e){var r;return(e==null||(r=e.ownerDocument)==null?void 0:r.defaultView)||window}function Kl(e){var r;return(r=(JH(e)?e.ownerDocument:e.document)||window.document)==null?void 0:r.documentElement}function JH(e){return Ow()?e instanceof Node||e instanceof ni(e).Node:!1}function Ar(e){return Ow()?e instanceof Element||e instanceof ni(e).Element:!1}function $i(e){return Ow()?e instanceof HTMLElement||e instanceof ni(e).HTMLElement:!1}function I9(e){return!Ow()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof ni(e).ShadowRoot}const VTe=new Set(["inline","contents"]);function cy(e){const{overflow:r,overflowX:n,overflowY:o,display:i}=ia(e);return/auto|scroll|overlay|hidden|clip/.test(r+o+n)&&!VTe.has(i)}const qTe=new Set(["table","td","th"]);function HTe(e){return qTe.has(Cf(e))}const UTe=[":popover-open",":modal"];function Lw(e){return UTe.some(r=>{try{return e.matches(r)}catch{return!1}})}const WTe=["transform","translate","scale","rotate","perspective"],GTe=["transform","translate","scale","rotate","perspective","filter"],YTe=["paint","layout","strict","content"];function O9(e){const r=Fw(),n=Ar(e)?ia(e):e;return WTe.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)||GTe.some(o=>(n.willChange||"").includes(o))||YTe.some(o=>(n.contain||"").includes(o))}function XTe(e){let r=Ks(e);for(;$i(r)&&!Xs(r);){if(O9(r))return r;if(Lw(r))return null;r=Ks(r)}return null}function Fw(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const KTe=new Set(["html","body","#document"]);function Xs(e){return KTe.has(Cf(e))}function ia(e){return ni(e).getComputedStyle(e)}function Vw(e){return Ar(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ks(e){if(Cf(e)==="html")return e;const r=e.assignedSlot||e.parentNode||I9(e)&&e.host||Kl(e);return I9(r)?r.host:r}function eU(e){const r=Ks(e);return Xs(r)?e.ownerDocument?e.ownerDocument.body:e.body:$i(r)&&cy(r)?r:eU(r)}function Zs(e,r,n){var o;r===void 0&&(r=[]),n===void 0&&(n=!0);const i=eU(e),a=i===((o=e.ownerDocument)==null?void 0:o.body),l=ni(i);if(a){const s=L9(l);return r.concat(l,l.visualViewport||[],cy(i)?i:[],s&&n?Zs(s):[])}return r.concat(i,Zs(i,[],n))}function L9(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}const tU=["top","right","bottom","left"],rU=["start","end"],nU=tU.reduce((e,r)=>e.concat(r,r+"-"+rU[0],r+"-"+rU[1]),[]),tl=Math.min,Co=Math.max,qw=Math.round,Hw=Math.floor,Zl=e=>({x:e,y:e}),ZTe={left:"right",right:"left",bottom:"top",top:"bottom"},QTe={start:"end",end:"start"};function F9(e,r,n){return Co(e,tl(r,n))}function rl(e,r){return typeof e=="function"?e(r):e}function Ri(e){return e.split("-")[0]}function nl(e){return e.split("-")[1]}function V9(e){return e==="x"?"y":"x"}function q9(e){return e==="y"?"height":"width"}const JTe=new Set(["top","bottom"]);function ol(e){return JTe.has(Ri(e))?"y":"x"}function H9(e){return V9(ol(e))}function oU(e,r,n){n===void 0&&(n=!1);const o=nl(e),i=H9(e),a=q9(i);let l=i==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return r.reference[a]>r.floating[a]&&(l=Ww(l)),[l,Ww(l)]}function eje(e){const r=Ww(e);return[Uw(e),r,Uw(r)]}function Uw(e){return e.replace(/start|end/g,r=>QTe[r])}const iU=["left","right"],aU=["right","left"],tje=["top","bottom"],rje=["bottom","top"];function nje(e,r,n){switch(e){case"top":case"bottom":return n?r?aU:iU:r?iU:aU;case"left":case"right":return r?tje:rje;default:return[]}}function oje(e,r,n,o){const i=nl(e);let a=nje(Ri(e),n==="start",o);return i&&(a=a.map(l=>l+"-"+i),r&&(a=a.concat(a.map(Uw)))),a}function Ww(e){return e.replace(/left|right|bottom|top/g,r=>ZTe[r])}function ije(e){return{top:0,right:0,bottom:0,left:0,...e}}function U9(e){return typeof e!="number"?ije(e):{top:e,right:e,bottom:e,left:e}}function $f(e){const{x:r,y:n,width:o,height:i}=e;return{width:o,height:i,top:n,left:r,right:r+o,bottom:n+i,x:r,y:n}}function aje(){const e=navigator.userAgentData;return e!=null&&e.platform?e.platform:navigator.platform}function lje(){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 sje(){return/apple/i.test(navigator.vendor)}function cje(){return aje().toLowerCase().startsWith("mac")&&!navigator.maxTouchPoints}function dje(){return lje().includes("jsdom/")}const lU="data-floating-ui-focusable",uje="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";function sU(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 dy(e,r){if(!e||!r)return!1;const n=r.getRootNode==null?void 0:r.getRootNode();if(e.contains(r))return!0;if(n&&I9(n)){let o=r;for(;o;){if(e===o)return!0;o=o.parentNode||o.host}}return!1}function Rf(e){return"composedPath"in e?e.composedPath()[0]:e.target}function W9(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 pje(e){return e.matches("html,body")}function op(e){return e?.ownerDocument||document}function hje(e){return $i(e)&&e.matches(uje)}function fje(e){if(!e||dje())return!0;try{return e.matches(":focus-visible")}catch{return!0}}function gje(e){return e?e.hasAttribute(lU)?e:e.querySelector("["+lU+"]")||e:null}function Gw(e,r,n){return n===void 0&&(n=!0),e.filter(o=>{var i;return o.parentId===r&&(!n||((i=o.context)==null?void 0:i.open))}).flatMap(o=>[o,...Gw(e,o.id,n)])}function mje(e){return"nativeEvent"in e}function G9(e,r){const n=["mouse","pen"];return n.push("",void 0),n.includes(e)}var yje=typeof document<"u",vje=function(){},Ql=yje?S.useLayoutEffect:vje;const bje={...mb};function Yw(e){const r=S.useRef(e);return Ql(()=>{r.current=e}),r}const xje=bje.useInsertionEffect,wje=xje||(e=>e());function Jl(e){const r=S.useRef(()=>{});return wje(()=>{r.current=e}),S.useCallback(function(){for(var n=arguments.length,o=new Array(n),i=0;i{const{placement:o="bottom",strategy:i="absolute",middleware:a=[],platform:l}=n,s=a.filter(Boolean),c=await(l.isRTL==null?void 0:l.isRTL(r));let d=await l.getElementRects({reference:e,floating:r,strategy:i}),{x:u,y:p}=cU(d,o,c),f=o,m={},v=0;for(let w=0;w({name:"arrow",options:e,async fn(r){const{x:n,y:o,placement:i,rects:a,platform:l,elements:s,middlewareData:c}=r,{element:d,padding:u=0}=rl(e,r)||{};if(d==null)return{};const p=U9(u),f={x:n,y:o},m=H9(i),v=q9(m),w=await l.getDimensions(d),x=m==="y",k=x?"top":"left",C=x?"bottom":"right",_=x?"clientHeight":"clientWidth",$=a.reference[v]+a.reference[m]-f[m]-a.floating[v],R=f[m]-a.reference[m],T=await(l.getOffsetParent==null?void 0:l.getOffsetParent(d));let A=T?T[_]:0;(!A||!await(l.isElement==null?void 0:l.isElement(T)))&&(A=s.floating[_]||a.floating[v]);const z=$/2-R/2,j=A/2-w[v]/2-1,I=tl(p[k],j),N=tl(p[C],j),L=I,H=A-w[v]-N,P=A/2-w[v]/2+z,V=F9(L,P,H),B=!c.arrow&&nl(i)!=null&&P!==V&&a.reference[v]/2-(Pnl(o)===e),...n.filter(o=>nl(o)!==e)]:n.filter(o=>Ri(o)===o)).filter(o=>e?nl(o)===e||(r?Uw(o)!==o:!1):!0)}const Eje=function(e){return e===void 0&&(e={}),{name:"autoPlacement",options:e,async fn(r){var n,o,i;const{rects:a,middlewareData:l,placement:s,platform:c,elements:d}=r,{crossAxis:u=!1,alignment:p,allowedPlacements:f=nU,autoAlignment:m=!0,...v}=rl(e,r),w=p!==void 0||f===nU?Sje(p||null,m,f):f,x=await zf(r,v),k=((n=l.autoPlacement)==null?void 0:n.index)||0,C=w[k];if(C==null)return{};const _=oU(C,a,await(c.isRTL==null?void 0:c.isRTL(d.floating)));if(s!==C)return{reset:{placement:w[0]}};const $=[x[Ri(C)],x[_[0]],x[_[1]]],R=[...((o=l.autoPlacement)==null?void 0:o.overflows)||[],{placement:C,overflows:$}],T=w[k+1];if(T)return{data:{index:k+1,overflows:R},reset:{placement:T}};const A=R.map(j=>{const I=nl(j.placement);return[j.placement,I&&u?j.overflows.slice(0,2).reduce((N,L)=>N+L,0):j.overflows[0],j.overflows]}).sort((j,I)=>j[1]-I[1]),z=((i=A.filter(j=>j[2].slice(0,nl(j[0])?2:3).every(I=>I<=0))[0])==null?void 0:i[0])||A[0][0];return z!==s?{data:{index:k+1,overflows:R},reset:{placement:z}}:{}}}},Cje=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(r){var n,o;const{placement:i,middlewareData:a,rects:l,initialPlacement:s,platform:c,elements:d}=r,{mainAxis:u=!0,crossAxis:p=!0,fallbackPlacements:f,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:w=!0,...x}=rl(e,r);if((n=a.arrow)!=null&&n.alignmentOffset)return{};const k=Ri(i),C=ol(s),_=Ri(s)===s,$=await(c.isRTL==null?void 0:c.isRTL(d.floating)),R=f||(_||!w?[Ww(s)]:eje(s)),T=v!=="none";!f&&T&&R.push(...oje(s,w,v,$));const A=[s,...R],z=await zf(r,x),j=[];let I=((o=a.flip)==null?void 0:o.overflows)||[];if(u&&j.push(z[k]),p){const P=oU(i,l,$);j.push(z[P[0]],z[P[1]])}if(I=[...I,{placement:i,overflows:j}],!j.every(P=>P<=0)){var N,L;const P=(((N=a.flip)==null?void 0:N.index)||0)+1,V=A[P];if(V&&(!(p==="alignment"&&C!==ol(V))||I.every(F=>ol(F.placement)===C?F.overflows[0]>0:!0)))return{data:{index:P,overflows:I},reset:{placement:V}};let B=(L=I.filter(F=>F.overflows[0]<=0).sort((F,q)=>F.overflows[1]-q.overflows[1])[0])==null?void 0:L.placement;if(!B)switch(m){case"bestFit":{var H;const F=(H=I.filter(q=>{if(T){const G=ol(q.placement);return G===C||G==="y"}return!0}).map(q=>[q.placement,q.overflows.filter(G=>G>0).reduce((G,U)=>G+U,0)]).sort((q,G)=>q[1]-G[1])[0])==null?void 0:H[0];F&&(B=F);break}case"initialPlacement":B=s;break}if(i!==B)return{reset:{placement:B}}}return{}}}};function dU(e,r){return{top:e.top-r.height,right:e.right-r.width,bottom:e.bottom-r.height,left:e.left-r.width}}function uU(e){return tU.some(r=>e[r]>=0)}const $je=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(r){const{rects:n}=r,{strategy:o="referenceHidden",...i}=rl(e,r);switch(o){case"referenceHidden":{const a=await zf(r,{...i,elementContext:"reference"}),l=dU(a,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:uU(l)}}}case"escaped":{const a=await zf(r,{...i,altBoundary:!0}),l=dU(a,n.floating);return{data:{escapedOffsets:l,escaped:uU(l)}}}default:return{}}}}};function pU(e){const r=tl(...e.map(a=>a.left)),n=tl(...e.map(a=>a.top)),o=Co(...e.map(a=>a.right)),i=Co(...e.map(a=>a.bottom));return{x:r,y:n,width:o-r,height:i-n}}function Rje(e){const r=e.slice().sort((i,a)=>i.y-a.y),n=[];let o=null;for(let i=0;io.height/2?n.push([a]):n[n.length-1].push(a),o=a}return n.map(i=>$f(pU(i)))}const zje=function(e){return e===void 0&&(e={}),{name:"inline",options:e,async fn(r){const{placement:n,elements:o,rects:i,platform:a,strategy:l}=r,{padding:s=2,x:c,y:d}=rl(e,r),u=Array.from(await(a.getClientRects==null?void 0:a.getClientRects(o.reference))||[]),p=Rje(u),f=$f(pU(u)),m=U9(s);function v(){if(p.length===2&&p[0].left>p[1].right&&c!=null&&d!=null)return p.find(x=>c>x.left-m.left&&cx.top-m.top&&d=2){if(ol(n)==="y"){const I=p[0],N=p[p.length-1],L=Ri(n)==="top",H=I.top,P=N.bottom,V=L?I.left:N.left,B=L?I.right:N.right,F=B-V,q=P-H;return{top:H,bottom:P,left:V,right:B,width:F,height:q,x:V,y:H}}const x=Ri(n)==="left",k=Co(...p.map(I=>I.right)),C=tl(...p.map(I=>I.left)),_=p.filter(I=>x?I.left===C:I.right===k),$=_[0].top,R=_[_.length-1].bottom,T=C,A=k,z=A-T,j=R-$;return{top:$,bottom:R,left:T,right:A,width:z,height:j,x:T,y:$}}return f}const w=await a.getElementRects({reference:{getBoundingClientRect:v},floating:o.floating,strategy:l});return i.reference.x!==w.reference.x||i.reference.y!==w.reference.y||i.reference.width!==w.reference.width||i.reference.height!==w.reference.height?{reset:{rects:w}}:{}}}},hU=new Set(["left","top"]);async function Tje(e,r){const{placement:n,platform:o,elements:i}=e,a=await(o.isRTL==null?void 0:o.isRTL(i.floating)),l=Ri(n),s=nl(n),c=ol(n)==="y",d=hU.has(l)?-1:1,u=a&&c?-1:1,p=rl(r,e);let{mainAxis:f,crossAxis:m,alignmentAxis:v}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return s&&typeof v=="number"&&(m=s==="end"?v*-1:v),c?{x:m*u,y:f*d}:{x:f*d,y:m*u}}const jje=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(r){var n,o;const{x:i,y:a,placement:l,middlewareData:s}=r,c=await Tje(r,e);return l===((n=s.offset)==null?void 0:n.placement)&&(o=s.arrow)!=null&&o.alignmentOffset?{}:{x:i+c.x,y:a+c.y,data:{...c,placement:l}}}}},Aje=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(r){const{x:n,y:o,placement:i}=r,{mainAxis:a=!0,crossAxis:l=!1,limiter:s={fn:x=>{let{x:k,y:C}=x;return{x:k,y:C}}},...c}=rl(e,r),d={x:n,y:o},u=await zf(r,c),p=ol(Ri(i)),f=V9(p);let m=d[f],v=d[p];if(a){const x=f==="y"?"top":"left",k=f==="y"?"bottom":"right",C=m+u[x],_=m-u[k];m=F9(C,m,_)}if(l){const x=p==="y"?"top":"left",k=p==="y"?"bottom":"right",C=v+u[x],_=v-u[k];v=F9(C,v,_)}const w=s.fn({...r,[f]:m,[p]:v});return{...w,data:{x:w.x-n,y:w.y-o,enabled:{[f]:a,[p]:l}}}}}},Dje=function(e){return e===void 0&&(e={}),{options:e,fn(r){const{x:n,y:o,placement:i,rects:a,middlewareData:l}=r,{offset:s=0,mainAxis:c=!0,crossAxis:d=!0}=rl(e,r),u={x:n,y:o},p=ol(i),f=V9(p);let m=u[f],v=u[p];const w=rl(s,r),x=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(c){const _=f==="y"?"height":"width",$=a.reference[f]-a.floating[_]+x.mainAxis,R=a.reference[f]+a.reference[_]-x.mainAxis;m<$?m=$:m>R&&(m=R)}if(d){var k,C;const _=f==="y"?"width":"height",$=hU.has(Ri(i)),R=a.reference[p]-a.floating[_]+($&&((k=l.offset)==null?void 0:k[p])||0)+($?0:x.crossAxis),T=a.reference[p]+a.reference[_]+($?0:((C=l.offset)==null?void 0:C[p])||0)-($?x.crossAxis:0);vT&&(v=T)}return{[f]:m,[p]:v}}}},Pje=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(r){var n,o;const{placement:i,rects:a,platform:l,elements:s}=r,{apply:c=()=>{},...d}=rl(e,r),u=await zf(r,d),p=Ri(i),f=nl(i),m=ol(i)==="y",{width:v,height:w}=a.floating;let x,k;p==="top"||p==="bottom"?(x=p,k=f===(await(l.isRTL==null?void 0:l.isRTL(s.floating))?"start":"end")?"left":"right"):(k=p,x=f==="end"?"top":"bottom");const C=w-u.top-u.bottom,_=v-u.left-u.right,$=tl(w-u[x],C),R=tl(v-u[k],_),T=!r.middlewareData.shift;let A=$,z=R;if((n=r.middlewareData.shift)!=null&&n.enabled.x&&(z=_),(o=r.middlewareData.shift)!=null&&o.enabled.y&&(A=C),T&&!f){const I=Co(u.left,0),N=Co(u.right,0),L=Co(u.top,0),H=Co(u.bottom,0);m?z=v-2*(I!==0||N!==0?I+N:Co(u.left,u.right)):A=w-2*(L!==0||H!==0?L+H:Co(u.top,u.bottom))}await c({...r,availableWidth:z,availableHeight:A});const j=await l.getDimensions(s.floating);return v!==j.width||w!==j.height?{reset:{rects:!0}}:{}}}};function fU(e){const r=ia(e);let n=parseFloat(r.width)||0,o=parseFloat(r.height)||0;const i=$i(e),a=i?e.offsetWidth:n,l=i?e.offsetHeight:o,s=qw(n)!==a||qw(o)!==l;return s&&(n=a,o=l),{width:n,height:o,$:s}}function Y9(e){return Ar(e)?e:e.contextElement}function Tf(e){const r=Y9(e);if(!$i(r))return Zl(1);const n=r.getBoundingClientRect(),{width:o,height:i,$:a}=fU(r);let l=(a?qw(n.width):n.width)/o,s=(a?qw(n.height):n.height)/i;return(!l||!Number.isFinite(l))&&(l=1),(!s||!Number.isFinite(s))&&(s=1),{x:l,y:s}}const Mje=Zl(0);function gU(e){const r=ni(e);return!Fw()||!r.visualViewport?Mje:{x:r.visualViewport.offsetLeft,y:r.visualViewport.offsetTop}}function Nje(e,r,n){return r===void 0&&(r=!1),!n||r&&n!==ni(e)?!1:r}function ip(e,r,n,o){r===void 0&&(r=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),a=Y9(e);let l=Zl(1);r&&(o?Ar(o)&&(l=Tf(o)):l=Tf(e));const s=Nje(a,n,o)?gU(a):Zl(0);let c=(i.left+s.x)/l.x,d=(i.top+s.y)/l.y,u=i.width/l.x,p=i.height/l.y;if(a){const f=ni(a),m=o&&Ar(o)?ni(o):o;let v=f,w=L9(v);for(;w&&o&&m!==v;){const x=Tf(w),k=w.getBoundingClientRect(),C=ia(w),_=k.left+(w.clientLeft+parseFloat(C.paddingLeft))*x.x,$=k.top+(w.clientTop+parseFloat(C.paddingTop))*x.y;c*=x.x,d*=x.y,u*=x.x,p*=x.y,c+=_,d+=$,v=ni(w),w=L9(v)}}return $f({width:u,height:p,x:c,y:d})}function Xw(e,r){const n=Vw(e).scrollLeft;return r?r.left+n:ip(Kl(e)).left+n}function mU(e,r){const n=e.getBoundingClientRect(),o=n.left+r.scrollLeft-Xw(e,n),i=n.top+r.scrollTop;return{x:o,y:i}}function Bje(e){let{elements:r,rect:n,offsetParent:o,strategy:i}=e;const a=i==="fixed",l=Kl(o),s=r?Lw(r.floating):!1;if(o===l||s&&a)return n;let c={scrollLeft:0,scrollTop:0},d=Zl(1);const u=Zl(0),p=$i(o);if((p||!p&&!a)&&((Cf(o)!=="body"||cy(l))&&(c=Vw(o)),$i(o))){const m=ip(o);d=Tf(o),u.x=m.x+o.clientLeft,u.y=m.y+o.clientTop}const f=l&&!p&&!a?mU(l,c):Zl(0);return{width:n.width*d.x,height:n.height*d.y,x:n.x*d.x-c.scrollLeft*d.x+u.x+f.x,y:n.y*d.y-c.scrollTop*d.y+u.y+f.y}}function Ije(e){return Array.from(e.getClientRects())}function Oje(e){const r=Kl(e),n=Vw(e),o=e.ownerDocument.body,i=Co(r.scrollWidth,r.clientWidth,o.scrollWidth,o.clientWidth),a=Co(r.scrollHeight,r.clientHeight,o.scrollHeight,o.clientHeight);let l=-n.scrollLeft+Xw(e);const s=-n.scrollTop;return ia(o).direction==="rtl"&&(l+=Co(r.clientWidth,o.clientWidth)-i),{width:i,height:a,x:l,y:s}}const yU=25;function Lje(e,r){const n=ni(e),o=Kl(e),i=n.visualViewport;let a=o.clientWidth,l=o.clientHeight,s=0,c=0;if(i){a=i.width,l=i.height;const u=Fw();(!u||u&&r==="fixed")&&(s=i.offsetLeft,c=i.offsetTop)}const d=Xw(o);if(d<=0){const u=o.ownerDocument,p=u.body,f=getComputedStyle(p),m=u.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,v=Math.abs(o.clientWidth-p.clientWidth-m);v<=yU&&(a-=v)}else d<=yU&&(a+=d);return{width:a,height:l,x:s,y:c}}const Fje=new Set(["absolute","fixed"]);function Vje(e,r){const n=ip(e,!0,r==="fixed"),o=n.top+e.clientTop,i=n.left+e.clientLeft,a=$i(e)?Tf(e):Zl(1),l=e.clientWidth*a.x,s=e.clientHeight*a.y,c=i*a.x,d=o*a.y;return{width:l,height:s,x:c,y:d}}function vU(e,r,n){let o;if(r==="viewport")o=Lje(e,n);else if(r==="document")o=Oje(Kl(e));else if(Ar(r))o=Vje(r,n);else{const i=gU(e);o={x:r.x-i.x,y:r.y-i.y,width:r.width,height:r.height}}return $f(o)}function bU(e,r){const n=Ks(e);return n===r||!Ar(n)||Xs(n)?!1:ia(n).position==="fixed"||bU(n,r)}function qje(e,r){const n=r.get(e);if(n)return n;let o=Zs(e,[],!1).filter(s=>Ar(s)&&Cf(s)!=="body"),i=null;const a=ia(e).position==="fixed";let l=a?Ks(e):e;for(;Ar(l)&&!Xs(l);){const s=ia(l),c=O9(l);!c&&s.position==="fixed"&&(i=null),(a?!c&&!i:!c&&s.position==="static"&&i&&Fje.has(i.position)||cy(l)&&!c&&bU(e,l))?o=o.filter(d=>d!==l):i=s,l=Ks(l)}return r.set(e,o),o}function Hje(e){let{element:r,boundary:n,rootBoundary:o,strategy:i}=e;const a=[...n==="clippingAncestors"?Lw(r)?[]:qje(r,this._c):[].concat(n),o],l=a[0],s=a.reduce((c,d)=>{const u=vU(r,d,i);return c.top=Co(u.top,c.top),c.right=tl(u.right,c.right),c.bottom=tl(u.bottom,c.bottom),c.left=Co(u.left,c.left),c},vU(r,l,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function Uje(e){const{width:r,height:n}=fU(e);return{width:r,height:n}}function Wje(e,r,n){const o=$i(r),i=Kl(r),a=n==="fixed",l=ip(e,!0,a,r);let s={scrollLeft:0,scrollTop:0};const c=Zl(0);function d(){c.x=Xw(i)}if(o||!o&&!a)if((Cf(r)!=="body"||cy(i))&&(s=Vw(r)),o){const m=ip(r,!0,a,r);c.x=m.x+r.clientLeft,c.y=m.y+r.clientTop}else i&&d();a&&!o&&i&&d();const u=i&&!o&&!a?mU(i,s):Zl(0),p=l.left+s.scrollLeft-c.x-u.x,f=l.top+s.scrollTop-c.y-u.y;return{x:p,y:f,width:l.width,height:l.height}}function X9(e){return ia(e).position==="static"}function xU(e,r){if(!$i(e)||ia(e).position==="fixed")return null;if(r)return r(e);let n=e.offsetParent;return Kl(e)===n&&(n=n.ownerDocument.body),n}function wU(e,r){const n=ni(e);if(Lw(e))return n;if(!$i(e)){let i=Ks(e);for(;i&&!Xs(i);){if(Ar(i)&&!X9(i))return i;i=Ks(i)}return n}let o=xU(e,r);for(;o&&HTe(o)&&X9(o);)o=xU(o,r);return o&&Xs(o)&&X9(o)&&!O9(o)?n:o||XTe(e)||n}const Gje=async function(e){const r=this.getOffsetParent||wU,n=this.getDimensions,o=await n(e.floating);return{reference:Wje(e.reference,await r(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function Yje(e){return ia(e).direction==="rtl"}const Xje={convertOffsetParentRelativeRectToViewportRelativeRect:Bje,getDocumentElement:Kl,getClippingRect:Hje,getOffsetParent:wU,getElementRects:Gje,getClientRects:Ije,getDimensions:Uje,getScale:Tf,isElement:Ar,isRTL:Yje};function kU(e,r){return e.x===r.x&&e.y===r.y&&e.width===r.width&&e.height===r.height}function Kje(e,r){let n=null,o;const i=Kl(e);function a(){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),a();const d=e.getBoundingClientRect(),{left:u,top:p,width:f,height:m}=d;if(s||r(),!f||!m)return;const v=Hw(p),w=Hw(i.clientWidth-(u+f)),x=Hw(i.clientHeight-(p+m)),k=Hw(u),C={rootMargin:-v+"px "+-w+"px "+-x+"px "+-k+"px",threshold:Co(0,tl(1,c))||1};let _=!0;function $(R){const T=R[0].intersectionRatio;if(T!==c){if(!_)return l();T?l(!1,T):o=setTimeout(()=>{l(!1,1e-7)},1e3)}T===1&&!kU(d,e.getBoundingClientRect())&&l(),_=!1}try{n=new IntersectionObserver($,{...C,root:i.ownerDocument})}catch{n=new IntersectionObserver($,C)}n.observe(e)}return l(!0),a}function Kw(e,r,n,o){o===void 0&&(o={});const{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:c=!1}=o,d=Y9(e),u=i||a?[...d?Zs(d):[],...Zs(r)]:[];u.forEach(k=>{i&&k.addEventListener("scroll",n,{passive:!0}),a&&k.addEventListener("resize",n)});const p=d&&s?Kje(d,n):null;let f=-1,m=null;l&&(m=new ResizeObserver(k=>{let[C]=k;C&&C.target===d&&m&&(m.unobserve(r),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var _;(_=m)==null||_.observe(r)})),n()}),d&&!c&&m.observe(d),m.observe(r));let v,w=c?ip(e):null;c&&x();function x(){const k=ip(e);w&&!kU(w,k)&&n(),w=k,v=requestAnimationFrame(x)}return n(),()=>{var k;u.forEach(C=>{i&&C.removeEventListener("scroll",n),a&&C.removeEventListener("resize",n)}),p?.(),(k=m)==null||k.disconnect(),m=null,c&&cancelAnimationFrame(v)}}const _U=jje,Zje=Eje,Qje=Aje,Jje=Cje,SU=Pje,EU=$je,CU=_je,eAe=zje,tAe=Dje,$U=(e,r,n)=>{const o=new Map,i={platform:Xje,...n},a={...i.platform,_c:o};return kje(e,r,{...i,platform:a})};var rAe=typeof document<"u",nAe=function(){},Zw=rAe?S.useLayoutEffect:nAe;function Qw(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,i;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(!Qw(e[o],r[o]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(r,i[o]))return!1;for(o=n;o--!==0;){const a=i[o];if(!(a==="_owner"&&e.$$typeof)&&!Qw(e[a],r[a]))return!1}return!0}return e!==e&&r!==r}function RU(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function zU(e,r){const n=RU(e);return Math.round(r*n)/n}function K9(e){const r=S.useRef(e);return Zw(()=>{r.current=e}),r}function oAe(e){e===void 0&&(e={});const{placement:r="bottom",strategy:n="absolute",middleware:o=[],platform:i,elements:{reference:a,floating:l}={},transform:s=!0,whileElementsMounted:c,open:d}=e,[u,p]=S.useState({x:0,y:0,strategy:n,placement:r,middlewareData:{},isPositioned:!1}),[f,m]=S.useState(o);Qw(f,o)||m(o);const[v,w]=S.useState(null),[x,k]=S.useState(null),C=S.useCallback(q=>{q!==T.current&&(T.current=q,w(q))},[]),_=S.useCallback(q=>{q!==A.current&&(A.current=q,k(q))},[]),$=a||v,R=l||x,T=S.useRef(null),A=S.useRef(null),z=S.useRef(u),j=c!=null,I=K9(c),N=K9(i),L=K9(d),H=S.useCallback(()=>{if(!T.current||!A.current)return;const q={placement:r,strategy:n,middleware:f};N.current&&(q.platform=N.current),$U(T.current,A.current,q).then(G=>{const U={...G,isPositioned:L.current!==!1};P.current&&!Qw(z.current,U)&&(z.current=U,Va.flushSync(()=>{p(U)}))})},[f,r,n,N,L]);Zw(()=>{d===!1&&z.current.isPositioned&&(z.current.isPositioned=!1,p(q=>({...q,isPositioned:!1})))},[d]);const P=S.useRef(!1);Zw(()=>(P.current=!0,()=>{P.current=!1}),[]),Zw(()=>{if($&&(T.current=$),R&&(A.current=R),$&&R){if(I.current)return I.current($,R,H);H()}},[$,R,H,I,j]);const V=S.useMemo(()=>({reference:T,floating:A,setReference:C,setFloating:_}),[C,_]),B=S.useMemo(()=>({reference:$,floating:R}),[$,R]),F=S.useMemo(()=>{const q={position:n,left:0,top:0};if(!B.floating)return q;const G=zU(B.floating,u.x),U=zU(B.floating,u.y);return s?{...q,transform:"translate("+G+"px, "+U+"px)",...RU(B.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:G,top:U}},[n,s,B.floating,u.x,u.y]);return S.useMemo(()=>({...u,update:H,refs:V,elements:B,floatingStyles:F}),[u,H,V,B,F])}const iAe=e=>{function r(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:o,padding:i}=typeof e=="function"?e(n):e;return o&&r(o)?o.current!=null?CU({element:o.current,padding:i}).fn(n):{}:o?CU({element:o,padding:i}).fn(n):{}}}},TU=(e,r)=>({..._U(e),options:[e,r]}),Z9=(e,r)=>({...Qje(e),options:[e,r]}),jU=(e,r)=>({...tAe(e),options:[e,r]}),Jw=(e,r)=>({...Jje(e),options:[e,r]}),aAe=(e,r)=>({...SU(e),options:[e,r]}),lAe=(e,r)=>({...EU(e),options:[e,r]}),uy=(e,r)=>({...eAe(e),options:[e,r]}),AU=(e,r)=>({...iAe(e),options:[e,r]});function DU(e){const r=S.useRef(void 0),n=S.useCallback(o=>{const i=e.map(a=>{if(a!=null){if(typeof a=="function"){const l=a,s=l(o);return typeof s=="function"?s:()=>{l(null)}}return a.current=o,()=>{a.current=null}}});return()=>{i.forEach(a=>a?.())}},e);return S.useMemo(()=>e.every(o=>o==null)?null:o=>{r.current&&(r.current(),r.current=void 0),o!=null&&(r.current=n(o))},e)}const sAe="data-floating-ui-focusable",PU="active",MU="selected",cAe={...mb};let NU=!1,dAe=0;const BU=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+dAe++;function uAe(){const[e,r]=S.useState(()=>NU?BU():void 0);return Ql(()=>{e==null&&r(BU())},[]),S.useEffect(()=>{NU=!0},[]),e}const pAe=cAe.useId,IU=pAe||uAe;function hAe(){const e=new Map;return{emit(r,n){var o;(o=e.get(r))==null||o.forEach(i=>i(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 fAe=S.createContext(null),gAe=S.createContext(null),Q9=()=>{var e;return((e=S.useContext(fAe))==null?void 0:e.id)||null},J9=()=>S.useContext(gAe);function eS(e){return"data-floating-ui-"+e}function aa(e){e.current!==-1&&(clearTimeout(e.current),e.current=-1)}const OU=eS("safe-polygon");function e3(e,r,n){if(n&&!G9(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 tS(e){return typeof e=="function"?e():e}function LU(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,dataRef:i,events:a,elements:l}=e,{enabled:s=!0,delay:c=0,handleClose:d=null,mouseOnly:u=!1,restMs:p=0,move:f=!0}=r,m=J9(),v=Q9(),w=Yw(d),x=Yw(c),k=Yw(n),C=Yw(p),_=S.useRef(),$=S.useRef(-1),R=S.useRef(),T=S.useRef(-1),A=S.useRef(!0),z=S.useRef(!1),j=S.useRef(()=>{}),I=S.useRef(!1),N=Jl(()=>{var F;const q=(F=i.current.openEvent)==null?void 0:F.type;return q?.includes("mouse")&&q!=="mousedown"});S.useEffect(()=>{if(!s)return;function F(q){let{open:G}=q;G||(aa($),aa(T),A.current=!0,I.current=!1)}return a.on("openchange",F),()=>{a.off("openchange",F)}},[s,a]),S.useEffect(()=>{if(!s||!w.current||!n)return;function F(G){N()&&o(!1,G,"hover")}const q=op(l.floating).documentElement;return q.addEventListener("mouseleave",F),()=>{q.removeEventListener("mouseleave",F)}},[l.floating,n,o,s,w,N]);const L=S.useCallback(function(F,q,G){q===void 0&&(q=!0),G===void 0&&(G="hover");const U=e3(x.current,"close",_.current);U&&!R.current?(aa($),$.current=window.setTimeout(()=>o(!1,F,G),U)):q&&(aa($),o(!1,F,G))},[x,o]),H=Jl(()=>{j.current(),R.current=void 0}),P=Jl(()=>{if(z.current){const F=op(l.floating).body;F.style.pointerEvents="",F.removeAttribute(OU),z.current=!1}}),V=Jl(()=>i.current.openEvent?["click","mousedown"].includes(i.current.openEvent.type):!1);S.useEffect(()=>{if(!s)return;function F(K){if(aa($),A.current=!1,u&&!G9(_.current)||tS(C.current)>0&&!e3(x.current,"open"))return;const O=e3(x.current,"open",_.current);O?$.current=window.setTimeout(()=>{k.current||o(!0,K,"hover")},O):n||o(!0,K,"hover")}function q(K){if(V()){P();return}j.current();const O=op(l.floating);if(aa(T),I.current=!1,w.current&&i.current.floatingContext){n||aa($),R.current=w.current({...i.current.floatingContext,tree:m,x:K.clientX,y:K.clientY,onClose(){P(),H(),V()||L(K,!0,"safe-polygon")}});const W=R.current;O.addEventListener("mousemove",W),j.current=()=>{O.removeEventListener("mousemove",W)};return}(_.current!=="touch"||!dy(l.floating,K.relatedTarget))&&L(K)}function G(K){V()||i.current.floatingContext&&(w.current==null||w.current({...i.current.floatingContext,tree:m,x:K.clientX,y:K.clientY,onClose(){P(),H(),V()||L(K)}})(K))}function U(){aa($)}function Y(K){V()||L(K,!1)}if(Ar(l.domReference)){const K=l.domReference,O=l.floating;return n&&K.addEventListener("mouseleave",G),f&&K.addEventListener("mousemove",F,{once:!0}),K.addEventListener("mouseenter",F),K.addEventListener("mouseleave",q),O&&(O.addEventListener("mouseleave",G),O.addEventListener("mouseenter",U),O.addEventListener("mouseleave",Y)),()=>{n&&K.removeEventListener("mouseleave",G),f&&K.removeEventListener("mousemove",F),K.removeEventListener("mouseenter",F),K.removeEventListener("mouseleave",q),O&&(O.removeEventListener("mouseleave",G),O.removeEventListener("mouseenter",U),O.removeEventListener("mouseleave",Y))}}},[l,s,e,u,f,L,H,P,o,n,k,m,x,w,i,V,C]),Ql(()=>{var F;if(s&&n&&(F=w.current)!=null&&(F=F.__options)!=null&&F.blockPointerEvents&&N()){z.current=!0;const G=l.floating;if(Ar(l.domReference)&&G){var q;const U=op(l.floating).body;U.setAttribute(OU,"");const Y=l.domReference,K=m==null||(q=m.nodesRef.current.find(O=>O.id===v))==null||(q=q.context)==null?void 0:q.elements.floating;return K&&(K.style.pointerEvents=""),U.style.pointerEvents="none",Y.style.pointerEvents="auto",G.style.pointerEvents="auto",()=>{U.style.pointerEvents="",Y.style.pointerEvents="",G.style.pointerEvents=""}}}},[s,n,v,l,m,w,N]),Ql(()=>{n||(_.current=void 0,I.current=!1,H(),P())},[n,H,P]),S.useEffect(()=>()=>{H(),aa($),aa(T),P()},[s,l.domReference,H,P]);const B=S.useMemo(()=>{function F(q){_.current=q.pointerType}return{onPointerDown:F,onPointerEnter:F,onMouseMove(q){const{nativeEvent:G}=q;function U(){!A.current&&!k.current&&o(!0,G,"hover")}u&&!G9(_.current)||n||tS(C.current)===0||I.current&&q.movementX**2+q.movementY**2<2||(aa(T),_.current==="touch"?U():(I.current=!0,T.current=window.setTimeout(U,tS(C.current))))}}},[u,o,n,k,C]);return S.useMemo(()=>s?{reference:B}:{},[s,B])}const rS=()=>{},FU=S.createContext({delay:0,initialDelay:0,timeoutMs:0,currentId:null,setCurrentId:rS,setState:rS,isInstantPhase:!1}),mAe=()=>S.useContext(FU);function VU(e){const{children:r,delay:n,timeoutMs:o=0}=e,[i,a]=S.useReducer((c,d)=>({...c,...d}),{delay:n,timeoutMs:o,initialDelay:n,currentId:null,isInstantPhase:!1}),l=S.useRef(null),s=S.useCallback(c=>{a({currentId:c})},[]);return Ql(()=>{i.currentId?l.current===null?l.current=i.currentId:i.isInstantPhase||a({isInstantPhase:!0}):(i.isInstantPhase&&a({isInstantPhase:!1}),l.current=null)},[i.currentId,i.isInstantPhase]),y.jsx(FU.Provider,{value:S.useMemo(()=>({...i,setState:a,setCurrentId:s}),[i,s]),children:r})}function qU(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,floatingId:i}=e,{id:a,enabled:l=!0}=r,s=a??i,c=mAe(),{currentId:d,setCurrentId:u,initialDelay:p,setState:f,timeoutMs:m}=c;return Ql(()=>{l&&d&&(f({delay:{open:1,close:e3(p,"close")}}),d!==s&&o(!1))},[l,s,o,f,d,p]),Ql(()=>{function v(){o(!1),f({delay:p,currentId:null})}if(l&&d&&!n&&d===s){if(m){const w=window.setTimeout(v,m);return()=>{clearTimeout(w)}}v()}},[l,n,f,d,s,o,p,m]),Ql(()=>{l&&(u===rS||!n||u(s))},[l,n,u,s]),c}const yAe={pointerdown:"onPointerDown",mousedown:"onMouseDown",click:"onClick"},vAe={pointerdown:"onPointerDownCapture",mousedown:"onMouseDownCapture",click:"onClickCapture"},HU=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 UU(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,elements:i,dataRef:a}=e,{enabled:l=!0,escapeKey:s=!0,outsidePress:c=!0,outsidePressEvent:d="pointerdown",referencePress:u=!1,referencePressEvent:p="pointerdown",ancestorScroll:f=!1,bubbles:m,capture:v}=r,w=J9(),x=Jl(typeof c=="function"?c:()=>!1),k=typeof c=="function"?x:c,C=S.useRef(!1),{escapeKey:_,outsidePress:$}=HU(m),{escapeKey:R,outsidePress:T}=HU(v),A=S.useRef(!1),z=Jl(P=>{var V;if(!n||!l||!s||P.key!=="Escape"||A.current)return;const B=(V=a.current.floatingContext)==null?void 0:V.nodeId,F=w?Gw(w.nodesRef.current,B):[];if(!_&&(P.stopPropagation(),F.length>0)){let q=!0;if(F.forEach(G=>{var U;if((U=G.context)!=null&&U.open&&!G.context.dataRef.current.__escapeKeyBubbles){q=!1;return}}),!q)return}o(!1,mje(P)?P.nativeEvent:P,"escape-key")}),j=Jl(P=>{var V;const B=()=>{var F;z(P),(F=Rf(P))==null||F.removeEventListener("keydown",B)};(V=Rf(P))==null||V.addEventListener("keydown",B)}),I=Jl(P=>{var V;const B=a.current.insideReactTree;a.current.insideReactTree=!1;const F=C.current;if(C.current=!1,d==="click"&&F||B||typeof k=="function"&&!k(P))return;const q=Rf(P),G="["+eS("inert")+"]",U=op(i.floating).querySelectorAll(G);let Y=Ar(q)?q:null;for(;Y&&!Xs(Y);){const Z=Ks(Y);if(Xs(Z)||!Ar(Z))break;Y=Z}if(U.length&&Ar(q)&&!pje(q)&&!dy(q,i.floating)&&Array.from(U).every(Z=>!dy(Y,Z)))return;if($i(q)&&H){const Z=Xs(q),Q=ia(q),ie=/auto|scroll/,te=Z||ie.test(Q.overflowX),re=Z||ie.test(Q.overflowY),ue=te&&q.clientWidth>0&&q.scrollWidth>q.clientWidth,_e=re&&q.clientHeight>0&&q.scrollHeight>q.clientHeight,ce=Q.direction==="rtl",pe=_e&&(ce?P.offsetX<=q.offsetWidth-q.clientWidth:P.offsetX>q.clientWidth),xe=ue&&P.offsetY>q.clientHeight;if(pe||xe)return}const K=(V=a.current.floatingContext)==null?void 0:V.nodeId,O=w&&Gw(w.nodesRef.current,K).some(Z=>{var Q;return W9(P,(Q=Z.context)==null?void 0:Q.elements.floating)});if(W9(P,i.floating)||W9(P,i.domReference)||O)return;const W=w?Gw(w.nodesRef.current,K):[];if(W.length>0){let Z=!0;if(W.forEach(Q=>{var ie;if((ie=Q.context)!=null&&ie.open&&!Q.context.dataRef.current.__outsidePressBubbles){Z=!1;return}}),!Z)return}o(!1,P,"outside-press")}),N=Jl(P=>{var V;const B=()=>{var F;I(P),(F=Rf(P))==null||F.removeEventListener(d,B)};(V=Rf(P))==null||V.addEventListener(d,B)});S.useEffect(()=>{if(!n||!l)return;a.current.__escapeKeyBubbles=_,a.current.__outsidePressBubbles=$;let P=-1;function V(U){o(!1,U,"ancestor-scroll")}function B(){window.clearTimeout(P),A.current=!0}function F(){P=window.setTimeout(()=>{A.current=!1},Fw()?5:0)}const q=op(i.floating);s&&(q.addEventListener("keydown",R?j:z,R),q.addEventListener("compositionstart",B),q.addEventListener("compositionend",F)),k&&q.addEventListener(d,T?N:I,T);let G=[];return f&&(Ar(i.domReference)&&(G=Zs(i.domReference)),Ar(i.floating)&&(G=G.concat(Zs(i.floating))),!Ar(i.reference)&&i.reference&&i.reference.contextElement&&(G=G.concat(Zs(i.reference.contextElement)))),G=G.filter(U=>{var Y;return U!==((Y=q.defaultView)==null?void 0:Y.visualViewport)}),G.forEach(U=>{U.addEventListener("scroll",V,{passive:!0})}),()=>{s&&(q.removeEventListener("keydown",R?j:z,R),q.removeEventListener("compositionstart",B),q.removeEventListener("compositionend",F)),k&&q.removeEventListener(d,T?N:I,T),G.forEach(U=>{U.removeEventListener("scroll",V)}),window.clearTimeout(P)}},[a,i,s,k,d,n,o,f,l,_,$,z,R,j,I,T,N]),S.useEffect(()=>{a.current.insideReactTree=!1},[a,k,d]);const L=S.useMemo(()=>({onKeyDown:z,...u&&{[yAe[p]]:P=>{o(!1,P.nativeEvent,"reference-press")},...p!=="click"&&{onClick(P){o(!1,P.nativeEvent,"reference-press")}}}}),[z,o,u,p]),H=S.useMemo(()=>({onKeyDown:z,onMouseDown(){C.current=!0},onMouseUp(){C.current=!0},[vAe[d]]:()=>{a.current.insideReactTree=!0}}),[z,d,a]);return S.useMemo(()=>l?{reference:L,floating:H}:{},[l,L,H])}function bAe(e){const{open:r=!1,onOpenChange:n,elements:o}=e,i=IU(),a=S.useRef({}),[l]=S.useState(()=>hAe()),s=Q9()!=null,[c,d]=S.useState(o.reference),u=Jl((m,v,w)=>{a.current.openEvent=m?v:void 0,l.emit("openchange",{open:m,event:v,reason:w,nested:s}),n?.(m,v,w)}),p=S.useMemo(()=>({setPositionReference:d}),[]),f=S.useMemo(()=>({reference:c||o.reference||null,floating:o.floating||null,domReference:o.reference}),[c,o.reference,o.floating]);return S.useMemo(()=>({dataRef:a,open:r,onOpenChange:u,elements:f,events:l,floatingId:i,refs:p}),[r,u,f,l,i,p])}function t3(e){e===void 0&&(e={});const{nodeId:r}=e,n=bAe({...e,elements:{reference:null,floating:null,...e.elements}}),o=e.rootContext||n,i=o.elements,[a,l]=S.useState(null),[s,c]=S.useState(null),d=i?.domReference||a,u=S.useRef(null),p=J9();Ql(()=>{d&&(u.current=d)},[d]);const f=oAe({...e,elements:{...i,...s&&{reference:s}}}),m=S.useCallback(C=>{const _=Ar(C)?{getBoundingClientRect:()=>C.getBoundingClientRect(),getClientRects:()=>C.getClientRects(),contextElement:C}:C;c(_),f.refs.setReference(_)},[f.refs]),v=S.useCallback(C=>{(Ar(C)||C===null)&&(u.current=C,l(C)),(Ar(f.refs.reference.current)||f.refs.reference.current===null||C!==null&&!Ar(C))&&f.refs.setReference(C)},[f.refs]),w=S.useMemo(()=>({...f.refs,setReference:v,setPositionReference:m,domReference:u}),[f.refs,v,m]),x=S.useMemo(()=>({...f.elements,domReference:d}),[f.elements,d]),k=S.useMemo(()=>({...f,...o,refs:w,elements:x,nodeId:r}),[f,w,x,r,o]);return Ql(()=>{o.dataRef.current.floatingContext=k;const C=p?.nodesRef.current.find(_=>_.id===r);C&&(C.context=k)}),S.useMemo(()=>({...f,context:k,refs:w,elements:x}),[f,w,x,k])}function nS(){return cje()&&sje()}function xAe(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,events:i,dataRef:a,elements:l}=e,{enabled:s=!0,visibleOnly:c=!0}=r,d=S.useRef(!1),u=S.useRef(-1),p=S.useRef(!0);S.useEffect(()=>{if(!s)return;const m=ni(l.domReference);function v(){!n&&$i(l.domReference)&&l.domReference===sU(op(l.domReference))&&(d.current=!0)}function w(){p.current=!0}function x(){p.current=!1}return m.addEventListener("blur",v),nS()&&(m.addEventListener("keydown",w,!0),m.addEventListener("pointerdown",x,!0)),()=>{m.removeEventListener("blur",v),nS()&&(m.removeEventListener("keydown",w,!0),m.removeEventListener("pointerdown",x,!0))}},[l.domReference,n,s]),S.useEffect(()=>{if(!s)return;function m(v){let{reason:w}=v;(w==="reference-press"||w==="escape-key")&&(d.current=!0)}return i.on("openchange",m),()=>{i.off("openchange",m)}},[i,s]),S.useEffect(()=>()=>{aa(u)},[]);const f=S.useMemo(()=>({onMouseLeave(){d.current=!1},onFocus(m){if(d.current)return;const v=Rf(m.nativeEvent);if(c&&Ar(v)){if(nS()&&!m.relatedTarget){if(!p.current&&!hje(v))return}else if(!fje(v))return}o(!0,m.nativeEvent,"focus")},onBlur(m){d.current=!1;const v=m.relatedTarget,w=m.nativeEvent,x=Ar(v)&&v.hasAttribute(eS("focus-guard"))&&v.getAttribute("data-type")==="outside";u.current=window.setTimeout(()=>{var k;const C=sU(l.domReference?l.domReference.ownerDocument:document);!v&&C===l.domReference||dy((k=a.current.floatingContext)==null?void 0:k.refs.floating.current,C)||dy(l.domReference,C)||x||o(!1,w,"focus")})}}),[a,l.domReference,o,c]);return S.useMemo(()=>s?{reference:f}:{},[s,f])}function oS(e,r,n){const o=new Map,i=n==="item";let a=e;if(i&&e){const{[PU]:l,[MU]:s,...c}=e;a=c}return{...n==="floating"&&{tabIndex:-1,[sAe]:""},...a,...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[d,u]=c;if(!(i&&[PU,MU].includes(d)))if(d.indexOf("on")===0){if(o.has(d)||o.set(d,[]),typeof u=="function"){var p;(p=o.get(d))==null||p.push(u),l[d]=function(){for(var f,m=arguments.length,v=new Array(m),w=0;wx(...v)).find(x=>x!==void 0)}}}else l[d]=u}),l),{})}}function WU(e){e===void 0&&(e=[]);const r=e.map(s=>s?.reference),n=e.map(s=>s?.floating),o=e.map(s=>s?.item),i=S.useCallback(s=>oS(s,e,"reference"),r),a=S.useCallback(s=>oS(s,e,"floating"),n),l=S.useCallback(s=>oS(s,e,"item"),o);return S.useMemo(()=>({getReferenceProps:i,getFloatingProps:a,getItemProps:l}),[i,a,l])}const wAe=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);function GU(e,r){var n,o;r===void 0&&(r={});const{open:i,elements:a,floatingId:l}=e,{enabled:s=!0,role:c="dialog"}=r,d=IU(),u=((n=a.domReference)==null?void 0:n.id)||d,p=S.useMemo(()=>{var k;return((k=gje(a.floating))==null?void 0:k.id)||l},[a.floating,l]),f=(o=wAe.get(c))!=null?o:c,m=Q9()!=null,v=S.useMemo(()=>f==="tooltip"||c==="label"?{["aria-"+(c==="label"?"labelledby":"describedby")]:i?p:void 0}:{"aria-expanded":i?"true":"false","aria-haspopup":f==="alertdialog"?"dialog":f,"aria-controls":i?p:void 0,...f==="listbox"&&{role:"combobox"},...f==="menu"&&{id:u},...f==="menu"&&m&&{role:"menuitem"},...c==="select"&&{"aria-autocomplete":"none"},...c==="combobox"&&{"aria-autocomplete":"list"}},[f,p,m,i,u,c]),w=S.useMemo(()=>{const k={id:p,...f&&{role:f}};return f==="tooltip"||c==="label"?k:{...k,...f==="menu"&&{"aria-labelledby":u}}},[f,p,u,c]),x=S.useCallback(k=>{let{active:C,selected:_}=k;const $={role:"option",...C&&{id:p+"-fui-option"}};switch(c){case"select":case"combobox":return{...$,"aria-selected":_}}return{}},[p,c]);return S.useMemo(()=>s?{reference:v,floating:w,item:x}:{},[s,v,w,x])}const[kAe,la]=na("ScrollArea.Root component was not found in tree");function jf(e,r){const n=Qn(r);xf(()=>{let o=0;if(e){const i=new ResizeObserver(()=>{cancelAnimationFrame(o),o=window.requestAnimationFrame(n)});return i.observe(e),()=>{window.cancelAnimationFrame(o),i.unobserve(e)}}},[e,n])}const _Ae=S.forwardRef((e,r)=>{const{style:n,...o}=e,i=la(),[a,l]=S.useState(0),[s,c]=S.useState(0),d=!!(a&&s);return jf(i.scrollbarX,()=>{const u=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(u),c(u)}),jf(i.scrollbarY,()=>{const u=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(u),l(u)}),d?y.jsx("div",{...o,ref:r,style:{...n,width:a,height:s}}):null}),SAe=S.forwardRef((e,r)=>{const n=la(),o=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&o?y.jsx(_Ae,{...e,ref:r}):null}),EAe={scrollHideDelay:1e3,type:"hover"},YU=S.forwardRef((e,r)=>{const{type:n,scrollHideDelay:o,scrollbars:i,getStyles:a,...l}=Pe("ScrollAreaRoot",EAe,e),[s,c]=S.useState(null),[d,u]=S.useState(null),[p,f]=S.useState(null),[m,v]=S.useState(null),[w,x]=S.useState(null),[k,C]=S.useState(0),[_,$]=S.useState(0),[R,T]=S.useState(!1),[A,z]=S.useState(!1),j=$r(r,I=>c(I));return y.jsx(kAe,{value:{type:n,scrollHideDelay:o,scrollArea:s,viewport:d,onViewportChange:u,content:p,onContentChange:f,scrollbarX:m,onScrollbarXChange:v,scrollbarXEnabled:R,onScrollbarXEnabledChange:T,scrollbarY:w,onScrollbarYChange:x,scrollbarYEnabled:A,onScrollbarYEnabledChange:z,onCornerWidthChange:C,onCornerHeightChange:$,getStyles:a},children:y.jsx(Se,{...l,ref:j,__vars:{"--sa-corner-width":i!=="xy"?"0px":`${k}px`,"--sa-corner-height":i!=="xy"?"0px":`${_}px`}})})});YU.displayName="@mantine/core/ScrollAreaRoot";function XU(e,r){const n=e/r;return Number.isNaN(n)?0:n}function r3(e){const r=XU(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,o=(e.scrollbar.size-n)*r;return Math.max(o,18)}function KU(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 CAe(e,[r,n]){return Math.min(n,Math.max(r,e))}function ZU(e,r,n="ltr"){const o=r3(r),i=r.scrollbar.paddingStart+r.scrollbar.paddingEnd,a=r.scrollbar.size-i,l=r.content-r.viewport,s=a-o,c=n==="ltr"?[0,l]:[l*-1,0],d=CAe(e,c);return KU([0,l],[0,s])(d)}function $Ae(e,r,n,o="ltr"){const i=r3(n),a=i/2,l=r||a,s=i-l,c=n.scrollbar.paddingStart+l,d=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,p=o==="ltr"?[0,u]:[u*-1,0];return KU([c,d],p)(e)}function QU(e,r){return e>0&&e{e?.(o),(n===!1||!o.defaultPrevented)&&r?.(o)}}const[RAe,JU]=na("ScrollAreaScrollbar was not found in tree"),eW=S.forwardRef((e,r)=>{const{sizes:n,hasThumb:o,onThumbChange:i,onThumbPointerUp:a,onThumbPointerDown:l,onThumbPositionChange:s,onDragScroll:c,onWheelScroll:d,onResize:u,...p}=e,f=la(),[m,v]=S.useState(null),w=$r(r,z=>v(z)),x=S.useRef(null),k=S.useRef(""),{viewport:C}=f,_=n.content-n.viewport,$=Qn(d),R=Qn(s),T=bf(u,10),A=z=>{if(x.current){const j=z.clientX-x.current.left,I=z.clientY-x.current.top;c({x:j,y:I})}};return S.useEffect(()=>{const z=j=>{const I=j.target;m?.contains(I)&&$(j,_)};return document.addEventListener("wheel",z,{passive:!1}),()=>document.removeEventListener("wheel",z,{passive:!1})},[C,m,_,$]),S.useEffect(R,[n,R]),jf(m,T),jf(f.content,T),y.jsx(RAe,{value:{scrollbar:m,hasThumb:o,onThumbChange:Qn(i),onThumbPointerUp:Qn(a),onThumbPositionChange:R,onThumbPointerDown:Qn(l)},children:y.jsx("div",{...p,ref:w,"data-mantine-scrollbar":!0,style:{position:"absolute",...p.style},onPointerDown:ap(e.onPointerDown,z=>{z.preventDefault(),z.button===0&&(z.target.setPointerCapture(z.pointerId),x.current=m.getBoundingClientRect(),k.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",A(z))}),onPointerMove:ap(e.onPointerMove,A),onPointerUp:ap(e.onPointerUp,z=>{const j=z.target;j.hasPointerCapture(z.pointerId)&&(z.preventDefault(),j.releasePointerCapture(z.pointerId))}),onLostPointerCapture:()=>{document.body.style.webkitUserSelect=k.current,x.current=null}})})}),tW=S.forwardRef((e,r)=>{const{sizes:n,onSizesChange:o,style:i,...a}=e,l=la(),[s,c]=S.useState(),d=S.useRef(null),u=$r(r,d,l.onScrollbarXChange);return S.useEffect(()=>{d.current&&c(getComputedStyle(d.current))},[d]),y.jsx(eW,{"data-orientation":"horizontal",...a,ref:u,sizes:n,style:{...i,"--sa-thumb-width":`${r3(n)}px`},onThumbPointerDown:p=>e.onThumbPointerDown(p.x),onDragScroll:p=>e.onDragScroll(p.x),onWheelScroll:(p,f)=>{if(l.viewport){const m=l.viewport.scrollLeft+p.deltaX;e.onWheelScroll(m),QU(m,f)&&p.preventDefault()}},onResize:()=>{d.current&&l.viewport&&s&&o({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:xd(s.paddingLeft),paddingEnd:xd(s.paddingRight)}})}})});tW.displayName="@mantine/core/ScrollAreaScrollbarX";const rW=S.forwardRef((e,r)=>{const{sizes:n,onSizesChange:o,style:i,...a}=e,l=la(),[s,c]=S.useState(),d=S.useRef(null),u=$r(r,d,l.onScrollbarYChange);return S.useEffect(()=>{d.current&&c(window.getComputedStyle(d.current))},[]),y.jsx(eW,{...a,"data-orientation":"vertical",ref:u,sizes:n,style:{"--sa-thumb-height":`${r3(n)}px`,...i},onThumbPointerDown:p=>e.onThumbPointerDown(p.y),onDragScroll:p=>e.onDragScroll(p.y),onWheelScroll:(p,f)=>{if(l.viewport){const m=l.viewport.scrollTop+p.deltaY;e.onWheelScroll(m),QU(m,f)&&p.preventDefault()}},onResize:()=>{d.current&&l.viewport&&s&&o({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:xd(s.paddingTop),paddingEnd:xd(s.paddingBottom)}})}})});rW.displayName="@mantine/core/ScrollAreaScrollbarY";const n3=S.forwardRef((e,r)=>{const{orientation:n="vertical",...o}=e,{dir:i}=bd(),a=la(),l=S.useRef(null),s=S.useRef(0),[c,d]=S.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=XU(c.viewport,c.content),p={...o,sizes:c,onSizesChange:d,hasThumb:u>0&&u<1,onThumbChange:m=>{l.current=m},onThumbPointerUp:()=>{s.current=0},onThumbPointerDown:m=>{s.current=m}},f=(m,v)=>$Ae(m,s.current,c,v);return n==="horizontal"?y.jsx(tW,{...p,ref:r,onThumbPositionChange:()=>{if(a.viewport&&l.current){const m=a.viewport.scrollLeft,v=ZU(m,c,i);l.current.style.transform=`translate3d(${v}px, 0, 0)`}},onWheelScroll:m=>{a.viewport&&(a.viewport.scrollLeft=m)},onDragScroll:m=>{a.viewport&&(a.viewport.scrollLeft=f(m,i))}}):n==="vertical"?y.jsx(rW,{...p,ref:r,onThumbPositionChange:()=>{if(a.viewport&&l.current){const m=a.viewport.scrollTop,v=ZU(m,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, ${v}px, 0)`}},onWheelScroll:m=>{a.viewport&&(a.viewport.scrollTop=m)},onDragScroll:m=>{a.viewport&&(a.viewport.scrollTop=f(m))}}):null});n3.displayName="@mantine/core/ScrollAreaScrollbarVisible";const iS=S.forwardRef((e,r)=>{const n=la(),{forceMount:o,...i}=e,[a,l]=S.useState(!1),s=e.orientation==="horizontal",c=bf(()=>{if(n.viewport){const d=n.viewport.offsetWidth{const{forceMount:n,...o}=e,i=la(),[a,l]=S.useState(!1);return S.useEffect(()=>{const{scrollArea:s}=i;let c=0;if(s){const d=()=>{window.clearTimeout(c),l(!0)},u=()=>{c=window.setTimeout(()=>l(!1),i.scrollHideDelay)};return s.addEventListener("pointerenter",d),s.addEventListener("pointerleave",u),()=>{window.clearTimeout(c),s.removeEventListener("pointerenter",d),s.removeEventListener("pointerleave",u)}}},[i.scrollArea,i.scrollHideDelay]),n||a?y.jsx(iS,{"data-state":a?"visible":"hidden",...o,ref:r}):null});nW.displayName="@mantine/core/ScrollAreaScrollbarHover";const zAe=S.forwardRef((e,r)=>{const{forceMount:n,...o}=e,i=la(),a=e.orientation==="horizontal",[l,s]=S.useState("hidden"),c=bf(()=>s("idle"),100);return S.useEffect(()=>{if(l==="idle"){const d=window.setTimeout(()=>s("hidden"),i.scrollHideDelay);return()=>window.clearTimeout(d)}},[l,i.scrollHideDelay]),S.useEffect(()=>{const{viewport:d}=i,u=a?"scrollLeft":"scrollTop";if(d){let p=d[u];const f=()=>{const m=d[u];p!==m&&(s("scrolling"),c()),p=m};return d.addEventListener("scroll",f),()=>d.removeEventListener("scroll",f)}},[i.viewport,a,c]),n||l!=="hidden"?y.jsx(n3,{"data-state":l==="hidden"?"hidden":"visible",...o,ref:r,onPointerEnter:ap(e.onPointerEnter,()=>s("interacting")),onPointerLeave:ap(e.onPointerLeave,()=>s("idle"))}):null}),aS=S.forwardRef((e,r)=>{const{forceMount:n,...o}=e,i=la(),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:l}=i,s=e.orientation==="horizontal";return S.useEffect(()=>(s?a(!0):l(!0),()=>{s?a(!1):l(!1)}),[s,a,l]),i.type==="hover"?y.jsx(nW,{...o,ref:r,forceMount:n}):i.type==="scroll"?y.jsx(zAe,{...o,ref:r,forceMount:n}):i.type==="auto"?y.jsx(iS,{...o,ref:r,forceMount:n}):i.type==="always"?y.jsx(n3,{...o,ref:r}):null});aS.displayName="@mantine/core/ScrollAreaScrollbar";function TAe(e,r=()=>{}){let n={left:e.scrollLeft,top:e.scrollTop},o=0;return(function i(){const a={left:e.scrollLeft,top:e.scrollTop},l=n.left!==a.left,s=n.top!==a.top;(l||s)&&r(),n=a,o=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(o)}const oW=S.forwardRef((e,r)=>{const{style:n,...o}=e,i=la(),a=JU(),{onThumbPositionChange:l}=a,s=$r(r,u=>a.onThumbChange(u)),c=S.useRef(void 0),d=bf(()=>{c.current&&(c.current(),c.current=void 0)},100);return S.useEffect(()=>{const{viewport:u}=i;if(u){const p=()=>{if(d(),!c.current){const f=TAe(u,l);c.current=f,l()}};return l(),u.addEventListener("scroll",p),()=>u.removeEventListener("scroll",p)}},[i.viewport,d,l]),y.jsx("div",{"data-state":a.hasThumb?"visible":"hidden",...o,ref:s,style:{width:"var(--sa-thumb-width)",height:"var(--sa-thumb-height)",...n},onPointerDownCapture:ap(e.onPointerDownCapture,u=>{const p=u.target.getBoundingClientRect(),f=u.clientX-p.left,m=u.clientY-p.top;a.onThumbPointerDown({x:f,y:m})}),onPointerUp:ap(e.onPointerUp,a.onThumbPointerUp)})});oW.displayName="@mantine/core/ScrollAreaThumb";const lS=S.forwardRef((e,r)=>{const{forceMount:n,...o}=e,i=JU();return n||i.hasThumb?y.jsx(oW,{ref:r,...o}):null});lS.displayName="@mantine/core/ScrollAreaThumb";const iW=S.forwardRef(({children:e,style:r,...n},o)=>{const i=la(),a=$r(o,i.onViewportChange);return y.jsx(Se,{...n,ref:a,style:{overflowX:i.scrollbarXEnabled?"scroll":"hidden",overflowY:i.scrollbarYEnabled?"scroll":"hidden",...r},children:y.jsx("div",{...i.getStyles("content"),ref:i.onContentChange,children:e})})});iW.displayName="@mantine/core/ScrollAreaViewport";var sS={root:"m_d57069b5",content:"m_b1336c6",viewport:"m_c0783ff9",viewportInner:"m_f8f631dd",scrollbar:"m_c44ba933",thumb:"m_d8b5e363",corner:"m_21657268"};const aW={scrollHideDelay:1e3,type:"hover",scrollbars:"xy"},jAe=(e,{scrollbarSize:r,overscrollBehavior:n})=>({root:{"--scrollarea-scrollbar-size":$e(r),"--scrollarea-over-scroll-behavior":n}}),es=ot((e,r)=>{const n=Pe("ScrollArea",aW,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,scrollbarSize:c,vars:d,type:u,scrollHideDelay:p,viewportProps:f,viewportRef:m,onScrollPositionChange:v,children:w,offsetScrollbars:x,scrollbars:k,onBottomReached:C,onTopReached:_,overscrollBehavior:$,attributes:R,...T}=n,[A,z]=S.useState(!1),[j,I]=S.useState(!1),[N,L]=S.useState(!1),H=kt({name:"ScrollArea",props:n,classes:sS,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:R,vars:d,varsResolver:jAe}),P=S.useRef(null),V=DU([m,P]);return S.useEffect(()=>{if(!P.current||x!=="present")return;const B=P.current,F=new ResizeObserver(()=>{const{scrollHeight:q,clientHeight:G,scrollWidth:U,clientWidth:Y}=B;I(q>G),L(U>Y)});return F.observe(B),()=>F.disconnect()},[P,x]),y.jsxs(YU,{getStyles:H,type:u==="never"?"always":u,scrollHideDelay:p,ref:r,scrollbars:k,...H("root"),...T,children:[y.jsx(iW,{...f,...H("viewport",{style:f?.style}),ref:V,"data-offset-scrollbars":x===!0?"xy":x||void 0,"data-scrollbars":k||void 0,"data-horizontal-hidden":x==="present"&&!N?"true":void 0,"data-vertical-hidden":x==="present"&&!j?"true":void 0,onScroll:B=>{f?.onScroll?.(B),v?.({x:B.currentTarget.scrollLeft,y:B.currentTarget.scrollTop});const{scrollTop:F,scrollHeight:q,clientHeight:G}=B.currentTarget;F-(q-G)>=-.6&&C?.(),F===0&&_?.()},children:w}),(k==="xy"||k==="x")&&y.jsx(aS,{...H("scrollbar"),orientation:"horizontal","data-hidden":u==="never"||x==="present"&&!N?!0:void 0,forceMount:!0,onMouseEnter:()=>z(!0),onMouseLeave:()=>z(!1),children:y.jsx(lS,{...H("thumb")})}),(k==="xy"||k==="y")&&y.jsx(aS,{...H("scrollbar"),orientation:"vertical","data-hidden":u==="never"||x==="present"&&!j?!0:void 0,forceMount:!0,onMouseEnter:()=>z(!0),onMouseLeave:()=>z(!1),children:y.jsx(lS,{...H("thumb")})}),y.jsx(SAe,{...H("corner"),"data-hovered":A||void 0,"data-hidden":u==="never"||void 0})]})});es.displayName="@mantine/core/ScrollArea";const oi=ot((e,r)=>{const{children:n,classNames:o,styles:i,scrollbarSize:a,scrollHideDelay:l,type:s,dir:c,offsetScrollbars:d,viewportRef:u,onScrollPositionChange:p,unstyled:f,variant:m,viewportProps:v,scrollbars:w,style:x,vars:k,onBottomReached:C,onTopReached:_,onOverflowChange:$,...R}=Pe("ScrollAreaAutosize",aW,e),T=S.useRef(null),A=DU([u,T]),[z,j]=S.useState(!1),I=S.useRef(!1);return S.useEffect(()=>{if(!$)return;const N=T.current;if(!N)return;const L=()=>{const P=N.scrollHeight>N.clientHeight;P!==z&&(I.current?$?.(P):(I.current=!0,P&&$?.(!0)),j(P))};L();const H=new ResizeObserver(L);return H.observe(N),()=>H.disconnect()},[$,z]),y.jsx(Se,{...R,ref:r,style:[{display:"flex",overflow:"hidden"},x],children:y.jsx(Se,{style:{display:"flex",flexDirection:"column",flex:1,overflow:"hidden",...w==="y"&&{minWidth:0},...w==="x"&&{minHeight:0},...w==="xy"&&{minWidth:0,minHeight:0},...w===!1&&{minWidth:0,minHeight:0}},children:y.jsx(es,{classNames:o,styles:i,scrollHideDelay:l,scrollbarSize:a,type:s,dir:c,offsetScrollbars:d,viewportRef:A,onScrollPositionChange:p,unstyled:f,variant:m,viewportProps:v,vars:k,scrollbars:w,onBottomReached:C,onTopReached:_,"data-autosize":"true",children:n})})})});es.classes=sS,oi.displayName="@mantine/core/ScrollAreaAutosize",oi.classes=sS,es.Autosize=oi;var lW={root:"m_87cf2631"};const AAe={__staticSelector:"UnstyledButton"},pr=Jn((e,r)=>{const n=Pe("UnstyledButton",AAe,e),{className:o,component:i="button",__staticSelector:a,unstyled:l,classNames:s,styles:c,style:d,attributes:u,...p}=n,f=kt({name:a,props:n,classes:lW,className:o,style:d,classNames:s,styles:c,unstyled:l,attributes:u});return y.jsx(Se,{...f("root",{focusable:!0}),component:i,ref:r,type:i==="button"?"button":void 0,...p})});pr.classes=lW,pr.displayName="@mantine/core/UnstyledButton";var sW={root:"m_515a97f8"};const o3=ot((e,r)=>{const n=Pe("VisuallyHidden",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,attributes:d,...u}=n,p=kt({name:"VisuallyHidden",classes:sW,props:n,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:d});return y.jsx(Se,{component:"span",ref:r,...p("root"),...u})});o3.classes=sW,o3.displayName="@mantine/core/VisuallyHidden";var cW={root:"m_1b7284a3"};const DAe=(e,{radius:r,shadow:n})=>({root:{"--paper-radius":r===void 0?void 0:wn(r),"--paper-shadow":uH(n)}}),Af=Jn((e,r)=>{const n=Pe("Paper",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,withBorder:c,vars:d,radius:u,shadow:p,variant:f,mod:m,attributes:v,...w}=n,x=kt({name:"Paper",props:n,classes:cW,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:v,vars:d,varsResolver:DAe});return y.jsx(Se,{ref:r,mod:[{"data-with-border":c},m],...x("root"),variant:f,...w})});Af.classes=cW,Af.displayName="@mantine/core/Paper";function dW(e,r,n,o){return e==="center"||o==="center"?{top:r}:e==="end"?{bottom:n}:e==="start"?{top:n}:{}}function uW(e,r,n,o,i){return e==="center"||o==="center"?{left:r}:e==="end"?{[i==="ltr"?"right":"left"]:n}:e==="start"?{[i==="ltr"?"left":"right"]:n}:{}}const PAe={bottom:"borderTopLeftRadius",left:"borderTopRightRadius",right:"borderBottomLeftRadius",top:"borderBottomRightRadius"};function MAe({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:i,arrowX:a,arrowY:l,dir:s}){const[c,d="center"]=e.split("-"),u={width:r,height:r,transform:"rotate(45deg)",position:"absolute",[PAe[c]]:o},p=-r/2;return c==="left"?{...u,...dW(d,l,n,i),right:p,borderLeftColor:"transparent",borderBottomColor:"transparent",clipPath:"polygon(100% 0, 0 0, 100% 100%)"}:c==="right"?{...u,...dW(d,l,n,i),left:p,borderRightColor:"transparent",borderTopColor:"transparent",clipPath:"polygon(0 100%, 0 0, 100% 100%)"}:c==="top"?{...u,...uW(d,a,n,i,s),bottom:p,borderTopColor:"transparent",borderLeftColor:"transparent",clipPath:"polygon(0 100%, 100% 100%, 100% 0)"}:c==="bottom"?{...u,...uW(d,a,n,i,s),top:p,borderBottomColor:"transparent",borderRightColor:"transparent",clipPath:"polygon(0 100%, 0 0, 100% 0)"}:{}}const i3=S.forwardRef(({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:i,visible:a,arrowX:l,arrowY:s,style:c,...d},u)=>{const{dir:p}=bd();return a?y.jsx("div",{...d,ref:u,style:{...c,...MAe({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:i,dir:p,arrowX:l,arrowY:s})}}):null});i3.displayName="@mantine/core/FloatingArrow";function pW(e,r){if(e==="rtl"&&(r.includes("right")||r.includes("left"))){const[n,o]=r.split("-"),i=n==="right"?"left":"right";return o===void 0?i:`${i}-${o}`}return r}var hW={root:"m_9814e45f"};const NAe={zIndex:Ew("modal")},BAe=(e,{gradient:r,color:n,backgroundOpacity:o,blur:i,radius:a,zIndex:l})=>({root:{"--overlay-bg":r||(n!==void 0||o!==void 0)&&Xl(n||"#000",o??.6)||void 0,"--overlay-filter":i?`blur(${$e(i)})`:void 0,"--overlay-radius":a===void 0?void 0:wn(a),"--overlay-z-index":l?.toString()}}),cS=Jn((e,r)=>{const n=Pe("Overlay",NAe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,fixed:d,center:u,children:p,radius:f,zIndex:m,gradient:v,blur:w,color:x,backgroundOpacity:k,mod:C,attributes:_,...$}=n,R=kt({name:"Overlay",props:n,classes:hW,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:_,vars:c,varsResolver:BAe});return y.jsx(Se,{ref:r,...R("root"),mod:[{center:u,fixed:d},C],...$,children:p})});cS.classes=hW,cS.displayName="@mantine/core/Overlay";function dS(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 IAe({target:e,reuseTargetNode:r,...n}){if(e)return typeof e=="string"?document.querySelector(e)||dS(n):e;if(r){const o=document.querySelector("[data-mantine-shared-portal-node]");if(o)return o;const i=dS(n);return i.setAttribute("data-mantine-shared-portal-node","true"),document.body.appendChild(i),i}return dS(n)}const OAe={reuseTargetNode:!0},py=ot((e,r)=>{const{children:n,target:o,reuseTargetNode:i,...a}=Pe("Portal",OAe,e),[l,s]=S.useState(!1),c=S.useRef(null);return xf(()=>(s(!0),c.current=IAe({target:o,reuseTargetNode:i,...a}),v9(r,c.current),!o&&!i&&c.current&&document.body.appendChild(c.current),()=>{!o&&!i&&c.current&&document.body.removeChild(c.current)}),[o]),!l||!c.current?null:Va.createPortal(y.jsx(y.Fragment,{children:n}),c.current)});py.displayName="@mantine/core/Portal";const Df=ot(({withinPortal:e=!0,children:r,...n},o)=>Dw()==="test"||!e?y.jsx(y.Fragment,{children:r}):y.jsx(py,{ref:o,...n,children:r}));Df.displayName="@mantine/core/OptionalPortal";const hy=e=>({in:{opacity:1,transform:"scale(1)"},out:{opacity:0,transform:`scale(.9) translateY(${e==="bottom"?10:-10}px)`},transitionProperty:"transform, opacity"}),a3={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:{...hy("bottom"),common:{transformOrigin:"center center"}},"pop-bottom-left":{...hy("bottom"),common:{transformOrigin:"bottom left"}},"pop-bottom-right":{...hy("bottom"),common:{transformOrigin:"bottom right"}},"pop-top-left":{...hy("top"),common:{transformOrigin:"top left"}},"pop-top-right":{...hy("top"),common:{transformOrigin:"top right"}}},fW={entering:"in",entered:"in",exiting:"out",exited:"out","pre-exiting":"out","pre-entering":"out"};function LAe({transition:e,state:r,duration:n,timingFunction:o}){const i={WebkitBackfaceVisibility:"hidden",transitionDuration:`${n}ms`,transitionTimingFunction:o};return typeof e=="string"?e in a3?{transitionProperty:a3[e].transitionProperty,...i,...a3[e].common,...a3[e][fW[r]]}:{}:{transitionProperty:e.transitionProperty,...i,...e.common,...e[fW[r]]}}function FAe({duration:e,exitDuration:r,timingFunction:n,mounted:o,onEnter:i,onExit:a,onEntered:l,onExited:s,enterDelay:c,exitDelay:d}){const u=lo(),p=_H(),f=u.respectReducedMotion?p:!1,[m,v]=S.useState(f?0:e),[w,x]=S.useState(o?"entered":"exited"),k=S.useRef(-1),C=S.useRef(-1),_=S.useRef(-1);function $(){window.clearTimeout(k.current),window.clearTimeout(C.current),cancelAnimationFrame(_.current)}const R=A=>{$();const z=A?i:a,j=A?l:s,I=f?0:A?e:r;v(I),I===0?(typeof z=="function"&&z(),typeof j=="function"&&j(),x(A?"entered":"exited")):_.current=requestAnimationFrame(()=>{YM.flushSync(()=>{x(A?"pre-entering":"pre-exiting")}),_.current=requestAnimationFrame(()=>{typeof z=="function"&&z(),x(A?"entering":"exiting"),k.current=window.setTimeout(()=>{typeof j=="function"&&j(),x(A?"entered":"exited")},I)})})},T=A=>{if($(),typeof(A?c:d)!="number"){R(A);return}C.current=window.setTimeout(()=>{R(A)},A?c:d)};return wf(()=>{T(o)},[o]),S.useEffect(()=>()=>{$()},[]),{transitionDuration:m,transitionStatus:w,transitionTimingFunction:n||"ease"}}function wd({keepMounted:e,transition:r="fade",duration:n=250,exitDuration:o=n,mounted:i,children:a,timingFunction:l="ease",onExit:s,onEntered:c,onEnter:d,onExited:u,enterDelay:p,exitDelay:f}){const m=Dw(),{transitionDuration:v,transitionStatus:w,transitionTimingFunction:x}=FAe({mounted:i,exitDuration:o,duration:n,timingFunction:l,onExit:s,onEntered:c,onEnter:d,onExited:u,enterDelay:p,exitDelay:f});return v===0||m==="test"?i?y.jsx(y.Fragment,{children:a({})}):e?a({display:"none"}):null:w==="exited"?e?a({display:"none"}):null:y.jsx(y.Fragment,{children:a(LAe({transition:r,duration:v,state:w,timingFunction:x}))})}wd.displayName="@mantine/core/Transition";const[VAe,gW]=na("Popover component was not found in the tree");function l3({children:e,active:r=!0,refProp:n="ref",innerRef:o}){const i=bH(r),a=$r(i,o),l=md(e);return l?S.cloneElement(l,{[n]:a}):e}function mW(e){return y.jsx(o3,{tabIndex:-1,"data-autofocus":!0,...e})}l3.displayName="@mantine/core/FocusTrap",mW.displayName="@mantine/core/FocusTrapInitialFocus",l3.InitialFocus=mW;var yW={dropdown:"m_38a85659",arrow:"m_a31dc6c1",overlay:"m_3d7bc908"};const Qs=ot((e,r)=>{const n=Pe("PopoverDropdown",null,e),{className:o,style:i,vars:a,children:l,onKeyDownCapture:s,variant:c,classNames:d,styles:u,...p}=n,f=gW(),m=ZRe({opened:f.opened,shouldReturnFocus:f.returnFocus}),v=f.withRoles?{"aria-labelledby":f.getTargetId(),id:f.getDropdownId(),role:"dialog",tabIndex:-1}:{},w=$r(r,f.floating);return f.disabled?null:y.jsx(Df,{...f.portalProps,withinPortal:f.withinPortal,children:y.jsx(wd,{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:x=>y.jsx(l3,{active:f.trapFocus&&f.opened,innerRef:w,children:y.jsxs(Se,{...v,...p,variant:c,onKeyDownCapture:FRe(()=>{f.onClose?.(),f.onDismiss?.()},{active:f.closeOnEscape,onTrigger:m,onKeyDown:s}),"data-position":f.placement,"data-fixed":f.floatingStrategy==="fixed"||void 0,...f.getStyles("dropdown",{className:o,props:n,classNames:d,styles:u,style:[{...x,zIndex:f.zIndex,top:f.y??0,left:f.x??0,width:f.width==="target"?void 0:$e(f.width),...f.referenceHidden?{display:"none"}:null},f.resolvedStyles.dropdown,u?.dropdown,i]}),children:[l,y.jsx(i3,{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:d,styles:u})})]})})})})});Qs.classes=yW,Qs.displayName="@mantine/core/PopoverDropdown";const qAe={refProp:"ref",popupType:"dialog"},kd=ot((e,r)=>{const{children:n,refProp:o,popupType:i,...a}=Pe("PopoverTarget",qAe,e),l=md(n);if(!l)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 s=a,c=gW(),d=$r(c.reference,Rw(l),r),u=c.withRoles?{"aria-haspopup":i,"aria-expanded":c.opened,"aria-controls":c.getDropdownId(),id:c.getTargetId()}:{},p=l.props;return S.cloneElement(l,{...s,...u,...c.targetProps,className:el(c.targetProps.className,s.className,p.className),[o]:d,...c.controlled?null:{onClick:()=>{c.onToggle(),p.onClick?.()}}})});kd.displayName="@mantine/core/PopoverTarget";function HAe(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 UAe(e,r,n){const o=HAe(e.middlewares),i=[TU(e.offset),lAe()];return e.dropdownVisible&&n!=="test"&&e.preventPositionChangeWhenVisible&&(o.flip=!1),o.shift&&i.push(Z9(typeof o.shift=="boolean"?{limiter:jU(),padding:5}:{limiter:jU(),padding:5,...o.shift})),o.flip&&i.push(typeof o.flip=="boolean"?Jw():Jw(o.flip)),o.inline&&i.push(typeof o.inline=="boolean"?uy():uy(o.inline)),i.push(AU({element:e.arrowRef,padding:e.arrowOffset})),(o.size||e.width==="target")&&i.push(aAe({...typeof o.size=="boolean"?{}:o.size,apply({rects:a,availableWidth:l,availableHeight:s,...c}){const d=r().refs.floating.current?.style??{};o.size&&(typeof o.size=="object"&&o.size.apply?o.size.apply({rects:a,availableWidth:l,availableHeight:s,...c}):Object.assign(d,{maxWidth:`${l}px`,maxHeight:`${s}px`})),e.width==="target"&&Object.assign(d,{width:`${a.reference.width}px`})}})),i}function WAe(e){const r=Dw(),[n,o]=Ys({value:e.opened,defaultValue:e.defaultOpened,finalValue:!1,onChange:e.onChange}),i=S.useRef(n),a=()=>{n&&!e.disabled&&o(!1)},l=()=>{e.disabled||o(!n)},s=t3({strategy:e.strategy,placement:e.preventPositionChangeWhenVisible?e.positionRef.current:e.position,middleware:UAe(e,()=>s,r),whileElementsMounted:e.keepMounted?void 0:Kw});return S.useEffect(()=>{if(!(!s.refs.reference.current||!s.refs.floating.current)&&n)return Kw(s.refs.reference.current,s.refs.floating.current,s.update)},[n,s.update]),wf(()=>{e.onPositionChange?.(s.placement),e.positionRef.current=s.placement},[s.placement,e.preventPositionChangeWhenVisible]),wf(()=>{n!==i.current&&(n?e.onOpen?.():e.onClose?.()),i.current=n},[n,e.onClose,e.onOpen]),xf(()=>{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:a,onToggle:l}}const GAe={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:Ew("popover"),__staticSelector:"Popover",width:"max-content"},YAe=(e,{radius:r,shadow:n})=>({dropdown:{"--popover-radius":r===void 0?void 0:wn(r),"--popover-shadow":uH(n)}});function br(e){const r=Pe("Popover",GAe,e),{children:n,position:o,offset:i,onPositionChange:a,positionDependencies:l,opened:s,transitionProps:c,onExitTransitionEnd:d,onEnterTransitionEnd:u,width:p,middlewares:f,withArrow:m,arrowSize:v,arrowOffset:w,arrowRadius:x,arrowPosition:k,unstyled:C,classNames:_,styles:$,closeOnClickOutside:R,withinPortal:T,portalProps:A,closeOnEscape:z,clickOutsideEvents:j,trapFocus:I,onClose:N,onDismiss:L,onOpen:H,onChange:P,zIndex:V,radius:B,shadow:F,id:q,defaultOpened:G,__staticSelector:U,withRoles:Y,disabled:K,returnFocus:O,variant:W,keepMounted:Z,vars:Q,floatingStrategy:ie,withOverlay:te,overlayProps:re,hideDetached:ue,attributes:_e,preventPositionChangeWhenVisible:ce,...pe}=r,xe=kt({name:U,props:r,classes:yW,classNames:_,styles:$,unstyled:C,attributes:_e,rootSelector:"dropdown",vars:Q,varsResolver:YAe}),{resolvedStyles:je}=T9({classNames:_,styles:$,props:r}),[Be,Je]=S.useState(s??G??!1),st=S.useRef(o),Le=S.useRef(null),[St,Ve]=S.useState(null),[qe,Xe]=S.useState(null),{dir:It}=bd(),Et=Dw(),be=oa(q),ke=WAe({middlewares:f,width:p,position:pW(It,o),offset:typeof i=="number"?i+(m?v/2:0):i,arrowRef:Le,arrowOffset:w,onPositionChange:a,positionDependencies:l,opened:s,defaultOpened:G,onChange:P,onOpen:H,onClose:N,onDismiss:L,strategy:ie,dropdownVisible:Be,setDropdownVisible:Je,positionRef:st,disabled:K,preventPositionChangeWhenVisible:ce,keepMounted:Z});hH(()=>{R&&(ke.onClose(),L?.())},j,[St,qe]);const Ye=S.useCallback(er=>{Ve(er),ke.floating.refs.setReference(er)},[ke.floating.refs.setReference]),yt=S.useCallback(er=>{Xe(er),ke.floating.refs.setFloating(er)},[ke.floating.refs.setFloating]),xt=S.useCallback(()=>{c?.onExited?.(),d?.(),Je(!1),ce||(st.current=o)},[c?.onExited,d,ce,o]),Tr=S.useCallback(()=>{c?.onEntered?.(),u?.()},[c?.onEntered,u]);return y.jsxs(VAe,{value:{returnFocus:O,disabled:K,controlled:ke.controlled,reference:Ye,floating:yt,x:ke.floating.x,y:ke.floating.y,arrowX:ke.floating?.middlewareData?.arrow?.x,arrowY:ke.floating?.middlewareData?.arrow?.y,opened:ke.opened,arrowRef:Le,transitionProps:{...c,onExited:xt,onEntered:Tr},width:p,withArrow:m,arrowSize:v,arrowOffset:w,arrowRadius:x,arrowPosition:k,placement:ke.floating.placement,trapFocus:I,withinPortal:T,portalProps:A,zIndex:V,radius:B,shadow:F,closeOnEscape:z,onDismiss:L,onClose:ke.onClose,onToggle:ke.onToggle,getTargetId:()=>`${be}-target`,getDropdownId:()=>`${be}-dropdown`,withRoles:Y,targetProps:pe,__staticSelector:U,classNames:_,styles:$,unstyled:C,variant:W,keepMounted:Z,getStyles:xe,resolvedStyles:je,floatingStrategy:ie,referenceHidden:ue&&Et!=="test"?ke.floating.middlewareData.hide?.referenceHidden:!1},children:[n,te&&y.jsx(wd,{transition:"fade",mounted:ke.opened,duration:c?.duration||250,exitDuration:c?.exitDuration||250,children:er=>y.jsx(Df,{withinPortal:T,children:y.jsx(cS,{...re,...xe("overlay",{className:re?.className,style:[er,re?.style]})})})})]})}br.Target=kd,br.Dropdown=Qs,br.displayName="@mantine/core/Popover",br.extend=e=>e;var il={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 vW=S.forwardRef(({className:e,...r},n)=>y.jsxs(Se,{component:"span",className:el(il.barsLoader,e),...r,ref:n,children:[y.jsx("span",{className:il.bar}),y.jsx("span",{className:il.bar}),y.jsx("span",{className:il.bar})]}));vW.displayName="@mantine/core/Bars";const bW=S.forwardRef(({className:e,...r},n)=>y.jsxs(Se,{component:"span",className:el(il.dotsLoader,e),...r,ref:n,children:[y.jsx("span",{className:il.dot}),y.jsx("span",{className:il.dot}),y.jsx("span",{className:il.dot})]}));bW.displayName="@mantine/core/Dots";const xW=S.forwardRef(({className:e,...r},n)=>y.jsx(Se,{component:"span",className:el(il.ovalLoader,e),...r,ref:n}));xW.displayName="@mantine/core/Oval";const wW={bars:vW,oval:xW,dots:bW},XAe={loaders:wW,type:"oval"},KAe=(e,{size:r,color:n})=>({root:{"--loader-size":dr(r,"loader-size"),"--loader-color":n?Ci(n,e):void 0}}),Pf=ot((e,r)=>{const n=Pe("Loader",XAe,e),{size:o,color:i,type:a,vars:l,className:s,style:c,classNames:d,styles:u,unstyled:p,loaders:f,variant:m,children:v,attributes:w,...x}=n,k=kt({name:"Loader",props:n,classes:il,className:s,style:c,classNames:d,styles:u,unstyled:p,attributes:w,vars:l,varsResolver:KAe});return v?y.jsx(Se,{...k("root"),ref:r,...x,children:v}):y.jsx(Se,{...k("root"),ref:r,component:f[a],variant:m,size:o,...x})});Pf.defaultLoaders=wW,Pf.classes=il,Pf.displayName="@mantine/core/Loader";var Mf={root:"m_8d3f4000",icon:"m_8d3afb97",loader:"m_302b9fb1",group:"m_1a0f1b21",groupSection:"m_437b6484"};const kW={orientation:"horizontal"},ZAe=(e,{borderWidth:r})=>({group:{"--ai-border-width":$e(r)}}),s3=ot((e,r)=>{const n=Pe("ActionIconGroup",kW,e),{className:o,style:i,classNames:a,styles:l,unstyled:s,orientation:c,vars:d,borderWidth:u,variant:p,mod:f,attributes:m,...v}=Pe("ActionIconGroup",kW,e),w=kt({name:"ActionIconGroup",props:n,classes:Mf,className:o,style:i,classNames:a,styles:l,unstyled:s,attributes:m,vars:d,varsResolver:ZAe,rootSelector:"group"});return y.jsx(Se,{...w("group"),ref:r,variant:p,mod:[{"data-orientation":c},f],role:"group",...v})});s3.classes=Mf,s3.displayName="@mantine/core/ActionIconGroup";const QAe=(e,{radius:r,color:n,gradient:o,variant:i,autoContrast:a,size:l})=>{const s=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:i||"filled",autoContrast:a});return{groupSection:{"--section-height":dr(l,"section-height"),"--section-padding-x":dr(l,"section-padding-x"),"--section-fz":Eo(l),"--section-radius":r===void 0?void 0:wn(r),"--section-bg":n||i?s.background:void 0,"--section-color":s.color,"--section-bd":n||i?s.border:void 0}}},uS=ot((e,r)=>{const n=Pe("ActionIconGroupSection",null,e),{className:o,style:i,classNames:a,styles:l,unstyled:s,vars:c,variant:d,gradient:u,radius:p,autoContrast:f,attributes:m,...v}=n,w=kt({name:"ActionIconGroupSection",props:n,classes:Mf,className:o,style:i,classNames:a,styles:l,unstyled:s,attributes:m,vars:c,varsResolver:QAe,rootSelector:"groupSection"});return y.jsx(Se,{...w("groupSection"),ref:r,variant:d,...v})});uS.classes=Mf,uS.displayName="@mantine/core/ActionIconGroupSection";const JAe=(e,{size:r,radius:n,variant:o,gradient:i,color:a,autoContrast:l})=>{const s=e.variantColorResolver({color:a||e.primaryColor,theme:e,gradient:i,variant:o||"filled",autoContrast:l});return{root:{"--ai-size":dr(r,"ai-size"),"--ai-radius":n===void 0?void 0:wn(n),"--ai-bg":a||o?s.background:void 0,"--ai-hover":a||o?s.hover:void 0,"--ai-hover-color":a||o?s.hoverColor:void 0,"--ai-color":s.color,"--ai-bd":a||o?s.border:void 0}}},lr=Jn((e,r)=>{const n=Pe("ActionIcon",null,e),{className:o,unstyled:i,variant:a,classNames:l,styles:s,style:c,loading:d,loaderProps:u,size:p,color:f,radius:m,__staticSelector:v,gradient:w,vars:x,children:k,disabled:C,"data-disabled":_,autoContrast:$,mod:R,attributes:T,...A}=n,z=kt({name:["ActionIcon",v],props:n,className:o,style:c,classes:Mf,classNames:l,styles:s,unstyled:i,attributes:T,vars:x,varsResolver:JAe});return y.jsxs(pr,{...z("root",{active:!C&&!d&&!_}),...A,unstyled:i,variant:a,size:p,disabled:C||d,ref:r,mod:[{loading:d,disabled:C||_},R],children:[typeof d=="boolean"&&y.jsx(wd,{mounted:d,transition:"slide-down",duration:150,children:j=>y.jsx(Se,{component:"span",...z("loader",{style:j}),"aria-hidden":!0,children:y.jsx(Pf,{color:"var(--ai-color)",size:"calc(var(--ai-size) * 0.55)",...u})})}),y.jsx(Se,{component:"span",mod:{loading:d},...z("icon"),children:k})]})});lr.classes=Mf,lr.displayName="@mantine/core/ActionIcon",lr.Group=s3,lr.GroupSection=uS;const _W=S.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"})}));_W.displayName="@mantine/core/CloseIcon";var SW={root:"m_86a44da5","root--subtle":"m_220c80f2"};const eDe={variant:"subtle"},tDe=(e,{size:r,radius:n,iconSize:o})=>({root:{"--cb-size":dr(r,"cb-size"),"--cb-radius":n===void 0?void 0:wn(n),"--cb-icon-size":$e(o)}}),lp=Jn((e,r)=>{const n=Pe("CloseButton",eDe,e),{iconSize:o,children:i,vars:a,radius:l,className:s,classNames:c,style:d,styles:u,unstyled:p,"data-disabled":f,disabled:m,variant:v,icon:w,mod:x,attributes:k,__staticSelector:C,..._}=n,$=kt({name:C||"CloseButton",props:n,className:s,style:d,classes:SW,classNames:c,styles:u,unstyled:p,attributes:k,vars:a,varsResolver:tDe});return y.jsxs(pr,{ref:r,..._,unstyled:p,variant:v,disabled:m,mod:[{disabled:m||f},x],...$("root",{variant:v,active:!m&&!f}),children:[w||y.jsx(_W,{}),i]})});lp.classes=SW,lp.displayName="@mantine/core/CloseButton";function rDe(e){return S.Children.toArray(e).filter(Boolean)}var EW={root:"m_4081bf90"};const nDe={preventGrowOverflow:!0,gap:"md",align:"center",justify:"flex-start",wrap:"wrap"},oDe=(e,{grow:r,preventGrowOverflow:n,gap:o,align:i,justify:a,wrap:l},{childWidth:s})=>({root:{"--group-child-width":r&&n?s:void 0,"--group-gap":Gs(o),"--group-align":i,"--group-justify":a,"--group-wrap":l}}),en=ot((e,r)=>{const n=Pe("Group",nDe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,children:c,gap:d,align:u,justify:p,wrap:f,grow:m,preventGrowOverflow:v,vars:w,variant:x,__size:k,mod:C,attributes:_,...$}=n,R=rDe(c),T=R.length,A=Gs(d??"md"),z={childWidth:`calc(${100/T}% - (${A} - ${A} / ${T}))`},j=kt({name:"Group",props:n,stylesCtx:z,className:i,style:a,classes:EW,classNames:o,styles:l,unstyled:s,attributes:_,vars:w,varsResolver:oDe});return y.jsx(Se,{...j("root"),ref:r,variant:x,mod:[{grow:m},C],size:k,...$,children:R})});en.classes=EW,en.displayName="@mantine/core/Group";const[iDe,aDe]=oy({size:"sm"}),CW=ot((e,r)=>{const n=Pe("InputClearButton",null,e),{size:o,variant:i,vars:a,classNames:l,styles:s,...c}=n,d=aDe(),{resolvedClassNames:u,resolvedStyles:p}=T9({classNames:l,styles:s,props:n});return y.jsx(lp,{variant:i||"transparent",ref:r,size:o||d?.size||"sm",classNames:u,styles:p,__staticSelector:"InputClearButton",style:{pointerEvents:"all",background:"var(--input-bg)",...c.style},...c})});CW.displayName="@mantine/core/InputClearButton";const lDe={xs:7,sm:8,md:10,lg:12,xl:15};function sDe({__clearable:e,__clearSection:r,rightSection:n,__defaultRightSection:o,size:i="sm"}){const a=e&&r;return a&&(n||o)?y.jsxs("div",{"data-combined-clear-section":!0,style:{display:"flex",gap:2,alignItems:"center",paddingInlineEnd:lDe[i]},children:[a,n||o]}):n===null?null:n||a||o}const[cDe,c3]=oy({offsetBottom:!1,offsetTop:!1,describedBy:void 0,getStyles:null,inputId:void 0,labelId:void 0});var sa={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 dDe=(e,{size:r})=>({description:{"--input-description-size":r===void 0?void 0:`calc(${Eo(r)} - ${$e(2)})`}}),d3=ot((e,r)=>{const n=Pe("InputDescription",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,size:d,__staticSelector:u,__inheritStyles:p=!0,attributes:f,variant:m,...v}=Pe("InputDescription",null,n),w=c3(),x=kt({name:["InputWrapper",u],props:n,classes:sa,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:f,rootSelector:"description",vars:c,varsResolver:dDe}),k=p&&w?.getStyles||x;return y.jsx(Se,{component:"p",ref:r,variant:m,size:d,...k("description",w?.getStyles?{className:i,style:a}:void 0),...v})});d3.classes=sa,d3.displayName="@mantine/core/InputDescription";const uDe=(e,{size:r})=>({error:{"--input-error-size":r===void 0?void 0:`calc(${Eo(r)} - ${$e(2)})`}}),u3=ot((e,r)=>{const n=Pe("InputError",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,size:d,attributes:u,__staticSelector:p,__inheritStyles:f=!0,variant:m,...v}=n,w=kt({name:["InputWrapper",p],props:n,classes:sa,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:u,rootSelector:"error",vars:c,varsResolver:uDe}),x=c3(),k=f&&x?.getStyles||w;return y.jsx(Se,{component:"p",ref:r,variant:m,size:d,...k("error",x?.getStyles?{className:i,style:a}:void 0),...v})});u3.classes=sa,u3.displayName="@mantine/core/InputError";const $W={labelElement:"label"},pDe=(e,{size:r})=>({label:{"--input-label-size":Eo(r),"--input-asterisk-color":void 0}}),p3=ot((e,r)=>{const n=Pe("InputLabel",$W,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,labelElement:d,size:u,required:p,htmlFor:f,onMouseDown:m,children:v,__staticSelector:w,variant:x,mod:k,attributes:C,..._}=Pe("InputLabel",$W,n),$=kt({name:["InputWrapper",w],props:n,classes:sa,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:C,rootSelector:"label",vars:c,varsResolver:pDe}),R=c3(),T=R?.getStyles||$;return y.jsxs(Se,{...T("label",R?.getStyles?{className:i,style:a}:void 0),component:d,variant:x,size:u,ref:r,htmlFor:d==="label"?f:void 0,mod:[{required:p},k],onMouseDown:A=>{m?.(A),!A.defaultPrevented&&A.detail>1&&A.preventDefault()},..._,children:[v,p&&y.jsx("span",{...T("required"),"aria-hidden":!0,children:" *"})]})});p3.classes=sa,p3.displayName="@mantine/core/InputLabel";const pS=ot((e,r)=>{const n=Pe("InputPlaceholder",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,__staticSelector:d,variant:u,error:p,mod:f,attributes:m,...v}=n,w=kt({name:["InputPlaceholder",d],props:n,classes:sa,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:m,rootSelector:"placeholder"});return y.jsx(Se,{...w("placeholder"),mod:[{error:!!p},f],component:"span",variant:u,ref:r,...v})});pS.classes=sa,pS.displayName="@mantine/core/InputPlaceholder";function hDe(e,{hasDescription:r,hasError:n}){const o=e.findIndex(s=>s==="input"),i=e.slice(0,o),a=e.slice(o+1),l=r&&i.includes("description")||n&&i.includes("error");return{offsetBottom:r&&a.includes("description")||n&&a.includes("error"),offsetTop:l}}const fDe={labelElement:"label",inputContainer:e=>e,inputWrapperOrder:["label","description","input","error"]},gDe=(e,{size:r})=>({label:{"--input-label-size":Eo(r),"--input-asterisk-color":void 0},error:{"--input-error-size":r===void 0?void 0:`calc(${Eo(r)} - ${$e(2)})`},description:{"--input-description-size":r===void 0?void 0:`calc(${Eo(r)} - ${$e(2)})`}}),hS=ot((e,r)=>{const n=Pe("InputWrapper",fDe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,size:d,variant:u,__staticSelector:p,inputContainer:f,inputWrapperOrder:m,label:v,error:w,description:x,labelProps:k,descriptionProps:C,errorProps:_,labelElement:$,children:R,withAsterisk:T,id:A,required:z,__stylesApiProps:j,mod:I,attributes:N,...L}=n,H=kt({name:["InputWrapper",p],props:j||n,classes:sa,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:N,vars:c,varsResolver:gDe}),P={size:d,variant:u,__staticSelector:p},V=oa(A),B=typeof T=="boolean"?T:z,F=_?.id||`${V}-error`,q=C?.id||`${V}-description`,G=V,U=!!w&&typeof w!="boolean",Y=!!x,K=`${U?F:""} ${Y?q:""}`,O=K.trim().length>0?K.trim():void 0,W=k?.id||`${V}-label`,Z=v&&y.jsx(p3,{labelElement:$,id:W,htmlFor:G,required:B,...P,...k,children:v},"label"),Q=Y&&y.jsx(d3,{...C,...P,size:C?.size||P.size,id:C?.id||q,children:x},"description"),ie=y.jsx(S.Fragment,{children:f(R)},"input"),te=U&&S.createElement(u3,{..._,...P,size:_?.size||P.size,key:"error",id:_?.id||F},w),re=m.map(ue=>{switch(ue){case"label":return Z;case"input":return ie;case"description":return Q;case"error":return te;default:return null}});return y.jsx(cDe,{value:{getStyles:H,describedBy:O,inputId:G,labelId:W,...hDe(m,{hasDescription:Y,hasError:U})},children:y.jsx(Se,{ref:r,variant:u,size:d,mod:[{error:!!w},I],...H("root"),...L,children:re})})});hS.classes=sa,hS.displayName="@mantine/core/InputWrapper";const mDe={variant:"default",leftSectionPointerEvents:"none",rightSectionPointerEvents:"none",withAria:!0,withErrorStyles:!0,size:"sm"},yDe=(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":dr(r.size,"input-height"),"--input-fz":Eo(r.size),"--input-radius":r.radius===void 0?void 0:wn(r.radius),"--input-left-section-width":r.leftSectionWidth!==void 0?$e(r.leftSectionWidth):void 0,"--input-right-section-width":r.rightSectionWidth!==void 0?$e(r.rightSectionWidth):void 0,"--input-padding-y":r.multiline?dr(r.size,"input-padding-y"):void 0,"--input-left-section-pointer-events":r.leftSectionPointerEvents,"--input-right-section-pointer-events":r.rightSectionPointerEvents}}),zi=Jn((e,r)=>{const n=Pe("Input",mDe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,required:c,__staticSelector:d,__stylesApiProps:u,size:p,wrapperProps:f,error:m,disabled:v,leftSection:w,leftSectionProps:x,leftSectionWidth:k,rightSection:C,rightSectionProps:_,rightSectionWidth:$,rightSectionPointerEvents:R,leftSectionPointerEvents:T,variant:A,vars:z,pointer:j,multiline:I,radius:N,id:L,withAria:H,withErrorStyles:P,mod:V,inputSize:B,attributes:F,__clearSection:q,__clearable:G,__defaultRightSection:U,...Y}=n,{styleProps:K,rest:O}=qH(Y),W=c3(),Z={offsetBottom:W?.offsetBottom,offsetTop:W?.offsetTop},Q=kt({name:["Input",d],props:u||n,classes:sa,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:F,stylesCtx:Z,rootSelector:"wrapper",vars:z,varsResolver:yDe}),ie=H?{required:c,disabled:v,"aria-invalid":!!m,"aria-describedby":W?.describedBy,id:W?.inputId||L}:{},te=sDe({__clearable:G,__clearSection:q,rightSection:C,__defaultRightSection:U,size:p});return y.jsx(iDe,{value:{size:p||"sm"},children:y.jsxs(Se,{...Q("wrapper"),...K,...f,mod:[{error:!!m&&P,pointer:j,disabled:v,multiline:I,"data-with-right-section":!!te,"data-with-left-section":!!w},V],variant:A,size:p,children:[w&&y.jsx("div",{...x,"data-position":"left",...Q("section",{className:x?.className,style:x?.style}),children:w}),y.jsx(Se,{component:"input",...O,...ie,ref:r,required:c,mod:{disabled:v,error:!!m&&P},variant:A,__size:B,...Q("input")}),te&&y.jsx("div",{..._,"data-position":"right",...Q("section",{className:_?.className,style:_?.style}),children:te})]})})});zi.classes=sa,zi.Wrapper=hS,zi.Label=p3,zi.Error=u3,zi.Description=d3,zi.Placeholder=pS,zi.ClearButton=CW,zi.displayName="@mantine/core/Input";const vDe={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 RW={root:"m_8bffd616"};const Js=Jn((e,r)=>{const n=Pe("Flex",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,gap:d,rowGap:u,columnGap:p,align:f,justify:m,wrap:v,direction:w,attributes:x,...k}=n,C=kt({name:"Flex",classes:RW,props:n,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:x,vars:c}),_=lo(),$=Bw(),R=WH({styleProps:{gap:d,rowGap:u,columnGap:p,align:f,justify:m,wrap:v,direction:w},theme:_,data:vDe});return y.jsxs(y.Fragment,{children:[R.hasResponsiveStyles&&y.jsx(Nw,{selector:`.${$}`,styles:R.styles,media:R.media}),y.jsx(Se,{ref:r,...C("root",{className:$,style:yf(R.inlineStyles)}),...k})]})});Js.classes=RW,Js.displayName="@mantine/core/Flex";function bDe(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 xDe({target:e,parent:r,ref:n,displayAfterTransitionEnd:o}){const i=S.useRef(-1),[a,l]=S.useState(!1),[s,c]=S.useState(typeof o=="boolean"?o:!1),d=()=>{if(!e||!r||!n.current)return;const m=e.getBoundingClientRect(),v=r.getBoundingClientRect(),w=window.getComputedStyle(e),x=window.getComputedStyle(r),k=xd(w.borderTopWidth)+xd(x.borderTopWidth),C=xd(w.borderLeftWidth)+xd(x.borderLeftWidth),_={top:m.top-v.top-k,left:m.left-v.left-C,width:m.width,height:m.height};n.current.style.transform=`translateY(${_.top}px) translateX(${_.left}px)`,n.current.style.width=`${_.width}px`,n.current.style.height=`${_.height}px`},u=()=>{window.clearTimeout(i.current),n.current&&(n.current.style.transitionDuration="0ms"),d(),i.current=window.setTimeout(()=>{n.current&&(n.current.style.transitionDuration="")},30)},p=S.useRef(null),f=S.useRef(null);return S.useEffect(()=>{if(d(),e)return p.current=new ResizeObserver(u),p.current.observe(e),r&&(f.current=new ResizeObserver(u),f.current.observe(r)),()=>{p.current?.disconnect(),f.current?.disconnect()}},[r,e]),S.useEffect(()=>{if(r){const m=v=>{bDe(v.target,r)&&(u(),c(!1))};return r.addEventListener("transitionend",m),()=>{r.removeEventListener("transitionend",m)}}},[r]),CH(()=>{Cze()!=="test"&&l(!0)},20,{autoInvoke:!0}),$H(m=>{m.forEach(v=>{v.type==="attributes"&&v.attributeName==="dir"&&u()})},{attributes:!0,attributeFilter:["dir"]},()=>document.documentElement),{initialized:a,hidden:s}}var zW={root:"m_96b553a6"};const wDe=(e,{transitionDuration:r})=>({root:{"--transition-duration":typeof r=="number"?`${r}ms`:r}}),h3=ot((e,r)=>{const n=Pe("FloatingIndicator",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,target:d,parent:u,transitionDuration:p,mod:f,displayAfterTransitionEnd:m,attributes:v,...w}=n,x=kt({name:"FloatingIndicator",classes:zW,props:n,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:v,vars:c,varsResolver:wDe}),k=S.useRef(null),{initialized:C,hidden:_}=xDe({target:d,parent:u,ref:k,displayAfterTransitionEnd:m}),$=$r(r,k);return!d||!u?null:y.jsx(Se,{ref:$,mod:[{initialized:C,hidden:_},f],...x("root"),...w})});h3.displayName="@mantine/core/FloatingIndicator",h3.classes=zW;function TW({open:e,close:r,openDelay:n,closeDelay:o}){const i=S.useRef(-1),a=S.useRef(-1),l=()=>{window.clearTimeout(i.current),window.clearTimeout(a.current)},s=()=>{l(),n===0||n===void 0?e():i.current=window.setTimeout(e,n)},c=()=>{l(),o===0||o===void 0?r():a.current=window.setTimeout(r,o)};return S.useEffect(()=>l,[]),{openDropdown:s,closeDropdown:c}}function fS({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:$e(r),height:$e(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"})})}fS.displayName="@mantine/core/AccordionChevron";var jW={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 kDe=(e,{radius:r,color:n,variant:o,autoContrast:i})=>{const a=e.variantColorResolver({color:n||e.primaryColor,theme:e,variant:o||"light",autoContrast:i});return{root:{"--alert-radius":r===void 0?void 0:wn(r),"--alert-bg":n||o?a.background:void 0,"--alert-color":a.color,"--alert-bd":n||o?a.border:void 0}}},f3=ot((e,r)=>{const n=Pe("Alert",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,radius:d,color:u,title:p,children:f,id:m,icon:v,withCloseButton:w,onClose:x,closeButtonLabel:k,variant:C,autoContrast:_,role:$,attributes:R,...T}=n,A=kt({name:"Alert",classes:jW,props:n,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:R,vars:c,varsResolver:kDe}),z=oa(m),j=p&&`${z}-title`||void 0,I=`${z}-body`;return y.jsx(Se,{id:z,...A("root",{variant:C}),variant:C,ref:r,role:$||"alert",...T,"aria-describedby":f?I:void 0,"aria-labelledby":p?j:void 0,children:y.jsxs("div",{...A("wrapper"),children:[v&&y.jsx("div",{...A("icon"),children:v}),y.jsxs("div",{...A("body"),children:[p&&y.jsx("div",{...A("title"),"data-with-close-button":w||void 0,children:y.jsx("span",{id:j,...A("label"),children:p})}),f&&y.jsx("div",{id:I,...A("message"),"data-variant":C,children:f})]}),w&&y.jsx(lp,{...A("closeButton"),onClick:x,variant:"transparent",size:16,iconSize:16,"aria-label":k,unstyled:s})]})})});f3.classes=jW,f3.displayName="@mantine/core/Alert";var AW={root:"m_b6d8b162"};function _De(e){if(e==="start")return"start";if(e==="end"||e)return"end"}const SDe={inherit:!1},EDe=(e,{variant:r,lineClamp:n,gradient:o,size:i,color:a})=>({root:{"--text-fz":Eo(i),"--text-lh":VRe(i),"--text-gradient":r==="gradient"?k9(o,e):void 0,"--text-line-clamp":typeof n=="number"?n.toString():void 0,"--text-color":a?Ci(a,e):void 0}}),it=Jn((e,r)=>{const n=Pe("Text",SDe,e),{lineClamp:o,truncate:i,inline:a,inherit:l,gradient:s,span:c,__staticSelector:d,vars:u,className:p,style:f,classNames:m,styles:v,unstyled:w,variant:x,mod:k,size:C,attributes:_,...$}=n,R=kt({name:["Text",d],props:n,classes:AW,className:p,style:f,classNames:m,styles:v,unstyled:w,attributes:_,vars:u,varsResolver:EDe});return y.jsx(Se,{...R("root",{focusable:!0}),ref:r,component:c?"span":"p",variant:x,mod:[{"data-truncate":_De(i),"data-line-clamp":typeof o=="number","data-inline":a,"data-inherit":l},k],size:C,...$})});it.classes=AW,it.displayName="@mantine/core/Text";var DW={root:"m_849cf0da"};const CDe={underline:"hover"},gS=Jn((e,r)=>{const{underline:n,className:o,unstyled:i,mod:a,...l}=Pe("Anchor",CDe,e);return y.jsx(it,{component:"a",ref:r,className:el({[DW.root]:!i},o),...l,mod:[{underline:n},a],__staticSelector:"Anchor",unstyled:i})});gS.classes=DW,gS.displayName="@mantine/core/Anchor";var ca={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",optionsDropdownCheckPlaceholder:"m_a530ee0a"};const $De={error:null},RDe=(e,{size:r,color:n})=>({chevron:{"--combobox-chevron-size":dr(r,"combobox-chevron-size"),"--combobox-chevron-color":n?Ci(n,e):void 0}}),mS=ot((e,r)=>{const n=Pe("ComboboxChevron",$De,e),{size:o,error:i,style:a,className:l,classNames:s,styles:c,unstyled:d,vars:u,mod:p,...f}=n,m=kt({name:"ComboboxChevron",classes:ca,props:n,style:a,className:l,classNames:s,styles:c,unstyled:d,vars:u,varsResolver:RDe,rootSelector:"chevron"});return y.jsx(Se,{component:"svg",...f,...m("chevron"),size:o,viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg",mod:["combobox-chevron",{error:i},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"})})});mS.classes=ca,mS.displayName="@mantine/core/ComboboxChevron";const[zDe,da]=na("Combobox component was not found in tree"),PW=S.forwardRef(({size:e,onMouseDown:r,onClick:n,onClear:o,...i},a)=>y.jsx(zi.ClearButton,{ref:a,tabIndex:-1,"aria-hidden":!0,...i,onMouseDown:l=>{l.preventDefault(),r?.(l)},onClick:l=>{o(),n?.(l)}}));PW.displayName="@mantine/core/ComboboxClearButton";const g3=ot((e,r)=>{const{classNames:n,styles:o,className:i,style:a,hidden:l,...s}=Pe("ComboboxDropdown",null,e),c=da();return y.jsx(br.Dropdown,{...s,ref:r,role:"presentation","data-hidden":l||void 0,...c.getStyles("dropdown",{className:i,style:a,classNames:n,styles:o})})});g3.classes=ca,g3.displayName="@mantine/core/ComboboxDropdown";const TDe={refProp:"ref"},MW=ot((e,r)=>{const{children:n,refProp:o}=Pe("ComboboxDropdownTarget",TDe,e);if(da(),!Sw(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(br.Target,{ref:r,refProp:o,children:n})});MW.displayName="@mantine/core/ComboboxDropdownTarget";const fy=ot((e,r)=>{const{classNames:n,className:o,style:i,styles:a,vars:l,...s}=Pe("ComboboxEmpty",null,e),c=da();return y.jsx(Se,{ref:r,...c.getStyles("empty",{className:o,classNames:n,styles:a,style:i}),...s})});fy.classes=ca,fy.displayName="@mantine/core/ComboboxEmpty";function yS({onKeyDown:e,withKeyboardNavigation:r,withAriaAttributes:n,withExpandedAttribute:o,targetType:i,autoComplete:a}){const l=da(),[s,c]=S.useState(null),d=u=>{if(e?.(u),!l.readOnly&&r){if(u.nativeEvent.isComposing)return;if(u.nativeEvent.code==="ArrowDown"&&(u.preventDefault(),l.store.dropdownOpened?c(l.store.selectNextOption()):(l.store.openDropdown("keyboard"),c(l.store.selectActiveOption()),l.store.updateSelectedOptionIndex("selected",{scrollIntoView:!0}))),u.nativeEvent.code==="ArrowUp"&&(u.preventDefault(),l.store.dropdownOpened?c(l.store.selectPreviousOption()):(l.store.openDropdown("keyboard"),c(l.store.selectActiveOption()),l.store.updateSelectedOptionIndex("selected",{scrollIntoView:!0}))),u.nativeEvent.code==="Enter"||u.nativeEvent.code==="NumpadEnter"){if(u.nativeEvent.keyCode===229)return;const p=l.store.getSelectedOptionIndex();l.store.dropdownOpened&&p!==-1?(u.preventDefault(),l.store.clickSelectedOption()):i==="button"&&(u.preventDefault(),l.store.openDropdown("keyboard"))}u.key==="Escape"&&l.store.closeDropdown("keyboard"),u.nativeEvent.code==="Space"&&i==="button"&&(u.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:a,"data-expanded":l.store.dropdownOpened||void 0,"data-mantine-stop-propagation":l.store.dropdownOpened||void 0}:{},onKeyDown:d}}const jDe={refProp:"ref",targetType:"input",withKeyboardNavigation:!0,withAriaAttributes:!0,withExpandedAttribute:!1,autoComplete:"off"},NW=ot((e,r)=>{const{children:n,refProp:o,withKeyboardNavigation:i,withAriaAttributes:a,withExpandedAttribute:l,targetType:s,autoComplete:c,...d}=Pe("ComboboxEventsTarget",jDe,e),u=md(n);if(!u)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 p=da(),f=yS({targetType:s,withAriaAttributes:a,withKeyboardNavigation:i,withExpandedAttribute:l,onKeyDown:u.props.onKeyDown,autoComplete:c});return S.cloneElement(u,{...f,...d,[o]:$r(r,p.store.targetRef,Rw(u))})});NW.displayName="@mantine/core/ComboboxEventsTarget";const vS=ot((e,r)=>{const{classNames:n,className:o,style:i,styles:a,vars:l,...s}=Pe("ComboboxFooter",null,e),c=da();return y.jsx(Se,{ref:r,...c.getStyles("footer",{className:o,classNames:n,style:i,styles:a}),...s,onMouseDown:d=>{d.preventDefault()}})});vS.classes=ca,vS.displayName="@mantine/core/ComboboxFooter";const bS=ot((e,r)=>{const{classNames:n,className:o,style:i,styles:a,vars:l,children:s,label:c,id:d,...u}=Pe("ComboboxGroup",null,e),p=da(),f=oa(d);return y.jsxs(Se,{ref:r,role:"group","aria-labelledby":c?f:void 0,...p.getStyles("group",{className:o,classNames:n,style:i,styles:a}),...u,children:[c&&y.jsx("div",{id:f,...p.getStyles("groupLabel",{classNames:n,styles:a}),children:c}),s]})});bS.classes=ca,bS.displayName="@mantine/core/ComboboxGroup";const xS=ot((e,r)=>{const{classNames:n,className:o,style:i,styles:a,vars:l,...s}=Pe("ComboboxHeader",null,e),c=da();return y.jsx(Se,{ref:r,...c.getStyles("header",{className:o,classNames:n,style:i,styles:a}),...s,onMouseDown:d=>{d.preventDefault()}})});xS.classes=ca,xS.displayName="@mantine/core/ComboboxHeader";function BW({value:e,valuesDivider:r=",",...n}){return y.jsx("input",{type:"hidden",value:Array.isArray(e)?e.join(r):e||"",...n})}BW.displayName="@mantine/core/ComboboxHiddenInput";const gy=ot((e,r)=>{const n=Pe("ComboboxOption",null,e),{classNames:o,className:i,style:a,styles:l,vars:s,onClick:c,id:d,active:u,onMouseDown:p,onMouseOver:f,disabled:m,selected:v,mod:w,...x}=n,k=da(),C=S.useId(),_=d||C;return y.jsx(Se,{...k.getStyles("option",{className:i,classNames:o,styles:l,style:a}),...x,ref:r,id:_,mod:["combobox-option",{"combobox-active":u,"combobox-disabled":m,"combobox-selected":v},w],role:"option",onClick:$=>{m?$.preventDefault():(k.onOptionSubmit?.(n.value,n),c?.($))},onMouseDown:$=>{$.preventDefault(),p?.($)},onMouseOver:$=>{k.resetSelectionOnOptionHover&&k.store.resetSelectedOption(),f?.($)}})});gy.classes=ca,gy.displayName="@mantine/core/ComboboxOption";const m3=ot((e,r)=>{const n=Pe("ComboboxOptions",null,e),{classNames:o,className:i,style:a,styles:l,id:s,onMouseDown:c,labelledBy:d,...u}=n,p=da(),f=oa(s);return S.useEffect(()=>{p.store.setListId(f)},[f]),y.jsx(Se,{ref:r,...p.getStyles("options",{className:i,style:a,classNames:o,styles:l}),...u,id:f,role:"listbox","aria-labelledby":d,onMouseDown:m=>{m.preventDefault(),c?.(m)}})});m3.classes=ca,m3.displayName="@mantine/core/ComboboxOptions";const ADe={withAriaAttributes:!0,withKeyboardNavigation:!0},wS=ot((e,r)=>{const n=Pe("ComboboxSearch",ADe,e),{classNames:o,styles:i,unstyled:a,vars:l,withAriaAttributes:s,onKeyDown:c,withKeyboardNavigation:d,size:u,...p}=n,f=da(),m=f.getStyles("search"),v=yS({targetType:"input",withAriaAttributes:s,withKeyboardNavigation:d,withExpandedAttribute:!1,onKeyDown:c,autoComplete:"off"});return y.jsx(zi,{ref:$r(r,f.store.searchRef),classNames:[{input:m.className},o],styles:[{input:m.style},i],size:u||f.size,...v,...p,__staticSelector:"Combobox"})});wS.classes=ca,wS.displayName="@mantine/core/ComboboxSearch";const DDe={refProp:"ref",targetType:"input",withKeyboardNavigation:!0,withAriaAttributes:!0,withExpandedAttribute:!1,autoComplete:"off"},kS=ot((e,r)=>{const{children:n,refProp:o,withKeyboardNavigation:i,withAriaAttributes:a,withExpandedAttribute:l,targetType:s,autoComplete:c,...d}=Pe("ComboboxTarget",DDe,e),u=md(n);if(!u)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 p=da(),f=yS({targetType:s,withAriaAttributes:a,withKeyboardNavigation:i,withExpandedAttribute:l,onKeyDown:u.props.onKeyDown,autoComplete:c}),m=S.cloneElement(u,{...f,...d});return y.jsx(br.Target,{ref:$r(r,p.store.targetRef),children:m})});kS.displayName="@mantine/core/ComboboxTarget";function PDe(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 MDe(e,r,n){for(let o=e+1;o{s||(c(!0),i?.(B))},[c,i,s]),k=S.useCallback((B="unknown")=>{s&&(c(!1),o?.(B))},[c,o,s]),C=S.useCallback((B="unknown")=>{s?k(B):x(B)},[k,x,s]),_=S.useCallback(()=>{const B=gd(f.current),F=zw(`#${d.current} [data-combobox-selected]`,B);F?.removeAttribute("data-combobox-selected"),F?.removeAttribute("aria-selected")},[]),$=S.useCallback(B=>{const F=gd(f.current),q=zw(`#${d.current}`,F),G=q?fd("[data-combobox-option]",q):null;if(!G)return null;const U=B>=G.length?0:B<0?G.length-1:B;return u.current=U,G?.[U]&&!G[U].hasAttribute("data-combobox-disabled")?(_(),G[U].setAttribute("data-combobox-selected","true"),G[U].setAttribute("aria-selected","true"),G[U].scrollIntoView({block:"nearest",behavior:l}),G[U].id):null},[l,_]),R=S.useCallback(()=>{const B=gd(f.current),F=zw(`#${d.current} [data-combobox-active]`,B);if(F){const q=fd(`#${d.current} [data-combobox-option]`,B).findIndex(G=>G===F);return $(q)}return $(0)},[$]),T=S.useCallback(()=>{const B=gd(f.current),F=fd(`#${d.current} [data-combobox-option]`,B);return $(MDe(u.current,F,a))},[$,a]),A=S.useCallback(()=>{const B=gd(f.current),F=fd(`#${d.current} [data-combobox-option]`,B);return $(PDe(u.current,F,a))},[$,a]),z=S.useCallback(()=>{const B=gd(f.current),F=fd(`#${d.current} [data-combobox-option]`,B);return $(NDe(F))},[$]),j=S.useCallback((B="selected",F)=>{w.current=window.setTimeout(()=>{const q=gd(f.current),G=fd(`#${d.current} [data-combobox-option]`,q),U=G.findIndex(Y=>Y.hasAttribute(`data-combobox-${B}`));u.current=U,F?.scrollIntoView&&G[U]?.scrollIntoView({block:"nearest",behavior:l})},0)},[]),I=S.useCallback(()=>{u.current=-1,_()},[_]),N=S.useCallback(()=>{const B=gd(f.current);fd(`#${d.current} [data-combobox-option]`,B)?.[u.current]?.click()},[]),L=S.useCallback(B=>{d.current=B},[]),H=S.useCallback(()=>{m.current=window.setTimeout(()=>p.current?.focus(),0)},[]),P=S.useCallback(()=>{v.current=window.setTimeout(()=>f.current?.focus(),0)},[]),V=S.useCallback(()=>u.current,[]);return S.useEffect(()=>()=>{window.clearTimeout(m.current),window.clearTimeout(v.current),window.clearTimeout(w.current)},[]),{dropdownOpened:s,openDropdown:x,closeDropdown:k,toggleDropdown:C,selectedOptionIndex:u.current,getSelectedOptionIndex:V,selectOption:$,selectFirstOption:z,selectActiveOption:R,selectNextOption:T,selectPreviousOption:A,resetSelectedOption:I,updateSelectedOptionIndex:j,listId:d.current,setListId:L,clickSelectedOption:N,searchRef:p,focusSearchInput:H,targetRef:f,focusTarget:P}}const BDe={keepMounted:!0,withinPortal:!0,resetSelectionOnOptionHover:!1,width:"target",transitionProps:{transition:"fade",duration:0},size:"sm"},IDe=(e,{size:r,dropdownPadding:n})=>({options:{"--combobox-option-fz":Eo(r),"--combobox-option-padding":dr(r,"combobox-option-padding")},dropdown:{"--combobox-padding":n===void 0?void 0:$e(n),"--combobox-option-fz":Eo(r),"--combobox-option-padding":dr(r,"combobox-option-padding")}});function eo(e){const r=Pe("Combobox",BDe,e),{classNames:n,styles:o,unstyled:i,children:a,store:l,vars:s,onOptionSubmit:c,onClose:d,size:u,dropdownPadding:p,resetSelectionOnOptionHover:f,__staticSelector:m,readOnly:v,attributes:w,...x}=r,k=IW(),C=l||k,_=kt({name:m||"Combobox",classes:ca,props:r,classNames:n,styles:o,unstyled:i,attributes:w,vars:s,varsResolver:IDe}),$=()=>{d?.(),C.closeDropdown()};return y.jsx(zDe,{value:{getStyles:_,store:C,onOptionSubmit:c,size:u,resetSelectionOnOptionHover:f,readOnly:v},children:y.jsx(br,{opened:C.dropdownOpened,preventPositionChangeWhenVisible:!0,...x,onChange:R=>!R&&$(),withRoles:!1,unstyled:i,children:a})})}const ODe=e=>e;eo.extend=ODe,eo.classes=ca,eo.displayName="@mantine/core/Combobox",eo.Target=kS,eo.Dropdown=g3,eo.Options=m3,eo.Option=gy,eo.Search=wS,eo.Empty=fy,eo.Chevron=mS,eo.Footer=vS,eo.Header=xS,eo.EventsTarget=NW,eo.DropdownTarget=MW,eo.Group=bS,eo.ClearButton=PW,eo.HiddenInput=BW;function OW({size:e,style:r,...n}){const o=e!==void 0?{width:$e(e),height:$e(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 LW={root:"m_347db0ec","root--dot":"m_fbd81e3d",label:"m_5add502a",section:"m_91fdda9b"};const LDe=(e,{radius:r,color:n,gradient:o,variant:i,size:a,autoContrast:l,circle:s})=>{const c=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:i||"filled",autoContrast:l});return{root:{"--badge-height":dr(a,"badge-height"),"--badge-padding-x":dr(a,"badge-padding-x"),"--badge-fz":dr(a,"badge-fz"),"--badge-radius":s||r===void 0?void 0:wn(r),"--badge-bg":n||i?c.background:void 0,"--badge-color":n||i?c.color:void 0,"--badge-bd":n||i?c.border:void 0,"--badge-dot-color":i==="dot"?Ci(n,e):void 0}}},ec=Jn((e,r)=>{const n=Pe("Badge",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,radius:d,color:u,gradient:p,leftSection:f,rightSection:m,children:v,variant:w,fullWidth:x,autoContrast:k,circle:C,mod:_,attributes:$,...R}=n,T=kt({name:"Badge",props:n,classes:LW,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:$,vars:c,varsResolver:LDe});return y.jsxs(Se,{variant:w,mod:[{block:x,circle:C,"with-right-section":!!m,"with-left-section":!!f},_],...T("root",{variant:w}),ref:r,...R,children:[f&&y.jsx("span",{...T("section"),"data-position":"left",children:f}),y.jsx("span",{...T("label"),children:v}),m&&y.jsx("span",{...T("section"),"data-position":"right",children:m})]})});ec.classes=LW,ec.displayName="@mantine/core/Badge";var FW={root:"m_8b3717df",breadcrumb:"m_f678d540",separator:"m_3b8f2208"};const FDe={separator:"/"},VDe=(e,{separatorMargin:r})=>({root:{"--bc-separator-margin":Gs(r)}}),y3=ot((e,r)=>{const n=Pe("Breadcrumbs",FDe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,children:d,separator:u,separatorMargin:p,attributes:f,...m}=n,v=kt({name:"Breadcrumbs",classes:FW,props:n,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:f,vars:c,varsResolver:VDe}),w=S.Children.toArray(d).reduce((x,k,C,_)=>{const $=Sw(k)?S.cloneElement(k,{...v("breadcrumb",{className:k.props?.className}),key:C}):S.createElement("div",{...v("breadcrumb"),key:C},k);return x.push($),C!==_.length-1&&x.push(S.createElement(Se,{...v("separator"),key:`separator-${C}`},u)),x},[]);return y.jsx(Se,{ref:r,...v("root"),...m,children:w})});y3.classes=FW,y3.displayName="@mantine/core/Breadcrumbs";var Nf={root:"m_77c9d27d",inner:"m_80f1301b",label:"m_811560b9",section:"m_a74036a",loader:"m_a25b86ee",group:"m_80d6d844",groupSection:"m_70be2a01"};const VW={orientation:"horizontal"},qDe=(e,{borderWidth:r})=>({group:{"--button-border-width":$e(r)}}),_S=ot((e,r)=>{const n=Pe("ButtonGroup",VW,e),{className:o,style:i,classNames:a,styles:l,unstyled:s,orientation:c,vars:d,borderWidth:u,variant:p,mod:f,attributes:m,...v}=Pe("ButtonGroup",VW,e),w=kt({name:"ButtonGroup",props:n,classes:Nf,className:o,style:i,classNames:a,styles:l,unstyled:s,attributes:m,vars:d,varsResolver:qDe,rootSelector:"group"});return y.jsx(Se,{...w("group"),ref:r,variant:p,mod:[{"data-orientation":c},f],role:"group",...v})});_S.classes=Nf,_S.displayName="@mantine/core/ButtonGroup";const HDe=(e,{radius:r,color:n,gradient:o,variant:i,autoContrast:a,size:l})=>{const s=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:i||"filled",autoContrast:a});return{groupSection:{"--section-height":dr(l,"section-height"),"--section-padding-x":dr(l,"section-padding-x"),"--section-fz":l?.includes("compact")?Eo(l.replace("compact-","")):Eo(l),"--section-radius":r===void 0?void 0:wn(r),"--section-bg":n||i?s.background:void 0,"--section-color":s.color,"--section-bd":n||i?s.border:void 0}}},SS=ot((e,r)=>{const n=Pe("ButtonGroupSection",null,e),{className:o,style:i,classNames:a,styles:l,unstyled:s,vars:c,variant:d,gradient:u,radius:p,autoContrast:f,attributes:m,...v}=n,w=kt({name:"ButtonGroupSection",props:n,classes:Nf,className:o,style:i,classNames:a,styles:l,unstyled:s,attributes:m,vars:c,varsResolver:HDe,rootSelector:"groupSection"});return y.jsx(Se,{...w("groupSection"),ref:r,variant:d,...v})});SS.classes=Nf,SS.displayName="@mantine/core/ButtonGroupSection";const UDe={in:{opacity:1,transform:`translate(-50%, calc(-50% + ${$e(1)}))`},out:{opacity:0,transform:"translate(-50%, -200%)"},common:{transformOrigin:"center"},transitionProperty:"transform, opacity"},WDe=(e,{radius:r,color:n,gradient:o,variant:i,size:a,justify:l,autoContrast:s})=>{const c=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:i||"filled",autoContrast:s});return{root:{"--button-justify":l,"--button-height":dr(a,"button-height"),"--button-padding-x":dr(a,"button-padding-x"),"--button-fz":a?.includes("compact")?Eo(a.replace("compact-","")):Eo(a),"--button-radius":r===void 0?void 0:wn(r),"--button-bg":n||i?c.background:void 0,"--button-hover":n||i?c.hover:void 0,"--button-color":c.color,"--button-bd":n||i?c.border:void 0,"--button-hover-color":n||i?c.hoverColor:void 0}}},Vn=Jn((e,r)=>{const n=Pe("Button",null,e),{style:o,vars:i,className:a,color:l,disabled:s,children:c,leftSection:d,rightSection:u,fullWidth:p,variant:f,radius:m,loading:v,loaderProps:w,gradient:x,classNames:k,styles:C,unstyled:_,"data-disabled":$,autoContrast:R,mod:T,attributes:A,...z}=n,j=kt({name:"Button",props:n,classes:Nf,className:a,style:o,classNames:k,styles:C,unstyled:_,attributes:A,vars:i,varsResolver:WDe}),I=!!d,N=!!u;return y.jsxs(pr,{ref:r,...j("root",{active:!s&&!v&&!$}),unstyled:_,variant:f,disabled:s||v,mod:[{disabled:s||$,loading:v,block:p,"with-left-section":I,"with-right-section":N},T],...z,children:[typeof v=="boolean"&&y.jsx(wd,{mounted:v,transition:UDe,duration:150,children:L=>y.jsx(Se,{component:"span",...j("loader",{style:L}),"aria-hidden":!0,children:y.jsx(Pf,{color:"var(--button-color)",size:"calc(var(--button-height) / 1.8)",...w})})}),y.jsxs("span",{...j("inner"),children:[d&&y.jsx(Se,{component:"span",...j("section"),mod:{position:"left"},children:d}),y.jsx(Se,{component:"span",mod:{loading:v},...j("label"),children:c}),u&&y.jsx(Se,{component:"span",...j("section"),mod:{position:"right"},children:u})]})]})});Vn.classes=Nf,Vn.displayName="@mantine/core/Button",Vn.Group=_S,Vn.GroupSection=SS;const[GDe,YDe]=na("Card component was not found in tree");var ES={root:"m_e615b15f",section:"m_599a2148"};const v3=Jn((e,r)=>{const n=Pe("CardSection",null,e),{classNames:o,className:i,style:a,styles:l,vars:s,withBorder:c,inheritPadding:d,mod:u,...p}=n,f=YDe();return y.jsx(Se,{ref:r,mod:[{"with-border":c,"inherit-padding":d},u],...f.getStyles("section",{className:i,style:a,styles:l,classNames:o}),...p})});v3.classes=ES,v3.displayName="@mantine/core/CardSection";const XDe=(e,{padding:r})=>({root:{"--card-padding":Gs(r)}}),b3=Jn((e,r)=>{const n=Pe("Card",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,children:d,padding:u,attributes:p,...f}=n,m=kt({name:"Card",props:n,classes:ES,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:p,vars:c,varsResolver:XDe}),v=S.Children.toArray(d),w=v.map((x,k)=>typeof x=="object"&&x&&"type"in x&&x.type===v3?S.cloneElement(x,{"data-first-section":k===0||void 0,"data-last-section":k===v.length-1||void 0}):x);return y.jsx(GDe,{value:{getStyles:m},children:y.jsx(Af,{ref:r,unstyled:s,...m("root"),...f,children:w})})});b3.classes=ES,b3.displayName="@mantine/core/Card",b3.Section=v3;var qW={root:"m_de3d2490",colorOverlay:"m_862f3d1b",shadowOverlay:"m_98ae7f22",alphaOverlay:"m_95709ac0",childrenOverlay:"m_93e74e3"};const HW={withShadow:!0},KDe=(e,{radius:r,size:n})=>({root:{"--cs-radius":r===void 0?void 0:wn(r),"--cs-size":$e(n)}}),my=Jn((e,r)=>{const n=Pe("ColorSwatch",HW,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,color:d,size:u,radius:p,withShadow:f,children:m,variant:v,attributes:w,...x}=Pe("ColorSwatch",HW,n),k=kt({name:"ColorSwatch",props:n,classes:qW,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:w,vars:c,varsResolver:KDe});return y.jsxs(Se,{ref:r,variant:v,size:u,...k("root",{focusable:!0}),...x,children:[y.jsx("span",{...k("alphaOverlay")}),f&&y.jsx("span",{...k("shadowOverlay")}),y.jsx("span",{...k("colorOverlay",{style:{backgroundColor:d}})}),y.jsx("span",{...k("childrenOverlay"),children:m})]})});my.classes=qW,my.displayName="@mantine/core/ColorSwatch";const ZDe={timeout:1e3};function UW(e){const{children:r,timeout:n,value:o,...i}=Pe("CopyButton",ZDe,e),a=GRe({timeout:n});return y.jsx(y.Fragment,{children:r({copy:()=>a.copy(o),copied:a.copied,...i})})}UW.displayName="@mantine/core/CopyButton";var WW={root:"m_3eebeb36",label:"m_9e365f20"};const QDe={orientation:"horizontal"},JDe=(e,{color:r,variant:n,size:o})=>({root:{"--divider-color":r?Ci(r,e):void 0,"--divider-border-style":n,"--divider-size":dr(o,"divider-size")}}),sp=ot((e,r)=>{const n=Pe("Divider",QDe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,color:d,orientation:u,label:p,labelPosition:f,mod:m,attributes:v,...w}=n,x=kt({name:"Divider",classes:WW,props:n,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:v,vars:c,varsResolver:JDe});return y.jsx(Se,{ref:r,mod:[{orientation:u,"with-label":!!p},m],...x("root"),...w,role:"separator",children:p&&y.jsx(Se,{component:"span",mod:{position:f},...x("label"),children:p})})});sp.classes=WW,sp.displayName="@mantine/core/Divider";const[GW,YW]=na("Grid component was not found in tree"),CS=(e,r)=>e==="content"?"auto":e==="auto"?"0rem":e?`${100/(r/e)}%`:void 0,XW=(e,r,n)=>n||e==="auto"?"100%":e==="content"?"unset":CS(e,r),KW=(e,r)=>{if(e)return e==="auto"||r?"1":"auto"},ZW=(e,r)=>e===0?"0":e?`${100/(r/e)}%`:void 0;function ePe({span:e,order:r,offset:n,selector:o}){const i=lo(),a=YW(),l=a.breakpoints||i.breakpoints,s=ay(e)===void 0?12:ay(e),c=yf({"--col-order":ay(r)?.toString(),"--col-flex-grow":KW(s,a.grow),"--col-flex-basis":CS(s,a.columns),"--col-width":s==="content"?"auto":void 0,"--col-max-width":XW(s,a.columns,a.grow),"--col-offset":ZW(ay(n),a.columns)}),d=So(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"]=KW(e[f],a.grow),p[f]["--col-flex-basis"]=CS(e[f],a.columns),p[f]["--col-width"]=e[f]==="content"?"auto":void 0,p[f]["--col-max-width"]=XW(e[f],a.columns,a.grow)),typeof n=="object"&&n[f]!==void 0&&(p[f]["--col-offset"]=ZW(n[f],a.columns)),p),{}),u=pH(So(d),l).filter(p=>So(d[p.value]).length>0).map(p=>({query:a.type==="container"?`mantine-grid (min-width: ${l[p.value]})`:`(min-width: ${l[p.value]})`,styles:d[p.value]}));return y.jsx(Nw,{styles:c,media:a.type==="container"?void 0:u,container:a.type==="container"?u:void 0,selector:o})}var $S={container:"m_8478a6da",root:"m_410352e9",inner:"m_dee7bd2f",col:"m_96bdd299"};const tPe={span:12},cp=ot((e,r)=>{const n=Pe("GridCol",tPe,e),{classNames:o,className:i,style:a,styles:l,vars:s,span:c,order:d,offset:u,...p}=n,f=YW(),m=Bw();return y.jsxs(y.Fragment,{children:[y.jsx(ePe,{selector:`.${m}`,span:c,order:d,offset:u}),y.jsx(Se,{ref:r,...f.getStyles("col",{className:el(i,m),style:a,classNames:o,styles:l}),...p})]})});cp.classes=$S,cp.displayName="@mantine/core/GridCol";function QW({gutter:e,selector:r,breakpoints:n,type:o}){const i=lo(),a=n||i.breakpoints,l=yf({"--grid-gutter":Gs(ay(e))}),s=So(a).reduce((d,u)=>(d[u]||(d[u]={}),typeof e=="object"&&e[u]!==void 0&&(d[u]["--grid-gutter"]=Gs(e[u])),d),{}),c=pH(So(s),a).filter(d=>So(s[d.value]).length>0).map(d=>({query:o==="container"?`mantine-grid (min-width: ${a[d.value]})`:`(min-width: ${a[d.value]})`,styles:s[d.value]}));return y.jsx(Nw,{styles:l,media:o==="container"?void 0:c,container:o==="container"?c:void 0,selector:r})}const rPe={gutter:"md",grow:!1,columns:12},nPe=(e,{justify:r,align:n,overflow:o})=>({root:{"--grid-justify":r,"--grid-align":n,"--grid-overflow":o}}),yy=ot((e,r)=>{const n=Pe("Grid",rPe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,grow:d,gutter:u,columns:p,align:f,justify:m,children:v,breakpoints:w,type:x,attributes:k,...C}=n,_=kt({name:"Grid",classes:$S,props:n,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:k,vars:c,varsResolver:nPe}),$=Bw();return x==="container"&&w?y.jsxs(GW,{value:{getStyles:_,grow:d,columns:p,breakpoints:w,type:x},children:[y.jsx(QW,{selector:`.${$}`,...n}),y.jsx("div",{..._("container"),children:y.jsx(Se,{ref:r,..._("root",{className:$}),...C,children:y.jsx("div",{..._("inner"),children:v})})})]}):y.jsxs(GW,{value:{getStyles:_,grow:d,columns:p,breakpoints:w,type:x},children:[y.jsx(QW,{selector:`.${$}`,...n}),y.jsx(Se,{ref:r,..._("root",{className:$}),...C,children:y.jsx("div",{..._("inner"),children:v})})]})});yy.classes=$S,yy.displayName="@mantine/core/Grid",yy.Col=cp;function JW({color:e,theme:r,defaultShade:n}){const o=vd({color:e,theme:r});return o.isThemeColor?o.shade===void 0?`var(--mantine-color-${o.color}-${n})`:`var(${o.variable})`:e}var eG={root:"m_bcb3f3c2"};const oPe={color:"yellow"},iPe=(e,{color:r})=>({root:{"--mark-bg-dark":JW({color:r,theme:e,defaultShade:5}),"--mark-bg-light":JW({color:r,theme:e,defaultShade:2})}}),RS=ot((e,r)=>{const n=Pe("Mark",oPe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,color:d,variant:u,attributes:p,...f}=n,m=kt({name:"Mark",props:n,className:i,style:a,classes:eG,classNames:o,styles:l,unstyled:s,attributes:p,vars:c,varsResolver:iPe});return y.jsx(Se,{component:"mark",ref:r,variant:u,...m("root"),...f})});RS.classes=eG,RS.displayName="@mantine/core/Mark";function tG(e){return e.replace(/[-[\]{}()*+?.,\\^$|#]/g,"\\$&")}function aPe(e,r){if(r==null)return[{chunk:e,highlighted:!1}];const n=Array.isArray(r)?r.map(tG):tG(r);if(!(Array.isArray(n)?n.filter(a=>a.trim().length>0).length>0:n.trim()!==""))return[{chunk:e,highlighted:!1}];const o=typeof n=="string"?n.trim():n.filter(a=>a.trim().length!==0).map(a=>a.trim()).sort((a,l)=>l.length-a.length).join("|"),i=new RegExp(`(${o})`,"gi");return e.split(i).map(a=>({chunk:a,highlighted:i.test(a)})).filter(({chunk:a})=>a)}const tc=Jn((e,r)=>{const{unstyled:n,children:o,highlight:i,highlightStyles:a,color:l,...s}=Pe("Highlight",null,e),c=aPe(o,i);return y.jsx(it,{unstyled:n,ref:r,...s,__staticSelector:"Highlight",children:c.map(({chunk:d,highlighted:u},p)=>u?y.jsx(RS,{unstyled:n,color:l,style:a,"data-highlight":d,children:d},p):y.jsx("span",{children:d},p))})});tc.classes=it.classes,tc.displayName="@mantine/core/Highlight";const[lPe,rG]=na("HoverCard component was not found in the tree"),nG=S.createContext(!1),sPe=nG.Provider,zS=()=>S.useContext(nG);function TS(e){const{children:r,onMouseEnter:n,onMouseLeave:o,...i}=Pe("HoverCardDropdown",null,e),a=rG();if(zS()&&a.getFloatingProps&&a.floating){const c=a.getFloatingProps();return y.jsx(br.Dropdown,{ref:a.floating,...c,onMouseEnter:kn(n,c.onMouseEnter),onMouseLeave:kn(o,c.onMouseLeave),...i,children:r})}const l=kn(n,a.openDropdown),s=kn(o,a.closeDropdown);return y.jsx(br.Dropdown,{onMouseEnter:l,onMouseLeave:s,...i,children:r})}TS.displayName="@mantine/core/HoverCardDropdown";const cPe={openDelay:0,closeDelay:0};function jS(e){const{openDelay:r,closeDelay:n,children:o}=Pe("HoverCardGroup",cPe,e);return y.jsx(sPe,{value:!0,children:y.jsx(VU,{delay:{open:r,close:n},children:o})})}jS.displayName="@mantine/core/HoverCardGroup",jS.extend=e=>e;const dPe={refProp:"ref"},AS=S.forwardRef((e,r)=>{const{children:n,refProp:o,eventPropsWrapperName:i,...a}=Pe("HoverCardTarget",dPe,e),l=md(n);if(!l)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 s=rG();if(zS()&&s.getReferenceProps&&s.reference){const p=s.getReferenceProps();return y.jsx(br.Target,{refProp:o,ref:r,...a,children:S.cloneElement(l,i?{[i]:{...p,ref:s.reference}}:{...p,ref:s.reference})})}const c=kn(l.props.onMouseEnter,s.openDropdown),d=kn(l.props.onMouseLeave,s.closeDropdown),u={onMouseEnter:c,onMouseLeave:d};return y.jsx(br.Target,{refProp:o,ref:r,...a,children:S.cloneElement(l,i?{[i]:u}:u)})});AS.displayName="@mantine/core/HoverCardTarget";function uPe(e){const[r,n]=S.useState(e.defaultOpened),o=typeof e.opened=="boolean"?e.opened:r,i=zS(),a=oa(),l=S.useRef(-1),s=S.useRef(-1),c=S.useCallback(()=>{window.clearTimeout(l.current),window.clearTimeout(s.current)},[]),d=S.useCallback(C=>{n(C),C?(m(a),e.onOpen?.()):e.onClose?.()},[a,e.onOpen,e.onClose]),{context:u,refs:p}=t3({open:o,onOpenChange:d}),{delay:f,setCurrentId:m}=qU(u,{id:a}),{getReferenceProps:v,getFloatingProps:w}=WU([LU(u,{enabled:!0,delay:i?f:{open:e.openDelay,close:e.closeDelay}}),GU(u,{role:"dialog"}),UU(u,{enabled:i})]),x=S.useCallback(()=>{i||(c(),e.openDelay===0||e.openDelay===void 0?d(!0):l.current=window.setTimeout(()=>d(!0),e.openDelay))},[i,c,e.openDelay,d]),k=S.useCallback(()=>{i||(c(),e.closeDelay===0||e.closeDelay===void 0?d(!1):s.current=window.setTimeout(()=>d(!1),e.closeDelay))},[i,c,e.closeDelay,d]);return S.useEffect(()=>()=>c(),[c]),{opened:o,reference:p.setReference,floating:p.setFloating,getReferenceProps:v,getFloatingProps:w,openDropdown:x,closeDropdown:k}}const pPe={openDelay:0,closeDelay:150,initiallyOpened:!1};function Bf(e){const{children:r,onOpen:n,onClose:o,openDelay:i,closeDelay:a,initiallyOpened:l,...s}=Pe("HoverCard",pPe,e),c=uPe({openDelay:i,closeDelay:a,defaultOpened:l,onOpen:n,onClose:o});return y.jsx(lPe,{value:{openDropdown:c.openDropdown,closeDropdown:c.closeDropdown,getReferenceProps:c.getReferenceProps,getFloatingProps:c.getFloatingProps,reference:c.reference,floating:c.floating},children:y.jsx(br,{...s,opened:c.opened,__staticSelector:"HoverCard",children:r})})}Bf.displayName="@mantine/core/HoverCard",Bf.Target=AS,Bf.Dropdown=TS,Bf.Group=jS,Bf.extend=e=>e;var hPe=S.useLayoutEffect;const[fPe,_d]=na("Menu component was not found in the tree");var Sd={dropdown:"m_dc9b7c9f",label:"m_9bfac126",divider:"m_efdf90cb",item:"m_99ac2aa1",itemLabel:"m_5476e0d3",itemSection:"m_8b75e504",chevron:"m_b85b0bed"};const DS=ot((e,r)=>{const{classNames:n,className:o,style:i,styles:a,vars:l,...s}=Pe("MenuDivider",null,e),c=_d();return y.jsx(Se,{ref:r,...c.getStyles("divider",{className:o,style:i,styles:a,classNames:n}),...s})});DS.classes=Sd,DS.displayName="@mantine/core/MenuDivider";const vy=ot((e,r)=>{const{classNames:n,className:o,style:i,styles:a,vars:l,onMouseEnter:s,onMouseLeave:c,onKeyDown:d,children:u,...p}=Pe("MenuDropdown",null,e),f=S.useRef(null),m=_d(),v=kn(d,k=>{(k.key==="ArrowUp"||k.key==="ArrowDown")&&(k.preventDefault(),f.current?.querySelectorAll("[data-menu-item]:not(:disabled)")[0]?.focus())}),w=kn(s,()=>(m.trigger==="hover"||m.trigger==="click-hover")&&m.openDropdown()),x=kn(c,()=>(m.trigger==="hover"||m.trigger==="click-hover")&&m.closeDropdown());return y.jsxs(br.Dropdown,{...p,onMouseEnter:w,onMouseLeave:x,role:"menu","aria-orientation":"vertical",ref:$r(r,f),...m.getStyles("dropdown",{className:o,style:i,styles:a,classNames:n,withStaticClass:!1}),tabIndex:-1,"data-menu-dropdown":!0,onKeyDown:v,children:[m.withInitialFocusPlaceholder&&y.jsx("div",{tabIndex:-1,"data-autofocus":!0,"data-mantine-stop-propagation":!0,style:{outline:0}}),u]})});vy.classes=Sd,vy.displayName="@mantine/core/MenuDropdown";const[gPe,x3]=oy(),by=Jn((e,r)=>{const{classNames:n,className:o,style:i,styles:a,vars:l,color:s,closeMenuOnClick:c,leftSection:d,rightSection:u,children:p,disabled:f,"data-disabled":m,...v}=Pe("MenuItem",null,e),w=_d(),x=x3(),k=lo(),{dir:C}=bd(),_=S.useRef(null),$=v,R=kn($.onClick,()=>{m||(typeof c=="boolean"?c&&w.closeDropdownImmediately():w.closeOnItemClick&&w.closeDropdownImmediately())}),T=s?k.variantColorResolver({color:s,theme:k,variant:"light"}):void 0,A=s?vd({color:s,theme:k}):null,z=kn($.onKeyDown,j=>{j.key==="ArrowLeft"&&x&&(x.close(),x.focusParentItem())});return y.jsxs(pr,{onMouseDown:j=>j.preventDefault(),...v,unstyled:w.unstyled,tabIndex:w.menuItemTabIndex,...w.getStyles("item",{className:o,style:i,styles:a,classNames:n}),ref:$r(_,r),role:"menuitem",disabled:f,"data-menu-item":!0,"data-disabled":f||m||void 0,"data-mantine-stop-propagation":!0,onClick:R,onKeyDown:iy({siblingSelector:"[data-menu-item]:not([data-disabled])",parentSelector:"[data-menu-dropdown]",activateOnFocus:!1,loop:w.loop,dir:C,orientation:"vertical",onKeyDown:z}),__vars:{"--menu-item-color":A?.isThemeColor&&A?.shade===void 0?`var(--mantine-color-${A.color}-6)`:T?.color,"--menu-item-hover":T?.hover},children:[d&&y.jsx("div",{...w.getStyles("itemSection",{styles:a,classNames:n}),"data-position":"left",children:d}),p&&y.jsx("div",{...w.getStyles("itemLabel",{styles:a,classNames:n}),children:p}),u&&y.jsx("div",{...w.getStyles("itemSection",{styles:a,classNames:n}),"data-position":"right",children:u})]})});by.classes=Sd,by.displayName="@mantine/core/MenuItem";const PS=ot((e,r)=>{const{classNames:n,className:o,style:i,styles:a,vars:l,...s}=Pe("MenuLabel",null,e),c=_d();return y.jsx(Se,{ref:r,...c.getStyles("label",{className:o,style:i,styles:a,classNames:n}),...s})});PS.classes=Sd,PS.displayName="@mantine/core/MenuLabel";const MS=ot((e,r)=>{const{classNames:n,className:o,style:i,styles:a,vars:l,onMouseEnter:s,onMouseLeave:c,onKeyDown:d,children:u,...p}=Pe("MenuSubDropdown",null,e),f=S.useRef(null),m=_d(),v=x3(),w=kn(s,v?.open),x=kn(c,v?.close);return y.jsx(br.Dropdown,{...p,onMouseEnter:w,onMouseLeave:x,role:"menu","aria-orientation":"vertical",ref:$r(r,f),...m.getStyles("dropdown",{className:o,style:i,styles:a,classNames:n,withStaticClass:!1}),tabIndex:-1,"data-menu-dropdown":!0,children:u})});MS.classes=Sd,MS.displayName="@mantine/core/MenuSubDropdown";const NS=Jn((e,r)=>{const{classNames:n,className:o,style:i,styles:a,vars:l,color:s,leftSection:c,rightSection:d,children:u,disabled:p,"data-disabled":f,closeMenuOnClick:m,...v}=Pe("MenuSubItem",null,e),w=_d(),x=x3(),k=lo(),{dir:C}=bd(),_=S.useRef(null),$=v,R=s?k.variantColorResolver({color:s,theme:k,variant:"light"}):void 0,T=s?vd({color:s,theme:k}):null,A=kn($.onKeyDown,N=>{N.key==="ArrowRight"&&(x?.open(),x?.focusFirstItem()),N.key==="ArrowLeft"&&x?.parentContext&&(x.parentContext.close(),x.parentContext.focusParentItem())}),z=kn($.onClick,()=>{!f&&m&&w.closeDropdownImmediately()}),j=kn($.onMouseEnter,x?.open),I=kn($.onMouseLeave,x?.close);return y.jsxs(pr,{onMouseDown:N=>N.preventDefault(),...v,unstyled:w.unstyled,tabIndex:w.menuItemTabIndex,...w.getStyles("item",{className:o,style:i,styles:a,classNames:n}),ref:$r(_,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:j,onMouseLeave:I,onClick:z,onKeyDown:iy({siblingSelector:"[data-menu-item]:not([data-disabled])",parentSelector:"[data-menu-dropdown]",activateOnFocus:!1,loop:w.loop,dir:C,orientation:"vertical",onKeyDown:A}),__vars:{"--menu-item-color":T?.isThemeColor&&T?.shade===void 0?`var(--mantine-color-${T.color}-6)`:R?.color,"--menu-item-hover":R?.hover},children:[c&&y.jsx("div",{...w.getStyles("itemSection",{styles:a,classNames:n}),"data-position":"left",children:c}),u&&y.jsx("div",{...w.getStyles("itemLabel",{styles:a,classNames:n}),children:u}),y.jsx("div",{...w.getStyles("itemSection",{styles:a,classNames:n}),"data-position":"right",children:d||y.jsx(fS,{...w.getStyles("chevron"),size:14})})]})});NS.classes=Sd,NS.displayName="@mantine/core/MenuSubItem";function oG({children:e,refProp:r}){if(!Sw(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 _d(),y.jsx(br.Target,{refProp:r,popupType:"menu",children:e})}oG.displayName="@mantine/core/MenuSubTarget";const mPe={offset:0,position:"right-start",transitionProps:{duration:0},openDelay:0,middlewares:{shift:{crossAxis:!0}}};function If(e){const{children:r,closeDelay:n,openDelay:o,...i}=Pe("MenuSub",mPe,e),a=oa(),[l,{open:s,close:c}]=xze(!1),d=x3(),{openDropdown:u,closeDropdown:p}=TW({open:s,close:c,closeDelay:n,openDelay:o});return y.jsx(gPe,{value:{opened:l,close:p,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:d},children:y.jsx(br,{opened:l,withinPortal:!1,withArrow:!1,id:a,...i,children:r})})}If.extend=e=>e,If.displayName="@mantine/core/MenuSub",If.Target=oG,If.Dropdown=MS,If.Item=NS;const yPe={refProp:"ref"},w3=S.forwardRef((e,r)=>{const{children:n,refProp:o,...i}=Pe("MenuTarget",yPe,e),a=md(n);if(!a)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 l=_d(),s=a.props,c=kn(s.onClick,()=>{l.trigger==="click"?l.toggleDropdown():l.trigger==="click-hover"&&(l.setOpenedViaClick(!0),l.opened||l.openDropdown())}),d=kn(s.onMouseEnter,()=>(l.trigger==="hover"||l.trigger==="click-hover")&&l.openDropdown()),u=kn(s.onMouseLeave,()=>{(l.trigger==="hover"||l.trigger==="click-hover"&&!l.openedViaClick)&&l.closeDropdown()});return y.jsx(br.Target,{refProp:o,popupType:"menu",ref:r,...i,children:S.cloneElement(a,{onClick:c,onMouseEnter:d,onMouseLeave:u,"data-expanded":l.opened?!0:void 0})})});w3.displayName="@mantine/core/MenuTarget";const vPe={trapFocus:!0,closeOnItemClick:!0,withInitialFocusPlaceholder:!0,clickOutsideEvents:["mousedown","touchstart","keydown"],loop:!0,trigger:"click",openDelay:0,closeDelay:100,menuItemTabIndex:-1};function tn(e){const r=Pe("Menu",vPe,e),{children:n,onOpen:o,onClose:i,opened:a,defaultOpened:l,trapFocus:s,onChange:c,closeOnItemClick:d,loop:u,closeOnEscape:p,trigger:f,openDelay:m,closeDelay:v,classNames:w,styles:x,unstyled:k,variant:C,vars:_,menuItemTabIndex:$,keepMounted:R,withInitialFocusPlaceholder:T,attributes:A,...z}=r,j=kt({name:"Menu",classes:Sd,props:r,classNames:w,styles:x,unstyled:k,attributes:A}),[I,N]=Ys({value:a,defaultValue:l,finalValue:!1,onChange:c}),[L,H]=S.useState(!1),P=()=>{N(!1),H(!1),I&&i?.()},V=()=>{N(!0),!I&&o?.()},B=()=>{I?P():V()},{openDropdown:F,closeDropdown:q}=TW({open:V,close:P,closeDelay:v,openDelay:m}),G=K=>HRe("[data-menu-item]","[data-menu-dropdown]",K),{resolvedClassNames:U,resolvedStyles:Y}=T9({classNames:w,styles:x,props:r});return y.jsx(fPe,{value:{getStyles:j,opened:I,toggleDropdown:B,getItemIndex:G,openedViaClick:L,setOpenedViaClick:H,closeOnItemClick:d,closeDropdown:f==="click"?P:q,openDropdown:f==="click"?V:F,closeDropdownImmediately:P,loop:u,trigger:f,unstyled:k,menuItemTabIndex:$,withInitialFocusPlaceholder:T},children:y.jsx(br,{returnFocus:!0,...z,opened:I,onChange:B,defaultOpened:l,trapFocus:R?!1:s,closeOnEscape:p,__staticSelector:"Menu",classNames:U,styles:Y,unstyled:k,variant:C,keepMounted:R,children:n})})}tn.extend=e=>e,tn.withProps=NTe(tn),tn.classes=Sd,tn.displayName="@mantine/core/Menu",tn.Item=by,tn.Label=PS,tn.Dropdown=vy,tn.Target=w3,tn.Divider=DS,tn.Sub=If;const[Ywt,iG]=oy(),[bPe,xPe]=oy();var k3={root:"m_7cda1cd6","root--default":"m_44da308b","root--contrast":"m_e3a01f8",label:"m_1e0e6180",remove:"m_ae386778",group:"m_1dcfd90b"};const wPe=(e,{gap:r},{size:n})=>({group:{"--pg-gap":r!==void 0?dr(r):dr(n,"pg-gap")}}),BS=ot((e,r)=>{const n=Pe("PillGroup",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,size:d,disabled:u,attributes:p,...f}=n,m=iG()?.size||d||void 0,v=kt({name:"PillGroup",classes:k3,props:n,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:p,vars:c,varsResolver:wPe,stylesCtx:{size:m},rootSelector:"group"});return y.jsx(bPe,{value:{size:m,disabled:u},children:y.jsx(Se,{ref:r,size:m,...v("group"),...f})})});BS.classes=k3,BS.displayName="@mantine/core/PillGroup";const kPe={variant:"default"},_Pe=(e,{radius:r},{size:n})=>({root:{"--pill-fz":dr(n,"pill-fz"),"--pill-height":dr(n,"pill-height"),"--pill-radius":r===void 0?void 0:wn(r)}}),_3=ot((e,r)=>{const n=Pe("Pill",kPe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,variant:d,children:u,withRemoveButton:p,onRemove:f,removeButtonProps:m,radius:v,size:w,disabled:x,mod:k,attributes:C,..._}=n,$=xPe(),R=iG(),T=w||$?.size||void 0,A=R?.variant==="filled"?"contrast":d||"default",z=kt({name:"Pill",classes:k3,props:n,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:C,vars:c,varsResolver:_Pe,stylesCtx:{size:T}});return y.jsxs(Se,{component:"span",ref:r,variant:A,size:T,...z("root",{variant:A}),mod:[{"with-remove":p&&!x,disabled:x||$?.disabled},k],..._,children:[y.jsx("span",{...z("label"),children:u}),p&&y.jsx(lp,{variant:"transparent",radius:v,tabIndex:-1,"aria-hidden":!0,unstyled:s,...m,...z("remove",{className:m?.className,style:m?.style}),onMouseDown:j=>{j.preventDefault(),j.stopPropagation(),m?.onMouseDown?.(j)},onClick:j=>{j.stopPropagation(),f?.(),m?.onClick?.(j)}})]})});_3.classes=k3,_3.displayName="@mantine/core/Pill",_3.Group=BS;var aG={root:"m_f0824112",description:"m_57492dcc",section:"m_690090b5",label:"m_1f6ac4c4",body:"m_f07af9d2",children:"m_e17b862f",chevron:"m_1fd8a00b"};const SPe=(e,{variant:r,color:n,childrenOffset:o,autoContrast:i})=>{const a=e.variantColorResolver({color:n||e.primaryColor,theme:e,variant:r||"light",autoContrast:i});return{root:{"--nl-bg":n||r?a.background:void 0,"--nl-hover":n||r?a.hover:void 0,"--nl-color":n||r?a.color:void 0},children:{"--nl-offset":Gs(o)}}},IS=Jn((e,r)=>{const n=Pe("NavLink",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,opened:d,defaultOpened:u,onChange:p,children:f,active:m,disabled:v,leftSection:w,rightSection:x,label:k,description:C,disableRightSectionRotation:_,noWrap:$,childrenOffset:R,autoContrast:T,mod:A,attributes:z,onClick:j,onKeyDown:I,...N}=n,L=kt({name:"NavLink",props:n,classes:aG,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:z,vars:c,varsResolver:SPe}),[H,P]=Ys({value:d,defaultValue:u,finalValue:!1,onChange:p}),V=!!f,B=F=>{j?.(F),V&&(F.preventDefault(),P(!H))};return y.jsxs(y.Fragment,{children:[y.jsxs(pr,{...L("root"),component:"a",ref:r,onClick:B,onKeyDown:F=>{I?.(F),F.nativeEvent.code==="Space"&&V&&(F.preventDefault(),P(!H))},unstyled:s,mod:[{disabled:v,active:m,expanded:H},A],...N,children:[w&&y.jsx(Se,{component:"span",...L("section"),mod:{position:"left"},children:w}),y.jsxs(Se,{...L("body"),mod:{"no-wrap":$},children:[y.jsx(Se,{component:"span",...L("label"),children:k}),y.jsx(Se,{component:"span",mod:{active:m},...L("description"),children:C})]}),(V||x!==void 0)&&y.jsx(Se,{...L("section"),component:"span",mod:{rotate:H&&!_,position:"right"},children:V?x!==void 0?x:y.jsx(fS,{...L("chevron")}):x})]}),V&&y.jsx(QH,{in:H,...L("collapse"),children:y.jsx("div",{...L("children"),children:f})})]})});IS.classes=aG,IS.displayName="@mantine/core/NavLink";var lG={root:"m_a513464",icon:"m_a4ceffb",loader:"m_b0920b15",body:"m_a49ed24",title:"m_3feedf16",description:"m_3d733a3a",closeButton:"m_919a4d88"};const EPe={withCloseButton:!0},CPe=(e,{radius:r,color:n})=>({root:{"--notification-radius":r===void 0?void 0:wn(r),"--notification-color":n?Ci(n,e):void 0}}),xy=ot((e,r)=>{const n=Pe("Notification",EPe,e),{className:o,color:i,radius:a,loading:l,withCloseButton:s,withBorder:c,title:d,icon:u,children:p,onClose:f,closeButtonProps:m,classNames:v,style:w,styles:x,unstyled:k,variant:C,vars:_,mod:$,loaderProps:R,role:T,attributes:A,...z}=n,j=kt({name:"Notification",classes:lG,props:n,className:o,style:w,classNames:v,styles:x,unstyled:k,attributes:A,vars:_,varsResolver:CPe});return y.jsxs(Se,{...j("root"),mod:[{"data-with-icon":!!u||l,"data-with-border":c},$],ref:r,variant:C,role:T||"alert",...z,children:[u&&!l&&y.jsx("div",{...j("icon"),children:u}),l&&y.jsx(Pf,{size:28,color:i,...R,...j("loader")}),y.jsxs("div",{...j("body"),children:[d&&y.jsx("div",{...j("title"),children:d}),y.jsx(Se,{...j("description"),mod:{"data-with-title":!!d},children:p})]}),s&&y.jsx(lp,{iconSize:16,color:"gray",...m,unstyled:k,onClick:f,...j("closeButton")})]})});xy.classes=lG,xy.displayName="@mantine/core/Notification";const $Pe={duration:100,transition:"fade"};function sG(e,r){return{...$Pe,...r,...e}}function RPe({offset:e,position:r,defaultOpened:n}){const[o,i]=S.useState(n),a=S.useRef(null),{x:l,y:s,elements:c,refs:d,update:u,placement:p}=t3({placement:r,middleware:[Z9({crossAxis:!0,padding:5,rootBoundary:"document"})]}),f=p.includes("right")?e:r.includes("left")?e*-1:0,m=p.includes("bottom")?e:r.includes("top")?e*-1:0,v=S.useCallback(({clientX:w,clientY:x})=>{d.setPositionReference({getBoundingClientRect(){return{width:0,height:0,x:w,y:x,left:w+f,top:x+m,right:w,bottom:x}}})},[c.reference]);return S.useEffect(()=>{if(d.floating.current){const w=a.current;w.addEventListener("mousemove",v);const x=Zs(d.floating.current);return x.forEach(k=>{k.addEventListener("scroll",u)}),()=>{w.removeEventListener("mousemove",v),x.forEach(k=>{k.removeEventListener("scroll",u)})}}},[c.reference,d.floating.current,u,v,o]),{handleMouseMove:v,x:l,y:s,opened:o,setOpened:i,boundaryRef:a,floating:d.setFloating}}var S3={tooltip:"m_1b3c8819",arrow:"m_f898399f"};const zPe={refProp:"ref",withinPortal:!0,offset:10,position:"right",zIndex:Ew("popover")},TPe=(e,{radius:r,color:n})=>({tooltip:{"--tooltip-radius":r===void 0?void 0:wn(r),"--tooltip-bg":n?Ci(n,e):void 0,"--tooltip-color":n?"var(--mantine-color-white)":void 0}}),OS=ot((e,r)=>{const n=Pe("TooltipFloating",zPe,e),{children:o,refProp:i,withinPortal:a,style:l,className:s,classNames:c,styles:d,unstyled:u,radius:p,color:f,label:m,offset:v,position:w,multiline:x,zIndex:k,disabled:C,defaultOpened:_,variant:$,vars:R,portalProps:T,attributes:A,...z}=n,j=lo(),I=kt({name:"TooltipFloating",props:n,classes:S3,className:s,style:l,classNames:c,styles:d,unstyled:u,attributes:A,rootSelector:"tooltip",vars:R,varsResolver:TPe}),{handleMouseMove:N,x:L,y:H,opened:P,boundaryRef:V,floating:B,setOpened:F}=RPe({offset:v,position:w,defaultOpened:_}),q=md(o);if(!q)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 G=$r(V,Rw(q),r),U=q.props,Y=O=>{U.onMouseEnter?.(O),N(O),F(!0)},K=O=>{U.onMouseLeave?.(O),F(!1)};return y.jsxs(y.Fragment,{children:[y.jsx(Df,{...T,withinPortal:a,children:y.jsx(Se,{...z,...I("tooltip",{style:{...M9(l,j),zIndex:k,display:!C&&P?"block":"none",top:(H&&Math.round(H))??"",left:(L&&Math.round(L))??""}}),variant:$,ref:B,mod:{multiline:x},children:m})}),S.cloneElement(q,{...U,[i]:G,onMouseEnter:Y,onMouseLeave:K})]})});OS.classes=S3,OS.displayName="@mantine/core/TooltipFloating";const cG=S.createContext(!1),jPe=cG.Provider,APe=()=>S.useContext(cG),DPe={openDelay:0,closeDelay:0};function dp(e){const{openDelay:r,closeDelay:n,children:o}=Pe("TooltipGroup",DPe,e);return y.jsx(jPe,{value:!0,children:y.jsx(VU,{delay:{open:r,close:n},children:o})})}dp.displayName="@mantine/core/TooltipGroup",dp.extend=e=>e;function PPe(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 MPe(e){const r=PPe(e.middlewares),n=[TU(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"?Jw():Jw(r.flip)),n.push(AU({element:e.arrowRef,padding:e.arrowOffset})),r.inline?n.push(typeof r.inline=="boolean"?uy():uy(r.inline)):e.inline&&n.push(uy()),n}function NPe(e){const[r,n]=S.useState(e.defaultOpened),o=typeof e.opened=="boolean"?e.opened:r,i=APe(),a=oa(),l=S.useCallback($=>{n($),$&&x(a)},[a]),{x:s,y:c,context:d,refs:u,placement:p,middlewareData:{arrow:{x:f,y:m}={}}}=t3({strategy:e.strategy,placement:e.position,open:o,onOpenChange:l,middleware:MPe(e),whileElementsMounted:Kw}),{delay:v,currentId:w,setCurrentId:x}=qU(d,{id:a}),{getReferenceProps:k,getFloatingProps:C}=WU([LU(d,{enabled:e.events?.hover,delay:i?v:{open:e.openDelay,close:e.closeDelay},mouseOnly:!e.events?.touch}),xAe(d,{enabled:e.events?.focus,visibleOnly:!0}),GU(d,{role:"tooltip"}),UU(d,{enabled:typeof e.opened>"u"})]);wf(()=>{e.onPositionChange?.(p)},[p]);const _=o&&w&&w!==a;return{x:s,y:c,arrowX:f,arrowY:m,reference:u.setReference,floating:u.setFloating,getFloatingProps:C,getReferenceProps:k,isGroupPhase:_,opened:o,placement:p}}const dG={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:Ew("popover"),positionDependencies:[],middlewares:{flip:!0,shift:!0,inline:!1}},BPe=(e,{radius:r,color:n,variant:o,autoContrast:i})=>{const a=e.variantColorResolver({theme:e,color:n||e.primaryColor,autoContrast:i,variant:o||"filled"});return{tooltip:{"--tooltip-radius":r===void 0?void 0:wn(r),"--tooltip-bg":n?a.background:void 0,"--tooltip-color":n?a.color:void 0}}},_n=ot((e,r)=>{const n=Pe("Tooltip",dG,e),{children:o,position:i,refProp:a,label:l,openDelay:s,closeDelay:c,onPositionChange:d,opened:u,defaultOpened:p,withinPortal:f,radius:m,color:v,classNames:w,styles:x,unstyled:k,style:C,className:_,withArrow:$,arrowSize:R,arrowOffset:T,arrowRadius:A,arrowPosition:z,offset:j,transitionProps:I,multiline:N,events:L,zIndex:H,disabled:P,positionDependencies:V,onClick:B,onMouseEnter:F,onMouseLeave:q,inline:G,variant:U,keepMounted:Y,vars:K,portalProps:O,mod:W,floatingStrategy:Z,middlewares:Q,autoContrast:ie,attributes:te,target:re,...ue}=Pe("Tooltip",dG,n),{dir:_e}=bd(),ce=S.useRef(null),pe=NPe({position:pW(_e,i),closeDelay:c,openDelay:s,onPositionChange:d,opened:u,defaultOpened:p,events:L,arrowRef:ce,arrowOffset:T,offset:typeof j=="number"?j+($?R/2:0):j,positionDependencies:[...V,re??o],inline:G,strategy:Z,middlewares:Q});S.useEffect(()=>{const Le=re instanceof HTMLElement?re:typeof re=="string"?document.querySelector(re):re?.current||null;Le&&pe.reference(Le)},[re,pe]);const xe=kt({name:"Tooltip",props:n,classes:S3,className:_,style:C,classNames:w,styles:x,unstyled:k,attributes:te,rootSelector:"tooltip",vars:K,varsResolver:BPe}),je=md(o);if(!re&&!je)return null;if(re){const Le=sG(I,{duration:100,transition:"fade"});return y.jsx(y.Fragment,{children:y.jsx(Df,{...O,withinPortal:f,children:y.jsx(wd,{...Le,keepMounted:Y,mounted:!P&&!!pe.opened,duration:pe.isGroupPhase?10:Le.duration,children:St=>y.jsxs(Se,{...ue,"data-fixed":Z==="fixed"||void 0,variant:U,mod:[{multiline:N},W],...pe.getFloatingProps({ref:pe.floating,className:xe("tooltip").className,style:{...xe("tooltip").style,...St,zIndex:H,top:pe.y??0,left:pe.x??0}}),children:[l,y.jsx(i3,{ref:ce,arrowX:pe.arrowX,arrowY:pe.arrowY,visible:$,position:pe.placement,arrowSize:R,arrowOffset:T,arrowRadius:A,arrowPosition:z,...xe("arrow")})]})})})})}const Be=je.props,Je=$r(pe.reference,Rw(je),r),st=sG(I,{duration:100,transition:"fade"});return y.jsxs(y.Fragment,{children:[y.jsx(Df,{...O,withinPortal:f,children:y.jsx(wd,{...st,keepMounted:Y,mounted:!P&&!!pe.opened,duration:pe.isGroupPhase?10:st.duration,children:Le=>y.jsxs(Se,{...ue,"data-fixed":Z==="fixed"||void 0,variant:U,mod:[{multiline:N},W],...pe.getFloatingProps({ref:pe.floating,className:xe("tooltip").className,style:{...xe("tooltip").style,...Le,zIndex:H,top:pe.y??0,left:pe.x??0}}),children:[l,y.jsx(i3,{ref:ce,arrowX:pe.arrowX,arrowY:pe.arrowY,visible:$,position:pe.placement,arrowSize:R,arrowOffset:T,arrowRadius:A,arrowPosition:z,...xe("arrow")})]})})}),S.cloneElement(je,pe.getReferenceProps({onClick:B,onMouseEnter:F,onMouseLeave:q,onMouseMove:n.onMouseMove,onPointerDown:n.onPointerDown,onPointerEnter:n.onPointerEnter,...Be,className:el(_,Be.className),[a]:Je}))]})});_n.classes=S3,_n.displayName="@mantine/core/Tooltip",_n.Floating=OS,_n.Group=dp;var uG={root:"m_cf365364",indicator:"m_9e182ccd",label:"m_1738fcb2",input:"m_1714d588",control:"m_69686b9b",innerLabel:"m_78882f40"};const IPe={withItemsBorders:!0},OPe=(e,{radius:r,color:n,transitionDuration:o,size:i,transitionTimingFunction:a})=>({root:{"--sc-radius":r===void 0?void 0:wn(r),"--sc-color":n?Ci(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":a,"--sc-padding":dr(i,"sc-padding"),"--sc-font-size":Eo(i)}}),Of=ot((e,r)=>{const n=Pe("SegmentedControl",IPe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,data:d,value:u,defaultValue:p,onChange:f,size:m,name:v,disabled:w,readOnly:x,fullWidth:k,orientation:C,radius:_,color:$,transitionDuration:R,transitionTimingFunction:T,variant:A,autoContrast:z,withItemsBorders:j,mod:I,attributes:N,...L}=n,H=kt({name:"SegmentedControl",props:n,classes:uG,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:N,vars:c,varsResolver:OPe}),P=lo(),V=d.map(re=>typeof re=="string"?{label:re,value:re}:re),B=_ze(),[F,q]=S.useState(g9()),[G,U]=S.useState(null),[Y,K]=S.useState({}),O=(re,ue)=>{Y[ue]=re,K(Y)},[W,Z]=Ys({value:u,defaultValue:p,finalValue:Array.isArray(d)?V.find(re=>!re.disabled)?.value??d[0]?.value??null:null,onChange:f}),Q=oa(v),ie=V.map(re=>S.createElement(Se,{...H("control"),mod:{active:W===re.value,orientation:C},key:re.value},S.createElement("input",{...H("input"),disabled:w||re.disabled,type:"radio",name:Q,value:re.value,id:`${Q}-${re.value}`,checked:W===re.value,onChange:()=>!x&&Z(re.value),"data-focus-ring":P.focusRing,key:`${re.value}-input`}),S.createElement(Se,{component:"label",...H("label"),mod:{active:W===re.value&&!(w||re.disabled),disabled:w||re.disabled,"read-only":x},htmlFor:`${Q}-${re.value}`,ref:ue=>O(ue,re.value),__vars:{"--sc-label-color":$!==void 0?$9({color:$,theme:P,autoContrast:z}):void 0},key:`${re.value}-label`},y.jsx("span",{...H("innerLabel"),children:re.label})))),te=$r(r,re=>U(re));return hze(()=>{q(g9())},[d.length]),d.length===0?null:y.jsxs(Se,{...H("root"),variant:A,size:m,ref:te,mod:[{"full-width":k,orientation:C,initialized:B,"with-items-borders":j},I],...L,role:"radiogroup","data-disabled":w,children:[typeof W=="string"&&y.jsx(h3,{target:Y[W],parent:G,component:"span",transitionDuration:"var(--sc-transition-duration)",...H("indicator")},F),ie]})});Of.classes=uG,Of.displayName="@mantine/core/SegmentedControl";const[LPe,E3]=na("SliderProvider was not found in tree"),pG=S.forwardRef(({size:e,disabled:r,variant:n,color:o,thumbSize:i,radius:a,...l},s)=>{const{getStyles:c}=E3();return y.jsx(Se,{tabIndex:-1,variant:n,size:e,ref:s,...c("root"),...l})});pG.displayName="@mantine/core/SliderRoot";const hG=S.forwardRef(({max:e,min:r,value:n,position:o,label:i,dragging:a,onMouseDown:l,onKeyDownCapture:s,labelTransitionProps:c,labelAlwaysOn:d,thumbLabel:u,onFocus:p,onBlur:f,showLabelOnHover:m,isHovered:v,children:w=null,disabled:x},k)=>{const{getStyles:C}=E3(),[_,$]=S.useState(!1),R=d||a||_||m&&v;return y.jsxs(Se,{tabIndex:0,role:"slider","aria-label":u,"aria-valuemax":e,"aria-valuemin":r,"aria-valuenow":n,ref:k,__vars:{"--slider-thumb-offset":`${o}%`},...C("thumb",{focusable:!0}),mod:{dragging:a,disabled:x},onFocus:T=>{$(!0),typeof p=="function"&&p(T)},onBlur:T=>{$(!1),typeof f=="function"&&f(T)},onTouchStart:l,onMouseDown:l,onKeyDownCapture:s,onClick:T=>T.stopPropagation(),children:[w,y.jsx(wd,{mounted:i!=null&&!!R,transition:"fade",duration:0,...c,children:T=>y.jsx("div",{...C("label",{style:T}),children:i})})]})});hG.displayName="@mantine/core/SliderThumb";function fG({value:e,min:r,max:n}){const o=(e-r)/(n-r)*100;return Math.min(Math.max(o,0),100)}function FPe({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 gG({marks:e,min:r,max:n,disabled:o,value:i,offset:a,inverted:l}){const{getStyles:s}=E3();if(!e)return null;const c=e.map((d,u)=>S.createElement(Se,{...s("markWrapper"),__vars:{"--mark-offset":`${fG({value:d.value,min:r,max:n})}%`},key:u},y.jsx(Se,{...s("mark"),mod:{filled:FPe({mark:d,value:i,offset:a,inverted:l}),disabled:o}}),d.label&&y.jsx("div",{...s("markLabel"),children:d.label})));return y.jsx("div",{children:c})}gG.displayName="@mantine/core/SliderMarks";function mG({filled:e,children:r,offset:n,disabled:o,marksOffset:i,inverted:a,containerProps:l,...s}){const{getStyles:c}=E3();return y.jsx(Se,{...c("trackContainer"),mod:{disabled:o},...l,children:y.jsxs(Se,{...c("track"),mod:{inverted:a,disabled:o},children:[y.jsx(Se,{mod:{inverted:a,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(gG,{...s,offset:i,disabled:o,inverted:a})]})})}mG.displayName="@mantine/core/SliderTrack";function VPe({value:e,containerWidth:r,min:n,max:o,step:i,precision:a}){const l=(r?Math.min(Math.max(e,0),r)/r:e)*(o-n),s=(l!==0?Math.round(l/i)*i:0)+n,c=Math.max(s,n);return a!==void 0?Number(c.toFixed(a)):c}function C3(e,r){return parseFloat(e.toFixed(r))}function qPe(e){if(!e)return 0;const r=e.toString().split(".");return r.length>1?r[1].length:0}function LS(e,r){const n=[...r].sort((o,i)=>o.value-i.value).find(o=>o.value>e);return n?n.value:e}function FS(e,r){const n=[...r].sort((o,i)=>i.value-o.value).find(o=>o.valuen.value-o.value);return r.length>0?r[0].value:0}function vG(e){const r=[...e].sort((n,o)=>n.value-o.value);return r.length>0?r[r.length-1].value:100}var bG={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 HPe={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"},UPe=(e,{size:r,color:n,thumbSize:o,radius:i})=>({root:{"--slider-size":dr(r,"slider-size"),"--slider-color":n?Ci(n,e):void 0,"--slider-radius":i===void 0?void 0:wn(i),"--slider-thumb-size":o!==void 0?$e(o):"calc(var(--slider-size) * 2)"}}),VS=ot((e,r)=>{const n=Pe("Slider",HPe,e),{classNames:o,styles:i,value:a,onChange:l,onChangeEnd:s,size:c,min:d,max:u,domain:p,step:f,precision:m,defaultValue:v,name:w,marks:x,label:k,labelTransitionProps:C,labelAlwaysOn:_,thumbLabel:$,showLabelOnHover:R,thumbChildren:T,disabled:A,unstyled:z,scale:j,inverted:I,className:N,style:L,vars:H,hiddenInputProps:P,restrictToMarks:V,thumbProps:B,attributes:F,...q}=n,G=kt({name:"Slider",props:n,classes:bG,classNames:o,className:N,styles:i,style:L,attributes:F,vars:H,varsResolver:UPe,unstyled:z}),{dir:U}=bd(),[Y,K]=S.useState(!1),[O,W]=Ys({value:typeof a=="number"?hd(a,d,u):a,defaultValue:typeof v=="number"?hd(v,d,u):v,finalValue:hd(0,d,u),onChange:l}),Z=S.useRef(O),Q=S.useRef(s);S.useEffect(()=>{Q.current=s},[s]);const ie=S.useRef(null),te=S.useRef(null),[re,ue]=p||[d,u],_e=fG({value:O,min:re,max:ue}),ce=j(O),pe=typeof k=="function"?k(ce):k,xe=m??qPe(f),je=S.useCallback(({x:Ve})=>{if(!A){const qe=VPe({value:Ve,min:re,max:ue,step:f,precision:xe}),Xe=hd(qe,d,u);W(V&&x?.length?TH(Xe,x.map(It=>It.value)):Xe),Z.current=Xe}},[A,d,u,re,ue,f,xe,W,x,V]),Be=S.useCallback(()=>{if(!A&&Q.current){const Ve=V&&x?.length?TH(Z.current,x.map(qe=>qe.value)):Z.current;Q.current(Ve)}},[A,x,V]),{ref:Je,active:st}=kH(je,{onScrubEnd:Be},U),Le=S.useCallback(Ve=>{!A&&Q.current&&Q.current(Ve)},[A]),St=Ve=>{if(!A)switch(Ve.key){case"ArrowUp":{if(Ve.preventDefault(),te.current?.focus(),V&&x){const Xe=LS(O,x);W(Xe),Le(Xe);break}const qe=C3(Math.min(Math.max(O+f,d),u),xe);W(qe),Le(qe);break}case"ArrowRight":{if(Ve.preventDefault(),te.current?.focus(),V&&x){const Xe=U==="rtl"?FS(O,x):LS(O,x);W(Xe),Le(Xe);break}const qe=C3(Math.min(Math.max(U==="rtl"?O-f:O+f,d),u),xe);W(qe),Le(qe);break}case"ArrowDown":{if(Ve.preventDefault(),te.current?.focus(),V&&x){const Xe=FS(O,x);W(Xe),Le(Xe);break}const qe=C3(Math.min(Math.max(O-f,d),u),xe);W(qe),Le(qe);break}case"ArrowLeft":{if(Ve.preventDefault(),te.current?.focus(),V&&x){const Xe=U==="rtl"?LS(O,x):FS(O,x);W(Xe),Le(Xe);break}const qe=C3(Math.min(Math.max(U==="rtl"?O+f:O-f,d),u),xe);W(qe),Le(qe);break}case"Home":{if(Ve.preventDefault(),te.current?.focus(),V&&x){W(yG(x)),Le(yG(x));break}W(d),Le(d);break}case"End":{if(Ve.preventDefault(),te.current?.focus(),V&&x){W(vG(x)),Le(vG(x));break}W(u),Le(u);break}}};return y.jsx(LPe,{value:{getStyles:G},children:y.jsxs(pG,{...q,ref:$r(r,ie),onKeyDownCapture:St,onMouseDownCapture:()=>ie.current?.focus(),size:c,disabled:A,children:[y.jsx(mG,{inverted:I,offset:0,filled:_e,marks:x,min:re,max:ue,value:ce,disabled:A,containerProps:{ref:Je,onMouseEnter:R?()=>K(!0):void 0,onMouseLeave:R?()=>K(!1):void 0},children:y.jsx(hG,{max:ue,min:re,value:ce,position:_e,dragging:st,label:pe,ref:te,labelTransitionProps:C,labelAlwaysOn:_,thumbLabel:$,showLabelOnHover:R,isHovered:Y,disabled:A,...B,children:T})}),y.jsx("input",{type:"hidden",name:w,value:ce,...P})]})})});VS.classes=bG,VS.displayName="@mantine/core/Slider";const qS=ot((e,r)=>{const{w:n,h:o,miw:i,mih:a,...l}=Pe("Space",null,e);return y.jsx(Se,{ref:r,...l,w:n,miw:i??n,h:o,mih:a??o})});qS.displayName="@mantine/core/Space";var xG={root:"m_6d731127"};const WPe={gap:"md",align:"stretch",justify:"flex-start"},GPe=(e,{gap:r,align:n,justify:o})=>({root:{"--stack-gap":Gs(r),"--stack-align":n,"--stack-justify":o}}),Lo=ot((e,r)=>{const n=Pe("Stack",WPe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,align:d,justify:u,gap:p,variant:f,attributes:m,...v}=n,w=kt({name:"Stack",props:n,classes:xG,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:m,vars:c,varsResolver:GPe});return y.jsx(Se,{ref:r,...w("root"),variant:f,...v})});Lo.classes=xG,Lo.displayName="@mantine/core/Stack";const[YPe,HS]=na("Tabs component was not found in the tree");var wy={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 ky=ot((e,r)=>{const n=Pe("TabsList",null,e),{children:o,className:i,grow:a,justify:l,classNames:s,styles:c,style:d,mod:u,...p}=n,f=HS();return y.jsx(Se,{...p,...f.getStyles("list",{className:i,style:d,classNames:s,styles:c,props:n,variant:f.variant}),ref:r,role:"tablist",variant:f.variant,mod:[{grow:a,orientation:f.orientation,placement:f.orientation==="vertical"&&f.placement,inverted:f.inverted},u],"aria-orientation":f.orientation,__vars:{"--tabs-justify":l},children:o})});ky.classes=wy,ky.displayName="@mantine/core/TabsList";const rc=ot((e,r)=>{const n=Pe("TabsPanel",null,e),{children:o,className:i,value:a,classNames:l,styles:s,style:c,mod:d,keepMounted:u,...p}=n,f=HS(),m=f.value===a,v=f.keepMounted||u||m?o:null;return y.jsx(Se,{...f.getStyles("panel",{className:i,classNames:l,styles:s,style:[c,m?void 0:{display:"none"}],props:n}),ref:r,mod:[{orientation:f.orientation},d],role:"tabpanel",id:f.getPanelId(a),"aria-labelledby":f.getTabId(a),...p,children:v})});rc.classes=wy,rc.displayName="@mantine/core/TabsPanel";const Lf=ot((e,r)=>{const n=Pe("TabsTab",null,e),{className:o,children:i,rightSection:a,leftSection:l,value:s,onClick:c,onKeyDown:d,disabled:u,color:p,style:f,classNames:m,styles:v,vars:w,mod:x,tabIndex:k,...C}=n,_=lo(),{dir:$}=bd(),R=HS(),T=s===R.value,A=j=>{R.onChange(R.allowTabDeactivation&&s===R.value?null:s),c?.(j)},z={classNames:m,styles:v,props:n};return y.jsxs(pr,{...R.getStyles("tab",{className:o,style:f,variant:R.variant,...z}),disabled:u,unstyled:R.unstyled,variant:R.variant,mod:[{active:T,disabled:u,orientation:R.orientation,inverted:R.inverted,placement:R.orientation==="vertical"&&R.placement},x],ref:r,role:"tab",id:R.getTabId(s),"aria-selected":T,tabIndex:k!==void 0?k:T||R.value===null?0:-1,"aria-controls":R.getPanelId(s),onClick:A,__vars:{"--tabs-color":p?Ci(p,_):void 0},onKeyDown:iy({siblingSelector:'[role="tab"]',parentSelector:'[role="tablist"]',activateOnFocus:R.activateTabWithKeyboard,loop:R.loop,orientation:R.orientation||"horizontal",dir:$,onKeyDown:d}),...C,children:[l&&y.jsx("span",{...R.getStyles("tabSection",z),"data-position":"left",children:l}),i&&y.jsx("span",{...R.getStyles("tabLabel",z),children:i}),a&&y.jsx("span",{...R.getStyles("tabSection",z),"data-position":"right",children:a})]})});Lf.classes=wy,Lf.displayName="@mantine/core/TabsTab";const wG="Tabs.Tab or Tabs.Panel component was rendered with invalid value or without value",XPe={keepMounted:!0,orientation:"horizontal",loop:!0,activateTabWithKeyboard:!0,variant:"default",placement:"left"},KPe=(e,{radius:r,color:n,autoContrast:o})=>({root:{"--tabs-radius":wn(r),"--tabs-color":Ci(n,e),"--tabs-text-color":fTe(o,e)?$9({color:n,theme:e,autoContrast:o}):void 0}}),up=ot((e,r)=>{const n=Pe("Tabs",XPe,e),{defaultValue:o,value:i,onChange:a,orientation:l,children:s,loop:c,id:d,activateTabWithKeyboard:u,allowTabDeactivation:p,variant:f,color:m,radius:v,inverted:w,placement:x,keepMounted:k,classNames:C,styles:_,unstyled:$,className:R,style:T,vars:A,autoContrast:z,mod:j,attributes:I,...N}=n,L=oa(d),[H,P]=Ys({value:i,defaultValue:o,finalValue:null,onChange:a}),V=kt({name:"Tabs",props:n,classes:wy,className:R,style:T,classNames:C,styles:_,unstyled:$,attributes:I,vars:A,varsResolver:KPe});return y.jsx(YPe,{value:{placement:x,value:H,orientation:l,id:L,loop:c,activateTabWithKeyboard:u,getTabId:cH(`${L}-tab`,wG),getPanelId:cH(`${L}-panel`,wG),onChange:P,allowTabDeactivation:p,variant:f,color:m,radius:v,inverted:w,keepMounted:k,unstyled:$,getStyles:V},children:y.jsx(Se,{ref:r,id:L,variant:f,mod:[{orientation:l,inverted:l==="horizontal"&&w,placement:l==="vertical"&&x},j],...V("root"),...N,children:s})})});up.classes=wy,up.displayName="@mantine/core/Tabs",up.Tab=Lf,up.Panel=rc,up.List=ky;var kG={root:"m_7341320d"};const ZPe=(e,{size:r,radius:n,variant:o,gradient:i,color:a,autoContrast:l})=>{const s=e.variantColorResolver({color:a||e.primaryColor,theme:e,gradient:i,variant:o||"filled",autoContrast:l});return{root:{"--ti-size":dr(r,"ti-size"),"--ti-radius":n===void 0?void 0:wn(n),"--ti-bg":a||o?s.background:void 0,"--ti-color":a||o?s.color:void 0,"--ti-bd":a||o?s.border:void 0}}},Ti=ot((e,r)=>{const n=Pe("ThemeIcon",null,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,autoContrast:d,attributes:u,...p}=n,f=kt({name:"ThemeIcon",classes:kG,props:n,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:u,vars:c,varsResolver:ZPe});return y.jsx(Se,{ref:r,...f("root"),...p})});Ti.classes=kG,Ti.displayName="@mantine/core/ThemeIcon";const QPe=["h1","h2","h3","h4","h5","h6"],JPe=["xs","sm","md","lg","xl"];function eMe(e,r){const n=r!==void 0?r:`h${e}`;return QPe.includes(n)?{fontSize:`var(--mantine-${n}-font-size)`,fontWeight:`var(--mantine-${n}-font-weight)`,lineHeight:`var(--mantine-${n}-line-height)`}:JPe.includes(n)?{fontSize:`var(--mantine-font-size-${n})`,fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}:{fontSize:$e(n),fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}}var _G={root:"m_8a5d1357"};const tMe={order:1},rMe=(e,{order:r,size:n,lineClamp:o,textWrap:i})=>{const a=eMe(r||1,n);return{root:{"--title-fw":a.fontWeight,"--title-lh":a.lineHeight,"--title-fz":a.fontSize,"--title-line-clamp":typeof o=="number"?o.toString():void 0,"--title-text-wrap":i}}},pp=ot((e,r)=>{const n=Pe("Title",tMe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,order:c,vars:d,size:u,variant:p,lineClamp:f,textWrap:m,mod:v,attributes:w,...x}=n,k=kt({name:"Title",props:n,classes:_G,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:w,vars:d,varsResolver:rMe});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"},v],size:u,...x}):null});pp.classes=_G,pp.displayName="@mantine/core/Title";function SG(e,r,n){if(!e||!r)return[];const o=n.indexOf(e),i=n.indexOf(r),a=Math.min(o,i),l=Math.max(o,i);return n.slice(a,l+1)}function US({node:e,getStyles:r,rootIndex:n,controller:o,expandOnClick:i,selectOnClick:a,isSubtree:l,level:s=1,renderNode:c,flatValues:d,allowRangeSelection:u,expandOnSpace:p,checkOnSpace:f}){const m=S.useRef(null),v=(e.children||[]).map(_=>y.jsx(US,{node:_,flatValues:d,getStyles:r,rootIndex:void 0,level:s+1,controller:o,expandOnClick:i,isSubtree:!0,renderNode:c,selectOnClick:a,allowRangeSelection:u,expandOnSpace:p,checkOnSpace:f},_.value)),w=_=>{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&&vf(_.currentTarget,"[role=treeitem]")?.focus()),_.nativeEvent.code==="ArrowDown"||_.nativeEvent.code==="ArrowUp"){const $=vf(_.currentTarget,"[data-tree-root]");if(!$)return;_.stopPropagation(),_.preventDefault();const R=Array.from($.querySelectorAll("[role=treeitem]")),T=R.indexOf(_.currentTarget);if(T===-1)return;const A=_.nativeEvent.code==="ArrowDown"?T+1:T-1;if(R[A]?.focus(),_.shiftKey){const z=R[A];z&&o.setSelectedState(SG(o.anchorNode,z.dataset.value,d))}}_.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)))},x=_=>{_.stopPropagation(),u&&_.shiftKey&&o.anchorNode?(o.setSelectedState(SG(o.anchorNode,e.value,d)),m.current?.focus()):(i&&o.toggleExpanded(e.value),a&&o.select(e.value),m.current?.focus())},k=o.selectedState.includes(e.value),C={...r("label"),onClick:x,"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:w,ref:m,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]&&v.length>0&&y.jsx(Se,{component:"ul",role:"group",...r("subtree"),"data-level":s,children:v})]})}US.displayName="@mantine/core/TreeNode";function $3(e,r,n=[]){const o=[];for(const i of e)if(Array.isArray(i.children)&&i.children.length>0){const a=$3(i.children,r,n);if(a.currentTreeChecked.length===i.children.length){const l=a.currentTreeChecked.every(c=>c.checked),s={checked:l,indeterminate:!l,value:i.value,hasChildren:!0};o.push(s),n.push(s)}else if(a.currentTreeChecked.length>0){const l={checked:!1,indeterminate:!0,value:i.value,hasChildren:!0};o.push(l),n.push(l)}}else if(r.includes(i.value)){const a={checked:!0,indeterminate:!1,value:i.value,hasChildren:!1};o.push(a),n.push(a)}return{result:n,currentTreeChecked:o}}function EG(e,r){for(const n of r){if(n.value===e)return n;if(Array.isArray(n.children)){const o=EG(e,n.children);if(o)return o}}return null}function R3(e,r,n=[]){const o=EG(e,r);return o?!Array.isArray(o.children)||o.children.length===0?[o.value]:(o.children.forEach(i=>{Array.isArray(i.children)&&i.children.length>0?R3(i.value,r,n):n.push(i.value)}),n):n}function CG(e){return e.reduce((r,n)=>(Array.isArray(n.children)&&n.children.length>0?r.push(...CG(n.children)):r.push(n.value),r),[])}function nMe(e,r,n){return n.length===0?!1:n.includes(e)?!0:$3(r,n).result.some(o=>o.value===e&&o.checked)}const oMe=zH(nMe);function iMe(e,r,n){return n.length===0?!1:$3(r,n).result.some(o=>o.value===e&&o.indeterminate)}const aMe=zH(iMe);function $G(e,r,n,o={}){return r.forEach(i=>{o[i.value]=i.value in e?e[i.value]:i.value===n,Array.isArray(i.children)&&$G(e,i.children,n,o)}),o}function lMe(e,r){const n=[];return e.forEach(o=>n.push(...R3(o,r))),Array.from(new Set(n))}function _y({initialSelectedState:e=[],initialCheckedState:r=[],initialExpandedState:n={},multiple:o=!1,onNodeCollapse:i,onNodeExpand:a}={}){const[l,s]=S.useState([]),[c,d]=S.useState(n),[u,p]=S.useState(e),[f,m]=S.useState(r),[v,w]=S.useState(null),[x,k]=S.useState(null),C=S.useCallback(B=>{d(F=>$G(F,B,u)),m(F=>lMe(F,B)),s(B)},[u,f]),_=S.useCallback(B=>{d(F=>{const q={...F,[B]:!F[B]};return q[B]?a?.(B):i?.(B),q})},[i,a]),$=S.useCallback(B=>{d(F=>(F[B]!==!1&&i?.(B),{...F,[B]:!1}))},[i]),R=S.useCallback(B=>{d(F=>(F[B]!==!0&&a?.(B),{...F,[B]:!0}))},[a]),T=S.useCallback(()=>{d(B=>{const F={...B};return Object.keys(F).forEach(q=>{F[q]=!0}),F})},[]),A=S.useCallback(()=>{d(B=>{const F={...B};return Object.keys(F).forEach(q=>{F[q]=!1}),F})},[]),z=S.useCallback(B=>p(F=>o?F.includes(B)?(w(null),F.filter(q=>q!==B)):(w(B),[...F,B]):F.includes(B)?(w(null),[]):(w(B),[B])),[]),j=S.useCallback(B=>{w(B),p(F=>o?F.includes(B)?F:[...F,B]:[B])},[]),I=S.useCallback(B=>{v===B&&w(null),p(F=>F.filter(q=>q!==B))},[]),N=S.useCallback(()=>{p([]),w(null)},[]),L=S.useCallback(B=>{const F=R3(B,l);m(q=>Array.from(new Set([...q,...F])))},[l]),H=S.useCallback(B=>{const F=R3(B,l);m(q=>q.filter(G=>!F.includes(G)))},[l]),P=S.useCallback(()=>{m(()=>CG(l))},[l]),V=S.useCallback(()=>{m([])},[]);return{multiple:o,expandedState:c,selectedState:u,checkedState:f,anchorNode:v,initialize:C,toggleExpanded:_,collapse:$,expand:R,expandAllNodes:T,collapseAllNodes:A,setExpandedState:d,checkNode:L,uncheckNode:H,checkAllNodes:P,uncheckAllNodes:V,setCheckedState:m,toggleSelected:z,select:j,deselect:I,clearSelected:N,setSelectedState:p,hoveredNode:x,setHoveredNode:k,getCheckedNodes:()=>$3(l,f).result,isNodeChecked:B=>oMe(B,l,f),isNodeIndeterminate:B=>aMe(B,l,f)}}var RG={root:"m_f698e191",subtree:"m_75f3ecf",node:"m_f6970eb1",label:"m_dc283425"};function zG(e){return e.reduce((r,n)=>(r.push(n.value),n.children&&r.push(...zG(n.children)),r),[])}const sMe={expandOnClick:!0,allowRangeSelection:!0,expandOnSpace:!0},cMe=(e,{levelOffset:r})=>({root:{"--level-offset":Gs(r)}}),Ff=ot((e,r)=>{const n=Pe("Tree",sMe,e),{classNames:o,className:i,style:a,styles:l,unstyled:s,vars:c,data:d,expandOnClick:u,tree:p,renderNode:f,selectOnClick:m,clearSelectionOnOutsideClick:v,allowRangeSelection:w,expandOnSpace:x,levelOffset:k,checkOnSpace:C,attributes:_,...$}=n,R=_y(),T=p||R,A=kt({name:"Tree",classes:RG,props:n,className:i,style:a,classNames:o,styles:l,unstyled:s,attributes:_,vars:c,varsResolver:cMe}),z=hH(()=>v&&T.clearSelected()),j=$r(r,z),I=S.useMemo(()=>zG(d),[d]);S.useEffect(()=>{T.initialize(d)},[d]);const N=d.map((L,H)=>y.jsx(US,{node:L,getStyles:A,rootIndex:H,expandOnClick:u,selectOnClick:m,controller:T,renderNode:f,flatValues:I,allowRangeSelection:w,expandOnSpace:x,checkOnSpace:C},L.value));return y.jsx(Se,{component:"ul",ref:j,...A("root"),...$,role:"tree","aria-multiselectable":T.multiple,"data-tree-root":!0,children:N})});Ff.displayName="@mantine/core/Tree",Ff.classes=RG;const WS=S.createContext(null);function TG(){const e=S.useContext(WS);if(!e)throw new Error("useRootContainer must be used within a RootContainer");return e}function dMe(){return TG().ref}function uMe(){return TG().ref.current}const jG=S.createContext(null);function pMe(){const e=S.useContext(jG);return e===null&&console.warn("ReduceGraphicsMode is not provided"),e??!1}const[hMe,fMe]=na("PanningAtomSafeCtx is not provided");function gMe({id:e,className:r,reduceGraphics:n=!1,children:o}){const[i,a]=S.useState(!1),l=S.useRef(null),s=S.useRef(null);s.current||(s.current=Q$e(!1)),f7(()=>{a(!0)},[]),S.useEffect(()=>s.current?.subscribe(d=>{l.current?.setAttribute("data-likec4-diagram-panning",d?"true":"false")}),[]);const c=S.useMemo(()=>({id:e,ref:l}),[e,l]);return y.jsx(hMe,{value:s.current,children:y.jsx(jG.Provider,{value:n,children:y.jsx("div",{id:e,className:Ge("likec4-root",r),ref:l,...n&&{"data-likec4-reduced-graphics":!0},children:i&&!!c.ref.current&&y.jsx(WS.Provider,{value:c,children:o})})})})}const Sy=S.createContext(null),GS=S.createContext(null);function mMe(){return S.useContext(Sy)}function Fo(){const e=S.useContext(Sy);if(!e)throw new Error("LikeC4Model not found. Make sure you have LikeC4ModelProvider.");return e}function yMe(){const e=Fo(),[r,n]=S.useState(e.$data.specification);return S.useEffect(()=>{n(o=>tt(o,e.$data.specification)?o:e.$data.specification)},[e]),r}const AG=S.createContext({}),vMe=C5e,bMe=e=>{const r=e.color;if(GO(e))return` --colors-likec4-tag-bg: ${r}; - --colors-likec4-tag-bg-hover: color-mix(in srgb, ${r}, var(--colors-likec4-mix-color) 20%); - `;if(!tLe.includes(r))return"";let n="12";return["mint","grass","lime","yellow","amber"].includes(r)&&(n="dark-2"),` + --colors-likec4-tag-bg-hover: color-mix(in oklab, ${r}, var(--colors-likec4-mix-color) 20%); + `;if(!vMe.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 nLe(e,r){return!e||fp(e)?"":En(M9(e),pNe(([n,o])=>[`:is(${r} [data-likec4-tag="${n}"]) {`,rLe(o),"}"]),qq(` -`))}function oLe({children:e,rootSelector:r}){const n=eLe().tags,o=nLe(n,r);return y.jsxs(qG.Provider,{value:n,children:[o!==""&&y.jsx(aLe,{stylesheet:o}),e]})}const aLe=E.memo(({stylesheet:e})=>{const r=yp()?.();return y.jsx("style",{"data-likec4-tags":!0,type:"text/css",dangerouslySetInnerHTML:{__html:e},nonce:r})});function iLe(e){return E.useContext(qG)[e]??{color:"tomato"}}function UG(){return fi().replace("mantine-","likec4-")}var sLe="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,_whenSelectable,_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",lLe=sLe.split(","),cLe="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",uLe=cLe.split(",").concat(lLe),dLe=new Map(uLe.map(e=>[e,!0])),pLe=/&|@/,WG=go(e=>dLe.has(e)||e.startsWith("--")||pLe.test(e));const hLe=(e,r)=>!r.includes(e)&&!WG(e),fLe=(e,r)=>e.__shouldForwardProps__&&r?n=>e.__shouldForwardProps__(n)&&r(n):r,mLe=(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},gLe=e=>typeof e=="string"?e:e?.displayName||e?.name||"Component";function SS(e,r={},n={}){const o=r.__cva__||r.__recipe__?r:o0(r),a=n.shouldForwardProp||hLe,i=f=>n.forwardProps?.includes(f)?!0:a(f,o.variantKeys),s=Object.assign(n.dataAttr&&r.__name__?{"data-recipe":r.__name__}:{},n.defaultProps),l=mLe(e.__cva__,o),c=fLe(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({},s,k),[k]),[_,T,A,R,D]=E.useMemo(()=>oo(C,LE.keys,c,l.variantKeys,WG),[C]);function N(){const{css:F,...L}=R,U=l.__getCompoundVariantCss__?.(A);return et(l(A,!1),be(U,L,F),C.className)}function M(){const{css:F,...L}=R,U=l.raw(A);return et(be(U,L,F),C.className)}const O=()=>{if(x){const{css:F,...L}=R;return et(be(L,F),C.className)}return r.__recipe__?N():M()};return E.createElement(b,{ref:g,...T,...D,...LE(_),className:O()},w??C.children)}),h=gLe(u);return d.displayName=`styled.${h}`,d.__cva__=l,d.__base__=u,d.__shouldForwardProps__=i,d}function yLe(){const e=new Map;return new Proxy(SS,{apply(r,n,o){return SS(...o)},get(r,n){return e.has(n)||e.set(n,SS(n)),e.get(n)}})}const Iu=yLe(),YG={transform(e){return e}},bLe=(e={})=>{const r=n0(YG,e);return YG.transform(r,r0)},zr=E.forwardRef(function(e,r){const[n,o]=oo(e,[]),a=bLe(n),i={ref:r,...a,...o};return E.createElement(Iu.div,i)}),GG={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"}},CS=(e={})=>{const r=n0(GG,e);return GG.transform(r,r0)},Z0=e=>be(CS(e));Z0.raw=CS;const Ap=E.forwardRef(function(e,r){const[n,o]=oo(e,["justify","gap"]),a=CS(n),i={ref:r,...a,...o};return E.createElement(Iu.div,i)}),XG={transform(e){const{justify:r,gap:n,...o}=e;return{display:"flex",alignItems:"center",justifyContent:r,gap:n,flexDirection:"row",...o}},defaultValues:{gap:"sm"}},TS=(e={})=>{const r=n0(XG,e);return XG.transform(r,r0)},Zn=e=>be(TS(e));Zn.raw=TS;const sn=E.forwardRef(function(e,r){const[n,o]=oo(e,["justify","gap"]),a=TS(n),i={ref:r,...a,...o};return E.createElement(Iu.div,i)}),KG={transform(e){return{position:"relative",maxWidth:"8xl",mx:"auto",px:{base:"4",md:"6",lg:"8"},...e}}},ZG=(e={})=>{const r=n0(KG,e);return KG.transform(r,r0)},QG=e=>be(ZG(e));QG.raw=ZG;const JG={transform(e,{map:r,isCssUnit:n,isCssVar:o}){const{inline:a,block:i,...s}=e,l=c=>n(c)||o(c)?c:`token(spacing.${c}, ${c})`;return{"--bleed-x":r(a,l),"--bleed-y":r(i,l),marginInline:"calc(var(--bleed-x, 0) * -1)",marginBlock:"calc(var(--bleed-y, 0) * -1)",...s}},defaultValues:{inline:"0",block:"0"}},eX=(e={})=>{const r=n0(JG,e);return JG.transform(r,r0)},tX=e=>be(eX(e));tX.raw=eX;const vLe=E.createContext(null),AS={didCatch:!1,error:null};let RS=class extends E.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=AS}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]))}const wLe=[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]],Rp=Nt("outline","x","X",wLe);function NS({error:e,resetErrorBoundary:r}){const n=e instanceof Error?e.message:"Unknown error",o=E.useRef(null);return E.useEffect(()=>{o.current?.showModal()},[]),y.jsx("dialog",{ref:o,className:be({margin:"0",padding:"0",position:"fixed",top:"10",left:"10",width:"[calc(100vw - ({spacing.10} * 2))]",height:"max-content",maxHeight:"[calc(100vh - ({spacing.10} * 3))]",background:"likec4.overlay.body",rounded:"sm",borderWidth:3,borderColor:"likec4.overlay.border",shadow:"xl",outline:"none",_backdrop:{cursor:"zoom-out",backdropFilter:"blur(18px)",bg:"[color-mix(in oklab, {colors.likec4.overlay.backdrop} 60%, transparent)]"}}),onClick:a=>{if(a.stopPropagation(),a.target?.nodeName?.toUpperCase()==="DIALOG"){o.current?.close();return}},onClose:a=>{a.stopPropagation(),r()},children:y.jsxs(sn,{p:"xl",gap:"lg",alignItems:"flex-start",flexWrap:"nowrap",children:[y.jsx(Ba,{size:"md",radius:"xl",color:"red",children:y.jsx(Rp,{style:{width:20,height:20}})}),y.jsxs(Ap,{flex:"1",children:[y.jsx(ft,{fz:"md",children:"Oops, something went wrong"}),y.jsx(pa,{maw:"100%",mah:400,type:"auto",children:y.jsx(ft,{fz:"md",c:"red",style:{whiteSpace:"pre-wrap",userSelect:"all"},children:n})}),y.jsxs(sn,{gap:"md",mt:"md",children:[y.jsx(Kn,{size:"sm",variant:"default",onClick:()=>r(),children:"Reset"}),y.jsx(ft,{fz:"sm",c:"dimmed",children:"See console for more details and report the issue if it persists."})]})]})]})})}function rX(e){return y.jsx(RS,{FallbackComponent:NS,onError:(r,n)=>{console.error(r,n)},...e})}const nX={enableReadOnly:!0,enableCompareWithLatest:!1,enableControls:!1,enableDynamicViewWalkthrough:!1,enableElementDetails:!1,enableFocusMode:!1,enableNavigateTo:!1,enableNotations:!1,enableRelationshipBrowser:!1,enableRelationshipDetails:!1,enableSearch:!1,enableNavigationButtons:!1,enableFitView:!1,enableVscode:!1,enableElementTags:!1},DS=E.createContext(nX);function Np({children:e,features:r,overrides:n}){const o=E.useContext(DS),[a,i]=E.useState(o);return E.useEffect(()=>{i(s=>{const l={...o,...r,...n};return an(s,l)?s:l})},[o,r,n]),y.jsx(DS.Provider,{value:a,children:e})}const kLe={enableControls:!1,enableReadOnly:!0,enableCompareWithLatest:!1};Np.Overlays=({children:e})=>y.jsx(Np,{overrides:kLe,children:e});function _r(){return E.useContext(DS)}function _Le({feature:e,children:r,and:n=!0}){return _r()[`enable${e}`]===!0&&n?y.jsx(y.Fragment,{children:r}):null}function ELe(){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 SLe(){const e=ELe();if(e.__xstate__)return e.__xstate__}const CLe=e=>{if(typeof window>"u")return;const r=SLe();r&&r.register(e)};class oX{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 aX=".",TLe="",iX="",ALe="#",RLe="*",sX="xstate.init",NLe="xstate.error",Q0="xstate.stop";function DLe(e,r){return{type:`xstate.after.${e}.${r}`}}function $S(e,r){return{type:`xstate.done.state.${e}`,output:r}}function $Le(e,r){return{type:`xstate.done.actor.${e}`,output:r,actorId:e}}function lX(e,r){return{type:`xstate.error.actor.${e}`,error:r,actorId:e}}function cX(e){return{type:sX,input:e}}function xl(e){setTimeout(()=>{throw e})}const MLe=typeof Symbol=="function"&&Symbol.observable||"@@observable";function uX(e,r){const n=dX(e),o=dX(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?uX(n[a],o[a]):!1)}function MS(e){if(fX(e))return e;const r=[];let n="";for(let o=0;otypeof r>"u"||typeof r=="string"?{target:r}:r)}function mX(e){if(!(e===void 0||e===TLe))return bc(e)}function ow(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 gX(e,r){return`${r}.${e}`}function zS(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 yX(e,r){return`${e.sessionId}.${r}`}let ILe=0;function OLe(e,r){const n=new Map,o=new Map,a=new WeakMap,i=new Set,s={},{clock:l,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=yX(f,w);h._snapshot._scheduledEvents[C]=k;const _=l.setTimeout(()=>{delete s[C],delete h._snapshot._scheduledEvents[C],h._relay(f,g,b)},x);s[C]=_},cancel:(f,g)=>{const b=yX(f,g),x=s[b];delete s[b],delete h._snapshot._scheduledEvents[b],x!==void 0&&l.clearTimeout(x)},cancelAll:f=>{for(const g in h._snapshot._scheduledEvents){const b=h._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))},h={_snapshot:{_scheduledEvents:(r?.snapshot&&r.snapshot.scheduler)??{}},_bookId:()=>`x:${ILe++}`,_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),getAll:()=>Object.fromEntries(o.entries()),_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=ow(f);return i.add(g),{unsubscribe(){i.delete(g)}}},_sendInspectionEvent:d,_relay:(f,g,b)=>{h._sendInspectionEvent({type:"@xstate.event",sourceRef:f,actorRef:g,event:b}),g._send(b)},scheduler:u,getSnapshot:()=>({_scheduledEvents:{...h._snapshot._scheduledEvents}}),start:()=>{const f=h._snapshot._scheduledEvents;h._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:l,_logger:c};return h}let IS=!1;const OS=1;let ha=(function(e){return e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped",e})({});const jLe={clock:{setTimeout:(e,r)=>setTimeout(e,r),clearTimeout:e=>clearTimeout(e)},logger:console.log.bind(console),devTools:!1};class LLe{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 oX(this._process.bind(this)),this.observers=new Set,this.eventListeners=new Map,this.logger=void 0,this._processingStatus=ha.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={...jLe,...n},{clock:a,logger:i,parent:s,syncSnapshot:l,id:c,systemId:u,inspect:d}=o;this.system=s?s.system:OLe(this,{clock:a,logger:i}),d&&!s&&this.system.inspect(ow(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=s,this._syncSnapshot=l,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:h=>{this._deferred.push(h)},system:this.system,stopChild:h=>{if(h._parent!==this)throw new Error(`Cannot stop child actor ${h.id} of ${this.id} because it is not a child`);h._stop()},emit:h=>{const f=this.eventListeners.get(h.type),g=this.eventListeners.get("*");if(!f&&!g)return;const b=[...f?f.values():[],...g?g.values():[]];for(const x of b)try{x(h)}catch(w){xl(w)}},actionExecutor:h=>{const f=()=>{if(this._actorScope.system._sendInspectionEvent({type:"@xstate.action",actorRef:this,action:{type:h.type,params:h.params}}),!h.exec)return;const g=IS;try{IS=!0,h.exec(h.info,h.params)}finally{IS=g}};this._processingStatus===ha.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){xl(i)}break;case"done":for(const a of this.observers)try{a.next?.(r)}catch(i){xl(i)}this._stopProcedure(),this._complete(),this._doneEvent=$Le(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=ow(r,n,o);if(this._processingStatus!==ha.Stopped)this.observers.add(a);else switch(this._snapshot.status){case"done":try{a.complete?.()}catch(i){xl(i)}break;case"error":{const i=this._snapshot.error;if(!a.error)xl(i);else try{a.error(i)}catch(s){xl(s)}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===ha.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=ha.Running;const r=cX(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===Q0&&(this._stopProcedure(),this._complete())}_stop(){return this._processingStatus===ha.Stopped?this:(this.mailbox.clear(),this._processingStatus===ha.NotStarted?(this._processingStatus=ha.Stopped,this):(this.mailbox.enqueue({type:Q0}),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){xl(n)}this.observers.clear()}_reportError(r){if(!this.observers.size){this._parent||xl(r);return}let n=!1;for(const o of this.observers){const a=o.error;n||=!a;try{a?.(r)}catch(i){xl(i)}}this.observers.clear(),n&&xl(r)}_error(r){this._stopProcedure(),this._reportError(r),this._parent&&this.system._relay(this,this._parent,lX(this.id,r))}_stopProcedure(){return this._processingStatus!==ha.Running?this:(this.system.scheduler.cancelAll(this),this.mailbox.clear(),this.mailbox=new oX(this._process.bind(this)),this._processingStatus=ha.Stopped,this.system._unregister(this),this)}_send(r){this._processingStatus!==ha.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:CLe)(this)}toJSON(){return{xstate$$type:OS,id:this.id}}getPersistedSnapshot(r){return this.logic.getPersistedSnapshot(this._snapshot,r)}[MLe](){return this}getSnapshot(){return this._snapshot}}function mm(e,...[r]){return new LLe(e,r)}function BLe(e,r,n,o,{sendId:a}){const i=typeof a=="function"?a(n,o):a;return[r,{sendId:i},void 0]}function FLe(e,r){e.defer(()=>{e.system.scheduler.cancel(e.self,r.sendId)})}function wi(e){function r(n,o){}return r.type="xstate.cancel",r.sendId=e,r.resolve=BLe,r.execute=FLe,r}function HLe(e,r,n,o,{id:a,systemId:i,src:s,input:l,syncSnapshot:c}){const u=typeof s=="string"?zS(r.machine,s):s,d=typeof a=="function"?a(n):a;let h,f;return u&&(f=typeof l=="function"?l({context:r.context,event:n.event,self:e.self}):l,h=mm(u,{id:d,src:s,parent:e.self,syncSnapshot:c,systemId:i,input:f})),[Mp(r,{children:{...r.children,[d]:h}}),{id:a,systemId:i,actorRef:h,src:s,input:f},void 0]}function VLe(e,{actorRef:r}){r&&e.defer(()=>{r._processingStatus!==ha.Stopped&&r.start()})}function aw(...[e,{id:r,systemId:n,input:o,syncSnapshot:a=!1}={}]){function i(s,l){}return i.type="xstate.spawnChild",i.id=r,i.systemId=n,i.src=e,i.input=o,i.syncSnapshot=a,i.resolve=HLe,i.execute=VLe,i}function qLe(e,r,n,o,{actorRef:a}){const i=typeof a=="function"?a(n,o):a,s=typeof i=="string"?r.children[i]:i;let l=r.children;return s&&(l={...l},delete l[s.id]),[Mp(r,{children:l}),s,void 0]}function ULe(e,r){if(r){if(e.system._unregister(r),r._processingStatus!==ha.Running){e.stopChild(r);return}e.defer(()=>{e.stopChild(r)})}}function J0(e){function r(n,o){}return r.type="xstate.stopChild",r.actorRef=e,r.resolve=qLe,r.execute=ULe,r}function iw(e,r,n,o){const{machine:a}=o,i=typeof e=="function",s=i?e:a.implementations.guards[typeof e=="string"?e:e.type];if(!i&&!s)throw new Error(`Guard '${typeof e=="string"?e:e.type}' is not implemented.'.`);if(typeof s!="function")return iw(s,r,n,o);const l={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 s?s.check(o,l,s):s(l,c)}const jS=e=>e.type==="atomic"||e.type==="final";function gm(e){return Object.values(e.states).filter(r=>r.type!=="history")}function ey(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 sw(e){const r=new Set(e),n=vX(r);for(const o of r)if(o.type==="compound"&&(!n.get(o)||!n.get(o).length))kX(o).forEach(a=>r.add(a));else if(o.type==="parallel"){for(const a of gm(o))if(a.type!=="history"&&!r.has(a)){const i=kX(a);for(const s of i)r.add(s)}}for(const o of r){let a=o.parent;for(;a;)r.add(a),a=a.parent}return r}function bX(e,r){const n=r.get(e);if(!n)return{};if(e.type==="compound"){const a=n[0];if(a){if(jS(a))return a.key}else return{}}const o={};for(const a of n)o[a.key]=bX(a,r);return o}function vX(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 xX(e,r){const n=sw(r);return bX(e,vX(n))}function LS(e,r){return r.type==="compound"?gm(r).some(n=>n.type==="final"&&e.has(n)):r.type==="parallel"?gm(r).every(n=>LS(e,n)):r.type==="final"}const lw=e=>e[0]===ALe;function WLe(e,r){return e.transitions.get(r)||[...e.transitions.keys()].filter(n=>{if(n===RLe)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 YLe(e){const r=e.config.after;if(!r)return[];const n=o=>{const a=DLe(o,e.id),i=a.type;return e.entry.push(fa(a,{id:i,delay:o})),e.exit.push(wi(i)),i};return Object.keys(r).flatMap(o=>{const a=r[o],i=typeof a=="string"?{target:a}:a,s=Number.isNaN(+o)?o:+o,l=n(s);return bc(i).map(c=>({...c,event:l,delay:s}))}).map(o=>{const{delay:a}=o;return{...Dp(e,o.event,o),delay:a}})}function Dp(e,r,n){const o=mX(n.target),a=n.reenter??!1,i=KLe(e,o),s={...n,actions:bc(n.actions),guard:n.guard,target:i,source:e,reenter:a,eventType:r,toJSON:()=>({...s,source:`#${e.id}`,target:i?i.map(l=>`#${l.id}`):void 0})};return s}function GLe(e){const r=new Map;if(e.config.on)for(const n of Object.keys(e.config.on)){if(n===iX)throw new Error('Null events ("") cannot be specified as a transition key. Use `always: { ... }` instead.');const o=e.config.on[n];r.set(n,fm(o).map(a=>Dp(e,n,a)))}if(e.config.onDone){const n=`xstate.done.state.${e.id}`;r.set(n,fm(e.config.onDone).map(o=>Dp(e,n,o)))}for(const n of e.invoke){if(n.onDone){const o=`xstate.done.actor.${n.id}`;r.set(o,fm(n.onDone).map(a=>Dp(e,o,a)))}if(n.onError){const o=`xstate.error.actor.${n.id}`;r.set(o,fm(n.onError).map(a=>Dp(e,o,a)))}if(n.onSnapshot){const o=`xstate.snapshot.${n.id}`;r.set(o,fm(n.onSnapshot).map(a=>Dp(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 XLe(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"?[]:bc(r.actions),eventType:null,reenter:!1,target:n?[n]:[],toJSON:()=>({...o,source:`#${e.id}`,target:n?[`#${n.id}`]:[]})};return o}function KLe(e,r){if(r!==void 0)return r.map(n=>{if(typeof n!="string")return n;if(lw(n))return e.machine.getStateNodeById(n);const o=n[0]===aX;if(o&&!e.parent)return cw(e,n.slice(1));const a=o?e.key+n:n;if(e.parent)try{return cw(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 wX(e){const r=mX(e.config.target);return r?{target:r.map(n=>typeof n=="string"?cw(e.parent,n):n)}:e.parent.initial}function $p(e){return e.type==="history"}function kX(e){const r=_X(e);for(const n of r)for(const o of ey(n,e))r.add(o);return r}function _X(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 gm(o))n(a)}}return n(e),r}function ym(e,r){if(lw(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 cw(e,r){if(typeof r=="string"&&lw(r))try{return e.machine.getStateNodeById(r)}catch{}const n=MS(r).slice();let o=e;for(;n.length;){const a=n.shift();if(!a.length)break;o=ym(o,a)}return o}function uw(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=>ym(e,a)).filter(Boolean);return[e.machine.root,e].concat(o,n.reduce((a,i)=>{const s=ym(e,i);if(!s)return a;const l=uw(s,r[i]);return a.concat(l)},[]))}function ZLe(e,r,n,o){const a=ym(e,r).next(n,o);return!a||!a.length?e.next(n,o):a}function QLe(e,r,n,o){const a=Object.keys(r),i=ym(e,a[0]),s=BS(i,r[a[0]],n,o);return!s||!s.length?e.next(n,o):s}function JLe(e,r,n,o){const a=[];for(const i of Object.keys(r)){const s=r[i];if(!s)continue;const l=ym(e,i),c=BS(l,s,n,o);c&&a.push(...c)}return a.length?a:e.next(n,o)}function BS(e,r,n,o){return typeof r=="string"?ZLe(e,r,n,o):Object.keys(r).length===1?QLe(e,r,n,o):JLe(e,r,n,o)}function eBe(e){return Object.keys(e.states).map(r=>e.states[r]).filter(r=>r.type==="history")}function Ou(e,r){let n=e;for(;n.parent&&n.parent!==r;)n=n.parent;return n.parent===r}function tBe(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 EX(e,r,n){const o=new Set;for(const a of e){let i=!1;const s=new Set;for(const l of o)if(tBe(HS([a],r,n),HS([l],r,n)))if(Ou(a.source,l.source))s.add(l);else{i=!0;break}if(!i){for(const l of s)o.delete(l);o.add(a)}}return Array.from(o)}function rBe(e){const[r,...n]=e;for(const o of ey(r,void 0))if(n.every(a=>Ou(a,o)))return o}function FS(e,r){if(!e.target)return[];const n=new Set;for(const o of e.target)if($p(o))if(r[o.id])for(const a of r[o.id])n.add(a);else for(const a of FS(wX(o),r))n.add(a);else n.add(o);return[...n]}function SX(e,r){const n=FS(e,r);if(!n)return;if(!e.reenter&&n.every(a=>a===e.source||Ou(a,e.source)))return e.source;const o=rBe(n.concat(e.source));if(o)return o;if(!e.reenter)return e.source.machine.root}function HS(e,r,n){const o=new Set;for(const a of e)if(a.target?.length){const i=SX(a,n);a.reenter&&a.source===i&&o.add(i);for(const s of r)Ou(s,i)&&o.add(s)}return[...o]}function nBe(e,r){if(e.length!==r.size)return!1;for(const n of e)if(!r.has(n))return!1;return!0}function VS(e,r,n,o,a,i){if(!e.length)return r;const s=new Set(r._nodes);let l=r.historyValue;const c=EX(e,s,l);let u=r;a||([u,l]=sBe(u,o,n,c,s,l,i,n.actionExecutor)),u=vm(u,o,n,c.flatMap(h=>h.actions),i,void 0),u=aBe(u,o,n,c,s,i,l,a);const d=[...s];u.status==="done"&&(u=vm(u,o,n,d.sort((h,f)=>f.order-h.order).flatMap(h=>h.exit),i,void 0));try{return l===r.historyValue&&nBe(r._nodes,s)?u:Mp(u,{_nodes:d,historyValue:l})}catch(h){throw h}}function oBe(e,r,n,o,a){if(o.output===void 0)return;const i=$S(a.id,a.output!==void 0&&a.parent?PS(a.output,e.context,r,n.self):void 0);return PS(o.output,e.context,i,n.self)}function aBe(e,r,n,o,a,i,s,l){let c=e;const u=new Set,d=new Set;iBe(o,s,d,u),l&&d.add(e.machine.root);const h=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(aw(b.src,{...b,syncSnapshot:!!b.onSnapshot}));if(d.has(f)){const b=f.initial.actions;g.push(...b)}if(c=vm(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($S(b.id,f.output!==void 0?PS(f.output,c.context,r,n.self):void 0));x?.type==="parallel"&&!h.has(x)&&LS(a,x);)h.add(x),i.push($S(x.id)),w=x,x=x.parent;if(x)continue;c=Mp(c,{status:"done",output:oBe(c,r,n,c.machine.root,w)})}}return c}function iBe(e,r,n,o){for(const a of e){const i=SX(a,r);for(const l of a.target||[])!$p(l)&&(a.source!==l||a.source!==i||a.reenter)&&(o.add(l),n.add(l)),bm(l,r,n,o);const s=FS(a,r);for(const l of s){const c=ey(l,i);i?.type==="parallel"&&c.push(i),CX(o,r,n,c,!a.source.parent&&a.reenter?void 0:i)}}}function bm(e,r,n,o){if($p(e))if(r[e.id]){const a=r[e.id];for(const i of a)o.add(i),bm(i,r,n,o);for(const i of a)qS(i,e.parent,o,r,n)}else{const a=wX(e);for(const i of a.target)o.add(i),a===e.parent?.initial&&n.add(e.parent),bm(i,r,n,o);for(const i of a.target)qS(i,e.parent,o,r,n)}else if(e.type==="compound"){const[a]=e.initial.target;$p(a)||(o.add(a),n.add(a)),bm(a,r,n,o),qS(a,e,o,r,n)}else if(e.type==="parallel")for(const a of gm(e).filter(i=>!$p(i)))[...o].some(i=>Ou(i,a))||($p(a)||(o.add(a),n.add(a)),bm(a,r,n,o))}function CX(e,r,n,o,a){for(const i of o)if((!a||Ou(i,a))&&e.add(i),i.type==="parallel")for(const s of gm(i).filter(l=>!$p(l)))[...e].some(l=>Ou(l,s))||(e.add(s),bm(s,r,n,e))}function qS(e,r,n,o,a){CX(n,o,a,ey(e,r))}function sBe(e,r,n,o,a,i,s,l){let c=e;const u=HS(o,a,i);u.sort((h,f)=>f.order-h.order);let d;for(const h of u)for(const f of eBe(h)){let g;f.history==="deep"?g=b=>jS(b)&&Ou(b,h):g=b=>b.parent===h,d??={...i},d[f.id]=Array.from(a).filter(g)}for(const h of u)c=vm(c,r,n,[...h.exit,...h.invoke.map(f=>J0(f.id))],s,void 0),a.delete(h);return[c,d||i]}function lBe(e,r){return e.implementations.actions[r]}function TX(e,r,n,o,a,i){const{machine:s}=e;let l=e;for(const c of o){const u=typeof c=="function",d=u?c:lBe(s,typeof c=="string"?c:c.type),h={context:l.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:l.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:h,params:f,exec:d});continue}const g=d,[b,x,w]=g.resolve(n,l,h,f,d,a);l=b,"retryResolve"in g&&i?.push([g,x]),"execute"in g&&n.actionExecutor({type:g.type,info:h,params:x,exec:g.execute.bind(null,n,x)}),w&&(l=TX(l,r,n,w,a,i))}return l}function vm(e,r,n,o,a,i){const s=i?[]:void 0,l=TX(e,r,n,o,{internalQueue:a,deferredActorIds:i},s);return s?.forEach(([c,u])=>{c.retryResolve(n,l,u)}),l}function US(e,r,n,o){let a=e;const i=[];function s(u,d,h){n.system._sendInspectionEvent({type:"@xstate.microstep",actorRef:n.self,event:d,snapshot:u,_transitions:h}),i.push(u)}if(r.type===Q0)return a=Mp(AX(a,r,n),{status:"stopped"}),s(a,r,[]),{snapshot:a,microstates:i};let l=r;if(l.type!==sX){const u=l,d=zLe(u),h=RX(u,a);if(d&&!h.length)return a=Mp(e,{status:"error",error:u.error}),s(a,u,[]),{snapshot:a,microstates:i};a=VS(h,e,n,l,!1,o),s(a,u,h)}let c=!0;for(;a.status==="active";){let u=c?cBe(a,l):[];const d=u.length?a:void 0;if(!u.length){if(!o.length)break;l=o.shift(),u=RX(l,a)}a=VS(u,a,n,l,!1,o),c=a!==d,s(a,l,u)}return a.status!=="active"&&AX(a,l,n),{snapshot:a,microstates:i}}function AX(e,r,n){return vm(e,r,n,Object.values(e.children).map(o=>J0(o)),[],void 0)}function RX(e,r){return r.machine.getTransitionData(r,e)}function cBe(e,r){const n=new Set,o=e._nodes.filter(jS);for(const a of o)e:for(const i of[a].concat(ey(a,void 0)))if(i.always){for(const s of i.always)if(s.guard===void 0||iw(s.guard,e.context,r,e)){n.add(s);break e}}return EX(Array.from(n),new Set(e._nodes),e.historyValue)}function uBe(e,r){const n=sw(uw(e,r));return xX(e,[...n])}function dBe(e){return!!e&&typeof e=="object"&&"machine"in e&&"value"in e}const pBe=function(e){return uX(e,this.value)},hBe=function(e){return this.tags.has(e)},fBe=function(e){const r=this.machine.getTransitionData(this,e);return!!r?.length&&r.some(n=>n.target!==void 0||n.actions.length)},mBe=function(){const{_nodes:e,tags:r,machine:n,getMeta:o,toJSON:a,can:i,hasTag:s,matches:l,...c}=this;return{...c,tags:Array.from(r)}},gBe=function(){return this._nodes.reduce((e,r)=>(r.meta!==void 0&&(e[r.id]=r.meta),e),{})};function dw(e,r){return{status:e.status,output:e.output,error:e.error,machine:r,context:e.context,_nodes:e._nodes,value:xX(r.root,e._nodes),tags:new Set(e._nodes.flatMap(n=>n.tags)),children:e.children,historyValue:e.historyValue||{},matches:pBe,hasTag:hBe,can:fBe,getMeta:gBe,toJSON:mBe}}function Mp(e,r={}){return dw({...e,...r},e.machine)}function yBe(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 bBe(e,r){const{_nodes:n,tags:o,machine:a,children:i,context:s,can:l,hasTag:c,matches:u,getMeta:d,toJSON:h,...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:NX(s),children:g,historyValue:yBe(f.historyValue)}}function NX(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:OS,id:o.id};else{const a=NX(o);a!==o&&(r??=Array.isArray(e)?e.slice():{...e},r[n]=a)}}return r??e}function vBe(e,r,n,o,{event:a,id:i,delay:s},{internalQueue:l}){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 s=="string"){const h=c&&c[s];d=typeof h=="function"?h(n,o):h}else d=typeof s=="function"?s(n,o):s;return typeof d!="number"&&l.push(u),[r,{event:u,id:i,delay:d},void 0]}function xBe(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 fa(e,r){function n(o,a){}return n.type="xstate.raise",n.event=e,n.id=r?.id,n.delay=r?.delay,n.resolve=vBe,n.execute=xBe,n}const DX=new WeakMap;function WS(e){return{config:e,start:(r,n)=>{const{self:o,system:a,emit:i}=n,s={receivers:void 0,dispose:void 0};DX.set(o,s),s.dispose=e({input:r.input,system:a,self:o,sendBack:l=>{o.getSnapshot().status!=="stopped"&&o._parent&&a._relay(o,o._parent,l)},receive:l=>{s.receivers??=new Set,s.receivers.add(l)},emit:i})},transition:(r,n,o)=>{const a=DX.get(o.self);return n.type===Q0?(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 $X="xstate.promise.resolve",MX="xstate.promise.reject",pw=new WeakMap;function wBe(e){return{config:e,transition:(r,n,o)=>{if(r.status!=="active")return r;switch(n.type){case $X:{const a=n.data;return{...r,status:"done",output:a,input:void 0}}case MX:return{...r,status:"error",error:n.data,input:void 0};case Q0:return pw.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;pw.set(n,i),Promise.resolve(e({input:r.input,system:o,self:n,signal:i.signal,emit:a})).then(s=>{n.getSnapshot().status==="active"&&(pw.delete(n),o._relay(n,n,{type:$X,data:s}))},s=>{n.getSnapshot().status==="active"&&(pw.delete(n),o._relay(n,n,{type:MX,data:s}))})},getInitialSnapshot:(r,n)=>({status:"active",output:void 0,error:void 0,input:n}),getPersistedSnapshot:r=>r,restoreSnapshot:r=>r}}function kBe(e,{machine:r,context:n},o,a){const i=(s,l)=>{if(typeof s=="string"){const c=zS(r,s);if(!c)throw new Error(`Actor logic '${s}' not implemented in machine '${r.id}'`);const u=mm(c,{id:l?.id,parent:e.self,syncSnapshot:l?.syncSnapshot,input:typeof l?.input=="function"?l.input({context:n,event:o,self:e.self}):l?.input,src:s,systemId:l?.systemId});return a[u.id]=u,u}else return mm(s,{id:l?.id,parent:e.self,syncSnapshot:l?.syncSnapshot,input:l?.input,src:s,systemId:l?.systemId})};return(s,l)=>{const c=i(s,l);return a[c.id]=c,e.defer(()=>{c._processingStatus!==ha.Stopped&&c.start()}),c}}function _Be(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={},s={context:r.context,event:n.event,spawn:kBe(e,r,n.event,i),self:e.self,system:e.system};let l={};if(typeof a=="function")l=a(s,o);else for(const u of Object.keys(a)){const d=a[u];l[u]=typeof d=="function"?d(s,o):d}const c=Object.assign({},r.context,l);return[Mp(r,{context:c,children:Object.keys(i).length?{...r.children,...i}:r.children}),void 0,void 0]}function Zt(e){function r(n,o){}return r.type="xstate.assign",r.assignment=e,r.resolve=_Be,r}const PX=new WeakMap;function xm(e,r,n){let o=PX.get(e);return o?r in o||(o[r]=n()):(o={[r]:n()},PX.set(e,o)),o[r]}const EBe={},ty=e=>typeof e=="string"?{type:e}:typeof e=="function"?"resolve"in e?{type:e.type}:{type:e.name}:e;class hw{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(aX),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?pX(this.config.states,(o,a)=>new hw(o,{_parent:this,_key:a,_machine:this.machine})):EBe,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=bc(this.config.entry).slice(),this.exit=bc(this.config.exit).slice(),this.meta=this.config.meta,this.output=this.type==="final"||!this.parent?this.config.output:void 0,this.tags=bc(r.tags).slice()}_initialize(){this.transitions=GLe(this),this.config.always&&(this.always=fm(this.config.always).map(r=>Dp(this,iX,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(ty),eventType:null,reenter:!1,toJSON:()=>({target:this.initial.target.map(r=>`#${r.id}`),source:`#${this.id}`,actions:this.initial.actions.map(ty),eventType:null})}:void 0,history:this.history,states:pX(this.states,r=>r.definition),on:this.on,transitions:[...this.transitions.values()].flat().map(r=>({...r,actions:r.actions.map(ty)})),entry:this.entry.map(ty),exit:this.exit.map(ty),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 xm(this,"invoke",()=>bc(this.config.invoke).map((r,n)=>{const{src:o,systemId:a}=r,i=r.id??gX(this.id,n),s=typeof o=="string"?o:`xstate.invoke.${gX(this.id,n)}`;return{...r,src:s,id:i,systemId:a,toJSON(){const{onDone:l,onError:c,...u}=r;return{...u,type:"xstate.invoke",src:s,id:i}}}}))}get on(){return xm(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 xm(this,"delayedTransitions",()=>YLe(this))}get initial(){return xm(this,"initial",()=>XLe(this,this.config.initial))}next(r,n){const o=n.type,a=[];let i;const s=xm(this,`candidates-${o}`,()=>WLe(this,o));for(const l of s){const{guard:c}=l,u=r.context;let d=!1;try{d=!c||iw(c,u,n,r)}catch(h){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}': -${h.message}`)}if(d){a.push(...l.actions),i=l;break}}return i?[i]:void 0}get events(){return xm(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 SBe="#";class YS{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 hw(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 YS(this.config,{actions:{...n,...r.actions},guards:{...o,...r.guards},actors:{...a,...r.actors},delays:{...i,...r.delays}})}resolveState(r){const n=uBe(this.root,r.value),o=sw(uw(this.root,n));return dw({_nodes:[...o],context:r.context||{},children:{},status:LS(o,this.root)?"done":r.status||"active",output:r.output,error:r.error,historyValue:r.historyValue},this)}transition(r,n,o){return US(r,n,o,[]).snapshot}microstep(r,n,o){return US(r,n,o,[]).microstates}getTransitionData(r,n){return BS(this.root,r.value,r,n)||[]}getPreInitialState(r,n,o){const{context:a}=this.config,i=dw({context:typeof a!="function"&&a?a:{},_nodes:[this.root],children:{},status:"active"},this);return typeof a=="function"?vm(i,n,r,[Zt(({spawn:s,event:l,self:c})=>a({spawn:s,input:l.input,self:c}))],o,void 0):i}getInitialSnapshot(r,n){const o=cX(n),a=[],i=this.getPreInitialState(r,o,a),s=VS([{target:[..._X(this.root)],source:this.root,reenter:!0,actions:[],eventType:null,toJSON:null}],i,r,o,!0,a),{snapshot:l}=US(s,o,r,a);return l}start(r){Object.values(r.children).forEach(n=>{n.getSnapshot().status==="active"&&n.start()})}getStateNodeById(r){const n=MS(r),o=n.slice(1),a=lw(n[0])?n[0].slice(SBe.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 cw(i,o)}get definition(){return this.root.definition}toJSON(){return this.definition}getPersistedSnapshot(r,n){return bBe(r,n)}restoreSnapshot(r,n){const o={},a=r.children;Object.keys(a).forEach(h=>{const f=a[h],g=f.snapshot,b=f.src,x=typeof b=="string"?zS(this,b):b;if(!x)return;const w=mm(x,{id:h,parent:n.self,syncSnapshot:f.syncSnapshot,snapshot:g,src:b,systemId:f.systemId});o[h]=w});function i(h,f){if(f instanceof hw)return f;try{return h.machine.getStateNodeById(f.id)}catch{}}function s(h,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(h,w);k&&(g[b]??=[],g[b].push(k))}}return g}const l=s(this.root,r.historyValue),c=dw({...r,children:o,_nodes:Array.from(sw(uw(this.root,r.value))),historyValue:l},this),u=new Set;function d(h,f){if(!u.has(h)){u.add(h);for(const g in h){const b=h[g];if(b&&typeof b=="object"){if("xstate$$type"in b&&b.xstate$$type===OS){h[g]=f[b.id];continue}d(b,f)}}}}return d(c.context,o),c}}function CBe(e,r,n,o,{event:a}){const i=typeof a=="function"?a(n,o):a;return[r,{event:i},void 0]}function TBe(e,{event:r}){e.defer(()=>e.emit(r))}function GS(e){function r(n,o){}return r.type="xstate.emit",r.event=e,r.resolve=CBe,r.execute=TBe,r}let XS=(function(e){return e.Parent="#_parent",e.Internal="#_internal",e})({});function ABe(e,r,n,o,{to:a,event:i,id:s,delay:l},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 h;if(typeof l=="string"){const b=u&&u[l];h=typeof b=="function"?b(n,o):b}else h=typeof l=="function"?l(n,o):l;const f=typeof a=="function"?a(n,o):a;let g;if(typeof f=="string"){if(f===XS.Parent?g=e.self._parent:f===XS.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:s,delay:h},void 0]}function RBe(e,r,n){typeof n.to=="string"&&(n.to=r.children[n.to])}function NBe(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===NLe?lX(e.self.id,o.data):o)})}function fw(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=ABe,o.retryResolve=RBe,o.execute=NBe,o}function DBe(e,r){return fw(XS.Parent,e,r)}function $Be(e,r,n,o,{collect:a}){const i=[],s=function(l){i.push(l)};return s.assign=(...l)=>{i.push(Zt(...l))},s.cancel=(...l)=>{i.push(wi(...l))},s.raise=(...l)=>{i.push(fa(...l))},s.sendTo=(...l)=>{i.push(fw(...l))},s.sendParent=(...l)=>{i.push(DBe(...l))},s.spawnChild=(...l)=>{i.push(aw(...l))},s.stopChild=(...l)=>{i.push(J0(...l))},s.emit=(...l)=>{i.push(GS(...l))},a({context:n.context,event:n.event,enqueue:s,check:l=>iw(l,r.context,n.event,r),self:e.self,system:e.system},o),[r,void 0,i]}function Pp(e){function r(n,o){}return r.type="xstate.enqueueActions",r.collect=e,r.resolve=$Be,r}function MBe(e,r,n,o,{value:a,label:i}){return[r,{value:typeof a=="function"?a(n,o):a,label:i},void 0]}function PBe({logger:e},{value:r,label:n}){n?e(n,r):e(r)}function zBe(e=({context:n,event:o})=>({context:n,event:o}),r){function n(o,a){}return n.type="xstate.log",n.value=e,n.label=r,n.resolve=MBe,n.execute=PBe,n}function Tt(e,r){const n=bc(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 IBe(e,r){return new YS(e,r)}function wl({schemas:e,actors:r,actions:n,guards:o,delays:a}){return{assign:Zt,sendTo:fw,raise:fa,log:zBe,cancel:wi,stopChild:J0,enqueueActions:Pp,emit:GS,spawnChild:aw,createStateConfig:i=>i,createAction:i=>i,createMachine:i=>IBe({...i,schemas:e},{actors:r,actions:n,guards:o,delays:a}),extend:i=>wl({schemas:e,actors:r,actions:{...n,...i.actions},guards:{...o,...i.guards},delays:{...a,...i.delays}})}}AV();const zX=(e,r)=>{r(e);const n=e.getSnapshot().children;n&&Object.values(n).forEach(o=>{zX(o,r)})};function OBe(e){const r=[];zX(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 jBe(e,...[r]){let[[n,o],a]=E.useState(()=>{const i=mm(e,r);return[e.config,i]});if(e.config!==n){const i=mm(e,{...r,snapshot:o.getPersistedSnapshot({__unsafeAllowInlineActors:!0})});a([e.config,i]),o=i}return mOe(()=>{o.logic.implementations=e.implementations}),o}function KS(e,...[r,n]){const o=jBe(e,r);return E.useEffect(()=>{if(!n)return;const a=o.subscribe(ow(n));return()=>{a.unsubscribe()}},[n]),E.useEffect(()=>(o.start(),()=>{OBe(o)}),[o]),o}function LBe(e,r){return e===r}function fn(e,r,n=LBe){const o=E.useCallback(i=>{if(!e)return()=>{};const{unsubscribe:s}=e.subscribe(i);return s},[e]),a=E.useCallback(()=>e?.getSnapshot(),[e]);return DV.useSyncExternalStoreWithSelector(o,a,a,r,n)}const mw=E.createContext(null);mw.displayName="DiagramActorSafeContext";const BBe=mw.Provider;function zp(){const e=E.useContext(mw);if(e===null)throw new Error("DiagramActorRef is not provided");return e.actor}function Qt(){const e=E.useContext(mw);if(e===null)throw new Error("DiagramActorRef is not provided");return e}function ZS(e,r=an){const n=zp();return fn(n,e,r)}function vs(e,r=an,n){const o=zp(),a=E.useCallback(i=>e(i.context),n??[]);return fn(o,a,r)}function Fa(e,r){const n=zp(),o=E.useRef(r);o.current=r,E.useEffect(()=>{const a=n.on(e,i=>{o.current(i)});return()=>{a.unsubscribe()}},[n,e])}const FBe=e=>e.children.overlays;function IX(){return ZS(FBe,Object.is)}const HBe=e=>e.children.search??null;function VBe(){return ZS(HBe,Object.is)}function QS(e,r){e.indexOf(r)===-1&&e.push(r)}function gw(e,r){const n=e.indexOf(r);n>-1&&e.splice(n,1)}const vc=(e,r,n)=>n>r?r:n{};const xc={},OX=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e);function jX(e){return typeof e=="object"&&e!==null}const LX=e=>/^0[^.\s]+$/u.test(e);function eC(e){let r;return()=>(r===void 0&&(r=e()),r)}const ki=e=>e,qBe=(e,r)=>n=>r(e(n)),ry=(...e)=>e.reduce(qBe),wm=(e,r,n)=>{const o=r-e;return o===0?1:(n-e)/o};class tC{constructor(){this.subscriptions=[]}add(r){return QS(this.subscriptions,r),()=>gw(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,_i=e=>e/1e3;function BX(e,r){return r?e*(1e3/r):0}const UBe=(e,r,n)=>{const o=r-e;return((n-e)%o+o)%o+e},FX=(e,r,n)=>(((1-3*n+3*r)*e+(3*n-6*r))*e+3*r)*e,WBe=1e-7,YBe=12;function GBe(e,r,n,o,a){let i,s,l=0;do s=r+(n-r)/2,i=FX(s,o,a)-e,i>0?n=s:r=s;while(Math.abs(i)>WBe&&++lGBe(i,0,1,e,n);return i=>i===0||i===1?i:FX(a(i),r,o)}const HX=e=>r=>r<=.5?e(2*r)/2:(2-e(2*(1-r)))/2,VX=e=>r=>1-e(1-r),qX=ny(.33,1.53,.69,.99),rC=VX(qX),UX=HX(rC),WX=e=>(e*=2)<1?.5*rC(e):.5*(2-Math.pow(2,-10*(e-1))),nC=e=>1-Math.sin(Math.acos(e)),YX=VX(nC),GX=HX(nC),XBe=ny(.42,0,1,1),KBe=ny(0,0,.58,1),XX=ny(.42,0,.58,1),KX=e=>Array.isArray(e)&&typeof e[0]!="number";function ZX(e,r){return KX(e)?e[UBe(0,e.length,r)]:e}const QX=e=>Array.isArray(e)&&typeof e[0]=="number",ZBe={linear:ki,easeIn:XBe,easeInOut:XX,easeOut:KBe,circIn:nC,circInOut:GX,circOut:YX,backIn:rC,backInOut:UX,backOut:qX,anticipate:WX},QBe=e=>typeof e=="string",JX=e=>{if(QX(e)){JS(e.length===4);const[r,n,o,a]=e;return ny(r,n,o,a)}else if(QBe(e))return ZBe[e];return e},yw=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function JBe(e,r){let n=new Set,o=new Set,a=!1,i=!1;const s=new WeakSet;let l={delta:0,timestamp:0,isProcessing:!1};function c(d){s.has(d)&&(u.schedule(d),e()),d(l)}const u={schedule:(d,h=!1,f=!1)=>{const g=f&&a?n:o;return h&&s.add(d),g.has(d)||g.add(d),d},cancel:d=>{o.delete(d),s.delete(d)},process:d=>{if(l=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 eFe=40;function eK(e,r){let n=!1,o=!0;const a={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,s=yw.reduce((k,C)=>(k[C]=JBe(i),k),{}),{setup:l,read:c,resolveKeyframes:u,preUpdate:d,update:h,preRender:f,render:g,postRender:b}=s,x=()=>{const k=xc.useManualTiming?a.timestamp:performance.now();n=!1,xc.useManualTiming||(a.delta=o?1e3/60:Math.max(Math.min(k-a.timestamp,eFe),1)),a.timestamp=k,a.isProcessing=!0,l.process(a),c.process(a),u.process(a),d.process(a),h.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:yw.reduce((k,C)=>{const _=s[C];return k[C]=(T,A=!1,R=!1)=>(n||w(),_.schedule(T,A,R)),k},{}),cancel:k=>{for(let C=0;C(bw===void 0&&ma.set(xo.isProcessing||xc.useManualTiming?xo.timestamp:performance.now()),bw),set:e=>{bw=e,queueMicrotask(tFe)}},tK=e=>r=>typeof r=="string"&&r.startsWith(e),aC=tK("--"),rFe=tK("var(--"),iC=e=>rFe(e)?nFe.test(e.split("/*")[0].trim()):!1,nFe=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,km={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},oy={...km,transform:e=>vc(0,1,e)},vw={...km,default:1},ay=e=>Math.round(e*1e5)/1e5,sC=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function oFe(e){return e==null}const aFe=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,lC=(e,r)=>n=>!!(typeof n=="string"&&aFe.test(n)&&n.startsWith(e)||r&&!oFe(n)&&Object.prototype.hasOwnProperty.call(n,r)),rK=(e,r,n)=>o=>{if(typeof o!="string")return o;const[a,i,s,l]=o.match(sC);return{[e]:parseFloat(a),[r]:parseFloat(i),[n]:parseFloat(s),alpha:l!==void 0?parseFloat(l):1}},iFe=e=>vc(0,255,e),cC={...km,transform:e=>Math.round(iFe(e))},Ip={test:lC("rgb","red"),parse:rK("red","green","blue"),transform:({red:e,green:r,blue:n,alpha:o=1})=>"rgba("+cC.transform(e)+", "+cC.transform(r)+", "+cC.transform(n)+", "+ay(oy.transform(o))+")"};function sFe(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 uC={test:lC("#"),parse:sFe,transform:Ip.transform},iy=e=>({test:r=>typeof r=="string"&&r.endsWith(e)&&r.split(" ").length===1,parse:parseFloat,transform:r=>`${r}${e}`}),Lu=iy("deg"),kl=iy("%"),$t=iy("px"),lFe=iy("vh"),cFe=iy("vw"),nK={...kl,parse:e=>kl.parse(e)/100,transform:e=>kl.transform(e*100)},_m={test:lC("hsl","hue"),parse:rK("hue","saturation","lightness"),transform:({hue:e,saturation:r,lightness:n,alpha:o=1})=>"hsla("+Math.round(e)+", "+kl.transform(ay(r))+", "+kl.transform(ay(n))+", "+ay(oy.transform(o))+")"},In={test:e=>Ip.test(e)||uC.test(e)||_m.test(e),parse:e=>Ip.test(e)?Ip.parse(e):_m.test(e)?_m.parse(e):uC.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Ip.transform(e):_m.transform(e),getAnimatableNone:e=>{const r=In.parse(e);return r.alpha=0,In.transform(r)}},uFe=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function dFe(e){return isNaN(e)&&typeof e=="string"&&(e.match(sC)?.length||0)+(e.match(uFe)?.length||0)>0}const oK="number",aK="color",pFe="var",hFe="var(",iK="${}",fFe=/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 sy(e){const r=e.toString(),n=[],o={color:[],number:[],var:[]},a=[];let i=0;const s=r.replace(fFe,l=>(In.test(l)?(o.color.push(i),a.push(aK),n.push(In.parse(l))):l.startsWith(hFe)?(o.var.push(i),a.push(pFe),n.push(l)):(o.number.push(i),a.push(oK),n.push(parseFloat(l))),++i,iK)).split(iK);return{values:n,split:s,indexes:o,types:a}}function sK(e){return sy(e).values}function lK(e){const{split:r,types:n}=sy(e),o=r.length;return a=>{let i="";for(let s=0;stypeof e=="number"?0:In.test(e)?In.getAnimatableNone(e):e;function gFe(e){const r=sK(e);return lK(e)(r.map(mFe))}const Bu={test:dFe,parse:sK,createTransformer:lK,getAnimatableNone:gFe};function dC(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 yFe({hue:e,saturation:r,lightness:n,alpha:o}){e/=360,r/=100,n/=100;let a=0,i=0,s=0;if(!r)a=i=s=n;else{const l=n<.5?n*(1+r):n+r-n*r,c=2*n-l;a=dC(c,l,e+.3333333333333333),i=dC(c,l,e),s=dC(c,l,e-.3333333333333333)}return{red:Math.round(a*255),green:Math.round(i*255),blue:Math.round(s*255),alpha:o}}function xw(e,r){return n=>n>0?r:e}const Zr=(e,r,n)=>e+(r-e)*n,pC=(e,r,n)=>{const o=e*e,a=n*(r*r-o)+o;return a<0?0:Math.sqrt(a)},bFe=[uC,Ip,_m],vFe=e=>bFe.find(r=>r.test(e));function cK(e){const r=vFe(e);if(!r)return!1;let n=r.parse(e);return r===_m&&(n=yFe(n)),n}const uK=(e,r)=>{const n=cK(e),o=cK(r);if(!n||!o)return xw(e,r);const a={...n};return i=>(a.red=pC(n.red,o.red,i),a.green=pC(n.green,o.green,i),a.blue=pC(n.blue,o.blue,i),a.alpha=Zr(n.alpha,o.alpha,i),Ip.transform(a))},hC=new Set(["none","hidden"]);function xFe(e,r){return hC.has(e)?n=>n<=0?e:r:n=>n>=1?r:e}function wFe(e,r){return n=>Zr(e,r,n)}function fC(e){return typeof e=="number"?wFe:typeof e=="string"?iC(e)?xw:In.test(e)?uK:EFe:Array.isArray(e)?dK:typeof e=="object"?In.test(e)?uK:kFe:xw}function dK(e,r){const n=[...e],o=n.length,a=e.map((i,s)=>fC(i)(i,r[s]));return i=>{for(let s=0;s{for(const i in o)n[i]=o[i](a);return n}}function _Fe(e,r){const n=[],o={color:0,var:0,number:0};for(let a=0;a{const n=Bu.createTransformer(r),o=sy(e),a=sy(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?hC.has(e)&&!a.values.length||hC.has(r)&&!o.values.length?xFe(e,r):ry(dK(_Fe(o,a),a.values),n):xw(e,r)};function pK(e,r,n){return typeof e=="number"&&typeof r=="number"&&typeof n=="number"?Zr(e,r,n):fC(e)(e,r)}const SFe=e=>{const r=({timestamp:n})=>e(n);return{start:(n=!0)=>qr.update(r,n),stop:()=>ju(r),now:()=>xo.isProcessing?xo.timestamp:ma.now()}},hK=(e,r,n=10)=>{let o="";const a=Math.max(Math.round(r/n),2);for(let i=0;i=ww?1/0:r}function fK(e,r=100,n){const o=n({...e,keyframes:[0,r]}),a=Math.min(mC(o),ww);return{type:"keyframes",ease:i=>o.next(a*i).value/r,duration:_i(a)}}const CFe=5;function mK(e,r,n){const o=Math.max(r-CFe,0);return BX(n-e(o),r-o)}const mn={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},gC=.001;function TFe({duration:e=mn.duration,bounce:r=mn.bounce,velocity:n=mn.velocity,mass:o=mn.mass}){let a,i,s=1-r;s=vc(mn.minDamping,mn.maxDamping,s),e=vc(mn.minDuration,mn.maxDuration,_i(e)),s<1?(a=u=>{const d=u*s,h=d*e,f=d-n,g=yC(u,s),b=Math.exp(-h);return gC-f/g*b},i=u=>{const d=u*s*e,h=d*n+n,f=Math.pow(s,2)*Math.pow(u,2)*e,g=Math.exp(-d),b=yC(Math.pow(u,2),s);return(-a(u)+gC>0?-1:1)*((h-f)*g)/b}):(a=u=>{const d=Math.exp(-u*e),h=(u-n)*e+1;return-gC+d*h},i=u=>{const d=Math.exp(-u*e),h=(n-u)*(e*e);return d*h});const l=5/e,c=RFe(a,i,l);if(e=xs(e),isNaN(c))return{stiffness:mn.stiffness,damping:mn.damping,duration:e};{const u=Math.pow(c,2)*o;return{stiffness:u,damping:s*2*Math.sqrt(o*u),duration:e}}}const AFe=12;function RFe(e,r,n){let o=n;for(let a=1;ae[n]!==void 0)}function $Fe(e){let r={velocity:mn.velocity,stiffness:mn.stiffness,damping:mn.damping,mass:mn.mass,isResolvedFromDuration:!1,...e};if(!gK(e,DFe)&&gK(e,NFe))if(e.visualDuration){const n=e.visualDuration,o=2*Math.PI/(n*1.2),a=o*o,i=2*vc(.05,1,1-(e.bounce||0))*Math.sqrt(a);r={...r,mass:mn.mass,stiffness:a,damping:i}}else{const n=TFe(e);r={...r,...n,mass:mn.mass},r.isResolvedFromDuration=!0}return r}function ly(e=mn.visualDuration,r=mn.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],s=n.keyframes[n.keyframes.length-1],l={done:!1,value:i},{stiffness:c,damping:u,mass:d,duration:h,velocity:f,isResolvedFromDuration:g}=$Fe({...n,velocity:-_i(n.velocity||0)}),b=f||0,x=u/(2*Math.sqrt(c*d)),w=s-i,k=_i(Math.sqrt(c/d)),C=Math.abs(w)<5;o||(o=C?mn.restSpeed.granular:mn.restSpeed.default),a||(a=C?mn.restDelta.granular:mn.restDelta.default);let _;if(x<1){const A=yC(k,x);_=R=>{const D=Math.exp(-x*k*R);return s-D*((b+x*k*w)/A*Math.sin(A*R)+w*Math.cos(A*R))}}else if(x===1)_=A=>s-Math.exp(-k*A)*(w+(b+k*w)*A);else{const A=k*Math.sqrt(x*x-1);_=R=>{const D=Math.exp(-x*k*R),N=Math.min(A*R,300);return s-D*((b+x*k*w)*Math.sinh(N)+A*w*Math.cosh(N))/A}}const T={calculatedDuration:g&&h||null,next:A=>{const R=_(A);if(g)l.done=A>=h;else{let D=A===0?b:0;x<1&&(D=A===0?xs(b):mK(_,A,R));const N=Math.abs(D)<=o,M=Math.abs(s-R)<=a;l.done=N&&M}return l.value=l.done?s:R,l},toString:()=>{const A=Math.min(mC(T),ww),R=hK(D=>T.next(A*D).value,A,30);return A+"ms "+R},toTransition:()=>{}};return T}ly.applyToOptions=e=>{const r=fK(e,100,ly);return e.ease=r.ease,e.duration=xs(r.duration),e.type="keyframes",e};function bC({keyframes:e,velocity:r=0,power:n=.8,timeConstant:o=325,bounceDamping:a=10,bounceStiffness:i=500,modifyTarget:s,min:l,max:c,restDelta:u=.5,restSpeed:d}){const h=e[0],f={done:!1,value:h},g=N=>l!==void 0&&Nc,b=N=>l===void 0?c:c===void 0||Math.abs(l-N)-x*Math.exp(-N/o),_=N=>k+C(N),T=N=>{const M=C(N),O=_(N);f.done=Math.abs(M)<=u,f.value=f.done?k:O};let A,R;const D=N=>{g(f.value)&&(A=N,R=ly({keyframes:[f.value,b(f.value)],velocity:mK(_,N,f.value),damping:a,stiffness:i,restDelta:u,restSpeed:d}))};return D(0),{calculatedDuration:null,next:N=>{let M=!1;return!R&&A===void 0&&(M=!0,T(N),D(N)),A!==void 0&&N>=A?R.next(N-A):(!M&&T(N),f)}}}function MFe(e,r,n){const o=[],a=n||xc.mix||pK,i=e.length-1;for(let s=0;sr[0];if(i===2&&r[0]===r[1])return()=>r[1];const s=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),r=[...r].reverse());const l=MFe(r,o,a),c=l.length,u=d=>{if(s&&d1)for(;hu(vc(e[0],e[i-1],d)):u}function yK(e,r){const n=e[e.length-1];for(let o=1;o<=r;o++){const a=wm(0,r,o);e.push(Zr(n,1,a))}}function bK(e){const r=[0];return yK(r,e.length-1),r}function zFe(e,r){return e.map(n=>n*r)}function IFe(e,r){return e.map(()=>r||XX).splice(0,e.length-1)}function cy({duration:e=300,keyframes:r,times:n,ease:o="easeInOut"}){const a=KX(o)?o.map(JX):JX(o),i={done:!1,value:r[0]},s=zFe(n&&n.length===r.length?n:bK(r),e),l=PFe(s,r,{ease:Array.isArray(a)?a:IFe(r,a)});return{calculatedDuration:e,next:c=>(i.value=l(c),i.done=c>=e,i)}}const OFe=e=>e!==null;function vC(e,{repeat:r,repeatType:n="loop"},o,a=1){const i=e.filter(OFe),s=a<0||r&&n!=="loop"&&r%2===1?0:i.length-1;return!s||o===void 0?i[s]:o}const jFe={decay:bC,inertia:bC,tween:cy,keyframes:cy,spring:ly};function vK(e){typeof e.type=="string"&&(e.type=jFe[e.type])}class xC{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 LFe=e=>e/100;class wC extends xC{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!==ma.now()&&this.tick(ma.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;vK(r);const{type:n=cy,repeat:o=0,repeatDelay:a=0,repeatType:i,velocity:s=0}=r;let{keyframes:l}=r;const c=n||cy;c!==cy&&typeof l[0]!="number"&&(this.mixKeyframes=ry(LFe,pK(l[0],l[1])),l=[0,100]);const u=c({...r,keyframes:l});i==="mirror"&&(this.mirroredGenerator=c({...r,keyframes:[...l].reverse(),velocity:-s})),u.calculatedDuration===null&&(u.calculatedDuration=mC(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:s,resolvedDuration:l,calculatedDuration:c}=this;if(this.startTime===null)return o.next(0);const{delay:u=0,keyframes:d,repeat:h,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(h){const N=Math.min(this.currentTime,a)/l;let M=Math.floor(N),O=N%1;!O&&N>=1&&(O=1),O===1&&M--,M=Math.min(M,h+1),M%2&&(f==="reverse"?(O=1-O,g&&(O-=g/l)):f==="mirror"&&(T=s)),_=vc(0,1,O)*l}const A=C?{done:!1,value:d[0]}:T.next(_);i&&(A.value=i(A.value));let{done:R}=A;!C&&c!==null&&(R=this.playbackSpeed>=0?this.currentTime>=a:this.currentTime<=0);const D=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&R);return D&&b!==bC&&(A.value=vC(d,this.options,w,this.speed)),x&&x(A.value),D&&this.finish(),A}then(r,n){return this.finished.then(r,n)}get duration(){return _i(this.calculatedDuration)}get iterationDuration(){const{delay:r=0}=this.options||{};return this.duration+_i(r)}get time(){return _i(this.currentTime)}set time(r){r=xs(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(ma.now());const n=this.playbackSpeed!==r;this.playbackSpeed=r,n&&(this.time=_i(this.currentTime))}play(){if(this.isStopped)return;const{driver:r=SFe,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(ma.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 BFe(e){for(let r=1;re*180/Math.PI,kC=e=>{const r=Op(Math.atan2(e[1],e[0]));return _C(r)},FFe={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:kC,rotateZ:kC,skewX:e=>Op(Math.atan(e[1])),skewY:e=>Op(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},_C=e=>(e=e%360,e<0&&(e+=360),e),xK=kC,wK=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),kK=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),HFe={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:wK,scaleY:kK,scale:e=>(wK(e)+kK(e))/2,rotateX:e=>_C(Op(Math.atan2(e[6],e[5]))),rotateY:e=>_C(Op(Math.atan2(-e[2],e[0]))),rotateZ:xK,rotate:xK,skewX:e=>Op(Math.atan(e[4])),skewY:e=>Op(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function EC(e){return e.includes("scale")?1:0}function SC(e,r){if(!e||e==="none")return EC(r);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let o,a;if(n)o=HFe,a=n;else{const l=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);o=FFe,a=l}if(!a)return EC(r);const i=o[r],s=a[1].split(",").map(qFe);return typeof i=="function"?i(s):s[i]}const VFe=(e,r)=>{const{transform:n="none"}=getComputedStyle(e);return SC(n,r)};function qFe(e){return parseFloat(e.trim())}const Em=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Sm=new Set(Em),_K=e=>e===km||e===$t,UFe=new Set(["x","y","z"]),WFe=Em.filter(e=>!UFe.has(e));function YFe(e){const r=[];return WFe.forEach(n=>{const o=e.getValue(n);o!==void 0&&(r.push([n,o.get()]),o.set(n.startsWith("scale")?1:0))}),r}const jp={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})=>SC(r,"x"),y:(e,{transform:r})=>SC(r,"y")};jp.translateX=jp.x,jp.translateY=jp.y;const Lp=new Set;let CC=!1,TC=!1,AC=!1;function EK(){if(TC){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=YFe(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,s])=>{o.getValue(i)?.set(s)})}),e.forEach(o=>o.measureEndState()),e.forEach(o=>{o.suspendedScrollY!==void 0&&window.scrollTo(0,o.suspendedScrollY)})}TC=!1,CC=!1,Lp.forEach(e=>e.complete(AC)),Lp.clear()}function SK(){Lp.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(TC=!0)})}function GFe(){AC=!0,SK(),EK(),AC=!1}class RC{constructor(r,n,o,a,i,s=!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=s}scheduleResolve(){this.state="scheduled",this.isAsync?(Lp.add(this),CC||(CC=!0,qr.read(SK),qr.resolveKeyframes(EK))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:r,name:n,element:o,motionValue:a}=this;if(r[0]===null){const i=a?.get(),s=r[r.length-1];if(i!==void 0)r[0]=i;else if(o&&n){const l=o.readValue(n,s);l!=null&&(r[0]=l)}r[0]===void 0&&(r[0]=s),a&&i===void 0&&a.set(r[0])}BFe(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 XFe=e=>e.startsWith("--");function KFe(e,r,n){XFe(r)?e.style.setProperty(r,n):e.style[r]=n}const ZFe=eC(()=>window.ScrollTimeline!==void 0),QFe={};function JFe(e,r){const n=eC(e);return()=>QFe[r]??n()}const CK=JFe(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),uy=([e,r,n,o])=>`cubic-bezier(${e}, ${r}, ${n}, ${o})`,TK={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:uy([0,.65,.55,1]),circOut:uy([.55,0,1,.45]),backIn:uy([.31,.01,.66,-.59]),backOut:uy([.33,1.53,.69,.99])};function AK(e,r){if(e)return typeof e=="function"?CK()?hK(e,r):"ease-out":QX(e)?uy(e):Array.isArray(e)?e.map(n=>AK(n,r)||TK.easeOut):TK[e]}function eHe(e,r,n,{delay:o=0,duration:a=300,repeat:i=0,repeatType:s="loop",ease:l="easeOut",times:c}={},u=void 0){const d={[r]:n};c&&(d.offset=c);const h=AK(l,a);Array.isArray(h)&&(d.easing=h);const f={delay:o,duration:a,easing:Array.isArray(h)?"linear":h,fill:"both",iterations:i+1,direction:s==="reverse"?"alternate":"normal"};return u&&(f.pseudoElement=u),e.animate(d,f)}function NC(e){return typeof e=="function"&&"applyToOptions"in e}function tHe({type:e,...r}){return NC(e)&&CK()?e.applyToOptions(r):(r.duration??(r.duration=300),r.ease??(r.ease="easeOut"),r)}class rHe extends xC{constructor(r){if(super(),this.finishedTime=null,this.isStopped=!1,!r)return;const{element:n,name:o,keyframes:a,pseudoElement:i,allowFlatten:s=!1,finalKeyframe:l,onComplete:c}=r;this.isPseudoElement=!!i,this.allowFlatten=s,this.options=r,JS(typeof r.type!="string");const u=tHe(r);this.animation=eHe(n,o,a,u,i),u.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!i){const d=vC(a,this.options,l,this.speed);this.updateMotionValue?this.updateMotionValue(d):KFe(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 _i(Number(r))}get iterationDuration(){const{delay:r=0}=this.options||{};return this.duration+_i(r)}get time(){return _i(Number(this.animation.currentTime)||0)}set time(r){this.finishedTime=null,this.animation.currentTime=xs(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&&ZFe()?(this.animation.timeline=r,ki):n(this)}}const RK={anticipate:WX,backInOut:UX,circInOut:GX};function nHe(e){return e in RK}function oHe(e){typeof e.ease=="string"&&nHe(e.ease)&&(e.ease=RK[e.ease])}const NK=10;class aHe extends rHe{constructor(r){oHe(r),vK(r),super(r),r.startTime&&(this.startTime=r.startTime),this.options=r}updateMotionValue(r){const{motionValue:n,onUpdate:o,onComplete:a,element:i,...s}=this.options;if(!n)return;if(r!==void 0){n.set(r);return}const l=new wC({...s,autoplay:!1}),c=xs(this.finishedTime??this.time);n.setWithVelocity(l.sample(c-NK).value,l.sample(c).value,NK),l.stop()}}const DK=(e,r)=>r==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(Bu.test(e)||e==="0")&&!e.startsWith("url("));function iHe(e){const r=e[0];if(e.length===1)return!0;for(let n=0;nObject.hasOwnProperty.call(Element.prototype,"animate"));function uHe(e){const{motionValue:r,name:n,repeatDelay:o,repeatType:a,damping:i,type:s}=e;if(!(r?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:l,transformTemplate:c}=r.owner.getProps();return cHe()&&n&&lHe.has(n)&&(n!=="transform"||!c)&&!l&&!o&&a!=="mirror"&&i!==0&&s!=="inertia"}const dHe=40;class pHe extends xC{constructor({autoplay:r=!0,delay:n=0,type:o="keyframes",repeat:a=0,repeatDelay:i=0,repeatType:s="loop",keyframes:l,name:c,motionValue:u,element:d,...h}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=ma.now();const f={autoplay:r,delay:n,type:o,repeat:a,repeatDelay:i,repeatType:s,name:c,motionValue:u,element:d,...h},g=d?.KeyframeResolver||RC;this.keyframeResolver=new g(l,(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:s,velocity:l,delay:c,isHandoff:u,onUpdate:d}=o;this.resolvedAt=ma.now(),sHe(r,i,s,l)||((xc.instantAnimations||!c)&&d?.(vC(r,o,n)),r[0]=r[r.length-1],DC(o),o.repeat=0);const h={startTime:a?this.resolvedAt?this.resolvedAt-this.createdAt>dHe?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...o,keyframes:r},f=!u&&uHe(h)?new aHe({...h,element:h.motionValue.owner.current}):new wC(h);f.finished.then(()=>this.notifyFinished()).catch(ki),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(),GFe()),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 hHe{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 $K(this.animations,"duration")}get iterationDuration(){return $K(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 $K(e,r){let n=0;for(let o=0;on&&(n=a)}return n}class fHe extends hHe{then(r,n){return this.finished.finally(r).then(()=>{})}}const mHe=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function gHe(e){const r=mHe.exec(e);if(!r)return[,];const[,n,o,a]=r;return[`--${n??o}`,a]}function MK(e,r,n=1){const[o,a]=gHe(e);if(!o)return;const i=window.getComputedStyle(r).getPropertyValue(o);if(i){const s=i.trim();return OX(s)?parseFloat(s):s}return iC(a)?MK(a,r,n+1):a}function $C(e,r){return e?.[r]??e?.default??e}const PK=new Set(["width","height","top","left","right","bottom",...Em]),yHe={test:e=>e==="auto",parse:e=>e},zK=e=>r=>r.test(e),IK=[km,$t,kl,Lu,cFe,lFe,yHe],OK=e=>IK.find(zK(e));function bHe(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||LX(e):!0}const vHe=new Set(["brightness","contrast","saturate","opacity"]);function xHe(e){const[r,n]=e.slice(0,-1).split("(");if(r==="drop-shadow")return e;const[o]=n.match(sC)||[];if(!o)return e;const a=n.replace(o,"");let i=vHe.has(r)?1:0;return o!==n&&(i*=100),r+"("+i+a+")"}const wHe=/\b([a-z-]*)\(.*?\)/gu,MC={...Bu,getAnimatableNone:e=>{const r=e.match(wHe);return r?r.map(xHe).join(" "):e}},jK={...km,transform:Math.round},kHe={rotate:Lu,rotateX:Lu,rotateY:Lu,rotateZ:Lu,scale:vw,scaleX:vw,scaleY:vw,scaleZ:vw,skew:Lu,skewX:Lu,skewY:Lu,distance:$t,translateX:$t,translateY:$t,translateZ:$t,x:$t,y:$t,z:$t,perspective:$t,transformPerspective:$t,opacity:oy,originX:nK,originY:nK,originZ:$t},PC={borderWidth:$t,borderTopWidth:$t,borderRightWidth:$t,borderBottomWidth:$t,borderLeftWidth:$t,borderRadius:$t,radius:$t,borderTopLeftRadius:$t,borderTopRightRadius:$t,borderBottomRightRadius:$t,borderBottomLeftRadius:$t,width:$t,maxWidth:$t,height:$t,maxHeight:$t,top:$t,right:$t,bottom:$t,left:$t,padding:$t,paddingTop:$t,paddingRight:$t,paddingBottom:$t,paddingLeft:$t,margin:$t,marginTop:$t,marginRight:$t,marginBottom:$t,marginLeft:$t,backgroundPositionX:$t,backgroundPositionY:$t,...kHe,zIndex:jK,fillOpacity:oy,strokeOpacity:oy,numOctaves:jK},_He={...PC,color:In,backgroundColor:In,outlineColor:In,fill:In,stroke:In,borderColor:In,borderTopColor:In,borderRightColor:In,borderBottomColor:In,borderLeftColor:In,filter:MC,WebkitFilter:MC},LK=e=>_He[e];function BK(e,r){let n=LK(e);return n!==MC&&(n=Bu),n.getAnimatableNone?n.getAnimatableNone(r):void 0}const EHe=new Set(["auto","none","0"]);function SHe(e,r,n){let o=0,a;for(;o{r.getValue(l).set(c)}),this.resolveNoneKeyframes()}}function FK(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 HK=(e,r)=>r&&typeof e=="number"?r.transform(e):e;function VK(e){return jX(e)&&"offsetHeight"in e}const qK=30,THe=e=>!isNaN(parseFloat(e));class AHe{constructor(r,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=o=>{const a=ma.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=ma.now(),this.canTrackVelocity===null&&r!==void 0&&(this.canTrackVelocity=THe(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 tC);const o=this.events[r].add(n);return r==="change"?()=>{o(),qr.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=ma.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||r-this.updatedAt>qK)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,qK);return BX(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 Bp(e,r){return new AHe(e,r)}const{schedule:zC}=eK(queueMicrotask,!1),ws={x:!1,y:!1};function UK(){return ws.x||ws.y}function RHe(e){return e==="x"||e==="y"?ws[e]?null:(ws[e]=!0,()=>{ws[e]=!1}):ws.x||ws.y?null:(ws.x=ws.y=!0,()=>{ws.x=ws.y=!1})}function WK(e,r){const n=FK(e),o=new AbortController,a={passive:!0,...r,signal:o.signal};return[n,a,()=>o.abort()]}function YK(e){return!(e.pointerType==="touch"||UK())}function NHe(e,r,n={}){const[o,a,i]=WK(e,n),s=l=>{if(!YK(l))return;const{target:c}=l,u=r(c,l);if(typeof u!="function"||!c)return;const d=h=>{YK(h)&&(u(h),c.removeEventListener("pointerleave",d))};c.addEventListener("pointerleave",d,a)};return o.forEach(l=>{l.addEventListener("pointerenter",s,a)}),i}const GK=(e,r)=>r?e===r?!0:GK(e,r.parentElement):!1,IC=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,DHe=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function $He(e){return DHe.has(e.tagName)||e.tabIndex!==-1}const kw=new WeakSet;function XK(e){return r=>{r.key==="Enter"&&e(r)}}function OC(e,r){e.dispatchEvent(new PointerEvent("pointer"+r,{isPrimary:!0,bubbles:!0}))}const MHe=(e,r)=>{const n=e.currentTarget;if(!n)return;const o=XK(()=>{if(kw.has(n))return;OC(n,"down");const a=XK(()=>{OC(n,"up")}),i=()=>OC(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 KK(e){return IC(e)&&!UK()}function PHe(e,r,n={}){const[o,a,i]=WK(e,n),s=l=>{const c=l.currentTarget;if(!KK(l))return;kw.add(c);const u=r(c,l),d=(g,b)=>{window.removeEventListener("pointerup",h),window.removeEventListener("pointercancel",f),kw.has(c)&&kw.delete(c),KK(g)&&typeof u=="function"&&u(g,{success:b})},h=g=>{d(g,c===window||c===document||n.useGlobalTarget||GK(c,g.target))},f=g=>{d(g,!1)};window.addEventListener("pointerup",h,a),window.addEventListener("pointercancel",f,a)};return o.forEach(l=>{(n.useGlobalTarget?window:l).addEventListener("pointerdown",s,a),VK(l)&&(l.addEventListener("focus",c=>MHe(c,a)),!$He(l)&&!l.hasAttribute("tabindex")&&(l.tabIndex=0))}),i}function jC(e){return jX(e)&&"ownerSVGElement"in e}function ZK(e){return jC(e)&&e.tagName==="svg"}const uo=e=>!!(e&&e.getVelocity),zHe=[...IK,In,Bu],IHe=e=>zHe.find(zK(e));function LC(e){return typeof e=="object"&&!Array.isArray(e)}function QK(e,r,n,o){return typeof e=="string"&&LC(r)?FK(e,n,o):e instanceof NodeList?Array.from(e):Array.isArray(e)?e:[e]}function OHe(e,r,n){return e*(r+1)}function JK(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 jHe(e,r,n){for(let o=0;or&&a.at{const M=qHe(T),{delay:O=0,times:F=bK(M),type:L="keyframes",repeat:U,repeatType:P,repeatDelay:V=0,...I}=A;let{ease:H=r.ease||"easeOut",duration:q}=A;const Z=typeof O=="function"?O(D,N):O,W=M.length,G=NC(L)?L:a?.[L||"keyframes"];if(W<=2&&G){let Q=100;if(W===2&&YHe(M)){const ne=M[1]-M[0];Q=Math.abs(ne)}const J={...I};q!==void 0&&(J.duration=xs(q));const ie=fK(J,Q,G);H=ie.ease,q=ie.duration}q??(q=i);const K=h+Z;F.length===1&&F[0]===0&&(F[1]=1);const j=F.length-M.length;if(j>0&&yK(F,j),M.length===1&&M.unshift(null),U){q=OHe(q,U);const Q=[...M],J=[...F];H=Array.isArray(H)?[...H]:[H];const ie=[...H];for(let ne=0;ne{for(const x in g){const w=g[x];w.sort(FHe);const k=[],C=[],_=[];for(let A=0;Atypeof e=="number",YHe=e=>e.every(WHe),dy=new WeakMap,BC=e=>Array.isArray(e);function rZ(e){const r=[{},{}];return e?.values.forEach((n,o)=>{r[0][o]=n.get(),r[1][o]=n.getVelocity()}),r}function FC(e,r,n,o){if(typeof r=="function"){const[a,i]=rZ(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]=rZ(o);r=r(n!==void 0?n:e.custom,a,i)}return r}function Cm(e,r,n){const o=e.getProps();return FC(o,r,n!==void 0?n:o.custom,e)}function GHe(e,r,n){e.hasValue(r)?e.getValue(r).set(n):e.addValue(r,Bp(n))}function XHe(e){return BC(e)?e[e.length-1]||0:e}function KHe(e,r){const n=Cm(e,r);let{transitionEnd:o={},transition:a={},...i}=n||{};i={...i,...o};for(const s in i){const l=XHe(i[s]);GHe(e,s,l)}}function ZHe(e){return!!(uo(e)&&e.add)}function HC(e,r){const n=e.getValue("willChange");if(ZHe(n))return n.add(r);if(!n&&xc.WillChange){const o=new xc.WillChange("auto");e.addValue("willChange",o),o.add(r)}}const VC=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),QHe="framerAppearId",nZ="data-"+VC(QHe);function oZ(e){return e.props[nZ]}const JHe=e=>e!==null;function eVe(e,{repeat:r,repeatType:n="loop"},o){const a=e.filter(JHe),i=r&&n!=="loop"&&r%2===1?0:a.length-1;return a[i]}const tVe={type:"spring",stiffness:500,damping:25,restSpeed:10},rVe=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),nVe={type:"keyframes",duration:.8},oVe={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},aVe=(e,{keyframes:r})=>r.length>2?nVe:Sm.has(e)?e.startsWith("scale")?rVe(r[1]):tVe:oVe;function iVe({when:e,delay:r,delayChildren:n,staggerChildren:o,staggerDirection:a,repeat:i,repeatType:s,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const qC=(e,r,n,o={},a,i)=>s=>{const l=$C(o,e)||{},c=l.delay||o.delay||0;let{elapsed:u=0}=o;u=u-xs(c);const d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:r.getVelocity(),...l,delay:-u,onUpdate:f=>{r.set(f),l.onUpdate&&l.onUpdate(f)},onComplete:()=>{s(),l.onComplete&&l.onComplete()},name:e,motionValue:r,element:i?void 0:a};iVe(l)||Object.assign(d,aVe(e,d)),d.duration&&(d.duration=xs(d.duration)),d.repeatDelay&&(d.repeatDelay=xs(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let h=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(DC(d),d.delay===0&&(h=!0)),(xc.instantAnimations||xc.skipAnimations)&&(h=!0,DC(d),d.delay=0),d.allowFlatten=!l.type&&!l.ease,h&&!i&&r.get()!==void 0){const f=eVe(d.keyframes,l);if(f!==void 0){qr.update(()=>{d.onUpdate(f),d.onComplete()});return}}return l.isSync?new wC(d):new pHe(d)};function sVe({protectedKeys:e,needsAnimating:r},n){const o=e.hasOwnProperty(n)&&r[n]!==!0;return r[n]=!1,o}function UC(e,r,{delay:n=0,transitionOverride:o,type:a}={}){let{transition:i=e.getDefaultTransition(),transitionEnd:s,...l}=r;o&&(i=o);const c=[],u=a&&e.animationState&&e.animationState.getState()[a];for(const d in l){const h=e.getValue(d,e.latestValues[d]??null),f=l[d];if(f===void 0||u&&sVe(u,d))continue;const g={delay:n,...$C(i||{},d)},b=h.get();if(b!==void 0&&!h.isAnimating&&!Array.isArray(f)&&f===b&&!g.velocity)continue;let x=!1;if(window.MotionHandoffAnimation){const k=oZ(e);if(k){const C=window.MotionHandoffAnimation(k,d,qr);C!==null&&(g.startTime=C,x=!0)}}HC(e,d),h.start(qC(d,h,f,e.shouldReduceMotion&&PK.has(d)?{type:!1}:g,e,x));const w=h.animation;w&&c.push(w)}return s&&Promise.all(c).then(()=>{qr.update(()=>{s&&KHe(e,s)})}),c}function aZ({top:e,left:r,right:n,bottom:o}){return{x:{min:r,max:n},y:{min:e,max:o}}}function lVe({x:e,y:r}){return{top:r.min,right:e.max,bottom:r.max,left:e.min}}function cVe(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 WC(e){return e===void 0||e===1}function YC({scale:e,scaleX:r,scaleY:n}){return!WC(e)||!WC(r)||!WC(n)}function Fp(e){return YC(e)||iZ(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function iZ(e){return sZ(e.x)||sZ(e.y)}function sZ(e){return e&&e!=="0%"}function _w(e,r,n){const o=e-n,a=r*o;return n+a}function lZ(e,r,n,o,a){return a!==void 0&&(e=_w(e,a,o)),_w(e,n,o)+r}function GC(e,r=0,n=1,o,a){e.min=lZ(e.min,r,n,o,a),e.max=lZ(e.max,r,n,o,a)}function cZ(e,{x:r,y:n}){GC(e.x,r.translate,r.scale,r.originPoint),GC(e.y,n.translate,n.scale,n.originPoint)}const uZ=.999999999999,dZ=1.0000000000001;function uVe(e,r,n,o=!1){const a=n.length;if(!a)return;r.x=r.y=1;let i,s;for(let l=0;luZ&&(r.x=1),r.yuZ&&(r.y=1)}function Tm(e,r){e.min=e.min+r,e.max=e.max+r}function pZ(e,r,n,o,a=.5){const i=Zr(e.min,e.max,a);GC(e,r,n,i,o)}function Am(e,r){pZ(e.x,r.x,r.scaleX,r.scale,r.originX),pZ(e.y,r.y,r.scaleY,r.scale,r.originY)}function hZ(e,r){return aZ(cVe(e.getBoundingClientRect(),r))}function dVe(e,r,n){const o=hZ(e,n),{scroll:a}=r;return a&&(Tm(o.x,a.offset.x),Tm(o.y,a.offset.y)),o}const fZ={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"]},Rm={};for(const e in fZ)Rm[e]={isEnabled:r=>fZ[e].some(n=>!!r[n])};const mZ=()=>({translate:0,scale:1,origin:0,originPoint:0}),Nm=()=>({x:mZ(),y:mZ()}),gZ=()=>({min:0,max:0}),gn=()=>({x:gZ(),y:gZ()}),XC=typeof window<"u",Ew={current:null},KC={current:!1};function yZ(){if(KC.current=!0,!!XC)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),r=()=>Ew.current=e.matches;e.addEventListener("change",r),r()}else Ew.current=!1}function Sw(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function py(e){return typeof e=="string"||Array.isArray(e)}const ZC=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],QC=["initial",...ZC];function Cw(e){return Sw(e.animate)||QC.some(r=>py(e[r]))}function bZ(e){return!!(Cw(e)||e.variants)}function pVe(e,r,n){for(const o in r){const a=r[o],i=n[o];if(uo(a))e.addValue(o,a);else if(uo(i))e.addValue(o,Bp(a,{owner:e}));else if(i!==a)if(e.hasValue(o)){const s=e.getValue(o);s.liveStyle===!0?s.jump(a):s.hasAnimated||s.set(a)}else{const s=e.getStaticValue(o);e.addValue(o,Bp(s!==void 0?s:a,{owner:e}))}}for(const o in n)r[o]===void 0&&e.removeValue(o);return r}const vZ=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class xZ{scrapeMotionValuesFromProps(r,n,o){return{}}constructor({parent:r,props:n,presenceContext:o,reducedMotionConfig:a,blockInitialAnimation:i,visualState:s},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=RC,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=ma.now();this.renderScheduledAtthis.bindToMotionValue(o,n)),KC.current||yZ(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Ew.current,this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),ju(this.notifyUpdate),ju(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=Sm.has(r);o&&this.onBindTransform&&this.onBindTransform();const a=n.on("change",s=>{this.latestValues[r]=s,this.props.onUpdate&&qr.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 Rm){const n=Rm[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):gn()}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=Bp(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"&&(OX(o)||LX(o))?o=parseFloat(o):!IHe(o)&&Bu.test(n)&&(o=BK(r,n)),this.setBaseTarget(r,uo(o)?o.get():o)),uo(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=FC(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&&!uo(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 tC),this.events[r].add(n)}notify(r,...n){this.events[r]&&this.events[r].notify(...n)}scheduleRenderMicrotask(){zC.render(this.render)}}class wZ extends xZ{constructor(){super(...arguments),this.KeyframeResolver=CHe}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;uo(r)&&(this.childSubscription=r.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}const hVe={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},fVe=Em.length;function mVe(e,r,n){let o="",a=!0;for(let i=0;itypeof e=="string"&&e.toLowerCase()==="svg";function _Ve(e,r,n,o){kZ(e,r,void 0,o);for(const a in r.attrs)e.setAttribute(CZ.has(a)?a:VC(a),r.attrs[a])}function AZ(e,r,n){const o=eT(e,r,n);for(const a in e)if(uo(e[a])||uo(r[a])){const i=Em.indexOf(a)!==-1?"attr"+a.charAt(0).toUpperCase()+a.substring(1):a;o[i]=e[a]}return o}class RZ extends wZ{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=gn}getBaseTargetFromProps(r,n){return r[n]}readValueFromInstance(r,n){if(Sm.has(n)){const o=LK(n);return o&&o.default||0}return n=CZ.has(n)?n:VC(n),r.getAttribute(n)}scrapeMotionValuesFromProps(r,n,o){return AZ(r,n,o)}build(r,n,o){SZ(r,n,this.isSVGTag,o.transformTemplate,o.style)}renderInstance(r,n,o,a){_Ve(r,n,o,a)}mount(r){this.isSVGTag=TZ(r.tagName),super.mount(r)}}function EVe(e){const r={presenceContext:null,props:{},visualState:{renderState:{transform:{},transformOrigin:{},style:{},vars:{},attrs:{}},latestValues:{}}},n=jC(e)&&!ZK(e)?new RZ(r):new EZ(r);n.mount(e),dy.set(e,n)}function SVe(e){const r={presenceContext:null,props:{},visualState:{renderState:{output:{}},latestValues:{}}},n=new vVe(r);n.mount(e),dy.set(e,n)}function NZ(e,r,n){const o=uo(e)?e:Bp(e);return o.start(qC("",o,r,n)),o.animation}function CVe(e,r){return uo(e)||typeof e=="number"||typeof e=="string"&&!LC(r)}function DZ(e,r,n,o){const a=[];if(CVe(e,r))a.push(NZ(e,LC(r)&&r.default||r,n&&(n.default||n)));else{const i=QK(e,r,o),s=i.length;for(let l=0;l{o.push(...DZ(s,a,i))}),o}function AVe(e){return Array.isArray(e)&&e.some(Array.isArray)}function RVe(e){function r(n,o,a){let i=[],s;if(AVe(n))i=TVe(n,o,e);else{const{onComplete:c,...u}=a||{};typeof c=="function"&&(s=c),i=DZ(n,o,u,e)}const l=new fHe(i);return s&&l.finished.then(s),l}return r}const NVe=RVe();function DVe(e,r){const n=ma.now(),o=({timestamp:a})=>{const i=a-n;i>=r&&(ju(o),e(i-r))};return qr.setup(o,!0),()=>ju(o)}const $Z=(e,r)=>Math.abs(e-r);function $Ve(e,r){const n=$Z(e.x,r.x),o=$Z(e.y,r.y);return Math.sqrt(n**2+o**2)}const fy=E.createContext({});function Dm(e){const r=E.useRef(null);return r.current===null&&(r.current=e()),r.current}const tT=XC?E.useLayoutEffect:E.useEffect,Tw=E.createContext(null),Hp=E.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function MZ(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function MVe(...e){return r=>{let n=!1;const o=e.map(a=>{const i=MZ(a,r);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let a=0;a{const{width:u,height:d,top:h,left:f,right:g}=s.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");l&&(x.nonce=l);const w=o??document.head;return w.appendChild(x),x.sheet&&x.sheet.insertRule(` - [data-motion-pop-id="${a}"] { + `};function xMe(e,r){return!e||tp(e)?"":Jr(uw(e),Pq(([n,o])=>[`:is(${r} [data-likec4-tag="${n}"]) {`,bMe(o),"}"]),Lq(` +`))}function wMe({children:e,rootSelector:r}){const n=yMe().tags,o=xMe(n,r);return y.jsxs(AG.Provider,{value:n,children:[o!==""&&y.jsx(kMe,{stylesheet:o}),e]})}const kMe=S.memo(({stylesheet:e})=>{const r=np()?.();return y.jsx("style",{"data-likec4-tags":!0,type:"text/css",dangerouslySetInnerHTML:{__html:e},nonce:r})});function _Me(e){return S.useContext(AG)[e]??{color:"tomato"}}function DG(){return oa().replace("mantine-","likec4-")}var SMe="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,WebkitTextFillColor,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,_whenSelectable,_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",EMe=SMe.split(","),CMe="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",$Me=CMe.split(",").concat(EMe),RMe=new Map($Me.map(e=>[e,!0])),zMe=/&|@/,PG=Kn(e=>RMe.has(e)||e.startsWith("--")||zMe.test(e));const TMe=(e,r)=>!r.includes(e)&&!PG(e),jMe=(e,r)=>e.__shouldForwardProps__&&r?n=>e.__shouldForwardProps__(n)&&r(n):r,AMe=(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},DMe=e=>typeof e=="string"?e:e?.displayName||e?.name||"Component";function YS(e,r={},n={}){const o=r.__cva__||r.__recipe__?r:T1(r),i=n.shouldForwardProp||TMe,a=f=>n.forwardProps?.includes(f)?!0:i(f,o.variantKeys),l=Object.assign(n.dataAttr&&r.__name__?{"data-recipe":r.__name__}:{},n.defaultProps),s=AMe(e.__cva__,o),c=jMe(e,a),d=e.__base__||e,u=S.forwardRef(function(f,m){const{as:v=d,unstyled:w,children:x,...k}=f,C=S.useMemo(()=>Object.assign({},l,k),[k]),[_,$,R,T,A]=S.useMemo(()=>Fn(C,d7.keys,c,s.variantKeys,PG),[C]);function z(){const{css:N,...L}=T,H=s.__getCompoundVariantCss__?.(R);return Ge(s(R,!1),fe(H,L,N),C.className)}function j(){const{css:N,...L}=T,H=s.raw(R);return Ge(fe(H,L,N),C.className)}const I=()=>{if(w){const{css:N,...L}=T;return Ge(fe(L,N),C.className)}return r.__recipe__?z():j()};return S.createElement(v,{ref:m,...$,...A,...d7(_),className:I()},x??C.children)}),p=DMe(d);return u.displayName=`styled.${p}`,u.__cva__=s,u.__base__=d,u.__shouldForwardProps__=a,u}function PMe(){const e=new Map;return new Proxy(YS,{apply(r,n,o){return YS(...o)},get(r,n){return e.has(n)||e.set(n,YS(n)),e.get(n)}})}const Ed=PMe(),MG={transform(e){return e}},MMe=(e={})=>{const r=z1(MG,e);return MG.transform(r,R1)},hr=S.forwardRef(function(e,r){const[n,o]=Fn(e,[]),i=MMe(n),a={ref:r,...i,...o};return S.createElement(Ed.div,a)}),NG={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"}},XS=(e={})=>{const r=z1(NG,e);return NG.transform(r,R1)},Ey=e=>fe(XS(e));Ey.raw=XS;const hp=S.forwardRef(function(e,r){const[n,o]=Fn(e,["justify","gap"]),i=XS(n),a={ref:r,...i,...o};return S.createElement(Ed.div,a)}),BG={transform(e){const{justify:r,gap:n,...o}=e;return{display:"flex",alignItems:"center",justifyContent:r,gap:n,flexDirection:"row",...o}},defaultValues:{gap:"sm"}},KS=(e={})=>{const r=z1(BG,e);return BG.transform(r,R1)},qn=e=>fe(KS(e));qn.raw=KS;const Or=S.forwardRef(function(e,r){const[n,o]=Fn(e,["justify","gap"]),i=KS(n),a={ref:r,...i,...o};return S.createElement(Ed.div,a)}),IG={transform(e){return{position:"relative",maxWidth:"8xl",mx:"auto",px:{base:"4",md:"6",lg:"8"},...e}}},OG=(e={})=>{const r=z1(IG,e);return IG.transform(r,R1)},LG=e=>fe(OG(e));LG.raw=OG;const FG={transform(e,{map:r,isCssUnit:n,isCssVar:o}){const{inline:i,block:a,...l}=e,s=c=>n(c)||o(c)?c:`token(spacing.${c}, ${c})`;return{"--bleed-x":r(i,s),"--bleed-y":r(a,s),marginInline:"calc(var(--bleed-x, 0) * -1)",marginBlock:"calc(var(--bleed-y, 0) * -1)",...l}},defaultValues:{inline:"0",block:"0"}},VG=(e={})=>{const r=z1(FG,e);return FG.transform(r,R1)},qG=e=>fe(VG(e));qG.raw=VG;const NMe=S.createContext(null),ZS={didCatch:!1,error:null};let HG=class extends S.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=ZS}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(e!==null){for(var r,n,o=arguments.length,i=new Array(o),a=0;a0&&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]))}const IMe=[["path",{d:"M18 6l-12 12",key:"svg-0"}],["path",{d:"M6 6l12 12",key:"svg-1"}]],fp=wt("outline","x","X",IMe);function UG({error:e,resetErrorBoundary:r}){const n=e instanceof Error?e.message:"Unknown error",o=S.useRef(null);return S.useEffect(()=>{o.current?.showModal()},[]),y.jsx("dialog",{ref:o,className:fe({margin:"0",padding:"0",position:"fixed",top:"10",left:"10",width:"[calc(100vw - ({spacing.10} * 2))]",height:"max-content",maxHeight:"[calc(100vh - ({spacing.10} * 3))]",background:"likec4.overlay.body",rounded:"sm",borderWidth:3,borderColor:"likec4.overlay.border",shadow:"xl",outline:"none",_backdrop:{cursor:"zoom-out",backdropFilter:"blur(18px)",bg:"[color-mix(in oklab, {colors.likec4.overlay.backdrop} 60%, transparent)]"}}),onClick:i=>{if(i.stopPropagation(),i.target?.nodeName?.toUpperCase()==="DIALOG"){o.current?.close();return}},onClose:i=>{i.stopPropagation(),r()},children:y.jsxs(Or,{p:"xl",gap:"lg",alignItems:"flex-start",flexWrap:"nowrap",children:[y.jsx(Ti,{size:"md",radius:"xl",color:"red",children:y.jsx(fp,{style:{width:20,height:20}})}),y.jsxs(hp,{flex:"1",children:[y.jsx(it,{fz:"md",children:"Oops, something went wrong"}),y.jsx(oi,{maw:"100%",mah:400,type:"auto",children:y.jsx(it,{fz:"md",c:"red",style:{whiteSpace:"pre-wrap",userSelect:"all"},children:n})}),y.jsxs(Or,{gap:"md",mt:"md",children:[y.jsx(Vn,{size:"sm",variant:"default",onClick:()=>r(),children:"Reset"}),y.jsx(it,{fz:"sm",c:"dimmed",children:"See console for more details and report the issue if it persists."})]})]})]})})}function QS(e){return y.jsx(HG,{FallbackComponent:UG,onError:(r,n)=>{console.error(r,n)},...e})}const WG={enableEditor:!1,enableReadOnly:!0,enableCompareWithLatest:!1,enableControls:!1,enableDynamicViewWalkthrough:!1,enableElementDetails:!1,enableFocusMode:!1,enableNavigateTo:!1,enableNotations:!1,enableRelationshipBrowser:!1,enableRelationshipDetails:!1,enableSearch:!1,enableNavigationButtons:!1,enableFitView:!1,enableVscode:!1,enableElementTags:!1},JS=S.createContext(WG);function gp({children:e,features:r,overrides:n}){const o=S.useContext(JS),[i,a]=S.useState(o);return S.useEffect(()=>{a(l=>{const s={...o,...r,...n};return Ir(l,s)?l:s})},[o,r,n]),y.jsx(JS.Provider,{value:i,children:e})}const OMe={enableControls:!1,enableReadOnly:!0,enableCompareWithLatest:!1};gp.Overlays=({children:e})=>y.jsx(gp,{overrides:OMe,children:e});function sr(){return S.useContext(JS)}function LMe({feature:e,children:r,and:n=!0}){return sr()[`enable${e}`]===!0&&n?y.jsx(y.Fragment,{children:r}):null}function FMe(){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 VMe(){const e=FMe();if(e.__xstate__)return e.__xstate__}const qMe=e=>{if(typeof window>"u")return;const r=VMe();r&&r.register(e)};class GG{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 YG=".",HMe="",XG="",UMe="#",WMe="*",KG="xstate.init",GMe="xstate.error",Cy="xstate.stop";function YMe(e,r){return{type:`xstate.after.${e}.${r}`}}function eE(e,r){return{type:`xstate.done.state.${e}`,output:r}}function XMe(e,r){return{type:`xstate.done.actor.${e}`,output:r,actorId:e}}function ZG(e,r){return{type:`xstate.error.actor.${e}`,error:r,actorId:e}}function QG(e){return{type:KG,input:e}}function ts(e){setTimeout(()=>{throw e})}const KMe=typeof Symbol=="function"&&Symbol.observable||"@@observable";function JG(e,r){const n=eY(e),o=eY(r);return typeof o=="string"?typeof n=="string"?o===n:!1:typeof n=="string"?n in o:Object.keys(n).every(i=>i in o?JG(n[i],o[i]):!1)}function tE(e){if(nY(e))return e;const r=[];let n="";for(let o=0;otypeof r>"u"||typeof r=="string"?{target:r}:r)}function oY(e){if(!(e===void 0||e===HMe))return nc(e)}function z3(e,r,n){const o=typeof e=="object",i=o?e:void 0;return{next:(o?e.next:e)?.bind(i),error:(o?e.error:r)?.bind(i),complete:(o?e.complete:n)?.bind(i)}}function iY(e,r){return`${r}.${e}`}function nE(e,r){const n=r.match(/^xstate\.invoke\.(\d+)\.(.*)/);if(!n)return e.implementations.actors[r];const[,o,i]=n,a=e.getStateNodeById(i).config.invoke;return(Array.isArray(a)?a[o]:a).src}function aY(e,r){return`${e.sessionId}.${r}`}let JMe=0;function eNe(e,r){const n=new Map,o=new Map,i=new WeakMap,a=new Set,l={},{clock:s,logger:c}=r,d={schedule:(f,m,v,w,x=Math.random().toString(36).slice(2))=>{const k={source:f,target:m,event:v,delay:w,id:x,startedAt:Date.now()},C=aY(f,x);p._snapshot._scheduledEvents[C]=k;const _=s.setTimeout(()=>{delete l[C],delete p._snapshot._scheduledEvents[C],p._relay(f,m,v)},w);l[C]=_},cancel:(f,m)=>{const v=aY(f,m),w=l[v];delete l[v],delete p._snapshot._scheduledEvents[v],w!==void 0&&s.clearTimeout(w)},cancelAll:f=>{for(const m in p._snapshot._scheduledEvents){const v=p._snapshot._scheduledEvents[m];v.source===f&&d.cancel(f,v.id)}}},u=f=>{if(!a.size)return;const m={...f,rootId:e.sessionId};a.forEach(v=>v.next?.(m))},p={_snapshot:{_scheduledEvents:(r?.snapshot&&r.snapshot.scheduler)??{}},_bookId:()=>`x:${JMe++}`,_register:(f,m)=>(n.set(f,m),f),_unregister:f=>{n.delete(f.sessionId);const m=i.get(f);m!==void 0&&(o.delete(m),i.delete(f))},get:f=>o.get(f),getAll:()=>Object.fromEntries(o.entries()),_set:(f,m)=>{const v=o.get(f);if(v&&v!==m)throw new Error(`Actor with system ID '${f}' already exists.`);o.set(f,m),i.set(m,f)},inspect:f=>{const m=z3(f);return a.add(m),{unsubscribe(){a.delete(m)}}},_sendInspectionEvent:u,_relay:(f,m,v)=>{p._sendInspectionEvent({type:"@xstate.event",sourceRef:f,actorRef:m,event:v}),m._send(v)},scheduler:d,getSnapshot:()=>({_scheduledEvents:{...p._snapshot._scheduledEvents}}),start:()=>{const f=p._snapshot._scheduledEvents;p._snapshot._scheduledEvents={};for(const m in f){const{source:v,target:w,event:x,delay:k,id:C}=f[m];d.schedule(v,w,x,k,C)}},_clock:s,_logger:c};return p}let oE=!1;const iE=1;let ii=(function(e){return e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped",e})({});const tNe={clock:{setTimeout:(e,r)=>setTimeout(e,r),clearTimeout:e=>clearTimeout(e)},logger:console.log.bind(console),devTools:!1};class rNe{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 GG(this._process.bind(this)),this.observers=new Set,this.eventListeners=new Map,this.logger=void 0,this._processingStatus=ii.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={...tNe,...n},{clock:i,logger:a,parent:l,syncSnapshot:s,id:c,systemId:d,inspect:u}=o;this.system=l?l.system:eNe(this,{clock:i,logger:a}),u&&!l&&this.system.inspect(z3(u)),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),m=this.eventListeners.get("*");if(!f&&!m)return;const v=[...f?f.values():[],...m?m.values():[]];for(const w of v)try{w(p)}catch(x){ts(x)}},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 m=oE;try{oE=!0,p.exec(p.info,p.params)}finally{oE=m}};this._processingStatus===ii.Running?f():this._deferred.push(f)}},this.send=this.send.bind(this),this.system._sendInspectionEvent({type:"@xstate.actor",actorRef:this}),d&&(this.systemId=d,this.system._set(d,this)),this._initState(n?.snapshot??n?.state),d&&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(i){this._deferred.length=0,this._snapshot={...r,status:"error",error:i}}switch(this._snapshot.status){case"active":for(const i of this.observers)try{i.next?.(r)}catch(a){ts(a)}break;case"done":for(const i of this.observers)try{i.next?.(r)}catch(a){ts(a)}this._stopProcedure(),this._complete(),this._doneEvent=XMe(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 i=z3(r,n,o);if(this._processingStatus!==ii.Stopped)this.observers.add(i);else switch(this._snapshot.status){case"done":try{i.complete?.()}catch(a){ts(a)}break;case"error":{const a=this._snapshot.error;if(!i.error)ts(a);else try{i.error(a)}catch(l){ts(l)}break}}return{unsubscribe:()=>{this.observers.delete(i)}}}on(r,n){let o=this.eventListeners.get(r);o||(o=new Set,this.eventListeners.set(r,o));const i=n.bind(void 0);return o.add(i),{unsubscribe:()=>{o.delete(i)}}}start(){if(this._processingStatus===ii.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=ii.Running;const r=QG(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(i){o={err:i}}if(o){const{err:i}=o;this._snapshot={...this._snapshot,status:"error",error:i},this._error(i);return}this.update(n,r),r.type===Cy&&(this._stopProcedure(),this._complete())}_stop(){return this._processingStatus===ii.Stopped?this:(this.mailbox.clear(),this._processingStatus===ii.NotStarted?(this._processingStatus=ii.Stopped,this):(this.mailbox.enqueue({type:Cy}),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){ts(n)}this.observers.clear()}_reportError(r){if(!this.observers.size){this._parent||ts(r);return}let n=!1;for(const o of this.observers){const i=o.error;n||=!i;try{i?.(r)}catch(a){ts(a)}}this.observers.clear(),n&&ts(r)}_error(r){this._stopProcedure(),this._reportError(r),this._parent&&this.system._relay(this,this._parent,ZG(this.id,r))}_stopProcedure(){return this._processingStatus!==ii.Running?this:(this.system.scheduler.cancelAll(this),this.mailbox.clear(),this.mailbox=new GG(this._process.bind(this)),this._processingStatus=ii.Stopped,this.system._unregister(this),this)}_send(r){this._processingStatus!==ii.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:qMe)(this)}toJSON(){return{xstate$$type:iE,id:this.id}}getPersistedSnapshot(r){return this.logic.getPersistedSnapshot(this._snapshot,r)}[KMe](){return this}getSnapshot(){return this._snapshot}}function qf(e,...[r]){return new rNe(e,r)}function nNe(e,r,n,o,{sendId:i}){const a=typeof i=="function"?i(n,o):i;return[r,{sendId:a},void 0]}function oNe(e,r){e.defer(()=>{e.system.scheduler.cancel(e.self,r.sendId)})}function ua(e){function r(n,o){}return r.type="xstate.cancel",r.sendId=e,r.resolve=nNe,r.execute=oNe,r}function iNe(e,r,n,o,{id:i,systemId:a,src:l,input:s,syncSnapshot:c}){const d=typeof l=="string"?nE(r.machine,l):l,u=typeof i=="function"?i(n):i;let p,f;return d&&(f=typeof s=="function"?s({context:r.context,event:n.event,self:e.self}):s,p=qf(d,{id:u,src:l,parent:e.self,syncSnapshot:c,systemId:a,input:f})),[vp(r,{children:{...r.children,[u]:p}}),{id:i,systemId:a,actorRef:p,src:l,input:f},void 0]}function aNe(e,{actorRef:r}){r&&e.defer(()=>{r._processingStatus!==ii.Stopped&&r.start()})}function T3(...[e,{id:r,systemId:n,input:o,syncSnapshot:i=!1}={}]){function a(l,s){}return a.type="xstate.spawnChild",a.id=r,a.systemId=n,a.src=e,a.input=o,a.syncSnapshot=i,a.resolve=iNe,a.execute=aNe,a}function lNe(e,r,n,o,{actorRef:i}){const a=typeof i=="function"?i(n,o):i,l=typeof a=="string"?r.children[a]:a;let s=r.children;return l&&(s={...s},delete s[l.id]),[vp(r,{children:s}),l,void 0]}function sNe(e,r){if(r){if(e.system._unregister(r),r._processingStatus!==ii.Running){e.stopChild(r);return}e.defer(()=>{e.stopChild(r)})}}function $y(e){function r(n,o){}return r.type="xstate.stopChild",r.actorRef=e,r.resolve=lNe,r.execute=sNe,r}function j3(e,r,n,o){const{machine:i}=o,a=typeof e=="function",l=a?e:i.implementations.guards[typeof e=="string"?e:e.type];if(!a&&!l)throw new Error(`Guard '${typeof e=="string"?e:e.type}' is not implemented.'.`);if(typeof l!="function")return j3(l,r,n,o);const s={context:r,event:n},c=a||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 aE=e=>e.type==="atomic"||e.type==="final";function Hf(e){return Object.values(e.states).filter(r=>r.type!=="history")}function Ry(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 A3(e){const r=new Set(e),n=sY(r);for(const o of r)if(o.type==="compound"&&(!n.get(o)||!n.get(o).length))uY(o).forEach(i=>r.add(i));else if(o.type==="parallel"){for(const i of Hf(o))if(i.type!=="history"&&!r.has(i)){const a=uY(i);for(const l of a)r.add(l)}}for(const o of r){let i=o.parent;for(;i;)r.add(i),i=i.parent}return r}function lY(e,r){const n=r.get(e);if(!n)return{};if(e.type==="compound"){const i=n[0];if(i){if(aE(i))return i.key}else return{}}const o={};for(const i of n)o[i.key]=lY(i,r);return o}function sY(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 cY(e,r){const n=A3(r);return lY(e,sY(n))}function lE(e,r){return r.type==="compound"?Hf(r).some(n=>n.type==="final"&&e.has(n)):r.type==="parallel"?Hf(r).every(n=>lE(e,n)):r.type==="final"}const D3=e=>e[0]===UMe;function cNe(e,r){return e.transitions.get(r)||[...e.transitions.keys()].filter(n=>{if(n===WMe)return!0;if(!n.endsWith(".*"))return!1;const o=n.split("."),i=r.split(".");for(let a=0;ao.length-n.length).flatMap(n=>e.transitions.get(n))}function dNe(e){const r=e.config.after;if(!r)return[];const n=o=>{const i=YMe(o,e.id),a=i.type;return e.entry.push(ai(i,{id:a,delay:o})),e.exit.push(ua(a)),a};return Object.keys(r).flatMap(o=>{const i=r[o],a=typeof i=="string"?{target:i}:i,l=Number.isNaN(+o)?o:+o,s=n(l);return nc(a).map(c=>({...c,event:s,delay:l}))}).map(o=>{const{delay:i}=o;return{...mp(e,o.event,o),delay:i}})}function mp(e,r,n){const o=oY(n.target),i=n.reenter??!1,a=hNe(e,o),l={...n,actions:nc(n.actions),guard:n.guard,target:a,source:e,reenter:i,eventType:r,toJSON:()=>({...l,source:`#${e.id}`,target:a?a.map(s=>`#${s.id}`):void 0})};return l}function uNe(e){const r=new Map;if(e.config.on)for(const n of Object.keys(e.config.on)){if(n===XG)throw new Error('Null events ("") cannot be specified as a transition key. Use `always: { ... }` instead.');const o=e.config.on[n];r.set(n,Vf(o).map(i=>mp(e,n,i)))}if(e.config.onDone){const n=`xstate.done.state.${e.id}`;r.set(n,Vf(e.config.onDone).map(o=>mp(e,n,o)))}for(const n of e.invoke){if(n.onDone){const o=`xstate.done.actor.${n.id}`;r.set(o,Vf(n.onDone).map(i=>mp(e,o,i)))}if(n.onError){const o=`xstate.error.actor.${n.id}`;r.set(o,Vf(n.onError).map(i=>mp(e,o,i)))}if(n.onSnapshot){const o=`xstate.snapshot.${n.id}`;r.set(o,Vf(n.onSnapshot).map(i=>mp(e,o,i)))}}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 pNe(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"?[]:nc(r.actions),eventType:null,reenter:!1,target:n?[n]:[],toJSON:()=>({...o,source:`#${e.id}`,target:n?[`#${n.id}`]:[]})};return o}function hNe(e,r){if(r!==void 0)return r.map(n=>{if(typeof n!="string")return n;if(D3(n))return e.machine.getStateNodeById(n);const o=n[0]===YG;if(o&&!e.parent)return P3(e,n.slice(1));const i=o?e.key+n:n;if(e.parent)try{return P3(e.parent,i)}catch(a){throw new Error(`Invalid transition definition for state node '${e.id}': +${a.message}`)}else throw new Error(`Invalid target: "${n}" is not a valid target from the root node. Did you mean ".${n}"?`)})}function dY(e){const r=oY(e.config.target);return r?{target:r.map(n=>typeof n=="string"?P3(e.parent,n):n)}:e.parent.initial}function yp(e){return e.type==="history"}function uY(e){const r=pY(e);for(const n of r)for(const o of Ry(n,e))r.add(o);return r}function pY(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 i of Hf(o))n(i)}}return n(e),r}function Uf(e,r){if(D3(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 P3(e,r){if(typeof r=="string"&&D3(r))try{return e.machine.getStateNodeById(r)}catch{}const n=tE(r).slice();let o=e;for(;n.length;){const i=n.shift();if(!i.length)break;o=Uf(o,i)}return o}function M3(e,r){if(typeof r=="string"){const i=e.states[r];if(!i)throw new Error(`State '${r}' does not exist on '${e.id}'`);return[e,i]}const n=Object.keys(r),o=n.map(i=>Uf(e,i)).filter(Boolean);return[e.machine.root,e].concat(o,n.reduce((i,a)=>{const l=Uf(e,a);if(!l)return i;const s=M3(l,r[a]);return i.concat(s)},[]))}function fNe(e,r,n,o){const i=Uf(e,r).next(n,o);return!i||!i.length?e.next(n,o):i}function gNe(e,r,n,o){const i=Object.keys(r),a=Uf(e,i[0]),l=sE(a,r[i[0]],n,o);return!l||!l.length?e.next(n,o):l}function mNe(e,r,n,o){const i=[];for(const a of Object.keys(r)){const l=r[a];if(!l)continue;const s=Uf(e,a),c=sE(s,l,n,o);c&&i.push(...c)}return i.length?i:e.next(n,o)}function sE(e,r,n,o){return typeof r=="string"?fNe(e,r,n,o):Object.keys(r).length===1?gNe(e,r,n,o):mNe(e,r,n,o)}function yNe(e){return Object.keys(e.states).map(r=>e.states[r]).filter(r=>r.type==="history")}function Cd(e,r){let n=e;for(;n.parent&&n.parent!==r;)n=n.parent;return n.parent===r}function vNe(e,r){const n=new Set(e),o=new Set(r);for(const i of n)if(o.has(i))return!0;for(const i of o)if(n.has(i))return!0;return!1}function hY(e,r,n){const o=new Set;for(const i of e){let a=!1;const l=new Set;for(const s of o)if(vNe(dE([i],r,n),dE([s],r,n)))if(Cd(i.source,s.source))l.add(s);else{a=!0;break}if(!a){for(const s of l)o.delete(s);o.add(i)}}return Array.from(o)}function bNe(e){const[r,...n]=e;for(const o of Ry(r,void 0))if(n.every(i=>Cd(i,o)))return o}function cE(e,r){if(!e.target)return[];const n=new Set;for(const o of e.target)if(yp(o))if(r[o.id])for(const i of r[o.id])n.add(i);else for(const i of cE(dY(o),r))n.add(i);else n.add(o);return[...n]}function fY(e,r){const n=cE(e,r);if(!n)return;if(!e.reenter&&n.every(i=>i===e.source||Cd(i,e.source)))return e.source;const o=bNe(n.concat(e.source));if(o)return o;if(!e.reenter)return e.source.machine.root}function dE(e,r,n){const o=new Set;for(const i of e)if(i.target?.length){const a=fY(i,n);i.reenter&&i.source===a&&o.add(a);for(const l of r)Cd(l,a)&&o.add(l)}return[...o]}function xNe(e,r){if(e.length!==r.size)return!1;for(const n of e)if(!r.has(n))return!1;return!0}function uE(e,r,n,o,i,a){if(!e.length)return r;const l=new Set(r._nodes);let s=r.historyValue;const c=hY(e,l,s);let d=r;i||([d,s]=SNe(d,o,n,c,l,s,a,n.actionExecutor)),d=Gf(d,o,n,c.flatMap(p=>p.actions),a,void 0),d=kNe(d,o,n,c,l,a,s,i);const u=[...l];d.status==="done"&&(d=Gf(d,o,n,u.sort((p,f)=>f.order-p.order).flatMap(p=>p.exit),a,void 0));try{return s===r.historyValue&&xNe(r._nodes,l)?d:vp(d,{_nodes:u,historyValue:s})}catch(p){throw p}}function wNe(e,r,n,o,i){if(o.output===void 0)return;const a=eE(i.id,i.output!==void 0&&i.parent?rE(i.output,e.context,r,n.self):void 0);return rE(o.output,e.context,a,n.self)}function kNe(e,r,n,o,i,a,l,s){let c=e;const d=new Set,u=new Set;_Ne(o,l,u,d),s&&u.add(e.machine.root);const p=new Set;for(const f of[...d].sort((m,v)=>m.order-v.order)){i.add(f);const m=[];m.push(...f.entry);for(const v of f.invoke)m.push(T3(v.src,{...v,syncSnapshot:!!v.onSnapshot}));if(u.has(f)){const v=f.initial.actions;m.push(...v)}if(c=Gf(c,r,n,m,a,f.invoke.map(v=>v.id)),f.type==="final"){const v=f.parent;let w=v?.type==="parallel"?v:v?.parent,x=w||f;for(v?.type==="compound"&&a.push(eE(v.id,f.output!==void 0?rE(f.output,c.context,r,n.self):void 0));w?.type==="parallel"&&!p.has(w)&&lE(i,w);)p.add(w),a.push(eE(w.id)),x=w,w=w.parent;if(w)continue;c=vp(c,{status:"done",output:wNe(c,r,n,c.machine.root,x)})}}return c}function _Ne(e,r,n,o){for(const i of e){const a=fY(i,r);for(const s of i.target||[])!yp(s)&&(i.source!==s||i.source!==a||i.reenter)&&(o.add(s),n.add(s)),Wf(s,r,n,o);const l=cE(i,r);for(const s of l){const c=Ry(s,a);a?.type==="parallel"&&c.push(a),gY(o,r,n,c,!i.source.parent&&i.reenter?void 0:a)}}}function Wf(e,r,n,o){if(yp(e))if(r[e.id]){const i=r[e.id];for(const a of i)o.add(a),Wf(a,r,n,o);for(const a of i)pE(a,e.parent,o,r,n)}else{const i=dY(e);for(const a of i.target)o.add(a),i===e.parent?.initial&&n.add(e.parent),Wf(a,r,n,o);for(const a of i.target)pE(a,e.parent,o,r,n)}else if(e.type==="compound"){const[i]=e.initial.target;yp(i)||(o.add(i),n.add(i)),Wf(i,r,n,o),pE(i,e,o,r,n)}else if(e.type==="parallel")for(const i of Hf(e).filter(a=>!yp(a)))[...o].some(a=>Cd(a,i))||(yp(i)||(o.add(i),n.add(i)),Wf(i,r,n,o))}function gY(e,r,n,o,i){for(const a of o)if((!i||Cd(a,i))&&e.add(a),a.type==="parallel")for(const l of Hf(a).filter(s=>!yp(s)))[...e].some(s=>Cd(s,l))||(e.add(l),Wf(l,r,n,e))}function pE(e,r,n,o,i){gY(n,o,i,Ry(e,r))}function SNe(e,r,n,o,i,a,l,s){let c=e;const d=dE(o,i,a);d.sort((p,f)=>f.order-p.order);let u;for(const p of d)for(const f of yNe(p)){let m;f.history==="deep"?m=v=>aE(v)&&Cd(v,p):m=v=>v.parent===p,u??={...a},u[f.id]=Array.from(i).filter(m)}for(const p of d)c=Gf(c,r,n,[...p.exit,...p.invoke.map(f=>$y(f.id))],l,void 0),i.delete(p);return[c,u||a]}function ENe(e,r){return e.implementations.actions[r]}function mY(e,r,n,o,i,a){const{machine:l}=e;let s=e;for(const c of o){const d=typeof c=="function",u=d?c:ENe(l,typeof c=="string"?c:c.type),p={context:s.context,event:r,self:n.self,system:n.system},f=d||typeof c=="string"?void 0:"params"in c?typeof c.params=="function"?c.params({context:s.context,event:r}):c.params:void 0;if(!u||!("resolve"in u)){n.actionExecutor({type:typeof c=="string"?c:typeof c=="object"?c.type:c.name||"(anonymous)",info:p,params:f,exec:u});continue}const m=u,[v,w,x]=m.resolve(n,s,p,f,u,i);s=v,"retryResolve"in m&&a?.push([m,w]),"execute"in m&&n.actionExecutor({type:m.type,info:p,params:w,exec:m.execute.bind(null,n,w)}),x&&(s=mY(s,r,n,x,i,a))}return s}function Gf(e,r,n,o,i,a){const l=a?[]:void 0,s=mY(e,r,n,o,{internalQueue:i,deferredActorIds:a},l);return l?.forEach(([c,d])=>{c.retryResolve(n,s,d)}),s}function hE(e,r,n,o){let i=e;const a=[];function l(d,u,p){n.system._sendInspectionEvent({type:"@xstate.microstep",actorRef:n.self,event:u,snapshot:d,_transitions:p}),a.push(d)}if(r.type===Cy)return i=vp(yY(i,r,n),{status:"stopped"}),l(i,r,[]),{snapshot:i,microstates:a};let s=r;if(s.type!==KG){const d=s,u=QMe(d),p=vY(d,i);if(u&&!p.length)return i=vp(e,{status:"error",error:d.error}),l(i,d,[]),{snapshot:i,microstates:a};i=uE(p,e,n,s,!1,o),l(i,d,p)}let c=!0;for(;i.status==="active";){let d=c?CNe(i,s):[];const u=d.length?i:void 0;if(!d.length){if(!o.length)break;s=o.shift(),d=vY(s,i)}i=uE(d,i,n,s,!1,o),c=i!==u,l(i,s,d)}return i.status!=="active"&&yY(i,s,n),{snapshot:i,microstates:a}}function yY(e,r,n){return Gf(e,r,n,Object.values(e.children).map(o=>$y(o)),[],void 0)}function vY(e,r){return r.machine.getTransitionData(r,e)}function CNe(e,r){const n=new Set,o=e._nodes.filter(aE);for(const i of o)e:for(const a of[i].concat(Ry(i,void 0)))if(a.always){for(const l of a.always)if(l.guard===void 0||j3(l.guard,e.context,r,e)){n.add(l);break e}}return hY(Array.from(n),new Set(e._nodes),e.historyValue)}function $Ne(e,r){const n=A3(M3(e,r));return cY(e,[...n])}function RNe(e){return!!e&&typeof e=="object"&&"machine"in e&&"value"in e}const zNe=function(e){return JG(e,this.value)},TNe=function(e){return this.tags.has(e)},jNe=function(e){const r=this.machine.getTransitionData(this,e);return!!r?.length&&r.some(n=>n.target!==void 0||n.actions.length)},ANe=function(){const{_nodes:e,tags:r,machine:n,getMeta:o,toJSON:i,can:a,hasTag:l,matches:s,...c}=this;return{...c,tags:Array.from(r)}},DNe=function(){return this._nodes.reduce((e,r)=>(r.meta!==void 0&&(e[r.id]=r.meta),e),{})};function N3(e,r){return{status:e.status,output:e.output,error:e.error,machine:r,context:e.context,_nodes:e._nodes,value:cY(r.root,e._nodes),tags:new Set(e._nodes.flatMap(n=>n.tags)),children:e.children,historyValue:e.historyValue||{},matches:zNe,hasTag:TNe,can:jNe,getMeta:DNe,toJSON:ANe}}function vp(e,r={}){return N3({...e,...r},e.machine)}function PNe(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(i=>({id:i.id})))}return r}function MNe(e,r){const{_nodes:n,tags:o,machine:i,children:a,context:l,can:s,hasTag:c,matches:d,getMeta:u,toJSON:p,...f}=e,m={};for(const v in a){const w=a[v];m[v]={snapshot:w.getPersistedSnapshot(r),src:w.src,systemId:w.systemId,syncSnapshot:w._syncSnapshot}}return{...f,context:bY(l),children:m,historyValue:PNe(f.historyValue)}}function bY(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:iE,id:o.id};else{const i=bY(o);i!==o&&(r??=Array.isArray(e)?e.slice():{...e},r[n]=i)}}return r??e}function NNe(e,r,n,o,{event:i,id:a,delay:l},{internalQueue:s}){const c=r.machine.implementations.delays;if(typeof i=="string")throw new Error(`Only event objects may be used with raise; use raise({ type: "${i}" }) instead`);const d=typeof i=="function"?i(n,o):i;let u;if(typeof l=="string"){const p=c&&c[l];u=typeof p=="function"?p(n,o):p}else u=typeof l=="function"?l(n,o):l;return typeof u!="number"&&s.push(d),[r,{event:d,id:a,delay:u},void 0]}function BNe(e,r){const{event:n,delay:o,id:i}=r;if(typeof o=="number"){e.defer(()=>{const a=e.self;e.system.scheduler.schedule(a,a,n,o,i)});return}}function ai(e,r){function n(o,i){}return n.type="xstate.raise",n.event=e,n.id=r?.id,n.delay=r?.delay,n.resolve=NNe,n.execute=BNe,n}const xY=new WeakMap;function B3(e){return{config:e,start:(r,n)=>{const{self:o,system:i,emit:a}=n,l={receivers:void 0,dispose:void 0};xY.set(o,l),l.dispose=e({input:r.input,system:i,self:o,sendBack:s=>{o.getSnapshot().status!=="stopped"&&o._parent&&i._relay(o,o._parent,s)},receive:s=>{l.receivers??=new Set,l.receivers.add(s)},emit:a})},transition:(r,n,o)=>{const i=xY.get(o.self);return n.type===Cy?(r={...r,status:"stopped",error:void 0},i.dispose?.(),r):(i.receivers?.forEach(a=>a(n)),r)},getInitialSnapshot:(r,n)=>({status:"active",output:void 0,error:void 0,input:n}),getPersistedSnapshot:r=>r,restoreSnapshot:r=>r}}const wY="xstate.promise.resolve",kY="xstate.promise.reject",I3=new WeakMap;function zy(e){return{config:e,transition:(r,n,o)=>{if(r.status!=="active")return r;switch(n.type){case wY:{const i=n.data;return{...r,status:"done",output:i,input:void 0}}case kY:return{...r,status:"error",error:n.data,input:void 0};case Cy:return I3.get(o.self)?.abort(),{...r,status:"stopped",input:void 0};default:return r}},start:(r,{self:n,system:o,emit:i})=>{if(r.status!=="active")return;const a=new AbortController;I3.set(n,a),Promise.resolve(e({input:r.input,system:o,self:n,signal:a.signal,emit:i})).then(l=>{n.getSnapshot().status==="active"&&(I3.delete(n),o._relay(n,n,{type:wY,data:l}))},l=>{n.getSnapshot().status==="active"&&(I3.delete(n),o._relay(n,n,{type:kY,data:l}))})},getInitialSnapshot:(r,n)=>({status:"active",output:void 0,error:void 0,input:n}),getPersistedSnapshot:r=>r,restoreSnapshot:r=>r}}function INe(e,{machine:r,context:n},o,i){const a=(l,s)=>{if(typeof l=="string"){const c=nE(r,l);if(!c)throw new Error(`Actor logic '${l}' not implemented in machine '${r.id}'`);const d=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 i[d.id]=d,d}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=a(l,s);return i[c.id]=c,e.defer(()=>{c._processingStatus!==ii.Stopped&&c.start()}),c}}function ONe(e,r,n,o,{assignment:i}){if(!r.context)throw new Error("Cannot assign to undefined `context`. Ensure that `context` is defined in the machine config.");const a={},l={context:r.context,event:n.event,spawn:INe(e,r,n.event,a),self:e.self,system:e.system};let s={};if(typeof i=="function")s=i(l,o);else for(const d of Object.keys(i)){const u=i[d];s[d]=typeof u=="function"?u(l,o):u}const c=Object.assign({},r.context,s);return[vp(r,{context:c,children:Object.keys(a).length?{...r.children,...a}:r.children}),void 0,void 0]}function Bt(e){function r(n,o){}return r.type="xstate.assign",r.assignment=e,r.resolve=ONe,r}const _Y=new WeakMap;function Yf(e,r,n){let o=_Y.get(e);return o?r in o||(o[r]=n()):(o={[r]:n()},_Y.set(e,o)),o[r]}const LNe={},Ty=e=>typeof e=="string"?{type:e}:typeof e=="function"?"resolve"in e?{type:e.type}:{type:e.name}:e;class O3{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(YG),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?tY(this.config.states,(o,i)=>new O3(o,{_parent:this,_key:i,_machine:this.machine})):LNe,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=nc(this.config.entry).slice(),this.exit=nc(this.config.exit).slice(),this.meta=this.config.meta,this.output=this.type==="final"||!this.parent?this.config.output:void 0,this.tags=nc(r.tags).slice()}_initialize(){this.transitions=uNe(this),this.config.always&&(this.always=Vf(this.config.always).map(r=>mp(this,XG,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(Ty),eventType:null,reenter:!1,toJSON:()=>({target:this.initial.target.map(r=>`#${r.id}`),source:`#${this.id}`,actions:this.initial.actions.map(Ty),eventType:null})}:void 0,history:this.history,states:tY(this.states,r=>r.definition),on:this.on,transitions:[...this.transitions.values()].flat().map(r=>({...r,actions:r.actions.map(Ty)})),entry:this.entry.map(Ty),exit:this.exit.map(Ty),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 Yf(this,"invoke",()=>nc(this.config.invoke).map((r,n)=>{const{src:o,systemId:i}=r,a=r.id??iY(this.id,n),l=typeof o=="string"?o:`xstate.invoke.${iY(this.id,n)}`;return{...r,src:l,id:a,systemId:i,toJSON(){const{onDone:s,onError:c,...d}=r;return{...d,type:"xstate.invoke",src:l,id:a}}}}))}get on(){return Yf(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 Yf(this,"delayedTransitions",()=>dNe(this))}get initial(){return Yf(this,"initial",()=>pNe(this,this.config.initial))}next(r,n){const o=n.type,i=[];let a;const l=Yf(this,`candidates-${o}`,()=>cNe(this,o));for(const s of l){const{guard:c}=s,d=r.context;let u=!1;try{u=!c||j3(c,d,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(u){i.push(...s.actions),a=s;break}}return a?[a]:void 0}get events(){return Yf(this,"events",()=>{const{states:r}=this,n=new Set(this.ownEvents);if(r)for(const o of Object.keys(r)){const i=r[o];if(i.states)for(const a of i.events)n.add(`${a}`)}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 FNe="#";class fE{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 O3(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:i,delays:a}=this.implementations;return new fE(this.config,{actions:{...n,...r.actions},guards:{...o,...r.guards},actors:{...i,...r.actors},delays:{...a,...r.delays}})}resolveState(r){const n=$Ne(this.root,r.value),o=A3(M3(this.root,n));return N3({_nodes:[...o],context:r.context||{},children:{},status:lE(o,this.root)?"done":r.status||"active",output:r.output,error:r.error,historyValue:r.historyValue},this)}transition(r,n,o){return hE(r,n,o,[]).snapshot}microstep(r,n,o){return hE(r,n,o,[]).microstates}getTransitionData(r,n){return sE(this.root,r.value,r,n)||[]}getPreInitialState(r,n,o){const{context:i}=this.config,a=N3({context:typeof i!="function"&&i?i:{},_nodes:[this.root],children:{},status:"active"},this);return typeof i=="function"?Gf(a,n,r,[Bt(({spawn:l,event:s,self:c})=>i({spawn:l,input:s.input,self:c}))],o,void 0):a}getInitialSnapshot(r,n){const o=QG(n),i=[],a=this.getPreInitialState(r,o,i),l=uE([{target:[...pY(this.root)],source:this.root,reenter:!0,actions:[],eventType:null,toJSON:null}],a,r,o,!0,i),{snapshot:s}=hE(l,o,r,i);return s}start(r){Object.values(r.children).forEach(n=>{n.getSnapshot().status==="active"&&n.start()})}getStateNodeById(r){const n=tE(r),o=n.slice(1),i=D3(n[0])?n[0].slice(FNe.length):n[0],a=this.idMap.get(i);if(!a)throw new Error(`Child state node '#${i}' does not exist on machine '${this.id}'`);return P3(a,o)}get definition(){return this.root.definition}toJSON(){return this.definition}getPersistedSnapshot(r,n){return MNe(r,n)}restoreSnapshot(r,n){const o={},i=r.children;Object.keys(i).forEach(p=>{const f=i[p],m=f.snapshot,v=f.src,w=typeof v=="string"?nE(this,v):v;if(!w)return;const x=qf(w,{id:p,parent:n.self,syncSnapshot:f.syncSnapshot,snapshot:m,src:v,systemId:f.systemId});o[p]=x});function a(p,f){if(f instanceof O3)return f;try{return p.machine.getStateNodeById(f.id)}catch{}}function l(p,f){if(!f||typeof f!="object")return{};const m={};for(const v in f){const w=f[v];for(const x of w){const k=a(p,x);k&&(m[v]??=[],m[v].push(k))}}return m}const s=l(this.root,r.historyValue),c=N3({...r,children:o,_nodes:Array.from(A3(M3(this.root,r.value))),historyValue:s},this),d=new Set;function u(p,f){if(!d.has(p)){d.add(p);for(const m in p){const v=p[m];if(v&&typeof v=="object"){if("xstate$$type"in v&&v.xstate$$type===iE){p[m]=f[v.id];continue}u(v,f)}}}}return u(c.context,o),c}}function VNe(e,r,n,o,{event:i}){const a=typeof i=="function"?i(n,o):i;return[r,{event:a},void 0]}function qNe(e,{event:r}){e.defer(()=>e.emit(r))}function gE(e){function r(n,o){}return r.type="xstate.emit",r.event=e,r.resolve=VNe,r.execute=qNe,r}let mE=(function(e){return e.Parent="#_parent",e.Internal="#_internal",e})({});function HNe(e,r,n,o,{to:i,event:a,id:l,delay:s},c){const d=r.machine.implementations.delays;if(typeof a=="string")throw new Error(`Only event objects may be used with sendTo; use sendTo({ type: "${a}" }) instead`);const u=typeof a=="function"?a(n,o):a;let p;if(typeof s=="string"){const v=d&&d[s];p=typeof v=="function"?v(n,o):v}else p=typeof s=="function"?s(n,o):s;const f=typeof i=="function"?i(n,o):i;let m;if(typeof f=="string"){if(f===mE.Parent?m=e.self._parent:f===mE.Internal?m=e.self:f.startsWith("#_")?m=r.children[f.slice(2)]:m=c.deferredActorIds?.includes(f)?f:r.children[f],!m)throw new Error(`Unable to send event to actor '${f}' from machine '${r.machine.id}'.`)}else m=f||e.self;return[r,{to:m,targetId:typeof f=="string"?f:void 0,event:u,id:l,delay:p},void 0]}function UNe(e,r,n){typeof n.to=="string"&&(n.to=r.children[n.to])}function WNe(e,r){e.defer(()=>{const{to:n,event:o,delay:i,id:a}=r;if(typeof i=="number"){e.system.scheduler.schedule(e.self,n,o,i,a);return}e.system._relay(e.self,n,o.type===GMe?ZG(e.self.id,o.data):o)})}function jy(e,r,n){function o(i,a){}return o.type="xstate.sendTo",o.to=e,o.event=r,o.id=n?.id,o.delay=n?.delay,o.resolve=HNe,o.retryResolve=UNe,o.execute=WNe,o}function GNe(e,r){return jy(mE.Parent,e,r)}function YNe(e,r,n,o,{collect:i}){const a=[],l=function(s){a.push(s)};return l.assign=(...s)=>{a.push(Bt(...s))},l.cancel=(...s)=>{a.push(ua(...s))},l.raise=(...s)=>{a.push(ai(...s))},l.sendTo=(...s)=>{a.push(jy(...s))},l.sendParent=(...s)=>{a.push(GNe(...s))},l.spawnChild=(...s)=>{a.push(T3(...s))},l.stopChild=(...s)=>{a.push($y(...s))},l.emit=(...s)=>{a.push(gE(...s))},i({context:n.context,event:n.event,enqueue:l,check:s=>j3(s,r.context,n.event,r),self:e.self,system:e.system},o),[r,void 0,a]}function rs(e){function r(n,o){}return r.type="xstate.enqueueActions",r.collect=e,r.resolve=YNe,r}function XNe(e,r,n,o,{value:i,label:a}){return[r,{value:typeof i=="function"?i(n,o):i,label:a},void 0]}function KNe({logger:e},{value:r,label:n}){n?e(n,r):e(r)}function yE(e=({context:n,event:o})=>({context:n,event:o}),r){function n(o,i){}return n.type="xstate.log",n.value=e,n.label=r,n.resolve=XNe,n.execute=KNe,n}function ht(e,r){const n=nc(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 ZNe(e,r){return new fE(e,r)}function ns({schemas:e,actors:r,actions:n,guards:o,delays:i}){return{assign:Bt,sendTo:jy,raise:ai,log:yE,cancel:ua,stopChild:$y,enqueueActions:rs,emit:gE,spawnChild:T3,createStateConfig:a=>a,createAction:a=>a,createMachine:a=>ZNe({...a,schemas:e},{actors:r,actions:n,guards:o,delays:i}),extend:a=>ns({schemas:e,actors:r,actions:{...n,...a.actions},guards:{...o,...a.guards},delays:{...i,...a.delays}})}}fV();const SY=(e,r)=>{r(e);const n=e.getSnapshot().children;n&&Object.values(n).forEach(o=>{SY(o,r)})};function QNe(e){const r=[];SY(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,i])=>{o._processingStatus=0,o._snapshot=i})}function JNe(e,...[r]){let[[n,o],i]=S.useState(()=>{const a=qf(e,r);return[e.config,a]});if(e.config!==n){const a=qf(e,{...r,snapshot:o.getPersistedSnapshot({__unsafeAllowInlineActors:!0})});i([e.config,a]),o=a}return hPe(()=>{o.logic.implementations=e.implementations}),o}function vE(e,...[r,n]){const o=JNe(e,r);return S.useEffect(()=>{if(!n)return;const i=o.subscribe(z3(n));return()=>{i.unsubscribe()}},[n]),S.useEffect(()=>(o.start(),()=>{QNe(o)}),[o]),o}function eBe(e,r){return e===r}function pn(e,r,n=eBe){const o=S.useCallback(a=>{if(!e)return()=>{};const{unsubscribe:l}=e.subscribe(a);return l},[e]),i=S.useCallback(()=>e?.getSnapshot(),[e]);return yV.useSyncExternalStoreWithSelector(o,i,i,r,n)}const bE=S.createContext(null);bE.displayName="DiagramActorSafeContext";const xE=S.createContext(null);xE.displayName="DiagramApiSafeContext";const tBe=bE.Provider,rBe=xE.Provider;function Xf(){const e=S.useContext(bE);if(e===null)throw new Error("DiagramActorRef is not provided");return e}function Mt(){const e=S.useContext(xE);if(e===null)throw new Error("DiagramApi is not provided");return e}function at(e){const r=S.useRef(e);r.current=e;const n=S.useRef(null);return n.current==null&&(n.current=((...o)=>r.current?.(...o))),n.current}function wE(e,r=Ir){const n=Xf();return pn(n,e,r)}function pa(e,r=Ir,n){const o=Xf(),i=at(e),a=S.useCallback(l=>i(l.context),n??[]);return pn(o,a,r)}function ji(e,r,n){const o=Xf(),i=at(r),a=S.useRef(!1),l=n?.once??!1;S.useEffect(()=>{if(l&&a.current)return;let s=o.on(e,c=>{i(c),a.current=!0,l&&(s?.unsubscribe(),s=null)});return()=>{s?.unsubscribe()}},[o,e,l])}const nBe=e=>e.children.overlays;function oBe(){return wE(nBe,Object.is)}const iBe=e=>e.children.search??null;function aBe(){return wE(iBe,Object.is)}function kE(e,r){e.indexOf(r)===-1&&e.push(r)}function L3(e,r){const n=e.indexOf(r);n>-1&&e.splice(n,1)}const oc=(e,r,n)=>n>r?r:n{};const ic={},EY=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e);function CY(e){return typeof e=="object"&&e!==null}const $Y=e=>/^0[^.\s]+$/u.test(e);function SE(e){let r;return()=>(r===void 0&&(r=e()),r)}const ha=e=>e,lBe=(e,r)=>n=>r(e(n)),Ay=(...e)=>e.reduce(lBe),Kf=(e,r,n)=>{const o=r-e;return o===0?1:(n-e)/o};class EE{constructor(){this.subscriptions=[]}add(r){return kE(this.subscriptions,r),()=>L3(this.subscriptions,r)}notify(r,n,o){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](r,n,o);else for(let a=0;ae*1e3,fa=e=>e/1e3;function RY(e,r){return r?e*(1e3/r):0}const sBe=(e,r,n)=>{const o=r-e;return((n-e)%o+o)%o+e},zY=(e,r,n)=>(((1-3*n+3*r)*e+(3*n-6*r))*e+3*r)*e,cBe=1e-7,dBe=12;function uBe(e,r,n,o,i){let a,l,s=0;do l=r+(n-r)/2,a=zY(l,o,i)-e,a>0?n=l:r=l;while(Math.abs(a)>cBe&&++suBe(a,0,1,e,n);return a=>a===0||a===1?a:zY(i(a),r,o)}const TY=e=>r=>r<=.5?e(2*r)/2:(2-e(2*(1-r)))/2,jY=e=>r=>1-e(1-r),AY=Dy(.33,1.53,.69,.99),CE=jY(AY),DY=TY(CE),PY=e=>(e*=2)<1?.5*CE(e):.5*(2-Math.pow(2,-10*(e-1))),$E=e=>1-Math.sin(Math.acos(e)),MY=jY($E),NY=TY($E),pBe=Dy(.42,0,1,1),hBe=Dy(0,0,.58,1),BY=Dy(.42,0,.58,1),IY=e=>Array.isArray(e)&&typeof e[0]!="number";function OY(e,r){return IY(e)?e[sBe(0,e.length,r)]:e}const LY=e=>Array.isArray(e)&&typeof e[0]=="number",fBe={linear:ha,easeIn:pBe,easeInOut:BY,easeOut:hBe,circIn:$E,circInOut:NY,circOut:MY,backIn:CE,backInOut:DY,backOut:AY,anticipate:PY},gBe=e=>typeof e=="string",FY=e=>{if(LY(e)){_E(e.length===4);const[r,n,o,i]=e;return Dy(r,n,o,i)}else if(gBe(e))return fBe[e];return e},F3=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function mBe(e,r){let n=new Set,o=new Set,i=!1,a=!1;const l=new WeakSet;let s={delta:0,timestamp:0,isProcessing:!1};function c(u){l.has(u)&&(d.schedule(u),e()),u(s)}const d={schedule:(u,p=!1,f=!1)=>{const m=f&&i?n:o;return p&&l.add(u),m.has(u)||m.add(u),u},cancel:u=>{o.delete(u),l.delete(u)},process:u=>{if(s=u,i){a=!0;return}i=!0,[n,o]=[o,n],n.forEach(c),n.clear(),i=!1,a&&(a=!1,d.process(u))}};return d}const yBe=40;function VY(e,r){let n=!1,o=!0;const i={delta:0,timestamp:0,isProcessing:!1},a=()=>n=!0,l=F3.reduce((k,C)=>(k[C]=mBe(a),k),{}),{setup:s,read:c,resolveKeyframes:d,preUpdate:u,update:p,preRender:f,render:m,postRender:v}=l,w=()=>{const k=ic.useManualTiming?i.timestamp:performance.now();n=!1,ic.useManualTiming||(i.delta=o?1e3/60:Math.max(Math.min(k-i.timestamp,yBe),1)),i.timestamp=k,i.isProcessing=!0,s.process(i),c.process(i),d.process(i),u.process(i),p.process(i),f.process(i),m.process(i),v.process(i),i.isProcessing=!1,n&&r&&(o=!1,e(w))},x=()=>{n=!0,o=!0,i.isProcessing||e(w)};return{schedule:F3.reduce((k,C)=>{const _=l[C];return k[C]=($,R=!1,T=!1)=>(n||x(),_.schedule($,R,T)),k},{}),cancel:k=>{for(let C=0;C(V3===void 0&&li.set(so.isProcessing||ic.useManualTiming?so.timestamp:performance.now()),V3),set:e=>{V3=e,queueMicrotask(vBe)}},qY=e=>r=>typeof r=="string"&&r.startsWith(e),HY=qY("--"),bBe=qY("var(--"),zE=e=>bBe(e)?xBe.test(e.split("/*")[0].trim()):!1,xBe=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,Zf={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Py={...Zf,transform:e=>oc(0,1,e)},q3={...Zf,default:1},My=e=>Math.round(e*1e5)/1e5,TE=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function wBe(e){return e==null}const kBe=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,jE=(e,r)=>n=>!!(typeof n=="string"&&kBe.test(n)&&n.startsWith(e)||r&&!wBe(n)&&Object.prototype.hasOwnProperty.call(n,r)),UY=(e,r,n)=>o=>{if(typeof o!="string")return o;const[i,a,l,s]=o.match(TE);return{[e]:parseFloat(i),[r]:parseFloat(a),[n]:parseFloat(l),alpha:s!==void 0?parseFloat(s):1}},_Be=e=>oc(0,255,e),AE={...Zf,transform:e=>Math.round(_Be(e))},bp={test:jE("rgb","red"),parse:UY("red","green","blue"),transform:({red:e,green:r,blue:n,alpha:o=1})=>"rgba("+AE.transform(e)+", "+AE.transform(r)+", "+AE.transform(n)+", "+My(Py.transform(o))+")"};function SBe(e){let r="",n="",o="",i="";return e.length>5?(r=e.substring(1,3),n=e.substring(3,5),o=e.substring(5,7),i=e.substring(7,9)):(r=e.substring(1,2),n=e.substring(2,3),o=e.substring(3,4),i=e.substring(4,5),r+=r,n+=n,o+=o,i+=i),{red:parseInt(r,16),green:parseInt(n,16),blue:parseInt(o,16),alpha:i?parseInt(i,16)/255:1}}const DE={test:jE("#"),parse:SBe,transform:bp.transform},Ny=e=>({test:r=>typeof r=="string"&&r.endsWith(e)&&r.split(" ").length===1,parse:parseFloat,transform:r=>`${r}${e}`}),Rd=Ny("deg"),os=Ny("%"),_t=Ny("px"),EBe=Ny("vh"),CBe=Ny("vw"),WY={...os,parse:e=>os.parse(e)/100,transform:e=>os.transform(e*100)},Qf={test:jE("hsl","hue"),parse:UY("hue","saturation","lightness"),transform:({hue:e,saturation:r,lightness:n,alpha:o=1})=>"hsla("+Math.round(e)+", "+os.transform(My(r))+", "+os.transform(My(n))+", "+My(Py.transform(o))+")"},Sn={test:e=>bp.test(e)||DE.test(e)||Qf.test(e),parse:e=>bp.test(e)?bp.parse(e):Qf.test(e)?Qf.parse(e):DE.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?bp.transform(e):Qf.transform(e),getAnimatableNone:e=>{const r=Sn.parse(e);return r.alpha=0,Sn.transform(r)}},$Be=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function RBe(e){return isNaN(e)&&typeof e=="string"&&(e.match(TE)?.length||0)+(e.match($Be)?.length||0)>0}const GY="number",YY="color",zBe="var",TBe="var(",XY="${}",jBe=/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 By(e){const r=e.toString(),n=[],o={color:[],number:[],var:[]},i=[];let a=0;const l=r.replace(jBe,s=>(Sn.test(s)?(o.color.push(a),i.push(YY),n.push(Sn.parse(s))):s.startsWith(TBe)?(o.var.push(a),i.push(zBe),n.push(s)):(o.number.push(a),i.push(GY),n.push(parseFloat(s))),++a,XY)).split(XY);return{values:n,split:l,indexes:o,types:i}}function KY(e){return By(e).values}function ZY(e){const{split:r,types:n}=By(e),o=r.length;return i=>{let a="";for(let l=0;ltypeof e=="number"?0:Sn.test(e)?Sn.getAnimatableNone(e):e;function DBe(e){const r=KY(e);return ZY(e)(r.map(ABe))}const zd={test:RBe,parse:KY,createTransformer:ZY,getAnimatableNone:DBe};function PE(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 PBe({hue:e,saturation:r,lightness:n,alpha:o}){e/=360,r/=100,n/=100;let i=0,a=0,l=0;if(!r)i=a=l=n;else{const s=n<.5?n*(1+r):n+r-n*r,c=2*n-s;i=PE(c,s,e+.3333333333333333),a=PE(c,s,e),l=PE(c,s,e-.3333333333333333)}return{red:Math.round(i*255),green:Math.round(a*255),blue:Math.round(l*255),alpha:o}}function H3(e,r){return n=>n>0?r:e}const Lr=(e,r,n)=>e+(r-e)*n,ME=(e,r,n)=>{const o=e*e,i=n*(r*r-o)+o;return i<0?0:Math.sqrt(i)},MBe=[DE,bp,Qf],NBe=e=>MBe.find(r=>r.test(e));function QY(e){const r=NBe(e);if(!r)return!1;let n=r.parse(e);return r===Qf&&(n=PBe(n)),n}const JY=(e,r)=>{const n=QY(e),o=QY(r);if(!n||!o)return H3(e,r);const i={...n};return a=>(i.red=ME(n.red,o.red,a),i.green=ME(n.green,o.green,a),i.blue=ME(n.blue,o.blue,a),i.alpha=Lr(n.alpha,o.alpha,a),bp.transform(i))},NE=new Set(["none","hidden"]);function BBe(e,r){return NE.has(e)?n=>n<=0?e:r:n=>n>=1?r:e}function IBe(e,r){return n=>Lr(e,r,n)}function BE(e){return typeof e=="number"?IBe:typeof e=="string"?zE(e)?H3:Sn.test(e)?JY:FBe:Array.isArray(e)?eX:typeof e=="object"?Sn.test(e)?JY:OBe:H3}function eX(e,r){const n=[...e],o=n.length,i=e.map((a,l)=>BE(a)(a,r[l]));return a=>{for(let l=0;l{for(const a in o)n[a]=o[a](i);return n}}function LBe(e,r){const n=[],o={color:0,var:0,number:0};for(let i=0;i{const n=zd.createTransformer(r),o=By(e),i=By(r);return o.indexes.var.length===i.indexes.var.length&&o.indexes.color.length===i.indexes.color.length&&o.indexes.number.length>=i.indexes.number.length?NE.has(e)&&!i.values.length||NE.has(r)&&!o.values.length?BBe(e,r):Ay(eX(LBe(o,i),i.values),n):H3(e,r)};function tX(e,r,n){return typeof e=="number"&&typeof r=="number"&&typeof n=="number"?Lr(e,r,n):BE(e)(e,r)}const VBe=e=>{const r=({timestamp:n})=>e(n);return{start:(n=!0)=>Dr.update(r,n),stop:()=>$d(r),now:()=>so.isProcessing?so.timestamp:li.now()}},rX=(e,r,n=10)=>{let o="";const i=Math.max(Math.round(r/n),2);for(let a=0;a=U3?1/0:r}function nX(e,r=100,n){const o=n({...e,keyframes:[0,r]}),i=Math.min(IE(o),U3);return{type:"keyframes",ease:a=>o.next(i*a).value/r,duration:fa(i)}}const qBe=5;function oX(e,r,n){const o=Math.max(r-qBe,0);return RY(n-e(o),r-o)}const rn={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},OE=.001;function HBe({duration:e=rn.duration,bounce:r=rn.bounce,velocity:n=rn.velocity,mass:o=rn.mass}){let i,a,l=1-r;l=oc(rn.minDamping,rn.maxDamping,l),e=oc(rn.minDuration,rn.maxDuration,fa(e)),l<1?(i=d=>{const u=d*l,p=u*e,f=u-n,m=LE(d,l),v=Math.exp(-p);return OE-f/m*v},a=d=>{const u=d*l*e,p=u*n+n,f=Math.pow(l,2)*Math.pow(d,2)*e,m=Math.exp(-u),v=LE(Math.pow(d,2),l);return(-i(d)+OE>0?-1:1)*((p-f)*m)/v}):(i=d=>{const u=Math.exp(-d*e),p=(d-n)*e+1;return-OE+u*p},a=d=>{const u=Math.exp(-d*e),p=(n-d)*(e*e);return u*p});const s=5/e,c=WBe(i,a,s);if(e=al(e),isNaN(c))return{stiffness:rn.stiffness,damping:rn.damping,duration:e};{const d=Math.pow(c,2)*o;return{stiffness:d,damping:l*2*Math.sqrt(o*d),duration:e}}}const UBe=12;function WBe(e,r,n){let o=n;for(let i=1;ie[n]!==void 0)}function XBe(e){let r={velocity:rn.velocity,stiffness:rn.stiffness,damping:rn.damping,mass:rn.mass,isResolvedFromDuration:!1,...e};if(!iX(e,YBe)&&iX(e,GBe))if(e.visualDuration){const n=e.visualDuration,o=2*Math.PI/(n*1.2),i=o*o,a=2*oc(.05,1,1-(e.bounce||0))*Math.sqrt(i);r={...r,mass:rn.mass,stiffness:i,damping:a}}else{const n=HBe(e);r={...r,...n,mass:rn.mass},r.isResolvedFromDuration=!0}return r}function Iy(e=rn.visualDuration,r=rn.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:r}:e;let{restSpeed:o,restDelta:i}=n;const a=n.keyframes[0],l=n.keyframes[n.keyframes.length-1],s={done:!1,value:a},{stiffness:c,damping:d,mass:u,duration:p,velocity:f,isResolvedFromDuration:m}=XBe({...n,velocity:-fa(n.velocity||0)}),v=f||0,w=d/(2*Math.sqrt(c*u)),x=l-a,k=fa(Math.sqrt(c/u)),C=Math.abs(x)<5;o||(o=C?rn.restSpeed.granular:rn.restSpeed.default),i||(i=C?rn.restDelta.granular:rn.restDelta.default);let _;if(w<1){const R=LE(k,w);_=T=>{const A=Math.exp(-w*k*T);return l-A*((v+w*k*x)/R*Math.sin(R*T)+x*Math.cos(R*T))}}else if(w===1)_=R=>l-Math.exp(-k*R)*(x+(v+k*x)*R);else{const R=k*Math.sqrt(w*w-1);_=T=>{const A=Math.exp(-w*k*T),z=Math.min(R*T,300);return l-A*((v+w*k*x)*Math.sinh(z)+R*x*Math.cosh(z))/R}}const $={calculatedDuration:m&&p||null,next:R=>{const T=_(R);if(m)s.done=R>=p;else{let A=R===0?v:0;w<1&&(A=R===0?al(v):oX(_,R,T));const z=Math.abs(A)<=o,j=Math.abs(l-T)<=i;s.done=z&&j}return s.value=s.done?l:T,s},toString:()=>{const R=Math.min(IE($),U3),T=rX(A=>$.next(R*A).value,R,30);return R+"ms "+T},toTransition:()=>{}};return $}Iy.applyToOptions=e=>{const r=nX(e,100,Iy);return e.ease=r.ease,e.duration=al(r.duration),e.type="keyframes",e};function FE({keyframes:e,velocity:r=0,power:n=.8,timeConstant:o=325,bounceDamping:i=10,bounceStiffness:a=500,modifyTarget:l,min:s,max:c,restDelta:d=.5,restSpeed:u}){const p=e[0],f={done:!1,value:p},m=z=>s!==void 0&&zc,v=z=>s===void 0?c:c===void 0||Math.abs(s-z)-w*Math.exp(-z/o),_=z=>k+C(z),$=z=>{const j=C(z),I=_(z);f.done=Math.abs(j)<=d,f.value=f.done?k:I};let R,T;const A=z=>{m(f.value)&&(R=z,T=Iy({keyframes:[f.value,v(f.value)],velocity:oX(_,z,f.value),damping:i,stiffness:a,restDelta:d,restSpeed:u}))};return A(0),{calculatedDuration:null,next:z=>{let j=!1;return!T&&R===void 0&&(j=!0,$(z),A(z)),R!==void 0&&z>=R?T.next(z-R):(!j&&$(z),f)}}}function KBe(e,r,n){const o=[],i=n||ic.mix||tX,a=e.length-1;for(let l=0;lr[0];if(a===2&&r[0]===r[1])return()=>r[1];const l=e[0]===e[1];e[0]>e[a-1]&&(e=[...e].reverse(),r=[...r].reverse());const s=KBe(r,o,i),c=s.length,d=u=>{if(l&&u1)for(;pd(oc(e[0],e[a-1],u)):d}function aX(e,r){const n=e[e.length-1];for(let o=1;o<=r;o++){const i=Kf(0,r,o);e.push(Lr(n,1,i))}}function lX(e){const r=[0];return aX(r,e.length-1),r}function QBe(e,r){return e.map(n=>n*r)}function JBe(e,r){return e.map(()=>r||BY).splice(0,e.length-1)}function Oy({duration:e=300,keyframes:r,times:n,ease:o="easeInOut"}){const i=IY(o)?o.map(FY):FY(o),a={done:!1,value:r[0]},l=QBe(n&&n.length===r.length?n:lX(r),e),s=ZBe(l,r,{ease:Array.isArray(i)?i:JBe(r,i)});return{calculatedDuration:e,next:c=>(a.value=s(c),a.done=c>=e,a)}}const eIe=e=>e!==null;function VE(e,{repeat:r,repeatType:n="loop"},o,i=1){const a=e.filter(eIe),l=i<0||r&&n!=="loop"&&r%2===1?0:a.length-1;return!l||o===void 0?a[l]:o}const tIe={decay:FE,inertia:FE,tween:Oy,keyframes:Oy,spring:Iy};function sX(e){typeof e.type=="string"&&(e.type=tIe[e.type])}class qE{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 rIe=e=>e/100;class HE extends qE{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!==li.now()&&this.tick(li.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;sX(r);const{type:n=Oy,repeat:o=0,repeatDelay:i=0,repeatType:a,velocity:l=0}=r;let{keyframes:s}=r;const c=n||Oy;c!==Oy&&typeof s[0]!="number"&&(this.mixKeyframes=Ay(rIe,tX(s[0],s[1])),s=[0,100]);const d=c({...r,keyframes:s});a==="mirror"&&(this.mirroredGenerator=c({...r,keyframes:[...s].reverse(),velocity:-l})),d.calculatedDuration===null&&(d.calculatedDuration=IE(d));const{calculatedDuration:u}=d;this.calculatedDuration=u,this.resolvedDuration=u+i,this.totalDuration=this.resolvedDuration*(o+1)-i,this.generator=d}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:i,mixKeyframes:a,mirroredGenerator:l,resolvedDuration:s,calculatedDuration:c}=this;if(this.startTime===null)return o.next(0);const{delay:d=0,keyframes:u,repeat:p,repeatType:f,repeatDelay:m,type:v,onUpdate:w,finalKeyframe:x}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,r):this.speed<0&&(this.startTime=Math.min(r-i/this.speed,this.startTime)),n?this.currentTime=r:this.updateTime(r);const k=this.currentTime-d*(this.playbackSpeed>=0?1:-1),C=this.playbackSpeed>=0?k<0:k>i;this.currentTime=Math.max(k,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let _=this.currentTime,$=o;if(p){const z=Math.min(this.currentTime,i)/s;let j=Math.floor(z),I=z%1;!I&&z>=1&&(I=1),I===1&&j--,j=Math.min(j,p+1),j%2&&(f==="reverse"?(I=1-I,m&&(I-=m/s)):f==="mirror"&&($=l)),_=oc(0,1,I)*s}const R=C?{done:!1,value:u[0]}:$.next(_);a&&(R.value=a(R.value));let{done:T}=R;!C&&c!==null&&(T=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);const A=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&T);return A&&v!==FE&&(R.value=VE(u,this.options,x,this.speed)),w&&w(R.value),A&&this.finish(),R}then(r,n){return this.finished.then(r,n)}get duration(){return fa(this.calculatedDuration)}get iterationDuration(){const{delay:r=0}=this.options||{};return this.duration+fa(r)}get time(){return fa(this.currentTime)}set time(r){r=al(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(li.now());const n=this.playbackSpeed!==r;this.playbackSpeed=r,n&&(this.time=fa(this.currentTime))}play(){if(this.isStopped)return;const{driver:r=VBe,startTime:n}=this.options;this.driver||(this.driver=r(i=>this.tick(i))),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(li.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 nIe(e){for(let r=1;re*180/Math.PI,UE=e=>{const r=xp(Math.atan2(e[1],e[0]));return WE(r)},oIe={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:UE,rotateZ:UE,skewX:e=>xp(Math.atan(e[1])),skewY:e=>xp(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},WE=e=>(e=e%360,e<0&&(e+=360),e),cX=UE,dX=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),uX=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),iIe={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:dX,scaleY:uX,scale:e=>(dX(e)+uX(e))/2,rotateX:e=>WE(xp(Math.atan2(e[6],e[5]))),rotateY:e=>WE(xp(Math.atan2(-e[2],e[0]))),rotateZ:cX,rotate:cX,skewX:e=>xp(Math.atan(e[4])),skewY:e=>xp(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function GE(e){return e.includes("scale")?1:0}function YE(e,r){if(!e||e==="none")return GE(r);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let o,i;if(n)o=iIe,i=n;else{const s=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);o=oIe,i=s}if(!i)return GE(r);const a=o[r],l=i[1].split(",").map(lIe);return typeof a=="function"?a(l):l[a]}const aIe=(e,r)=>{const{transform:n="none"}=getComputedStyle(e);return YE(n,r)};function lIe(e){return parseFloat(e.trim())}const Jf=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],eg=new Set(Jf),pX=e=>e===Zf||e===_t,sIe=new Set(["x","y","z"]),cIe=Jf.filter(e=>!sIe.has(e));function dIe(e){const r=[];return cIe.forEach(n=>{const o=e.getValue(n);o!==void 0&&(r.push([n,o.get()]),o.set(n.startsWith("scale")?1:0))}),r}const wp={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})=>YE(r,"x"),y:(e,{transform:r})=>YE(r,"y")};wp.translateX=wp.x,wp.translateY=wp.y;const kp=new Set;let XE=!1,KE=!1,ZE=!1;function hX(){if(KE){const e=Array.from(kp).filter(o=>o.needsMeasurement),r=new Set(e.map(o=>o.element)),n=new Map;r.forEach(o=>{const i=dIe(o);i.length&&(n.set(o,i),o.render())}),e.forEach(o=>o.measureInitialState()),r.forEach(o=>{o.render();const i=n.get(o);i&&i.forEach(([a,l])=>{o.getValue(a)?.set(l)})}),e.forEach(o=>o.measureEndState()),e.forEach(o=>{o.suspendedScrollY!==void 0&&window.scrollTo(0,o.suspendedScrollY)})}KE=!1,XE=!1,kp.forEach(e=>e.complete(ZE)),kp.clear()}function fX(){kp.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(KE=!0)})}function uIe(){ZE=!0,fX(),hX(),ZE=!1}class QE{constructor(r,n,o,i,a,l=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...r],this.onComplete=n,this.name=o,this.motionValue=i,this.element=a,this.isAsync=l}scheduleResolve(){this.state="scheduled",this.isAsync?(kp.add(this),XE||(XE=!0,Dr.read(fX),Dr.resolveKeyframes(hX))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:r,name:n,element:o,motionValue:i}=this;if(r[0]===null){const a=i?.get(),l=r[r.length-1];if(a!==void 0)r[0]=a;else if(o&&n){const s=o.readValue(n,l);s!=null&&(r[0]=s)}r[0]===void 0&&(r[0]=l),i&&a===void 0&&i.set(r[0])}nIe(r)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(r=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,r),kp.delete(this)}cancel(){this.state==="scheduled"&&(kp.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const pIe=e=>e.startsWith("--");function hIe(e,r,n){pIe(r)?e.style.setProperty(r,n):e.style[r]=n}const fIe=SE(()=>window.ScrollTimeline!==void 0),gIe={};function mIe(e,r){const n=SE(e);return()=>gIe[r]??n()}const gX=mIe(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),Ly=([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:Ly([0,.65,.55,1]),circOut:Ly([.55,0,1,.45]),backIn:Ly([.31,.01,.66,-.59]),backOut:Ly([.33,1.53,.69,.99])};function yX(e,r){if(e)return typeof e=="function"?gX()?rX(e,r):"ease-out":LY(e)?Ly(e):Array.isArray(e)?e.map(n=>yX(n,r)||mX.easeOut):mX[e]}function yIe(e,r,n,{delay:o=0,duration:i=300,repeat:a=0,repeatType:l="loop",ease:s="easeOut",times:c}={},d=void 0){const u={[r]:n};c&&(u.offset=c);const p=yX(s,i);Array.isArray(p)&&(u.easing=p);const f={delay:o,duration:i,easing:Array.isArray(p)?"linear":p,fill:"both",iterations:a+1,direction:l==="reverse"?"alternate":"normal"};return d&&(f.pseudoElement=d),e.animate(u,f)}function JE(e){return typeof e=="function"&&"applyToOptions"in e}function vIe({type:e,...r}){return JE(e)&&gX()?e.applyToOptions(r):(r.duration??(r.duration=300),r.ease??(r.ease="easeOut"),r)}class bIe extends qE{constructor(r){if(super(),this.finishedTime=null,this.isStopped=!1,!r)return;const{element:n,name:o,keyframes:i,pseudoElement:a,allowFlatten:l=!1,finalKeyframe:s,onComplete:c}=r;this.isPseudoElement=!!a,this.allowFlatten=l,this.options=r,_E(typeof r.type!="string");const d=vIe(r);this.animation=yIe(n,o,i,d,a),d.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!a){const u=VE(i,this.options,s,this.speed);this.updateMotionValue?this.updateMotionValue(u):hIe(n,o,u),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 fa(Number(r))}get iterationDuration(){const{delay:r=0}=this.options||{};return this.duration+fa(r)}get time(){return fa(Number(this.animation.currentTime)||0)}set time(r){this.finishedTime=null,this.animation.currentTime=al(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&&fIe()?(this.animation.timeline=r,ha):n(this)}}const vX={anticipate:PY,backInOut:DY,circInOut:NY};function xIe(e){return e in vX}function wIe(e){typeof e.ease=="string"&&xIe(e.ease)&&(e.ease=vX[e.ease])}const bX=10;class kIe extends bIe{constructor(r){wIe(r),sX(r),super(r),r.startTime&&(this.startTime=r.startTime),this.options=r}updateMotionValue(r){const{motionValue:n,onUpdate:o,onComplete:i,element:a,...l}=this.options;if(!n)return;if(r!==void 0){n.set(r);return}const s=new HE({...l,autoplay:!1}),c=al(this.finishedTime??this.time);n.setWithVelocity(s.sample(c-bX).value,s.sample(c).value,bX),s.stop()}}const xX=(e,r)=>r==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(zd.test(e)||e==="0")&&!e.startsWith("url("));function _Ie(e){const r=e[0];if(e.length===1)return!0;for(let n=0;nObject.hasOwnProperty.call(Element.prototype,"animate"));function $Ie(e){const{motionValue:r,name:n,repeatDelay:o,repeatType:i,damping:a,type:l}=e;if(!(r?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:s,transformTemplate:c}=r.owner.getProps();return CIe()&&n&&EIe.has(n)&&(n!=="transform"||!c)&&!s&&!o&&i!=="mirror"&&a!==0&&l!=="inertia"}const RIe=40;class zIe extends qE{constructor({autoplay:r=!0,delay:n=0,type:o="keyframes",repeat:i=0,repeatDelay:a=0,repeatType:l="loop",keyframes:s,name:c,motionValue:d,element:u,...p}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=li.now();const f={autoplay:r,delay:n,type:o,repeat:i,repeatDelay:a,repeatType:l,name:c,motionValue:d,element:u,...p},m=u?.KeyframeResolver||QE;this.keyframeResolver=new m(s,(v,w,x)=>this.onKeyframesResolved(v,w,f,!x),c,d,u),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(r,n,o,i){this.keyframeResolver=void 0;const{name:a,type:l,velocity:s,delay:c,isHandoff:d,onUpdate:u}=o;this.resolvedAt=li.now(),SIe(r,a,l,s)||((ic.instantAnimations||!c)&&u?.(VE(r,o,n)),r[0]=r[r.length-1],eC(o),o.repeat=0);const p={startTime:i?this.resolvedAt?this.resolvedAt-this.createdAt>RIe?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...o,keyframes:r},f=!d&&$Ie(p)?new kIe({...p,element:p.motionValue.owner.current}):new HE(p);f.finished.then(()=>this.notifyFinished()).catch(ha),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(),uIe()),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 TIe{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,i)=>{o&&o(),this.animations[i].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 wX(this.animations,"duration")}get iterationDuration(){return wX(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 wX(e,r){let n=0;for(let o=0;on&&(n=i)}return n}class jIe extends TIe{then(r,n){return this.finished.finally(r).then(()=>{})}}const AIe=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function DIe(e){const r=AIe.exec(e);if(!r)return[,];const[,n,o,i]=r;return[`--${n??o}`,i]}function kX(e,r,n=1){const[o,i]=DIe(e);if(!o)return;const a=window.getComputedStyle(r).getPropertyValue(o);if(a){const l=a.trim();return EY(l)?parseFloat(l):l}return zE(i)?kX(i,r,n+1):i}function tC(e,r){return e?.[r]??e?.default??e}const _X=new Set(["width","height","top","left","right","bottom",...Jf]),PIe={test:e=>e==="auto",parse:e=>e},SX=e=>r=>r.test(e),EX=[Zf,_t,os,Rd,CBe,EBe,PIe],CX=e=>EX.find(SX(e));function MIe(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||$Y(e):!0}const NIe=new Set(["brightness","contrast","saturate","opacity"]);function BIe(e){const[r,n]=e.slice(0,-1).split("(");if(r==="drop-shadow")return e;const[o]=n.match(TE)||[];if(!o)return e;const i=n.replace(o,"");let a=NIe.has(r)?1:0;return o!==n&&(a*=100),r+"("+a+i+")"}const IIe=/\b([a-z-]*)\(.*?\)/gu,rC={...zd,getAnimatableNone:e=>{const r=e.match(IIe);return r?r.map(BIe).join(" "):e}},$X={...Zf,transform:Math.round},OIe={rotate:Rd,rotateX:Rd,rotateY:Rd,rotateZ:Rd,scale:q3,scaleX:q3,scaleY:q3,scaleZ:q3,skew:Rd,skewX:Rd,skewY:Rd,distance:_t,translateX:_t,translateY:_t,translateZ:_t,x:_t,y:_t,z:_t,perspective:_t,transformPerspective:_t,opacity:Py,originX:WY,originY:WY,originZ:_t},nC={borderWidth:_t,borderTopWidth:_t,borderRightWidth:_t,borderBottomWidth:_t,borderLeftWidth:_t,borderRadius:_t,radius:_t,borderTopLeftRadius:_t,borderTopRightRadius:_t,borderBottomRightRadius:_t,borderBottomLeftRadius:_t,width:_t,maxWidth:_t,height:_t,maxHeight:_t,top:_t,right:_t,bottom:_t,left:_t,padding:_t,paddingTop:_t,paddingRight:_t,paddingBottom:_t,paddingLeft:_t,margin:_t,marginTop:_t,marginRight:_t,marginBottom:_t,marginLeft:_t,backgroundPositionX:_t,backgroundPositionY:_t,...OIe,zIndex:$X,fillOpacity:Py,strokeOpacity:Py,numOctaves:$X},LIe={...nC,color:Sn,backgroundColor:Sn,outlineColor:Sn,fill:Sn,stroke:Sn,borderColor:Sn,borderTopColor:Sn,borderRightColor:Sn,borderBottomColor:Sn,borderLeftColor:Sn,filter:rC,WebkitFilter:rC},RX=e=>LIe[e];function zX(e,r){let n=RX(e);return n!==rC&&(n=zd),n.getAnimatableNone?n.getAnimatableNone(r):void 0}const FIe=new Set(["auto","none","0"]);function VIe(e,r,n){let o=0,i;for(;o{r.getValue(s).set(c)}),this.resolveNoneKeyframes()}}function TX(e,r,n){if(e instanceof EventTarget)return[e];if(typeof e=="string"){let o=document;const i=n?.[e]??o.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}const jX=(e,r)=>r&&typeof e=="number"?r.transform(e):e;function AX(e){return CY(e)&&"offsetHeight"in e}const DX=30,HIe=e=>!isNaN(parseFloat(e));class UIe{constructor(r,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=o=>{const i=li.now();if(this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(o),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const a of this.dependents)a.dirty()},this.hasAnimated=!1,this.setCurrent(r),this.owner=n.owner}setCurrent(r){this.current=r,this.updatedAt=li.now(),this.canTrackVelocity===null&&r!==void 0&&(this.canTrackVelocity=HIe(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 EE);const o=this.events[r].add(n);return r==="change"?()=>{o(),Dr.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=li.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||r-this.updatedAt>DX)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,DX);return RY(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 _p(e,r){return new UIe(e,r)}const{schedule:oC}=VY(queueMicrotask,!1),ll={x:!1,y:!1};function PX(){return ll.x||ll.y}function WIe(e){return e==="x"||e==="y"?ll[e]?null:(ll[e]=!0,()=>{ll[e]=!1}):ll.x||ll.y?null:(ll.x=ll.y=!0,()=>{ll.x=ll.y=!1})}function MX(e,r){const n=TX(e),o=new AbortController,i={passive:!0,...r,signal:o.signal};return[n,i,()=>o.abort()]}function NX(e){return!(e.pointerType==="touch"||PX())}function GIe(e,r,n={}){const[o,i,a]=MX(e,n),l=s=>{if(!NX(s))return;const{target:c}=s,d=r(c,s);if(typeof d!="function"||!c)return;const u=p=>{NX(p)&&(d(p),c.removeEventListener("pointerleave",u))};c.addEventListener("pointerleave",u,i)};return o.forEach(s=>{s.addEventListener("pointerenter",l,i)}),a}const BX=(e,r)=>r?e===r?!0:BX(e,r.parentElement):!1,iC=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,YIe=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function XIe(e){return YIe.has(e.tagName)||e.tabIndex!==-1}const W3=new WeakSet;function IX(e){return r=>{r.key==="Enter"&&e(r)}}function aC(e,r){e.dispatchEvent(new PointerEvent("pointer"+r,{isPrimary:!0,bubbles:!0}))}const KIe=(e,r)=>{const n=e.currentTarget;if(!n)return;const o=IX(()=>{if(W3.has(n))return;aC(n,"down");const i=IX(()=>{aC(n,"up")}),a=()=>aC(n,"cancel");n.addEventListener("keyup",i,r),n.addEventListener("blur",a,r)});n.addEventListener("keydown",o,r),n.addEventListener("blur",()=>n.removeEventListener("keydown",o),r)};function OX(e){return iC(e)&&!PX()}function ZIe(e,r,n={}){const[o,i,a]=MX(e,n),l=s=>{const c=s.currentTarget;if(!OX(s))return;W3.add(c);const d=r(c,s),u=(m,v)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",f),W3.has(c)&&W3.delete(c),OX(m)&&typeof d=="function"&&d(m,{success:v})},p=m=>{u(m,c===window||c===document||n.useGlobalTarget||BX(c,m.target))},f=m=>{u(m,!1)};window.addEventListener("pointerup",p,i),window.addEventListener("pointercancel",f,i)};return o.forEach(s=>{(n.useGlobalTarget?window:s).addEventListener("pointerdown",l,i),AX(s)&&(s.addEventListener("focus",c=>KIe(c,i)),!XIe(s)&&!s.hasAttribute("tabindex")&&(s.tabIndex=0))}),a}function lC(e){return CY(e)&&"ownerSVGElement"in e}function LX(e){return lC(e)&&e.tagName==="svg"}const to=e=>!!(e&&e.getVelocity),QIe=[...EX,Sn,zd],JIe=e=>QIe.find(SX(e));function sC(e){return typeof e=="object"&&!Array.isArray(e)}function FX(e,r,n,o){return typeof e=="string"&&sC(r)?TX(e,n,o):e instanceof NodeList?Array.from(e):Array.isArray(e)?e:[e]}function eOe(e,r,n){return e*(r+1)}function VX(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 tOe(e,r,n){for(let o=0;or&&i.at{const j=lOe($),{delay:I=0,times:N=lX(j),type:L="keyframes",repeat:H,repeatType:P,repeatDelay:V=0,...B}=R;let{ease:F=r.ease||"easeOut",duration:q}=R;const G=typeof I=="function"?I(A,z):I,U=j.length,Y=JE(L)?L:i?.[L||"keyframes"];if(U<=2&&Y){let Z=100;if(U===2&&dOe(j)){const te=j[1]-j[0];Z=Math.abs(te)}const Q={...B};q!==void 0&&(Q.duration=al(q));const ie=nX(Q,Z,Y);F=ie.ease,q=ie.duration}q??(q=a);const K=p+G;N.length===1&&N[0]===0&&(N[1]=1);const O=N.length-j.length;if(O>0&&aX(N,O),j.length===1&&j.unshift(null),H){q=eOe(q,H);const Z=[...j],Q=[...N];F=Array.isArray(F)?[...F]:[F];const ie=[...F];for(let te=0;te{for(const w in m){const x=m[w];x.sort(oOe);const k=[],C=[],_=[];for(let R=0;Rtypeof e=="number",dOe=e=>e.every(cOe),Fy=new WeakMap,cC=e=>Array.isArray(e);function UX(e){const r=[{},{}];return e?.values.forEach((n,o)=>{r[0][o]=n.get(),r[1][o]=n.getVelocity()}),r}function dC(e,r,n,o){if(typeof r=="function"){const[i,a]=UX(o);r=r(n!==void 0?n:e.custom,i,a)}if(typeof r=="string"&&(r=e.variants&&e.variants[r]),typeof r=="function"){const[i,a]=UX(o);r=r(n!==void 0?n:e.custom,i,a)}return r}function tg(e,r,n){const o=e.getProps();return dC(o,r,n!==void 0?n:o.custom,e)}function uOe(e,r,n){e.hasValue(r)?e.getValue(r).set(n):e.addValue(r,_p(n))}function pOe(e){return cC(e)?e[e.length-1]||0:e}function hOe(e,r){const n=tg(e,r);let{transitionEnd:o={},transition:i={},...a}=n||{};a={...a,...o};for(const l in a){const s=pOe(a[l]);uOe(e,l,s)}}function fOe(e){return!!(to(e)&&e.add)}function uC(e,r){const n=e.getValue("willChange");if(fOe(n))return n.add(r);if(!n&&ic.WillChange){const o=new ic.WillChange("auto");e.addValue("willChange",o),o.add(r)}}const pC=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),gOe="framerAppearId",WX="data-"+pC(gOe);function GX(e){return e.props[WX]}const mOe=e=>e!==null;function yOe(e,{repeat:r,repeatType:n="loop"},o){const i=e.filter(mOe),a=r&&n!=="loop"&&r%2===1?0:i.length-1;return i[a]}const vOe={type:"spring",stiffness:500,damping:25,restSpeed:10},bOe=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),xOe={type:"keyframes",duration:.8},wOe={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},kOe=(e,{keyframes:r})=>r.length>2?xOe:eg.has(e)?e.startsWith("scale")?bOe(r[1]):vOe:wOe;function _Oe({when:e,delay:r,delayChildren:n,staggerChildren:o,staggerDirection:i,repeat:a,repeatType:l,repeatDelay:s,from:c,elapsed:d,...u}){return!!Object.keys(u).length}const hC=(e,r,n,o={},i,a)=>l=>{const s=tC(o,e)||{},c=s.delay||o.delay||0;let{elapsed:d=0}=o;d=d-al(c);const u={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:r.getVelocity(),...s,delay:-d,onUpdate:f=>{r.set(f),s.onUpdate&&s.onUpdate(f)},onComplete:()=>{l(),s.onComplete&&s.onComplete()},name:e,motionValue:r,element:a?void 0:i};_Oe(s)||Object.assign(u,kOe(e,u)),u.duration&&(u.duration=al(u.duration)),u.repeatDelay&&(u.repeatDelay=al(u.repeatDelay)),u.from!==void 0&&(u.keyframes[0]=u.from);let p=!1;if((u.type===!1||u.duration===0&&!u.repeatDelay)&&(eC(u),u.delay===0&&(p=!0)),(ic.instantAnimations||ic.skipAnimations)&&(p=!0,eC(u),u.delay=0),u.allowFlatten=!s.type&&!s.ease,p&&!a&&r.get()!==void 0){const f=yOe(u.keyframes,s);if(f!==void 0){Dr.update(()=>{u.onUpdate(f),u.onComplete()});return}}return s.isSync?new HE(u):new zIe(u)};function SOe({protectedKeys:e,needsAnimating:r},n){const o=e.hasOwnProperty(n)&&r[n]!==!0;return r[n]=!1,o}function fC(e,r,{delay:n=0,transitionOverride:o,type:i}={}){let{transition:a=e.getDefaultTransition(),transitionEnd:l,...s}=r;o&&(a=o);const c=[],d=i&&e.animationState&&e.animationState.getState()[i];for(const u in s){const p=e.getValue(u,e.latestValues[u]??null),f=s[u];if(f===void 0||d&&SOe(d,u))continue;const m={delay:n,...tC(a||{},u)},v=p.get();if(v!==void 0&&!p.isAnimating&&!Array.isArray(f)&&f===v&&!m.velocity)continue;let w=!1;if(window.MotionHandoffAnimation){const k=GX(e);if(k){const C=window.MotionHandoffAnimation(k,u,Dr);C!==null&&(m.startTime=C,w=!0)}}uC(e,u),p.start(hC(u,p,f,e.shouldReduceMotion&&_X.has(u)?{type:!1}:m,e,w));const x=p.animation;x&&c.push(x)}return l&&Promise.all(c).then(()=>{Dr.update(()=>{l&&hOe(e,l)})}),c}function YX({top:e,left:r,right:n,bottom:o}){return{x:{min:r,max:n},y:{min:e,max:o}}}function EOe({x:e,y:r}){return{top:r.min,right:e.max,bottom:r.max,left:e.min}}function COe(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 gC(e){return e===void 0||e===1}function mC({scale:e,scaleX:r,scaleY:n}){return!gC(e)||!gC(r)||!gC(n)}function Sp(e){return mC(e)||XX(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function XX(e){return KX(e.x)||KX(e.y)}function KX(e){return e&&e!=="0%"}function G3(e,r,n){const o=e-n,i=r*o;return n+i}function ZX(e,r,n,o,i){return i!==void 0&&(e=G3(e,i,o)),G3(e,n,o)+r}function yC(e,r=0,n=1,o,i){e.min=ZX(e.min,r,n,o,i),e.max=ZX(e.max,r,n,o,i)}function QX(e,{x:r,y:n}){yC(e.x,r.translate,r.scale,r.originPoint),yC(e.y,n.translate,n.scale,n.originPoint)}const JX=.999999999999,eK=1.0000000000001;function $Oe(e,r,n,o=!1){const i=n.length;if(!i)return;r.x=r.y=1;let a,l;for(let s=0;sJX&&(r.x=1),r.yJX&&(r.y=1)}function rg(e,r){e.min=e.min+r,e.max=e.max+r}function tK(e,r,n,o,i=.5){const a=Lr(e.min,e.max,i);yC(e,r,n,a,o)}function ng(e,r){tK(e.x,r.x,r.scaleX,r.scale,r.originX),tK(e.y,r.y,r.scaleY,r.scale,r.originY)}function rK(e,r){return YX(COe(e.getBoundingClientRect(),r))}function ROe(e,r,n){const o=rK(e,n),{scroll:i}=r;return i&&(rg(o.x,i.offset.x),rg(o.y,i.offset.y)),o}const nK={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"]},og={};for(const e in nK)og[e]={isEnabled:r=>nK[e].some(n=>!!r[n])};const oK=()=>({translate:0,scale:1,origin:0,originPoint:0}),ig=()=>({x:oK(),y:oK()}),iK=()=>({min:0,max:0}),En=()=>({x:iK(),y:iK()}),vC=typeof window<"u",Y3={current:null},bC={current:!1};function aK(){if(bC.current=!0,!!vC)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),r=()=>Y3.current=e.matches;e.addEventListener("change",r),r()}else Y3.current=!1}function X3(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function Vy(e){return typeof e=="string"||Array.isArray(e)}const xC=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],wC=["initial",...xC];function K3(e){return X3(e.animate)||wC.some(r=>Vy(e[r]))}function lK(e){return!!(K3(e)||e.variants)}function zOe(e,r,n){for(const o in r){const i=r[o],a=n[o];if(to(i))e.addValue(o,i);else if(to(a))e.addValue(o,_p(i,{owner:e}));else if(a!==i)if(e.hasValue(o)){const l=e.getValue(o);l.liveStyle===!0?l.jump(i):l.hasAnimated||l.set(i)}else{const l=e.getStaticValue(o);e.addValue(o,_p(l!==void 0?l:i,{owner:e}))}}for(const o in n)r[o]===void 0&&e.removeValue(o);return r}const sK=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class cK{scrapeMotionValuesFromProps(r,n,o){return{}}constructor({parent:r,props:n,presenceContext:o,reducedMotionConfig:i,blockInitialAnimation:a,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=QE,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=li.now();this.renderScheduledAtthis.bindToMotionValue(o,n)),bC.current||aK(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Y3.current,this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),$d(this.notifyUpdate),$d(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=eg.has(r);o&&this.onBindTransform&&this.onBindTransform();const i=n.on("change",l=>{this.latestValues[r]=l,this.props.onUpdate&&Dr.preRender(this.notifyUpdate),o&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,r,n)),this.valueSubscriptions.set(r,()=>{i(),a&&a(),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 og){const n=og[r];if(!n)continue;const{isEnabled:o,Feature:i}=n;if(!this.features[r]&&i&&o(this.props)&&(this.features[r]=new i(this)),this.features[r]){const a=this.features[r];a.isMounted?a.update():(a.mount(),a.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):En()}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=_p(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"&&(EY(o)||$Y(o))?o=parseFloat(o):!JIe(o)&&zd.test(n)&&(o=zX(r,n)),this.setBaseTarget(r,to(o)?o.get():o)),to(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 a=dC(this.props,n,this.presenceContext?.custom);a&&(o=a[r])}if(n&&o!==void 0)return o;const i=this.getBaseTargetFromProps(this.props,r);return i!==void 0&&!to(i)?i:this.initialValues[r]!==void 0&&o===void 0?void 0:this.baseTarget[r]}on(r,n){return this.events[r]||(this.events[r]=new EE),this.events[r].add(n)}notify(r,...n){this.events[r]&&this.events[r].notify(...n)}scheduleRenderMicrotask(){oC.render(this.render)}}class dK extends cK{constructor(){super(...arguments),this.KeyframeResolver=qIe}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;to(r)&&(this.childSubscription=r.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}const TOe={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},jOe=Jf.length;function AOe(e,r,n){let o="",i=!0;for(let a=0;a{if(!r.target)return e;if(typeof e=="string")if(_t.test(e))e=parseFloat(e);else return e;const n=pK(e,r.target.x),o=pK(e,r.target.y);return`${n}% ${o}%`}},DOe={correct:(e,{treeScale:r,projectionDelta:n})=>{const o=e,i=zd.parse(e);if(i.length>5)return o;const a=zd.createTransformer(e),l=typeof i[0]!="number"?1:0,s=n.x.scale*r.x,c=n.y.scale*r.y;i[0+l]/=s,i[1+l]/=c;const d=Lr(s,c,.5);return typeof i[2+l]=="number"&&(i[2+l]/=d),typeof i[3+l]=="number"&&(i[3+l]/=d),a(i)}},_C={borderRadius:{...qy,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:qy,borderTopRightRadius:qy,borderBottomLeftRadius:qy,borderBottomRightRadius:qy,boxShadow:DOe};function hK(e,{layout:r,layoutId:n}){return eg.has(e)||e.startsWith("origin")||(r||n!==void 0)&&(!!_C[e]||e==="opacity")}function SC(e,r,n){const{style:o}=e,i={};for(const a in o)(to(o[a])||r.style&&to(r.style[a])||hK(a,e)||n?.getValue(a)?.liveStyle!==void 0)&&(i[a]=o[a]);return i}function POe(e){return window.getComputedStyle(e)}class fK extends dK{constructor(){super(...arguments),this.type="html",this.renderInstance=uK}readValueFromInstance(r,n){if(eg.has(n))return this.projection?.isProjecting?GE(n):aIe(r,n);{const o=POe(r),i=(HY(n)?o.getPropertyValue(n):o[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(r,{transformPagePoint:n}){return rK(r,n)}build(r,n,o){kC(r,n,o.transformTemplate)}scrapeMotionValuesFromProps(r,n,o){return SC(r,n,o)}}function MOe(e,r){return e in r}class NOe extends cK{constructor(){super(...arguments),this.type="object"}readValueFromInstance(r,n){if(MOe(n,r)){const o=r[n];if(typeof o=="string"||typeof o=="number")return o}}getBaseTargetFromProps(){}removeValueFromRenderState(r,n){delete n.output[r]}measureInstanceViewportBox(){return En()}build(r,n){Object.assign(r.output,n)}renderInstance(r,{output:n}){Object.assign(r,n)}sortInstanceNodePosition(){return 0}}const BOe={offset:"stroke-dashoffset",array:"stroke-dasharray"},IOe={offset:"strokeDashoffset",array:"strokeDasharray"};function OOe(e,r,n=1,o=0,i=!0){e.pathLength=1;const a=i?BOe:IOe;e[a.offset]=_t.transform(-o);const l=_t.transform(r),s=_t.transform(n);e[a.array]=`${l} ${s}`}function gK(e,{attrX:r,attrY:n,attrScale:o,pathLength:i,pathSpacing:a=1,pathOffset:l=0,...s},c,d,u){if(kC(e,s,d),c){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:p,style:f}=e;p.transform&&(f.transform=p.transform,delete p.transform),(f.transform||p.transformOrigin)&&(f.transformOrigin=p.transformOrigin??"50% 50%",delete p.transformOrigin),f.transform&&(f.transformBox=u?.transformBox??"fill-box",delete p.transformBox),r!==void 0&&(p.x=r),n!==void 0&&(p.y=n),o!==void 0&&(p.scale=o),i!==void 0&&OOe(p,i,a,l,!1)}const mK=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),yK=e=>typeof e=="string"&&e.toLowerCase()==="svg";function LOe(e,r,n,o){uK(e,r,void 0,o);for(const i in r.attrs)e.setAttribute(mK.has(i)?i:pC(i),r.attrs[i])}function vK(e,r,n){const o=SC(e,r,n);for(const i in e)if(to(e[i])||to(r[i])){const a=Jf.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;o[a]=e[i]}return o}class bK extends dK{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=En}getBaseTargetFromProps(r,n){return r[n]}readValueFromInstance(r,n){if(eg.has(n)){const o=RX(n);return o&&o.default||0}return n=mK.has(n)?n:pC(n),r.getAttribute(n)}scrapeMotionValuesFromProps(r,n,o){return vK(r,n,o)}build(r,n,o){gK(r,n,this.isSVGTag,o.transformTemplate,o.style)}renderInstance(r,n,o,i){LOe(r,n,o,i)}mount(r){this.isSVGTag=yK(r.tagName),super.mount(r)}}function FOe(e){const r={presenceContext:null,props:{},visualState:{renderState:{transform:{},transformOrigin:{},style:{},vars:{},attrs:{}},latestValues:{}}},n=lC(e)&&!LX(e)?new bK(r):new fK(r);n.mount(e),Fy.set(e,n)}function VOe(e){const r={presenceContext:null,props:{},visualState:{renderState:{output:{}},latestValues:{}}},n=new NOe(r);n.mount(e),Fy.set(e,n)}function xK(e,r,n){const o=to(e)?e:_p(e);return o.start(hC("",o,r,n)),o.animation}function qOe(e,r){return to(e)||typeof e=="number"||typeof e=="string"&&!sC(r)}function wK(e,r,n,o){const i=[];if(qOe(e,r))i.push(xK(e,sC(r)&&r.default||r,n&&(n.default||n)));else{const a=FX(e,r,o),l=a.length;for(let s=0;s{o.push(...wK(l,i,a))}),o}function UOe(e){return Array.isArray(e)&&e.some(Array.isArray)}function WOe(e){function r(n,o,i){let a=[],l;if(UOe(n))a=HOe(n,o,e);else{const{onComplete:c,...d}=i||{};typeof c=="function"&&(l=c),a=wK(n,o,d,e)}const s=new jIe(a);return l&&s.finished.then(l),s}return r}const GOe=WOe();function YOe(e,r){const n=li.now(),o=({timestamp:i})=>{const a=i-n;a>=r&&($d(o),e(a-r))};return Dr.setup(o,!0),()=>$d(o)}const kK=(e,r)=>Math.abs(e-r);function XOe(e,r){const n=kK(e.x,r.x),o=kK(e.y,r.y);return Math.sqrt(n**2+o**2)}const Hy=S.createContext({});function ag(e){const r=S.useRef(null);return r.current===null&&(r.current=e()),r.current}const EC=vC?S.useLayoutEffect:S.useEffect,Z3=S.createContext(null),Ep=S.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function _K(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function KOe(...e){return r=>{let n=!1;const o=e.map(i=>{const a=_K(i,r);return!n&&typeof a=="function"&&(n=!0),a});if(n)return()=>{for(let i=0;i{const{width:d,height:u,top:p,left:f,right:m}=l.current;if(r||!a.current||!d||!u)return;const v=n==="left"?`left: ${f}`:`right: ${m}`;a.current.dataset.motionPopId=i;const w=document.createElement("style");s&&(w.nonce=s);const x=o??document.head;return x.appendChild(w),w.sheet&&w.sheet.insertRule(` + [data-motion-pop-id="${i}"] { position: absolute !important; - width: ${u}px !important; - height: ${d}px !important; - ${b}px !important; - top: ${h}px !important; + width: ${d}px !important; + height: ${u}px !important; + ${v}px !important; + top: ${p}px !important; } - `),()=>{w.contains(x)&&w.removeChild(x)}},[r]),y.jsx(zVe,{isPresent:r,childRef:i,sizeRef:s,children:E.cloneElement(e,{ref:c})})}const OVe=({children:e,initial:r,isPresent:n,onExitComplete:o,custom:a,presenceAffectsLayout:i,mode:s,anchorX:l,root:c})=>{const u=Dm(jVe),d=E.useId();let h=!0,f=E.useMemo(()=>(h=!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&&h&&(f={...f}),E.useMemo(()=>{u.forEach((g,b)=>u.set(b,!1))},[n]),E.useEffect(()=>{!n&&!u.size&&o&&o()},[n]),s==="popLayout"&&(e=y.jsx(IVe,{isPresent:n,anchorX:l,root:c,children:e})),y.jsx(Tw.Provider,{value:f,children:e})};function jVe(){return new Map}function PZ(e=!0){const r=E.useContext(Tw);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 s=E.useCallback(()=>e&&o&&o(i),[i,o,e]);return!n&&o?[!1,s]:[!0]}const Aw=e=>e.key||"";function zZ(e){const r=[];return E.Children.forEach(e,n=>{E.isValidElement(n)&&r.push(n)}),r}const Qn=({children:e,custom:r,initial:n=!0,onExitComplete:o,presenceAffectsLayout:a=!0,mode:i="sync",propagate:s=!1,anchorX:l="left",root:c})=>{const[u,d]=PZ(s),h=E.useMemo(()=>zZ(e),[e]),f=s&&!u?[]:h.map(Aw),g=E.useRef(!0),b=E.useRef(h),x=Dm(()=>new Map),[w,k]=E.useState(h),[C,_]=E.useState(h);tT(()=>{g.current=!1,b.current=h;for(let R=0;R{const D=Aw(R),N=s&&!u?!1:h===C||f.includes(D),M=()=>{if(x.has(D))x.set(D,!0);else return;let O=!0;x.forEach(F=>{F||(O=!1)}),O&&(A?.(),_(b.current),s&&d?.(),o&&o())};return y.jsx(OVe,{isPresent:N,initial:!g.current||n?void 0:!1,custom:r,presenceAffectsLayout:a,mode:i,root:c,onExitComplete:N?void 0:M,anchorX:l,children:R},D)})})},LVe=E.createContext(null);function BVe(){const e=E.useRef(!1);return tT(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function FVe(){const e=BVe(),[r,n]=E.useState(0),o=E.useCallback(()=>{e.current&&n(r+1)},[r]);return[E.useCallback(()=>qr.postRender(o),[o]),r]}const HVe=e=>!e.isLayoutDirty&&e.willUpdate(!1);function VVe(){const e=new Set,r=new WeakMap,n=()=>e.forEach(HVe);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 IZ=e=>e===!0,qVe=e=>IZ(e===!0)||e==="id",$m=({children:e,id:r,inherit:n=!0})=>{const o=E.useContext(fy),a=E.useContext(LVe),[i,s]=FVe(),l=E.useRef(null),c=o.id||a;l.current===null&&(qVe(n)&&c&&(r=r?c+"-"+r:c),l.current={id:r,group:IZ(n)&&o.group||VVe()});const u=E.useMemo(()=>({...l.current,forceRender:i}),[s]);return y.jsx(fy.Provider,{value:u,children:e})},rT=E.createContext({strict:!1});function nT(e){for(const r in e)Rm[r]={...Rm[r],...e[r]}}function UVe({children:e,features:r,strict:n=!1}){const[,o]=E.useState(!oT(r)),a=E.useRef(void 0);if(!oT(r)){const{renderer:i,...s}=r;a.current=i,nT(s)}return E.useEffect(()=>{oT(r)&&r().then(({renderer:i,...s})=>{nT(s),a.current=i,o(!0)})},[]),y.jsx(rT.Provider,{value:{renderer:a.current,strict:n},children:e})}function oT(e){return typeof e=="function"}const WVe=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 Rw(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||WVe.has(e)}let OZ=e=>!Rw(e);function jZ(e){typeof e=="function"&&(OZ=r=>r.startsWith("on")?!Rw(r):e(r))}try{jZ(require("@emotion/is-prop-valid").default)}catch{}function YVe(e,r,n){const o={};for(const a in e)a==="values"&&typeof e.values=="object"||(OZ(a)||n===!0&&Rw(a)||!r&&!Rw(a)||e.draggable&&a.startsWith("onDrag"))&&(o[a]=e[a]);return o}function GVe({children:e,isValidProp:r,...n}){r&&jZ(r),n={...E.useContext(Hp),...n},n.isStatic=Dm(()=>n.isStatic);const o=E.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return y.jsx(Hp.Provider,{value:o,children:e})}const Nw=E.createContext({});function XVe(e,r){if(Cw(e)){const{initial:n,animate:o}=e;return{initial:n===!1||py(n)?n:void 0,animate:py(o)?o:void 0}}return e.inherit!==!1?r:{}}function KVe(e){const{initial:r,animate:n}=XVe(e,E.useContext(Nw));return E.useMemo(()=>({initial:r,animate:n}),[LZ(r),LZ(n)])}function LZ(e){return Array.isArray(e)?e.join(" "):e}const aT=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function BZ(e,r,n){for(const o in r)!uo(r[o])&&!_Z(o,n)&&(e[o]=r[o])}function ZVe({transformTemplate:e},r){return E.useMemo(()=>{const n=aT();return JC(n,r,e),Object.assign({},n.vars,n.style)},[r])}function QVe(e,r){const n=e.style||{},o={};return BZ(o,n,e),Object.assign(o,ZVe(e,r)),o}function JVe(e,r){const n={},o=QVe(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 FZ=()=>({...aT(),attrs:{}});function eqe(e,r,n,o){const a=E.useMemo(()=>{const i=FZ();return SZ(i,r,TZ(o),e.transformTemplate,e.style),{...i.attrs,style:{...i.style}}},[r]);if(e.style){const i={};BZ(i,e.style,e),a.style={...i,...a.style}}return a}const tqe=["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 iT(e){return typeof e!="string"||e.includes("-")?!1:!!(tqe.indexOf(e)>-1||/[A-Z]/u.test(e))}function rqe(e,r,n,{latestValues:o},a,i=!1){const s=(iT(e)?eqe:JVe)(r,o,a,e),l=YVe(r,typeof e=="string",i),c=e!==E.Fragment?{...l,...s,ref:n}:{},{children:u}=r,d=E.useMemo(()=>uo(u)?u.get():u,[u]);return E.createElement(e,{...c,children:d})}function Dw(e){return uo(e)?e.get():e}function nqe({scrapeMotionValuesFromProps:e,createRenderState:r},n,o,a){return{latestValues:oqe(n,o,a,e),renderState:r()}}function oqe(e,r,n,o){const a={},i=o(e,{});for(const f in i)a[f]=Dw(i[f]);let{initial:s,animate:l}=e;const c=Cw(e),u=bZ(e);r&&u&&!c&&e.inherit!==!1&&(s===void 0&&(s=r.initial),l===void 0&&(l=r.animate));let d=n?n.initial===!1:!1;d=d||s===!1;const h=d?l:s;if(h&&typeof h!="boolean"&&!Sw(h)){const f=Array.isArray(h)?h:[h];for(let g=0;g(r,n)=>{const o=E.useContext(Nw),a=E.useContext(Tw),i=()=>nqe(e,r,o,a);return n?i():Dm(i)},aqe=HZ({scrapeMotionValuesFromProps:eT,createRenderState:aT}),iqe=HZ({scrapeMotionValuesFromProps:AZ,createRenderState:FZ}),sqe=Symbol.for("motionComponentSymbol");function Mm(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function lqe(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):Mm(n)&&(n.current=o))},[r])}const VZ=E.createContext({});function cqe(e,r,n,o,a){const{visualElement:i}=E.useContext(Nw),s=E.useContext(rT),l=E.useContext(Tw),c=E.useContext(Hp).reducedMotion,u=E.useRef(null);o=o||s.renderer,!u.current&&o&&(u.current=o(e,{visualState:r,parent:i,props:n,presenceContext:l,blockInitialAnimation:l?l.initial===!1:!1,reducedMotionConfig:c}));const d=u.current,h=E.useContext(VZ);d&&!d.projection&&a&&(d.type==="html"||d.type==="svg")&&uqe(u.current,n,a,h);const f=E.useRef(!1);E.useInsertionEffect(()=>{d&&f.current&&d.update(n,l)});const g=n[nZ],b=E.useRef(!!g&&!window.MotionHandoffIsComplete?.(g)&&window.MotionHasOptimisedAnimation?.(g));return tT(()=>{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 uqe(e,r,n,o){const{layoutId:a,layout:i,drag:s,dragConstraints:l,layoutScroll:c,layoutRoot:u,layoutCrossfade:d}=r;e.projection=new n(e.latestValues,r["data-framer-portal-id"]?void 0:qZ(e.parent)),e.projection.setOptions({layoutId:a,layout:i,alwaysMeasureLayout:!!s||l&&Mm(l),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:o,crossfade:d,layoutScroll:c,layoutRoot:u})}function qZ(e){if(e)return e.options.allowProjection!==!1?e.projection:qZ(e.parent)}function $w(e,{forwardMotionProps:r=!1}={},n,o){n&&nT(n);const a=iT(e)?iqe:aqe;function i(l,c){let u;const d={...E.useContext(Hp),...l,layoutId:dqe(l)},{isStatic:h}=d,f=KVe(l),g=a(l,h);if(!h&&XC){pqe();const b=hqe(d);u=b.MeasureLayout,f.visualElement=cqe(e,g,d,o,b.ProjectionNode)}return y.jsxs(Nw.Provider,{value:f,children:[u&&f.visualElement?y.jsx(u,{visualElement:f.visualElement,...d}):null,rqe(e,l,lqe(g,f.visualElement,c),g,h,r)]})}i.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const s=E.forwardRef(i);return s[sqe]=e,s}function dqe({layoutId:e}){const r=E.useContext(fy).id;return r&&e!==void 0?r+"-"+e:e}function pqe(e,r){E.useContext(rT).strict}function hqe(e){const{drag:r,layout:n}=Rm;if(!r&&!n)return{};const o={...r,...n};return{MeasureLayout:r?.isEnabled(e)||n?.isEnabled(e)?o.MeasureLayout:void 0,ProjectionNode:o.ProjectionNode}}function fqe(e,r){if(typeof Proxy>"u")return $w;const n=new Map,o=(i,s)=>$w(i,s,e,r),a=(i,s)=>o(i,s);return new Proxy(a,{get:(i,s)=>s==="create"?o:(n.has(s)||n.set(s,$w(s,void 0,e,r)),n.get(s))})}const Ei=fqe(),mqe=(e,r)=>iT(e)?new RZ(r):new EZ(r,{allowProjection:e!==E.Fragment});function UZ(e,r,n,o=0,a=1){const i=Array.from(e).sort((c,u)=>c.sortNodePosition(u)).indexOf(r),s=e.size,l=(s-1)*o;return typeof n=="function"?n(i,s):a===1?i*o:l-i*o}function sT(e,r,n={}){const o=Cm(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(UC(e,o,n)):()=>Promise.resolve(),s=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:u=0,staggerChildren:d,staggerDirection:h}=a;return gqe(e,r,c,u,d,h,n)}:()=>Promise.resolve(),{when:l}=a;if(l){const[c,u]=l==="beforeChildren"?[i,s]:[s,i];return c().then(()=>u())}else return Promise.all([i(),s(n.delay)])}function gqe(e,r,n=0,o=0,a=0,i=1,s){const l=[];for(const c of e.variantChildren)c.notify("AnimationStart",r),l.push(sT(c,r,{...s,delay:n+(typeof o=="function"?0:o)+UZ(e.variantChildren,c,o,a,i)}).then(()=>c.notify("AnimationComplete",r)));return Promise.all(l)}function yqe(e,r,n={}){e.notify("AnimationStart",r);let o;if(Array.isArray(r)){const a=r.map(i=>sT(e,i,n));o=Promise.all(a)}else if(typeof r=="string")o=sT(e,r,n);else{const a=typeof r=="function"?Cm(e,r,n.custom):r;o=Promise.all(UC(e,a,n))}return o.then(()=>{e.notify("AnimationComplete",r)})}function WZ(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})=>yqe(e,n,o)))}function kqe(e){let r=wqe(e),n=GZ(),o=!0;const a=c=>(u,d)=>{const h=Cm(e,d,c==="exit"?e.presenceContext?.custom:void 0);if(h){const{transition:f,transitionEnd:g,...b}=h;u={...u,...b,...g}}return u};function i(c){r=c(e)}function s(c){const{props:u}=e,d=YZ(e.parent)||{},h=[],f=new Set;let g={},b=1/0;for(let w=0;wb&&T,M=!1;const O=Array.isArray(_)?_:[_];let F=O.reduce(a(k),{});A===!1&&(F={});const{prevResolvedValues:L={}}=C,U={...L,...F},P=I=>{N=!0,f.has(I)&&(M=!0,f.delete(I)),C.needsAnimating[I]=!0;const H=e.getValue(I);H&&(H.liveStyle=!1)};for(const I in U){const H=F[I],q=L[I];if(g.hasOwnProperty(I))continue;let Z=!1;BC(H)&&BC(q)?Z=!WZ(H,q):Z=H!==q,Z?H!=null?P(I):f.add(I):H!==void 0&&f.has(I)?P(I):C.protectedKeys[I]=!0}C.prevProp=_,C.prevResolvedValues=F,C.isActive&&(g={...g,...F}),o&&e.blockInitialAnimation&&(N=!1);const V=R&&D;N&&(!V||M)&&h.push(...O.map(I=>{const H={type:k};if(typeof I=="string"&&o&&!V&&e.manuallyAnimateOnMount&&e.parent){const{parent:q}=e,Z=Cm(q,I);if(q.enteringChildren&&Z){const{delayChildren:W}=Z.transition||{};H.delay=UZ(q.enteringChildren,e,W)}}return{animation:I,options:H}}))}if(f.size){const w={};if(typeof u.initial!="boolean"){const k=Cm(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}),h.push({animation:w})}let x=!!h.length;return o&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(x=!1),o=!1,x?r(h):Promise.resolve()}function l(c,u){if(n[c].isActive===u)return Promise.resolve();e.variantChildren?.forEach(h=>h.animationState?.setActive(c,u)),n[c].isActive=u;const d=s(c);for(const h in n)n[h].protectedKeys={};return d}return{animateChanges:s,setActive:l,setAnimateFunction:i,getState:()=>n,reset:()=>{n=GZ()}}}function _qe(e,r){return typeof r=="string"?r!==e:Array.isArray(r)?!WZ(r,e):!1}function Vp(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function GZ(){return{animate:Vp(!0),whileInView:Vp(),whileHover:Vp(),whileTap:Vp(),whileDrag:Vp(),whileFocus:Vp(),exit:Vp()}}class Fu{constructor(r){this.isMounted=!1,this.node=r}update(){}}class Eqe extends Fu{constructor(r){super(r),r.animationState||(r.animationState=kqe(r))}updateAnimationControlsSubscription(){const{animate:r}=this.node.getProps();Sw(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 Sqe=0;class Cqe extends Fu{constructor(){super(...arguments),this.id=Sqe++}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 Tqe={animation:{Feature:Eqe},exit:{Feature:Cqe}};function my(e,r,n,o={passive:!0}){return e.addEventListener(r,n,o),()=>e.removeEventListener(r,n)}function gy(e){return{point:{x:e.pageX,y:e.pageY}}}const Aqe=e=>r=>IC(r)&&e(r,gy(r));function yy(e,r,n,o){return my(e,r,Aqe(n),o)}const XZ=1e-4,Rqe=1-XZ,Nqe=1+XZ,KZ=.01,Dqe=0-KZ,$qe=0+KZ;function Zo(e){return e.max-e.min}function Mqe(e,r,n){return Math.abs(e-r)<=n}function ZZ(e,r,n,o=.5){e.origin=o,e.originPoint=Zr(r.min,r.max,e.origin),e.scale=Zo(n)/Zo(r),e.translate=Zr(n.min,n.max,e.origin)-e.originPoint,(e.scale>=Rqe&&e.scale<=Nqe||isNaN(e.scale))&&(e.scale=1),(e.translate>=Dqe&&e.translate<=$qe||isNaN(e.translate))&&(e.translate=0)}function by(e,r,n,o){ZZ(e.x,r.x,n.x,o?o.originX:void 0),ZZ(e.y,r.y,n.y,o?o.originY:void 0)}function QZ(e,r,n){e.min=n.min+r.min,e.max=e.min+Zo(r)}function Pqe(e,r,n){QZ(e.x,r.x,n.x),QZ(e.y,r.y,n.y)}function JZ(e,r,n){e.min=r.min-n.min,e.max=e.min+Zo(r)}function vy(e,r,n){JZ(e.x,r.x,n.x),JZ(e.y,r.y,n.y)}function Si(e){return[e("x"),e("y")]}const eQ=({current:e})=>e?e.ownerDocument.defaultView:null;class tQ{constructor(r,n,{transformPagePoint:o,contextWindow:a=window,dragSnapToOrigin:i=!1,distanceThreshold:s=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=cT(this.lastMoveEventInfo,this.history),g=this.startEvent!==null,b=$Ve(f.offset,{x:0,y:0})>=this.distanceThreshold;if(!g&&!b)return;const{point:x}=f,{timestamp:w}=xo;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=lT(g,this.transformPagePoint),qr.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=cT(f.type==="pointercancel"?this.lastMoveEventInfo:lT(g,this.transformPagePoint),this.history);this.startEvent&&b&&b(f,k),x&&x(f,k)},!IC(r))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=o,this.distanceThreshold=s,this.contextWindow=a||window;const l=gy(r),c=lT(l,this.transformPagePoint),{point:u}=c,{timestamp:d}=xo;this.history=[{...u,timestamp:d}];const{onSessionStart:h}=n;h&&h(r,cT(c,this.history)),this.removeListeners=ry(yy(this.contextWindow,"pointermove",this.handlePointerMove),yy(this.contextWindow,"pointerup",this.handlePointerUp),yy(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(r){this.handlers=r}end(){this.removeListeners&&this.removeListeners(),ju(this.updatePoint)}}function lT(e,r){return r?{point:r(e.point)}:e}function rQ(e,r){return{x:e.x-r.x,y:e.y-r.y}}function cT({point:e},r){return{point:e,delta:rQ(e,nQ(r)),offset:rQ(e,zqe(r)),velocity:Iqe(r,.1)}}function zqe(e){return e[0]}function nQ(e){return e[e.length-1]}function Iqe(e,r){if(e.length<2)return{x:0,y:0};let n=e.length-1,o=null;const a=nQ(e);for(;n>=0&&(o=e[n],!(a.timestamp-o.timestamp>xs(r)));)n--;if(!o)return{x:0,y:0};const i=_i(a.timestamp-o.timestamp);if(i===0)return{x:0,y:0};const s={x:(a.x-o.x)/i,y:(a.y-o.y)/i};return s.x===1/0&&(s.x=0),s.y===1/0&&(s.y=0),s}function Oqe(e,{min:r,max:n},o){return r!==void 0&&en&&(e=o?Zr(n,e,o.max):Math.min(e,n)),e}function oQ(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 jqe(e,{top:r,left:n,bottom:o,right:a}){return{x:oQ(e.x,n,a),y:oQ(e.y,r,o)}}function aQ(e,r){let n=r.min-e.min,o=r.max-e.max;return r.max-r.mino?n=wm(r.min,r.max-o,e.min):o>a&&(n=wm(e.min,e.max-a,r.min)),vc(0,1,n)}function Fqe(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 uT=.35;function Hqe(e=uT){return e===!1?e=0:e===!0&&(e=uT),{x:iQ(e,"left","right"),y:iQ(e,"top","bottom")}}function iQ(e,r,n){return{min:sQ(e,r),max:sQ(e,n)}}function sQ(e,r){return typeof e=="number"?e:e[r]||0}const Vqe=new WeakMap;class qqe{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=gn(),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=h=>{const{dragSnapToOrigin:f}=this.getProps();f?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(gy(h).point)},s=(h,f)=>{const{drag:g,dragPropagation:b,onDragStart:x}=this.getProps();if(g&&!b&&(this.openDragLock&&this.openDragLock(),this.openDragLock=RHe(g),!this.openDragLock))return;this.latestPointerEvent=h,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),Si(k=>{let C=this.getAxisMotionValue(k).get()||0;if(kl.test(C)){const{projection:_}=this.visualElement;if(_&&_.layout){const T=_.layout.layoutBox[k];T&&(C=Zo(T)*(parseFloat(C)/100))}}this.originPoint[k]=C}),x&&qr.postRender(()=>x(h,f)),HC(this.visualElement,"transform");const{animationState:w}=this.visualElement;w&&w.setActive("whileDrag",!0)},l=(h,f)=>{this.latestPointerEvent=h,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=Uqe(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(h,f)},c=(h,f)=>{this.latestPointerEvent=h,this.latestPanInfo=f,this.stop(h,f),this.latestPointerEvent=null,this.latestPanInfo=null},u=()=>Si(h=>this.getAnimationState(h)==="paused"&&this.getAxisMotionValue(h).animation?.play()),{dragSnapToOrigin:d}=this.getProps();this.panSession=new tQ(r,{onSessionStart:i,onStart:s,onMove:l,onSessionEnd:c,resumeAnimation:u},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:d,distanceThreshold:o,contextWindow:eQ(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:s}=a;this.startAnimation(s);const{onDragEnd:l}=this.getProps();l&&qr.postRender(()=>l(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||!Mw(r,a,this.currentDirection))return;const i=this.getAxisMotionValue(r);let s=this.originPoint[r]+o[r];this.constraints&&this.constraints[r]&&(s=Oqe(s,this.constraints[r],this.elastic[r])),i.set(s)}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&&Mm(r)?this.constraints||(this.constraints=this.resolveRefConstraints()):r&&o?this.constraints=jqe(o.layoutBox,r):this.constraints=!1,this.elastic=Hqe(n),a!==this.constraints&&o&&this.constraints&&!this.hasMutatedConstraints&&Si(i=>{this.constraints!==!1&&this.getAxisMotionValue(i)&&(this.constraints[i]=Fqe(o.layoutBox[i],this.constraints[i]))})}resolveRefConstraints(){const{dragConstraints:r,onMeasureDragConstraints:n}=this.getProps();if(!r||!Mm(r))return!1;const o=r.current,{projection:a}=this.visualElement;if(!a||!a.layout)return!1;const i=dVe(o,a.root,this.visualElement.getTransformPagePoint());let s=Lqe(a.layout.layoutBox,i);if(n){const l=n(lVe(s));this.hasMutatedConstraints=!!l,l&&(s=aZ(l))}return s}startAnimation(r){const{drag:n,dragMomentum:o,dragElastic:a,dragTransition:i,dragSnapToOrigin:s,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=Si(d=>{if(!Mw(d,n,this.currentDirection))return;let h=c&&c[d]||{};s&&(h={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,...h};return this.startAxisValueAnimation(d,b)});return Promise.all(u).then(l)}startAxisValueAnimation(r,n){const o=this.getAxisMotionValue(r);return HC(this.visualElement,r),o.start(qC(r,o,0,n,this.visualElement,!1))}stopAnimation(){Si(r=>this.getAxisMotionValue(r).stop())}pauseAnimation(){Si(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){Si(n=>{const{drag:o}=this.getProps();if(!Mw(n,o,this.currentDirection))return;const{projection:a}=this.visualElement,i=this.getAxisMotionValue(n);if(a&&a.layout){const{min:s,max:l}=a.layout.layoutBox[n];i.set(r[n]-Zr(s,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:r,dragConstraints:n}=this.getProps(),{projection:o}=this.visualElement;if(!Mm(n)||!o||!this.constraints)return;this.stopAnimation();const a={x:0,y:0};Si(s=>{const l=this.getAxisMotionValue(s);if(l&&this.constraints!==!1){const c=l.get();a[s]=Bqe({min:c,max:c},this.constraints[s])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",o.root&&o.root.updateScroll(),o.updateLayout(),this.resolveConstraints(),Si(s=>{if(!Mw(s,r,null))return;const l=this.getAxisMotionValue(s),{min:c,max:u}=this.constraints[s];l.set(Zr(c,u,a[s]))})}addListeners(){if(!this.visualElement.current)return;Vqe.set(this.visualElement,this);const r=this.visualElement.current,n=yy(r,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps();u&&d&&this.start(c)}),o=()=>{const{dragConstraints:c}=this.getProps();Mm(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()),qr.read(o);const s=my(window,"resize",()=>this.scalePositionWithinConstraints()),l=a.addEventListener("didUpdate",(({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(Si(d=>{const h=this.getAxisMotionValue(d);h&&(this.originPoint[d]+=c[d].translate,h.set(h.get()+c[d].translate))}),this.visualElement.render())}));return()=>{s(),n(),i(),l&&l()}}getProps(){const r=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:o=!1,dragPropagation:a=!1,dragConstraints:i=!1,dragElastic:s=uT,dragMomentum:l=!0}=r;return{...r,drag:n,dragDirectionLock:o,dragPropagation:a,dragConstraints:i,dragElastic:s,dragMomentum:l}}}function Mw(e,r,n){return(r===!0||r===e)&&(n===null||n===e)}function Uqe(e,r=10){let n=null;return Math.abs(e.y)>r?n="y":Math.abs(e.x)>r&&(n="x"),n}class Wqe extends Fu{constructor(r){super(r),this.removeGroupControls=ki,this.removeListeners=ki,this.controls=new qqe(r)}mount(){const{dragControls:r}=this.node.getProps();r&&(this.removeGroupControls=r.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ki}unmount(){this.removeGroupControls(),this.removeListeners()}}const lQ=e=>(r,n)=>{e&&qr.postRender(()=>e(r,n))};class Yqe extends Fu{constructor(){super(...arguments),this.removePointerDownListener=ki}onPointerDown(r){this.session=new tQ(r,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:eQ(this.node)})}createPanHandlers(){const{onPanSessionStart:r,onPanStart:n,onPan:o,onPanEnd:a}=this.node.getProps();return{onSessionStart:lQ(r),onStart:lQ(n),onMove:o,onEnd:(i,s)=>{delete this.session,a&&qr.postRender(()=>a(i,s))}}}mount(){this.removePointerDownListener=yy(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 Pw={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function cQ(e,r){return r.max===r.min?0:e/(r.max-r.min)*100}const xy={correct:(e,r)=>{if(!r.target)return e;if(typeof e=="string")if($t.test(e))e=parseFloat(e);else return e;const n=cQ(e,r.target.x),o=cQ(e,r.target.y);return`${n}% ${o}%`}},Gqe={correct:(e,{treeScale:r,projectionDelta:n})=>{const o=e,a=Bu.parse(e);if(a.length>5)return o;const i=Bu.createTransformer(e),s=typeof a[0]!="number"?1:0,l=n.x.scale*r.x,c=n.y.scale*r.y;a[0+s]/=l,a[1+s]/=c;const u=Zr(l,c,.5);return typeof a[2+s]=="number"&&(a[2+s]/=u),typeof a[3+s]=="number"&&(a[3+s]/=u),i(a)}};let dT=!1;class Xqe extends E.Component{componentDidMount(){const{visualElement:r,layoutGroup:n,switchLayoutGroup:o,layoutId:a}=this.props,{projection:i}=r;gVe(Kqe),i&&(n.group&&n.group.add(i),o&&o.register&&a&&o.register(i),dT&&i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),Pw.hasEverUpdated=!0}getSnapshotBeforeUpdate(r){const{layoutDependency:n,visualElement:o,drag:a,isPresent:i}=this.props,{projection:s}=o;return s&&(s.isPresent=i,dT=!0,a||r.layoutDependency!==n||n===void 0||r.isPresent!==i?s.willUpdate():this.safeToRemove(),r.isPresent!==i&&(i?s.promote():s.relegate()||qr.postRender(()=>{const l=s.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:r}=this.props.visualElement;r&&(r.root.didUpdate(),zC.postRender(()=>{!r.currentAnimation&&r.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:r,layoutGroup:n,switchLayoutGroup:o}=this.props,{projection:a}=r;dT=!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 uQ(e){const[r,n]=PZ(),o=E.useContext(fy);return y.jsx(Xqe,{...e,layoutGroup:o,switchLayoutGroup:E.useContext(VZ),isPresent:r,safeToRemove:n})}const Kqe={borderRadius:{...xy,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:xy,borderTopRightRadius:xy,borderBottomLeftRadius:xy,borderBottomRightRadius:xy,boxShadow:Gqe},Zqe=(e,r)=>e.depth-r.depth;class Qqe{constructor(){this.children=[],this.isDirty=!1}add(r){QS(this.children,r),this.isDirty=!0}remove(r){gw(this.children,r),this.isDirty=!0}forEach(r){this.isDirty&&this.children.sort(Zqe),this.isDirty=!1,this.children.forEach(r)}}const dQ=["TopLeft","TopRight","BottomLeft","BottomRight"],Jqe=dQ.length,pQ=e=>typeof e=="string"?parseFloat(e):e,hQ=e=>typeof e=="number"||$t.test(e);function eUe(e,r,n,o,a,i){a?(e.opacity=Zr(0,n.opacity??1,tUe(o)),e.opacityExit=Zr(r.opacity??1,0,rUe(o))):i&&(e.opacity=Zr(r.opacity??1,n.opacity??1,o));for(let s=0;sor?1:n(wm(e,r,o))}function gQ(e,r){e.min=r.min,e.max=r.max}function Ci(e,r){gQ(e.x,r.x),gQ(e.y,r.y)}function yQ(e,r){e.translate=r.translate,e.scale=r.scale,e.originPoint=r.originPoint,e.origin=r.origin}function bQ(e,r,n,o,a){return e-=r,e=_w(e,1/n,o),a!==void 0&&(e=_w(e,1/a,o)),e}function nUe(e,r=0,n=1,o=.5,a,i=e,s=e){if(kl.test(r)&&(r=parseFloat(r),r=Zr(s.min,s.max,r/100)-s.min),typeof r!="number")return;let l=Zr(i.min,i.max,o);e===i&&(l-=r),e.min=bQ(e.min,r,n,l,a),e.max=bQ(e.max,r,n,l,a)}function vQ(e,r,[n,o,a],i,s){nUe(e,r[n],r[o],r[a],r.scale,i,s)}const oUe=["x","scaleX","originX"],aUe=["y","scaleY","originY"];function xQ(e,r,n,o){vQ(e.x,r,oUe,n?n.x:void 0,o?o.x:void 0),vQ(e.y,r,aUe,n?n.y:void 0,o?o.y:void 0)}function wQ(e){return e.translate===0&&e.scale===1}function kQ(e){return wQ(e.x)&&wQ(e.y)}function _Q(e,r){return e.min===r.min&&e.max===r.max}function iUe(e,r){return _Q(e.x,r.x)&&_Q(e.y,r.y)}function EQ(e,r){return Math.round(e.min)===Math.round(r.min)&&Math.round(e.max)===Math.round(r.max)}function SQ(e,r){return EQ(e.x,r.x)&&EQ(e.y,r.y)}function CQ(e){return Zo(e.x)/Zo(e.y)}function TQ(e,r){return e.translate===r.translate&&e.scale===r.scale&&e.originPoint===r.originPoint}class sUe{constructor(){this.members=[]}add(r){QS(this.members,r),r.scheduleRender()}remove(r){if(gw(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 lUe(e,r,n){let o="";const a=e.x.translate/r.x,i=e.y.translate/r.y,s=n?.z||0;if((a||i||s)&&(o=`translate3d(${a}px, ${i}px, ${s}px) `),(r.x!==1||r.y!==1)&&(o+=`scale(${1/r.x}, ${1/r.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:h,rotateY:f,skewX:g,skewY:b}=n;u&&(o=`perspective(${u}px) ${o}`),d&&(o+=`rotate(${d}deg) `),h&&(o+=`rotateX(${h}deg) `),f&&(o+=`rotateY(${f}deg) `),g&&(o+=`skewX(${g}deg) `),b&&(o+=`skewY(${b}deg) `)}const l=e.x.scale*r.x,c=e.y.scale*r.y;return(l!==1||c!==1)&&(o+=`scale(${l}, ${c})`),o||"none"}const pT=["","X","Y","Z"],cUe=1e3;let uUe=0;function hT(e,r,n,o){const{latestValues:a}=r;a[e]&&(n[e]=a[e],r.setStaticValue(e,0),o&&(o[e]=0))}function AQ(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:r}=e.options;if(!r)return;const n=oZ(r);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:a,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",qr,!(a||i))}const{parent:o}=e;o&&!o.hasCheckedOptimisedAppear&&AQ(o)}function RQ({attachResizeListener:e,defaultParent:r,measureScroll:n,checkIsScrollRoot:o,resetTransform:a}){return class{constructor(i={},s=r?.()){this.id=uUe++,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(hUe),this.nodes.forEach(yUe),this.nodes.forEach(bUe),this.nodes.forEach(fUe)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=i,this.root=s?s.root||s:this,this.path=s?[...s.path,s]:[],this.parent=s,this.depth=s?s.depth+1:0;for(let l=0;lthis.root.updateBlockedByResize=!1;qr.read(()=>{d=window.innerWidth}),e(i,()=>{const f=window.innerWidth;f!==d&&(d=f,this.root.updateBlockedByResize=!0,u&&u(),u=DVe(h,250),Pw.hasAnimatedSinceResize&&(Pw.hasAnimatedSinceResize=!1,this.nodes.forEach($Q)))})}s&&this.root.registerSharedNode(s,this),this.options.animate!==!1&&c&&(s||l)&&this.addEventListener("didUpdate",({delta:u,hasLayoutChanged:d,hasRelativeLayoutChanged:h,layout:f})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const g=this.options.transition||c.getDefaultTransition()||_Ue,{onLayoutAnimationStart:b,onLayoutAnimationComplete:x}=c.getProps(),w=!this.targetLayout||!SQ(this.targetLayout,f),k=!d&&h;if(this.options.layoutRoot||this.resumeFrom||k||d&&(w||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const C={...$C(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||$Q(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(),ju(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(vUe),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&&AQ(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&&!Zo(this.snapshot.measuredBox.x)&&!Zo(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 l=0;l{const T=_/1e3;MQ(d.x,i.x,T),MQ(d.y,i.y,T),this.setTargetDelta(d),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(vy(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),wUe(this.relativeTarget,this.relativeTargetOrigin,h,T),C&&iUe(this.relativeTarget,C)&&(this.isProjectionDirty=!1),C||(C=gn()),Ci(C,this.relativeTarget)),b&&(this.animationValues=u,eUe(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&&(ju(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=qr.update(()=>{Pw.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Bp(0)),this.currentAnimation=NZ(this.motionValue,[0,1e3],{...i,velocity:0,isSync:!0,onUpdate:s=>{this.mixTargetDelta(s),i.onUpdate&&i.onUpdate(s)},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(cUe),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const i=this.getLead();let{targetWithTransforms:s,target:l,layout:c,latestValues:u}=i;if(!(!s||!l||!c)){if(this!==i&&this.layout&&c&&jQ(this.options.animationType,this.layout.layoutBox,c.layoutBox)){l=this.target||gn();const d=Zo(this.layout.layoutBox.x);l.x.min=i.target.x.min,l.x.max=l.x.min+d;const h=Zo(this.layout.layoutBox.y);l.y.min=i.target.y.min,l.y.max=l.y.min+h}Ci(s,l),Am(s,u),by(this.projectionDeltaWithTransform,this.layoutCorrected,s,u)}}registerSharedNode(i,s){this.sharedNodes.has(i)||this.sharedNodes.set(i,new sUe),this.sharedNodes.get(i).add(s);const l=s.options.initialPromotionConfig;s.promote({transition:l?l.transition:void 0,preserveFollowOpacity:l&&l.shouldPreserveFollowOpacity?l.shouldPreserveFollowOpacity(s):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:s,preserveFollowOpacity:l}={}){const c=this.getStack();c&&c.promote(this,l),i&&(this.projectionDelta=void 0,this.needsReset=!0),s&&this.setOptions({transition:s})}relegate(){const i=this.getStack();return i?i.relegate(this):!1}resetSkewAndRotation(){const{visualElement:i}=this.options;if(!i)return;let s=!1;const{latestValues:l}=i;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(s=!0),!s)return;const c={};l.z&&hT("z",i,c,this.animationValues);for(let u=0;ui.currentAnimation?.stop()),this.root.nodes.forEach(NQ),this.root.sharedNodes.clear()}}}function dUe(e){e.updateLayout()}function pUe(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"?Si(d=>{const h=i?r.measuredBox[d]:r.layoutBox[d],f=Zo(h);h.min=n[d].min,h.max=h.min+f}):jQ(a,r.layoutBox,n)&&Si(d=>{const h=i?r.measuredBox[d]:r.layoutBox[d],f=Zo(n[d]);h.max=h.min+f,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[d].max=e.relativeTarget[d].min+f)});const s=Nm();by(s,n,r.layoutBox);const l=Nm();i?by(l,e.applyTransform(o,!0),r.measuredBox):by(l,n,r.layoutBox);const c=!kQ(s);let u=!1;if(!e.resumeFrom){const d=e.getClosestProjectingParent();if(d&&!d.resumeFrom){const{snapshot:h,layout:f}=d;if(h&&f){const g=gn();vy(g,r.layoutBox,h.layoutBox);const b=gn();vy(b,n,f.layoutBox),SQ(g,b)||(u=!0),d.options.layoutRoot&&(e.relativeTarget=b,e.relativeTargetOrigin=g,e.relativeParent=d)}}}e.notifyListeners("didUpdate",{layout:n,snapshot:r,delta:l,layoutDelta:s,hasLayoutChanged:c,hasRelativeLayoutChanged:u})}else if(e.isLead()){const{onExitComplete:n}=e.options;n&&n()}e.options.transition=void 0}function hUe(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 fUe(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function mUe(e){e.clearSnapshot()}function NQ(e){e.clearMeasurements()}function DQ(e){e.isLayoutDirty=!1}function gUe(e){const{visualElement:r}=e.options;r&&r.getProps().onBeforeLayoutMeasure&&r.notify("BeforeLayoutMeasure"),e.resetTransform()}function $Q(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function yUe(e){e.resolveTargetDelta()}function bUe(e){e.calcProjection()}function vUe(e){e.resetSkewAndRotation()}function xUe(e){e.removeLeadSnapshot()}function MQ(e,r,n){e.translate=Zr(r.translate,0,n),e.scale=Zr(r.scale,1,n),e.origin=r.origin,e.originPoint=r.originPoint}function PQ(e,r,n,o){e.min=Zr(r.min,n.min,o),e.max=Zr(r.max,n.max,o)}function wUe(e,r,n,o){PQ(e.x,r.x,n.x,o),PQ(e.y,r.y,n.y,o)}function kUe(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const _Ue={duration:.45,ease:[.4,0,.1,1]},zQ=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),IQ=zQ("applewebkit/")&&!zQ("chrome/")?Math.round:ki;function OQ(e){e.min=IQ(e.min),e.max=IQ(e.max)}function EUe(e){OQ(e.x),OQ(e.y)}function jQ(e,r,n){return e==="position"||e==="preserve-aspect"&&!Mqe(CQ(r),CQ(n),.2)}function SUe(e){return e!==e.root&&e.scroll?.wasRoot}const CUe=RQ({attachResizeListener:(e,r)=>my(e,"resize",r),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),fT={current:void 0},LQ=RQ({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!fT.current){const e=new CUe({});e.mount(window),e.setOptions({layoutScroll:!0}),fT.current=e}return fT.current},resetTransform:(e,r)=>{e.style.transform=r!==void 0?r:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),TUe={pan:{Feature:Yqe},drag:{Feature:Wqe,ProjectionNode:LQ,MeasureLayout:uQ}};function BQ(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&&qr.postRender(()=>i(r,gy(r)))}class AUe extends Fu{mount(){const{current:r}=this.node;r&&(this.unmount=NHe(r,(n,o)=>(BQ(this.node,o,"Start"),a=>BQ(this.node,a,"End"))))}unmount(){}}class RUe extends Fu{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=ry(my(this.node.current,"focus",()=>this.onFocus()),my(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function FQ(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&&qr.postRender(()=>i(r,gy(r)))}class NUe extends Fu{mount(){const{current:r}=this.node;r&&(this.unmount=PHe(r,(n,o)=>(FQ(this.node,o,"Start"),(a,{success:i})=>FQ(this.node,a,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const mT=new WeakMap,gT=new WeakMap,DUe=e=>{const r=mT.get(e.target);r&&r(e)},$Ue=e=>{e.forEach(DUe)};function MUe({root:e,...r}){const n=e||document;gT.has(n)||gT.set(n,{});const o=gT.get(n),a=JSON.stringify(r);return o[a]||(o[a]=new IntersectionObserver($Ue,{root:e,...r})),o[a]}function PUe(e,r,n){const o=MUe(r);return mT.set(e,n),o.observe(e),()=>{mT.delete(e),o.unobserve(e)}}const zUe={some:0,all:1};class IUe extends Fu{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,s={root:n?n.current:void 0,rootMargin:o,threshold:typeof a=="number"?a:zUe[a]},l=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:h}=this.node.getProps(),f=u?d:h;f&&f(c)};return PUe(this.node.current,s,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:r,prevProps:n}=this.node;["amount","margin","root"].some(OUe(r,n))&&this.startObserver()}unmount(){}}function OUe({viewport:e={}},{viewport:r={}}={}){return n=>e[n]!==r[n]}const jUe={inView:{Feature:IUe},tap:{Feature:NUe},focus:{Feature:RUe},hover:{Feature:AUe}},LUe={layout:{ProjectionNode:LQ,MeasureLayout:uQ}},BUe={renderer:mqe,...Tqe,...jUe},FUe={...BUe,...TUe,...LUe};function HQ(e){const r=Dm(()=>Bp(e)),{isStatic:n}=E.useContext(Hp);if(n){const[,o]=E.useState(e);E.useEffect(()=>r.on("change",o),[])}return r}function HUe(){!KC.current&&yZ();const[e]=E.useState(Ew.current);return e}function VQ(){const e=HUe(),{reducedMotion:r}=E.useContext(Hp);return r==="never"?!1:r==="always"?!0:e}class VUe{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 qUe=()=>new VUe;function UUe(){return Dm(qUe)}const yT=E.createContext(null);yT.displayName="ElementDetailsActorContext";const WUe=()=>{const e=E.useContext(yT);if(e===null)throw new Error("ElementDetailsActorRef is not provided");return e},ks=(e,r,n)=>{const o=a=>({[e]:"__ignore__",...r,...np(a)});return{recipeFn:(a,i=!0)=>{const s=_F({conditions:{shift:AF,finalize:TF,breakpoints:{keys:["base","xs","sm","md","lg","xl"]}},utility:{toHash:(c,u)=>u(c.join(":")),transform:(c,u)=>(bEe(e,n,a,c),u==="__ignore__"?{className:e}:(u=PE(u),{className:`${e}--${c}_${u}`}))}}),l=o(a);if(i){const c=BE(n,l);return et(s(l),be(c))}return s(l)},getVariantProps:o,__getCompoundVariantCss__:a=>BE(n,o(a))}},wc=(e,r)=>{if(e&&!r)return e;if(!e&&r)return r;const n=(...i)=>et(e(...i),r(...i)),o=jE(e.variantKeys,r.variantKeys),a=o.reduce((i,s)=>(i[s]=jE(e.variantMap[s],r.variantMap[s]),i),{});return Object.assign(n,{__recipe__:!0,__name__:`${e.__name__} ${r.__name__}`,raw:i=>i,variantKeys:o,variantMap:a,splitVariantProps(i){return oo(i,o)}})},bT=ks("action-btn",{size:"md",radius:"md",variant:"filled"},[]),qQ={variant:["transparent","filled"],size:["sm","md"],radius:["sm","md"]},UQ=Object.keys(qQ),zw=Object.assign(go(bT.recipeFn),{__recipe__:!0,__name__:"actionBtn",__getCompoundVariantCss__:bT.__getCompoundVariantCss__,raw:e=>e,variantKeys:UQ,variantMap:qQ,merge(e){return wc(this,e)},splitVariantProps(e){return oo(e,UQ)},getVariantProps:bT.getVariantProps}),vT=ks("likec4-compound-node",{},[]),WQ={isTransparent:["false","true"],inverseColor:["true","false"],borderStyle:["solid","dashed","dotted","none"]},YQ=Object.keys(WQ),YUe=Object.assign(go(vT.recipeFn),{__recipe__:!0,__name__:"compoundNode",__getCompoundVariantCss__:vT.__getCompoundVariantCss__,raw:e=>e,variantKeys:YQ,variantMap:WQ,merge(e){return wc(this,e)},splitVariantProps(e){return oo(e,YQ)},getVariantProps:vT.getVariantProps}),xT=ks("likec4-edge-action-btn",{},[]),GQ={},XQ=Object.keys(GQ),GUe=Object.assign(go(xT.recipeFn),{__recipe__:!0,__name__:"edgeActionBtn",__getCompoundVariantCss__:xT.__getCompoundVariantCss__,raw:e=>e,variantKeys:XQ,variantMap:GQ,merge(e){return wc(this,e)},splitVariantProps(e){return oo(e,XQ)},getVariantProps:xT.getVariantProps}),wT=ks("likec4-element-node-data",{},[]),KQ={},ZQ=Object.keys(KQ),XUe=Object.assign(go(wT.recipeFn),{__recipe__:!0,__name__:"elementNodeData",__getCompoundVariantCss__:wT.__getCompoundVariantCss__,raw:e=>e,variantKeys:ZQ,variantMap:KQ,merge(e){return wc(this,e)},splitVariantProps(e){return oo(e,ZQ)},getVariantProps:wT.getVariantProps}),kT=ks("likec4-element-shape",{},[]),QQ={shapetype:["html","svg"]},JQ=Object.keys(QQ),eJ=Object.assign(go(kT.recipeFn),{__recipe__:!0,__name__:"elementShapeRecipe",__getCompoundVariantCss__:kT.__getCompoundVariantCss__,raw:e=>e,variantKeys:JQ,variantMap:QQ,merge(e){return wc(this,e)},splitVariantProps(e){return oo(e,JQ)},getVariantProps:kT.getVariantProps}),_T=ks("likec4-tag",{autoTextColor:!1},[]),tJ={autoTextColor:["false","true"]},rJ=Object.keys(tJ),KUe=Object.assign(go(_T.recipeFn),{__recipe__:!0,__name__:"likec4tag",__getCompoundVariantCss__:_T.__getCompoundVariantCss__,raw:e=>e,variantKeys:rJ,variantMap:tJ,merge(e){return wc(this,e)},splitVariantProps(e){return oo(e,rJ)},getVariantProps:_T.getVariantProps}),ET=ks("likec4-markdown-block",{uselikec4palette:!1,value:"markdown"},[]),nJ={uselikec4palette:["true","false"],value:["markdown","plaintext"]},oJ=Object.keys(nJ),ZUe=Object.assign(go(ET.recipeFn),{__recipe__:!0,__name__:"markdownBlock",__getCompoundVariantCss__:ET.__getCompoundVariantCss__,raw:e=>e,variantKeys:oJ,variantMap:nJ,merge(e){return wc(this,e)},splitVariantProps(e){return oo(e,oJ)},getVariantProps:ET.getVariantProps}),ST=ks("likec4-navigation-panel-icon",{variant:"default",type:"default"},[{type:"warning",variant:"filled",css:{backgroundColor:{base:"likec4.panel.action.warning.bg",_hover:"likec4.panel.action.warning.bg.hover"}}}]),aJ={variant:["default","filled"],type:["default","warning"]},iJ=Object.keys(aJ),CT=Object.assign(go(ST.recipeFn),{__recipe__:!0,__name__:"navigationPanelActionIcon",__getCompoundVariantCss__:ST.__getCompoundVariantCss__,raw:e=>e,variantKeys:iJ,variantMap:aJ,merge(e){return wc(this,e)},splitVariantProps(e){return oo(e,iJ)},getVariantProps:ST.getVariantProps}),TT=ks("likec4-overlay",{fullscreen:!1,withBackdrop:!0},[]),sJ={fullscreen:["false","true"],withBackdrop:["false","true"]},lJ=Object.keys(sJ),QUe=Object.assign(go(TT.recipeFn),{__recipe__:!0,__name__:"overlay",__getCompoundVariantCss__:TT.__getCompoundVariantCss__,raw:e=>e,variantKeys:lJ,variantMap:sJ,merge(e){return wc(this,e)},splitVariantProps(e){return oo(e,lJ)},getVariantProps:TT.getVariantProps}),cJ={pointerEvents:"all",isStepEdge:!1,cursor:"default"},JUe=[],eWe=[["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"]],tWe=eWe.map(([e,r])=>[e,ks(r,cJ,OE(JUe,e))]),rWe=go((e={})=>Object.fromEntries(tWe.map(([r,n])=>[r,n.recipeFn(e)]))),uJ=["pointerEvents","cursor","isStepEdge"],nWe=e=>({...cJ,...np(e)}),oWe=Object.assign(rWe,{__recipe__:!1,__name__:"edgeLabel",raw:e=>e,classNameMap:{},variantKeys:uJ,variantMap:{pointerEvents:["none","all"],cursor:["pointer","default"],isStepEdge:["false","true"]},splitVariantProps(e){return oo(e,uJ)},getVariantProps:nWe}),dJ={truncateLabel:!1},aWe=[],iWe=[["root","likec4-navlink__root"],["body","likec4-navlink__body"],["section","likec4-navlink__section"],["label","likec4-navlink__label"],["description","likec4-navlink__description"]],sWe=iWe.map(([e,r])=>[e,ks(r,dJ,OE(aWe,e))]),lWe=go((e={})=>Object.fromEntries(sWe.map(([r,n])=>[r,n.recipeFn(e)]))),pJ=["truncateLabel"],cWe=e=>({...dJ,...np(e)}),uWe=Object.assign(lWe,{__recipe__:!1,__name__:"navigationLink",raw:e=>e,classNameMap:{},variantKeys:pJ,variantMap:{truncateLabel:["true","false"]},splitVariantProps(e){return oo(e,pJ)},getVariantProps:cWe});function kt(e){const r=E.useRef(e);r.current=e;const n=E.useRef(null);return n.current==null&&(n.current=((...o)=>r.current?.(...o))),n.current}function hJ(){return Bf()}function Iw(e,r){return qt(kt(e),r??an)}function AT(){return Ar()}const dWe=e=>Math.round(e.transform[2]*100)/100;function pWe(){return qt(dWe)}const hWe=e=>e.transform[2]<.2;function fWe(){return qt(hWe)}const{abs:wy,cos:kc,sin:Pm,acos:mWe,atan2:ky,sqrt:Hu,pow:Ti}=Math;function _y(e){return e<0?-Ti(-e,.3333333333333333):Ti(e,.3333333333333333)}const fJ=Math.PI,Ow=2*fJ,Vu=fJ/2,gWe=1e-6,RT=Number.MAX_SAFE_INTEGER||9007199254740991,NT=Number.MIN_SAFE_INTEGER||-9007199254740991,yWe={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),Hu(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 l={x:a*i[0].x+e*i[1].x,y:a*i[0].y+e*i[1].y,t:e};return n&&(l.z=a*i[0].z+e*i[1].z),l}if(o<4){let l=a*a,c=e*e,u,d,h,f=0;o===2?(i=[i[0],i[1],i[2],yWe],u=l,d=a*e*2,h=c):o===3&&(u=l*a,d=l*e*3,h=a*c*3,f=e*c);const g={x:u*i[0].x+d*i[1].x+h*i[2].x+f*i[3].x,y:u*i[0].y+d*i[1].y+h*i[2].y+f*i[3].y,t:e};return n&&(g.z=u*i[0].z+d*i[1].z+h*i[2].z+f*i[3].z),g}const s=JSON.parse(JSON.stringify(r));for(;s.length>1;){for(let l=0;l1;a--,i--){const s=[];for(let l=0,c;l"u")e=.5;else if(e===0||e===1)return e;const n=Ti(e,r)+Ti(1-e,r),o=n-1;return wy(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=Ti(1-e,r),o=Ti(e,r)+n;return n/o},lli8:function(e,r,n,o,a,i,s,l){const c=(e*o-r*n)*(a-s)-(e-n)*(a*l-i*s),u=(e*o-r*n)*(i-l)-(r-o)*(a*l-i*s),d=(e-n)*(i-l)-(r-o)*(a-s);return d==0?!1:{x:c/d,y:u/d}},lli4:function(e,r,n,o){const a=e.x,i=e.y,s=r.x,l=r.y,c=n.x,u=n.y,d=o.x,h=o.y;return Ye.lli8(a,i,s,l,c,u,d,h)},lli:function(e,r){return Ye.lli4(e,e.c,r,r.c)},makeline:function(e,r){return new Qr(e.x,e.y,(e.x+r.x)/2,(e.y+r.y)/2,r.x,r.y)},findbbox:function(e){let r=RT,n=RT,o=NT,a=NT;return e.forEach(function(i){const s=i.bbox();r>s.x.min&&(r=s.x.min),n>s.y.min&&(n=s.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]),s=Ye.makeline(e.points[a-1],r.points[0]),l={startcap:i,forward:e,back:r,endcap:s,bbox:Ye.findbbox([i,e,r,s])};return l.intersections=function(c){return Ye.shapeintersections(l,l.bbox,c,c.bbox,n)},l},getminmax:function(e,r,n){if(!n)return{min:0,max:0};let o=RT,a=NT,i,s;n.indexOf(0)===-1&&(n=[0].concat(n)),n.indexOf(1)===-1&&n.push(1);for(let l=0,c=n.length;la&&(a=s[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=-ky(r.p2.y-o,r.p2.x-n),i=function(s){return{x:(s.x-n)*kc(a)-(s.y-o)*Pm(a),y:(s.x-n)*Pm(a)+(s.y-o)*kc(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,M=o[2].y,O=D-2*N+M;if(O!==0){const F=-Hu(N*N-D*M),L=-D+N,U=-(F+L)/O,P=-(-F+L)/O;return[U,P].filter(a)}else if(N!==M&&O===0)return[(2*N-M)/(2*N-2*M)].filter(a);return[]}const i=o[0].y,s=o[1].y,l=o[2].y,c=o[3].y;let u=-i+3*s-3*l+c,d=3*i-6*s+3*l,h=-3*i+3*s,f=i;if(Ye.approximately(u,0)){if(Ye.approximately(d,0))return Ye.approximately(h,0)?[]:[-f/h].filter(a);const D=Hu(h*h-4*d*f),N=2*d;return[(D-h)/N,(-h-D)/N].filter(a)}d/=u,h/=u,f/=u;const g=(3*h-d*d)/3,b=g/3,x=(2*d*d*d-9*d*h+27*f)/27,w=x/2,k=w*w+b*b*b;let C,_,T,A,R;if(k<0){const D=-g/3,N=D*D*D,M=Hu(N),O=-x/(2*M),F=O<-1?-1:O>1?1:O,L=mWe(F),U=_y(M),P=2*U;return T=P*kc(L/3)-d/3,A=P*kc((L+Ow)/3)-d/3,R=P*kc((L+2*Ow)/3)-d/3,[T,A,R].filter(a)}else{if(k===0)return C=w<0?_y(-w):-_y(w),T=2*C-d/3,A=-C-d/3,[T,A].filter(a);{const D=Hu(k);return C=_y(-w+D),_=_y(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=-Hu(n*n-r*o),s=-r+n,l=-(i+s)/a,c=-(-i+s)/a;return[l,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,s,l,c,u=0,d=0;const h=Ye.compute(e,r),f=Ye.compute(e,n),g=h.x*h.x+h.y*h.y;if(o?(i=Hu(Ti(h.y*f.z-f.y*h.z,2)+Ti(h.z*f.x-f.z*h.x,2)+Ti(h.x*f.y-f.x*h.y,2)),s=Ti(g+h.z*h.z,3/2)):(i=h.x*f.y-h.y*f.x,s=Ti(g,3/2)),i===0||s===0)return{k:0,r:0};if(u=i/s,d=s/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,l=(wy(x-u)+wy(u-b))/2}return{k:u,r:d,dk:c,adk:l}},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,s=18*(-3*n+2*o+3*a-i),l=18*(3*n-o-3*a),c=18*(a-n);if(Ye.approximately(s,0)){if(!Ye.approximately(l,0)){let f=-c/l;if(0<=f&&f<=1)return[f]}return[]}const u=2*s;if(Ye.approximately(u,0))return[];const d=l*l-4*s*c;if(d<0)return[];const h=Math.sqrt(d);return[(h-l)/u,-(l+h)/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,s,l,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,s=n||.5;if(o.x.size+o.y.sizeR||R>D)&&(A+=Ow),A>D&&(N=D,D=A,A=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 s=this._3d=!a&&(i===9||i===12)||r&&r[0]&&typeof r[0].z<"u",l=this.points=[];for(let g=0,b=s?3:2;gg+Sy(b.y),0)"u"&&(a=.5),a===0)return new Qr(n,n,o);if(a===1)return new Qr(r,n,n);const i=Qr.getABC(2,r,n,o,a);return new Qr(r,i.A,o)}static cubicFromPoints(r,n,o,a,i){typeof a>"u"&&(a=.5);const s=Qr.getABC(3,r,n,o,a);typeof i>"u"&&(i=Ye.dist(n,s.C));const l=i*(1-a)/a,c=Ye.dist(r,o),u=(o.x-r.x)/c,d=(o.y-r.y)/c,h=i*u,f=i*d,g=l*u,b=l*d,x={x:n.x-h,y:n.y-f},w={x:n.x+g,y:n.y+b},k=s.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},A={x:o.x+(_.x-o.x)/(1-a),y:o.y+(_.y-o.y)/(1-a)};return new Qr(r,T,A,o)}static getUtils(){return Ye}getUtils(){return Qr.getUtils()}static get PolyBezier(){return Ey}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,s=r.length;i0}length(){return Ye.length(this.derivative.bind(this))}static getABC(r=2,n,o,a,i=.5){const s=Ye.projectionratio(i,r),l=1-s,c={x:s*n.x+l*a.x,y:s*n.y+l*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 Qr.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:h,f=this.compute(h),f.t=h,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,s;a1;){o=[];for(let s=0,l,c=n.length-1;s=0&&s<=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 s={x:i.x+r*o.x,y:i.y+r*o.y};return i.z&&o.z&&(s.z=i.z+r*o.z),s});return[new Qr(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),Sy(xWe(o))(1-l/a)*n+l/a*o);return new Qr(this.points.map((s,l)=>({x:s.x+r.x*i[l],y:s.y+r.y*i[l]})))}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 s=o?o(0):r,l=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(h){const f=u[h*n]=Ye.copy(i[h*n]);f.x+=(h?l:s)*c[h].n.x,f.y+=(h?l:s)*c[h].n.y}),o?([0,1].forEach(function(h){if(!(n===2&&h)){var f=i[h+1],g={x:f.x-d.x,y:f.y-d.y},b=o?o((h+1)/n):r;o&&!a&&(b=-b);var x=Cy(g.x*g.x+g.y*g.y);g.x/=x,g.y/=x,u[h+1]={x:f.x+b*g.x,y:f.y+b*g.y}}}),new Qr(u)):([0,1].forEach(h=>{if(n===2&&h)return;const f=u[h*n],g=this.derivative(h),b={x:f.x+g.x,y:f.y+g.y};u[h+1]=Ye.lli4(f,b,d,i[h+1])}),new Qr(u))}outline(r,n,o,a){if(n=n===void 0?r:n,this._linear){const A=this.normal(0),R=this.points[0],D=this.points[this.points.length-1];let N,M,O;o===void 0&&(o=r,a=n),N={x:R.x+A.x*r,y:R.y+A.y*r},O={x:D.x+A.x*o,y:D.y+A.y*o},M={x:(N.x+O.x)/2,y:(N.y+O.y)/2};const F=[N,M,O];N={x:R.x-A.x*n,y:R.y-A.y*n},O={x:D.x-A.x*a,y:D.y-A.y*a},M={x:(N.x+O.x)/2,y:(N.y+O.y)/2};const L=[O,M,N],U=Ye.makeline(L[2],F[0]),P=Ye.makeline(F[2],L[0]),V=[U,new Qr(F),P,new Qr(L)];return new Ey(V)}const i=this.reduce(),s=i.length,l=[];let c=[],u,d=0,h=this.length();const f=typeof o<"u"&&typeof a<"u";function g(A,R,D,N,M){return function(O){const F=N/D,L=(N+M)/D,U=R-A;return Ye.map(O,0,1,A+F*U,A+L*U)}}i.forEach(function(A){const R=A.length();f?(l.push(A.scale(g(r,o,h,d,R))),c.push(A.scale(g(-n,-a,h,d,R)))):(l.push(A.scale(r)),c.push(A.scale(-n))),d+=R}),c=c.map(function(A){return u=A.points,u[3]?A.points=[u[3],u[2],u[1],u[0]]:A.points=[u[2],u[1],u[0]],A}).reverse();const b=l[0].points[0],x=l[s-1].points[l[s-1].points.length-1],w=c[s-1].points[c[s-1].points.length-1],k=c[0].points[0],C=Ye.makeline(w,b),_=Ye.makeline(x,k),T=[C].concat(l).concat([_]).concat(c);return new Ey(T)}outlineshapes(r,n,o){n=n||r;const a=this.outline(r,n).curves,i=[];for(let s=1,l=a.length;s1,c.endcap.virtual=s{var l=this.get(s);return Ye.between(l.x,n,a)&&Ye.between(l.y,o,i)})}selfintersects(r){const n=this.reduce(),o=n.length-2,a=[];for(let i=0,s,l,c;i0&&(i=i.concat(l))}),i}arcs(r){return r=r||.5,this._iterate(r,[])}_error(r,n,o,a){const i=(a-o)/4,s=this.get(o+i),l=this.get(a-i),c=Ye.dist(r,n),u=Ye.dist(r,s),d=Ye.dist(r,l);return Sy(u-c)+Sy(d-c)}_iterate(r,n){let o=0,a=1,i;do{i=0,a=1;let s=this.get(o),l,c,u,d,h=!1,f=!1,g,b=a,x=1;do if(f=h,d=u,b=(o+a)/2,l=this.get(b),c=this.get(a),u=Ye.getccenter(s,l,c),u.interval={start:o,end:a},h=this._error(u,s,o,a)<=r,g=f&&!h,g||(x=a),h){if(a>=1){if(u.interval.end=x=1,d=u,a>1){let w={x:u.x+u.r*bWe(u.e),y:u.y+u.r*vWe(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}}class Ai{constructor(r,n){this.x=r,this.y=n}static create(...r){return r.length===2?new Ai(r[0],r[1]):new Ai(r[0].x,r[0].y)}static add(r,n){return{x:r.x+n.x,y:r.y+n.y}}static subtract(r,n){return{x:r.x-n.x,y:r.y-n.y}}static multiply(r,n){return{x:r.x*n,y:r.y*n}}static dot(r,n){return r.x*n.x+r.y*n.y}add(r){return new Ai(this.x+r.x,this.y+r.y)}subtract(r){return new Ai(this.x-r.x,this.y-r.y)}multiply(r){return new Ai(this.x*r,this.y*r)}dot(r){return this.x*r.x+this.y*r.y}cross(r){return new Ai(this.y*r.x-this.x*r.y,this.x*r.y-this.y*r.x)}length(){return this.x===0&&this.y===0?0:Math.sqrt(this.x**2+this.y**2)}normalize(){const r=this.length();return r===0?new Ai(0,0):new Ai(this.x/r,this.y/r)}}function jo(...e){return e.length===1&&e[0]instanceof Ai?e[0]:e.length===2?new Ai(e[0],e[1]):new Ai(e[0].x,e[0].y)}function yJ(e){const r={internals:{positionAbsolute:e.internals.positionAbsolute}};return e.measured&&(r.measured=e.measured),_u(e.width)&&(r.width=e.width),_u(e.height)&&(r.height=e.height),_u(e.initialWidth)&&(r.initialWidth=e.initialWidth),_u(e.initialHeight)&&(r.initialHeight=e.initialHeight),r}function bJ(e,r){const n=e.internals.positionAbsolute,o=r.internals.positionAbsolute;if(n.x!==o.x||n.y!==o.y)return!1;const a=e.measured?.width??e.width??e.initialWidth??0,i=r.measured?.width??r.width??r.initialWidth??0;if(a!==i)return!1;const s=e.measured?.height??e.height??e.initialHeight??0,l=r.measured?.height??r.height??r.initialHeight??0;return s===l}function Ty(e){const{width:r,height:n}=ao(e),{x:o,y:a}=e.internals.positionAbsolute;return{x:o+r/2,y:a+n/2}}function Ay(e,r,n=0){const o=Ty(e),{width:a,height:i}=ao(e),s=jo(r.x,r.y).subtract(o),l=(n+(a||0)/2)/s.x,c=(n+(i||0)/2)/s.y,u=Math.min(Math.abs(l),Math.abs(c));return jo(s).multiply(u).add(o)}function vJ(e,r){return Ay(e,Ty(r))}function jw(e){let[r,...n]=e;at(r,"start should be defined");const o=[];for(;bo(n,3);){const[a,i,s,...l]=n,c=new Qr(r[0],r[1],a[0],a[1],i[0],i[1],s[0],s[1]),u=c.inflections();u.length===0&&u.push(.5),u.forEach(d=>{const{x:h,y:f}=c.get(d);o.push({x:Math.round(h),y:Math.round(f)})}),n=l,r=s}return at(n.length===0,"all points should be consumed"),o}const xJ=(e,r)=>Math.abs(e-r)<3.1;function wJ(e,r){const[n,o]=P9(e)?e:[e.x,e.y],[a,i]=P9(r)?r:[r.x,r.y];return xJ(n,a)&&xJ(o,i)}function Cn(e){return e.stopPropagation()}function kWe(e){let[r,...n]=e;at(r,"start should be defined");let o=`M ${r[0]},${r[1]}`;for(;bo(n,3);){const[a,i,s,...l]=n;o=o+` C ${a[0]},${a[1]} ${i[0]},${i[1]} ${s[0]},${s[1]}`,n=l}return at(n.length===0,"all points should be consumed"),o}const Lw=E.forwardRef(({tag:e,cursor:r,className:n,style:o,...a},i)=>{const s=iLe(e);return y.jsxs(zr,{ref:i,"data-likec4-tag":e,className:et(KUe({autoTextColor:OB(s)}),n),...a,style:{cursor:r,...o},children:[y.jsx("span",{children:"#"}),y.jsx("span",{children:e})]})}),_We=(e,r)=>e.data.width===r.data.width&<(e.data.tags,r.data.tags)&&(e.data.hovered??!1)===(r.data.hovered??!1),Ry=E.memo(({id:e,data:{tags:r,width:n,hovered:o=!1}})=>{const{hovered:a,ref:i}=X9(),{hovered:s,ref:l}=X9(),[c,u]=ZDe(!1,o?120:300);E.useEffect(()=>{u(w=>w?o||a||s:o&&(a||s))},[a,s,o]);const d=pWe(),h=d>1.2,f=Qt(),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:et("likec4-element-tags",Zn({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(zr,{"data-likec4-tag":w,className:be({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(D9,{isVisible:c,align:"start",position:tt.Bottom,children:y.jsx(sn,{ref:l,css:{gap:"0.5",alignItems:"baseline",flexWrap:"wrap",pb:"sm",translate:"auto",x:"[-8px]",maxWidth:x},children:r.map(w=>y.jsx(Lw,{tag:w,cursor:"pointer",className:be({userSelect:"none",...h&&{fontSize:"lg",borderRadius:"[4px]",px:"1.5"}}),onClick:k=>{k.stopPropagation(),f.openSearch(`#${w}`)},onMouseEnter:()=>g(w),onMouseLeave:b},w))})})]})},_We);Ry.displayName="ElementTags";const EWe=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"})})),SWe=[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]],kJ=Nt("outline","check","Check",SWe),CWe=[["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"}]],TWe=Nt("outline","copy","Copy",CWe),_J="https://github.com/",DT=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(_J);return y.jsx(vl,{ref:o,variant:"default",radius:"sm",size:"sm",tt:"none",leftSection:e.title?y.jsx(y.Fragment,{children:e.title}):null,rightSection:y.jsx(GY,{value:a,timeout:1500,children:({copy:s,copied:l})=>y.jsx(br,{className:be({opacity:l?1:.45,transition:"fast",_hover:{opacity:1}}),tabIndex:-1,size:"20",variant:l?"light":"transparent",color:l?"teal":"gray","data-active":l,onClick:c=>{c.stopPropagation(),c.preventDefault(),s()},children:l?y.jsx(kJ,{}):y.jsx(TWe,{stroke:2.5})})}),...n,className:et(r,"group"),classNames:{root:be({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:be({'&:is([data-position="left"])':{color:"mantine.colors.dimmed",userSelect:"none",pointerEvents:"none",_groupHover:{color:"[var(--badge-color)]",opacity:.7}}})},children:y.jsxs(Iu.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(EWe,{height:"12",width:"12",style:{verticalAlign:"middle",marginRight:"4px"}}),i?a.replace(_J,""):a]})})});function AWe(){return E.useContext(ES)}function RWe(){const e=E.useContext(ES);if(!e)throw new Error("No LikeC4ViewModel in context found");return e}const Bw="--_blur",Fw="--_opacity",NWe=be({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(${Bw})`,backgroundColor:`[rgb(36 36 36 / var(${Fw}, 5%))]`}}),DWe=be({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:` + `),()=>{x.contains(w)&&x.removeChild(w)}},[r]),y.jsx(QOe,{isPresent:r,childRef:a,sizeRef:l,children:S.cloneElement(e,{ref:c})})}const eLe=({children:e,initial:r,isPresent:n,onExitComplete:o,custom:i,presenceAffectsLayout:a,mode:l,anchorX:s,root:c})=>{const d=ag(tLe),u=S.useId();let p=!0,f=S.useMemo(()=>(p=!1,{id:u,initial:r,isPresent:n,custom:i,onExitComplete:m=>{d.set(m,!0);for(const v of d.values())if(!v)return;o&&o()},register:m=>(d.set(m,!1),()=>d.delete(m))}),[n,d,o]);return a&&p&&(f={...f}),S.useMemo(()=>{d.forEach((m,v)=>d.set(v,!1))},[n]),S.useEffect(()=>{!n&&!d.size&&o&&o()},[n]),l==="popLayout"&&(e=y.jsx(JOe,{isPresent:n,anchorX:s,root:c,children:e})),y.jsx(Z3.Provider,{value:f,children:e})};function tLe(){return new Map}function SK(e=!0){const r=S.useContext(Z3);if(r===null)return[!0,null];const{isPresent:n,onExitComplete:o,register:i}=r,a=S.useId();S.useEffect(()=>{if(e)return i(a)},[e]);const l=S.useCallback(()=>e&&o&&o(a),[a,o,e]);return!n&&o?[!1,l]:[!0]}const Q3=e=>e.key||"";function EK(e){const r=[];return S.Children.forEach(e,n=>{S.isValidElement(n)&&r.push(n)}),r}const Cn=({children:e,custom:r,initial:n=!0,onExitComplete:o,presenceAffectsLayout:i=!0,mode:a="sync",propagate:l=!1,anchorX:s="left",root:c})=>{const[d,u]=SK(l),p=S.useMemo(()=>EK(e),[e]),f=l&&!d?[]:p.map(Q3),m=S.useRef(!0),v=S.useRef(p),w=ag(()=>new Map),[x,k]=S.useState(p),[C,_]=S.useState(p);EC(()=>{m.current=!1,v.current=p;for(let T=0;T{const A=Q3(T),z=l&&!d?!1:p===C||f.includes(A),j=()=>{if(w.has(A))w.set(A,!0);else return;let I=!0;w.forEach(N=>{N||(I=!1)}),I&&(R?.(),_(v.current),l&&u?.(),o&&o())};return y.jsx(eLe,{isPresent:z,initial:!m.current||n?void 0:!1,custom:r,presenceAffectsLayout:i,mode:a,root:c,onExitComplete:z?void 0:j,anchorX:s,children:T},A)})})},rLe=S.createContext(null);function nLe(){const e=S.useRef(!1);return EC(()=>(e.current=!0,()=>{e.current=!1}),[]),e}function oLe(){const e=nLe(),[r,n]=S.useState(0),o=S.useCallback(()=>{e.current&&n(r+1)},[r]);return[S.useCallback(()=>Dr.postRender(o),[o]),r]}const iLe=e=>!e.isLayoutDirty&&e.willUpdate(!1);function aLe(){const e=new Set,r=new WeakMap,n=()=>e.forEach(iLe);return{add:o=>{e.add(o),r.set(o,o.addEventListener("willUpdate",n))},remove:o=>{e.delete(o);const i=r.get(o);i&&(i(),r.delete(o)),n()},dirty:n}}const CK=e=>e===!0,lLe=e=>CK(e===!0)||e==="id",lg=({children:e,id:r,inherit:n=!0})=>{const o=S.useContext(Hy),i=S.useContext(rLe),[a,l]=oLe(),s=S.useRef(null),c=o.id||i;s.current===null&&(lLe(n)&&c&&(r=r?c+"-"+r:c),s.current={id:r,group:CK(n)&&o.group||aLe()});const d=S.useMemo(()=>({...s.current,forceRender:a}),[l]);return y.jsx(Hy.Provider,{value:d,children:e})},CC=S.createContext({strict:!1});function $C(e){for(const r in e)og[r]={...og[r],...e[r]}}function sLe({children:e,features:r,strict:n=!1}){const[,o]=S.useState(!RC(r)),i=S.useRef(void 0);if(!RC(r)){const{renderer:a,...l}=r;i.current=a,$C(l)}return S.useEffect(()=>{RC(r)&&r().then(({renderer:a,...l})=>{$C(l),i.current=a,o(!0)})},[]),y.jsx(CC.Provider,{value:{renderer:i.current,strict:n},children:e})}function RC(e){return typeof e=="function"}const cLe=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 J3(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||cLe.has(e)}let $K=e=>!J3(e);function RK(e){typeof e=="function"&&($K=r=>r.startsWith("on")?!J3(r):e(r))}try{RK(require("@emotion/is-prop-valid").default)}catch{}function dLe(e,r,n){const o={};for(const i in e)i==="values"&&typeof e.values=="object"||($K(i)||n===!0&&J3(i)||!r&&!J3(i)||e.draggable&&i.startsWith("onDrag"))&&(o[i]=e[i]);return o}function uLe({children:e,isValidProp:r,...n}){r&&RK(r),n={...S.useContext(Ep),...n},n.isStatic=ag(()=>n.isStatic);const o=S.useMemo(()=>n,[JSON.stringify(n.transition),n.transformPagePoint,n.reducedMotion]);return y.jsx(Ep.Provider,{value:o,children:e})}const e2=S.createContext({});function pLe(e,r){if(K3(e)){const{initial:n,animate:o}=e;return{initial:n===!1||Vy(n)?n:void 0,animate:Vy(o)?o:void 0}}return e.inherit!==!1?r:{}}function hLe(e){const{initial:r,animate:n}=pLe(e,S.useContext(e2));return S.useMemo(()=>({initial:r,animate:n}),[zK(r),zK(n)])}function zK(e){return Array.isArray(e)?e.join(" "):e}const zC=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function TK(e,r,n){for(const o in r)!to(r[o])&&!hK(o,n)&&(e[o]=r[o])}function fLe({transformTemplate:e},r){return S.useMemo(()=>{const n=zC();return kC(n,r,e),Object.assign({},n.vars,n.style)},[r])}function gLe(e,r){const n=e.style||{},o={};return TK(o,n,e),Object.assign(o,fLe(e,r)),o}function mLe(e,r){const n={},o=gLe(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 jK=()=>({...zC(),attrs:{}});function yLe(e,r,n,o){const i=S.useMemo(()=>{const a=jK();return gK(a,r,yK(o),e.transformTemplate,e.style),{...a.attrs,style:{...a.style}}},[r]);if(e.style){const a={};TK(a,e.style,e),i.style={...a,...i.style}}return i}const vLe=["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 TC(e){return typeof e!="string"||e.includes("-")?!1:!!(vLe.indexOf(e)>-1||/[A-Z]/u.test(e))}function bLe(e,r,n,{latestValues:o},i,a=!1){const l=(TC(e)?yLe:mLe)(r,o,i,e),s=dLe(r,typeof e=="string",a),c=e!==S.Fragment?{...s,...l,ref:n}:{},{children:d}=r,u=S.useMemo(()=>to(d)?d.get():d,[d]);return S.createElement(e,{...c,children:u})}function t2(e){return to(e)?e.get():e}function xLe({scrapeMotionValuesFromProps:e,createRenderState:r},n,o,i){return{latestValues:wLe(n,o,i,e),renderState:r()}}function wLe(e,r,n,o){const i={},a=o(e,{});for(const f in a)i[f]=t2(a[f]);let{initial:l,animate:s}=e;const c=K3(e),d=lK(e);r&&d&&!c&&e.inherit!==!1&&(l===void 0&&(l=r.initial),s===void 0&&(s=r.animate));let u=n?n.initial===!1:!1;u=u||l===!1;const p=u?s:l;if(p&&typeof p!="boolean"&&!X3(p)){const f=Array.isArray(p)?p:[p];for(let m=0;m(r,n)=>{const o=S.useContext(e2),i=S.useContext(Z3),a=()=>xLe(e,r,o,i);return n?a():ag(a)},kLe=AK({scrapeMotionValuesFromProps:SC,createRenderState:zC}),_Le=AK({scrapeMotionValuesFromProps:vK,createRenderState:jK}),SLe=Symbol.for("motionComponentSymbol");function sg(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function ELe(e,r,n){return S.useCallback(o=>{o&&e.onMount&&e.onMount(o),r&&(o?r.mount(o):r.unmount()),n&&(typeof n=="function"?n(o):sg(n)&&(n.current=o))},[r])}const DK=S.createContext({});function CLe(e,r,n,o,i){const{visualElement:a}=S.useContext(e2),l=S.useContext(CC),s=S.useContext(Z3),c=S.useContext(Ep).reducedMotion,d=S.useRef(null);o=o||l.renderer,!d.current&&o&&(d.current=o(e,{visualState:r,parent:a,props:n,presenceContext:s,blockInitialAnimation:s?s.initial===!1:!1,reducedMotionConfig:c}));const u=d.current,p=S.useContext(DK);u&&!u.projection&&i&&(u.type==="html"||u.type==="svg")&&$Le(d.current,n,i,p);const f=S.useRef(!1);S.useInsertionEffect(()=>{u&&f.current&&u.update(n,s)});const m=n[WX],v=S.useRef(!!m&&!window.MotionHandoffIsComplete?.(m)&&window.MotionHasOptimisedAnimation?.(m));return EC(()=>{u&&(f.current=!0,window.MotionIsMounted=!0,u.updateFeatures(),u.scheduleRenderMicrotask(),v.current&&u.animationState&&u.animationState.animateChanges())}),S.useEffect(()=>{u&&(!v.current&&u.animationState&&u.animationState.animateChanges(),v.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(m)}),v.current=!1),u.enteringChildren=void 0)}),u}function $Le(e,r,n,o){const{layoutId:i,layout:a,drag:l,dragConstraints:s,layoutScroll:c,layoutRoot:d,layoutCrossfade:u}=r;e.projection=new n(e.latestValues,r["data-framer-portal-id"]?void 0:PK(e.parent)),e.projection.setOptions({layoutId:i,layout:a,alwaysMeasureLayout:!!l||s&&sg(s),visualElement:e,animationType:typeof a=="string"?a:"both",initialPromotionConfig:o,crossfade:u,layoutScroll:c,layoutRoot:d})}function PK(e){if(e)return e.options.allowProjection!==!1?e.projection:PK(e.parent)}function r2(e,{forwardMotionProps:r=!1}={},n,o){n&&$C(n);const i=TC(e)?_Le:kLe;function a(s,c){let d;const u={...S.useContext(Ep),...s,layoutId:RLe(s)},{isStatic:p}=u,f=hLe(s),m=i(s,p);if(!p&&vC){zLe();const v=TLe(u);d=v.MeasureLayout,f.visualElement=CLe(e,m,u,o,v.ProjectionNode)}return y.jsxs(e2.Provider,{value:f,children:[d&&f.visualElement?y.jsx(d,{visualElement:f.visualElement,...u}):null,bLe(e,s,ELe(m,f.visualElement,c),m,p,r)]})}a.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const l=S.forwardRef(a);return l[SLe]=e,l}function RLe({layoutId:e}){const r=S.useContext(Hy).id;return r&&e!==void 0?r+"-"+e:e}function zLe(e,r){S.useContext(CC).strict}function TLe(e){const{drag:r,layout:n}=og;if(!r&&!n)return{};const o={...r,...n};return{MeasureLayout:r?.isEnabled(e)||n?.isEnabled(e)?o.MeasureLayout:void 0,ProjectionNode:o.ProjectionNode}}function jLe(e,r){if(typeof Proxy>"u")return r2;const n=new Map,o=(a,l)=>r2(a,l,e,r),i=(a,l)=>o(a,l);return new Proxy(i,{get:(a,l)=>l==="create"?o:(n.has(l)||n.set(l,r2(l,void 0,e,r)),n.get(l))})}const ga=jLe(),ALe=(e,r)=>TC(e)?new bK(r):new fK(r,{allowProjection:e!==S.Fragment});function MK(e,r,n,o=0,i=1){const a=Array.from(e).sort((c,d)=>c.sortNodePosition(d)).indexOf(r),l=e.size,s=(l-1)*o;return typeof n=="function"?n(a,l):i===1?a*o:s-a*o}function jC(e,r,n={}){const o=tg(e,r,n.type==="exit"?e.presenceContext?.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=o||{};n.transitionOverride&&(i=n.transitionOverride);const a=o?()=>Promise.all(fC(e,o,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:d=0,staggerChildren:u,staggerDirection:p}=i;return DLe(e,r,c,d,u,p,n)}:()=>Promise.resolve(),{when:s}=i;if(s){const[c,d]=s==="beforeChildren"?[a,l]:[l,a];return c().then(()=>d())}else return Promise.all([a(),l(n.delay)])}function DLe(e,r,n=0,o=0,i=0,a=1,l){const s=[];for(const c of e.variantChildren)c.notify("AnimationStart",r),s.push(jC(c,r,{...l,delay:n+(typeof o=="function"?0:o)+MK(e.variantChildren,c,o,i,a)}).then(()=>c.notify("AnimationComplete",r)));return Promise.all(s)}function PLe(e,r,n={}){e.notify("AnimationStart",r);let o;if(Array.isArray(r)){const i=r.map(a=>jC(e,a,n));o=Promise.all(i)}else if(typeof r=="string")o=jC(e,r,n);else{const i=typeof r=="function"?tg(e,r,n.custom):r;o=Promise.all(fC(e,i,n))}return o.then(()=>{e.notify("AnimationComplete",r)})}function NK(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})=>PLe(e,n,o)))}function OLe(e){let r=ILe(e),n=IK(),o=!0;const i=c=>(d,u)=>{const p=tg(e,u,c==="exit"?e.presenceContext?.custom:void 0);if(p){const{transition:f,transitionEnd:m,...v}=p;d={...d,...v,...m}}return d};function a(c){r=c(e)}function l(c){const{props:d}=e,u=BK(e.parent)||{},p=[],f=new Set;let m={},v=1/0;for(let x=0;xv&&$,j=!1;const I=Array.isArray(_)?_:[_];let N=I.reduce(i(k),{});R===!1&&(N={});const{prevResolvedValues:L={}}=C,H={...L,...N},P=B=>{z=!0,f.has(B)&&(j=!0,f.delete(B)),C.needsAnimating[B]=!0;const F=e.getValue(B);F&&(F.liveStyle=!1)};for(const B in H){const F=N[B],q=L[B];if(m.hasOwnProperty(B))continue;let G=!1;cC(F)&&cC(q)?G=!NK(F,q):G=F!==q,G?F!=null?P(B):f.add(B):F!==void 0&&f.has(B)?P(B):C.protectedKeys[B]=!0}C.prevProp=_,C.prevResolvedValues=N,C.isActive&&(m={...m,...N}),o&&e.blockInitialAnimation&&(z=!1);const V=T&&A;z&&(!V||j)&&p.push(...I.map(B=>{const F={type:k};if(typeof B=="string"&&o&&!V&&e.manuallyAnimateOnMount&&e.parent){const{parent:q}=e,G=tg(q,B);if(q.enteringChildren&&G){const{delayChildren:U}=G.transition||{};F.delay=MK(q.enteringChildren,e,U)}}return{animation:B,options:F}}))}if(f.size){const x={};if(typeof d.initial!="boolean"){const k=tg(e,Array.isArray(d.initial)?d.initial[0]:d.initial);k&&k.transition&&(x.transition=k.transition)}f.forEach(k=>{const C=e.getBaseTarget(k),_=e.getValue(k);_&&(_.liveStyle=!0),x[k]=C??null}),p.push({animation:x})}let w=!!p.length;return o&&(d.initial===!1||d.initial===d.animate)&&!e.manuallyAnimateOnMount&&(w=!1),o=!1,w?r(p):Promise.resolve()}function s(c,d){if(n[c].isActive===d)return Promise.resolve();e.variantChildren?.forEach(p=>p.animationState?.setActive(c,d)),n[c].isActive=d;const u=l(c);for(const p in n)n[p].protectedKeys={};return u}return{animateChanges:l,setActive:s,setAnimateFunction:a,getState:()=>n,reset:()=>{n=IK()}}}function LLe(e,r){return typeof r=="string"?r!==e:Array.isArray(r)?!NK(r,e):!1}function Cp(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function IK(){return{animate:Cp(!0),whileInView:Cp(),whileHover:Cp(),whileTap:Cp(),whileDrag:Cp(),whileFocus:Cp(),exit:Cp()}}class Td{constructor(r){this.isMounted=!1,this.node=r}update(){}}class FLe extends Td{constructor(r){super(r),r.animationState||(r.animationState=OLe(r))}updateAnimationControlsSubscription(){const{animate:r}=this.node.getProps();X3(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 VLe=0;class qLe extends Td{constructor(){super(...arguments),this.id=VLe++}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 i=this.node.animationState.setActive("exit",!r);n&&!r&&i.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 HLe={animation:{Feature:FLe},exit:{Feature:qLe}};function Uy(e,r,n,o={passive:!0}){return e.addEventListener(r,n,o),()=>e.removeEventListener(r,n)}function Wy(e){return{point:{x:e.pageX,y:e.pageY}}}const ULe=e=>r=>iC(r)&&e(r,Wy(r));function Gy(e,r,n,o){return Uy(e,r,ULe(n),o)}const OK=1e-4,WLe=1-OK,GLe=1+OK,LK=.01,YLe=0-LK,XLe=0+LK;function Vo(e){return e.max-e.min}function KLe(e,r,n){return Math.abs(e-r)<=n}function FK(e,r,n,o=.5){e.origin=o,e.originPoint=Lr(r.min,r.max,e.origin),e.scale=Vo(n)/Vo(r),e.translate=Lr(n.min,n.max,e.origin)-e.originPoint,(e.scale>=WLe&&e.scale<=GLe||isNaN(e.scale))&&(e.scale=1),(e.translate>=YLe&&e.translate<=XLe||isNaN(e.translate))&&(e.translate=0)}function Yy(e,r,n,o){FK(e.x,r.x,n.x,o?o.originX:void 0),FK(e.y,r.y,n.y,o?o.originY:void 0)}function VK(e,r,n){e.min=n.min+r.min,e.max=e.min+Vo(r)}function ZLe(e,r,n){VK(e.x,r.x,n.x),VK(e.y,r.y,n.y)}function qK(e,r,n){e.min=r.min-n.min,e.max=e.min+Vo(r)}function n2(e,r,n){qK(e.x,r.x,n.x),qK(e.y,r.y,n.y)}function ma(e){return[e("x"),e("y")]}const HK=({current:e})=>e?e.ownerDocument.defaultView:null;class UK{constructor(r,n,{transformPagePoint:o,contextWindow:i=window,dragSnapToOrigin:a=!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=DC(this.lastMoveEventInfo,this.history),m=this.startEvent!==null,v=XOe(f.offset,{x:0,y:0})>=this.distanceThreshold;if(!m&&!v)return;const{point:w}=f,{timestamp:x}=so;this.history.push({...w,timestamp:x});const{onStart:k,onMove:C}=this.handlers;m||(k&&k(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),C&&C(this.lastMoveEvent,f)},this.handlePointerMove=(f,m)=>{this.lastMoveEvent=f,this.lastMoveEventInfo=AC(m,this.transformPagePoint),Dr.update(this.updatePoint,!0)},this.handlePointerUp=(f,m)=>{this.end();const{onEnd:v,onSessionEnd:w,resumeAnimation:x}=this.handlers;if(this.dragSnapToOrigin&&x&&x(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const k=DC(f.type==="pointercancel"?this.lastMoveEventInfo:AC(m,this.transformPagePoint),this.history);this.startEvent&&v&&v(f,k),w&&w(f,k)},!iC(r))return;this.dragSnapToOrigin=a,this.handlers=n,this.transformPagePoint=o,this.distanceThreshold=l,this.contextWindow=i||window;const s=Wy(r),c=AC(s,this.transformPagePoint),{point:d}=c,{timestamp:u}=so;this.history=[{...d,timestamp:u}];const{onSessionStart:p}=n;p&&p(r,DC(c,this.history)),this.removeListeners=Ay(Gy(this.contextWindow,"pointermove",this.handlePointerMove),Gy(this.contextWindow,"pointerup",this.handlePointerUp),Gy(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(r){this.handlers=r}end(){this.removeListeners&&this.removeListeners(),$d(this.updatePoint)}}function AC(e,r){return r?{point:r(e.point)}:e}function WK(e,r){return{x:e.x-r.x,y:e.y-r.y}}function DC({point:e},r){return{point:e,delta:WK(e,GK(r)),offset:WK(e,QLe(r)),velocity:JLe(r,.1)}}function QLe(e){return e[0]}function GK(e){return e[e.length-1]}function JLe(e,r){if(e.length<2)return{x:0,y:0};let n=e.length-1,o=null;const i=GK(e);for(;n>=0&&(o=e[n],!(i.timestamp-o.timestamp>al(r)));)n--;if(!o)return{x:0,y:0};const a=fa(i.timestamp-o.timestamp);if(a===0)return{x:0,y:0};const l={x:(i.x-o.x)/a,y:(i.y-o.y)/a};return l.x===1/0&&(l.x=0),l.y===1/0&&(l.y=0),l}function eFe(e,{min:r,max:n},o){return r!==void 0&&en&&(e=o?Lr(n,e,o.max):Math.min(e,n)),e}function YK(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 tFe(e,{top:r,left:n,bottom:o,right:i}){return{x:YK(e.x,n,i),y:YK(e.y,r,o)}}function XK(e,r){let n=r.min-e.min,o=r.max-e.max;return r.max-r.mino?n=Kf(r.min,r.max-o,e.min):o>i&&(n=Kf(e.min,e.max-i,r.min)),oc(0,1,n)}function oFe(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 PC=.35;function iFe(e=PC){return e===!1?e=0:e===!0&&(e=PC),{x:KK(e,"left","right"),y:KK(e,"top","bottom")}}function KK(e,r,n){return{min:ZK(e,r),max:ZK(e,n)}}function ZK(e,r){return typeof e=="number"?e:e[r]||0}const aFe=new WeakMap;class lFe{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=En(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=r}start(r,{snapToCursor:n=!1,distanceThreshold:o}={}){const{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;const a=p=>{const{dragSnapToOrigin:f}=this.getProps();f?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Wy(p).point)},l=(p,f)=>{const{drag:m,dragPropagation:v,onDragStart:w}=this.getProps();if(m&&!v&&(this.openDragLock&&this.openDragLock(),this.openDragLock=WIe(m),!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),ma(k=>{let C=this.getAxisMotionValue(k).get()||0;if(os.test(C)){const{projection:_}=this.visualElement;if(_&&_.layout){const $=_.layout.layoutBox[k];$&&(C=Vo($)*(parseFloat(C)/100))}}this.originPoint[k]=C}),w&&Dr.postRender(()=>w(p,f)),uC(this.visualElement,"transform");const{animationState:x}=this.visualElement;x&&x.setActive("whileDrag",!0)},s=(p,f)=>{this.latestPointerEvent=p,this.latestPanInfo=f;const{dragPropagation:m,dragDirectionLock:v,onDirectionLock:w,onDrag:x}=this.getProps();if(!m&&!this.openDragLock)return;const{offset:k}=f;if(v&&this.currentDirection===null){this.currentDirection=sFe(k),this.currentDirection!==null&&w&&w(this.currentDirection);return}this.updateAxis("x",f.point,k),this.updateAxis("y",f.point,k),this.visualElement.render(),x&&x(p,f)},c=(p,f)=>{this.latestPointerEvent=p,this.latestPanInfo=f,this.stop(p,f),this.latestPointerEvent=null,this.latestPanInfo=null},d=()=>ma(p=>this.getAnimationState(p)==="paused"&&this.getAxisMotionValue(p).animation?.play()),{dragSnapToOrigin:u}=this.getProps();this.panSession=new UK(r,{onSessionStart:a,onStart:l,onMove:s,onSessionEnd:c,resumeAnimation:d},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,distanceThreshold:o,contextWindow:HK(this.visualElement)})}stop(r,n){const o=r||this.latestPointerEvent,i=n||this.latestPanInfo,a=this.isDragging;if(this.cancel(),!a||!i||!o)return;const{velocity:l}=i;this.startAnimation(l);const{onDragEnd:s}=this.getProps();s&&Dr.postRender(()=>s(o,i))}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:i}=this.getProps();if(!o||!o2(r,i,this.currentDirection))return;const a=this.getAxisMotionValue(r);let l=this.originPoint[r]+o[r];this.constraints&&this.constraints[r]&&(l=eFe(l,this.constraints[r],this.elastic[r])),a.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,i=this.constraints;r&&sg(r)?this.constraints||(this.constraints=this.resolveRefConstraints()):r&&o?this.constraints=tFe(o.layoutBox,r):this.constraints=!1,this.elastic=iFe(n),i!==this.constraints&&o&&this.constraints&&!this.hasMutatedConstraints&&ma(a=>{this.constraints!==!1&&this.getAxisMotionValue(a)&&(this.constraints[a]=oFe(o.layoutBox[a],this.constraints[a]))})}resolveRefConstraints(){const{dragConstraints:r,onMeasureDragConstraints:n}=this.getProps();if(!r||!sg(r))return!1;const o=r.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const a=ROe(o,i.root,this.visualElement.getTransformPagePoint());let l=rFe(i.layout.layoutBox,a);if(n){const s=n(EOe(l));this.hasMutatedConstraints=!!s,s&&(l=YX(s))}return l}startAnimation(r){const{drag:n,dragMomentum:o,dragElastic:i,dragTransition:a,dragSnapToOrigin:l,onDragTransitionEnd:s}=this.getProps(),c=this.constraints||{},d=ma(u=>{if(!o2(u,n,this.currentDirection))return;let p=c&&c[u]||{};l&&(p={min:0,max:0});const f=i?200:1e6,m=i?40:1e7,v={type:"inertia",velocity:o?r[u]:0,bounceStiffness:f,bounceDamping:m,timeConstant:750,restDelta:1,restSpeed:10,...a,...p};return this.startAxisValueAnimation(u,v)});return Promise.all(d).then(s)}startAxisValueAnimation(r,n){const o=this.getAxisMotionValue(r);return uC(this.visualElement,r),o.start(hC(r,o,0,n,this.visualElement,!1))}stopAnimation(){ma(r=>this.getAxisMotionValue(r).stop())}pauseAnimation(){ma(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){ma(n=>{const{drag:o}=this.getProps();if(!o2(n,o,this.currentDirection))return;const{projection:i}=this.visualElement,a=this.getAxisMotionValue(n);if(i&&i.layout){const{min:l,max:s}=i.layout.layoutBox[n];a.set(r[n]-Lr(l,s,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:r,dragConstraints:n}=this.getProps(),{projection:o}=this.visualElement;if(!sg(n)||!o||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};ma(l=>{const s=this.getAxisMotionValue(l);if(s&&this.constraints!==!1){const c=s.get();i[l]=nFe({min:c,max:c},this.constraints[l])}});const{transformTemplate:a}=this.visualElement.getProps();this.visualElement.current.style.transform=a?a({},""):"none",o.root&&o.root.updateScroll(),o.updateLayout(),this.resolveConstraints(),ma(l=>{if(!o2(l,r,null))return;const s=this.getAxisMotionValue(l),{min:c,max:d}=this.constraints[l];s.set(Lr(c,d,i[l]))})}addListeners(){if(!this.visualElement.current)return;aFe.set(this.visualElement,this);const r=this.visualElement.current,n=Gy(r,"pointerdown",c=>{const{drag:d,dragListener:u=!0}=this.getProps();d&&u&&this.start(c)}),o=()=>{const{dragConstraints:c}=this.getProps();sg(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,a=i.addEventListener("measure",o);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),Dr.read(o);const l=Uy(window,"resize",()=>this.scalePositionWithinConstraints()),s=i.addEventListener("didUpdate",(({delta:c,hasLayoutChanged:d})=>{this.isDragging&&d&&(ma(u=>{const p=this.getAxisMotionValue(u);p&&(this.originPoint[u]+=c[u].translate,p.set(p.get()+c[u].translate))}),this.visualElement.render())}));return()=>{l(),n(),a(),s&&s()}}getProps(){const r=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:o=!1,dragPropagation:i=!1,dragConstraints:a=!1,dragElastic:l=PC,dragMomentum:s=!0}=r;return{...r,drag:n,dragDirectionLock:o,dragPropagation:i,dragConstraints:a,dragElastic:l,dragMomentum:s}}}function o2(e,r,n){return(r===!0||r===e)&&(n===null||n===e)}function sFe(e,r=10){let n=null;return Math.abs(e.y)>r?n="y":Math.abs(e.x)>r&&(n="x"),n}class cFe extends Td{constructor(r){super(r),this.removeGroupControls=ha,this.removeListeners=ha,this.controls=new lFe(r)}mount(){const{dragControls:r}=this.node.getProps();r&&(this.removeGroupControls=r.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ha}unmount(){this.removeGroupControls(),this.removeListeners()}}const QK=e=>(r,n)=>{e&&Dr.postRender(()=>e(r,n))};class dFe extends Td{constructor(){super(...arguments),this.removePointerDownListener=ha}onPointerDown(r){this.session=new UK(r,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:HK(this.node)})}createPanHandlers(){const{onPanSessionStart:r,onPanStart:n,onPan:o,onPanEnd:i}=this.node.getProps();return{onSessionStart:QK(r),onStart:QK(n),onMove:o,onEnd:(a,l)=>{delete this.session,i&&Dr.postRender(()=>i(a,l))}}}mount(){this.removePointerDownListener=Gy(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 i2={hasAnimatedSinceResize:!0,hasEverUpdated:!1};let MC=!1;class uFe extends S.Component{componentDidMount(){const{visualElement:r,layoutGroup:n,switchLayoutGroup:o,layoutId:i}=this.props,{projection:a}=r;a&&(n.group&&n.group.add(a),o&&o.register&&i&&o.register(a),MC&&a.root.didUpdate(),a.addEventListener("animationComplete",()=>{this.safeToRemove()}),a.setOptions({...a.options,onExitComplete:()=>this.safeToRemove()})),i2.hasEverUpdated=!0}getSnapshotBeforeUpdate(r){const{layoutDependency:n,visualElement:o,drag:i,isPresent:a}=this.props,{projection:l}=o;return l&&(l.isPresent=a,MC=!0,i||r.layoutDependency!==n||n===void 0||r.isPresent!==a?l.willUpdate():this.safeToRemove(),r.isPresent!==a&&(a?l.promote():l.relegate()||Dr.postRender(()=>{const s=l.getStack();(!s||!s.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:r}=this.props.visualElement;r&&(r.root.didUpdate(),oC.postRender(()=>{!r.currentAnimation&&r.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:r,layoutGroup:n,switchLayoutGroup:o}=this.props,{projection:i}=r;MC=!0,i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),o&&o.deregister&&o.deregister(i))}safeToRemove(){const{safeToRemove:r}=this.props;r&&r()}render(){return null}}function JK(e){const[r,n]=SK(),o=S.useContext(Hy);return y.jsx(uFe,{...e,layoutGroup:o,switchLayoutGroup:S.useContext(DK),isPresent:r,safeToRemove:n})}const pFe=(e,r)=>e.depth-r.depth;class hFe{constructor(){this.children=[],this.isDirty=!1}add(r){kE(this.children,r),this.isDirty=!0}remove(r){L3(this.children,r),this.isDirty=!0}forEach(r){this.isDirty&&this.children.sort(pFe),this.isDirty=!1,this.children.forEach(r)}}const eZ=["TopLeft","TopRight","BottomLeft","BottomRight"],fFe=eZ.length,tZ=e=>typeof e=="string"?parseFloat(e):e,rZ=e=>typeof e=="number"||_t.test(e);function gFe(e,r,n,o,i,a){i?(e.opacity=Lr(0,n.opacity??1,mFe(o)),e.opacityExit=Lr(r.opacity??1,0,yFe(o))):a&&(e.opacity=Lr(r.opacity??1,n.opacity??1,o));for(let l=0;lor?1:n(Kf(e,r,o))}function iZ(e,r){e.min=r.min,e.max=r.max}function sl(e,r){iZ(e.x,r.x),iZ(e.y,r.y)}function aZ(e,r){e.translate=r.translate,e.scale=r.scale,e.originPoint=r.originPoint,e.origin=r.origin}function lZ(e,r,n,o,i){return e-=r,e=G3(e,1/n,o),i!==void 0&&(e=G3(e,1/i,o)),e}function vFe(e,r=0,n=1,o=.5,i,a=e,l=e){if(os.test(r)&&(r=parseFloat(r),r=Lr(l.min,l.max,r/100)-l.min),typeof r!="number")return;let s=Lr(a.min,a.max,o);e===a&&(s-=r),e.min=lZ(e.min,r,n,s,i),e.max=lZ(e.max,r,n,s,i)}function sZ(e,r,[n,o,i],a,l){vFe(e,r[n],r[o],r[i],r.scale,a,l)}const bFe=["x","scaleX","originX"],xFe=["y","scaleY","originY"];function cZ(e,r,n,o){sZ(e.x,r,bFe,n?n.x:void 0,o?o.x:void 0),sZ(e.y,r,xFe,n?n.y:void 0,o?o.y:void 0)}function dZ(e){return e.translate===0&&e.scale===1}function uZ(e){return dZ(e.x)&&dZ(e.y)}function pZ(e,r){return e.min===r.min&&e.max===r.max}function wFe(e,r){return pZ(e.x,r.x)&&pZ(e.y,r.y)}function hZ(e,r){return Math.round(e.min)===Math.round(r.min)&&Math.round(e.max)===Math.round(r.max)}function fZ(e,r){return hZ(e.x,r.x)&&hZ(e.y,r.y)}function gZ(e){return Vo(e.x)/Vo(e.y)}function mZ(e,r){return e.translate===r.translate&&e.scale===r.scale&&e.originPoint===r.originPoint}class kFe{constructor(){this.members=[]}add(r){kE(this.members,r),r.scheduleRender()}remove(r){if(L3(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(i=>r===i);if(n===0)return!1;let o;for(let i=n;i>=0;i--){const a=this.members[i];if(a.isPresent!==!1){o=a;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:i}=r.options;i===!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 _Fe(e,r,n){let o="";const i=e.x.translate/r.x,a=e.y.translate/r.y,l=n?.z||0;if((i||a||l)&&(o=`translate3d(${i}px, ${a}px, ${l}px) `),(r.x!==1||r.y!==1)&&(o+=`scale(${1/r.x}, ${1/r.y}) `),n){const{transformPerspective:d,rotate:u,rotateX:p,rotateY:f,skewX:m,skewY:v}=n;d&&(o=`perspective(${d}px) ${o}`),u&&(o+=`rotate(${u}deg) `),p&&(o+=`rotateX(${p}deg) `),f&&(o+=`rotateY(${f}deg) `),m&&(o+=`skewX(${m}deg) `),v&&(o+=`skewY(${v}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 NC=["","X","Y","Z"],SFe=1e3;let EFe=0;function BC(e,r,n,o){const{latestValues:i}=r;i[e]&&(n[e]=i[e],r.setStaticValue(e,0),o&&(o[e]=0))}function yZ(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:r}=e.options;if(!r)return;const n=GX(r);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:a}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Dr,!(i||a))}const{parent:o}=e;o&&!o.hasCheckedOptimisedAppear&&yZ(o)}function vZ({attachResizeListener:e,defaultParent:r,measureScroll:n,checkIsScrollRoot:o,resetTransform:i}){return class{constructor(a={},l=r?.()){this.id=EFe++,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.layoutVersion=0,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(RFe),this.nodes.forEach(AFe),this.nodes.forEach(DFe),this.nodes.forEach(zFe)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,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;Dr.read(()=>{u=window.innerWidth}),e(a,()=>{const f=window.innerWidth;f!==u&&(u=f,this.root.updateBlockedByResize=!0,d&&d(),d=YOe(p,250),i2.hasAnimatedSinceResize&&(i2.hasAnimatedSinceResize=!1,this.nodes.forEach(wZ)))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&c&&(l||s)&&this.addEventListener("didUpdate",({delta:d,hasLayoutChanged:u,hasRelativeLayoutChanged:p,layout:f})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const m=this.options.transition||c.getDefaultTransition()||IFe,{onLayoutAnimationStart:v,onLayoutAnimationComplete:w}=c.getProps(),x=!this.targetLayout||!fZ(this.targetLayout,f),k=!u&&p;if(this.options.layoutRoot||this.resumeFrom||k||u&&(x||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const C={...tC(m,"layout"),onPlay:v,onComplete:w};(c.shouldReduceMotion||this.options.layoutRoot)&&(C.delay=0,C.type=!1),this.startAnimation(C),this.setAnimationOrigin(d,k)}else u||wZ(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=f})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),$d(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(PFe),this.animationId++)}getTransformTemplate(){const{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&yZ(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!Vo(this.snapshot.measuredBox.x)&&!Vo(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 $=_/1e3;kZ(u.x,a.x,$),kZ(u.y,a.y,$),this.setTargetDelta(u),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(n2(p,this.layout.layoutBox,this.relativeParent.layout.layoutBox),NFe(this.relativeTarget,this.relativeTargetOrigin,p,$),C&&wFe(this.relativeTarget,C)&&(this.isProjectionDirty=!1),C||(C=En()),sl(C,this.relativeTarget)),v&&(this.animationValues=d,gFe(d,c,this.latestValues,$,k,x)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=$},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&($d(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Dr.update(()=>{i2.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=_p(0)),this.currentAnimation=xK(this.motionValue,[0,1e3],{...a,velocity:0,isSync:!0,onUpdate:l=>{this.mixTargetDelta(l),a.onUpdate&&a.onUpdate(l)},onStop:()=>{},onComplete:()=>{a.onComplete&&a.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 a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(SFe),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const a=this.getLead();let{targetWithTransforms:l,target:s,layout:c,latestValues:d}=a;if(!(!l||!s||!c)){if(this!==a&&this.layout&&c&&$Z(this.options.animationType,this.layout.layoutBox,c.layoutBox)){s=this.target||En();const u=Vo(this.layout.layoutBox.x);s.x.min=a.target.x.min,s.x.max=s.x.min+u;const p=Vo(this.layout.layoutBox.y);s.y.min=a.target.y.min,s.y.max=s.y.min+p}sl(l,s),ng(l,d),Yy(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(a,l){this.sharedNodes.has(a)||this.sharedNodes.set(a,new kFe),this.sharedNodes.get(a).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 a=this.getStack();return a?a.lead===this:!0}getLead(){const{layoutId:a}=this.options;return a?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:a}=this.options;return a?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:l,preserveFollowOpacity:s}={}){const c=this.getStack();c&&c.promote(this,s),a&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const a=this.getStack();return a?a.relegate(this):!1}resetSkewAndRotation(){const{visualElement:a}=this.options;if(!a)return;let l=!1;const{latestValues:s}=a;if((s.z||s.rotate||s.rotateX||s.rotateY||s.rotateZ||s.skewX||s.skewY)&&(l=!0),!l)return;const c={};s.z&&BC("z",a,c,this.animationValues);for(let d=0;da.currentAnimation?.stop()),this.root.nodes.forEach(bZ),this.root.sharedNodes.clear()}}}function CFe(e){e.updateLayout()}function $Fe(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:i}=e.options,a=r.source!==e.layout.source;i==="size"?ma(u=>{const p=a?r.measuredBox[u]:r.layoutBox[u],f=Vo(p);p.min=n[u].min,p.max=p.min+f}):$Z(i,r.layoutBox,n)&&ma(u=>{const p=a?r.measuredBox[u]:r.layoutBox[u],f=Vo(n[u]);p.max=p.min+f,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[u].max=e.relativeTarget[u].min+f)});const l=ig();Yy(l,n,r.layoutBox);const s=ig();a?Yy(s,e.applyTransform(o,!0),r.measuredBox):Yy(s,n,r.layoutBox);const c=!uZ(l);let d=!1;if(!e.resumeFrom){const u=e.getClosestProjectingParent();if(u&&!u.resumeFrom){const{snapshot:p,layout:f}=u;if(p&&f){const m=En();n2(m,r.layoutBox,p.layoutBox);const v=En();n2(v,n,f.layoutBox),fZ(m,v)||(d=!0),u.options.layoutRoot&&(e.relativeTarget=v,e.relativeTargetOrigin=m,e.relativeParent=u)}}}e.notifyListeners("didUpdate",{layout:n,snapshot:r,delta:s,layoutDelta:l,hasLayoutChanged:c,hasRelativeLayoutChanged:d})}else if(e.isLead()){const{onExitComplete:n}=e.options;n&&n()}e.options.transition=void 0}function RFe(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 zFe(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function TFe(e){e.clearSnapshot()}function bZ(e){e.clearMeasurements()}function xZ(e){e.isLayoutDirty=!1}function jFe(e){const{visualElement:r}=e.options;r&&r.getProps().onBeforeLayoutMeasure&&r.notify("BeforeLayoutMeasure"),e.resetTransform()}function wZ(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function AFe(e){e.resolveTargetDelta()}function DFe(e){e.calcProjection()}function PFe(e){e.resetSkewAndRotation()}function MFe(e){e.removeLeadSnapshot()}function kZ(e,r,n){e.translate=Lr(r.translate,0,n),e.scale=Lr(r.scale,1,n),e.origin=r.origin,e.originPoint=r.originPoint}function _Z(e,r,n,o){e.min=Lr(r.min,n.min,o),e.max=Lr(r.max,n.max,o)}function NFe(e,r,n,o){_Z(e.x,r.x,n.x,o),_Z(e.y,r.y,n.y,o)}function BFe(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const IFe={duration:.45,ease:[.4,0,.1,1]},SZ=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),EZ=SZ("applewebkit/")&&!SZ("chrome/")?Math.round:ha;function CZ(e){e.min=EZ(e.min),e.max=EZ(e.max)}function OFe(e){CZ(e.x),CZ(e.y)}function $Z(e,r,n){return e==="position"||e==="preserve-aspect"&&!KLe(gZ(r),gZ(n),.2)}function LFe(e){return e!==e.root&&e.scroll?.wasRoot}const FFe=vZ({attachResizeListener:(e,r)=>Uy(e,"resize",r),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),IC={current:void 0},RZ=vZ({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!IC.current){const e=new FFe({});e.mount(window),e.setOptions({layoutScroll:!0}),IC.current=e}return IC.current},resetTransform:(e,r)=>{e.style.transform=r!==void 0?r:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),VFe={pan:{Feature:dFe},drag:{Feature:cFe,ProjectionNode:RZ,MeasureLayout:JK}};function zZ(e,r,n){const{props:o}=e;e.animationState&&o.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,a=o[i];a&&Dr.postRender(()=>a(r,Wy(r)))}class qFe extends Td{mount(){const{current:r}=this.node;r&&(this.unmount=GIe(r,(n,o)=>(zZ(this.node,o,"Start"),i=>zZ(this.node,i,"End"))))}unmount(){}}class HFe extends Td{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=Ay(Uy(this.node.current,"focus",()=>this.onFocus()),Uy(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function TZ(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 i="onTap"+(n==="End"?"":n),a=o[i];a&&Dr.postRender(()=>a(r,Wy(r)))}class UFe extends Td{mount(){const{current:r}=this.node;r&&(this.unmount=ZIe(r,(n,o)=>(TZ(this.node,o,"Start"),(i,{success:a})=>TZ(this.node,i,a?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const OC=new WeakMap,LC=new WeakMap,WFe=e=>{const r=OC.get(e.target);r&&r(e)},GFe=e=>{e.forEach(WFe)};function YFe({root:e,...r}){const n=e||document;LC.has(n)||LC.set(n,{});const o=LC.get(n),i=JSON.stringify(r);return o[i]||(o[i]=new IntersectionObserver(GFe,{root:e,...r})),o[i]}function XFe(e,r,n){const o=YFe(r);return OC.set(e,n),o.observe(e),()=>{OC.delete(e),o.unobserve(e)}}const KFe={some:0,all:1};class ZFe extends Td{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:r={}}=this.node.getProps(),{root:n,margin:o,amount:i="some",once:a}=r,l={root:n?n.current:void 0,rootMargin:o,threshold:typeof i=="number"?i:KFe[i]},s=c=>{const{isIntersecting:d}=c;if(this.isInView===d||(this.isInView=d,a&&!d&&this.hasEnteredView))return;d&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",d);const{onViewportEnter:u,onViewportLeave:p}=this.node.getProps(),f=d?u:p;f&&f(c)};return XFe(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(QFe(r,n))&&this.startObserver()}unmount(){}}function QFe({viewport:e={}},{viewport:r={}}={}){return n=>e[n]!==r[n]}const JFe={inView:{Feature:ZFe},tap:{Feature:UFe},focus:{Feature:HFe},hover:{Feature:qFe}},eVe={layout:{ProjectionNode:RZ,MeasureLayout:JK}},tVe={renderer:ALe,...HLe,...JFe},rVe={...tVe,...VFe,...eVe};function jZ(e){const r=ag(()=>_p(e)),{isStatic:n}=S.useContext(Ep);if(n){const[,o]=S.useState(e);S.useEffect(()=>r.on("change",o),[])}return r}function nVe(){!bC.current&&aK();const[e]=S.useState(Y3.current);return e}function AZ(){const e=nVe(),{reducedMotion:r}=S.useContext(Ep);return r==="never"?!1:r==="always"?!0:e}class oVe{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 iVe=()=>new oVe;function aVe(){return ag(iVe)}const FC=S.createContext(null);FC.displayName="ElementDetailsActorContext";const lVe=()=>{const e=S.useContext(FC);if(e===null)throw new Error("ElementDetailsActorRef is not provided");return e},ya=(e,r,n)=>{const o=i=>({[e]:"__ignore__",...r,...Vu(i)});return{recipeFn:(i,a=!0)=>{const l=cL({conditions:{shift:fL,finalize:hL,breakpoints:{keys:["base","xs","sm","md","lg","xl"]}},utility:{toHash:(c,d)=>d(c.join(":")),transform:(c,d)=>(jke(e,n,i,c),d==="__ignore__"?{className:e}:(d=i7(d),{className:`${e}--${c}_${d}`}))}}),s=o(i);if(a){const c=u7(n,s);return Ge(l(s),fe(c))}return l(s)},getVariantProps:o,__getCompoundVariantCss__:i=>u7(n,o(i))}},is=(e,r)=>{if(e&&!r)return e;if(!e&&r)return r;const n=(...a)=>Ge(e(...a),r(...a)),o=c7(e.variantKeys,r.variantKeys),i=o.reduce((a,l)=>(a[l]=c7(e.variantMap[l],r.variantMap[l]),a),{});return Object.assign(n,{__recipe__:!0,__name__:`${e.__name__} ${r.__name__}`,raw:a=>a,variantKeys:o,variantMap:i,splitVariantProps(a){return Fn(a,o)}})},VC=ya("action-btn",{size:"md",radius:"md",variant:"filled"},[]),DZ={variant:["transparent","filled"],size:["sm","md"],radius:["sm","md"]},PZ=Object.keys(DZ),a2=Object.assign(Kn(VC.recipeFn),{__recipe__:!0,__name__:"actionBtn",__getCompoundVariantCss__:VC.__getCompoundVariantCss__,raw:e=>e,variantKeys:PZ,variantMap:DZ,merge(e){return is(this,e)},splitVariantProps(e){return Fn(e,PZ)},getVariantProps:VC.getVariantProps}),qC=ya("likec4-compound-node",{},[]),MZ={isTransparent:["false","true"],inverseColor:["true","false"],borderStyle:["solid","dashed","dotted","none"]},NZ=Object.keys(MZ),sVe=Object.assign(Kn(qC.recipeFn),{__recipe__:!0,__name__:"compoundNode",__getCompoundVariantCss__:qC.__getCompoundVariantCss__,raw:e=>e,variantKeys:NZ,variantMap:MZ,merge(e){return is(this,e)},splitVariantProps(e){return Fn(e,NZ)},getVariantProps:qC.getVariantProps}),HC=ya("likec4-edge-action-btn",{},[]),BZ={},IZ=Object.keys(BZ),cVe=Object.assign(Kn(HC.recipeFn),{__recipe__:!0,__name__:"edgeActionBtn",__getCompoundVariantCss__:HC.__getCompoundVariantCss__,raw:e=>e,variantKeys:IZ,variantMap:BZ,merge(e){return is(this,e)},splitVariantProps(e){return Fn(e,IZ)},getVariantProps:HC.getVariantProps}),UC=ya("likec4-edge-label",{pointerEvents:"all",isStepEdge:!1,cursor:"default"},[]),OZ={pointerEvents:["none","all"],cursor:["pointer","default"],isStepEdge:["false","true"]},LZ=Object.keys(OZ),dVe=Object.assign(Kn(UC.recipeFn),{__recipe__:!0,__name__:"edgeLabel",__getCompoundVariantCss__:UC.__getCompoundVariantCss__,raw:e=>e,variantKeys:LZ,variantMap:OZ,merge(e){return is(this,e)},splitVariantProps(e){return Fn(e,LZ)},getVariantProps:UC.getVariantProps}),FZ={},uVe=[],pVe=[["path","likec4-edge__path"],["pathBg","likec4-edge__pathBg"],["markersCtx","likec4-edge__markersCtx"],["middlePoint","likec4-edge__middlePoint"]],hVe=pVe.map(([e,r])=>[e,ya(r,FZ,s7(uVe,e))]),fVe=Kn((e={})=>Object.fromEntries(hVe.map(([r,n])=>[r,n.recipeFn(e)]))),VZ=[],gVe=e=>({...FZ,...Vu(e)}),mVe=Object.assign(fVe,{__recipe__:!1,__name__:"edgePath",raw:e=>e,classNameMap:{},variantKeys:VZ,variantMap:{},splitVariantProps(e){return Fn(e,VZ)},getVariantProps:gVe}),WC=ya("likec4-element-node-data",{},[]),qZ={},HZ=Object.keys(qZ),yVe=Object.assign(Kn(WC.recipeFn),{__recipe__:!0,__name__:"elementNodeData",__getCompoundVariantCss__:WC.__getCompoundVariantCss__,raw:e=>e,variantKeys:HZ,variantMap:qZ,merge(e){return is(this,e)},splitVariantProps(e){return Fn(e,HZ)},getVariantProps:WC.getVariantProps}),GC=ya("likec4-element-shape",{},[]),UZ={shapetype:["html","svg"]},WZ=Object.keys(UZ),GZ=Object.assign(Kn(GC.recipeFn),{__recipe__:!0,__name__:"elementShapeRecipe",__getCompoundVariantCss__:GC.__getCompoundVariantCss__,raw:e=>e,variantKeys:WZ,variantMap:UZ,merge(e){return is(this,e)},splitVariantProps(e){return Fn(e,WZ)},getVariantProps:GC.getVariantProps}),YC=ya("likec4-tag",{autoTextColor:!1},[]),YZ={autoTextColor:["false","true"]},XZ=Object.keys(YZ),vVe=Object.assign(Kn(YC.recipeFn),{__recipe__:!0,__name__:"likec4tag",__getCompoundVariantCss__:YC.__getCompoundVariantCss__,raw:e=>e,variantKeys:XZ,variantMap:YZ,merge(e){return is(this,e)},splitVariantProps(e){return Fn(e,XZ)},getVariantProps:YC.getVariantProps}),XC=ya("likec4-markdown-block",{uselikec4palette:!1,value:"markdown"},[]),KZ={uselikec4palette:["true","false"],value:["markdown","plaintext"]},ZZ=Object.keys(KZ),bVe=Object.assign(Kn(XC.recipeFn),{__recipe__:!0,__name__:"markdownBlock",__getCompoundVariantCss__:XC.__getCompoundVariantCss__,raw:e=>e,variantKeys:ZZ,variantMap:KZ,merge(e){return is(this,e)},splitVariantProps(e){return Fn(e,ZZ)},getVariantProps:XC.getVariantProps}),KC=ya("likec4-navigation-panel-icon",{variant:"default",type:"default"},[{type:"warning",variant:"filled",css:{backgroundColor:{base:"likec4.panel.action.warning.bg",_hover:"likec4.panel.action.warning.bg.hover"}}}]),QZ={variant:["default","filled"],type:["default","warning"]},JZ=Object.keys(QZ),eQ=Object.assign(Kn(KC.recipeFn),{__recipe__:!0,__name__:"navigationPanelActionIcon",__getCompoundVariantCss__:KC.__getCompoundVariantCss__,raw:e=>e,variantKeys:JZ,variantMap:QZ,merge(e){return is(this,e)},splitVariantProps(e){return Fn(e,JZ)},getVariantProps:KC.getVariantProps}),ZC=ya("likec4-overlay",{fullscreen:!1,withBackdrop:!0},[]),tQ={fullscreen:["false","true"],withBackdrop:["false","true"]},rQ=Object.keys(tQ),xVe=Object.assign(Kn(ZC.recipeFn),{__recipe__:!0,__name__:"overlay",__getCompoundVariantCss__:ZC.__getCompoundVariantCss__,raw:e=>e,variantKeys:rQ,variantMap:tQ,merge(e){return is(this,e)},splitVariantProps(e){return Fn(e,rQ)},getVariantProps:ZC.getVariantProps}),nQ={truncateLabel:!1},wVe=[],kVe=[["root","likec4-navlink__root"],["body","likec4-navlink__body"],["section","likec4-navlink__section"],["label","likec4-navlink__label"],["description","likec4-navlink__description"]],_Ve=kVe.map(([e,r])=>[e,ya(r,nQ,s7(wVe,e))]),SVe=Kn((e={})=>Object.fromEntries(_Ve.map(([r,n])=>[r,n.recipeFn(e)]))),oQ=["truncateLabel"],EVe=e=>({...nQ,...Vu(e)}),CVe=Object.assign(SVe,{__recipe__:!1,__name__:"navigationLink",raw:e=>e,classNameMap:{},variantKeys:oQ,variantMap:{truncateLabel:["true","false"]},splitVariantProps(e){return Fn(e,oQ)},getVariantProps:EVe});function iQ(){return pf()}function QC(e,r){return Dt(at(e),r??Ir)}function JC(){return vr()}const $Ve=e=>Math.round(e.transform[2]*100)/100;function RVe(){return Dt($Ve)}const zVe=e=>e.transform[2]<.2;function TVe(){return Dt(zVe)}const{abs:Xy,cos:ac,sin:cg,acos:jVe,atan2:Ky,sqrt:jd,pow:va}=Math;function Zy(e){return e<0?-va(-e,.3333333333333333):va(e,.3333333333333333)}const aQ=Math.PI,l2=2*aQ,Ad=aQ/2,AVe=1e-6,e$=Number.MAX_SAFE_INTEGER||9007199254740991,t$=Number.MIN_SAFE_INTEGER||-9007199254740991,DVe={x:0,y:0,z:0},Oe={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),jd(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 i=1-e;let a=r;if(o===0)return r[0].t=e,r[0];if(o===1){const s={x:i*a[0].x+e*a[1].x,y:i*a[0].y+e*a[1].y,t:e};return n&&(s.z=i*a[0].z+e*a[1].z),s}if(o<4){let s=i*i,c=e*e,d,u,p,f=0;o===2?(a=[a[0],a[1],a[2],DVe],d=s,u=i*e*2,p=c):o===3&&(d=s*i,u=s*e*3,p=i*c*3,f=e*c);const m={x:d*a[0].x+u*a[1].x+p*a[2].x+f*a[3].x,y:d*a[0].y+u*a[1].y+p*a[2].y+f*a[3].y,t:e};return n&&(m.z=d*a[0].z+u*a[1].z+p*a[2].z+f*a[3].z),m}const l=JSON.parse(JSON.stringify(r));for(;l.length>1;){for(let s=0;s1;i--,a--){const l=[];for(let s=0,c;s"u")e=.5;else if(e===0||e===1)return e;const n=va(e,r)+va(1-e,r),o=n-1;return Xy(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=va(1-e,r),o=va(e,r)+n;return n/o},lli8:function(e,r,n,o,i,a,l,s){const c=(e*o-r*n)*(i-l)-(e-n)*(i*s-a*l),d=(e*o-r*n)*(a-s)-(r-o)*(i*s-a*l),u=(e-n)*(a-s)-(r-o)*(i-l);return u==0?!1:{x:c/u,y:d/u}},lli4:function(e,r,n,o){const i=e.x,a=e.y,l=r.x,s=r.y,c=n.x,d=n.y,u=o.x,p=o.y;return Oe.lli8(i,a,l,s,c,d,u,p)},lli:function(e,r){return Oe.lli4(e,e.c,r,r.c)},makeline:function(e,r){return new Fr(e.x,e.y,(e.x+r.x)/2,(e.y+r.y)/2,r.x,r.y)},findbbox:function(e){let r=e$,n=e$,o=t$,i=t$;return e.forEach(function(a){const l=a.bbox();r>l.x.min&&(r=l.x.min),n>l.y.min&&(n=l.y.min),o0&&(u.c1=c,u.c2=d,u.s1=e,u.s2=n,a.push(u))})}),a},makeshape:function(e,r,n){const o=r.points.length,i=e.points.length,a=Oe.makeline(r.points[o-1],e.points[0]),l=Oe.makeline(e.points[i-1],r.points[0]),s={startcap:a,forward:e,back:r,endcap:l,bbox:Oe.findbbox([a,e,r,l])};return s.intersections=function(c){return Oe.shapeintersections(s,s.bbox,c,c.bbox,n)},s},getminmax:function(e,r,n){if(!n)return{min:0,max:0};let o=e$,i=t$,a,l;n.indexOf(0)===-1&&(n=[0].concat(n)),n.indexOf(1)===-1&&n.push(1);for(let s=0,c=n.length;si&&(i=l[r]);return{min:o,mid:(o+i)/2,max:i,size:i-o}},align:function(e,r){const n=r.p1.x,o=r.p1.y,i=-Ky(r.p2.y-o,r.p2.x-n),a=function(l){return{x:(l.x-n)*ac(i)-(l.y-o)*cg(i),y:(l.x-n)*cg(i)+(l.y-o)*ac(i)}};return e.map(a)},roots:function(e,r){r=r||{p1:{x:0,y:0},p2:{x:1,y:0}};const n=e.length-1,o=Oe.align(e,r),i=function(A){return 0<=A&&A<=1};if(n===2){const A=o[0].y,z=o[1].y,j=o[2].y,I=A-2*z+j;if(I!==0){const N=-jd(z*z-A*j),L=-A+z,H=-(N+L)/I,P=-(-N+L)/I;return[H,P].filter(i)}else if(z!==j&&I===0)return[(2*z-j)/(2*z-2*j)].filter(i);return[]}const a=o[0].y,l=o[1].y,s=o[2].y,c=o[3].y;let d=-a+3*l-3*s+c,u=3*a-6*l+3*s,p=-3*a+3*l,f=a;if(Oe.approximately(d,0)){if(Oe.approximately(u,0))return Oe.approximately(p,0)?[]:[-f/p].filter(i);const A=jd(p*p-4*u*f),z=2*u;return[(A-p)/z,(-p-A)/z].filter(i)}u/=d,p/=d,f/=d;const m=(3*p-u*u)/3,v=m/3,w=(2*u*u*u-9*u*p+27*f)/27,x=w/2,k=x*x+v*v*v;let C,_,$,R,T;if(k<0){const A=-m/3,z=A*A*A,j=jd(z),I=-w/(2*j),N=I<-1?-1:I>1?1:I,L=jVe(N),H=Zy(j),P=2*H;return $=P*ac(L/3)-u/3,R=P*ac((L+l2)/3)-u/3,T=P*ac((L+2*l2)/3)-u/3,[$,R,T].filter(i)}else{if(k===0)return C=x<0?Zy(-x):-Zy(x),$=2*C-u/3,R=-C-u/3,[$,R].filter(i);{const A=jd(k);return C=Zy(-x+A),_=Zy(x+A),[C-_-u/3].filter(i)}}},droots:function(e){if(e.length===3){const r=e[0],n=e[1],o=e[2],i=r-2*n+o;if(i!==0){const a=-jd(n*n-r*o),l=-r+n,s=-(a+l)/i,c=-(-a+l)/i;return[s,c]}else if(n!==o&&i===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,i){let a,l,s,c,d=0,u=0;const p=Oe.compute(e,r),f=Oe.compute(e,n),m=p.x*p.x+p.y*p.y;if(o?(a=jd(va(p.y*f.z-f.y*p.z,2)+va(p.z*f.x-f.z*p.x,2)+va(p.x*f.y-f.x*p.y,2)),l=va(m+p.z*p.z,3/2)):(a=p.x*f.y-p.y*f.x,l=va(m,3/2)),a===0||l===0)return{k:0,r:0};if(d=a/l,u=l/a,!i){const v=Oe.curvature(e-.001,r,n,o,!0).k,w=Oe.curvature(e+.001,r,n,o,!0).k;c=(w-d+(d-v))/2,s=(Xy(w-d)+Xy(d-v))/2}return{k:d,r:u,dk:c,adk:s}},inflections:function(e){if(e.length<4)return[];const r=Oe.align(e,{p1:e[0],p2:e.slice(-1)[0]}),n=r[2].x*r[1].y,o=r[3].x*r[1].y,i=r[1].x*r[2].y,a=r[3].x*r[2].y,l=18*(-3*n+2*o+3*i-a),s=18*(3*n-o-3*i),c=18*(i-n);if(Oe.approximately(l,0)){if(!Oe.approximately(s,0)){let f=-c/s;if(0<=f&&f<=1)return[f]}return[]}const d=2*l;if(Oe.approximately(d,0))return[];const u=s*s-4*l*c;if(u<0)return[];const p=Math.sqrt(u);return[(p-s)/d,-(s+p)/d].filter(function(f){return 0<=f&&f<=1})},bboxoverlap:function(e,r){const n=["x","y"],o=n.length;for(let i=0,a,l,s,c;i=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(),i=r.bbox(),a=1e5,l=n||.5;if(o.x.size+o.y.sizeT||T>A)&&(R+=l2),R>A&&(z=A,A=R,R=z)):A4){if(arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");i=!0}}else if(a!==6&&a!==8&&a!==9&&a!==12&&arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const l=this._3d=!i&&(a===9||a===12)||r&&r[0]&&typeof r[0].z<"u",s=this.points=[];for(let m=0,v=l?3:2;mm+Jy(v.y),0)"u"&&(i=.5),i===0)return new Fr(n,n,o);if(i===1)return new Fr(r,n,n);const a=Fr.getABC(2,r,n,o,i);return new Fr(r,a.A,o)}static cubicFromPoints(r,n,o,i,a){typeof i>"u"&&(i=.5);const l=Fr.getABC(3,r,n,o,i);typeof a>"u"&&(a=Oe.dist(n,l.C));const s=a*(1-i)/i,c=Oe.dist(r,o),d=(o.x-r.x)/c,u=(o.y-r.y)/c,p=a*d,f=a*u,m=s*d,v=s*u,w={x:n.x-p,y:n.y-f},x={x:n.x+m,y:n.y+v},k=l.A,C={x:k.x+(w.x-k.x)/(1-i),y:k.y+(w.y-k.y)/(1-i)},_={x:k.x+(x.x-k.x)/i,y:k.y+(x.y-k.y)/i},$={x:r.x+(C.x-r.x)/i,y:r.y+(C.y-r.y)/i},R={x:o.x+(_.x-o.x)/(1-i),y:o.y+(_.y-o.y)/(1-i)};return new Fr(r,$,R,o)}static getUtils(){return Oe}getUtils(){return Fr.getUtils()}static get PolyBezier(){return Qy}valueOf(){return this.toString()}toString(){return Oe.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const r=this.points,n=r[0].x,o=r[0].y,i=["M",n,o,this.order===2?"Q":"C"];for(let a=1,l=r.length;a0}length(){return Oe.length(this.derivative.bind(this))}static getABC(r=2,n,o,i,a=.5){const l=Oe.projectionratio(a,r),s=1-l,c={x:l*n.x+s*i.x,y:l*n.y+s*i.y},d=Oe.abcratio(a,r);return{A:{x:o.x+(o.x-c.x)/d,y:o.y+(o.y-c.y)/d},B:o,C:c,S:n,E:i}}getABC(r,n){n=n||this.get(r);let o=this.points[0],i=this.points[this.order];return Fr.getABC(this.order,o,n,i,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,i;n1?1:p,f=this.compute(p),f.t=p,f.d=d,f}get(r){return this.compute(r)}point(r){return this.points[r]}compute(r){return this.ratios?Oe.computeWithRatios(r,this.points,this.ratios,this._3d):Oe.compute(r,this.points,this._3d,this.ratios)}raise(){const r=this.points,n=[r[0]],o=r.length;for(let i=1,a,l;i1;){o=[];for(let l=0,s,c=n.length-1;l=0&&l<=1}),n=n.concat(r[o].sort(Oe.numberSort))}).bind(this)),r.values=n.sort(Oe.numberSort).filter(function(o,i){return n.indexOf(o)===i}),r}bbox(){const r=this.extrema(),n={};return this.dims.forEach((function(o){n[o]=Oe.getminmax(this,o,r[o])}).bind(this)),n}overlaps(r){const n=this.bbox(),o=r.bbox();return Oe.bboxoverlap(n,o)}offset(r,n){if(typeof n<"u"){const o=this.get(r),i=this.normal(r),a={c:o,n:i,x:o.x+i.x*n,y:o.y+i.y*n};return this._3d&&(a.z=o.z+i.z*n),a}if(this._linear){const o=this.normal(0),i=this.points.map(function(a){const l={x:a.x+r*o.x,y:a.y+r*o.y};return a.z&&o.z&&(l.z=a.z+r*o.z),l});return[new Fr(i)]}return this.reduce().map(function(o){return o._linear?o.offset(r)[0]:o.scale(r)})}simple(){if(this.order===3){const i=Oe.angle(this.points[0],this.points[3],this.points[1]),a=Oe.angle(this.points[0],this.points[3],this.points[2]);if(i>0&&a<0||i<0&&a>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),Jy(NVe(o))(1-s/i)*n+s/i*o);return new Fr(this.points.map((l,s)=>({x:l.x+r.x*a[s],y:l.y+r.y*a[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 i=this.clockwise,a=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)],d=[],u=Oe.lli4(c[0],c[0].c,c[1],c[1].c);if(!u)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach(function(p){const f=d[p*n]=Oe.copy(a[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=a[p+1],m={x:f.x-u.x,y:f.y-u.y},v=o?o((p+1)/n):r;o&&!i&&(v=-v);var w=e0(m.x*m.x+m.y*m.y);m.x/=w,m.y/=w,d[p+1]={x:f.x+v*m.x,y:f.y+v*m.y}}}),new Fr(d)):([0,1].forEach(p=>{if(n===2&&p)return;const f=d[p*n],m=this.derivative(p),v={x:f.x+m.x,y:f.y+m.y};d[p+1]=Oe.lli4(f,v,u,a[p+1])}),new Fr(d))}outline(r,n,o,i){if(n=n===void 0?r:n,this._linear){const R=this.normal(0),T=this.points[0],A=this.points[this.points.length-1];let z,j,I;o===void 0&&(o=r,i=n),z={x:T.x+R.x*r,y:T.y+R.y*r},I={x:A.x+R.x*o,y:A.y+R.y*o},j={x:(z.x+I.x)/2,y:(z.y+I.y)/2};const N=[z,j,I];z={x:T.x-R.x*n,y:T.y-R.y*n},I={x:A.x-R.x*i,y:A.y-R.y*i},j={x:(z.x+I.x)/2,y:(z.y+I.y)/2};const L=[I,j,z],H=Oe.makeline(L[2],N[0]),P=Oe.makeline(N[2],L[0]),V=[H,new Fr(N),P,new Fr(L)];return new Qy(V)}const a=this.reduce(),l=a.length,s=[];let c=[],d,u=0,p=this.length();const f=typeof o<"u"&&typeof i<"u";function m(R,T,A,z,j){return function(I){const N=z/A,L=(z+j)/A,H=T-R;return Oe.map(I,0,1,R+N*H,R+L*H)}}a.forEach(function(R){const T=R.length();f?(s.push(R.scale(m(r,o,p,u,T))),c.push(R.scale(m(-n,-i,p,u,T)))):(s.push(R.scale(r)),c.push(R.scale(-n))),u+=T}),c=c.map(function(R){return d=R.points,d[3]?R.points=[d[3],d[2],d[1],d[0]]:R.points=[d[2],d[1],d[0]],R}).reverse();const v=s[0].points[0],w=s[l-1].points[s[l-1].points.length-1],x=c[l-1].points[c[l-1].points.length-1],k=c[0].points[0],C=Oe.makeline(x,v),_=Oe.makeline(w,k),$=[C].concat(s).concat([_]).concat(c);return new Qy($)}outlineshapes(r,n,o){n=n||r;const i=this.outline(r,n).curves,a=[];for(let l=1,s=i.length;l1,c.endcap.virtual=l{var s=this.get(l);return Oe.between(s.x,n,i)&&Oe.between(s.y,o,a)})}selfintersects(r){const n=this.reduce(),o=n.length-2,i=[];for(let a=0,l,s,c;a0&&(a=a.concat(s))}),a}arcs(r){return r=r||.5,this._iterate(r,[])}_error(r,n,o,i){const a=(i-o)/4,l=this.get(o+a),s=this.get(i-a),c=Oe.dist(r,n),d=Oe.dist(r,l),u=Oe.dist(r,s);return Jy(d-c)+Jy(u-c)}_iterate(r,n){let o=0,i=1,a;do{a=0,i=1;let l=this.get(o),s,c,d,u,p=!1,f=!1,m,v=i,w=1;do if(f=p,u=d,v=(o+i)/2,s=this.get(v),c=this.get(i),d=Oe.getccenter(l,s,c),d.interval={start:o,end:i},p=this._error(d,l,o,i)<=r,m=f&&!p,m||(w=i),p){if(i>=1){if(d.interval.end=w=1,u=d,i>1){let x={x:d.x+d.r*PVe(d.e),y:d.y+d.r*MVe(d.e)};d.e+=Oe.angle({x:d.x,y:d.y},x,this.get(1))}break}i=i+(i-o)/2}else i=v;while(!m&&a++<100);if(a>=100)break;u=u||d,n.push(u),o=w}while(i<1);return n}}function cQ(e,r){return e.x===r.x&&e.y===r.y&&e.width===r.width&&e.height===r.height}const r$=e=>({x:Math.round(e.internals.positionAbsolute.x),y:Math.round(e.internals.positionAbsolute.y),width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0});function n$(e){const{width:r,height:n}=_o(e),{x:o,y:i}=e.internals.positionAbsolute;return{x:Math.round(o+r/2),y:Math.round(i+n/2)}}function s2(e,r,n=0){const{width:o,height:i}=e,a=ko.center(e),l=Qr(r.x,r.y).subtract(a),s=(n+o/2)/l.x,c=(n+i/2)/l.y,d=Math.min(Math.abs(s),Math.abs(c));return Qr(l).multiply(d).add(a).round()}function c2(e){let[r,...n]=e;He(r,"start should be defined");const o=[];for(;xn(n,3);){const[i,a,l,...s]=n,c=new Fr(r[0],r[1],i[0],i[1],a[0],a[1],l[0],l[1]),d=c.inflections();d.length===0&&d.push(.5),d.forEach(u=>{const{x:p,y:f}=c.get(u);o.push({x:Math.round(p),y:Math.round(f)})}),n=s,r=l}return He(n.length===0,"all points should be consumed"),He(xn(o,1),"at least one control point should be generated"),o}function d2(e,r){const n=i9(e)?{x:e[0],y:e[1]}:e,o=i9(r)?{x:r[0],y:r[1]}:r;return IVe(n,o)<2.1}function IVe(e,r){return Math.hypot(r.x-e.x,r.y-e.y)}function nn(e){return e.stopPropagation()}function OVe(e){let[r,...n]=e;He(r,"start should be defined");let o=`M ${r[0]},${r[1]}`;for(;xn(n,3);){const[i,a,l,...s]=n;o=o+` C ${i[0]},${i[1]} ${a[0]},${a[1]} ${l[0]},${l[1]}`,n=s}return He(n.length===0,"all points should be consumed"),o}const u2=S.forwardRef(({tag:e,cursor:r,className:n,style:o,...i},a)=>{const l=_Me(e);return y.jsxs(hr,{ref:a,"data-likec4-tag":e,className:Ge(vVe({autoTextColor:GO(l)}),n),...i,style:{cursor:r,...o},children:[y.jsx("span",{children:"#"}),y.jsx("span",{children:e})]})}),LVe=(e,r)=>e.data.width===r.data.width&&tt(e.data.tags,r.data.tags)&&(e.data.hovered??!1)===(r.data.hovered??!1),t0=S.memo(({id:e,data:{tags:r,width:n,hovered:o=!1}})=>{const{hovered:i,ref:a}=b9(),{hovered:l,ref:s}=b9(),[c,d]=KRe(!1,o?120:300);S.useEffect(()=>{d(x=>x?o||i||l:o&&(i||l))},[i,l,o]);const u=RVe(),p=u>1.2,f=Mt(),m=x=>{f.send({type:"tag.highlight",tag:x})},v=S.useCallback(()=>{f.send({type:"tag.unhighlight"})},[]);if(!r||r.length===0)return null;const w=Math.max(Math.round(n*u)-10,200);return y.jsxs(y.Fragment,{children:[y.jsx("div",{ref:a,className:Ge("likec4-element-tags",qn({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:nn,children:r.map(x=>y.jsx(hr,{"data-likec4-tag":x,className:fe({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+"#"+x))}),y.jsx(r9,{isVisible:c,align:"start",position:Ue.Bottom,children:y.jsx(Or,{ref:s,css:{gap:"0.5",alignItems:"baseline",flexWrap:"wrap",pb:"sm",translate:"auto",x:"[-8px]",maxWidth:w},children:r.map(x=>y.jsx(u2,{tag:x,cursor:"pointer",className:fe({userSelect:"none",...p&&{fontSize:"lg",borderRadius:"[4px]",px:"1.5"}}),onClick:k=>{k.stopPropagation(),f.openSearch(`#${x}`)},onMouseEnter:()=>m(x),onMouseLeave:v},x))})})]})},LVe);t0.displayName="ElementTags";const FVe=S.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"})})),VVe=[["path",{d:"M5 12l5 5l10 -10",key:"svg-0"}]],dQ=wt("outline","check","Check",VVe),qVe=[["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"}]],HVe=wt("outline","copy","Copy",qVe),uQ="https://github.com/",o$=S.forwardRef(({value:e,className:r,...n},o)=>{const i=e.url.includes("://")?e.url:new window.URL(e.url,window.location.href).toString();let a=i.startsWith(uQ);return y.jsx(ec,{ref:o,variant:"default",radius:"sm",size:"sm",tt:"none",leftSection:e.title?y.jsx(y.Fragment,{children:e.title}):null,rightSection:y.jsx(UW,{value:i,timeout:1500,children:({copy:l,copied:s})=>y.jsx(lr,{className:fe({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(dQ,{}):y.jsx(HVe,{stroke:2.5})})}),...n,className:Ge(r,"group"),classNames:{root:fe({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:fe({'&:is([data-position="left"])':{color:"mantine.colors.dimmed",userSelect:"none",pointerEvents:"none",_groupHover:{color:"[var(--badge-color)]",opacity:.7}}})},children:y.jsxs(Ed.a,{href:i,target:"_blank",style:{color:"var(--badge-color)",cursor:"pointer"},css:{transition:"fast",opacity:{base:.7,_hover:1},textDecoration:{base:"none",_hover:"underline"}},children:[a&&y.jsx(FVe,{height:"12",width:"12",style:{verticalAlign:"middle",marginRight:"4px"}}),a?i.replace(uQ,""):i]})})});function UVe(){return S.useContext(GS)}function WVe(){const e=S.useContext(GS);if(!e)throw new Error("No LikeC4ViewModel in context found");return e}const p2="--_blur",h2="--_opacity",GVe=fe({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(${p2})`,backgroundColor:`[rgb(36 36 36 / var(${h2}, 5%))]`}}),YVe=fe({position:"absolute",pointerEvents:"all",display:"flex",flexDirection:"column",padding:"4",gap:"lg",justifyContent:"stretch",color:"mantine.colors.text",boxShadow:"md",overflow:"hidden",border:"none",background:`[ 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 + color-mix(in oklab, var(--likec4-palette-fill) 60%, transparent), + color-mix(in oklab, var(--likec4-palette-fill) 20%, transparent) 8px, + color-mix(in oklab, 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"}}),$We=be({flex:0,cursor:"move"}),MWe=be({display:"block",fontFamily:"likec4.element",fontOpticalSizing:"auto",fontStyle:"normal",fontWeight:600,fontSize:"24px",lineHeight:"xs"}),$T="40px",PWe=be({flex:`0 0 ${$T}`,height:$T,width:$T,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:` + linear-gradient(180deg, var(--likec4-palette-fill), var(--likec4-palette-fill) 4px, transparent 4px), + {colors.likec4.overlay.body} + ]`,"& .react-flow__attribution":{display:"none"}}),XVe=fe({flex:0,cursor:"move"}),KVe=fe({display:"block",fontFamily:"likec4.element",fontOpticalSizing:"auto",fontStyle:"normal",fontWeight:600,fontSize:"24px",lineHeight:"xs"}),i$="40px",ZVe=fe({flex:`0 0 ${i$}`,height:i$,width:i$,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"}}),Hw="--view-title-color",Vw="--icon-color",zWe=be({width:"100%",background:"mantine.colors.body",borderRadius:"sm",padding:"[10px 8px]",transition:"fast",border:"1px dashed",borderColor:"mantine.colors.defaultBorder",[Hw]:"{colors.mantine.colors.dark[1]}",_hover:{background:"mantine.colors.defaultHover",[Vw]:"{colors.mantine.colors.dark[1]}",[Hw]:"{colors.mantine.colors.defaultColor}"},_dark:{background:"mantine.colors.dark[6]"},_light:{[Vw]:"{colors.mantine.colors.gray[6]}",[Hw]:"{colors.mantine.colors.gray[7]}",_hover:{[Vw]:"{colors.mantine.colors.gray[7]}"}},"& .mantine-ThemeIcon-root":{transition:"fast",color:`[var(${Vw}, {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)"}}),IWe=be({transition:"fast",color:`[var(${Hw}, {colors.mantine.colors.gray[7]})]`,fontSize:"15px",fontWeight:500,lineHeight:"1.4"}),OWe=be({flex:1,display:"flex",flexDirection:"column",justifyContent:"stretch",overflow:"hidden",gap:"sm"}),jWe=be({background:"mantine.colors.gray[1]",borderRadius:"sm",flexWrap:"nowrap",gap:"1.5",padding:"1",_dark:{background:"mantine.colors.dark[7]"}}),LWe=be({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]"}}}),BWe=be({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"}}}),FWe=be({flex:1,display:"grid",gridTemplateColumns:"min-content 1fr",gridAutoRows:"min-content max-content",gap:"[24px 20px]",alignItems:"baseline",justifyItems:"stretch"}),HWe=be({justifySelf:"end",textAlign:"right",userSelect:"none"}),VWe=be({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]"}}),qWe=[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]],MT=Nt("outline","chevron-down","ChevronDown",qWe),UWe=[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]],qu=Nt("outline","chevron-right","ChevronRight",UWe);function EJ({children:e}){return y.jsx(y.Fragment,{children:e})}function SJ({value:e,isExpanded:r}){const[n,o]=E.useState(!1),a=E.useRef(null);return E.useEffect(()=>{a.current&&o(a.current.scrollWidth>a.current.clientWidth)},[e]),y.jsx(co,{label:n&&!r?e:null,multiline:!0,w:300,withinPortal:!0,children:y.jsx(ft,{ref:a,component:"div",className:be({fontSize:"sm",padding:"xs",userSelect:"all",color:"mantine.colors.text",lineHeight:1.4,whiteSpace:r?"pre-wrap":"nowrap",overflow:r?"visible":"hidden",textOverflow:r?"unset":"ellipsis",wordBreak:r?"break-word":"normal",minWidth:0,width:"100%"}),children:e})})}function WWe({values:e,isExpanded:r,onToggle:n}){return r?y.jsx(Xo,{gap:"xs",children:e.map((o,a)=>y.jsxs(mc,{align:"center",gap:"xs",children:[y.jsx(ft,{className:be({fontSize:"xs",color:"mantine.colors.gray[5]",fontWeight:500,flexShrink:0,_dark:{color:"mantine.colors.dark[3]"}}),children:"•"}),y.jsx(Re,{className:be({minHeight:"32px",display:"flex",alignItems:"center",flex:1}),children:y.jsx(SJ,{value:o,isExpanded:!0})})]},a))}):y.jsx(Re,{className:be({minHeight:"32px",display:"flex",alignItems:"center",padding:"xs",gap:"xs",flexWrap:"wrap",minWidth:0,overflow:"hidden"}),children:e.map((o,a)=>y.jsxs(mc,{align:"center",gap:"xs",style:{minWidth:0},children:[y.jsx(ft,{className:be({fontSize:"sm",padding:"[4px 8px]",backgroundColor:"mantine.colors.white",color:"mantine.colors.text",borderRadius:"sm",border:"1px solid",borderColor:"mantine.colors.gray[3]",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"min(200px, 100%)",minWidth:"60px",flex:"0 1 auto",userSelect:"all",_dark:{backgroundColor:"mantine.colors.dark[9]",color:"mantine.colors.text",borderColor:"mantine.colors.dark[4]"}}),title:o,children:o}),a *":{transition:"all 130ms {easings.inOut}"},"&:hover > *":{transitionTimingFunction:"out",transform:"translateX(1.6px)"}}),JVe=fe({transition:"fast",color:`[var(${f2}, {colors.mantine.colors.gray[7]})]`,fontSize:"15px",fontWeight:500,lineHeight:"1.4"}),eqe=fe({flex:1,display:"flex",flexDirection:"column",justifyContent:"stretch",overflow:"hidden",gap:"sm"}),tqe=fe({background:"mantine.colors.gray[1]",borderRadius:"sm",flexWrap:"nowrap",gap:"1.5",padding:"1",_dark:{background:"mantine.colors.dark[7]"}}),rqe=fe({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]"}}}),nqe=fe({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"}}}),oqe=fe({flex:1,display:"grid",gridTemplateColumns:"min-content 1fr",gridAutoRows:"min-content max-content",gap:"[24px 20px]",alignItems:"baseline",justifyItems:"stretch"}),iqe=fe({justifySelf:"end",textAlign:"right",userSelect:"none"}),aqe=fe({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]"}}),lqe=[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]],a$=wt("outline","chevron-down","ChevronDown",lqe),sqe=[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]],Dd=wt("outline","chevron-right","ChevronRight",sqe);function pQ({children:e}){return y.jsx(y.Fragment,{children:e})}function hQ({value:e,isExpanded:r}){const[n,o]=S.useState(!1),i=S.useRef(null);return S.useEffect(()=>{i.current&&o(i.current.scrollWidth>i.current.clientWidth)},[e]),y.jsx(_n,{label:n&&!r?e:null,multiline:!0,w:300,withinPortal:!0,children:y.jsx(it,{ref:i,component:"div",className:fe({fontSize:"sm",padding:"xs",userSelect:"all",color:"mantine.colors.text",lineHeight:1.4,whiteSpace:r?"pre-wrap":"nowrap",overflow:r?"visible":"hidden",textOverflow:r?"unset":"ellipsis",wordBreak:r?"break-word":"normal",minWidth:0,width:"100%"}),children:e})})}function cqe({values:e,isExpanded:r}){return r?y.jsx(Lo,{gap:"xs",children:e.map((n,o)=>y.jsxs(Js,{align:"center",gap:"xs",children:[y.jsx(it,{className:fe({fontSize:"xs",color:"mantine.colors.gray[5]",fontWeight:500,flexShrink:0,_dark:{color:"mantine.colors.dark[3]"}}),children:"•"}),y.jsx(Se,{className:fe({minHeight:"32px",display:"flex",alignItems:"center",flex:1}),children:y.jsx(hQ,{value:n,isExpanded:!0})})]},o))}):y.jsx(Se,{className:fe({minHeight:"32px",display:"flex",alignItems:"center",padding:"xs",gap:"xs",flexWrap:"wrap",minWidth:0,overflow:"hidden"}),children:e.map((n,o)=>y.jsxs(Js,{align:"center",gap:"xs",style:{minWidth:0},children:[y.jsx(it,{className:fe({fontSize:"sm",padding:"[4px 8px]",backgroundColor:"mantine.colors.white",color:"mantine.colors.text",borderRadius:"sm",border:"1px solid",borderColor:"mantine.colors.gray[3]",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"min(200px, 100%)",minWidth:"60px",flex:"0 1 auto",userSelect:"all",_dark:{backgroundColor:"mantine.colors.dark[9]",color:"mantine.colors.text",borderColor:"mantine.colors.dark[4]"}}),title:n,children:n}),ol.trim()).filter(Boolean):[r],o=n.length>1,[a,i]=E.useState(!1),s=()=>{i(!a)};return y.jsxs(y.Fragment,{children:[o?y.jsx(Er,{onClick:s,className:be({fontSize:"xs",color:"mantine.colors.dimmed",justifySelf:"end",textAlign:"right",userSelect:"none",display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"xs",padding:"[4px 8px]",borderRadius:"sm",whiteSpace:"nowrap",transition:"all 150ms ease",_hover:{backgroundColor:"mantine.colors.gray[1]",color:"mantine.colors.primary[6]",_dark:{backgroundColor:"mantine.colors.dark[7]",color:"mantine.colors.primary[4]"}}}),children:y.jsxs(mc,{align:"center",gap:"xs",children:[y.jsxs(ft,{component:"span",size:"xs",fw:700,children:[e,":"]}),y.jsx(ft,{component:"span",className:be({fontSize:"xs",fontWeight:500,color:"mantine.colors.gray[6]",backgroundColor:"mantine.colors.gray[1]",padding:"[1px 4px]",borderRadius:"xs",_dark:{color:"mantine.colors.dark[2]",backgroundColor:"mantine.colors.dark[6]"}}),children:n.length}),a?y.jsx(MT,{size:12}):y.jsx(qu,{size:12})]})}):y.jsxs(ft,{component:"div",className:be({fontSize:"xs",color:"mantine.colors.dimmed",justifySelf:"end",textAlign:"right",userSelect:"none",whiteSpace:"nowrap",padding:"[4px 8px]",fontWeight:700}),children:[e,":"]}),y.jsx(Re,{className:be({justifySelf:"stretch",alignSelf:"start"}),children:o?y.jsx(WWe,{values:n,isExpanded:a,onToggle:s}):y.jsx(Re,{className:be({minHeight:"32px",display:"flex",alignItems:"center"}),children:y.jsx(SJ,{value:n[0]||"",isExpanded:a})})})]})}const GWe=be({"&[data-level='1']":{marginBottom:"sm"}}),XWe=be({cursor:"default",marginTop:"0",marginBottom:"0"}),CJ=be({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)"}}}),KWe=et(CJ),ZWe=et(CJ,be({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}})),QWe=[["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"}]],PT=Nt("outline","info-circle","InfoCircle",QWe),JWe=[["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"}]],eYe=Nt("outline","target","Target",JWe),tYe=[["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"}]],Ri=Nt("outline","zoom-scan","ZoomScan",tYe),rYe=({node:e})=>y.jsxs(pn,{className:KWe,gap:6,align:"baseline",wrap:"nowrap",children:[y.jsxs(ft,{component:"div",fz:11,c:"dimmed",children:[e.kind,":"]}),y.jsx(ft,{component:"div",fz:"sm",fw:"500",children:e.title})]}),nYe=({instance:e})=>{const r=Qt(),n=r.currentView.id,o=[...e.views()];return y.jsxs(pn,{className:ZWe,gap:4,children:[y.jsx(Ba,{color:"gray",variant:"transparent",size:"xs",flex:0,children:y.jsx(eYe,{stroke:1.2})}),y.jsx(ft,{component:"div",fz:"sm",fw:"500",flex:"1 1 100%",children:e.title}),y.jsxs(Re,{onClick:Cn,pos:"relative","data-no-transform":!0,flex:0,children:[o.length===0&&y.jsx(Kn,{size:"compact-xs",variant:"transparent",color:"gray",disabled:!0,children:"no views"}),o.length>0&&y.jsxs(hn,{shadow:"md",withinPortal:!1,position:"bottom-start",offset:0,closeOnClickOutside:!0,clickOutsideEvents:["pointerdown","mousedown","click"],closeOnEscape:!0,trapFocus:!0,children:[y.jsx(hn.Target,{children:y.jsxs(Kn,{size:"compact-xs",variant:"subtle",color:"gray",children:[o.length," view",o.length>1?"s":""]})}),y.jsx(hn.Dropdown,{children:o.map(a=>y.jsx(hn.Item,{px:"xs",py:4,disabled:a.id===n,leftSection:y.jsx(Ba,{size:"sm",variant:"transparent",color:"gray",children:y.jsx(Ri,{stroke:1.8,opacity:.65})}),styles:{itemSection:{marginInlineEnd:Me(8)}},onClick:i=>{i.stopPropagation(),r.navigateTo(a.id)},children:a.title},a.id))})]})]})]})},oYe=()=>{},aYe=E.memo(({elementFqn:e})=>{const r=Ko().element(e),n=[...r.deployments()],o=G0({multiple:!1});o.setHoveredNode=oYe;const a=E.useMemo(()=>{let i=[],s=new Map;for(const l of r.deployments()){let c={label:y.jsx(nYe,{instance:l}),value:l.id,type:"instance",children:[]};s.set(l.id,c);let u=l.parent;for(;u;){let d=s.get(u.id);if(d){d.children.push(c);break}d={label:y.jsx(rYe,{node:u}),value:u.id,type:"node",children:[c]},s.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(F2,{variant:"light",color:"gray",icon:y.jsx(PT,{}),children:"This element does not have any deployments"}):y.jsx(hm,{levelOffset:"sm",allowRangeSelection:!1,classNames:{node:GWe,label:XWe},styles:{root:{position:"relative",width:"min-content",minWidth:300}},data:a,tree:o,renderNode:({node:i,selected:s,elementProps:l,hasChildren:c})=>y.jsx(Re,{...l,style:{...!c&&{marginBottom:Me(4)}},children:c?y.jsx(Kn,{fullWidth:!0,color:"gray",variant:s?"transparent":"subtle",size:"xs",justify:"flex-start",styles:{root:{position:"unset",paddingInlineStart:Me(16)}},children:i.label}):i.label})})}),iYe=()=>{},TJ=(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]||an(o,r[n])))return!1;return!0};function qp(e,r,n,o){const a=IF();jEe(a?iYe:e,r,TJ,o)}function sYe(){const e=typeof window<"u"&&typeof window.devicePixelRatio=="number"?window.devicePixelRatio:1;return us(Math.floor(e),{min:1,max:4})}let qw;function Uu(e){return qw??=sYe(),qw<2?Math.round(e):Math.round(e*qw)/qw}function lYe(e){switch(e){case"dots":return cs.Dots;case"lines":return cs.Lines;case"cross":return cs.Cross;default:Zi(e)}}const cYe=(e,r)=>typeof e.background=="string"&&typeof r.background=="string"?e.background===r.background:lt(e.background,r.background),AJ=E.memo(({background:e})=>typeof e=="string"?y.jsx(Mq,{variant:lYe(e),size:2,gap:20}):y.jsx(Mq,{...e}),cYe);AJ.displayName="Background";const RJ=(e,r)=>(e.data.dimmed??!1)===r?e:{...e,data:{...e.data,dimmed:r}};function uYe(e,r){return r!==void 0?RJ(e,r):n=>RJ(n,e)}const NJ=(e,r)=>(e.data.hovered??!1)===r?e:{...e,data:{...e.data,hovered:r}};function dYe(e,r){return r!==void 0?NJ(e,r):n=>NJ(n,e)}function DJ(e,r){return CNe(e.data,r)?e:{...e,data:{...e.data,...r}}}function pYe(e,r){return r!==void 0?DJ(e,r):n=>DJ(n,e)}const cr={setDimmed:uYe,setHovered:dYe,setData:pYe},_l={Compound:1,Edge:20,Element:20,Max:30},_s=.05,zT=3,Uw={default:"16px",withControls:{top:"58px",left:"16px",right:"16px",bottom:"16px"}};function IT({nodes:e,edges:r,onEdgesChange:n,onNodesChange:o,className:a,pannable:i=!0,zoomable:s=!0,nodesSelectable:l=!0,nodesDraggable:c=!1,background:u="dots",children:d,colorMode:h,fitViewPadding:f=0,fitView:g=!0,zoomOnDoubleClick:b=!1,onViewportResize:x,onMoveEnd:w,onNodeMouseEnter:k,onNodeMouseLeave:C,onEdgeMouseEnter:_,onEdgeMouseLeave:T,...A}){const R=E.useMemo(()=>({minZoom:_s,maxZoom:1,padding:f,includeHiddenNodes:!1}),[f]),D=u!=="transparent"&&u!=="solid",N=fWe(),M=AT(),{colorScheme:O}=yMe();return h||(h=O==="auto"?"system":O),y.jsxs(mRe,{colorMode:h,nodes:e,edges:r,className:et(u==="transparent"&&"bg-transparent",a),...N&&{"data-likec4-zoom-small":!0},zoomOnPinch:s,zoomOnScroll:!i&&s,...!s&&{zoomActivationKeyCode:null},zoomOnDoubleClick:b,maxZoom:s?zT:1,minZoom:s?_s:1,fitView:g,fitViewOptions:R,preventScrolling:s||i,defaultMarkerColor:"var(--xy-edge-stroke)",noDragClassName:"nodrag",noPanClassName:"nopan",noWheelClassName:"nowheel",panOnScroll:i,panOnDrag:i,...!i&&{panActivationKeyCode:null,selectionKeyCode:null},elementsSelectable:l,nodesFocusable:c||l,edgesFocusable:!1,nodesDraggable:c,nodeDragThreshold:4,nodeClickDistance:3,paneClickDistance:3,elevateNodesOnSelect:!1,selectNodesOnDrag:!1,onNodesChange:o,onEdgesChange:n,onMoveEnd:kt((F,{x:L,y:U,zoom:P})=>{const V=Uu(L),I=Uu(U);(L!==V||U!==I)&&M.setState({transform:[V,I,P]}),w?.(F,{x:V,y:I,zoom:P})}),onNodeMouseEnter:kt((F,L)=>{if(k){k(F,L);return}o([{id:L.id,type:"replace",item:cr.setHovered(L,!0)}])}),onNodeMouseLeave:kt((F,L)=>{if(C){C(F,L);return}o([{id:L.id,type:"replace",item:cr.setHovered(L,!1)}])}),onEdgeMouseEnter:kt((F,L)=>{if(_){_(F,L);return}n([{id:L.id,type:"replace",item:cr.setHovered(L,!0)}])}),onEdgeMouseLeave:kt((F,L)=>{if(T){T(F,L);return}n([{id:L.id,type:"replace",item:cr.setHovered(L,!1)}])}),onNodeDoubleClick:Cn,onEdgeDoubleClick:Cn,...A,children:[D&&y.jsx(AJ,{background:u}),x&&y.jsx(fYe,{onViewportResize:x}),d]})}const hYe=({width:e,height:r})=>(e||1)*(r||1),fYe=({onViewportResize:e})=>{const r=qt(hYe);return qp(e,[r]),null},$J=E.createContext(null);function MJ(){return bt(E.useContext($J),"No RelationshipsBrowserActorContext")}function Ww(e,r=an){const n=MJ();return fn(n,e,r)}function Ny(){const e=MJ();return E.useMemo(()=>({actor:e,get rootElementId(){return`relationships-browser-${e.sessionId.replaceAll(":","_")}`},getState:()=>e.getSnapshot().context,send:e.send,updateView:r=>{e.getSnapshot().status==="active"&&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 OT,PJ;function jT(){if(PJ)return OT;PJ=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(h=>Object.keys(d._in[h]).length===0)}sinks(){var d=this;return this.nodes().filter(h=>Object.keys(d._out[h]).length===0)}setNodes(d,h){var f=arguments,g=this;return d.forEach(function(b){f.length>1?g.setNode(b,h):g.setNode(b)}),this}setNode(d,h){return Object.hasOwn(this._nodes,d)?(arguments.length>1&&(this._nodes[d]=h),this):(this._nodes[d]=arguments.length>1?h: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 h=this;if(Object.hasOwn(this._nodes,d)){var f=g=>h.removeEdge(h._edgeObjs[g]);delete this._nodes[d],this._isCompound&&(this._removeFromParentsChildList(d),delete this._parent[d],this.children(d).forEach(function(g){h.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,h){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(h===void 0)h=r;else{h+="";for(var f=h;f!==void 0;f=this.parent(f))if(f===d)throw new Error("Setting "+h+" as parent of "+d+" would create a cycle");this.setNode(h)}return this.setNode(d),this._removeFromParentsChildList(d),this._parent[d]=h,this._children[h][d]=!0,this}_removeFromParentsChildList(d){delete this._children[this._parent[d]][d]}parent(d){if(this._isCompound){var h=this._parent[d];if(h!==r)return h}}children(d=r){if(this._isCompound){var h=this._children[d];if(h)return Object.keys(h)}else{if(d===r)return this.nodes();if(this.hasNode(d))return[]}}predecessors(d){var h=this._preds[d];if(h)return Object.keys(h)}successors(d){var h=this._sucs[d];if(h)return Object.keys(h)}neighbors(d){var h=this.predecessors(d);if(h){const g=new Set(h);for(var f of this.successors(d))g.add(f);return Array.from(g.values())}}isLeaf(d){var h;return this.isDirected()?h=this.successors(d):h=this.neighbors(d),h.length===0}filterNodes(d){var h=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});h.setGraph(this.graph());var f=this;Object.entries(this._nodes).forEach(function([x,w]){d(x)&&h.setNode(x,w)}),Object.values(this._edgeObjs).forEach(function(x){h.hasNode(x.v)&&h.hasNode(x.w)&&h.setEdge(x,f.edge(x))});var g={};function b(x){var w=f.parent(x);return w===void 0||h.hasNode(w)?(g[x]=w,w):w in g?g[w]:b(w)}return this._isCompound&&h.nodes().forEach(x=>h.setParent(x,b(x))),h}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,h){var f=this,g=arguments;return d.reduce(function(b,x){return g.length>1?f.setEdge(b,x,h):f.setEdge(b,x),x}),this}setEdge(){var d,h,f,g,b=!1,x=arguments[0];typeof x=="object"&&x!==null&&"v"in x?(d=x.v,h=x.w,f=x.name,arguments.length===2&&(g=arguments[1],b=!0)):(d=x,h=arguments[1],f=arguments[3],arguments.length>2&&(g=arguments[2],b=!0)),d=""+d,h=""+h,f!==void 0&&(f=""+f);var w=s(this._isDirected,d,h,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(h),this._edgeLabels[w]=b?g:this._defaultEdgeLabelFn(d,h,f);var k=l(this._isDirected,d,h,f);return d=k.v,h=k.w,Object.freeze(k),this._edgeObjs[w]=k,a(this._preds[h],d),a(this._sucs[d],h),this._in[h][w]=k,this._out[d][w]=k,this._edgeCount++,this}edge(d,h,f){var g=arguments.length===1?c(this._isDirected,arguments[0]):s(this._isDirected,d,h,f);return this._edgeLabels[g]}edgeAsObj(){const d=this.edge(...arguments);return typeof d!="object"?{label:d}:d}hasEdge(d,h,f){var g=arguments.length===1?c(this._isDirected,arguments[0]):s(this._isDirected,d,h,f);return Object.hasOwn(this._edgeLabels,g)}removeEdge(d,h,f){var g=arguments.length===1?c(this._isDirected,arguments[0]):s(this._isDirected,d,h,f),b=this._edgeObjs[g];return b&&(d=b.v,h=b.w,delete this._edgeLabels[g],delete this._edgeObjs[g],i(this._preds[h],d),i(this._sucs[d],h),delete this._in[h][g],delete this._out[d][g],this._edgeCount--),this}inEdges(d,h){var f=this._in[d];if(f){var g=Object.values(f);return h?g.filter(b=>b.v===h):g}}outEdges(d,h){var f=this._out[d];if(f){var g=Object.values(f);return h?g.filter(b=>b.w===h):g}}nodeEdges(d,h){var f=this.inEdges(d,h);if(f)return f.concat(this.outEdges(d,h))}}function a(u,d){u[d]?u[d]++:u[d]=1}function i(u,d){--u[d]||delete u[d]}function s(u,d,h,f){var g=""+d,b=""+h;if(!u&&g>b){var x=g;g=b,b=x}return g+n+b+n+(f===void 0?e:f)}function l(u,d,h,f){var g=""+d,b=""+h;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 s(u,d.v,d.w,d.name)}return OT=o,OT}var zJ,IJ;function mYe(){return IJ||(IJ=1,zJ="2.2.4"),zJ}var OJ,jJ;function gYe(){return jJ||(jJ=1,OJ={Graph:jT(),version:mYe()}),OJ}var LT,LJ;function yYe(){if(LJ)return LT;LJ=1;var e=jT();LT={write:r,read:a};function r(i){var s={options:{directed:i.isDirected(),multigraph:i.isMultigraph(),compound:i.isCompound()},nodes:n(i),edges:o(i)};return i.graph()!==void 0&&(s.value=structuredClone(i.graph())),s}function n(i){return i.nodes().map(function(s){var l=i.node(s),c=i.parent(s),u={v:s};return l!==void 0&&(u.value=l),c!==void 0&&(u.parent=c),u})}function o(i){return i.edges().map(function(s){var l=i.edge(s),c={v:s.v,w:s.w};return s.name!==void 0&&(c.name=s.name),l!==void 0&&(c.value=l),c})}function a(i){var s=new e(i.options).setGraph(i.value);return i.nodes.forEach(function(l){s.setNode(l.v,l.value),l.parent&&s.setParent(l.v,l.parent)}),i.edges.forEach(function(l){s.setEdge({v:l.v,w:l.w,name:l.name},l.value)}),s}return LT}var BT,BJ;function bYe(){if(BJ)return BT;BJ=1,BT=e;function e(r){var n={},o=[],a;function i(s){Object.hasOwn(n,s)||(n[s]=!0,a.push(s),r.successors(s).forEach(i),r.predecessors(s).forEach(i))}return r.nodes().forEach(function(s){a=[],i(s),a.length&&o.push(a)}),o}return BT}var FT,FJ;function HJ(){if(FJ)return FT;FJ=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,s=i.length;return a[n]=s,i.push({key:n,priority:o}),this._decrease(s),!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,s=n;a>1,!(o[i].priority1;function n(a,i,s,l){return o(a,String(i),s||r,l||function(c){return a.outEdges(c)})}function o(a,i,s,l){var c={},u=new e,d,h,f=function(g){var b=g.v!==d?g.v:g.w,x=c[b],w=s(g),k=h.distance+w;if(w<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+g+" Weight: "+w);k0&&(d=u.removeMin(),h=c[d],h.distance!==Number.POSITIVE_INFINITY);)l(d).forEach(f);return c}return HT}var VT,UJ;function vYe(){if(UJ)return VT;UJ=1;var e=qJ();VT=r;function r(n,o,a){return n.nodes().reduce(function(i,s){return i[s]=e(n,s,o,a),i},{})}return VT}var qT,WJ;function YJ(){if(WJ)return qT;WJ=1,qT=e;function e(r){var n=0,o=[],a={},i=[];function s(l){var c=a[l]={onStack:!0,lowlink:n,index:n++};if(o.push(l),r.successors(l).forEach(function(h){Object.hasOwn(a,h)?a[h].onStack&&(c.lowlink=Math.min(c.lowlink,a[h].index)):(s(h),c.lowlink=Math.min(c.lowlink,a[h].lowlink))}),c.lowlink===c.index){var u=[],d;do d=o.pop(),a[d].onStack=!1,u.push(d);while(l!==d);i.push(u)}}return r.nodes().forEach(function(l){Object.hasOwn(a,l)||s(l)}),i}return qT}var UT,GJ;function xYe(){if(GJ)return UT;GJ=1;var e=YJ();UT=r;function r(n){return e(n).filter(function(o){return o.length>1||o.length===1&&n.hasEdge(o[0],o[0])})}return UT}var WT,XJ;function wYe(){if(XJ)return WT;XJ=1,WT=r;var e=()=>1;function r(o,a,i){return n(o,a||e,i||function(s){return o.outEdges(s)})}function n(o,a,i){var s={},l=o.nodes();return l.forEach(function(c){s[c]={},s[c][c]={distance:0},l.forEach(function(u){c!==u&&(s[c][u]={distance:Number.POSITIVE_INFINITY})}),i(c).forEach(function(u){var d=u.v===c?u.w:u.v,h=a(u);s[c][d]={distance:h,predecessor:c}})}),l.forEach(function(c){var u=s[c];l.forEach(function(d){var h=s[d];l.forEach(function(f){var g=h[c],b=u[f],x=h[f],w=g.distance+b.distance;wa.successors(h):h=>a.neighbors(h),c=s==="post"?r:n,u=[],d={};return i.forEach(h=>{if(!a.hasNode(h))throw new Error("Graph does not have node: "+h);c(h,l,d,u)}),u}function r(a,i,s,l){for(var c=[[a,!1]];c.length>0;){var u=c.pop();u[1]?l.push(u[0]):Object.hasOwn(s,u[0])||(s[u[0]]=!0,c.push([u[0],!0]),o(i(u[0]),d=>c.push([d,!1])))}}function n(a,i,s,l){for(var c=[a];c.length>0;){var u=c.pop();Object.hasOwn(s,u)||(s[u]=!0,l.push(u),o(i(u),d=>c.push(d)))}}function o(a,i){for(var s=a.length;s--;)i(a[s],s,a);return a}return XT}var KT,tee;function _Ye(){if(tee)return KT;tee=1;var e=eee();KT=r;function r(n,o){return e(n,o,"post")}return KT}var ZT,ree;function EYe(){if(ree)return ZT;ree=1;var e=eee();ZT=r;function r(n,o){return e(n,o,"pre")}return ZT}var QT,nee;function SYe(){if(nee)return QT;nee=1;var e=jT(),r=HJ();QT=n;function n(o,a){var i=new e,s={},l=new r,c;function u(h){var f=h.v===c?h.w:h.v,g=l.priority(f);if(g!==void 0){var b=a(h);b0;){if(c=l.removeMin(),Object.hasOwn(s,c))i.setEdge(c,s[c]);else{if(d)throw new Error("Input graph is not connected: "+o);d=!0}o.nodeEdges(c).forEach(u)}return i}return QT}var oee,aee;function CYe(){return aee||(aee=1,oee={components:bYe(),dijkstra:qJ(),dijkstraAll:vYe(),findCycles:xYe(),floydWarshall:wYe(),isAcyclic:kYe(),postorder:_Ye(),preorder:EYe(),prim:SYe(),tarjan:YJ(),topsort:ZJ()}),oee}var JT,iee;function Es(){if(iee)return JT;iee=1;var e=gYe();return JT={Graph:e.Graph,json:yYe(),alg:CYe(),version:e.version},JT}var eA,see;function TYe(){if(see)return eA;see=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,s=i._prev;for(;s!==i;)a.push(JSON.stringify(s,n)),s=s._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 eA=e,eA}var tA,lee;function AYe(){if(lee)return tA;lee=1;let e=Es().Graph,r=TYe();tA=o;let n=()=>1;function o(u,d){if(u.nodeCount()<=1)return[];let h=s(u,d||n);return a(h.graph,h.buckets,h.zeroIdx).flatMap(f=>u.outEdges(f.v,f.w))}function a(u,d,h){let f=[],g=d[d.length-1],b=d[0],x;for(;u.nodeCount();){for(;x=b.dequeue();)i(u,d,h,x);for(;x=g.dequeue();)i(u,d,h,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,h,x,!0));break}}}return f}function i(u,d,h,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,l(d,h,k)}),u.outEdges(f.v).forEach(x=>{let w=u.edge(x),k=x.w,C=u.node(k);C.in-=w,l(d,h,C)}),u.removeNode(f.v),b}function s(u,d){let h=new e,f=0,g=0;u.nodes().forEach(w=>{h.setNode(w,{v:w,in:0,out:0})}),u.edges().forEach(w=>{let k=h.edge(w.v,w.w)||0,C=d(w),_=k+C;h.setEdge(w.v,w.w,_),g=Math.max(g,h.node(w.v).out+=C),f=Math.max(f,h.node(w.w).in+=C)});let b=c(g+f+3).map(()=>new r),x=f+1;return h.nodes().forEach(w=>{l(b,x,h.node(w))}),{graph:h,buckets:b,zeroIdx:x}}function l(u,d,h){h.out?h.in?u[h.out-h.in+d].enqueue(h):u[u.length-1].enqueue(h):u[0].enqueue(h)}function c(u){const d=[];for(let h=0;hM.setNode(O,N.node(O))),N.edges().forEach(O=>{let F=M.edge(O.v,O.w)||{weight:0,minlen:1},L=N.edge(O);M.setEdge(O.v,O.w,{weight:F.weight+L.weight,minlen:Math.max(F.minlen,L.minlen)})}),M}function o(N){let M=new e({multigraph:N.isMultigraph()}).setGraph(N.graph());return N.nodes().forEach(O=>{N.children(O).length||M.setNode(O,N.node(O))}),N.edges().forEach(O=>{M.setEdge(O,N.edge(O))}),M}function a(N){let M=N.nodes().map(O=>{let F={};return N.outEdges(O).forEach(L=>{F[L.w]=(F[L.w]||0)+N.edge(L).weight}),F});return D(N.nodes(),M)}function i(N){let M=N.nodes().map(O=>{let F={};return N.inEdges(O).forEach(L=>{F[L.v]=(F[L.v]||0)+N.edge(L).weight}),F});return D(N.nodes(),M)}function s(N,M){let O=N.x,F=N.y,L=M.x-O,U=M.y-F,P=N.width/2,V=N.height/2;if(!L&&!U)throw new Error("Not possible to find intersection inside of the rectangle");let I,H;return Math.abs(U)*P>Math.abs(L)*V?(U<0&&(V=-V),I=V*L/U,H=V):(L<0&&(P=-P),I=P,H=P*U/L),{x:O+I,y:F+H}}function l(N){let M=T(b(N)+1).map(()=>[]);return N.nodes().forEach(O=>{let F=N.node(O),L=F.rank;L!==void 0&&(M[L][F.order]=O)}),M}function c(N){let M=N.nodes().map(F=>{let L=N.node(F).rank;return L===void 0?Number.MAX_VALUE:L}),O=g(Math.min,M);N.nodes().forEach(F=>{let L=N.node(F);Object.hasOwn(L,"rank")&&(L.rank-=O)})}function u(N){let M=N.nodes().map(P=>N.node(P).rank),O=g(Math.min,M),F=[];N.nodes().forEach(P=>{let V=N.node(P).rank-O;F[V]||(F[V]=[]),F[V].push(P)});let L=0,U=N.graph().nodeRankFactor;Array.from(F).forEach((P,V)=>{P===void 0&&V%U!==0?--L:P!==void 0&&L&&P.forEach(I=>N.node(I).rank+=L)})}function d(N,M,O,F){let L={width:0,height:0};return arguments.length>=4&&(L.rank=O,L.order=F),r(N,"border",L,M)}function h(N,M=f){const O=[];for(let F=0;Ff){const O=h(M);return N.apply(null,O.map(F=>N.apply(null,F)))}else return N.apply(null,M)}function b(N){const M=N.nodes().map(O=>{let F=N.node(O).rank;return F===void 0?Number.MIN_VALUE:F});return g(Math.max,M)}function x(N,M){let O={lhs:[],rhs:[]};return N.forEach(F=>{M(F)?O.lhs.push(F):O.rhs.push(F)}),O}function w(N,M){let O=Date.now();try{return M()}finally{console.log(N+" time: "+(Date.now()-O)+"ms")}}function k(N,M){return M()}let C=0;function _(N){var M=++C;return N+(""+M)}function T(N,M,O=1){M==null&&(M=N,N=0);let F=U=>UMF[M]),Object.entries(N).reduce((F,[L,U])=>(F[L]=O(U,L),F),{})}function D(N,M){return N.reduce((O,F,L)=>(O[F]=M[L],O),{})}return rA}var nA,uee;function RYe(){if(uee)return nA;uee=1;let e=AYe(),r=On().uniqueId;nA={run:n,undo:a};function n(i){(i.graph().acyclicer==="greedy"?e(i,s(i)):o(i)).forEach(l=>{let c=i.edge(l);i.removeEdge(l),c.forwardName=l.name,c.reversed=!0,i.setEdge(l.w,l.v,c,r("rev"))});function s(l){return c=>l.edge(c).weight}}function o(i){let s=[],l={},c={};function u(d){Object.hasOwn(c,d)||(c[d]=!0,l[d]=!0,i.outEdges(d).forEach(h=>{Object.hasOwn(l,h.w)?s.push(h):u(h.w)}),delete l[d])}return i.nodes().forEach(u),s}function a(i){i.edges().forEach(s=>{let l=i.edge(s);if(l.reversed){i.removeEdge(s);let c=l.forwardName;delete l.reversed,delete l.forwardName,i.setEdge(s.w,s.v,l,c)}})}return nA}var oA,dee;function NYe(){if(dee)return oA;dee=1;let e=On();oA={run:r,undo:o};function r(a){a.graph().dummyChains=[],a.edges().forEach(i=>n(a,i))}function n(a,i){let s=i.v,l=a.node(s).rank,c=i.w,u=a.node(c).rank,d=i.name,h=a.edge(i),f=h.labelRank;if(u===l+1)return;a.removeEdge(i);let g,b,x;for(x=0,++l;l{let s=a.node(i),l=s.edgeLabel,c;for(a.setEdge(s.edgeObj,l);s.dummy;)c=a.successors(i)[0],a.removeNode(i),l.points.push({x:s.x,y:s.y}),s.dummy==="edge-label"&&(l.x=s.x,l.y=s.y,l.width=s.width,l.height=s.height),i=c,s=a.node(i)})}return oA}var aA,pee;function Yw(){if(pee)return aA;pee=1;const{applyWithChunking:e}=On();aA={longestPath:r,slack:n};function r(o){var a={};function i(s){var l=o.node(s);if(Object.hasOwn(a,s))return l.rank;a[s]=!0;let c=o.outEdges(s).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),l.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 aA}var iA,hee;function fee(){if(hee)return iA;hee=1;var e=Es().Graph,r=Yw().slack;iA=n;function n(s){var l=new e({directed:!1}),c=s.nodes()[0],u=s.nodeCount();l.setNode(c,{});for(var d,h;o(l,s){var h=d.v,f=u===h?d.w:h;!s.hasNode(f)&&!r(l,d)&&(s.setNode(f,{}),s.setEdge(u,f,{}),c(f))})}return s.nodes().forEach(c),s.nodeCount()}function a(s,l){return l.edges().reduce((c,u)=>{let d=Number.POSITIVE_INFINITY;return s.hasNode(u.v)!==s.hasNode(u.w)&&(d=r(l,u)),dl.node(u).rank+=c)}return iA}var sA,mee;function DYe(){if(mee)return sA;mee=1;var e=fee(),r=Yw().slack,n=Yw().longestPath,o=Es().alg.preorder,a=Es().alg.postorder,i=On().simplify;sA=s,s.initLowLimValues=d,s.initCutValues=l,s.calcCutValue=u,s.leaveEdge=f,s.enterEdge=g,s.exchangeEdges=b;function s(C){C=i(C),n(C);var _=e(C);d(_),l(_,C);for(var T,A;T=f(_);)A=g(_,C,T),b(_,C,T,A)}function l(C,_){var T=a(C,C.nodes());T=T.slice(0,T.length-1),T.forEach(A=>c(C,_,A))}function c(C,_,T){var A=C.node(T),R=A.parent;C.edge(T,R).cutvalue=u(C,_,T)}function u(C,_,T){var A=C.node(T),R=A.parent,D=!0,N=_.edge(T,R),M=0;return N||(D=!1,N=_.edge(R,T)),M=N.weight,_.nodeEdges(T).forEach(O=>{var F=O.v===T,L=F?O.w:O.v;if(L!==R){var U=F===D,P=_.edge(O).weight;if(M+=U?P:-P,w(C,T,L)){var V=C.edge(T,L).cutvalue;M+=U?-V:V}}}),M}function d(C,_){arguments.length<2&&(_=C.nodes()[0]),h(C,{},1,_)}function h(C,_,T,A,R){var D=T,N=C.node(A);return _[A]=!0,C.neighbors(A).forEach(M=>{Object.hasOwn(_,M)||(T=h(C,_,T,M,A))}),N.low=D,N.lim=T++,R?N.parent=R:delete N.parent,T}function f(C){return C.edges().find(_=>C.edge(_).cutvalue<0)}function g(C,_,T){var A=T.v,R=T.w;_.hasEdge(A,R)||(A=T.w,R=T.v);var D=C.node(A),N=C.node(R),M=D,O=!1;D.lim>N.lim&&(M=N,O=!0);var F=_.edges().filter(L=>O===k(C,C.node(L.v),M)&&O!==k(C,C.node(L.w),M));return F.reduce((L,U)=>r(_,U)!_.node(R).parent),A=o(C,T);A=A.slice(1),A.forEach(R=>{var D=C.node(R).parent,N=_.edge(R,D),M=!1;N||(N=_.edge(D,R),M=!0),_.node(R).rank=_.node(D).rank+(M?N.minlen:-N.minlen)})}function w(C,_,T){return C.hasEdge(_,T)}function k(C,_,T){return T.low<=_.lim&&_.lim<=T.lim}return sA}var lA,gee;function $Ye(){if(gee)return lA;gee=1;var e=Yw(),r=e.longestPath,n=fee(),o=DYe();lA=a;function a(c){var u=c.graph().ranker;if(u instanceof Function)return u(c);switch(c.graph().ranker){case"network-simplex":l(c);break;case"tight-tree":s(c);break;case"longest-path":i(c);break;case"none":break;default:l(c)}}var i=r;function s(c){r(c),n(c)}function l(c){o(c)}return lA}var cA,yee;function MYe(){if(yee)return cA;yee=1,cA=e;function e(o){let a=n(o);o.graph().dummyChains.forEach(i=>{let s=o.node(i),l=s.edgeObj,c=r(o,a,l.v,l.w),u=c.path,d=c.lca,h=0,f=u[h],g=!0;for(;i!==l.w;){if(s=o.node(i),g){for(;(f=u[h])!==d&&o.node(f).maxRanku||d>a[h].lim));for(f=h,h=s;(h=o.parent(h))!==f;)c.push(h);return{path:l.concat(c.reverse()),lca:f}}function n(o){let a={},i=0;function s(l){let c=i;o.children(l).forEach(s),a[l]={low:c,lim:i++}}return o.children().forEach(s),a}return cA}var uA,bee;function PYe(){if(bee)return uA;bee=1;let e=On();uA={run:r,cleanup:i};function r(s){let l=e.addDummyNode(s,"root",{},"_root"),c=o(s),u=Object.values(c),d=e.applyWithChunking(Math.max,u)-1,h=2*d+1;s.graph().nestingRoot=l,s.edges().forEach(g=>s.edge(g).minlen*=h);let f=a(s)+1;s.children().forEach(g=>n(s,l,h,f,d,c,g)),s.graph().nodeRankFactor=h}function n(s,l,c,u,d,h,f){let g=s.children(f);if(!g.length){f!==l&&s.setEdge(l,f,{weight:0,minlen:c});return}let b=e.addBorderNode(s,"_bt"),x=e.addBorderNode(s,"_bb"),w=s.node(f);s.setParent(b,f),w.borderTop=b,s.setParent(x,f),w.borderBottom=x,g.forEach(k=>{n(s,l,c,u,d,h,k);let C=s.node(k),_=C.borderTop?C.borderTop:k,T=C.borderBottom?C.borderBottom:k,A=C.borderTop?u:2*u,R=_!==T?1:d-h[f]+1;s.setEdge(b,_,{weight:A,minlen:R,nestingEdge:!0}),s.setEdge(T,x,{weight:A,minlen:R,nestingEdge:!0})}),s.parent(f)||s.setEdge(l,b,{weight:0,minlen:d+h[f]})}function o(s){var l={};function c(u,d){var h=s.children(u);h&&h.length&&h.forEach(f=>c(f,d+1)),l[u]=d}return s.children().forEach(u=>c(u,1)),l}function a(s){return s.edges().reduce((l,c)=>l+s.edge(c).weight,0)}function i(s){var l=s.graph();s.removeNode(l.nestingRoot),delete l.nestingRoot,s.edges().forEach(c=>{var u=s.edge(c);u.nestingEdge&&s.removeEdge(c)})}return uA}var dA,vee;function zYe(){if(vee)return dA;vee=1;let e=On();dA=r;function r(o){function a(i){let s=o.children(i),l=o.node(i);if(s.length&&s.forEach(a),Object.hasOwn(l,"minRank")){l.borderLeft=[],l.borderRight=[];for(let c=l.minRank,u=l.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 s(c){c.nodes().forEach(u=>l(c.node(u))),c.edges().forEach(u=>{let d=c.edge(u);d.points.forEach(l),Object.hasOwn(d,"x")&&l(d)})}function l(c){let u=c.x;c.x=c.y,c.y=u}return pA}var hA,wee;function OYe(){if(wee)return hA;wee=1;let e=On();hA=r;function r(n){let o={},a=n.nodes().filter(u=>!n.children(u).length),i=a.map(u=>n.node(u).rank),s=e.applyWithChunking(Math.max,i),l=e.range(s+1).map(()=>[]);function c(u){if(o[u])return;o[u]=!0;let d=n.node(u);l[d.rank].push(u),n.successors(u).forEach(c)}return a.sort((u,d)=>n.node(u).rank-n.node(d).rank).forEach(c),l}return hA}var fA,kee;function jYe(){if(kee)return fA;kee=1;let e=On().zipObject;fA=r;function r(o,a){let i=0;for(let s=1;sg)),l=a.flatMap(f=>o.outEdges(f).map(g=>({pos:s[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;h+=f.weight*b}),h}return fA}var mA,_ee;function LYe(){if(_ee)return mA;_ee=1,mA=e;function e(r,n=[]){return n.map(o=>{let a=r.inEdges(o);if(a.length){let i=a.reduce((s,l)=>{let c=r.edge(l),u=r.node(l.v);return{sum:s.sum+c.weight*u.order,weight:s.weight+c.weight}},{sum:0,weight:0});return{v:o,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:o}})}return mA}var gA,Eee;function BYe(){if(Eee)return gA;Eee=1;let e=On();gA=r;function r(a,i){let s={};a.forEach((c,u)=>{let d=s[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=s[c.v],d=s[c.w];u!==void 0&&d!==void 0&&(d.indegree++,u.out.push(s[c.w]))});let l=Object.values(s).filter(c=>!c.indegree);return n(l)}function n(a){let i=[];function s(c){return u=>{u.merged||(u.barycenter===void 0||c.barycenter===void 0||u.barycenter>=c.barycenter)&&o(c,u)}}function l(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(s(c)),c.out.forEach(l(c))}return i.filter(c=>!c.merged).map(c=>e.pick(c,["vs","i","barycenter","weight"]))}function o(a,i){let s=0,l=0;a.weight&&(s+=a.barycenter*a.weight,l+=a.weight),i.weight&&(s+=i.barycenter*i.weight,l+=i.weight),a.vs=i.vs.concat(a.vs),a.barycenter=s/l,a.weight=l,a.i=Math.min(i.i,a.i),i.merged=!0}return gA}var yA,See;function FYe(){if(See)return yA;See=1;let e=On();yA=r;function r(a,i){let s=e.partition(a,b=>Object.hasOwn(b,"barycenter")),l=s.lhs,c=s.rhs.sort((b,x)=>x.i-b.i),u=[],d=0,h=0,f=0;l.sort(o(!!i)),f=n(u,c,f),l.forEach(b=>{f+=b.vs.length,u.push(b.vs),d+=b.barycenter*b.weight,h+=b.weight,f=n(u,c,f)});let g={vs:u.flat(!0)};return h&&(g.barycenter=d/h,g.weight=h),g}function n(a,i,s){let l;for(;i.length&&(l=i[i.length-1]).i<=s;)i.pop(),a.push(l.vs),s++;return s}function o(a){return(i,s)=>i.barycenters.barycenter?1:a?s.i-i.i:i.i-s.i}return yA}var bA,Cee;function HYe(){if(Cee)return bA;Cee=1;let e=LYe(),r=BYe(),n=FYe();bA=o;function o(s,l,c,u){let d=s.children(l),h=s.node(l),f=h?h.borderLeft:void 0,g=h?h.borderRight:void 0,b={};f&&(d=d.filter(C=>C!==f&&C!==g));let x=e(s,d);x.forEach(C=>{if(s.children(C.v).length){let _=o(s,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),s.predecessors(f).length)){let C=s.node(s.predecessors(f)[0]),_=s.node(s.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(s,l){s.forEach(c=>{c.vs=c.vs.flatMap(u=>l[u]?l[u].vs:u)})}function i(s,l){s.barycenter!==void 0?(s.barycenter=(s.barycenter*s.weight+l.barycenter*l.weight)/(s.weight+l.weight),s.weight+=l.weight):(s.barycenter=l.barycenter,s.weight=l.weight)}return bA}var vA,Tee;function VYe(){if(Tee)return vA;Tee=1;let e=Es().Graph,r=On();vA=n;function n(a,i,s){let l=o(a),c=new e({compound:!0}).setGraph({root:l}).setDefaultNodeLabel(u=>a.node(u));return a.nodes().forEach(u=>{let d=a.node(u),h=a.parent(u);(d.rank===i||d.minRank<=i&&i<=d.maxRank)&&(c.setNode(u),c.setParent(u,h||l),a[s](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 vA}var xA,Aee;function qYe(){if(Aee)return xA;Aee=1,xA=e;function e(r,n,o){let a={},i;o.forEach(s=>{let l=r.parent(s),c,u;for(;l;){if(c=r.parent(l),c?(u=a[c],a[c]=l):(u=i,i=l),u&&u!==l){n.setEdge(u,l);return}l=c}})}return xA}var wA,Ree;function UYe(){if(Ree)return wA;Ree=1;let e=OYe(),r=jYe(),n=HYe(),o=VYe(),a=qYe(),i=Es().Graph,s=On();wA=l;function l(h,f){if(f&&typeof f.customOrder=="function"){f.customOrder(h,l);return}let g=s.maxRank(h),b=c(h,s.range(1,g+1),"inEdges"),x=c(h,s.range(g-1,-1,-1),"outEdges"),w=e(h);if(d(h,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=s.buildLayerMatrix(h);let A=r(h,w);Ab.node(k).order=C),a(b,g,w.vs)})}function d(h,f){Object.values(f).forEach(g=>g.forEach((b,x)=>h.node(b).order=x))}return wA}var kA,Nee;function WYe(){if(Nee)return kA;Nee=1;let e=Es().Graph,r=On();kA={positionX:g,findType1Conflicts:n,findType2Conflicts:o,addConflict:i,hasConflict:s,verticalAlignment:l,horizontalCompaction:c,alignCoordinates:h,findSmallestWidthAlignment:d,balance:f};function n(w,k){let C={};function _(T,A){let R=0,D=0,N=T.length,M=A[A.length-1];return A.forEach((O,F)=>{let L=a(w,O),U=L?w.node(L).order:N;(L||O===M)&&(A.slice(D,F+1).forEach(P=>{w.predecessors(P).forEach(V=>{let I=w.node(V),H=I.order;(H{O=A[F],w.node(O).dummy&&w.predecessors(O).forEach(L=>{let U=w.node(L);U.dummy&&(U.orderM)&&i(C,L,O)})})}function T(A,R){let D=-1,N,M=0;return R.forEach((O,F)=>{if(w.node(O).dummy==="border"){let L=w.predecessors(O);L.length&&(N=w.node(L[0]).order,_(R,M,F,D,N),M=F,D=N)}_(R,M,R.length,N,A.length)}),R}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 s(w,k,C){if(k>C){let _=k;k=C,C=_}return!!w[k]&&Object.hasOwn(w[k],C)}function l(w,k,C,_){let T={},A={},R={};return k.forEach(D=>{D.forEach((N,M)=>{T[N]=N,A[N]=N,R[N]=M})}),k.forEach(D=>{let N=-1;D.forEach(M=>{let O=_(M);if(O.length){O=O.sort((L,U)=>R[L]-R[U]);let F=(O.length-1)/2;for(let L=Math.floor(F),U=Math.ceil(F);L<=U;++L){let P=O[L];A[M]===M&&NMath.max(L,A[U.v]+R.edge(U)),0)}function O(F){let L=R.outEdges(F).reduce((P,V)=>Math.min(P,A[V.w]-R.edge(V)),Number.POSITIVE_INFINITY),U=w.node(F);L!==Number.POSITIVE_INFINITY&&U.borderType!==D&&(A[F]=Math.max(A[F],L))}return N(M,R.predecessors.bind(R)),N(O,R.successors.bind(R)),Object.keys(_).forEach(F=>A[F]=A[C[F]]),A}function u(w,k,C,_){let T=new e,A=w.graph(),R=b(A.nodesep,A.edgesep,_);return k.forEach(D=>{let N;D.forEach(M=>{let O=C[M];if(T.setNode(O),N){var F=C[N],L=T.edge(F,O);T.setEdge(F,O,Math.max(R(w,M,N),L||0))}N=M})}),T}function d(w,k){return Object.values(k).reduce((C,_)=>{let T=Number.NEGATIVE_INFINITY,A=Number.POSITIVE_INFINITY;Object.entries(_).forEach(([D,N])=>{let M=x(w,D)/2;T=Math.max(N+M,T),A=Math.min(N-M,A)});const R=T-A;return R{["l","r"].forEach(R=>{let D=A+R,N=w[D];if(N===k)return;let M=Object.values(N),O=_-r.applyWithChunking(Math.min,M);R!=="l"&&(O=T-r.applyWithChunking(Math.max,M)),O&&(w[D]=r.mapValues(N,F=>F+O))})})}function f(w,k){return r.mapValues(w.ul,(C,_)=>{if(k)return w[k.toLowerCase()][_];{let T=Object.values(w).map(A=>A[_]).sort((A,R)=>A-R);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(R=>{T=R==="u"?k:Object.values(k).reverse(),["l","r"].forEach(D=>{D==="r"&&(T=T.map(F=>Object.values(F).reverse()));let N=(R==="u"?w.predecessors:w.successors).bind(w),M=l(w,T,C,N),O=c(w,T,M.root,M.align,D==="r");D==="r"&&(O=r.mapValues(O,F=>-F)),_[R+D]=O})});let A=d(w,_);return h(_,A),f(_,w.graph().align)}function b(w,k,C){return(_,T,A)=>{let R=_.node(T),D=_.node(A),N=0,M;if(N+=R.width/2,Object.hasOwn(R,"labelpos"))switch(R.labelpos.toLowerCase()){case"l":M=-R.width/2;break;case"r":M=R.width/2;break}if(M&&(N+=C?M:-M),M=0,N+=(R.dummy?k:w)/2,N+=(D.dummy?k:w)/2,N+=D.width/2,Object.hasOwn(D,"labelpos"))switch(D.labelpos.toLowerCase()){case"l":M=D.width/2;break;case"r":M=-D.width/2;break}return M&&(N+=C?M:-M),M=0,N}}function x(w,k){return w.node(k).width}return kA}var _A,Dee;function YYe(){if(Dee)return _A;Dee=1;let e=On(),r=WYe().positionX;_A=n;function n(a){a=e.asNonCompoundGraph(a),o(a),Object.entries(r(a)).forEach(([i,s])=>a.node(i).x=s)}function o(a){let i=e.buildLayerMatrix(a),s=a.graph().ranksep,l=0;i.forEach(c=>{const u=c.reduce((d,h)=>{const f=a.node(h).height;return d>f?d:f},0);c.forEach(d=>a.node(d).y=l+u/2),l+=u+s})}return _A}var EA,$ee;function GYe(){if($ee)return EA;$ee=1;let e=RYe(),r=NYe(),n=$Ye(),o=On().normalizeRanks,a=MYe(),i=On().removeEmptyRanks,s=PYe(),l=zYe(),c=IYe(),u=UYe(),d=YYe(),h=On(),f=Es().Graph;EA=g;function g(j,Y){let Q=Y&&Y.debugTiming?h.time:h.notime;Q("layout",()=>{let J=Q(" buildLayoutGraph",()=>N(j));Q(" runLayout",()=>b(J,Q,Y)),Q(" updateInputGraph",()=>x(j,J))})}function b(j,Y,Q){Y(" makeSpaceForEdgeLabels",()=>M(j)),Y(" removeSelfEdges",()=>q(j)),Y(" acyclic",()=>e.run(j)),Y(" nestingGraph.run",()=>s.run(j)),Y(" rank",()=>n(h.asNonCompoundGraph(j))),Y(" injectEdgeLabelProxies",()=>O(j)),Y(" removeEmptyRanks",()=>i(j)),Y(" nestingGraph.cleanup",()=>s.cleanup(j)),Y(" normalizeRanks",()=>o(j)),Y(" assignRankMinMax",()=>F(j)),Y(" removeEdgeLabelProxies",()=>L(j)),Y(" normalize.run",()=>r.run(j)),Y(" parentDummyChains",()=>a(j)),Y(" addBorderSegments",()=>l(j)),Y(" order",()=>u(j,Q)),Y(" insertSelfEdges",()=>Z(j)),Y(" adjustCoordinateSystem",()=>c.adjust(j)),Y(" position",()=>d(j)),Y(" positionSelfEdges",()=>W(j)),Y(" removeBorderNodes",()=>H(j)),Y(" normalize.undo",()=>r.undo(j)),Y(" fixupEdgeLabelCoords",()=>V(j)),Y(" undoCoordinateSystem",()=>c.undo(j)),Y(" translateGraph",()=>U(j)),Y(" assignNodeIntersects",()=>P(j)),Y(" reversePoints",()=>I(j)),Y(" acyclic.undo",()=>e.undo(j))}function x(j,Y){j.nodes().forEach(Q=>{let J=j.node(Q),ie=Y.node(Q);J&&(J.x=ie.x,J.y=ie.y,J.rank=ie.rank,Y.children(Q).length&&(J.width=ie.width,J.height=ie.height))}),j.edges().forEach(Q=>{let J=j.edge(Q),ie=Y.edge(Q);J.points=ie.points,Object.hasOwn(ie,"x")&&(J.x=ie.x,J.y=ie.y)}),j.graph().width=Y.graph().width,j.graph().height=Y.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},A=["minlen","weight","width","height","labeloffset"],R={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},D=["labelpos"];function N(j){let Y=new f({multigraph:!0,compound:!0}),Q=K(j.graph());return Y.setGraph(Object.assign({},k,G(Q,w),h.pick(Q,C))),j.nodes().forEach(J=>{let ie=K(j.node(J));const ne=G(ie,_);Object.keys(T).forEach(re=>{ne[re]===void 0&&(ne[re]=T[re])}),Y.setNode(J,ne),Y.setParent(J,j.parent(J))}),j.edges().forEach(J=>{let ie=K(j.edge(J));Y.setEdge(J,Object.assign({},R,G(ie,A),h.pick(ie,D)))}),Y}function M(j){let Y=j.graph();Y.ranksep/=2,j.edges().forEach(Q=>{let J=j.edge(Q);J.minlen*=2,J.labelpos.toLowerCase()!=="c"&&(Y.rankdir==="TB"||Y.rankdir==="BT"?J.width+=J.labeloffset:J.height+=J.labeloffset)})}function O(j){j.edges().forEach(Y=>{let Q=j.edge(Y);if(Q.width&&Q.height){let J=j.node(Y.v),ie={rank:(j.node(Y.w).rank-J.rank)/2+J.rank,e:Y};h.addDummyNode(j,"edge-proxy",ie,"_ep")}})}function F(j){let Y=0;j.nodes().forEach(Q=>{let J=j.node(Q);J.borderTop&&(J.minRank=j.node(J.borderTop).rank,J.maxRank=j.node(J.borderBottom).rank,Y=Math.max(Y,J.maxRank))}),j.graph().maxRank=Y}function L(j){j.nodes().forEach(Y=>{let Q=j.node(Y);Q.dummy==="edge-proxy"&&(j.edge(Q.e).labelRank=Q.rank,j.removeNode(Y))})}function U(j){let Y=Number.POSITIVE_INFINITY,Q=0,J=Number.POSITIVE_INFINITY,ie=0,ne=j.graph(),re=ne.marginx||0,ge=ne.marginy||0;function De(he){let me=he.x,Te=he.y,Ie=he.width,Ze=he.height;Y=Math.min(Y,me-Ie/2),Q=Math.max(Q,me+Ie/2),J=Math.min(J,Te-Ze/2),ie=Math.max(ie,Te+Ze/2)}j.nodes().forEach(he=>De(j.node(he))),j.edges().forEach(he=>{let me=j.edge(he);Object.hasOwn(me,"x")&&De(me)}),Y-=re,J-=ge,j.nodes().forEach(he=>{let me=j.node(he);me.x-=Y,me.y-=J}),j.edges().forEach(he=>{let me=j.edge(he);me.points.forEach(Te=>{Te.x-=Y,Te.y-=J}),Object.hasOwn(me,"x")&&(me.x-=Y),Object.hasOwn(me,"y")&&(me.y-=J)}),ne.width=Q-Y+re,ne.height=ie-J+ge}function P(j){j.edges().forEach(Y=>{let Q=j.edge(Y),J=j.node(Y.v),ie=j.node(Y.w),ne,re;Q.points?(ne=Q.points[0],re=Q.points[Q.points.length-1]):(Q.points=[],ne=ie,re=J),Q.points.unshift(h.intersectRect(J,ne)),Q.points.push(h.intersectRect(ie,re))})}function V(j){j.edges().forEach(Y=>{let Q=j.edge(Y);if(Object.hasOwn(Q,"x"))switch((Q.labelpos==="l"||Q.labelpos==="r")&&(Q.width-=Q.labeloffset),Q.labelpos){case"l":Q.x-=Q.width/2+Q.labeloffset;break;case"r":Q.x+=Q.width/2+Q.labeloffset;break}})}function I(j){j.edges().forEach(Y=>{let Q=j.edge(Y);Q.reversed&&Q.points.reverse()})}function H(j){j.nodes().forEach(Y=>{if(j.children(Y).length){let Q=j.node(Y),J=j.node(Q.borderTop),ie=j.node(Q.borderBottom),ne=j.node(Q.borderLeft[Q.borderLeft.length-1]),re=j.node(Q.borderRight[Q.borderRight.length-1]);Q.width=Math.abs(re.x-ne.x),Q.height=Math.abs(ie.y-J.y),Q.x=ne.x+Q.width/2,Q.y=J.y+Q.height/2}}),j.nodes().forEach(Y=>{j.node(Y).dummy==="border"&&j.removeNode(Y)})}function q(j){j.edges().forEach(Y=>{if(Y.v===Y.w){var Q=j.node(Y.v);Q.selfEdges||(Q.selfEdges=[]),Q.selfEdges.push({e:Y,label:j.edge(Y)}),j.removeEdge(Y)}})}function Z(j){var Y=h.buildLayerMatrix(j);Y.forEach(Q=>{var J=0;Q.forEach((ie,ne)=>{var re=j.node(ie);re.order=ne+J,(re.selfEdges||[]).forEach(ge=>{h.addDummyNode(j,"selfedge",{width:ge.label.width,height:ge.label.height,rank:re.rank,order:ne+ ++J,e:ge.e,label:ge.label},"_se")}),delete re.selfEdges})})}function W(j){j.nodes().forEach(Y=>{var Q=j.node(Y);if(Q.dummy==="selfedge"){var J=j.node(Q.e.v),ie=J.x+J.width/2,ne=J.y,re=Q.x-ie,ge=J.height/2;j.setEdge(Q.e,Q.label),j.removeNode(Y),Q.label.points=[{x:ie+2*re/3,y:ne-ge},{x:ie+5*re/6,y:ne-ge},{x:ie+re,y:ne},{x:ie+5*re/6,y:ne+ge},{x:ie+2*re/3,y:ne+ge}],Q.label.x=Q.x,Q.label.y=Q.y}})}function G(j,Y){return h.mapValues(h.pick(j,Y),Number)}function K(j){var Y={};return j&&Object.entries(j).forEach(([Q,J])=>{typeof Q=="string"&&(Q=Q.toLowerCase()),Y[Q]=J}),Y}return EA}var SA,Mee;function XYe(){if(Mee)return SA;Mee=1;let e=On(),r=Es().Graph;SA={debugOrdering:n};function n(o){let a=e.buildLayerMatrix(o),i=new r({compound:!0,multigraph:!0}).setGraph({});return o.nodes().forEach(s=>{i.setNode(s,{label:s}),i.setParent(s,"layer"+o.node(s).rank)}),o.edges().forEach(s=>i.setEdge(s.v,s.w,{},s.name)),a.forEach((s,l)=>{let c="layer"+l;i.setNode(c,{rank:"same"}),s.reduce((u,d)=>(i.setEdge(u,d,{style:"invis"}),d))}),i}return SA}var Pee,zee;function KYe(){return zee||(zee=1,Pee="1.1.5"),Pee}var Iee,Oee;function ZYe(){return Oee||(Oee=1,Iee={graphlib:Es(),layout:GYe(),debug:XYe(),util:{time:On().time,notime:On().notime},version:KYe()}),Iee}var QYe=ZYe();const Gw=_9(QYe),wo={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 JYe(){const e=new Gw.graphlib.Graph({directed:!0,compound:!0,multigraph:!0});return e.setGraph({...wo.dagre,rankdir:"LR"}),e.setDefaultEdgeLabel(()=>({...wo.edgeLabel})),e.setDefaultNodeLabel(()=>({})),e}const CA="-port";function TA(e,r,n){const o=new Xn(i=>({id:`${e}-${i}`,portId:`${e}-${i}`})),a=Ix(r);for(const i of a.sorted){const s=a.children(i).length>0,l=i.id,c=`${e}-${l}`,u=s?`${c}${CA}`:c;o.set(l,{id:c,portId:u}),n.setNode(c,{column:e,element:i,isCompound:s,portId:u,inPorts:[],outPorts:[],width:wo.nodeWidth,height:wo.nodeHeight}),s&&(n.setNode(u,{element:i,portId:u,isCompound:s,inPorts:[],outPorts:[],width:wo.nodeWidth-wo.dagre.ranksep,height:wo.compound.labelHeight}),n.setParent(u,c));const d=a.parent(i);d&&n.setParent(c,`${e}-${d.id}`)}return{...a,byId:i=>{const s=a.byId(i),l=o.get(s.id);return{element:s,graph:l}},graphNodes:o}}function eGe(e){return Gw.layout(e,{}),r=>{const n=e.node(r),{x:o,y:a,width:i,height:s}=n;return{position:{x:o-Math.round(i/2),y:a-Math.round(s/2)},width:i,height:s}}}var Xw;(e=>{e.Empty="@empty"})(Xw||(Xw={}));function tGe(e,r){const n=JYe(),o=TA("incomers",e.incomers,n),a=TA("subjects",e.subjects,n),i=TA("outgoers",e.outgoers,n),s=[];En(ZRe(En(K1(e.incoming),Sn(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}))),En(K1(e.outgoing),Sn(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})))),Sn(T=>({...T,expr:`${T.source.id}->${T.target.id}`})),xNe(mp("expr")),bNe(T=>{const A=T[0].source,R=T[0].target,D=T[0].expr;n.node(A.id).outPorts.push(R.id),n.node(R.id).inPorts.push(A.id),n.setEdge(A.portId,R.portId,{...wo.edgeLabel},D),s.push({name:D,sourceFqn:T[0].sourceFqn,targetFqn:T[0].targetFqn,source:A.id,sourceHandle:A.id+"_out"+(n.node(A.id).outPorts.length-1),target:R.id,targetHandle:R.id+"_in"+(n.node(R.id).inPorts.length-1),relations:Sn(T,mp("relation"))})}));for(const T of a.graphNodes.values()){const A=T.id,R=n.node(A);if(R.isCompound)continue;const D=Math.max(n.inEdges(A)?.length??0,n.outEdges(A)?.length??0);D>2&&(R.height=R.height+(D-3)*14)}const l=[...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:wo.nodeWidth,height:wo.nodeHeight});for(const A of a.graphNodes.values())n.setEdge(T,A.portId);l.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:wo.nodeWidth,height:wo.nodeHeight});for(const A of a.graphNodes.values())n.setEdge(A.portId,T);l.push({id:T,portId:T})}const c=n.edgeCount();if(c>10)for(const T of n.edges())n.setEdge(T,{...wo.edgeLabel,width:c>25?800:400});const u=eGe(n),d=En(l,hp(T=>T.id===T.portId),V3(T=>[T.id,u(T.id)]));function h(T){return d[T]??=En(n.children(T)??[],hp(A=>!A.endsWith(CA)),Sn(A=>h(A)),Kq(A=>{at(A.length>0,`Node ${T} has no nested nodes`)}),U3((A,R)=>({minY:Math.min(A.minY,R.position.y),maxY:Math.max(A.maxY,R.position.y+R.height)}),{minY:1/0,maxY:-1/0}),({minY:A,maxY:R})=>{const{position:{x:D},width:N}=u(T);return A=A-wo.compound.paddingTop,R=R+wo.compound.paddingBottom,{position:{x:D,y:A},width:N,height:R-A}})}function f(T){const A=n.parent(T);return A?f(A)+1:0}function g(T){const A=n.children(T)??[];return A.length===0?0:1+Math.max(...A.map(g))}const b=(T,A,R)=>En(R,Sn((D,N)=>({port:T+"_"+A+N,topY:h(D).position.y})),W3(mp("topY")),Sn(mp("port")));let x=0,w=0;const[k]=[...a.root];at(k,"Subjects should not be empty");let C=h(a.graphNodes.get(k.id).id);const _=l.map(({id:T})=>{const{element:A,inPorts:R,outPorts:D,column:N}=n.node(T);let{position:M,width:O,height:F}=h(T);if(!A){if(F=Math.min(C.height,300),M.y=C.position.y+C.height/2-F/2,N==="incomers")O=C.position.x-wo.emptyNodeOffset-M.x;else{const q=M.x+O;M.x=C.position.x+C.width+wo.emptyNodeOffset,O=q-M.x}return{id:T,parent:null,x:M.x,y:M.y,title:"empty node",description:or.EMPTY,technology:null,tags:[],links:[],color:"muted",shape:"rectangle",style:{border:"dashed",opacity:50},kind:Xw.Empty,level:0,labelBBox:{x:M.x,y:M.y,width:O,height:F},children:[],width:O,height:F,column:N,ports:{in:[],out:[]},existsInCurrentView:!1}}const L=n.parent(T),U=(n.children(T)??[]).filter(q=>!q.endsWith(CA));x=Math.min(x,M.x),w=Math.min(w,M.y);const P=r?X1(A.scopedViews(),q=>q.id!==r.id)?.id??null:null,V=r?.findNodeWithElement(A.id),I=r&&!V?X1(A.ancestors(),q=>!!r.findNodeWithElement(q.id))?.id:null,H=V??(I&&r?.findNodeWithElement(I));return{id:T,parent:L??null,x:M.x,y:M.y,title:A.title,description:A.summary,technology:A.technology,tags:[...A.tags],links:null,color:H?.color??A.color,shape:V?.shape??A.shape,icon:V?.icon??A.icon??"none",modelRef:A.id,kind:A.kind,level:f(T),labelBBox:{x:M.x,y:M.y,width:O,height:F},style:Eu({...(V??H)?.style,...A.$element.style},["color","shape","icon"]),navigateTo:P,...U.length>0&&{depth:g(T)},children:U,width:O,height:F,column:N,ports:{in:b(T,"in",R),out:b(T,"out",D)},existsInCurrentView:!!V}});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,A)=>{const R=n.edge(A),D=A.name;if(!D)return T;const{name:N,source:M,sourceFqn:O,target:F,targetFqn:L,relations:U,sourceHandle:P,targetHandle:V}=bt(B3(s,W=>W.name===D)),I=q3(U),H=I?.title??"untitled",q=U.length>1,Z=q3(O9(U.flatMap(W=>W.navigateTo?.id?W.navigateTo.id:[])));return T.push(U1({id:N,sourceFqn:O,source:M,sourceHandle:P,targetFqn:L,target:F,targetHandle:V,label:q?`${U.length} relationships`:H,navigateTo:Z,color:I?.color??"gray",existsInCurrentView:!r||U.every(W=>r.includesRelation(W.id)),points:R.points.map(W=>[W.x,W.y]),line:I?.line??"dashed",head:I?.head,tail:I?.tail,relations:U.map(W=>W.id),parent:null})),T},[])}}function rGe(e,r,n){const o=Ko();return E.useMemo(()=>{const a=r?o.findView(r):null,i=tGe(WB(e,o,r,n),n==="view"?a:null);return a&&(n==="global"||!i.subjectExistsInScope)&&(i.edges=i.edges.map(s=>(s.existsInCurrentView=s.relations.every(l=>a.includesRelation(l)),s))),Object.assign(i,{subject:e})},[o,e,r,n,WB])}const Dy=(e,r)=>ex(e.label,r.label);function AA(e){return{label:e.title,value:e.id,children:[...e.children()].map(AA).sort(Dy)}}function nGe(e){const r=Ko();return E.useMemo(()=>e?[...r.view(e).roots()].map(AA).sort(Dy):[...r.roots()].map(AA).sort(Dy),[r,e??null])}const oGe=be({margin:"0"}),aGe=be({_hover:{backgroundColor:"mantine.colors.gray[0]",_dark:{backgroundColor:"mantine.colors.defaultHover",color:"mantine.colors.white"}}}),jee=be({maxHeight:["70vh","calc(100cqh - 70px)"]}),iGe=Object.freeze(Object.defineProperty({__proto__:null,label:aGe,node:oGe,scrollArea:jee},Symbol.toStringTag,{value:"Module"})),sGe=[["path",{d:"M8 9l4 -4l4 4",key:"svg-0"}],["path",{d:"M16 15l-4 4l-4 -4",key:"svg-1"}]],RA=Nt("outline","selector","Selector",sGe),lGe=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}},cGe=()=>{},uGe=E.memo(()=>{const e=Ny(),{subjectId:r,viewId:n,scope:o,subjectExistsInScope:a,enableSelectSubject:i,enableChangeScope:s}=Ww(lGe),l=E.useRef(null),c=E.useRef(null),u=Ko().findElement(r),d=nGe(o==="view"&&n?n:void 0),h=G0({multiple:!1});return h.setHoveredNode=cGe,E.useEffect(()=>{jd(r).reverse().forEach(f=>{h.expand(f)}),h.select(r)},[r]),y.jsxs(pn,{ref:l,gap:"xs",pos:"relative",children:[i&&y.jsxs(pn,{gap:4,wrap:"nowrap",children:[y.jsx(Re,{fz:"xs",fw:"500",style:{whiteSpace:"nowrap",userSelect:"none"},children:"Relationships of"}),y.jsx(Re,{pos:"relative",children:y.jsxs(Rr,{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($u,{children:y.jsx(Kn,{size:"xs",variant:"default",maw:250,rightSection:y.jsx(RA,{size:16}),children:y.jsx(ft,{fz:"xs",fw:"500",truncate:!0,children:u?.title??"???"})})}),y.jsx(fc,{p:0,miw:250,maw:400,children:y.jsx(pa,{scrollbars:"y",type:"never",viewportRef:c,className:jee,children:y.jsx(hm,{allowRangeSelection:!1,selectOnClick:!1,tree:h,data:d,classNames:iGe,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(pn,{gap:2,wrap:"nowrap",...x,py:"3",children:[y.jsx(br,{variant:"subtle",size:18,c:"dimmed",style:{visibility:w?"visible":"hidden"},children:y.jsx(qu,{stroke:3.5,style:{transition:"transform 150ms ease",transform:`rotate(${b?"90deg":"0"})`,width:"80%"}})}),y.jsx(Re,{flex:"1 1 100%",w:"100%",onClick:k=>{k.stopPropagation(),h.select(f.value),h.expand(f.value),e.navigateTo(f.value)},children:y.jsx(ft,{fz:"sm",fw:g?"600":"400",truncate:"end",children:f.label})})]})})})})]})})]}),s&&y.jsxs(pn,{gap:4,wrap:"nowrap",children:[i&&y.jsx(Re,{fz:"xs",fw:"500",...!a&&{c:"dimmed"},style:{whiteSpace:"nowrap",userSelect:"none"},children:"Scope"}),y.jsx("div",{children:y.jsx(co,{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:l.current},children:y.jsx(dm,{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}]})})})]})]})}),Kw=(e,r)=>Math.abs(e-r)<2.5,dGe=(e,r)=>e.id===r.id&<(e.selected??!1,r.selected??!1)&<(e.animated??!1,r.animated??!1)&<(e.source,r.source)&&Kw(e.sourceX,r.sourceX)&&Kw(e.sourceY,r.sourceY)&<(e.sourceHandleId??null,r.sourceHandleId??null)&<(e.sourcePosition,r.sourcePosition)&<(e.target,r.target)&&Kw(e.targetY,r.targetY)&&Kw(e.targetX,r.targetX)&<(e.targetHandleId??null,r.targetHandleId??null)&<(e.targetPosition,r.targetPosition)&<(e.data,r.data);function NA(e){const r=E.memo(e,dGe);return r.displayName=`MemoEdge(${e.displayName||e.name})`,r}function Lee(e,r){return $w(e,r)}const Ni=Lee("button"),Br=Lee("div"),$y=E.forwardRef(({edgeProps:{id:e,data:{label:r,technology:n,hovered:o=!1},selected:a=!1,selectable:i=!1},pointerEvents:s="all",className:l,style:c,children:u,...d},h)=>{const f=q1(e)?SB(e):null,g=oWe({pointerEvents:s,isStepEdge:f!==null,cursor:i||f!==null?"pointer":"default"}),b=ua(r)||ua(n);return y.jsxs(Br,{ref:h,className:et(g.root,"likec4-edge-label",l),"data-edge-id":e,animate:{scale:o&&!a?1.06:1},...d,children:[f!==null&&y.jsx(zr,{className:g.stepNumber,children:f}),b&&y.jsxs(zr,{className:g.labelContents,children:[ua(r)&&y.jsx(zr,{className:et(g.labelText,be({lineClamp:5})),children:r}),ua(n)&&y.jsx(zr,{className:g.labelTechnology,children:"[ "+n+" ]"}),u]})]})});$y.displayName="EdgeLabel";function Zw({icon:e,onClick:r}){return y.jsx(br,{className:et("nodrag nopan",GUe()),onPointerDownCapture:Cn,onClick:r,role:"button",onDoubleClick:Cn,children:e??y.jsx(Ri,{})})}const pGe=".react-flow__edge.selected",hGe=be({_reduceGraphics:{transition:"none"}}),fGe=be({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}}}),mGe=be({fill:"[var(--xy-edge-stroke)]",stroke:"[var(--xy-edge-stroke)]"}),gGe=be({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(${pGe}, [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 My({className:e,component:r="g",selected:n=!1,data:{color:o="gray",hovered:a=!1,active:i=!1,dimmed:s=!1,...l},children:c,style:u}){const d={className:et(e,hGe,"likec4-edge-container"),"data-likec4-color":o,"data-edge-dir":l.dir??"forward","data-edge-active":i,"data-edge-animated":i,"data-likec4-hovered":a,...n&&{"data-likec4-selected":n},...s!==!1&&{"data-likec4-dimmed":s}};return r==="svg"?y.jsx("svg",{style:u,...d,children:c}):(at(r==="g",'EdgeContainer: component must be "g" or "svg"'),y.jsx("g",{style:u,...d,children:c}))}const yGe=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"})}),bGe=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})}),vGe=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})}),xGe=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"})}),wGe=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"})}),kGe=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"})}),_Ge=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})}),EGe=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})}),Bee={Arrow:bGe,Crow:vGe,OArrow:xGe,Open:yGe,Diamond:wGe,ODiamond:kGe,Dot:_Ge,ODot:EGe};function Fee(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:Zi(e)}}const Py=E.forwardRef(({edgeProps:{id:e,data:{line:r,dir:n,tail:o,head:a},selectable:i=!0,style:s,interactionWidth:l},isDragging:c=!1,onEdgePointerDown:u,strokeWidth:d,svgPath:h},f)=>{let g=Fee(o),b=Fee(a??"normal");n==="back"&&([g,b]=[b,g]);const x=g?Bee[g]:null,w=b?Bee[b]:null,k=r==="dotted",C=k||r==="dashed";let _;return k?_="1,8":C&&(_="8,10"),y.jsxs(y.Fragment,{children:[i&&!c&&y.jsx("path",{className:et("react-flow__edge-interaction",be({fill:"none"})),onPointerDown:u,d:h,style:{strokeWidth:l??10,stroke:"currentcolor",strokeOpacity:0}}),y.jsxs("g",{className:mGe,onPointerDown:u,children:[y.jsxs("defs",{children:[x&&y.jsx(x,{id:"start"+e}),w&&y.jsx(w,{id:"end"+e})]}),!c&&y.jsx("path",{className:et("react-flow__edge-path","hide-on-reduced-graphics",fGe),d:h,style:s,strokeLinecap:"round"},"edge-path-bg"),y.jsx("path",{ref:f,className:et("react-flow__edge-path",i&&"react-flow__edge-interaction",gGe),d:h,style:s,strokeWidth:d,strokeLinecap:"round",strokeDasharray:_,markerStart:x?`url(#start${e})`:void 0,markerEnd:w?`url(#end${e})`:void 0},"edge-path")]})]})});Py.displayName="EdgePath";const Hee=e=>{if(e!==void 0)return _u(e)?`${Math.round(e)}px`:e};function Qw({edgeProps:{id:e,selected:r=!1,data:{hovered:n=!1,active:o=!1,dimmed:a=!1,labelBBox:i,color:s="gray"}},labelPosition:l,className:c,style:u,children:d,...h}){let f=Iw(E.useCallback(w=>w.edgeLookup.get(e)?.zIndex??_l.Edge,[e]));(n||o)&&(f+=100);let g=l?.x??i?.x,b=l?.y??i?.y;if(g===void 0||b===void 0)return null;const x=l?.translate;return y.jsx(Dq,{children:y.jsx("div",{...h,className:et("nodrag nopan","likec4-edge-label-container",c),"data-likec4-hovered":n,"data-likec4-color":s,"data-edge-active":o,"data-edge-animated":o,...r!==!1&&{"data-likec4-selected":r},...a!==!1&&{"data-likec4-dimmed":a},style:{...i&&{maxWidth:i.width+18},zIndex:f,...u,transform:`translate(${Hee(g)}, ${Hee(b)}) ${x||""}`},children:d},e)})}const SGe=NA(e=>{const r=Ny(),{enableNavigateTo:n}=_r(),{data:{navigateTo:o,relations:a,existsInCurrentView:i}}=e,[s,l,c]=C3(e),u=Qt(),d=a.length>1||!i,h=d?{...e,data:{...e.data,line:"solid",color:"amber"}}:e;let f=y.jsx($y,{edgeProps:h,className:be({transition:"fast"}),children:n&&o&&y.jsx(Zw,{...e,onClick:g=>{g.stopPropagation(),u.navigateTo(o)}})});return i||(f=y.jsx(co,{color:"orange",c:"black",label:"This relationship is not included in the current view",portalProps:{target:`#${r.rootElementId}`},openDelay:800,children:f})),y.jsxs(My,{...h,children:[y.jsx(Py,{edgeProps:h,svgPath:s,...d&&{strokeWidth:5}}),y.jsx(Qw,{edgeProps:h,labelPosition:{x:l,y:c,translate:"translate(-50%, 0)"},style:{maxWidth:Math.min(Math.abs(e.targetX-e.sourceX-70),250)},children:f})]})}),CGe=be({width:"100%",height:"100%",border:"3px dashed",borderColor:"mantine.colors.defaultBorder",borderRadius:"md",display:"flex",justifyContent:"center",alignItems:"center"});function TGe({data:{column:e}}){return y.jsx(Re,{className:CGe,children:y.jsxs(ft,{c:"dimmed",fz:"lg",fw:500,children:["No ",e==="incomers"?"incoming":"outgoing"]})})}const AGe=e=>e.context.view.id;function Jw(){const e=zp();return fn(e,AGe)}const RGe=e=>e.context.view;function NGe(){const e=zp();return fn(e,RGe,an)}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"}]],zy=Nt("outline","transform","Transform",DGe),$Ge=[["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"}]],zm=Nt("outline","file-symlink","FileSymlink",$Ge),MGe=[["path",{d:"M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11",key:"svg-0"}]],PGe=Nt("outline","bolt","Bolt",MGe),zGe=Zn({position:"absolute",zIndex:1,justifyContent:"center",alignItems:"center",_smallZoom:{display:"none"}}),IGe=Zn({gap:"1.5",justifyContent:"center",alignItems:"center"});function e4({selected:e=!1,data:{hovered:r=!1},buttons:n}){const o=fi();return n.length?y.jsx(zr,{className:zGe,style:{top:"calc(100% - 30px)",transform:"translateX(-50%)",left:"50%",width:"auto",minHeight:30},children:y.jsx(Br,{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:et("nodrag nopan",IGe),children:n.map((a,i)=>y.jsx(br,{component:Ni,className:zw({}),initial:!1,whileTap:{scale:1},whileHover:{scale:1.3},onClick:a.onClick,onDoubleClick:Cn,children:a.icon||y.jsx(PGe,{})},`${o}-${a.key??i}`))},`${o}-action-buttons`)}):null}const OGe=e=>e.context.subject,jGe=e=>{const{enableNavigateTo:r,enableVscode:n}=_r(),o=Qt(),a=Jw(),i=Ny(),s=Ww(OGe),{navigateTo:l,fqn:c}=e.data,u=E.useMemo(()=>{const d=[];return l&&r&&a!==l&&d.push({key:"navigate",icon:y.jsx(Ri,{}),onClick:h=>{h.stopPropagation(),o.navigateTo(l)}}),c!==s&&d.push({key:"relationships",icon:y.jsx(zy,{}),onClick:h=>{h.stopPropagation(),i.navigateTo(c,e.id)}}),n&&d.push({key:"goToSource",icon:y.jsx(zm,{}),onClick:h=>{h.stopPropagation(),o.openSource({element:c})}}),d},[l,r,a,c,s,n,o,i,e.id]);return y.jsx(e4,{buttons:u,...e})};function Iy({nodeProps:{data:{hovered:e=!1,dimmed:r=!1,...n}},className:o,children:a,style:i,...s}){let l=us(n.style.opacity??100,{min:0,max:100});const c=l<99,u=65,d=u+us((100-u)*(l/100),{min:0,max:100-u}),h=YUe({isTransparent:c,inverseColor:l<60,borderStyle:n.style.border??(c?"dashed":"none")}),f=us(n.depth??1,{min:1,max:5});return y.jsx(Br,{className:et(h,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":`${l}%`},...s,children:a})}function Oy({data:e}){const r=Xx({element:e,className:"likec4-compound-icon"});return y.jsxs("div",{className:"likec4-compound-title-container",children:[r,y.jsx(ft,{component:"h3",className:"likec4-compound-title",truncate:"end",children:e.title})]})}const Vee=o0({base:{transitionDuration:"normal"},variants:{delay:{true:{transitionDelay:{base:"0.2s",_hover:"0s"}}}}}),LGe=[["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"}]],DA=Nt("outline","id","Id",LGe);function qee({data:{hovered:e=!1},icon:r,onClick:n}){const o=W9(e,e?130:0)[0]&&e;return y.jsx(Br,{initial:!1,animate:{scale:o?1.2:1},whileHover:{scale:1.4},whileTap:{scale:1},className:"likec4-compound-details details-button",children:y.jsx(br,{className:et("nodrag nopan",Vee({delay:e&&!o}),zw({variant:"transparent"})),onClick:n,onDoubleClick:Cn,children:r??y.jsx(DA,{stroke:1.8,style:{width:"75%"}})})})}const BGe=be({position:"relative",width:"full",height:"full",padding:"0",margin:"0",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",_focusVisible:{outline:"none"},_whenSelectable:{pointerEvents:"all",_before:{content:'" "',position:"absolute",top:"[calc(100% - 4px)]",left:"0",width:"full",height:"24px",background:"transparent",pointerEvents:"all"}},_reduceGraphicsOnPan:{_before:{display:"none"}},":where(.react-flow__node.selectable:not(.dragging)) &":{cursor:"pointer"}}),Im=E.forwardRef(({nodeProps:{selected:e=!1,selectable:r=!1,data:{hovered:n=!1,dimmed:o=!1,...a}},className:i,style:s,children:l,...c},u)=>{let d=1;switch(!0){case n:d=1.05;break;case e:d=1.02;break}const{size:h,padding:f,textSize:g}=Jv(a.style??{});return y.jsx(Br,{ref:u,className:et(BGe,"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":h,"data-likec4-spacing":f,"data-likec4-text-size":g,...o!==!1&&{"data-likec4-dimmed":o},style:{...s},...c,children:l})});Im.displayName="ElementNodeContainer";function Uee(e,r,n=.065){const o=Math.round(e/2),a=o,i=Uu(n*o),s=r-2*i;return{path:` M ${e},${i} - a ${a},${i} 0,0,0 ${-e} 0 - l 0,${s} - a ${a},${i} 0,0,0 ${e} 0 - l 0,${-s} +`).map(l=>l.trim()).filter(Boolean):[r],o=n.length>1,[i,a]=S.useState(!1);return y.jsxs(y.Fragment,{children:[o?y.jsx(pr,{onClick:()=>{a(!i)},className:fe({fontSize:"xs",color:"mantine.colors.dimmed",justifySelf:"end",textAlign:"right",userSelect:"none",display:"flex",alignItems:"center",justifyContent:"flex-end",gap:"xs",padding:"[4px 8px]",borderRadius:"sm",whiteSpace:"nowrap",transition:"all 150ms ease",_hover:{backgroundColor:"mantine.colors.gray[1]",color:"mantine.colors.primary[6]",_dark:{backgroundColor:"mantine.colors.dark[7]",color:"mantine.colors.primary[4]"}}}),children:y.jsxs(Js,{align:"center",gap:"xs",children:[y.jsxs(it,{component:"span",size:"xs",fw:700,children:[e,":"]}),y.jsx(it,{component:"span",className:fe({fontSize:"xs",fontWeight:500,color:"mantine.colors.gray[6]",backgroundColor:"mantine.colors.gray[1]",padding:"[1px 4px]",borderRadius:"xs",_dark:{color:"mantine.colors.dark[2]",backgroundColor:"mantine.colors.dark[6]"}}),children:n.length}),i?y.jsx(a$,{size:12}):y.jsx(Dd,{size:12})]})}):y.jsxs(it,{component:"div",className:fe({fontSize:"xs",color:"mantine.colors.dimmed",justifySelf:"end",textAlign:"right",userSelect:"none",whiteSpace:"nowrap",padding:"[4px 8px]",fontWeight:700}),children:[e,":"]}),y.jsx(Se,{className:fe({justifySelf:"stretch",alignSelf:"start"}),children:o?y.jsx(cqe,{values:n,isExpanded:i}):y.jsx(Se,{className:fe({minHeight:"32px",display:"flex",alignItems:"center"}),children:y.jsx(hQ,{value:n[0]||"",isExpanded:i})})})]})}const uqe=fe({"&[data-level='1']":{marginBottom:"sm"}}),pqe=fe({cursor:"default",marginTop:"0",marginBottom:"0"}),fQ=fe({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)"}}}),hqe=Ge(fQ),fqe=Ge(fQ,fe({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}})),gqe=[["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"}]],r0=wt("outline","info-circle","InfoCircle",gqe),mqe=[["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"}]],yqe=wt("outline","target","Target",mqe),vqe=[["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"}]],ba=wt("outline","zoom-scan","ZoomScan",vqe),bqe=({node:e})=>y.jsxs(en,{className:hqe,gap:6,align:"baseline",wrap:"nowrap",children:[y.jsxs(it,{component:"div",fz:11,c:"dimmed",children:[e.kind,":"]}),y.jsx(it,{component:"div",fz:"sm",fw:"500",children:e.title})]}),xqe=({instance:e})=>{const r=Mt(),n=r.currentView.id,o=[...e.views()];return y.jsxs(en,{className:fqe,gap:4,children:[y.jsx(Ti,{color:"gray",variant:"transparent",size:"xs",flex:0,children:y.jsx(yqe,{stroke:1.2})}),y.jsx(it,{component:"div",fz:"sm",fw:"500",flex:"1 1 100%",children:e.title}),y.jsxs(Se,{onClick:nn,pos:"relative","data-no-transform":!0,flex:0,children:[o.length===0&&y.jsx(Vn,{size:"compact-xs",variant:"transparent",color:"gray",disabled:!0,children:"no views"}),o.length>0&&y.jsxs(tn,{shadow:"md",withinPortal:!1,position:"bottom-start",offset:0,closeOnClickOutside:!0,clickOutsideEvents:["pointerdown","mousedown","click"],closeOnEscape:!0,trapFocus:!0,children:[y.jsx(tn.Target,{children:y.jsxs(Vn,{size:"compact-xs",variant:"subtle",color:"gray",children:[o.length," view",o.length>1?"s":""]})}),y.jsx(tn.Dropdown,{children:o.map(i=>y.jsx(tn.Item,{px:"xs",py:4,disabled:i.id===n,leftSection:y.jsx(Ti,{size:"sm",variant:"transparent",color:"gray",children:y.jsx(ba,{stroke:1.8,opacity:.65})}),styles:{itemSection:{marginInlineEnd:$e(8)}},onClick:a=>{a.stopPropagation(),r.navigateTo(i.id)},children:i.title},i.id))})]})]})]})},wqe=()=>{},kqe=S.memo(({elementFqn:e})=>{const r=Fo().element(e),n=[...r.deployments()],o=_y({multiple:!1});o.setHoveredNode=wqe;const i=S.useMemo(()=>{let a=[],l=new Map;for(const s of r.deployments()){let c={label:y.jsx(xqe,{instance:s}),value:s.id,type:"instance",children:[]};l.set(s.id,c);let d=s.parent;for(;d;){let u=l.get(d.id);if(u){u.children.push(c);break}u={label:y.jsx(bqe,{node:d}),value:d.id,type:"node",children:[c]},l.set(d.id,u),c=u,d=d.parent}!d&&!a.includes(c)&&a.push(c)}return a},[r]);return S.useEffect(()=>{o.expandAllNodes()},[i]),n.length===0?y.jsx(f3,{variant:"light",color:"gray",icon:y.jsx(r0,{}),children:"This element does not have any deployments"}):y.jsx(Ff,{levelOffset:"sm",allowRangeSelection:!1,classNames:{node:uqe,label:pqe},styles:{root:{position:"relative",width:"min-content",minWidth:300}},data:i,tree:o,renderNode:({node:a,selected:l,elementProps:s,hasChildren:c})=>y.jsx(Se,{...s,style:{...!c&&{marginBottom:$e(4)}},children:c?y.jsx(Vn,{fullWidth:!0,color:"gray",variant:l?"transparent":"subtle",size:"xs",justify:"flex-start",styles:{root:{position:"unset",paddingInlineStart:$e(16)}},children:a.label}):a.label})})}),_qe=()=>{},gQ=(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]||Ir(o,r[n])))return!1;return!0};function $p(e,r,n,o){const i=kL();Zke(i?_qe:e,r,gQ,o)}function Sqe(){const e=typeof window<"u"&&typeof window.devicePixelRatio=="number"?window.devicePixelRatio:1;return ta(Math.floor(e),{min:1,max:4})}let m2;function Pd(e){return m2??=Sqe(),m2<2?Math.round(e):Math.round(e*m2)/m2}function Eqe(e){switch(e){case"dots":return Qa.Dots;case"lines":return Qa.Lines;case"cross":return Qa.Cross;default:Qo(e)}}const Cqe=(e,r)=>typeof e.background=="string"&&typeof r.background=="string"?e.background===r.background:tt(e.background,r.background),mQ=S.memo(({background:e})=>typeof e=="string"?y.jsx(bq,{variant:Eqe(e),size:2,gap:20}):y.jsx(bq,{...e}),Cqe);mQ.displayName="Background";const yQ=(e,r)=>(e.data.dimmed??!1)===r?e:{...e,data:{...e.data,dimmed:r}};function $qe(e,r){return r!==void 0?yQ(e,r):n=>yQ(n,e)}const vQ=(e,r)=>(e.data.hovered??!1)===r?e:{...e,data:{...e.data,hovered:r}};function Rqe(e,r){return r!==void 0?vQ(e,r):n=>vQ(n,e)}function bQ(e,r){return Mq(e.data,r)?e:{...e,data:{...e.data,...r}}}function zqe(e,r){return r!==void 0?bQ(e,r):n=>bQ(n,e)}const tr={setDimmed:$qe,setHovered:Rqe,setData:zqe},lc={Compound:1,Edge:20,Element:20,Max:30},xa=.05,l$=3,y2={default:"16px",withControls:{top:"58px",left:"16px",right:"16px",bottom:"16px"}};function s$({nodes:e,edges:r,onEdgesChange:n,onNodesChange:o,className:i,pannable:a=!0,zoomable:l=!0,nodesSelectable:s=!0,nodesDraggable:c=!1,background:d="dots",children:u,colorMode:p,fitViewPadding:f=0,fitView:m=!0,zoomOnDoubleClick:v=!1,onViewportResize:w,onMoveEnd:x,onNodeMouseEnter:k,onNodeMouseLeave:C,onEdgeMouseEnter:_,onEdgeMouseLeave:$,...R}){const T=S.useMemo(()=>({minZoom:xa,maxZoom:1,padding:f,includeHiddenNodes:!1}),[f]),A=d!=="transparent"&&d!=="solid",z=TVe(),j=JC(),{colorScheme:I}=gTe();return p||(p=I==="auto"?"system":I),y.jsxs(zEe,{colorMode:p,nodes:e,edges:r,className:Ge(d==="transparent"&&"bg-transparent",i),...z&&{"data-likec4-zoom-small":!0},zoomOnPinch:l,zoomOnScroll:!a&&l,...!l&&{zoomActivationKeyCode:null},zoomOnDoubleClick:v,maxZoom:l?l$:1,minZoom:l?xa:1,fitView:m,fitViewOptions:T,preventScrolling:l||a,defaultMarkerColor:"var(--xy-edge-stroke)",noDragClassName:"nodrag",noPanClassName:"nopan",noWheelClassName:"nowheel",panOnScroll:a,panOnDrag:a,...!a&&{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:at((N,{x:L,y:H,zoom:P})=>{const V=Pd(L),B=Pd(H);(L!==V||H!==B)&&j.setState({transform:[V,B,P]}),x?.(N,{x:V,y:B,zoom:P})}),onNodeMouseEnter:at((N,L)=>{if(k){k(N,L);return}o([{id:L.id,type:"replace",item:tr.setHovered(L,!0)}])}),onNodeMouseLeave:at((N,L)=>{if(C){C(N,L);return}o([{id:L.id,type:"replace",item:tr.setHovered(L,!1)}])}),onEdgeMouseEnter:at((N,L)=>{if(_){_(N,L);return}n([{id:L.id,type:"replace",item:tr.setHovered(L,!0)}])}),onEdgeMouseLeave:at((N,L)=>{if($){$(N,L);return}n([{id:L.id,type:"replace",item:tr.setHovered(L,!1)}])}),onNodeDoubleClick:nn,onEdgeDoubleClick:nn,...R,children:[A&&y.jsx(mQ,{background:d}),w&&y.jsx(jqe,{onViewportResize:w}),u]})}const Tqe=({width:e,height:r})=>(e||1)*(r||1),jqe=({onViewportResize:e})=>{const r=Dt(Tqe);return $p(e,[r]),null},xQ=S.createContext(null);function wQ(){return gt(S.useContext(xQ),"No RelationshipsBrowserActorContext")}function v2(e,r=Ir){const n=wQ();return pn(n,e,r)}function n0(){const e=wQ();return S.useMemo(()=>({actor:e,get rootElementId(){return`relationships-browser-${e.sessionId.replaceAll(":","_")}`},getState:()=>e.getSnapshot().context,send:e.send,updateView:r=>{e.getSnapshot().status==="active"&&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 c$,kQ;function d$(){if(kQ)return c$;kQ=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(u){u&&(this._isDirected=Object.hasOwn(u,"directed")?u.directed:!0,this._isMultigraph=Object.hasOwn(u,"multigraph")?u.multigraph:!1,this._isCompound=Object.hasOwn(u,"compound")?u.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[r]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(u){return this._label=u,this}graph(){return this._label}setDefaultNodeLabel(u){return this._defaultNodeLabelFn=u,typeof u!="function"&&(this._defaultNodeLabelFn=()=>u),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var u=this;return this.nodes().filter(p=>Object.keys(u._in[p]).length===0)}sinks(){var u=this;return this.nodes().filter(p=>Object.keys(u._out[p]).length===0)}setNodes(u,p){var f=arguments,m=this;return u.forEach(function(v){f.length>1?m.setNode(v,p):m.setNode(v)}),this}setNode(u,p){return Object.hasOwn(this._nodes,u)?(arguments.length>1&&(this._nodes[u]=p),this):(this._nodes[u]=arguments.length>1?p:this._defaultNodeLabelFn(u),this._isCompound&&(this._parent[u]=r,this._children[u]={},this._children[r][u]=!0),this._in[u]={},this._preds[u]={},this._out[u]={},this._sucs[u]={},++this._nodeCount,this)}node(u){return this._nodes[u]}hasNode(u){return Object.hasOwn(this._nodes,u)}removeNode(u){var p=this;if(Object.hasOwn(this._nodes,u)){var f=m=>p.removeEdge(p._edgeObjs[m]);delete this._nodes[u],this._isCompound&&(this._removeFromParentsChildList(u),delete this._parent[u],this.children(u).forEach(function(m){p.setParent(m)}),delete this._children[u]),Object.keys(this._in[u]).forEach(f),delete this._in[u],delete this._preds[u],Object.keys(this._out[u]).forEach(f),delete this._out[u],delete this._sucs[u],--this._nodeCount}return this}setParent(u,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===u)throw new Error("Setting "+p+" as parent of "+u+" would create a cycle");this.setNode(p)}return this.setNode(u),this._removeFromParentsChildList(u),this._parent[u]=p,this._children[p][u]=!0,this}_removeFromParentsChildList(u){delete this._children[this._parent[u]][u]}parent(u){if(this._isCompound){var p=this._parent[u];if(p!==r)return p}}children(u=r){if(this._isCompound){var p=this._children[u];if(p)return Object.keys(p)}else{if(u===r)return this.nodes();if(this.hasNode(u))return[]}}predecessors(u){var p=this._preds[u];if(p)return Object.keys(p)}successors(u){var p=this._sucs[u];if(p)return Object.keys(p)}neighbors(u){var p=this.predecessors(u);if(p){const m=new Set(p);for(var f of this.successors(u))m.add(f);return Array.from(m.values())}}isLeaf(u){var p;return this.isDirected()?p=this.successors(u):p=this.neighbors(u),p.length===0}filterNodes(u){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([w,x]){u(w)&&p.setNode(w,x)}),Object.values(this._edgeObjs).forEach(function(w){p.hasNode(w.v)&&p.hasNode(w.w)&&p.setEdge(w,f.edge(w))});var m={};function v(w){var x=f.parent(w);return x===void 0||p.hasNode(x)?(m[w]=x,x):x in m?m[x]:v(x)}return this._isCompound&&p.nodes().forEach(w=>p.setParent(w,v(w))),p}setDefaultEdgeLabel(u){return this._defaultEdgeLabelFn=u,typeof u!="function"&&(this._defaultEdgeLabelFn=()=>u),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(u,p){var f=this,m=arguments;return u.reduce(function(v,w){return m.length>1?f.setEdge(v,w,p):f.setEdge(v,w),w}),this}setEdge(){var u,p,f,m,v=!1,w=arguments[0];typeof w=="object"&&w!==null&&"v"in w?(u=w.v,p=w.w,f=w.name,arguments.length===2&&(m=arguments[1],v=!0)):(u=w,p=arguments[1],f=arguments[3],arguments.length>2&&(m=arguments[2],v=!0)),u=""+u,p=""+p,f!==void 0&&(f=""+f);var x=l(this._isDirected,u,p,f);if(Object.hasOwn(this._edgeLabels,x))return v&&(this._edgeLabels[x]=m),this;if(f!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(u),this.setNode(p),this._edgeLabels[x]=v?m:this._defaultEdgeLabelFn(u,p,f);var k=s(this._isDirected,u,p,f);return u=k.v,p=k.w,Object.freeze(k),this._edgeObjs[x]=k,i(this._preds[p],u),i(this._sucs[u],p),this._in[p][x]=k,this._out[u][x]=k,this._edgeCount++,this}edge(u,p,f){var m=arguments.length===1?c(this._isDirected,arguments[0]):l(this._isDirected,u,p,f);return this._edgeLabels[m]}edgeAsObj(){const u=this.edge(...arguments);return typeof u!="object"?{label:u}:u}hasEdge(u,p,f){var m=arguments.length===1?c(this._isDirected,arguments[0]):l(this._isDirected,u,p,f);return Object.hasOwn(this._edgeLabels,m)}removeEdge(u,p,f){var m=arguments.length===1?c(this._isDirected,arguments[0]):l(this._isDirected,u,p,f),v=this._edgeObjs[m];return v&&(u=v.v,p=v.w,delete this._edgeLabels[m],delete this._edgeObjs[m],a(this._preds[p],u),a(this._sucs[u],p),delete this._in[p][m],delete this._out[u][m],this._edgeCount--),this}inEdges(u,p){var f=this._in[u];if(f){var m=Object.values(f);return p?m.filter(v=>v.v===p):m}}outEdges(u,p){var f=this._out[u];if(f){var m=Object.values(f);return p?m.filter(v=>v.w===p):m}}nodeEdges(u,p){var f=this.inEdges(u,p);if(f)return f.concat(this.outEdges(u,p))}}function i(d,u){d[u]?d[u]++:d[u]=1}function a(d,u){--d[u]||delete d[u]}function l(d,u,p,f){var m=""+u,v=""+p;if(!d&&m>v){var w=m;m=v,v=w}return m+n+v+n+(f===void 0?e:f)}function s(d,u,p,f){var m=""+u,v=""+p;if(!d&&m>v){var w=m;m=v,v=w}var x={v:m,w:v};return f&&(x.name=f),x}function c(d,u){return l(d,u.v,u.w,u.name)}return c$=o,c$}var _Q,SQ;function Aqe(){return SQ||(SQ=1,_Q="2.2.4"),_Q}var EQ,CQ;function Dqe(){return CQ||(CQ=1,EQ={Graph:d$(),version:Aqe()}),EQ}var u$,$Q;function Pqe(){if($Q)return u$;$Q=1;var e=d$();u$={write:r,read:i};function r(a){var l={options:{directed:a.isDirected(),multigraph:a.isMultigraph(),compound:a.isCompound()},nodes:n(a),edges:o(a)};return a.graph()!==void 0&&(l.value=structuredClone(a.graph())),l}function n(a){return a.nodes().map(function(l){var s=a.node(l),c=a.parent(l),d={v:l};return s!==void 0&&(d.value=s),c!==void 0&&(d.parent=c),d})}function o(a){return a.edges().map(function(l){var s=a.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 i(a){var l=new e(a.options).setGraph(a.value);return a.nodes.forEach(function(s){l.setNode(s.v,s.value),s.parent&&l.setParent(s.v,s.parent)}),a.edges.forEach(function(s){l.setEdge({v:s.v,w:s.w,name:s.name},s.value)}),l}return u$}var p$,RQ;function Mqe(){if(RQ)return p$;RQ=1,p$=e;function e(r){var n={},o=[],i;function a(l){Object.hasOwn(n,l)||(n[l]=!0,i.push(l),r.successors(l).forEach(a),r.predecessors(l).forEach(a))}return r.nodes().forEach(function(l){i=[],a(l),i.length&&o.push(i)}),o}return p$}var h$,zQ;function TQ(){if(zQ)return h$;zQ=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 i=this._keyIndices;if(n=String(n),!Object.hasOwn(i,n)){var a=this._arr,l=a.length;return i[n]=l,a.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 i=this._keyIndices[n];if(o>this._arr[i].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[i].priority+" New: "+o);this._arr[i].priority=o,this._decrease(i)}_heapify(n){var o=this._arr,i=2*n,a=i+1,l=n;i>1,!(o[a].priority1;function n(i,a,l,s){return o(i,String(a),l||r,s||function(c){return i.outEdges(c)})}function o(i,a,l,s){var c={},d=new e,u,p,f=function(m){var v=m.v!==u?m.v:m.w,w=c[v],x=l(m),k=p.distance+x;if(x<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+m+" Weight: "+x);k0&&(u=d.removeMin(),p=c[u],p.distance!==Number.POSITIVE_INFINITY);)s(u).forEach(f);return c}return f$}var g$,DQ;function Nqe(){if(DQ)return g$;DQ=1;var e=AQ();g$=r;function r(n,o,i){return n.nodes().reduce(function(a,l){return a[l]=e(n,l,o,i),a},{})}return g$}var m$,PQ;function MQ(){if(PQ)return m$;PQ=1,m$=e;function e(r){var n=0,o=[],i={},a=[];function l(s){var c=i[s]={onStack:!0,lowlink:n,index:n++};if(o.push(s),r.successors(s).forEach(function(p){Object.hasOwn(i,p)?i[p].onStack&&(c.lowlink=Math.min(c.lowlink,i[p].index)):(l(p),c.lowlink=Math.min(c.lowlink,i[p].lowlink))}),c.lowlink===c.index){var d=[],u;do u=o.pop(),i[u].onStack=!1,d.push(u);while(s!==u);a.push(d)}}return r.nodes().forEach(function(s){Object.hasOwn(i,s)||l(s)}),a}return m$}var y$,NQ;function Bqe(){if(NQ)return y$;NQ=1;var e=MQ();y$=r;function r(n){return e(n).filter(function(o){return o.length>1||o.length===1&&n.hasEdge(o[0],o[0])})}return y$}var v$,BQ;function Iqe(){if(BQ)return v$;BQ=1,v$=r;var e=()=>1;function r(o,i,a){return n(o,i||e,a||function(l){return o.outEdges(l)})}function n(o,i,a){var l={},s=o.nodes();return s.forEach(function(c){l[c]={},l[c][c]={distance:0},s.forEach(function(d){c!==d&&(l[c][d]={distance:Number.POSITIVE_INFINITY})}),a(c).forEach(function(d){var u=d.v===c?d.w:d.v,p=i(d);l[c][u]={distance:p,predecessor:c}})}),s.forEach(function(c){var d=l[c];s.forEach(function(u){var p=l[u];s.forEach(function(f){var m=p[c],v=d[f],w=p[f],x=m.distance+v.distance;xi.successors(p):p=>i.neighbors(p),c=l==="post"?r:n,d=[],u={};return a.forEach(p=>{if(!i.hasNode(p))throw new Error("Graph does not have node: "+p);c(p,s,u,d)}),d}function r(i,a,l,s){for(var c=[[i,!1]];c.length>0;){var d=c.pop();d[1]?s.push(d[0]):Object.hasOwn(l,d[0])||(l[d[0]]=!0,c.push([d[0],!0]),o(a(d[0]),u=>c.push([u,!1])))}}function n(i,a,l,s){for(var c=[i];c.length>0;){var d=c.pop();Object.hasOwn(l,d)||(l[d]=!0,s.push(d),o(a(d),u=>c.push(u)))}}function o(i,a){for(var l=i.length;l--;)a(i[l],l,i);return i}return w$}var k$,qQ;function Lqe(){if(qQ)return k$;qQ=1;var e=VQ();k$=r;function r(n,o){return e(n,o,"post")}return k$}var _$,HQ;function Fqe(){if(HQ)return _$;HQ=1;var e=VQ();_$=r;function r(n,o){return e(n,o,"pre")}return _$}var S$,UQ;function Vqe(){if(UQ)return S$;UQ=1;var e=d$(),r=TQ();S$=n;function n(o,i){var a=new e,l={},s=new r,c;function d(p){var f=p.v===c?p.w:p.v,m=s.priority(f);if(m!==void 0){var v=i(p);v0;){if(c=s.removeMin(),Object.hasOwn(l,c))a.setEdge(c,l[c]);else{if(u)throw new Error("Input graph is not connected: "+o);u=!0}o.nodeEdges(c).forEach(d)}return a}return S$}var WQ,GQ;function qqe(){return GQ||(GQ=1,WQ={components:Mqe(),dijkstra:AQ(),dijkstraAll:Nqe(),findCycles:Bqe(),floydWarshall:Iqe(),isAcyclic:Oqe(),postorder:Lqe(),preorder:Fqe(),prim:Vqe(),tarjan:MQ(),topsort:OQ()}),WQ}var E$,YQ;function cl(){if(YQ)return E$;YQ=1;var e=Dqe();return E$={Graph:e.Graph,json:Pqe(),alg:qqe(),version:e.version},E$}var C$,XQ;function Hqe(){if(XQ)return C$;XQ=1;class e{constructor(){let i={};i._next=i._prev=i,this._sentinel=i}dequeue(){let i=this._sentinel,a=i._prev;if(a!==i)return r(a),a}enqueue(i){let a=this._sentinel;i._prev&&i._next&&r(i),i._next=a._next,a._next._prev=i,a._next=i,i._prev=a}toString(){let i=[],a=this._sentinel,l=a._prev;for(;l!==a;)i.push(JSON.stringify(l,n)),l=l._prev;return"["+i.join(", ")+"]"}}function r(o){o._prev._next=o._next,o._next._prev=o._prev,delete o._next,delete o._prev}function n(o,i){if(o!=="_next"&&o!=="_prev")return i}return C$=e,C$}var $$,KQ;function Uqe(){if(KQ)return $$;KQ=1;let e=cl().Graph,r=Hqe();$$=o;let n=()=>1;function o(d,u){if(d.nodeCount()<=1)return[];let p=l(d,u||n);return i(p.graph,p.buckets,p.zeroIdx).flatMap(f=>d.outEdges(f.v,f.w))}function i(d,u,p){let f=[],m=u[u.length-1],v=u[0],w;for(;d.nodeCount();){for(;w=v.dequeue();)a(d,u,p,w);for(;w=m.dequeue();)a(d,u,p,w);if(d.nodeCount()){for(let x=u.length-2;x>0;--x)if(w=u[x].dequeue(),w){f=f.concat(a(d,u,p,w,!0));break}}}return f}function a(d,u,p,f,m){let v=m?[]:void 0;return d.inEdges(f.v).forEach(w=>{let x=d.edge(w),k=d.node(w.v);m&&v.push({v:w.v,w:w.w}),k.out-=x,s(u,p,k)}),d.outEdges(f.v).forEach(w=>{let x=d.edge(w),k=w.w,C=d.node(k);C.in-=x,s(u,p,C)}),d.removeNode(f.v),v}function l(d,u){let p=new e,f=0,m=0;d.nodes().forEach(x=>{p.setNode(x,{v:x,in:0,out:0})}),d.edges().forEach(x=>{let k=p.edge(x.v,x.w)||0,C=u(x),_=k+C;p.setEdge(x.v,x.w,_),m=Math.max(m,p.node(x.v).out+=C),f=Math.max(f,p.node(x.w).in+=C)});let v=c(m+f+3).map(()=>new r),w=f+1;return p.nodes().forEach(x=>{s(v,w,p.node(x))}),{graph:p,buckets:v,zeroIdx:w}}function s(d,u,p){p.out?p.in?d[p.out-p.in+u].enqueue(p):d[d.length-1].enqueue(p):d[0].enqueue(p)}function c(d){const u=[];for(let p=0;pj.setNode(I,z.node(I))),z.edges().forEach(I=>{let N=j.edge(I.v,I.w)||{weight:0,minlen:1},L=z.edge(I);j.setEdge(I.v,I.w,{weight:N.weight+L.weight,minlen:Math.max(N.minlen,L.minlen)})}),j}function o(z){let j=new e({multigraph:z.isMultigraph()}).setGraph(z.graph());return z.nodes().forEach(I=>{z.children(I).length||j.setNode(I,z.node(I))}),z.edges().forEach(I=>{j.setEdge(I,z.edge(I))}),j}function i(z){let j=z.nodes().map(I=>{let N={};return z.outEdges(I).forEach(L=>{N[L.w]=(N[L.w]||0)+z.edge(L).weight}),N});return A(z.nodes(),j)}function a(z){let j=z.nodes().map(I=>{let N={};return z.inEdges(I).forEach(L=>{N[L.v]=(N[L.v]||0)+z.edge(L).weight}),N});return A(z.nodes(),j)}function l(z,j){let I=z.x,N=z.y,L=j.x-I,H=j.y-N,P=z.width/2,V=z.height/2;if(!L&&!H)throw new Error("Not possible to find intersection inside of the rectangle");let B,F;return Math.abs(H)*P>Math.abs(L)*V?(H<0&&(V=-V),B=V*L/H,F=V):(L<0&&(P=-P),B=P,F=P*H/L),{x:I+B,y:N+F}}function s(z){let j=$(v(z)+1).map(()=>[]);return z.nodes().forEach(I=>{let N=z.node(I),L=N.rank;L!==void 0&&(j[L][N.order]=I)}),j}function c(z){let j=z.nodes().map(N=>{let L=z.node(N).rank;return L===void 0?Number.MAX_VALUE:L}),I=m(Math.min,j);z.nodes().forEach(N=>{let L=z.node(N);Object.hasOwn(L,"rank")&&(L.rank-=I)})}function d(z){let j=z.nodes().map(P=>z.node(P).rank),I=m(Math.min,j),N=[];z.nodes().forEach(P=>{let V=z.node(P).rank-I;N[V]||(N[V]=[]),N[V].push(P)});let L=0,H=z.graph().nodeRankFactor;Array.from(N).forEach((P,V)=>{P===void 0&&V%H!==0?--L:P!==void 0&&L&&P.forEach(B=>z.node(B).rank+=L)})}function u(z,j,I,N){let L={width:0,height:0};return arguments.length>=4&&(L.rank=I,L.order=N),r(z,"border",L,j)}function p(z,j=f){const I=[];for(let N=0;Nf){const I=p(j);return z.apply(null,I.map(N=>z.apply(null,N)))}else return z.apply(null,j)}function v(z){const j=z.nodes().map(I=>{let N=z.node(I).rank;return N===void 0?Number.MIN_VALUE:N});return m(Math.max,j)}function w(z,j){let I={lhs:[],rhs:[]};return z.forEach(N=>{j(N)?I.lhs.push(N):I.rhs.push(N)}),I}function x(z,j){let I=Date.now();try{return j()}finally{console.log(z+" time: "+(Date.now()-I)+"ms")}}function k(z,j){return j()}let C=0;function _(z){var j=++C;return z+(""+j)}function $(z,j,I=1){j==null&&(j=z,z=0);let N=H=>HjN[j]),Object.entries(z).reduce((N,[L,H])=>(N[L]=I(H,L),N),{})}function A(z,j){return z.reduce((I,N,L)=>(I[N]=j[L],I),{})}return R$}var z$,QQ;function Wqe(){if(QQ)return z$;QQ=1;let e=Uqe(),r=$n().uniqueId;z$={run:n,undo:i};function n(a){(a.graph().acyclicer==="greedy"?e(a,l(a)):o(a)).forEach(s=>{let c=a.edge(s);a.removeEdge(s),c.forwardName=s.name,c.reversed=!0,a.setEdge(s.w,s.v,c,r("rev"))});function l(s){return c=>s.edge(c).weight}}function o(a){let l=[],s={},c={};function d(u){Object.hasOwn(c,u)||(c[u]=!0,s[u]=!0,a.outEdges(u).forEach(p=>{Object.hasOwn(s,p.w)?l.push(p):d(p.w)}),delete s[u])}return a.nodes().forEach(d),l}function i(a){a.edges().forEach(l=>{let s=a.edge(l);if(s.reversed){a.removeEdge(l);let c=s.forwardName;delete s.reversed,delete s.forwardName,a.setEdge(l.w,l.v,s,c)}})}return z$}var T$,JQ;function Gqe(){if(JQ)return T$;JQ=1;let e=$n();T$={run:r,undo:o};function r(i){i.graph().dummyChains=[],i.edges().forEach(a=>n(i,a))}function n(i,a){let l=a.v,s=i.node(l).rank,c=a.w,d=i.node(c).rank,u=a.name,p=i.edge(a),f=p.labelRank;if(d===s+1)return;i.removeEdge(a);let m,v,w;for(w=0,++s;s{let l=i.node(a),s=l.edgeLabel,c;for(i.setEdge(l.edgeObj,s);l.dummy;)c=i.successors(a)[0],i.removeNode(a),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),a=c,l=i.node(a)})}return T$}var j$,eJ;function b2(){if(eJ)return j$;eJ=1;const{applyWithChunking:e}=$n();j$={longestPath:r,slack:n};function r(o){var i={};function a(l){var s=o.node(l);if(Object.hasOwn(i,l))return s.rank;i[l]=!0;let c=o.outEdges(l).map(u=>u==null?Number.POSITIVE_INFINITY:a(u.w)-o.edge(u).minlen);var d=e(Math.min,c);return d===Number.POSITIVE_INFINITY&&(d=0),s.rank=d}o.sources().forEach(a)}function n(o,i){return o.node(i.w).rank-o.node(i.v).rank-o.edge(i).minlen}return j$}var A$,tJ;function rJ(){if(tJ)return A$;tJ=1;var e=cl().Graph,r=b2().slack;A$=n;function n(l){var s=new e({directed:!1}),c=l.nodes()[0],d=l.nodeCount();s.setNode(c,{});for(var u,p;o(s,l){var p=u.v,f=d===p?u.w:p;!l.hasNode(f)&&!r(s,u)&&(l.setNode(f,{}),l.setEdge(d,f,{}),c(f))})}return l.nodes().forEach(c),l.nodeCount()}function i(l,s){return s.edges().reduce((c,d)=>{let u=Number.POSITIVE_INFINITY;return l.hasNode(d.v)!==l.hasNode(d.w)&&(u=r(s,d)),us.node(d).rank+=c)}return A$}var D$,nJ;function Yqe(){if(nJ)return D$;nJ=1;var e=rJ(),r=b2().slack,n=b2().longestPath,o=cl().alg.preorder,i=cl().alg.postorder,a=$n().simplify;D$=l,l.initLowLimValues=u,l.initCutValues=s,l.calcCutValue=d,l.leaveEdge=f,l.enterEdge=m,l.exchangeEdges=v;function l(C){C=a(C),n(C);var _=e(C);u(_),s(_,C);for(var $,R;$=f(_);)R=m(_,C,$),v(_,C,$,R)}function s(C,_){var $=i(C,C.nodes());$=$.slice(0,$.length-1),$.forEach(R=>c(C,_,R))}function c(C,_,$){var R=C.node($),T=R.parent;C.edge($,T).cutvalue=d(C,_,$)}function d(C,_,$){var R=C.node($),T=R.parent,A=!0,z=_.edge($,T),j=0;return z||(A=!1,z=_.edge(T,$)),j=z.weight,_.nodeEdges($).forEach(I=>{var N=I.v===$,L=N?I.w:I.v;if(L!==T){var H=N===A,P=_.edge(I).weight;if(j+=H?P:-P,x(C,$,L)){var V=C.edge($,L).cutvalue;j+=H?-V:V}}}),j}function u(C,_){arguments.length<2&&(_=C.nodes()[0]),p(C,{},1,_)}function p(C,_,$,R,T){var A=$,z=C.node(R);return _[R]=!0,C.neighbors(R).forEach(j=>{Object.hasOwn(_,j)||($=p(C,_,$,j,R))}),z.low=A,z.lim=$++,T?z.parent=T:delete z.parent,$}function f(C){return C.edges().find(_=>C.edge(_).cutvalue<0)}function m(C,_,$){var R=$.v,T=$.w;_.hasEdge(R,T)||(R=$.w,T=$.v);var A=C.node(R),z=C.node(T),j=A,I=!1;A.lim>z.lim&&(j=z,I=!0);var N=_.edges().filter(L=>I===k(C,C.node(L.v),j)&&I!==k(C,C.node(L.w),j));return N.reduce((L,H)=>r(_,H)!_.node(T).parent),R=o(C,$);R=R.slice(1),R.forEach(T=>{var A=C.node(T).parent,z=_.edge(T,A),j=!1;z||(z=_.edge(A,T),j=!0),_.node(T).rank=_.node(A).rank+(j?z.minlen:-z.minlen)})}function x(C,_,$){return C.hasEdge(_,$)}function k(C,_,$){return $.low<=_.lim&&_.lim<=$.lim}return D$}var P$,oJ;function Xqe(){if(oJ)return P$;oJ=1;var e=b2(),r=e.longestPath,n=rJ(),o=Yqe();P$=i;function i(c){var d=c.graph().ranker;if(d instanceof Function)return d(c);switch(c.graph().ranker){case"network-simplex":s(c);break;case"tight-tree":l(c);break;case"longest-path":a(c);break;case"none":break;default:s(c)}}var a=r;function l(c){r(c),n(c)}function s(c){o(c)}return P$}var M$,iJ;function Kqe(){if(iJ)return M$;iJ=1,M$=e;function e(o){let i=n(o);o.graph().dummyChains.forEach(a=>{let l=o.node(a),s=l.edgeObj,c=r(o,i,s.v,s.w),d=c.path,u=c.lca,p=0,f=d[p],m=!0;for(;a!==s.w;){if(l=o.node(a),m){for(;(f=d[p])!==u&&o.node(f).maxRankd||u>i[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 i={},a=0;function l(s){let c=a;o.children(s).forEach(l),i[s]={low:c,lim:a++}}return o.children().forEach(l),i}return M$}var N$,aJ;function Zqe(){if(aJ)return N$;aJ=1;let e=$n();N$={run:r,cleanup:a};function r(l){let s=e.addDummyNode(l,"root",{},"_root"),c=o(l),d=Object.values(c),u=e.applyWithChunking(Math.max,d)-1,p=2*u+1;l.graph().nestingRoot=s,l.edges().forEach(m=>l.edge(m).minlen*=p);let f=i(l)+1;l.children().forEach(m=>n(l,s,p,f,u,c,m)),l.graph().nodeRankFactor=p}function n(l,s,c,d,u,p,f){let m=l.children(f);if(!m.length){f!==s&&l.setEdge(s,f,{weight:0,minlen:c});return}let v=e.addBorderNode(l,"_bt"),w=e.addBorderNode(l,"_bb"),x=l.node(f);l.setParent(v,f),x.borderTop=v,l.setParent(w,f),x.borderBottom=w,m.forEach(k=>{n(l,s,c,d,u,p,k);let C=l.node(k),_=C.borderTop?C.borderTop:k,$=C.borderBottom?C.borderBottom:k,R=C.borderTop?d:2*d,T=_!==$?1:u-p[f]+1;l.setEdge(v,_,{weight:R,minlen:T,nestingEdge:!0}),l.setEdge($,w,{weight:R,minlen:T,nestingEdge:!0})}),l.parent(f)||l.setEdge(s,v,{weight:0,minlen:u+p[f]})}function o(l){var s={};function c(d,u){var p=l.children(d);p&&p.length&&p.forEach(f=>c(f,u+1)),s[d]=u}return l.children().forEach(d=>c(d,1)),s}function i(l){return l.edges().reduce((s,c)=>s+l.edge(c).weight,0)}function a(l){var s=l.graph();l.removeNode(s.nestingRoot),delete s.nestingRoot,l.edges().forEach(c=>{var d=l.edge(c);d.nestingEdge&&l.removeEdge(c)})}return N$}var B$,lJ;function Qqe(){if(lJ)return B$;lJ=1;let e=$n();B$=r;function r(o){function i(a){let l=o.children(a),s=o.node(a);if(l.length&&l.forEach(i),Object.hasOwn(s,"minRank")){s.borderLeft=[],s.borderRight=[];for(let c=s.minRank,d=s.maxRank+1;co(c.node(d))),c.edges().forEach(d=>o(c.edge(d)))}function o(c){let d=c.width;c.width=c.height,c.height=d}function i(c){c.nodes().forEach(d=>a(c.node(d))),c.edges().forEach(d=>{let u=c.edge(d);u.points.forEach(a),Object.hasOwn(u,"y")&&a(u)})}function a(c){c.y=-c.y}function l(c){c.nodes().forEach(d=>s(c.node(d))),c.edges().forEach(d=>{let u=c.edge(d);u.points.forEach(s),Object.hasOwn(u,"x")&&s(u)})}function s(c){let d=c.x;c.x=c.y,c.y=d}return I$}var O$,cJ;function eHe(){if(cJ)return O$;cJ=1;let e=$n();O$=r;function r(n){let o={},i=n.nodes().filter(d=>!n.children(d).length),a=i.map(d=>n.node(d).rank),l=e.applyWithChunking(Math.max,a),s=e.range(l+1).map(()=>[]);function c(d){if(o[d])return;o[d]=!0;let u=n.node(d);s[u.rank].push(d),n.successors(d).forEach(c)}return i.sort((d,u)=>n.node(d).rank-n.node(u).rank).forEach(c),s}return O$}var L$,dJ;function tHe(){if(dJ)return L$;dJ=1;let e=$n().zipObject;L$=r;function r(o,i){let a=0;for(let l=1;lm)),s=i.flatMap(f=>o.outEdges(f).map(m=>({pos:l[m.w],weight:o.edge(m).weight})).sort((m,v)=>m.pos-v.pos)),c=1;for(;c{let m=f.pos+c;u[m]+=f.weight;let v=0;for(;m>0;)m%2&&(v+=u[m+1]),m=m-1>>1,u[m]+=f.weight;p+=f.weight*v}),p}return L$}var F$,uJ;function rHe(){if(uJ)return F$;uJ=1,F$=e;function e(r,n=[]){return n.map(o=>{let i=r.inEdges(o);if(i.length){let a=i.reduce((l,s)=>{let c=r.edge(s),d=r.node(s.v);return{sum:l.sum+c.weight*d.order,weight:l.weight+c.weight}},{sum:0,weight:0});return{v:o,barycenter:a.sum/a.weight,weight:a.weight}}else return{v:o}})}return F$}var V$,pJ;function nHe(){if(pJ)return V$;pJ=1;let e=$n();V$=r;function r(i,a){let l={};i.forEach((c,d)=>{let u=l[c.v]={indegree:0,in:[],out:[],vs:[c.v],i:d};c.barycenter!==void 0&&(u.barycenter=c.barycenter,u.weight=c.weight)}),a.edges().forEach(c=>{let d=l[c.v],u=l[c.w];d!==void 0&&u!==void 0&&(u.indegree++,d.out.push(l[c.w]))});let s=Object.values(l).filter(c=>!c.indegree);return n(s)}function n(i){let a=[];function l(c){return d=>{d.merged||(d.barycenter===void 0||c.barycenter===void 0||d.barycenter>=c.barycenter)&&o(c,d)}}function s(c){return d=>{d.in.push(c),--d.indegree===0&&i.push(d)}}for(;i.length;){let c=i.pop();a.push(c),c.in.reverse().forEach(l(c)),c.out.forEach(s(c))}return a.filter(c=>!c.merged).map(c=>e.pick(c,["vs","i","barycenter","weight"]))}function o(i,a){let l=0,s=0;i.weight&&(l+=i.barycenter*i.weight,s+=i.weight),a.weight&&(l+=a.barycenter*a.weight,s+=a.weight),i.vs=a.vs.concat(i.vs),i.barycenter=l/s,i.weight=s,i.i=Math.min(a.i,i.i),a.merged=!0}return V$}var q$,hJ;function oHe(){if(hJ)return q$;hJ=1;let e=$n();q$=r;function r(i,a){let l=e.partition(i,v=>Object.hasOwn(v,"barycenter")),s=l.lhs,c=l.rhs.sort((v,w)=>w.i-v.i),d=[],u=0,p=0,f=0;s.sort(o(!!a)),f=n(d,c,f),s.forEach(v=>{f+=v.vs.length,d.push(v.vs),u+=v.barycenter*v.weight,p+=v.weight,f=n(d,c,f)});let m={vs:d.flat(!0)};return p&&(m.barycenter=u/p,m.weight=p),m}function n(i,a,l){let s;for(;a.length&&(s=a[a.length-1]).i<=l;)a.pop(),i.push(s.vs),l++;return l}function o(i){return(a,l)=>a.barycenterl.barycenter?1:i?l.i-a.i:a.i-l.i}return q$}var H$,fJ;function iHe(){if(fJ)return H$;fJ=1;let e=rHe(),r=nHe(),n=oHe();H$=o;function o(l,s,c,d){let u=l.children(s),p=l.node(s),f=p?p.borderLeft:void 0,m=p?p.borderRight:void 0,v={};f&&(u=u.filter(C=>C!==f&&C!==m));let w=e(l,u);w.forEach(C=>{if(l.children(C.v).length){let _=o(l,C.v,c,d);v[C.v]=_,Object.hasOwn(_,"barycenter")&&a(C,_)}});let x=r(w,c);i(x,v);let k=n(x,d);if(f&&(k.vs=[f,k.vs,m].flat(!0),l.predecessors(f).length)){let C=l.node(l.predecessors(f)[0]),_=l.node(l.predecessors(m)[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 i(l,s){l.forEach(c=>{c.vs=c.vs.flatMap(d=>s[d]?s[d].vs:d)})}function a(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 H$}var U$,gJ;function aHe(){if(gJ)return U$;gJ=1;let e=cl().Graph,r=$n();U$=n;function n(i,a,l,s){s||(s=i.nodes());let c=o(i),d=new e({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(u=>i.node(u));return s.forEach(u=>{let p=i.node(u),f=i.parent(u);(p.rank===a||p.minRank<=a&&a<=p.maxRank)&&(d.setNode(u),d.setParent(u,f||c),i[l](u).forEach(m=>{let v=m.v===u?m.w:m.v,w=d.edge(v,u),x=w!==void 0?w.weight:0;d.setEdge(v,u,{weight:i.edge(m).weight+x})}),Object.hasOwn(p,"minRank")&&d.setNode(u,{borderLeft:p.borderLeft[a],borderRight:p.borderRight[a]}))}),d}function o(i){for(var a;i.hasNode(a=r.uniqueId("_root")););return a}return U$}var W$,mJ;function lHe(){if(mJ)return W$;mJ=1,W$=e;function e(r,n,o){let i={},a;o.forEach(l=>{let s=r.parent(l),c,d;for(;s;){if(c=r.parent(s),c?(d=i[c],i[c]=s):(d=a,a=s),d&&d!==s){n.setEdge(d,s);return}s=c}})}return W$}var G$,yJ;function sHe(){if(yJ)return G$;yJ=1;let e=eHe(),r=tHe(),n=iHe(),o=aHe(),i=lHe(),a=cl().Graph,l=$n();G$=s;function s(p,f){if(f&&typeof f.customOrder=="function"){f.customOrder(p,s);return}let m=l.maxRank(p),v=c(p,l.range(1,m+1),"inEdges"),w=c(p,l.range(m-1,-1,-1),"outEdges"),x=e(p);if(u(p,x),f&&f.disableOptimalOrderHeuristic)return;let k=Number.POSITIVE_INFINITY,C;for(let _=0,$=0;$<4;++_,++$){d(_%2?v:w,_%4>=2),x=l.buildLayerMatrix(p);let R=r(p,x);R{v.has(x)||v.set(x,[]),v.get(x).push(k)};for(const x of p.nodes()){const k=p.node(x);if(typeof k.rank=="number"&&w(k.rank,x),typeof k.minRank=="number"&&typeof k.maxRank=="number")for(let C=k.minRank;C<=k.maxRank;C++)C!==k.rank&&w(C,x)}return f.map(function(x){return o(p,x,m,v.get(x)||[])})}function d(p,f){let m=new a;p.forEach(function(v){let w=v.graph().root,x=n(v,w,m,f);x.vs.forEach((k,C)=>v.node(k).order=C),i(v,m,x.vs)})}function u(p,f){Object.values(f).forEach(m=>m.forEach((v,w)=>p.node(v).order=w))}return G$}var Y$,vJ;function cHe(){if(vJ)return Y$;vJ=1;let e=cl().Graph,r=$n();Y$={positionX:m,findType1Conflicts:n,findType2Conflicts:o,addConflict:a,hasConflict:l,verticalAlignment:s,horizontalCompaction:c,alignCoordinates:p,findSmallestWidthAlignment:u,balance:f};function n(x,k){let C={};function _($,R){let T=0,A=0,z=$.length,j=R[R.length-1];return R.forEach((I,N)=>{let L=i(x,I),H=L?x.node(L).order:z;(L||I===j)&&(R.slice(A,N+1).forEach(P=>{x.predecessors(P).forEach(V=>{let B=x.node(V),F=B.order;(F{I=R[N],x.node(I).dummy&&x.predecessors(I).forEach(L=>{let H=x.node(L);H.dummy&&(H.orderj)&&a(C,L,I)})})}function $(R,T){let A=-1,z,j=0;return T.forEach((I,N)=>{if(x.node(I).dummy==="border"){let L=x.predecessors(I);L.length&&(z=x.node(L[0]).order,_(T,j,N,A,z),j=N,A=z)}_(T,j,T.length,z,R.length)}),T}return k.length&&k.reduce($),C}function i(x,k){if(x.node(k).dummy)return x.predecessors(k).find(C=>x.node(C).dummy)}function a(x,k,C){if(k>C){let $=k;k=C,C=$}let _=x[k];_||(x[k]=_={}),_[C]=!0}function l(x,k,C){if(k>C){let _=k;k=C,C=_}return!!x[k]&&Object.hasOwn(x[k],C)}function s(x,k,C,_){let $={},R={},T={};return k.forEach(A=>{A.forEach((z,j)=>{$[z]=z,R[z]=z,T[z]=j})}),k.forEach(A=>{let z=-1;A.forEach(j=>{let I=_(j);if(I.length){I=I.sort((L,H)=>T[L]-T[H]);let N=(I.length-1)/2;for(let L=Math.floor(N),H=Math.ceil(N);L<=H;++L){let P=I[L];R[j]===j&&zMath.max(L,R[H.v]+T.edge(H)),0)}function I(N){let L=T.outEdges(N).reduce((P,V)=>Math.min(P,R[V.w]-T.edge(V)),Number.POSITIVE_INFINITY),H=x.node(N);L!==Number.POSITIVE_INFINITY&&H.borderType!==A&&(R[N]=Math.max(R[N],L))}return z(j,T.predecessors.bind(T)),z(I,T.successors.bind(T)),Object.keys(_).forEach(N=>R[N]=R[C[N]]),R}function d(x,k,C,_){let $=new e,R=x.graph(),T=v(R.nodesep,R.edgesep,_);return k.forEach(A=>{let z;A.forEach(j=>{let I=C[j];if($.setNode(I),z){var N=C[z],L=$.edge(N,I);$.setEdge(N,I,Math.max(T(x,j,z),L||0))}z=j})}),$}function u(x,k){return Object.values(k).reduce((C,_)=>{let $=Number.NEGATIVE_INFINITY,R=Number.POSITIVE_INFINITY;Object.entries(_).forEach(([A,z])=>{let j=w(x,A)/2;$=Math.max(z+j,$),R=Math.min(z-j,R)});const T=$-R;return T{["l","r"].forEach(T=>{let A=R+T,z=x[A];if(z===k)return;let j=Object.values(z),I=_-r.applyWithChunking(Math.min,j);T!=="l"&&(I=$-r.applyWithChunking(Math.max,j)),I&&(x[A]=r.mapValues(z,N=>N+I))})})}function f(x,k){return r.mapValues(x.ul,(C,_)=>{if(k)return x[k.toLowerCase()][_];{let $=Object.values(x).map(R=>R[_]).sort((R,T)=>R-T);return($[1]+$[2])/2}})}function m(x){let k=r.buildLayerMatrix(x),C=Object.assign(n(x,k),o(x,k)),_={},$;["u","d"].forEach(T=>{$=T==="u"?k:Object.values(k).reverse(),["l","r"].forEach(A=>{A==="r"&&($=$.map(N=>Object.values(N).reverse()));let z=(T==="u"?x.predecessors:x.successors).bind(x),j=s(x,$,C,z),I=c(x,$,j.root,j.align,A==="r");A==="r"&&(I=r.mapValues(I,N=>-N)),_[T+A]=I})});let R=u(x,_);return p(_,R),f(_,x.graph().align)}function v(x,k,C){return(_,$,R)=>{let T=_.node($),A=_.node(R),z=0,j;if(z+=T.width/2,Object.hasOwn(T,"labelpos"))switch(T.labelpos.toLowerCase()){case"l":j=-T.width/2;break;case"r":j=T.width/2;break}if(j&&(z+=C?j:-j),j=0,z+=(T.dummy?k:x)/2,z+=(A.dummy?k:x)/2,z+=A.width/2,Object.hasOwn(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":j=A.width/2;break;case"r":j=-A.width/2;break}return j&&(z+=C?j:-j),j=0,z}}function w(x,k){return x.node(k).width}return Y$}var X$,bJ;function dHe(){if(bJ)return X$;bJ=1;let e=$n(),r=cHe().positionX;X$=n;function n(i){i=e.asNonCompoundGraph(i),o(i),Object.entries(r(i)).forEach(([a,l])=>i.node(a).x=l)}function o(i){let a=e.buildLayerMatrix(i),l=i.graph().ranksep,s=0;a.forEach(c=>{const d=c.reduce((u,p)=>{const f=i.node(p).height;return u>f?u:f},0);c.forEach(u=>i.node(u).y=s+d/2),s+=d+l})}return X$}var K$,xJ;function uHe(){if(xJ)return K$;xJ=1;let e=Wqe(),r=Gqe(),n=Xqe(),o=$n().normalizeRanks,i=Kqe(),a=$n().removeEmptyRanks,l=Zqe(),s=Qqe(),c=Jqe(),d=sHe(),u=dHe(),p=$n(),f=cl().Graph;K$=m;function m(O,W){let Z=W&&W.debugTiming?p.time:p.notime;Z("layout",()=>{let Q=Z(" buildLayoutGraph",()=>z(O));Z(" runLayout",()=>v(Q,Z,W)),Z(" updateInputGraph",()=>w(O,Q))})}function v(O,W,Z){W(" makeSpaceForEdgeLabels",()=>j(O)),W(" removeSelfEdges",()=>q(O)),W(" acyclic",()=>e.run(O)),W(" nestingGraph.run",()=>l.run(O)),W(" rank",()=>n(p.asNonCompoundGraph(O))),W(" injectEdgeLabelProxies",()=>I(O)),W(" removeEmptyRanks",()=>a(O)),W(" nestingGraph.cleanup",()=>l.cleanup(O)),W(" normalizeRanks",()=>o(O)),W(" assignRankMinMax",()=>N(O)),W(" removeEdgeLabelProxies",()=>L(O)),W(" normalize.run",()=>r.run(O)),W(" parentDummyChains",()=>i(O)),W(" addBorderSegments",()=>s(O)),W(" order",()=>d(O,Z)),W(" insertSelfEdges",()=>G(O)),W(" adjustCoordinateSystem",()=>c.adjust(O)),W(" position",()=>u(O)),W(" positionSelfEdges",()=>U(O)),W(" removeBorderNodes",()=>F(O)),W(" normalize.undo",()=>r.undo(O)),W(" fixupEdgeLabelCoords",()=>V(O)),W(" undoCoordinateSystem",()=>c.undo(O)),W(" translateGraph",()=>H(O)),W(" assignNodeIntersects",()=>P(O)),W(" reversePoints",()=>B(O)),W(" acyclic.undo",()=>e.undo(O))}function w(O,W){O.nodes().forEach(Z=>{let Q=O.node(Z),ie=W.node(Z);Q&&(Q.x=ie.x,Q.y=ie.y,Q.rank=ie.rank,W.children(Z).length&&(Q.width=ie.width,Q.height=ie.height))}),O.edges().forEach(Z=>{let Q=O.edge(Z),ie=W.edge(Z);Q.points=ie.points,Object.hasOwn(ie,"x")&&(Q.x=ie.x,Q.y=ie.y)}),O.graph().width=W.graph().width,O.graph().height=W.graph().height}let x=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},C=["acyclicer","ranker","rankdir","align"],_=["width","height","rank"],$={width:0,height:0},R=["minlen","weight","width","height","labeloffset"],T={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},A=["labelpos"];function z(O){let W=new f({multigraph:!0,compound:!0}),Z=K(O.graph());return W.setGraph(Object.assign({},k,Y(Z,x),p.pick(Z,C))),O.nodes().forEach(Q=>{let ie=K(O.node(Q));const te=Y(ie,_);Object.keys($).forEach(re=>{te[re]===void 0&&(te[re]=$[re])}),W.setNode(Q,te),W.setParent(Q,O.parent(Q))}),O.edges().forEach(Q=>{let ie=K(O.edge(Q));W.setEdge(Q,Object.assign({},T,Y(ie,R),p.pick(ie,A)))}),W}function j(O){let W=O.graph();W.ranksep/=2,O.edges().forEach(Z=>{let Q=O.edge(Z);Q.minlen*=2,Q.labelpos.toLowerCase()!=="c"&&(W.rankdir==="TB"||W.rankdir==="BT"?Q.width+=Q.labeloffset:Q.height+=Q.labeloffset)})}function I(O){O.edges().forEach(W=>{let Z=O.edge(W);if(Z.width&&Z.height){let Q=O.node(W.v),ie={rank:(O.node(W.w).rank-Q.rank)/2+Q.rank,e:W};p.addDummyNode(O,"edge-proxy",ie,"_ep")}})}function N(O){let W=0;O.nodes().forEach(Z=>{let Q=O.node(Z);Q.borderTop&&(Q.minRank=O.node(Q.borderTop).rank,Q.maxRank=O.node(Q.borderBottom).rank,W=Math.max(W,Q.maxRank))}),O.graph().maxRank=W}function L(O){O.nodes().forEach(W=>{let Z=O.node(W);Z.dummy==="edge-proxy"&&(O.edge(Z.e).labelRank=Z.rank,O.removeNode(W))})}function H(O){let W=Number.POSITIVE_INFINITY,Z=0,Q=Number.POSITIVE_INFINITY,ie=0,te=O.graph(),re=te.marginx||0,ue=te.marginy||0;function _e(ce){let pe=ce.x,xe=ce.y,je=ce.width,Be=ce.height;W=Math.min(W,pe-je/2),Z=Math.max(Z,pe+je/2),Q=Math.min(Q,xe-Be/2),ie=Math.max(ie,xe+Be/2)}O.nodes().forEach(ce=>_e(O.node(ce))),O.edges().forEach(ce=>{let pe=O.edge(ce);Object.hasOwn(pe,"x")&&_e(pe)}),W-=re,Q-=ue,O.nodes().forEach(ce=>{let pe=O.node(ce);pe.x-=W,pe.y-=Q}),O.edges().forEach(ce=>{let pe=O.edge(ce);pe.points.forEach(xe=>{xe.x-=W,xe.y-=Q}),Object.hasOwn(pe,"x")&&(pe.x-=W),Object.hasOwn(pe,"y")&&(pe.y-=Q)}),te.width=Z-W+re,te.height=ie-Q+ue}function P(O){O.edges().forEach(W=>{let Z=O.edge(W),Q=O.node(W.v),ie=O.node(W.w),te,re;Z.points?(te=Z.points[0],re=Z.points[Z.points.length-1]):(Z.points=[],te=ie,re=Q),Z.points.unshift(p.intersectRect(Q,te)),Z.points.push(p.intersectRect(ie,re))})}function V(O){O.edges().forEach(W=>{let Z=O.edge(W);if(Object.hasOwn(Z,"x"))switch((Z.labelpos==="l"||Z.labelpos==="r")&&(Z.width-=Z.labeloffset),Z.labelpos){case"l":Z.x-=Z.width/2+Z.labeloffset;break;case"r":Z.x+=Z.width/2+Z.labeloffset;break}})}function B(O){O.edges().forEach(W=>{let Z=O.edge(W);Z.reversed&&Z.points.reverse()})}function F(O){O.nodes().forEach(W=>{if(O.children(W).length){let Z=O.node(W),Q=O.node(Z.borderTop),ie=O.node(Z.borderBottom),te=O.node(Z.borderLeft[Z.borderLeft.length-1]),re=O.node(Z.borderRight[Z.borderRight.length-1]);Z.width=Math.abs(re.x-te.x),Z.height=Math.abs(ie.y-Q.y),Z.x=te.x+Z.width/2,Z.y=Q.y+Z.height/2}}),O.nodes().forEach(W=>{O.node(W).dummy==="border"&&O.removeNode(W)})}function q(O){O.edges().forEach(W=>{if(W.v===W.w){var Z=O.node(W.v);Z.selfEdges||(Z.selfEdges=[]),Z.selfEdges.push({e:W,label:O.edge(W)}),O.removeEdge(W)}})}function G(O){var W=p.buildLayerMatrix(O);W.forEach(Z=>{var Q=0;Z.forEach((ie,te)=>{var re=O.node(ie);re.order=te+Q,(re.selfEdges||[]).forEach(ue=>{p.addDummyNode(O,"selfedge",{width:ue.label.width,height:ue.label.height,rank:re.rank,order:te+ ++Q,e:ue.e,label:ue.label},"_se")}),delete re.selfEdges})})}function U(O){O.nodes().forEach(W=>{var Z=O.node(W);if(Z.dummy==="selfedge"){var Q=O.node(Z.e.v),ie=Q.x+Q.width/2,te=Q.y,re=Z.x-ie,ue=Q.height/2;O.setEdge(Z.e,Z.label),O.removeNode(W),Z.label.points=[{x:ie+2*re/3,y:te-ue},{x:ie+5*re/6,y:te-ue},{x:ie+re,y:te},{x:ie+5*re/6,y:te+ue},{x:ie+2*re/3,y:te+ue}],Z.label.x=Z.x,Z.label.y=Z.y}})}function Y(O,W){return p.mapValues(p.pick(O,W),Number)}function K(O){var W={};return O&&Object.entries(O).forEach(([Z,Q])=>{typeof Z=="string"&&(Z=Z.toLowerCase()),W[Z]=Q}),W}return K$}var Z$,wJ;function pHe(){if(wJ)return Z$;wJ=1;let e=$n(),r=cl().Graph;Z$={debugOrdering:n};function n(o){let i=e.buildLayerMatrix(o),a=new r({compound:!0,multigraph:!0}).setGraph({});return o.nodes().forEach(l=>{a.setNode(l,{label:l}),a.setParent(l,"layer"+o.node(l).rank)}),o.edges().forEach(l=>a.setEdge(l.v,l.w,{},l.name)),i.forEach((l,s)=>{let c="layer"+s;a.setNode(c,{rank:"same"}),l.reduce((d,u)=>(a.setEdge(d,u,{style:"invis"}),u))}),a}return Z$}var kJ,_J;function hHe(){return _J||(_J=1,kJ="1.1.8"),kJ}var SJ,EJ;function fHe(){return EJ||(EJ=1,SJ={graphlib:cl(),layout:uHe(),debug:pHe(),util:{time:$n().time,notime:$n().notime},version:hHe()}),SJ}var gHe=fHe();const x2=Y7(gHe),co={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 mHe(){const e=new x2.graphlib.Graph({directed:!0,compound:!0,multigraph:!0});return e.setGraph({...co.dagre,rankdir:"LR"}),e.setDefaultEdgeLabel(()=>({...co.edgeLabel})),e.setDefaultNodeLabel(()=>({})),e}const Q$="-port";function J$(e,r,n){const o=new Ln(a=>({id:`${e}-${a}`,portId:`${e}-${a}`})),i=hx(r);for(const a of i.sorted){const l=i.children(a).length>0,s=a.id,c=`${e}-${s}`,d=l?`${c}${Q$}`:c;o.set(s,{id:c,portId:d}),n.setNode(c,{column:e,element:a,isCompound:l,portId:d,inPorts:[],outPorts:[],width:co.nodeWidth,height:co.nodeHeight}),l&&(n.setNode(d,{element:a,portId:d,isCompound:l,inPorts:[],outPorts:[],width:co.nodeWidth-co.dagre.ranksep,height:co.compound.labelHeight}),n.setParent(d,c));const u=i.parent(a);u&&n.setParent(c,`${e}-${u.id}`)}return{...i,byId:a=>{const l=i.byId(a),s=o.get(l.id);return{element:l,graph:s}},graphNodes:o}}function yHe(e){return x2.layout(e,{}),r=>{const n=e.node(r),{x:o,y:i,width:a,height:l}=n;return{position:{x:o-Math.round(a/2),y:i-Math.round(l/2)},width:a,height:l}}}var w2;(e=>{e.Empty="@empty"})(w2||(w2={}));function vHe(e,r){const n=mHe(),o=J$("incomers",e.incomers,n),i=J$("subjects",e.subjects,n),a=J$("outgoers",e.outgoers,n),l=[];Jr(XCe(Jr(C1(e.incoming),un($=>({id:$.source.id,sourceFqn:$.source.id,targetFqn:$.target.id,source:o.byId($.source.id).graph,target:i.byId($.target.id).graph,relation:$}))),Jr(C1(e.outgoing),un($=>({id:$.target.id,sourceFqn:$.source.id,targetFqn:$.target.id,source:i.byId($.source.id).graph,target:a.byId($.target.id).graph,relation:$})))),un($=>({...$,expr:`${$.source.id}->${$.target.id}`})),m$e(rp("expr")),f$e($=>{const R=$[0].source,T=$[0].target,A=$[0].expr;n.node(R.id).outPorts.push(T.id),n.node(T.id).inPorts.push(R.id),n.setEdge(R.portId,T.portId,{...co.edgeLabel},A),l.push({name:A,sourceFqn:$[0].sourceFqn,targetFqn:$[0].targetFqn,source:R.id,sourceHandle:R.id+"_out"+(n.node(R.id).outPorts.length-1),target:T.id,targetHandle:T.id+"_in"+(n.node(T.id).inPorts.length-1),relations:un($,rp("relation"))})}));for(const $ of i.graphNodes.values()){const R=$.id,T=n.node(R);if(T.isCompound)continue;const A=Math.max(n.inEdges(R)?.length??0,n.outEdges(R)?.length??0);A>2&&(T.height=T.height+(A-3)*14)}const s=[...o.graphNodes.values(),...i.graphNodes.values(),...a.graphNodes.values()];if(o.graphNodes.size==0){const $="incomers-empty";n.setNode($,{column:"incomers",element:null,isCompound:!1,portId:$,inPorts:[],outPorts:[],width:co.nodeWidth,height:co.nodeHeight});for(const R of i.graphNodes.values())n.setEdge($,R.portId);s.push({id:$,portId:$})}if(a.graphNodes.size==0){const $="outgoers-empty";n.setNode($,{column:"outgoers",element:null,isCompound:!1,portId:$,inPorts:[],outPorts:[],width:co.nodeWidth,height:co.nodeHeight});for(const R of i.graphNodes.values())n.setEdge(R.portId,$);s.push({id:$,portId:$})}const c=n.edgeCount();if(c>10)for(const $ of n.edges())n.setEdge($,{...co.edgeLabel,width:c>25?800:400});const d=yHe(n),u=Jr(s,ep($=>$.id===$.portId),hw($=>[$.id,d($.id)]));function p($){return u[$]??=Jr(n.children($)??[],ep(R=>!R.endsWith(Q$)),un(R=>p(R)),Wq(R=>{He(R.length>0,`Node ${$} has no nested nodes`)}),gw((R,T)=>({minY:Math.min(R.minY,T.position.y),maxY:Math.max(R.maxY,T.position.y+T.height)}),{minY:1/0,maxY:-1/0}),({minY:R,maxY:T})=>{const{position:{x:A},width:z}=d($);return R=R-co.compound.paddingTop,T=T+co.compound.paddingBottom,{position:{x:A,y:R},width:z,height:T-R}})}function f($){const R=n.parent($);return R?f(R)+1:0}function m($){const R=n.children($)??[];return R.length===0?0:1+Math.max(...R.map(m))}const v=($,R,T)=>Jr(T,un((A,z)=>({port:$+"_"+R+z,topY:p(A).position.y})),mw(rp("topY")),un(rp("port")));let w=0,x=0;const[k]=[...i.root];He(k,"Subjects should not be empty");let C=p(i.graphNodes.get(k.id).id);const _=s.map(({id:$})=>{const{element:R,inPorts:T,outPorts:A,column:z}=n.node($);let{position:j,width:I,height:N}=p($);if(!R){if(N=Math.min(C.height,300),j.y=C.position.y+C.height/2-N/2,z==="incomers")I=C.position.x-co.emptyNodeOffset-j.x;else{const q=j.x+I;j.x=C.position.x+C.width+co.emptyNodeOffset,I=q-j.x}return{id:$,parent:null,x:j.x,y:j.y,title:"empty node",description:null,technology:null,tags:[],links:[],color:"muted",shape:"rectangle",style:{border:"dashed",opacity:50},kind:w2.Empty,level:0,labelBBox:{x:j.x,y:j.y,width:I,height:N},children:[],width:I,height:N,column:z,ports:{in:[],out:[]},existsInCurrentView:!1}}const L=n.parent($),H=(n.children($)??[]).filter(q=>!q.endsWith(Q$));w=Math.min(w,j.x),x=Math.min(x,j.y);const P=r?E1(R.scopedViews(),q=>q.id!==r.id)?.id??null:null,V=r?.findNodeWithElement(R.id),B=r&&!V?E1(R.ancestors(),q=>!!r.findNodeWithElement(q.id))?.id:null,F=V??(B&&r?.findNodeWithElement(B));return{id:$,parent:L??null,x:j.x,y:j.y,title:R.title,description:Fs(R.$element)??null,technology:R.technology,tags:[...R.tags],links:null,color:F?.color??R.color,shape:V?.shape??R.shape,icon:V?.icon??R.icon??"none",modelRef:R.id,kind:R.kind,level:f($),labelBBox:{x:j.x,y:j.y,width:I,height:N},style:ud({...(V??F)?.style,...R.$element.style},["color","shape","icon"]),navigateTo:P,...H.length>0&&{depth:m($)},children:H,width:I,height:N,column:z,ports:{in:v($,"in",T),out:v($,"out",A)},existsInCurrentView:!!V}});return{subjectExistsInScope:!r||r.includesElement(k.id),bounds:{x:Math.min(w,0),y:Math.min(x,0),width:n.graph().width??100,height:n.graph().height??100},nodes:_,edges:n.edges().reduce(($,R)=>{const T=n.edge(R),A=R.name;if(!A)return $;const{name:z,source:j,sourceFqn:I,target:N,targetFqn:L,relations:H,sourceHandle:P,targetHandle:V}=gt(Q1(l,U=>U.name===A)),B=fw(H),F=B?.title??"untitled",q=H.length>1,G=fw(yw(H.flatMap(U=>U.navigateTo?.id?U.navigateTo.id:[])));return $.push(_1({id:z,sourceFqn:I,source:j,sourceHandle:P,targetFqn:L,target:N,targetHandle:V,label:q?`${H.length} relationships`:F,navigateTo:G,color:B?.color??"gray",existsInCurrentView:!r||H.every(U=>r.includesRelation(U.id)),points:T.points.map(U=>[U.x,U.y]),line:B?.line??"dashed",head:B?.head,tail:B?.tail,relations:H.map(U=>U.id),parent:null})),$},[])}}function bHe(e,r,n){const o=Fo();return S.useMemo(()=>{const i=r?o.findView(r):null,a=vHe(ZO(e,o,r,n),n==="view"?i:null);return i&&(n==="global"||!a.subjectExistsInScope)&&(a.edges=a.edges.map(l=>(l.existsInCurrentView=l.relations.every(s=>i.includesRelation(s)),l))),Object.assign(a,{subject:e})},[o,e,r,n,ZO])}const o0=(e,r)=>Rb(e.label,r.label);function eR(e){return{label:e.title,value:e.id,children:[...e.children()].map(eR).sort(o0)}}function xHe(e){const r=Fo();return S.useMemo(()=>e?[...r.view(e).roots()].map(eR).sort(o0):[...r.roots()].map(eR).sort(o0),[r,e??null])}const wHe=fe({margin:"0"}),kHe=fe({_hover:{backgroundColor:"mantine.colors.gray[0]",_dark:{backgroundColor:"mantine.colors.defaultHover",color:"mantine.colors.white"}}}),CJ=fe({maxHeight:["70vh","calc(100cqh - 70px)"]}),_He=Object.freeze(Object.defineProperty({__proto__:null,label:kHe,node:wHe,scrollArea:CJ},Symbol.toStringTag,{value:"Module"})),SHe=[["path",{d:"M8 9l4 -4l4 4",key:"svg-0"}],["path",{d:"M16 15l-4 4l-4 -4",key:"svg-1"}]],tR=wt("outline","selector","Selector",SHe),EHe=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}},CHe=()=>{},$He=S.memo(()=>{const e=n0(),{subjectId:r,viewId:n,scope:o,subjectExistsInScope:i,enableSelectSubject:a,enableChangeScope:l}=v2(EHe),s=S.useRef(null),c=S.useRef(null),d=Fo().findElement(r),u=xHe(o==="view"&&n?n:void 0),p=_y({multiple:!1});return p.setHoveredNode=CHe,S.useEffect(()=>{Du(r).reverse().forEach(f=>{p.expand(f)}),p.select(r)},[r]),y.jsxs(en,{ref:s,gap:"xs",pos:"relative",children:[a&&y.jsxs(en,{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(br,{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(kd,{children:y.jsx(Vn,{size:"xs",variant:"default",maw:250,rightSection:y.jsx(tR,{size:16}),children:y.jsx(it,{fz:"xs",fw:"500",truncate:!0,children:d?.title??"???"})})}),y.jsx(Qs,{p:0,miw:250,maw:400,children:y.jsx(oi,{scrollbars:"y",type:"never",viewportRef:c,className:CJ,children:y.jsx(Ff,{allowRangeSelection:!1,selectOnClick:!1,tree:p,data:u,classNames:_He,levelOffset:8,styles:{root:{maxWidth:400,overflow:"hidden"},label:{paddingTop:5,paddingBottom:6}},renderNode:({node:f,selected:m,expanded:v,elementProps:w,hasChildren:x})=>y.jsxs(en,{gap:2,wrap:"nowrap",...w,py:"3",children:[y.jsx(lr,{variant:"subtle",size:18,c:"dimmed",style:{visibility:x?"visible":"hidden"},children:y.jsx(Dd,{stroke:3.5,style:{transition:"transform 150ms ease",transform:`rotate(${v?"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(it,{fz:"sm",fw:m?"600":"400",truncate:"end",children:f.label})})]})})})})]})})]}),l&&y.jsxs(en,{gap:4,wrap:"nowrap",children:[a&&y.jsx(Se,{fz:"xs",fw:"500",...!i&&{c:"dimmed"},style:{whiteSpace:"nowrap",userSelect:"none"},children:"Scope"}),y.jsx("div",{children:y.jsx(_n,{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:i,portalProps:{target:s.current},children:y.jsx(Of,{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:!i}]})})})]})]})}),k2=(e,r)=>Math.abs(e-r)<2.5,RHe=(e,r)=>e.id===r.id&&tt(e.selected??!1,r.selected??!1)&&tt(e.animated??!1,r.animated??!1)&&tt(e.source,r.source)&&k2(e.sourceX,r.sourceX)&&k2(e.sourceY,r.sourceY)&&tt(e.sourceHandleId??null,r.sourceHandleId??null)&&tt(e.sourcePosition,r.sourcePosition)&&tt(e.target,r.target)&&k2(e.targetY,r.targetY)&&k2(e.targetX,r.targetX)&&tt(e.targetHandleId??null,r.targetHandleId??null)&&tt(e.targetPosition,r.targetPosition)&&tt(e.data,r.data);function rR(e){const r=S.memo(e,RHe);return r.displayName=`MemoEdge(${e.displayName||e.name})`,r}function $J(e,r){return r2(e,r)}const wa=$J("button"),Rr=$J("div"),i0=S.forwardRef(({edgeProps:{id:e,data:{label:r,technology:n,hovered:o=!1},selected:i=!1,selectable:a=!1},pointerEvents:l="all",className:s,style:c,children:d,...u},p)=>{const f=k1(e)?IO(e):null,m=Zn(r)||Zn(n);return y.jsxs(Rr,{ref:p,className:Ge("likec4-edge-label",dVe({pointerEvents:l,isStepEdge:f!==null,cursor:a||f!==null?"pointer":"default"}),s),"data-edge-id":e,animate:{scale:o&&!i?1.06:1},...u,children:[f!==null&&y.jsx(hr,{className:"likec4-edge-label__step-number",children:f}),m&&y.jsxs(hr,{className:"likec4-edge-label__contents",children:[Zn(r)&&y.jsx(hr,{lineClamp:5,className:"likec4-edge-label__text",children:r}),Zn(n)&&y.jsx(hr,{className:"likec4-edge-label__technology",children:"[ "+n+" ]"}),d]})]})});i0.displayName="EdgeLabel";function _2({icon:e,onClick:r}){return y.jsx(lr,{className:Ge("nodrag nopan",cVe()),onPointerDownCapture:nn,onClick:r,role:"button",onDoubleClick:nn,children:e??y.jsx(ba,{})})}function a0({className:e,component:r="g",selectable:n=!1,selected:o=!1,data:{color:i="gray",hovered:a=!1,active:l=!1,dimmed:s=!1,...c},animated:d,children:u,style:p}){const f={className:Ge(e,"likec4-edge-container",o&&"selected",n&&"selectable"),"data-likec4-color":i,"data-edge-dir":c.dir??"forward","data-edge-active":l,"data-edge-animated":d||l,"data-likec4-hovered":a,...o&&{"data-likec4-selected":o},...s!==!1&&{"data-likec4-dimmed":s}};return r==="svg"?y.jsx("svg",{style:p,...f,children:u}):(He(r==="g",'EdgeContainer: component must be "g" or "svg"'),y.jsx("g",{style:p,...f,children:u}))}const zHe=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"})}),THe=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})}),jHe=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})}),AHe=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"})}),DHe=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"})}),PHe=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"})}),MHe=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})}),NHe=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})}),RJ={Arrow:THe,Crow:jHe,OArrow:AHe,Open:zHe,Diamond:DHe,ODiamond:PHe,Dot:MHe,ODot:NHe};function zJ(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:Qo(e)}}const l0=S.forwardRef(({edgeProps:{id:e,data:{line:r,dir:n,tail:o,head:i},selectable:a=!0,style:l,interactionWidth:s},isDragging:c=!1,onEdgePointerDown:d,strokeWidth:u,svgPath:p},f)=>{let m=zJ(o),v=zJ(i??"normal");n==="back"&&([m,v]=[v,m]);const w=m?RJ[m]:null,x=v?RJ[v]:null,k=r==="dotted",C=k||r==="dashed";let _;k?_="1,8":C&&(_="8,10");const $=mVe();return y.jsxs(y.Fragment,{children:[a&&y.jsx("path",{className:Ge("react-flow__edge-interaction",fe({fill:"none"})),onPointerDown:d,d:p,style:{strokeWidth:s??10,stroke:"currentcolor",strokeOpacity:0,...c?{display:"none"}:{}}}),y.jsx("circle",{className:Ge("likec4-edge-middle-point",$.middlePoint),"data-edge-id":e,style:{offsetPath:`path("${p}")`}}),y.jsxs("g",{className:$.markersCtx,onPointerDown:d,children:[y.jsxs("defs",{children:[w&&y.jsx(w,{id:"start"+e}),x&&y.jsx(x,{id:"end"+e})]}),y.jsx("path",{className:Ge("react-flow__edge-path","hide-on-reduced-graphics",$.pathBg,c&&fe({display:"none"})),d:p,style:l,strokeLinecap:"round"}),y.jsx("path",{ref:f,className:Ge("react-flow__edge-path",$.path,a&&"react-flow__edge-interaction"),d:p,style:l,strokeWidth:u,strokeLinecap:"round",strokeDasharray:_,markerStart:w?`url(#start${e})`:void 0,markerEnd:x?`url(#end${e})`:void 0})]})]})});l0.displayName="EdgePath";const TJ=e=>{if(e!==void 0)return Iq(e)?`${Math.round(e)}px`:e};function S2({edgeProps:{id:e,selected:r=!1,data:{hovered:n=!1,active:o=!1,dimmed:i=!1,labelBBox:a,color:l="gray"},animated:s},labelPosition:c,className:d,style:u,children:p,...f}){let m=QC(S.useCallback(k=>k.edgeLookup.get(e)?.zIndex??lc.Edge,[e]));(n||o)&&(m+=100);let v=c?.x??a?.x,w=c?.y??a?.y;if(v===void 0||w===void 0)return null;const x=c?.translate??"";return y.jsx(yq,{children:y.jsx("div",{...f,className:Ge("nodrag nopan","likec4-edge-label-container",d),"data-likec4-hovered":n,"data-likec4-color":l,"data-edge-active":o,"data-edge-animated":s||o,...r!==!1&&{"data-likec4-selected":r},...i!==!1&&{"data-likec4-dimmed":i},style:{...a&&{maxWidth:a.width+18},zIndex:m,...u,transform:`translate(${TJ(v)}, ${TJ(w)}) ${x}`},children:p},e)})}const BHe=rR(e=>{const r=n0(),{enableNavigateTo:n}=sr(),{data:{navigateTo:o,relations:i,existsInCurrentView:a}}=e,[l,s,c]=Kx(e),d=Mt(),u=i.length>1||!a,p=u?{...e,data:{...e.data,line:"solid",color:"amber"}}:e;let f=y.jsx(i0,{edgeProps:p,className:fe({transition:"fast"}),children:n&&o&&y.jsx(_2,{...e,onClick:m=>{m.stopPropagation(),d.navigateTo(o)}})});return a||(f=y.jsx(_n,{color:"orange",c:"black",label:"This relationship is not included in the current view",portalProps:{target:`#${r.rootElementId}`},openDelay:800,children:f})),y.jsxs(a0,{...p,children:[y.jsx(l0,{edgeProps:p,svgPath:l,...u&&{strokeWidth:5}}),y.jsx(S2,{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})]})}),IHe=fe({width:"100%",height:"100%",border:"3px dashed",borderColor:"mantine.colors.defaultBorder",borderRadius:"md",display:"flex",justifyContent:"center",alignItems:"center"});function OHe({data:{column:e}}){return y.jsx(Se,{className:IHe,children:y.jsxs(it,{c:"dimmed",fz:"lg",fw:500,children:["No ",e==="incomers"?"incoming":"outgoing"]})})}const LHe=e=>e.context.view.id;function E2(){const e=Xf();return pn(e,LHe)}const FHe=e=>e.context.view;function VHe(){const e=Xf();return pn(e,FHe,Ir)}const qHe=[["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"}]],s0=wt("outline","transform","Transform",qHe),HHe=[["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"}]],dg=wt("outline","file-symlink","FileSymlink",HHe),UHe=[["path",{d:"M13 3l0 7l6 0l-8 11l0 -7l-6 0l8 -11",key:"svg-0"}]],WHe=wt("outline","bolt","Bolt",UHe),GHe=qn({position:"absolute",zIndex:1,justifyContent:"center",alignItems:"center",_smallZoom:{display:"none"}}),YHe=qn({gap:"1.5",justifyContent:"center",alignItems:"center"});function C2({selected:e=!1,data:{hovered:r=!1},buttons:n}){const o=oa();return n.length?y.jsx(hr,{className:GHe,style:{top:"calc(100% - 30px)",transform:"translateX(-50%)",left:"50%",width:"auto",minHeight:30},children:y.jsx(Rr,{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},layoutDependency:`${r}-${e}`,"data-likec4-hovered":r,className:Ge("nodrag nopan",YHe),children:n.map((i,a)=>y.jsx(lr,{component:wa,className:a2({}),initial:!1,whileTap:{scale:1},whileHover:{scale:1.3},onClick:i.onClick,onDoubleClick:nn,children:i.icon||y.jsx(WHe,{})},`${o}-${i.key??a}`))})}):null}const XHe=e=>e.context.subject,KHe=e=>{const{enableNavigateTo:r,enableVscode:n}=sr(),o=Mt(),i=E2(),a=n0(),l=v2(XHe),{navigateTo:s,fqn:c}=e.data,d=S.useMemo(()=>{const u=[];return s&&r&&i!==s&&u.push({key:"navigate",icon:y.jsx(ba,{}),onClick:p=>{p.stopPropagation(),o.navigateTo(s)}}),c!==l&&u.push({key:"relationships",icon:y.jsx(s0,{}),onClick:p=>{p.stopPropagation(),a.navigateTo(c,e.id)}}),n&&u.push({key:"goToSource",icon:y.jsx(dg,{}),onClick:p=>{p.stopPropagation(),o.openSource({element:c})}}),u},[s,r,i,c,l,n,o,a,e.id]);return y.jsx(C2,{buttons:d,...e})};function c0({nodeProps:{data:{hovered:e=!1,dimmed:r=!1,...n}},className:o,children:i,style:a,...l}){let s=ta(n.style.opacity??100,{min:0,max:100});const c=s<99,d=65,u=d+ta((100-d)*(s/100),{min:0,max:100-d}),p=sVe({isTransparent:c,inverseColor:s<60,borderStyle:n.style.border??(c?"dashed":"none")}),f=ta(n.depth??1,{min:1,max:5});return y.jsx(Rr,{className:Ge(p,o),initial:!1,"data-likec4-hovered":e,"data-likec4-color":n.color,"data-compound-depth":f,...r!==!1&&{"data-likec4-dimmed":r},style:{...a,"--_border-transparency":`${u}%`,"--_compound-transparency":`${s}%`},...l,children:i})}function d0({data:e}){const r=bx({element:e,className:"likec4-compound-icon"});return y.jsxs("div",{className:"likec4-compound-title-container",children:[r,y.jsx(it,{component:"h3",className:"likec4-compound-title",truncate:"end",children:e.title})]})}const jJ=T1({base:{transitionDuration:"normal"},variants:{delay:{true:{transitionDelay:{base:"0.2s",_hover:"0s"}}}}}),ZHe=[["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"}]],nR=wt("outline","id","Id",ZHe);function AJ({data:{hovered:e=!1},icon:r,onClick:n}){const o=m9(e,e?130:0)[0]&&e;return y.jsx(Rr,{initial:!1,animate:{scale:o?1.2:1},whileHover:{scale:1.4},whileTap:{scale:1},className:"likec4-compound-details details-button",children:y.jsx(lr,{className:Ge("nodrag nopan",jJ({delay:e&&!o}),a2({variant:"transparent"})),onClick:n,onDoubleClick:nn,children:r??y.jsx(nR,{stroke:1.8,style:{width:"75%"}})})})}const QHe=fe({position:"relative",width:"full",height:"full",padding:"0",margin:"0",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none",_focusVisible:{outline:"none"},_whenSelectable:{pointerEvents:"all",_before:{content:'" "',position:"absolute",top:"[calc(100% - 4px)]",left:"0",width:"full",height:"24px",background:"transparent",pointerEvents:"all"}},_reduceGraphicsOnPan:{_before:{display:"none"}},":where(.react-flow__node.selectable:not(.dragging)) &":{cursor:"pointer"}}),ug=S.forwardRef(({nodeProps:{selected:e=!1,selectable:r=!1,data:{hovered:n=!1,dimmed:o=!1,...i}},className:a,style:l,children:s,...c},d)=>{let u=1;switch(!0){case n:u=1.05;break;case e:u=1.02;break}const{size:p,padding:f,textSize:m}=$b(i.style??{});return y.jsx(Rr,{ref:d,className:Ge(QHe,"group","likec4-element-node",a),initial:!1,...r&&{animate:{scale:u},whileTap:{scale:.98}},"data-likec4-hovered":n,"data-likec4-color":i.color,"data-likec4-shape":i.shape,"data-likec4-shape-size":p,"data-likec4-spacing":f,"data-likec4-text-size":m,...o!==!1&&{"data-likec4-dimmed":o},style:{...l},...c,children:s})});ug.displayName="ElementNodeContainer";function DJ(e,r,n=.065){const o=Math.round(e/2),i=o,a=Pd(n*o),l=r-2*a;return{path:` M ${e},${a} + a ${i},${a} 0,0,0 ${-e} 0 + l 0,${l} + a ${i},${a} 0,0,0 ${e} 0 + l 0,${-l} z - `.replace(/\s+/g," ").trim(),ry:i,rx:a}}function Wee(e,r,n=.185){const o=r,a=Math.round(o/2),i=Uu(o/2*n),s=e-2*i;return{path:` - M ${i},0 - a ${i},${a} 0,0,0 0 ${o} - l ${s},0 - a ${i},${a} 0,0,0 0 ${-o} - z`.replace(/\s+/g," ").trim(),ry:a,rx:i}}const Up={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 Yee({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-Up.width-6,y:n-Up.height,width:Up.width,height:Up.height,viewBox:`0 0 ${Up.width} ${Up.height}`,"data-likec4-fill":"mix-stroke",children:y.jsx("path",{strokeWidth:0,d:Up.path})})]});case"queue":{const{path:o,rx:a,ry:i}=Wee(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}=Uee(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 Zi(e)}}function FGe({shape:e,w:r,h:n}){let o;switch(e){case"queue":o=y.jsx("path",{d:Wee(r,n).path});break;case"storage":case"cylinder":{o=y.jsx("path",{d:Uee(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 HGe({multiple:e,withOutLine:r}){return y.jsxs("div",{className:eJ({shapetype:"html"}),children:[e&&y.jsx("div",{className:"likec4-shape-multiple"}),r&&y.jsx("div",{className:"likec4-shape-outline"})]})}function Om({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 s=e.style?.multiple??!1;if(e.shape==="rectangle")return y.jsx(HGe,{multiple:s,withOutLine:o});const l=eJ({shapetype:"svg"});return y.jsxs(y.Fragment,{children:[s&&y.jsx("svg",{className:l,"data-likec4-shape-multiple":"true",viewBox:`0 0 ${a} ${i}`,children:y.jsx(Yee,{shape:e.shape,w:a,h:i})}),y.jsxs("svg",{className:l,viewBox:`0 0 ${a} ${i}`,children:[o&&y.jsx(FGe,{shape:e.shape,w:a,h:i}),y.jsx(Yee,{shape:e.shape,w:a,h:i})]})]})}const Wp=E.forwardRef(({value:e,textScale:r=1,uselikec4palette:n=!1,hideIfEmpty:o=!1,emptyText:a="no content",className:i,style:s,fontSize:l,...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(ft,{component:"span",fz:"xs",c:"dimmed",style:{userSelect:"none"},children:a})};return y.jsx(zr,{ref:u,...c,className:et(ZUe({uselikec4palette:n,value:e.isMarkdown?"markdown":"plaintext"}),i),style:{...s,...l&&{"--text-fz":`var(--font-sizes-${l}, var(--font-sizes-md))`},"--mantine-scale":r},...d})});Wp.displayName="Markdown";const Gee=E.forwardRef(({className:e,...r},n)=>y.jsx("div",{...r,ref:n,className:et(e,XUe(),"likec4-element")})),Xee=({data:e,...r})=>y.jsx(Xx,{element:e,...r}),Kee=E.forwardRef(({className:e,...r},n)=>y.jsx("div",{...r,className:et(e,"likec4-element-node-content"),ref:n})),Zee=E.forwardRef(({data:{title:e,style:r},className:n,...o},a)=>{const{size:i}=Jv(r),s=i==="sm"||i==="xs";return y.jsx(ft,{component:"div",...o,className:et(n,"likec4-element-title"),"data-likec4-node-title":"",lineClamp:s?2:3,ref:a,children:e})}),Qee=E.forwardRef(({data:e,children:r,className:n,...o},a)=>{const i=e?.technology??r;return ua(i)?y.jsx(ft,{component:"div",...o,className:et(n,"likec4-element-technology"),"data-likec4-node-technology":"",ref:a,children:i}):null}),Jee=E.forwardRef(({data:{description:e,style:r},className:n,...o},a)=>{if(!e?.nonEmpty)return null;const{size:i}=Jv(r),s=i==="sm"||i==="xs";return y.jsx(Wp,{...o,className:et(n,"likec4-element-description"),"data-likec4-node-description":"",value:e,uselikec4palette:!0,hideIfEmpty:!0,maxHeight:e.isMarkdown?"8rem ":void 0,lineClamp:s?3:5,ref:a})});function Ss({iconSize:e,data:r}){return y.jsxs(Gee,{style:_u(e)?{"--likec4-icon-size":`${e}px`}:void 0,children:[y.jsx(Xee,{data:r}),y.jsxs(Kee,{children:[y.jsx(Zee,{data:r}),y.jsx(Qee,{data:r}),y.jsx(Jee,{data:r})]})]})}Ss.Root=Gee,Ss.Icon=Xee,Ss.Content=Kee,Ss.Title=Zee,Ss.Technology=Qee,Ss.Description=Jee;const VGe=be({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 $A({selected:e=!1,data:{hovered:r=!1},icon:n,onClick:o}){return y.jsx(zr,{className:et(VGe,"details-button"),children:y.jsx(br,{className:et("nodrag nopan",zw({variant:"transparent"})),component:Ni,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(DA,{stroke:1.8,style:{width:"75%"}})})})}const qGe=e=>{const r=Qt();return y.jsx($A,{...e,onClick:n=>{n.stopPropagation(),r.openElementDetails(e.data.fqn)}})};function UGe(e){const{enableElementTags:r}=_r();return y.jsxs(Im,{layoutId:e.id,nodeProps:e,children:[y.jsx(Om,{...e}),y.jsx(Ss,{...e}),r&&y.jsx(Ry,{...e}),y.jsx(qGe,{...e}),y.jsx(jGe,{...e}),y.jsx(YGe,{...e})]},e.id)}function WGe(e){const r=Qt();return y.jsxs(Iy,{layoutId:e.id,nodeProps:e,children:[y.jsx(Oy,{...e}),y.jsx(qee,{...e,onClick:n=>{n.stopPropagation(),r.openElementDetails(e.data.fqn)}}),y.jsx(GGe,{...e})]},e.id)}const YGe=({data:{ports:e,height:r}})=>y.jsxs(y.Fragment,{children:[e.in.map((n,o)=>y.jsx(yo,{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(yo,{id:n,type:"source",position:tt.Right,style:{visibility:"hidden",top:`${15+(o+1)*((r-30)/(e.out.length+1))}px`}},n))]}),GGe=({data:e})=>y.jsxs(y.Fragment,{children:[e.ports.in.map((r,n)=>y.jsx(yo,{id:r,type:"target",position:tt.Left,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r)),e.ports.out.map((r,n)=>y.jsx(yo,{id:r,type:"source",position:tt.Right,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r))]}),XGe=[["path",{d:"M15 6l-6 6l6 6",key:"svg-0"}]],ete=Nt("outline","chevron-left","ChevronLeft",XGe),KGe={element:UGe,compound:WGe,empty:TGe},ZGe={relationship:SGe};function tte({actorRef:e}){const r=E.useRef(null);return r.current==null&&(r.current={initialNodes:[],initialEdges:[]}),y.jsx($J.Provider,{value:e,children:y.jsx(O3,{...r.current,children:y.jsx($m,{id:e.sessionId,inherit:!1,children:y.jsx(Qn,{children:y.jsx(eXe,{})})})})})}const QGe=e=>({isActive:e.hasTag("active"),nodes:e.context.xynodes,edges:e.context.xyedges}),JGe=(e,r)=>e.isActive===r.isActive&&an(e.nodes,r.nodes)&&an(e.edges,r.edges),eXe=E.memo(()=>{const e=Ny(),{isActive:r,nodes:n,edges:o}=Ww(QGe,JGe);return y.jsx(IT,{id:e.rootElementId,nodes:n,edges:o,className:et(r?"initialized":"not-initialized","relationships-browser"),nodeTypes:KGe,edgeTypes:ZGe,fitView:!1,onNodeClick:kt((a,i)=>{a.stopPropagation(),e.send({type:"xyflow.nodeClick",node:i})}),onEdgeClick:kt((a,i)=>{a.stopPropagation(),e.send({type:"xyflow.edgeClick",edge:i})}),onPaneClick:kt(a=>{a.stopPropagation(),e.send({type:"xyflow.paneClick"})}),onDoubleClick:kt(a=>{e.send({type:"xyflow.paneDblClick"})}),onViewportResize:kt(()=>{e.send({type:"xyflow.resized"})}),onNodesChange:kt(a=>{e.send({type:"xyflow.applyNodeChanges",changes:a})}),onEdgesChange:kt(a=>{e.send({type:"xyflow.applyEdgeChanges",changes:a})}),onEdgeMouseEnter:kt((a,i)=>{i.data.hovered||e.send({type:"xyflow.edgeMouseEnter",edge:i})}),onEdgeMouseLeave:kt((a,i)=>{i.data.hovered&&e.send({type:"xyflow.edgeMouseLeave",edge:i})}),onSelectionChange:kt(a=>{e.send({type:"xyflow.selectionChange",...a})}),nodesDraggable:!1,nodesSelectable:!0,pannable:!0,zoomable:!0,children:y.jsx(rXe,{})})}),tXe=e=>({subjectId:e.context.subject,viewId:e.context.viewId,scope:e.context.scope,closeable:e.context.closeable}),rXe=E.memo(()=>{const e=Ny(),{subjectId:r,viewId:n,scope:o,closeable:a}=Ww(tXe),i=Ar(),s=Bf();E.useEffect(()=>{s.viewportInitialized&&e.send({type:"xyflow.init",instance:s,store:i})},[i,s.viewportInitialized,e]);const l=rGe(r,n,o),[c,u,{history:d,current:h}]=$U(r);E.useEffect(()=>{c!==r&&u.set(r)},[r]),E.useEffect(()=>{c!==r&&e.navigateTo(c)},[c,e]),qE(()=>{e.updateView(l)},[l,e]);const f=h>0,g=h+1u.back(),onStepForward:()=>u.forward()}),a&&y.jsx(ku,{position:"top-right",children:y.jsx(br,{variant:"default",color:"gray",onClick:b=>{b.stopPropagation(),e.close()},children:y.jsx(Rp,{})})})]})}),nXe=({hasStepBack:e,hasStepForward:r,onStepBack:n,onStepForward:o})=>y.jsx(ku,{position:"top-left",children:y.jsxs(pn,{gap:4,wrap:"nowrap",children:[y.jsxs(Qn,{mode:"popLayout",children:[e&&y.jsx(Ei.div,{layout:!0,initial:{opacity:.05,transform:"translateX(-5px)"},animate:{opacity:1,transform:"translateX(0)"},exit:{opacity:.05,transform:"translateX(-10px)"},children:y.jsx(br,{variant:"default",color:"gray",onClick:a=>{a.stopPropagation(),n()},children:y.jsx(ete,{})})},"back"),r&&y.jsx(Ei.div,{layout:!0,initial:{opacity:.05,transform:"translateX(5px)"},animate:{opacity:1,transform:"translateX(0)"},exit:{opacity:0,transform:"translateX(5px)"},children:y.jsx(br,{variant:"default",color:"gray",onClick:a=>{a.stopPropagation(),o()},children:y.jsx(qu,{})})},"forward")]}),y.jsx(uGe,{})]})}),oXe=be({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)"}),aXe=be({_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]"}}}),iXe=be({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]"}});be({_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]"}}}),be({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"}});const sXe=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M13 18l6 -6",key:"svg-1"}],["path",{d:"M13 6l6 6",key:"svg-2"}]],jm=Nt("outline","arrow-right","ArrowRight",sXe),lXe=[["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"}]],rte=Nt("outline","external-link","ExternalLink",lXe),cXe=co.withProps({color:"dark",fz:"xs",openDelay:600,closeDelay:120,label:"",children:null,offset:8,withinPortal:!1});function uXe({node:e,element:r}){const n=IX(),o=WUe(),a=fn(o,d=>d.children[`${o.id}-relationships`]),i=[...r.incoming()].map(d=>d.id),s=[...r.outgoing()].map(d=>d.id),l=e?O9([...e.incoming()].flatMap(d=>d.$edge.relations)):[],c=e?O9([...e.outgoing()].flatMap(d=>d.$edge.relations)):[],u=[...i,...s].filter(d=>!l.includes(d)&&!c.includes(d)).length;return y.jsxs(Xo,{gap:"xs",pos:"relative",w:"100%",h:"100%",children:[i.length+s.length>0&&y.jsxs(pn,{gap:"xs",wrap:"nowrap",align:"center",children:[y.jsx(Re,{children:y.jsxs(pn,{gap:8,mb:4,wrap:"nowrap",children:[y.jsx(nte,{title:"incoming",total:i.length,included:l.length}),y.jsx(Ba,{size:"sm",variant:"transparent",c:"dimmed",children:y.jsx(jm,{style:{width:16}})}),y.jsx(ft,{className:oXe,children:g1(r.id)}),y.jsx(Ba,{size:"sm",variant:"transparent",c:"dimmed",children:y.jsx(jm,{style:{width:16}})}),y.jsx(nte,{title:"outgoing",total:s.length,included:c.length})]})}),u>0&&y.jsx(cXe,{label:"Current view does not include some relationships",children:y.jsxs(pn,{mt:"xs",gap:6,c:"orange",style:{cursor:"pointer"},children:[y.jsx(PT,{style:{width:14}}),y.jsxs(ft,{fz:"sm",children:[u," relationship",u>1?"s are":" is"," hidden"]})]})})]}),y.jsx(Re,{className:iXe,children:a&&y.jsxs(y.Fragment,{children:[y.jsx(tte,{actorRef:a}),y.jsx(Re,{pos:"absolute",top:12,right:12,children:y.jsx(br,{size:"md",variant:"default",radius:"sm",onClick:d=>{d.stopPropagation();const{subject:h,scope:f,viewId:g}=a.getSnapshot().context;n.send({type:"open.relationshipsBrowser",subject:h,scope:f,viewId:g})},children:y.jsx(rte,{stroke:1.6,style:{width:"70%"}})})})]})})]})}function nte({title:e,total:r,included:n}){return y.jsx(om,{withBorder:!0,shadow:"none",className:aXe,px:"md",py:"xs",radius:"md",mod:{zero:r===0,missing:r!==n},children:y.jsxs(Xo,{gap:4,align:"flex-end",children:[y.jsx(ft,{component:"div",c:r!==n?"orange":"dimmed",tt:"uppercase",fw:600,fz:10,lh:1,children:e}),y.jsx(ft,{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 dXe=be({marginTop:"sm",marginBottom:"sm"}),pXe=be({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)"}}}),MA=({element:e})=>y.jsx(Re,{className:pXe,children:y.jsx(ft,{component:"div",fz:"sm",fw:"500",children:e.title})}),hXe=()=>{};function fXe({element:e}){const r=G0({multiple:!1});r.setHoveredNode=hXe;const n=E.useMemo(()=>{let o=1;const a=s=>({label:s,value:`msg${o++}`,type:"message",children:[]}),i={label:y.jsx(MA,{type:"current",element:e}),value:e.id,element:e,type:"current",children:[...e.children()].map(s=>({label:y.jsx(MA,{type:"descedant",element:s}),value:s.id,element:s,type:"descedant",children:[]}))};return i.children.length===0&&i.children.push(a(y.jsx(K2,{radius:"sm",children:"no nested"}))),[[...e.ancestors()].reduce((s,l)=>({label:y.jsx(MA,{type:"ancestor",element:l}),value:l.id,element:l,type:"ancestor",children:[s]}),i)]},[e]);return E.useEffect(()=>{r.expandAllNodes()},[n]),y.jsxs(y.Fragment,{children:[y.jsxs(F2,{variant:"light",color:"orange",title:"In development",icon:y.jsx(PT,{}),children:["We need your feedback. Share your thoughts and ideas -"," ",y.jsx(W7,{fz:"sm",fw:500,underline:"hover",c:"orange",href:"https://github.com/likec4/likec4/discussions/",target:"_blank",children:"GitHub discussions"})]}),y.jsx(hm,{levelOffset:"xl",allowRangeSelection:!1,expandOnClick:!1,expandOnSpace:!1,classNames:{label:dXe},data:n,tree:r})]})}const mXe=[["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"}]],PA=Nt("outline","stack-2","Stack2",mXe),ote=kp.withProps({mb:8,labelPosition:"left",variant:"dashed"}),ate=co.withProps({color:"dark",fz:"xs",openDelay:400,closeDelay:150,label:"",children:null,offset:4}),ite=ft.withProps({component:"div",fz:11,fw:500,c:"dimmed",lh:1}),jy=ft.withProps({component:"div",fz:"xs",c:"dimmed",className:HWe}),Lm=24,gXe=["Properties","Relationships","Views","Structure","Deployments"];function yXe({viewId:e,fromNode:r,rectFromNode:n,fqn:o,onClose:a}){const[i,s]=E.useState(!1),l=m$e(),c=l.width||window.innerWidth||1200,u=l.height||window.innerHeight||800,[d,h]=u$e({key:"likec4:element-details:active-tab",defaultValue:"Properties"}),f=Qt(),g=RWe(),b=r?g.findNode(r):g.findNodeWithElement(o),x=g.$model.element(o),[w,k]=En([...x.views()],Sn(K=>K.$view),Yq(K=>K._type==="element"&&K.viewOf===o));let C=b?.navigateTo?.$view??x.defaultView?.$view??null;C?.id===e&&(C=null);const _=q3(x.links),T=UUe(),A=(b?.$node.children?.length??0)>0,R=Math.min(700,c-Lm*2),D=Math.min(650,u-Lm*2),N=n?{x:n.x+(A?n.width-R/2:n.width/2),y:n.y+(A?0:n.height/2)}:{x:c/2,y:u/2},M=n?Math.min(n.width/R,n.height/D,.9):1,O=Math.round(us(N.x-R/2,{min:Lm,max:c-R-Lm})),F=Math.round(us(N.y-(A?0:60),{min:Lm,max:u-D-Lm})),L=us((N.x-O)/R,{min:.1,max:.9}),U=us((N.y-F)/D,{min:.1,max:.9}),P=HQ(R),V=HQ(D);qp(()=>{P.set(R),V.set(D)},[R,D]);const I=E.useCallback((K,j)=>{P.set(Math.max(P.get()+j.delta.x,320)),V.set(Math.max(V.get()+j.delta.y,300))},[]),H=E.useRef(null),q=Cf(a),Z=HE(()=>{q.current()},[],50),W=b?.$node.notation??null,G=Xx({element:{id:o,title:x.title,icon:b?.icon??x.icon},className:PWe});return Zx(()=>{H.current?.open||H.current?.showModal()},20),Zx(()=>{s(!0)},220),y.jsx(Ei.dialog,{ref:H,className:et(NWe,A0.classNames.fullWidth),layout:!0,initial:{[Bw]:"0px",[Fw]:"5%"},animate:{[Bw]:"3px",[Fw]:"60%"},exit:{[Bw]:"0px",[Fw]:"0%",transition:{duration:.1}},onClick:K=>{K.stopPropagation(),K.target?.nodeName?.toUpperCase()==="DIALOG"&&H.current?.close()},onDoubleClick:Cn,onPointerDown:Cn,onClose:K=>{K.stopPropagation(),Z()},children:y.jsx(A0,{forwardProps:!0,removeScrollBar:!1,children:y.jsxs(Ei.div,{layout:!0,layoutRoot:!0,drag:!0,dragControls:T,dragElastic:0,dragMomentum:!1,dragListener:!1,"data-likec4-color":b?.color??x.color,className:DWe,initial:{top:F,left:O,width:R,height:D,opacity:0,originX:L,originY:U,scale:Math.max(M,.65)},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9,translateY:-10,transition:{duration:.1}},style:{width:P,height:V},children:[y.jsxs("div",{className:$We,onPointerDown:K=>T.start(K),children:[y.jsxs(sn,{alignItems:"start",justify:"space-between",gap:"sm",mb:"sm",flexWrap:"nowrap",children:[y.jsxs(sn,{alignItems:"start",gap:"sm",style:{cursor:"default"},flexWrap:"nowrap",children:[G,y.jsxs("div",{children:[y.jsx(ft,{component:"div",className:MWe,children:x.title}),W&&y.jsx(ft,{component:"div",c:"dimmed",fz:"sm",fw:500,lh:1.3,lineClamp:1,children:W})]})]}),y.jsx(wp,{size:"lg",onClick:K=>{K.stopPropagation(),Z()}})]}),y.jsxs(sn,{alignItems:"baseline",gap:"sm",flexWrap:"nowrap",children:[y.jsxs("div",{children:[y.jsx(ite,{children:"kind"}),y.jsx(vl,{radius:"sm",size:"sm",fw:600,color:"gray",style:{cursor:"pointer"},onClick:K=>{K.stopPropagation(),f.openSearch(`kind:${x.kind}`)},children:x.kind})]}),y.jsxs("div",{style:{flex:1},children:[y.jsx(ite,{children:"tags"}),y.jsxs(mc,{gap:4,flex:1,mt:6,wrap:"wrap",children:[x.tags.map(K=>y.jsx(Lw,{tag:K,cursor:"pointer",onClick:j=>{j.stopPropagation(),f.openSearch(`#${K}`)}},K)),x.tags.length===0&&y.jsx(vl,{radius:"sm",size:"sm",fw:600,color:"gray",children:"—"})]})]}),y.jsxs(z2,{style:{alignSelf:"flex-start"},children:[_&&y.jsx(br,{component:"a",href:_.url,target:"_blank",size:"lg",variant:"default",radius:"sm",children:y.jsx(rte,{stroke:1.6,style:{width:"65%"}})}),y.jsx(_Le,{feature:"Vscode",children:y.jsx(ate,{label:"Open source",children:y.jsx(br,{size:"lg",variant:"default",radius:"sm",onClick:K=>{K.stopPropagation(),f.openSource({element:x.id})},children:y.jsx(zm,{stroke:1.8,style:{width:"62%"}})})})}),C&&y.jsx(ate,{label:"Open default view",children:y.jsx(br,{size:"lg",variant:"default",radius:"sm",onClick:K=>{K.stopPropagation(),f.navigateTo(C.id,r??void 0)},children:y.jsx(Ri,{style:{width:"70%"}})})})]})]})]}),y.jsx(EJ,{children:y.jsxs(Sp,{value:d,onChange:K=>h(K),variant:"none",classNames:{root:OWe,list:jWe,tab:LWe,panel:BWe},children:[y.jsx(Y0,{children:gXe.map(K=>y.jsx(pm,{value:K,children:K},K))}),y.jsx(yc,{value:"Properties",children:y.jsx(bl,{scrollbars:"y",type:"scroll",offsetScrollbars:!0,children:y.jsxs(Re,{className:FWe,pt:"xs",children:[x.hasSummary&&y.jsxs(y.Fragment,{children:[y.jsx(jy,{children:"summary"}),y.jsx(Wp,{value:x.summary})]}),y.jsxs(y.Fragment,{children:[y.jsx(jy,{children:"description"}),y.jsx(Wp,{value:x.description,emptyText:"no description"})]}),x.technology&&y.jsx(bXe,{title:"technology",children:x.technology}),x.links.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(jy,{children:"links"}),y.jsx(sn,{gap:"xs",flexWrap:"wrap",children:x.links.map((K,j)=>y.jsx(DT,{value:K},j))})]}),x.$element.metadata&&y.jsx(vXe,{value:x.$element.metadata})]})})}),y.jsx(yc,{value:"Relationships",children:y.jsx(Np,{overrides:{enableRelationshipBrowser:!1,enableNavigateTo:!1},children:i&&d==="Relationships"&&y.jsx(uXe,{element:x,node:b??null})})}),y.jsx(yc,{value:"Views",children:y.jsx(bl,{scrollbars:"y",type:"auto",children:y.jsxs(Xo,{gap:"lg",children:[w.length>0&&y.jsxs(Re,{children:[y.jsx(ote,{label:"views of the element (scoped)"}),y.jsx(Xo,{gap:"sm",children:w.map(K=>y.jsx(ste,{view:K,onNavigateTo:j=>f.navigateTo(j,r??void 0)},K.id))})]}),k.length>0&&y.jsxs(Re,{children:[y.jsx(ote,{label:"views including this element"}),y.jsx(Xo,{gap:"sm",children:k.map(K=>y.jsx(ste,{view:K,onNavigateTo:j=>f.navigateTo(j,r??void 0)},K.id))})]})]})})}),y.jsx(yc,{value:"Structure",children:y.jsx(bl,{scrollbars:"y",type:"auto",children:y.jsx(fXe,{element:x})})}),y.jsx(yc,{value:"Deployments",children:y.jsx(bl,{scrollbars:"y",type:"auto",children:y.jsx(aYe,{elementFqn:x.id})})})]})}),y.jsx(Ei.div,{className:VWe,drag:!0,dragElastic:0,dragMomentum:!1,onDrag:I,dragConstraints:{top:0,left:0,right:0,bottom:0}})]})})})}const ste=({view:e,onNavigateTo:r})=>y.jsx(Er,{className:zWe,onClick:n=>r(e.id,n),children:y.jsxs(pn,{gap:6,align:"start",wrap:"nowrap",children:[y.jsx(Ba,{size:"sm",variant:"transparent",children:e._type==="deployment"?y.jsx(PA,{stroke:1.8}):y.jsx(Ri,{stroke:1.8})}),y.jsx(Re,{children:y.jsx(ft,{component:"div",className:IWe,lineClamp:1,children:e.title||"untitled"})})]})});function bXe({title:e,emptyValue:r="undefined",children:n,style:o,...a}){return y.jsxs(y.Fragment,{children:[y.jsx(jy,{children:e}),y.jsx(ft,{component:"div",...z9(n)&&{c:"dimmed"},fz:"md",style:{whiteSpace:"preserve-breaks",userSelect:"all",...o},...a,children:n||r})]})}function vXe({value:e}){const r=M9(e).sort(([n],[o])=>n.localeCompare(o));return y.jsx(EJ,{children:y.jsxs(y.Fragment,{children:[y.jsx(jy,{style:{justifySelf:"end",textAlign:"right"},children:"metadata"}),y.jsx(Re,{className:be({display:"grid",gridTemplateColumns:"min-content 1fr",gridAutoRows:"min-content",gap:"[12px 16px]",alignItems:"baseline",justifyItems:"stretch"}),children:r.map(([n,o])=>y.jsx(YWe,{label:n,value:o},n))})]})})}const xXe=e=>({viewId:e.context.currentView.id,fromNode:e.context.initiatedFrom.node,rectFromNode:e.context.initiatedFrom.clientRect,fqn:e.context.subject});function wXe({actorRef:e,onClose:r}){const n=fn(e,xXe,an);return y.jsx(yT.Provider,{value:e,children:y.jsx(yXe,{onClose:r,...n})})}const t4="--_blur",r4="--_opacity",kXe="--_level",Ly=E.forwardRef(({onClose:e,className:r,classes:n,overlayLevel:o=0,children:a,fullscreen:i=!1,withBackdrop:s=!0,backdrop:l,openDelay:c=130,...u},d)=>{const[h,f]=E.useState(c===0),g=_U(h),b=E.useRef(null),x=E.useRef(!1),w=VQ()!==!0,k=E.useRef(e);k.current=e;const C=HE(()=>{x.current||(x.current=!0,k.current())},[],50);E.useLayoutEffect(()=>{b.current?.open||b.current?.showModal()},[]),Zx(()=>{f(!0)},c>0?c:void 0);const _=QUe({fullscreen:i,withBackdrop:s});let T=o>0?"50%":"60%";return l?.opacity!==void 0&&(T=`${l.opacity*100}%`),y.jsx(Ei.dialog,{ref:Hr(b,g,d),className:et(n?.dialog,r,_,i&&A0.classNames.fullWidth),layout:!0,style:{[kXe]:o},...w?{initial:{[t4]:"0px",[r4]:"0%",scale:.95,originY:0,translateY:-20,opacity:0},animate:{[t4]:o>0?"4px":"8px",[r4]:T,scale:1,opacity:1,translateY:0,transition:{delay:.075}},exit:{opacity:0,scale:.98,translateY:-20,transition:{duration:.1},[t4]:"0px",[r4]:"0%"}}:{initial:{[t4]:"8px",[r4]:T}},onClick:A=>{if(A.stopPropagation(),A.target?.nodeName?.toUpperCase()==="DIALOG"){b.current?.close();return}},onCancel:A=>{A.preventDefault(),A.stopPropagation(),C()},onDoubleClick:Cn,onPointerDown:Cn,onClose:A=>{A.stopPropagation(),C()},...u,children:y.jsx(A0,{forwardProps:!0,children:y.jsx("div",{className:et(n?.body,"likec4-overlay-body"),children:h&&y.jsx(y.Fragment,{children:a})})})})});Ly.displayName="Overlay";const n4=(e,r)=>e.size>2&&r.size!==e.size?new Set(uu([...Ix(e).flatten(),...r])):e.size>1?new Set(uu([...e])):e;function _Xe(e,r){const n=new Set,o=new Set,a=new Set,i={sources:new Set,targets:new Set},s=(l,c)=>{c==="source"?(n.add(l),i.sources.add(l)):(a.add(l),i.targets.add(l))};for(const l of e){const c=r.findEdge(l),u=c?[...c.relationships("model")]:[];if(!c||!bo(u,1)||!c.source.hasElement()||!c.target.hasElement())continue;const d=c.source.element,h=c.target.element;s(d,"source"),s(h,"target");for(const f of u){if(o.add(f),f.source!==d){s(f.source,"source");for(const g of f.source.ancestors()){if(g===d)break;n.add(g)}}if(f.target!==h){s(f.target,"target");for(const g of f.target.ancestors()){if(g===h)break;a.add(g)}}}}return{sources:n4(n,i.sources),targets:n4(a,i.targets),relationships:o}}function EXe({source:e,target:r}){const n=new Set,o=new Set,a=new Set,i={sources:new Set,targets:new Set},s=(c,u)=>{u==="source"?(n.add(c),i.sources.add(c)):(a.add(c),i.targets.add(c))};e&&s(e,"source"),r&&s(r,"target");const[l]=r8e.findConnection(e,r,"directed");if(!l)return{sources:n,targets:a,relationships:o};for(const c of l.relations){const u=c.source,d=c.target;if(s(u,"source"),s(d,"target"),o.add(c),e!==u){at(to(e,u),`${e.id} is not an ancestor of ${u.id}`);for(const h of u.ancestors()){if(h===e)break;n.add(h)}}if(r!==d){at(to(r,d),`${r.id} is not an ancestor of ${d.id}`);for(const h of d.ancestors()){if(h===r)break;a.add(h)}}}return{sources:n4(n,i.sources),targets:n4(a,i.targets),relationships:o}}const lte=E.createContext(null);function zA(){return bt(E.useContext(lte),"No RelationshipDetailsActorContext")}function cte(e,r=an){const n=kt(e),o=zA();return fn(o,n,r)}function IA(){const e=zA();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 Cs={dagre:{ranksep:60,nodesep:35,edgesep:25},edgeLabel:{width:220,height:14},nodeWidth:330,nodeHeight:180,compound:{labelHeight:2,paddingTop:50,paddingBottom:32}};function SXe(){const e=new Gw.graphlib.Graph({directed:!0,compound:!0,multigraph:!0});return e.setGraph({...Cs.dagre,rankdir:"LR"}),e.setDefaultEdgeLabel(()=>({...Cs.edgeLabel})),e.setDefaultNodeLabel(()=>({})),e}const OA="-port";function ute(e,r,n){const o=new Xn(i=>({id:`${e}-${i}`,portId:`${e}-${i}`})),a=Ix(r);for(const i of a.sorted){const s=a.children(i).length>0,l=i.id,c=`${e}-${l}`,u=s?`${c}${OA}`:c;o.set(l,{id:c,portId:u}),n.setNode(c,{column:e,element:i,isCompound:s,portId:u,inPorts:[],outPorts:[],width:Cs.nodeWidth,height:Cs.nodeHeight}),s&&(n.setNode(u,{element:i,portId:u,isCompound:s,inPorts:[],outPorts:[],width:Cs.nodeWidth-Cs.dagre.ranksep,height:Cs.compound.labelHeight}),n.setParent(u,c));const d=a.parent(i);d&&n.setParent(c,`${e}-${d.id}`)}return{...a,byId:i=>{const s=a.byId(i),l=o.get(s.id);return{element:s,graph:l}},graphNodes:o}}function CXe(e){return Gw.layout(e,{}),r=>{const n=e.node(r),{x:o,y:a,width:i,height:s}=n;return{position:{x:o-Math.round(i/2),y:a-Math.round(s/2)},width:i,height:s}}}function TXe(e,r){const n=SXe(),o=ute("sources",e.sources,n),a=ute("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,{...Cs.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}}),s=[...o.graphNodes.values(),...a.graphNodes.values()];for(const{id:k}of s){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 l=n.edgeCount();if(l>5)for(const k of n.edges())n.setEdge(k,{...Cs.edgeLabel,width:l>10?800:400});const c=CXe(n),u=En(s,hp(k=>k.id===k.portId),V3(k=>[k.id,c(k.id)]));function d(k){return u[k]??=En(n.children(k)??[],hp(C=>!C.endsWith(OA)),Sn(C=>d(C)),Kq(C=>{at(C.length>0,`Node ${k} has no nested nodes`)}),U3((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:A}=c(k);return C=C-Cs.compound.paddingTop,_=_+Cs.compound.paddingBottom,{position:{x:T,y:C},width:A,height:_-C}})}function h(k){const C=n.parent(k);return C?h(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,_)=>En(_,Sn((T,A)=>({port:k+"_"+C+A,topY:d(T).position.y})),W3(mp("topY")),Sn(mp("port")));let b=0,x=0;const w=s.map(({id:k})=>{const{element:C,inPorts:_,outPorts:T,column:A}=n.node(k);let{position:R,width:D,height:N}=d(k);const M=n.parent(k),O=(n.children(k)??[]).filter(V=>!V.endsWith(OA));b=Math.min(b,R.x),x=Math.min(x,R.y);const F=r?X1(C.scopedViews(),V=>V.id!==r.id)?.id??null:null,L=r?.findNodeWithElement(C.id),U=r&&!L?X1(C.ancestors(),V=>!!r.findNodeWithElement(V.id))?.id:null,P=L??(U&&r?.findNodeWithElement(U));return U1({id:k,parent:M??null,x:R.x,y:R.y,title:C.title,description:C.summary,technology:C.technology,tags:[...C.tags],links:null,color:P?.color??C.color,shape:L?.shape??C.shape,icon:L?.icon??C.icon??"none",modelRef:C.id,kind:C.kind,level:h(k),labelBBox:{x:R.x,y:R.y,width:D,height:N},style:Eu({...(L??P)?.style,...C.$element.style},["shape","color","icon"]),navigateTo:F,...O.length>0&&{depth:f(k)},children:O,width:D,height:N,column:A,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:A,source:R,target:D,relationship:N,sourceHandle:M,targetHandle:O}=B3(i,V=>V.name===T),F=N.title??"untitled",L=N.navigateTo?.id??null,U=N.description??null,P=N.technology??null;return k.push({id:A,source:R,sourceHandle:M,target:D,targetHandle:O,label:F,color:N.color,...L&&{navigateTo:L},...U&&{description:U},...P&&{technology:P},points:_.points.map(V=>[V.x,V.y]),line:N.line,relationId:N.id,parent:null}),k},[])}}const jA=be.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"}}),dte=be({paddingLeft:"1",gridColumn:1},jA),AXe=be({gridColumn:2},jA),pte=be({gridColumn:3,paddingRight:"1"},jA),hte="likec4-edge-label",RXe=et(hte,be({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"}})),NXe=be({display:"contents",[`&:last-child .${hte}`]:{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"}}),DXe=be({display:"grid",gridTemplateColumns:"1fr 30px 1fr",gridAutoRows:"min-content max-content",gap:"0",alignItems:"stretch"});be({display:"grid",gridTemplateColumns:"min-content 1fr",gridAutoRows:"min-content max-content",gap:"[10px 12px]",alignItems:"baseline",justifyItems:"start"});const $Xe=be({maxHeight:["70vh","calc(100cqh - 70px)"]}),MXe=({edge:e,view:r})=>{const n=IA(),o=E.useRef(null),a=r.nodes.find(l=>l.id===e.source),i=r.nodes.find(l=>l.id===e.target),s=r.edges.flatMap(l=>{const c=r.nodes.find(d=>d.id===l.source),u=r.nodes.find(d=>d.id===l.target);return c&&u?{id:l.id,source:c,target:u,label:l.label}:[]});return!a||!i||s.length===0?null:y.jsxs(Rr,{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($u,{children:y.jsxs(Kn,{size:"xs",variant:"default",fw:"500",style:{padding:"0.25rem 0.75rem"},rightSection:y.jsx(RA,{size:16}),children:[y.jsx(Re,{className:dte,maw:160,p:0,mod:{"likec4-color":a.color},children:y.jsx(ft,{component:"span",truncate:!0,children:a.title})}),y.jsx(Ba,{color:"dark",variant:"transparent",size:"xs",children:y.jsx(jm,{style:{width:"80%"}})}),y.jsx(Re,{className:pte,maw:160,p:0,mod:{"likec4-color":i.color},children:y.jsx(ft,{component:"span",truncate:!0,children:i.title})})]})}),y.jsx(fc,{p:0,miw:250,maw:400,children:y.jsx(pa,{className:$Xe,scrollbars:"y",type:"never",viewportRef:o,children:y.jsx(Re,{className:DXe,p:"xs",maw:400,children:s.map(l=>y.jsxs("div",{className:NXe,"data-selected":l.id===e.id,onClick:c=>{c.stopPropagation(),n.navigateTo(l.id)},children:[y.jsx(Re,{className:dte,mod:{"edge-id":l.id,"likec4-color":l.source.color},children:y.jsx(ft,{component:"span",truncate:!0,children:l.source.title})}),y.jsx(Re,{className:AXe,children:y.jsx(Ba,{color:"dark",variant:"transparent",size:"xs",children:y.jsx(jm,{style:{width:"80%"}})})}),y.jsx(Re,{className:pte,mod:{"likec4-color":l.target.color},children:y.jsx(ft,{component:"span",truncate:!0,children:l.target.title})}),y.jsx(Re,{className:RXe,children:y.jsx(ft,{component:"span",truncate:!0,children:l.label||"untitled"})})]},l.id))})})})]})},PXe=NA(e=>{const{enableNavigateTo:r}=_r(),{data:{navigateTo:n}}=e,[o,a,i]=C3(e),s=Qt();return y.jsxs(My,{...e,children:[y.jsx(Py,{edgeProps:e,svgPath:o}),y.jsx(Qw,{edgeProps:e,labelPosition:{x:a,y:i,translate:"translate(-50%, 0)"},style:{maxWidth:Math.abs(e.targetX-e.sourceX-100)},children:y.jsx($y,{edgeProps:e,children:r&&n&&y.jsx(Zw,{...e,onClick:l=>{l.stopPropagation(),s.navigateTo(n)}})})})]})}),zXe=e=>{const{enableNavigateTo:r,enableVscode:n}=_r(),o=Qt(),a=Jw(),i=[],{navigateTo:s,fqn:l}=e.data;return s&&r&&a!==s&&i.push({key:"navigate",icon:y.jsx(Ri,{}),onClick:c=>{c.stopPropagation(),o.navigateTo(s)}}),l&&i.push({key:"relationships",icon:y.jsx(zy,{}),onClick:c=>{c.stopPropagation(),o.openRelationshipsBrowser(l)}}),l&&n&&i.push({key:"goToSource",icon:y.jsx(zm,{}),onClick:c=>{c.stopPropagation(),o.openSource({element:l})}}),y.jsx(e4,{buttons:i,...e})};function IXe(e,r){return e.id===r.id&<(e.type,r.type)&<(e.selected??!1,r.selected??!1)&<(e.dragging??!1,r.dragging??!1)&<(e.width??0,r.width??0)&<(e.height??0,r.height??0)&<(e.zIndex??0,r.zIndex??0)&<(e.data,r.data)}const fte=Symbol.for("isMemoized");function _c(e,r="Node"){if(e.hasOwnProperty(fte))return e;const n=E.memo(e,IXe);return n.displayName=r,Object.defineProperty(n,fte,{enumerable:!1,writable:!1,value:!0}),n}const mte=e=>{const r=Qt();return y.jsx($A,{...e,onClick:n=>{n.stopPropagation(),r.openElementDetails(e.data.fqn)}})},OXe=_c(e=>{const{enableElementTags:r}=_r();return y.jsxs(Im,{nodeProps:e,children:[y.jsx(Om,{...e}),y.jsx(Ss,{...e}),r&&y.jsx(Ry,{...e}),y.jsx(mte,{...e}),y.jsx(zXe,{...e}),y.jsx(LXe,{...e})]})}),jXe=_c(e=>y.jsxs(Iy,{nodeProps:e,children:[y.jsx(mte,{...e}),y.jsx(Oy,{...e}),y.jsx(BXe,{...e})]})),LXe=({data:{ports:e,height:r}})=>y.jsxs(y.Fragment,{children:[e.in.map((n,o)=>y.jsx(yo,{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(yo,{id:n,type:"source",position:tt.Right,style:{visibility:"hidden",top:`${15+(o+1)*((r-30)/(e.out.length+1))}px`}},n))]}),BXe=({data:e})=>y.jsxs(y.Fragment,{children:[e.ports.in.map((r,n)=>y.jsx(yo,{id:r,type:"target",position:tt.Left,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r)),e.ports.out.map((r,n)=>y.jsx(yo,{id:r,type:"source",position:tt.Right,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r))]}),FXe={element:OXe,compound:jXe},HXe={relationship:PXe};function VXe({actorRef:e}){const r=E.useRef(null);return r.current==null&&(r.current={defaultNodes:[],defaultEdges:[]}),y.jsx(lte.Provider,{value:e,children:y.jsx(O3,{...r.current,children:y.jsx($m,{id:e.sessionId,inherit:!1,children:y.jsxs(Qn,{children:[y.jsx(YXe,{},"xyflow"),y.jsx(UXe,{},"sync")]})})})})}const qXe=e=>({...e.context.subject,viewId:e.context.viewId}),UXe=E.memo(()=>{const e=zA(),r=fn(e,qXe,lt),n=Ko(),o=n.findView(r.viewId)??null,a=E.useMemo(()=>{let l;if("edgeId"in r&&ua(r.edgeId)){at(o,`view ${r.viewId} not found`);const c=bt(o.findEdge(r.edgeId),`edge ${r.edgeId} not found in ${r.viewId}`);l=_Xe([c.id],o)}else if(r.source&&r.target)l=EXe({source:n.element(r.source),target:n.element(r.target)});else return null;return TXe(l,o)},[r,o,n]),i=Ar(),s=Bf();return E.useEffect(()=>{s.viewportInitialized&&e.send({type:"xyflow.init",instance:s,store:i})},[i,s.viewportInitialized,e]),E.useEffect(()=>{a!==null&&e.send({type:"update.layoutData",data:a})},[a,e]),null}),WXe=({context:e})=>({initialized:e.initialized.xydata&&e.initialized.xyflow,nodes:e.xynodes,edges:e.xyedges}),YXe=E.memo(()=>{const e=IA(),{initialized:r,nodes:n,edges:o}=cte(WXe,lt);return y.jsxs(IT,{id:e.rootElementId,nodes:n,edges:o,className:et(r?"initialized":"not-initialized","likec4-relationship-details"),nodeTypes:FXe,edgeTypes:HXe,onNodesChange:io(a=>{e.send({type:"xyflow.applyNodeChanges",changes:a})}),onEdgesChange:io(a=>{e.send({type:"xyflow.applyEdgeChanges",changes:a})}),fitViewPadding:.05,onNodeClick:io((a,i)=>{a.stopPropagation(),e.send({type:"xyflow.nodeClick",node:i})}),onEdgeClick:io((a,i)=>{a.stopPropagation(),e.send({type:"xyflow.edgeClick",edge:i})}),onPaneClick:io(()=>{e.send({type:"xyflow.paneClick"})}),onDoubleClick:io(()=>{e.send({type:"xyflow.paneDblClick"})}),onViewportResize:io(()=>{e.send({type:"xyflow.resized"})}),onEdgeMouseEnter:io((a,i)=>{i.data.hovered||e.send({type:"xyflow.edgeMouseEnter",edge:i})}),onEdgeMouseLeave:io((a,i)=>{i.data.hovered&&e.send({type:"xyflow.edgeMouseLeave",edge:i})}),onSelectionChange:io(a=>{e.send({type:"xyflow.selectionChange",...a})}),nodesDraggable:!1,nodesSelectable:!0,fitView:!1,pannable:!0,zoomable:!0,children:[y.jsx(XXe,{}),y.jsx(ku,{position:"top-right",children:y.jsx(br,{variant:"default",color:"gray",onClick:a=>{a.stopPropagation(),e.close()},children:y.jsx(Rp,{})})})]})}),GXe=({context:e})=>({subject:e.subject,viewId:e.viewId}),XXe=E.memo(()=>{const{subject:e,viewId:r}=cte(GXe,lt),n=Ko().findView(r);if(!n||!n.isDiagram())return null;const o=[...n.edges()];let a="edgeId"in e&&ua(e.edgeId)?o.find(i=>i.id===e.edgeId):B3(o,i=>i.source.element?.id===e.source&&i.target.element?.id===e.target)||B3(o,i=>(i.source.element?.id===e.source||to(i.source.element?.id??"__",e.source??"__"))&&(i.target.element?.id===e.target||to(i.target.element?.id??"__",e.target??"__")));return a?y.jsx(KXe,{edge:a.$edge,view:n.$view}):null}),KXe=({edge:e,view:r})=>{const n=IA(),o=e.id,[a,i,{history:s,current:l}]=$U(e.id);E.useEffect(()=>{a!==o&&i.set(o)},[o]),E.useEffect(()=>{a!==o&&n.navigateTo(a)},[a]);const c=l>0,u=l+1{d.stopPropagation(),i.back()},children:y.jsx(ete,{})})},"back"),u&&y.jsx(Ei.div,{layout:!0,initial:{opacity:.05,transform:"translateX(5px)"},animate:{opacity:1,transform:"translateX(0)"},exit:{opacity:0,transform:"translateX(5px)"},children:y.jsx(br,{variant:"default",color:"gray",onClick:d=>{d.stopPropagation(),i.forward()},children:y.jsx(qu,{})})},"forward"),y.jsx(pn,{gap:"xs",wrap:"nowrap",ml:"sm",children:y.jsx(MXe,{edge:e,view:r})})]})})})},ZXe=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:Zi(r)}}).filter(Vq),QXe=(e,r)=>e.length===r.length&&e.every((n,o)=>n.actorRef===r[o].actorRef);function JXe({overlaysActorRef:e}){const r=Iw(c=>c.domNode),n=E.useMemo(()=>r?.querySelector(".react-flow__renderer")??null,[r]),o=fn(e,ZXe,QXe),a=VQ()??!1,i=o.some(c=>c.type==="elementDetails");E.useEffect(()=>{!n||a||NVe(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 s=c=>{e.send({type:"close",actorId:c.id})},l=o.map((c,u)=>{switch(c.type){case"relationshipsBrowser":return y.jsx(Ly,{overlayLevel:u,onClose:()=>s(c.actorRef),children:y.jsx(tte,{actorRef:c.actorRef})},c.actorRef.sessionId);case"relationshipDetails":return y.jsx(Ly,{overlayLevel:u,onClose:()=>s(c.actorRef),children:y.jsx(VXe,{actorRef:c.actorRef})},c.actorRef.sessionId);case"elementDetails":return y.jsx(wXe,{actorRef:c.actorRef,onClose:()=>s(c.actorRef)},c.actorRef.sessionId);default:Zi(c)}});return y.jsx(Np.Overlays,{children:y.jsx(RS,{FallbackComponent:NS,onReset:()=>e.send({type:"close.all"}),children:y.jsx($m,{children:y.jsx(Qn,{children:l})})})})}const[eKe,Wu]=hi("SearchActorContext"),tKe=e=>e.context.searchValue;function rKe(){const e=Wu(),r=fn(e,tKe),n=E.useCallback(o=>{e.send({type:"change.search",search:o})},[e]);return[r,n]}const nKe=e=>{const r=e.context.searchValue.trim().toLowerCase();return r.length>1?r:""};function LA(){const e=Wu();return E.useDeferredValue(fn(e,nKe))}function oKe(){const e=Wu();return E.useCallback(r=>{e.send({type:"change.search",search:r})},[e])}const aKe=e=>e.context.pickViewFor;function iKe(){const e=Wu();return fn(e,aKe)}const BA=be.raw({outline:"none",background:"mantine.colors.primary[8]",borderColor:"mantine.colors.primary[9]"}),o4=".mantine-Tree-node:focus > .mantine-Tree-label &",sKe=be.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:{...BA,borderColor:"mantine.colors.primary[9]",background:"mantine.colors.primary[8]/60"},_focus:BA,[o4]:BA,_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]"}}}),a4="likec4-focusable",i4={ref:"var(--likec4-icon-size, 24px)"},lKe=be.raw({color:{base:"mantine.colors.dimmed",_light:"mantine.colors.gray[5]",_groupHover:"mantine.colors.primary[0]",_groupFocus:"mantine.colors.primary[0]"},[o4]:{color:"mantine.colors.primary[0]"},flex:`0 0 ${i4.ref}`,height:i4.ref,width:i4.ref,display:"flex",alignItems:"center",justifyContent:"center",alignSelf:"flex-start","--ti-size":i4.ref,"& svg, & img":{width:"100%",height:"auto",maxHeight:"100%",pointerEvents:"none"},"& img":{objectFit:"contain"},"&.likec4-shape-icon svg":{strokeWidth:1.5}}),cKe=be.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"}},[o4]:{color:{base:"mantine.colors.primary[1]",_light:"mantine.colors.white"}}}),gte=be.raw({color:{base:"mantine.colors.dimmed",_groupHover:{base:"mantine.colors.primary[1]",_light:"mantine.colors.primary[0]"},_groupFocus:"mantine.colors.primary[0]"},[o4]:{color:"mantine.colors.primary[0]"}}),uKe=be.raw(gte,{marginTop:"1",fontSize:"12px",lineHeight:"1.4",":where([data-disabled]) &":{opacity:.85}}),dKe=be({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"}),yte=vEe({slots:["root","icon","title","description","descriptionColor"],className:"search-button",base:{root:sKe,icon:lKe,title:cKe,description:uKe,descriptionColor:gte}}),FA="@container likec4-tree (max-width: 450px)",pKe=be({outline:"none",marginBottom:"2"}),hKe=be(QG.raw({containerName:"likec4-tree"}),{containerType:"inline-size",height:"100%"}),fKe=be({display:"flex",alignItems:"baseline",outline:"none !important",gap:"1"}),mKe=be({marginTop:"2"}),gKe=be({color:"mantine.colors.dimmed"}),yKe=be({[FA]:{flexDirection:"column-reverse",alignItems:"flex-start",gap:"0.5"}}),bKe=be({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"}}),vKe=be({"--likec4-icon-size":"24px",[FA]:{"--likec4-icon-size":"18px"}}),xKe=be({flex:0,fontSize:"10px",fontWeight:500,whiteSpace:"nowrap",lineHeight:"1.1",[FA]:{display:"none"}});function Di(e){e.stopPropagation(),e.preventDefault()}function bte(e){const r=e.getBoundingClientRect();return r.y+Math.floor(r.height/2)}function By(e){if(!e){console.error("moveFocusToSearchInput: from is null or undefined");return}const r=e.getRootNode();if(!C0(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 s4(e){if(!e){console.error("focusToFirstFoundElement: from is null or undefined");return}const r=e.getRootNode();if(!C0(r.querySelector)){console.error("focusToFirstFoundElement: root.querySelector is not a function");return}r.querySelector(`[data-likec4-search] .${a4}`)?.focus()}function vte(e,r,n=`.${a4}`){if(!e)return console.error("queryAllFocusable: from is null or undefined"),[];const o=e.getRootNode();return C0(o.querySelectorAll)?[...o.querySelectorAll(`[data-likec4-search-${r}] ${n}`)]:(console.error("queryAllFocusable: root.querySelectorAll is not a function"),[])}const wKe="likec4-view-btn",kKe=et(be({flexWrap:"nowrap",display:"flex","&[data-disabled] .mantine-ThemeIcon-root":{opacity:.45}}),wKe);be({marginTop:"1",fontSize:"13px",lineHeight:"1.4",":where(.likec4-view-btn[data-disabled]) &":{opacity:.85}});const xte=()=>y.jsx(zr,{className:dKe,children:"Nothing found"}),_Ke=E.memo(()=>{const e=E.useRef(null);let r=[...Ko().views()],n=LA();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(Xo,{ref:e,renderRoot:o=>y.jsx(Br,{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=vte(e.current,"elements",".likec4-element-button");let s=i.length>1?i.find((l,c,u)=>bte(l)>a||c===u.length-1):null;s??=Ff(i),s&&(o.stopPropagation(),s.focus());return}},children:[r.length===0&&y.jsx(xte,{}),r.length>0&&y.jsx(D2,{children:y.jsx(Er,{"data-likec4-view":!0,tabIndex:-1,onFocus:o=>{o.stopPropagation(),By(e.current)}})}),r.map((o,a)=>y.jsx(Br,{layoutId:`@view${o.id}`,children:y.jsx(HA,{view:o,search:n,tabIndex:a===0?0:-1})},o.id))]})}),l4=yte();function HA({className:e,view:r,loop:n=!1,search:o,...a}){const i=Wu(),s=Qt(),l=Jw(),c=r.id===l,u=()=>{i.send({type:"close"}),setTimeout(()=>{s.navigateTo(r.id)},100)};return y.jsxs(Er,{...a,className:et(l4.root,"group",a4,kKe,e),"data-likec4-view":r.id,...c&&{"data-disabled":!0},onClick:d=>{d.stopPropagation(),u()},onKeyDown:N0({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(Ba,{variant:"transparent",className:l4.icon,children:r.isDeploymentView()?y.jsx(PA,{stroke:1.8}):y.jsx(Ri,{stroke:1.8})}),y.jsxs(zr,{style:{flexGrow:1},children:[y.jsxs(pn,{gap:"xs",wrap:"nowrap",align:"center",children:[y.jsx(gc,{component:"div",highlight:o,className:l4.title,children:r.title||"untitled"}),c&&y.jsx(vl,{size:"xs",fz:9,radius:"sm",children:"current"})]}),y.jsx(gc,{highlight:r.description.nonEmpty?o:"",component:"div",className:l4.description,lineClamp:1,children:r.description.text||"No description"})]})]})}const Bm=yte(),EKe=E.memo(()=>{const e=Ko(),r=LA(),n=E.useMemo(()=>{const a=r.split(".");let i;fp(a)||a[0]==="kind:"?i=e.elements():i=Qd(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 s={},{all:l,roots:c}=En([...i],uu,U3((u,d)=>{const h={label:d.title,value:d.id,element:d,searchTerms:a,children:[]};s[h.value]=h;const f=u.all.findLast(g=>to(g.value,h.value));return f?(f.children.push(h),f.children.length>1&&f.children.sort(Dy)):u.roots.push(h),u.all.push(h),u},{all:[],roots:[]}));return{all:l,byid:s,roots:c.sort(Dy)}},[e,r]),o=wte();return n.all.length===0?y.jsx(xte,{}):y.jsx(CKe,{data:n,handleClick:o})}),SKe=()=>{};function CKe({data:{all:e,byid:r,roots:n},handleClick:o}){const a=G0({multiple:!1});a.setHoveredNode=SKe,E.useEffect(()=>{a.collapseAllNodes();for(const s of e)s.children.length>0&&a.expand(s.value)},[e]);const i=kt(s=>{const l=s.target,c=l.getAttribute("data-value"),u=!!c&&r[c];if(u){if(s.key==="ArrowUp"){c===n[0]?.value&&(Di(s),By(l));return}if(s.key==="ArrowRight"){if(u.children.length>0&&a.expandedState[c]===!1)return;const d=(s.target.querySelector(".mantine-Tree-label")??l).getBoundingClientRect().y,h=vte(l,"views");let f=h.length>1?h.find((g,b,x)=>bte(g)>d||b===x.length-1):null;f??=Ff(h),f&&(Di(s),f.focus());return}if(s.key===" "||s.key==="Enter"){Di(s),o(u.element);return}}});return y.jsx(hm,{"data-likec4-search-elements":!0,allowRangeSelection:!1,clearSelectionOnOutsideClick:!0,selectOnClick:!1,tree:a,data:n,levelOffset:"lg",classNames:{root:hKe,node:et(a4,pKe),label:fKe,subtree:mKe},onKeyDownCapture:i,renderNode:TKe})}function TKe({node:e,elementProps:r,hasChildren:n,expanded:o}){const{element:a,searchTerms:i}=e,s=PEe({element:{id:a.id,title:a.title,shape:a.shape,icon:a.icon},className:et(Bm.icon,vKe)}),l=[...a.views()],c=wte(),u=`@tree.${e.value}`;return y.jsxs(Br,{layoutId:u,...r,children:[y.jsx(br,{variant:"transparent",size:16,tabIndex:-1,className:et(gKe),style:{visibility:n?"visible":"hidden"},children:y.jsx(qu,{stroke:3.5,style:{transition:"transform 150ms ease",transform:`rotate(${o?"90deg":"0"})`,width:"100%"}})}),y.jsxs(Er,{component:Ni,layout:!0,tabIndex:-1,"data-value":a.id,className:et(Bm.root,"group","likec4-element-button"),...l.length>0&&{onClick:d=>{(!n||o)&&(d.stopPropagation(),c(a))}},children:[s,y.jsxs(Re,{style:{flexGrow:1},children:[y.jsxs(pn,{gap:"xs",wrap:"nowrap",align:"center",className:yKe,children:[y.jsx(gc,{component:"div",highlight:i,className:Bm.title,children:e.label}),y.jsx(co,{label:a.id,withinPortal:!1,fz:"xs",disabled:!a.id.includes("."),children:y.jsx(gc,{component:"div",highlight:i,className:et(bKe,Bm.descriptionColor),children:g1(a.id)})})]}),y.jsx(gc,{component:"div",highlight:i,className:Bm.description,lineClamp:1,children:a.summary.text||"No description"})]}),y.jsx(ft,{component:"div",className:et(xKe,Bm.descriptionColor),fz:"xs",children:l.length===0?"No views":y.jsxs(y.Fragment,{children:[l.length," view",l.length>1?"s":""]})})]})]})}function wte(){const e=Qt(),r=Wu();return kt(n=>{const o=[...n.views()];if(o.length===0)return;const a=q3(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 AKe=be({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"}}}),RKe=be({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)]"}}),NKe=be({position:"absolute",top:"[2rem]",left:"[50%]",width:"100%",maxWidth:"600px",minWidth:"200px",transform:"translateX(-50%)",zIndex:903}),kte=be({marginTop:"2","& + &":{marginTop:"[32px]"}});be({height:["100%","100cqh"],"& .mantine-ScrollArea-viewport":{minHeight:"100%","& > div":{minHeight:"100%",height:"100%"}}});function DKe({elementFqn:e}){const r=Wu(),n=Ko().element(e),o=[],a=[];for(const s of n.views())s.viewOf===n?o.push(s):a.push(s);const i=()=>{r.send({type:"pickview.close"})};return Gf("keydown",s=>{try{s.key==="Escape"&&(s.stopPropagation(),s.preventDefault(),i())}catch(l){console.warn(l)}},{capture:!0}),y.jsxs(y.Fragment,{children:[y.jsx(Br,{className:RKe,onClick:s=>{s.stopPropagation(),i()}},"pickview-backdrop"),y.jsx(P2,{children:y.jsxs(Br,{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:NKe,"data-likec4-search-views":!0,children:[y.jsxs(pn,{px:"sm",py:"md",justify:"space-between",children:[y.jsx(Cp,{order:2,lh:1,children:"Select view"}),y.jsx(br,{size:"md",variant:"default",onClick:s=>{s.stopPropagation(),i()},children:y.jsx(Rp,{})})]}),y.jsxs(pa,{mah:"calc(100vh - 110px)",type:"never",children:[o.length>0&&y.jsxs(Xo,{gap:"sm",px:"sm",className:kte,children:[y.jsx(Cp,{order:6,c:"dimmed",children:"scoped views of the element"}),o.map((s,l)=>y.jsx(HA,{view:s,search:"",loop:!0,mod:{autofocus:l===0}},s.id))]}),a.length>0&&y.jsxs(Xo,{gap:"sm",px:"sm",className:kte,children:[y.jsx(Cp,{order:6,c:"dimmed",children:"views including this element"}),a.map((s,l)=>y.jsx(HA,{view:s,search:"",loop:!0,mod:{autofocus:l===0&&o.length===0}},s.id))]})]})]},"pickview")})]})}function $Ke(){const e=E.useRef(null);let r=Ko().tagsSortedByUsage,n=oKe(),o=LA(),a=r.length,i=!1;if(o.startsWith("#")){const s=o.slice(1);r=r.filter(({tag:l})=>l.toLocaleLowerCase().includes(s)),i=r.length!==a}return r.length===0?null:(r=r.slice(0,15),y.jsxs(sn,{ref:e,css:{gap:"md",paddingLeft:"[48px]",flexWrap:"nowrap"},children:[y.jsx(sn,{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:s})=>y.jsx(Lw,{tag:s,className:be({userSelect:"none",cursor:"pointer"}),onClick:l=>{l.stopPropagation(),n(`#${s}`),setTimeout(()=>{s4(e.current)},350)}},s))}),i&&y.jsx(Kn,{size:"compact-xs",variant:"light",onClick:s=>{s.stopPropagation(),n(""),By(e.current)},rightSection:y.jsx(Rp,{size:14}),children:"Clear"})]}))}const MKe=[["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"}]],VA=Nt("outline","search","Search",MKe);function _te(e){return e.match(/^(k|ki|kin|kind|kind:)$/)!=null}const PKe=["#","kind:"],zKe=E.memo(()=>{const e=Wu(),r=Ko(),n=E.useRef(null),{ref:o,focused:a}=_$e(),[i,s]=rKe(),l=FY({scrollBehavior:"smooth",loop:!1});Gf("keydown",d=>{try{!a&&(d.key==="Backspace"||d.key.startsWith("Arrow")||d.key.match(new RegExp("^\\p{L}$","u")))&&By(n.current)}catch(h){console.warn(h)}});let c=[],u=!1;switch(!0){case i.startsWith("#"):{const d=i.toLocaleLowerCase().slice(1),h=r.tags.filter(f=>f.toLocaleLowerCase().includes(d));h.length===0?(u=!1,c=[y.jsx(B0,{children:"No tags found"},"empty-tags")]):(u=r.tags.some(f=>f.toLocaleLowerCase()===d),c=h.map(f=>y.jsxs(F0,{value:`#${f}`,children:[y.jsx(ft,{component:"span",opacity:.5,mr:1,fz:"sm",children:"#"}),f]},f)));break}case i.startsWith("kind:"):case _te(i):{const d=i.length>5?i.slice(5).toLocaleLowerCase():"";let h=I9(r.specification.elements);d&&(h=h.filter(f=>f.toLocaleLowerCase().includes(d))),h.length===0?(u=!1,c=[y.jsx(B0,{children:"No kinds found"},"empty-kinds")]):(u=h.some(f=>f.toLocaleLowerCase()===d),c=h.map(f=>y.jsxs(F0,{value:`kind:${f}`,children:[y.jsx(ft,{component:"span",opacity:.5,mr:1,fz:"sm",children:"kind:"}),f]},f)));break}}return y.jsxs(lo,{onOptionSubmit:d=>{s(d),l.resetSelectedOption(),PKe.includes(d)||(l.closeDropdown(),setTimeout(()=>{s4(n.current)},350))},width:"max-content",position:"bottom-start",shadow:"md",offset:{mainAxis:4,crossAxis:50},store:l,withinPortal:!1,children:[y.jsx(J7,{children:y.jsx(La,{ref:Hr(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:AKe},size:"lg",value:i,leftSection:y.jsx(VA,{style:{width:Me(20)},stroke:2}),rightSection:y.jsx(La.ClearButton,{onClick:d=>{d.stopPropagation();const h=e.getSnapshot().context.openedWithSearch;i===""||i===h?e.send({type:"close"}):s("")}}),rightSectionPointerEvents:"auto",onChange:d=>{s(d.currentTarget.value),l.openDropdown(),l.updateSelectedOptionIndex()},onClick:()=>l.openDropdown(),onFocus:()=>l.openDropdown(),onBlur:()=>l.closeDropdown(),onKeyDownCapture:d=>{if(d.key==="Tab"){switch(!0){case l.getSelectedOptionIndex()>=0:return l.clickSelectedOption(),Di(d);case c.length===1:return l.selectFirstOption()&&l.clickSelectedOption(),Di(d);case _te(i):return s("kind:"),Di(d)}return}if(d.key==="Backspace"&&l.dropdownOpened){if(i==="kind:")return s(""),l.resetSelectedOption(),Di(d);if(i.startsWith("kind:")&&u)return s("kind:"),l.resetSelectedOption(),Di(d);if(i.startsWith("#")&&u)return s("#"),l.resetSelectedOption(),Di(d)}if(d.key==="Escape"&&l.dropdownOpened&&c.length>0){Di(d),l.closeDropdown();return}if(d.key==="ArrowUp"&&l.dropdownOpened&&i===""&&l.getSelectedOptionIndex()===0){l.closeDropdown(),Di(d);return}if(d.key==="ArrowDown"&&(!l.dropdownOpened||c.length===0||u||i===""&&l.getSelectedOptionIndex()===c.length-1)){l.closeDropdown(),Di(d),s4(n.current);return}}})}),y.jsx(H2,{hidden:c.length===0,style:{minWidth:300},children:y.jsx(V2,{children:y.jsx(pa,{mah:"min(322px, calc(100cqh - 50px))",type:"scroll",children:c})})})]})}),IKe=be({backgroundColor:"[rgb(34 34 34 / var(--_opacity, 95%))]",_light:{backgroundColor:"[rgb(250 250 250 / var(--_opacity, 95%))]"},backdropFilter:"auto",backdropBlur:"var(--_blur, 10px)"}),OKe=be({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]"}),jKe=e=>!e.matches("inactive");function LKe({searchActorRef:e}){const r=fn(e,jKe),n=()=>{e.send({type:"open"})},o=kt(()=>{e.send({type:"close"})});return x$e([["mod+k",n,{preventDefault:!0}],["mod+f",n,{preventDefault:!0}]]),y.jsx(eKe,{value:e,children:y.jsx(Np.Overlays,{children:y.jsx(RS,{FallbackComponent:NS,onReset:o,children:y.jsx(Qn,{children:r&&y.jsx(Ly,{fullscreen:!0,withBackdrop:!1,backdrop:{opacity:.9},classes:{dialog:IKe,body:OKe},openDelay:0,onClose:o,"data-likec4-search":"true",children:y.jsx(BKe,{searchActorRef:e})})})})})})}const Ete=be({height:["100%","100cqh"],"& .mantine-ScrollArea-viewport":{minHeight:"100%","& > div":{minHeight:"100%",height:"100%"}}}),BKe=({searchActorRef:e})=>{const r=E.useRef(null),n=iKe();return Zx(()=>{ua(e.getSnapshot().context.openedWithSearch)&&s4(r.current)},150),y.jsxs(zr,{ref:r,display:"contents",children:[y.jsx(pn,{className:"group",wrap:"nowrap",onClick:o=>{o.stopPropagation(),By(r.current)},children:y.jsxs(Ap,{flex:1,px:"sm",children:[y.jsx(zKe,{}),y.jsx($Ke,{})]})}),y.jsxs(V0,{children:[y.jsx(_p,{span:6,children:y.jsx(Cp,{component:"div",order:6,c:"dimmed",pl:"sm",children:"Elements"})}),y.jsx(_p,{span:6,children:y.jsx(Cp,{component:"div",order:6,c:"dimmed",pl:"sm",children:"Views"})})]}),y.jsxs(V0,{className:be({containerName:"likec4-search-elements",containerType:"size",overflow:"hidden",flexGrow:1}),children:[y.jsx(_p,{span:6,children:y.jsx(bl,{type:"scroll",className:Ete,pr:"xs",scrollbars:"y",children:y.jsx(Qn,{children:y.jsx($m,{id:"likec4-search-elements",children:y.jsx(EKe,{})})})})}),y.jsx(_p,{span:6,children:y.jsx(bl,{type:"scroll",className:Ete,pr:"xs",scrollbars:"y",children:y.jsx(Qn,{children:y.jsx($m,{id:"likec4-search-views",children:y.jsx(_Ke,{})})})})})]}),n&&y.jsx(DKe,{elementFqn:n})]})};function FKe({children:e}){const r=E.useContext(_S);if(!r)throw new Error("PortalToContainer must be used within RootContainer");return y.jsx(j0,{target:r.ref.current??`#${r.id}`,children:e})}const Ste={onChange:null,onNavigateTo:null,onNodeClick:null,onNodeContextMenu:null,onCanvasContextMenu:null,onEdgeClick:null,onEdgeContextMenu:null,onCanvasClick:null,onCanvasDblClick:null,onBurgerMenuClick:null,onOpenSource:null,onInitialized:null,onLayoutTypeChange:null},qA=I9(Ste),Cte=E.createContext({...V3(qA,e=>[e,null]),handlersRef:{current:Ste}});function HKe({handlers:e,children:r}){const n=Cf(e),o=qA.map(i=>C0(e[i])),a=E.useMemo(()=>({...V3(qA,i=>n.current[i]?[i,(...s)=>n.current[i]?.(...s)]:[i,null]),handlersRef:n}),[n,...o]);return y.jsx(Cte.Provider,{value:a,children:r})}function Fm(){return E.useContext(Cte)}function jn(e){return{get syncLayoutActorRef(){return e.get("syncLayout")??null},get overlaysActorRef(){return e.get("overlays")??null},get diagramActorRef(){return bt(e.get("diagram"),"Diagram actor not found")},get searchActorRef(){return e.get("search")??null}}}function Hm(e,r){return e.view.nodes.find(n=>n.id===r)??null}function UA(e,r){return e.view.edges.find(n=>n.id===r)??null}function VKe(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 s=a.measured?.width??a.width??a.initialWidth,l=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+s),o.maxY=Math.max(o.maxY,i.y+l),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 qKe=32;function UKe(e){const r=bt(e.context.activeWalkthrough),n=bt(e.context.xyedges.find(c=>c.id===r.stepId)),o=e.context.xystore.getState(),a=bt(o.nodeLookup.get(n.source)),i=bt(o.nodeLookup.get(n.target)),s=LH([a,i],o);let l;if(r.parallelPrefix){const c=e.context.xynodes.find(u=>u.type==="seq-parallel"&&u.data.parallelPrefix===r.parallelPrefix);c&&(l={x:c.position.x,y:c.position.y,...ao(c)})}return l??=WKe(n,o),l?l=il.merge(l,s):l=s,{duration:350,bounds:il.expand(l,qKe)}}function WKe(e,r){const n=r.nodeLookup.get(e.source),o=r.nodeLookup.get(e.target);if(!n||!o)return null;const a=iV({id:e.id,sourceNode:n,targetNode:o,sourceHandle:e.sourceHandle||null,targetHandle:e.targetHandle||null,connectionMode:r.connectionMode});return a?il.fromPoints([[a.sourceX,a.sourceY],[a.targetX,a.targetY]]):null}const YKe=wl({delays:{"open timeout":({context:e})=>e.openTimeout,"close timeout":600,"long idle":1500},actions:{"update edgeId":Zt(({context:e,event:r})=>(Tt(r,["xyedge.select","xyedge.mouseEnter"]),{edgeId:r.edgeId,edgeSelected:e.edgeSelected||r.type==="xyedge.select"})),"increase open timeout":Zt(()=>({openTimeout:800})),"decrease open timeout":Zt(()=>({openTimeout:300})),"reset edgeId":Zt({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"}}}}}}}),GKe=YKe,Tte=be({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)"}}),XKe=be({whiteSpaceCollapse:"preserve-breaks",fontSize:"sm",lineHeight:"sm",userSelect:"all"});function KKe(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 ZKe=E.memo(()=>{const e=Ko(),r=KS(GKe),n=Qt(),{viewId:o,selected:a}=vs(KKe),i=fn(r,g=>g.hasTag("opened")?g.context.edgeId:null);Fa("navigateTo",()=>{r.send({type:"close"})}),Fa("edgeMouseEnter",({edge:g})=>{r.send({type:"xyedge.mouseEnter",edgeId:g.data.id})}),Fa("edgeMouseLeave",()=>{r.send({type:"xyedge.mouseLeave"})}),Fa("walkthroughStarted",()=>{r.send({type:"close"})}),E.useEffect(()=>{a?r.send({type:"xyedge.select",edgeId:a}):r.send({type:"xyedge.unselect"})},[a]);const s=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]),l=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}=vs(g=>{const b=i?UA(g,i):null,x=b?Hm(g,b.source):null,w=b?Hm(g,b.target):null;return{diagramEdge:b,sourceNode:x,targetNode:w}},an,[i]);if(!c||!u||!d||fp(c.relations))return null;const[h,f]=En(c.relations,Sn(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}}),hp(ua),Yq(g=>g.source.id===u.id&&g.target.id===d.id));return h.length===0&&f.length===0?(console.warn("No relationships found diagram edge",{diagramEdge:c,sourceNode:u,targetNode:d}),null):y.jsx(FKe,{children:y.jsx(JKe,{viewId:o,direct:h,nested:f,diagramEdge:c,sourceNode:u,targetNode:d,onMouseEnter:s,onMouseLeave:l})})}),QKe=(e,r)=>r?.querySelector(`.likec4-edge-label[data-edge-id="${e}"]`)??null,WA=8,JKe=({viewId:e,diagramEdge:r,direct:n,nested:o,sourceNode:a,targetNode:i,onMouseEnter:s,onMouseLeave:l})=>{const c=E.useRef(null),{enableNavigateTo:u,enableVscode:d}=_r(),{onOpenSource:h}=Fm(),f=pje(),[g,b]=E.useState(null);E.useLayoutEffect(()=>{b(QKe(r.id,f.current))},[r]),E.useEffect(()=>{const k=g,C=c.current;if(!k||!C)return;let _=!1;const T=_2(k,C,()=>{NW(k,C,{placement:"bottom-start",middleware:[CW(4),JPe({crossAxis:!0,padding:WA,allowedPlacements:["bottom-start","top-start","right-start","right-end","left-end"]}),TW({padding:WA,apply({availableHeight:A,availableWidth:R,elements:D}){_||Object.assign(D.floating.style,{maxWidth:`${us(Uu(R),{min:200,max:400})}px`,maxHeight:`${us(Uu(A),{min:0,max:500})}px`})}}),AW({padding:WA*2})]}).then(({x:A,y:R,middlewareData:D})=>{_||(C.style.transform=`translate(${Uu(A)}px, ${Uu(R)}px)`,C.style.visibility=D.hide?.referenceHidden?"hidden":"visible")})},{ancestorResize:!1,animationFrame:!0});return()=>{_=!0,T()}},[g]);const x=Qt(),w=E.useCallback((k,C)=>y.jsxs(E.Fragment,{children:[C>0&&y.jsx(kp,{}),y.jsx(eZe,{viewId:e,relationship:k,sourceNode:a,targetNode:i,onNavigateTo:u?_=>{x.navigateTo(_)}:void 0,...h&&d&&{onOpenSource:()=>h({relation:k.id})}})]},k.id),[e,a,i,x,u,h,d]);return y.jsx(pa,{ref:c,onMouseEnter:s,onMouseLeave:l,type:"auto",scrollbars:"y",scrollbarSize:6,styles:{viewport:{overscrollBehavior:"contain",minWidth:180}},className:et(be({layerStyle:"likec4.dropdown",p:"0",pointerEvents:{base:"all",_whenPanning:"none"},position:"absolute",top:"0",left:"0",width:"max-content",cursor:"default"})),children:y.jsxs(Ap,{css:{gap:"3",padding:"4",paddingTop:"2"},children:[y.jsx(Kn,{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(Vm,{children:"DIRECT RELATIONSHIPS"}),n.map(w)]}),o.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(Vm,{css:{mt:n.length>0?"2":"0"},children:"RESOLVED FROM NESTED"}),o.map(w)]})]})})},eZe=E.forwardRef(({viewId:e,relationship:r,sourceNode:n,targetNode:o,onNavigateTo:a,onOpenSource:i},s)=>{const l=Ate(r,"source",n),c=Ate(r,"target",o),u=a&&r.navigateTo?.id!==e?r.navigateTo?.id:void 0,d=r.links;return y.jsxs(Ap,{ref:s,className:tX({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(sn,{gap:"0.5",children:y.jsxs(Ep,{openDelay:200,children:[y.jsx(c4,{label:l.full,offset:2,position:"top-start",children:y.jsx(ft,{component:"div","data-likec4-color":n.color,className:Tte,children:l.short})}),y.jsx(jm,{stroke:2.5,size:"11px",opacity:.65}),y.jsx(c4,{label:c.full,offset:2,position:"top-start",children:y.jsx(ft,{component:"div","data-likec4-color":o.color,className:Tte,children:c.short})}),u&&y.jsx(c4,{label:"Open dynamic view",children:y.jsx(br,{size:"sm",radius:"sm",variant:"default",onClick:h=>{h.stopPropagation(),a?.(u)},style:{alignSelf:"flex-end"},role:"button",children:y.jsx(Ri,{size:"80%",stroke:2})})}),i&&y.jsx(c4,{label:"Open source",children:y.jsx(br,{size:"sm",radius:"sm",variant:"default",onClick:h=>{h.stopPropagation(),i()},role:"button",children:y.jsx(zm,{size:"80%",stroke:2})})})]})}),y.jsx(zr,{className:XKe,children:r.title||"untitled"}),r.kind&&y.jsxs(sn,{gap:"2",children:[y.jsx(Vm,{children:"kind"}),y.jsx(ft,{size:"xs",className:be({userSelect:"all"}),children:r.kind})]}),r.technology&&y.jsxs(sn,{gap:"2",children:[y.jsx(Vm,{children:"technology"}),y.jsx(ft,{size:"xs",className:be({userSelect:"all"}),children:r.technology})]}),r.description.nonEmpty&&y.jsxs(y.Fragment,{children:[y.jsx(Vm,{children:"description"}),y.jsx(zr,{css:{paddingLeft:"2.5",py:"1.5",borderLeft:"2px dotted",borderLeftColor:{base:"mantine.colors.gray[3]",_dark:"mantine.colors.dark[4]"}},children:y.jsx(Wp,{value:r.description,fontSize:"sm"})})]}),d.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(Vm,{children:"links"}),y.jsx(sn,{gap:"1",flexWrap:"wrap",children:d.map(h=>y.jsx(DT,{size:"sm",value:h},h.url))})]})]})}),Vm=Iu("div",{base:{display:"block",fontSize:"xxs",fontWeight:500,userSelect:"none",lineHeight:"sm",color:"mantine.colors.dimmed"}}),c4=co.withProps({color:"dark",fz:"xs",label:"",children:null,offset:8,withinPortal:!1});function Ate(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 qm(){const e=hje();return E.useMemo(()=>e?{portalProps:{target:e},withinPortal:!0}:{withinPortal:!1},[e])}const tZe=wl({delays:{"open timeout":500,"close timeout":350},actions:{"update activatedBy":Zt({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":Zt({activatedBy:"click"}),"update selected folder":Zt(({event:e})=>e.type==="breadcrumbs.click.root"?{selectedFolder:""}:(Tt(e,["breadcrumbs.click.folder","select.folder"]),{selectedFolder:e.folderPath})),"reset selected folder":Zt({selectedFolder:({context:e})=>e.viewModel?.folder.path??""}),"update inputs":Zt(({context:e,event:r})=>{Tt(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??""),{view:r.inputs.view,viewModel:r.inputs.viewModel,selectedFolder:o,activatedBy:n?"hover":e.activatedBy}}),"reset search query":Zt({searchQuery:""}),"update search query":Zt(({event:e})=>(Tt(e,"searchQuery.change"),{searchQuery:e.value??""})),"emit navigateTo":GS(({event:e})=>(Tt(e,"select.view"),{type:"navigateTo",viewId:e.viewId}))},guards:{"was opened on hover":({context:e})=>e.activatedBy==="hover","has search query":({context:e})=>!fp(e.searchQuery),"search query is empty":({context:e})=>fp(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",fa({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"}}}}}}}),rZe=tZe,YA=E.createContext(null);YA.displayName="NavigationPanelActorSafeContext";const nZe=YA.Provider,GA=()=>{const e=E.useContext(YA);if(e===null)throw new Error("NavigationPanelActorRef is not found in the context");return e};function XA(e,r=an){const n=GA();return fn(n,e,r)}function oZe(e,r=an){return XA(n=>e(n.context),r)}function Fy(){const e=GA();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 Rte=co.withProps({color:"dark",fz:"xs",openDelay:600,closeDelay:120,label:"",children:null,offset:8,withinPortal:!1}),Nte=()=>y.jsx(Ba,{component:Br,variant:"transparent",size:16,className:be({display:{base:"none","@/md":"flex"},color:{base:"mantine.colors.gray[5]",_dark:"mantine.colors.dark[3]"}}),children:y.jsx(qu,{})});q2.withProps({separator:y.jsx(Nte,{}),separatorMargin:4});const Ec=E.forwardRef(({variant:e="default",className:r,disabled:n=!1,type:o,...a},i)=>y.jsx(br,{size:"md",variant:"transparent",radius:"sm",component:Ni,...!n&&{whileHover:{scale:1.085},whileTap:{scale:1,translateY:1}},disabled:n,...a,className:et(r,CT({variant:e,type:o})),ref:i})),u4=o0({base:{fontSize:"sm",fontWeight:"500",transition:"fast",color:{base:"likec4.panel.action",_hover:"likec4.panel.action.hover"}},variants:{truncate:{true:{truncate:!0}},dimmed:{true:{color:{base:"likec4.panel.text.dimmed",_hover:"likec4.panel.action"}}}}}),aZe=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:be({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"})]})),iZe=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"})})),sZe=()=>{const e=Fy(),{onBurgerMenuClick:r}=Fm();return y.jsx(Br,{layout:"position",children:y.jsxs(Er,{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:et("mantine-active",Zn({padding:"0.5",width:{base:"[20px]","@/md":"[64px]"}})),children:[y.jsx(aZe,{className:be({display:{base:"none","@/md":"block"}})}),y.jsx(iZe,{className:be({display:{base:"block","@/md":"none"}})})]})})},lZe=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M5 12l6 6",key:"svg-1"}],["path",{d:"M5 12l6 -6",key:"svg-2"}]],cZe=Nt("outline","arrow-left","ArrowLeft",lZe),uZe=()=>{const e=Qt(),{hasStepBack:r,hasStepForward:n}=vs(o=>({hasStepBack:o.navigationHistory.currentIndex>0,hasStepForward:o.navigationHistory.currentIndex{o.stopPropagation(),e.navigate("back")},children:y.jsx(cZe,{size:14})}),y.jsx(Ec,{disabled:!n,onClick:o=>{o.stopPropagation(),e.navigate("forward")},children:y.jsx(jm,{size:14})})]})},dZe=[["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"}]],pZe=Nt("outline","link","Link",dZe),hZe=({context:e})=>{const r=e.view;return{id:r.id,title:e.viewModel?.title??(r.title&&kE(r.title))??"Untitled View",description:e.viewModel?.description??or.from(r.description),tags:r.tags??[],links:r.links??[]}},fZe=e=>{const[r,n]=E.useState(!1),o=XA(hZe,lt),a=qm();return y.jsxs(Rr,{position:"bottom-end",shadow:"xl",clickOutsideEvents:["pointerdown","mousedown","click"],offset:{mainAxis:4},opened:r,onChange:n,...a,...e,children:[y.jsx(mZe,{linksCount:o.links.length,onOpen:()=>n(!0)}),r&&y.jsx(gZe,{data:o,onClose:()=>n(!1)})]})},mZe=({linksCount:e,onOpen:r})=>y.jsx(Rr.Target,{children:y.jsxs(Er,{component:Ni,layout:"position",whileTap:{scale:.95,translateY:1},onClick:n=>{n.stopPropagation(),r()},className:et("group",Zn({gap:"2",paddingInline:"2",paddingBlock:"1",rounded:"sm",userSelect:"none",cursor:"pointer",color:{base:"likec4.panel.action",_hover:"likec4.panel.action.hover"},backgroundColor:{_hover:"likec4.panel.action.bg.hover"},display:{base:"none","@/xs":"flex"}}),""),children:[y.jsx(DA,{size:16,stroke:1.8}),e>0&&y.jsxs(sn,{gap:"[1px]",children:[y.jsx(pZe,{size:14,stroke:2}),y.jsx(zr,{css:{fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8},children:e})]})]})}),Dte=Iu("div",{base:{fontSize:"xs",color:"mantine.colors.dimmed",fontWeight:500,userSelect:"none",mb:"xxs"}}),gZe=({data:{id:e,title:r,description:n,tags:o,links:a},onClose:i})=>{const s=Qt();return Fa("paneClick",i),Fa("nodeClick",i),y.jsxs(Rr.Dropdown,{className:et("nowheel nopan nodrag",Z0({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(ft,{component:"div",fw:500,size:"xl",lh:"sm",children:r}),y.jsxs(sn,{alignItems:"flex-start",mt:"1",children:[y.jsx(yZe,{label:"id",value:e}),y.jsx(sn,{gap:"xs",flexWrap:"wrap",children:o.map(l=>y.jsx(Lw,{tag:l,cursor:"pointer",onClick:c=>{c.stopPropagation(),s.openSearch(`#${l}`)}},l))})]})]}),a.length>0&&y.jsxs("section",{className:Zn({alignItems:"baseline"}),children:[y.jsx(Dte,{children:"Links"}),y.jsx(sn,{gap:"xs",flexWrap:"wrap",children:a.map((l,c)=>y.jsx(DT,{value:l},`${c}-${l.url}`))})]}),n.isEmpty&&y.jsx(ft,{component:"div",fw:500,size:"xs",c:"dimmed",style:{userSelect:"none"},children:"No description"}),n.nonEmpty&&y.jsxs("section",{children:[y.jsx(Dte,{children:"Description"}),y.jsx(Wp,{value:n,fontSize:"sm",emptyText:"No description",className:be({userSelect:"all"})})]})]})},yZe=({label:e,value:r})=>y.jsxs(sn,{gap:"0.5",children:[y.jsx(bZe,{children:e}),y.jsx(vl,{size:"sm",radius:"sm",variant:"light",color:"gray",tt:"none",fw:500,classNames:{root:be({width:"max-content",overflow:"visible",px:"1",color:{_dark:"mantine.colors.gray[4]",_light:"mantine.colors.gray[8]"}}),label:be({overflow:"visible"}),section:be({opacity:.5,userSelect:"none",marginInlineEnd:"0.5"})},children:r})]}),bZe=Iu("div",{base:{color:"mantine.colors.dimmed",fontWeight:500,fontSize:"xxs",userSelect:"none"}}),vZe=()=>{const e=Jw(),{enableVscode:r}=_r(),{onOpenSource:n}=Fm();return r?y.jsx(Rte,{label:"Open View Source",children:y.jsx(Ec,{onClick:o=>{o.stopPropagation(),n?.({view:e})},children:y.jsx(zm,{style:{width:"60%",height:"60%"}})})}):null},xZe=[["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"}]],wZe=Nt("outline","lock","Lock",xZe),kZe=[["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"}]],$te=Nt("outline","lock-open-2","LockOpen2",kZe),_Ze=e=>({visible:e.features.enableReadOnly!==!0&&(e.view._type!=="dynamic"||e.dynamicViewVariant!=="sequence"),isReadOnly:e.toggledFeatures.enableReadOnly??e.features.enableReadOnly}),EZe=()=>{const{visible:e,isReadOnly:r}=vs(_Ze),n=Qt();return y.jsx(Qn,{mode:"popLayout",children:e&&y.jsxs(Er,{component:Ni,layout:"position",onClick:o=>{o.stopPropagation(),n.toggleFeature("ReadOnly")},initial:{opacity:0,scale:.6},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.6},whileTap:{translateY:1},className:et("group",Zn({gap:"0.5",paddingInline:"xxs",paddingBlock:"xxs",rounded:"sm",userSelect:"none",cursor:"pointer",color:{base:"likec4.panel.action",_hover:"likec4.panel.action.hover"},backgroundColor:{_hover:"likec4.panel.action.bg.hover"}})),children:[r?y.jsx(wZe,{size:14,stroke:2}):y.jsx($te,{size:14,stroke:2}),r&&y.jsx(Br,{className:be({fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8}),children:"Edit"})]})})},SZe=[["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"}]],CZe=Nt("filled","player-play-filled","PlayerPlayFilled",SZe),Mte=E.forwardRef((e,r)=>y.jsx(Kn,{variant:"filled",size:"xs",fw:"500",...e,ref:r,component:Ni,whileTap:{scale:.95},layout:"position",layoutId:"trigger-dynamic-walkthrough",className:be({flexShrink:0})}));function TZe(){const{enableReadOnly:e,enableCompareWithLatest:r}=_r(),n=Qt(),o=Fy();let a="Start Dynamic View Walkthrough";switch(!0){case!e:a="Walkthrough not available in Edit mode";break;case r:a="Walkthrough not available when Compare is active";break}return y.jsx(Rte,{label:a,children:y.jsx(Mte,{onClick:i=>{i.stopPropagation(),o.closeDropdown(),n.startWalkthrough()},initial:{opacity:0,scale:.6,translateX:-10},animate:{opacity:1,scale:1,translateX:0},exit:{opacity:0,translateX:-20},size:"compact-xs",h:26,disabled:!e||r,classNames:{label:be({display:{base:"none","@/md":"inherit"}}),section:be({marginInlineStart:{base:"0","@/md":"2"}})},rightSection:y.jsx(CZe,{size:10}),children:"Start"})})}const AZe=E.forwardRef(({value:e,onChange:r},n)=>y.jsx(Br,{ref:n,layout:"position",children:y.jsx(dm,{size:"xs",value:e,component:Br,onChange:o=>{at(o==="diagram"||o==="sequence","Invalid dynamic view variant"),r(o)},classNames:{label:be({fontSize:"xxs"})},data:[{value:"diagram",label:"Diagram"},{value:"sequence",label:"Sequence"}]})}));function RZe(){const e=vs(n=>n.dynamicViewVariant),r=Qt();return y.jsxs(Qn,{children:[y.jsx(AZe,{value:e,onChange:n=>{r.switchDynamicViewVariant(n)}}),y.jsx(TZe,{},"trigger-dynamic-walkthrough")]})}const Pte=E.memo(()=>{const{enableSearch:e,enableCompareWithLatest:r}=_r(),n=Qt(),o=zf();return y.jsx(Qn,{children:e&&!r&&y.jsxs(Er,{component:Ni,layout:"position",onClick:a=>{a.stopPropagation(),n.openSearch()},whileTap:{scale:.95,translateY:1},className:et("group",Zn({gap:"xxs",paddingInline:"sm",paddingBlock:"xxs",userSelect:"none",layerStyle:"likec4.panel.action",display:{base:"none","@/md":"flex"}})),children:[y.jsx(VA,{size:14,stroke:2.5}),y.jsx(zr,{css:{fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8,whiteSpace:"nowrap"},children:o?"⌘ + K":"Ctrl + K"})]})})});Pte.displayName="SearchControl";const NZe=({context:e})=>{const r=e.view.drifts??null;return!e.features.enableCompareWithLatest||!r?{isEnabled:!1,isEditable:!1,isActive:!1,drifts:[],layout:e.view._layout??"auto"}:{isEnabled:!0,isEditable:!e.features.enableReadOnly,isActive:e.toggledFeatures.enableCompareWithLatest===!0,drifts:r,layout:e.view._layout??"auto"}};function KA(){const e=zp(),r=fn(e,NZe,an),n=kt(i=>{if(!r.isEnabled){console.warn("Compare with latest feature is not enabled");return}e.send({type:"emit.onLayoutTypeChange",layoutType:i})}),o=kt(i=>{if(!r.isEnabled){console.warn("Compare with latest feature is not enabled");return}const s=i?i==="on":!r.isActive;r.isActive&&!s&&r.layout==="auto"&&n("manual"),e.send({type:"toggle.feature",feature:"CompareWithLatest",forceValue:s})}),a=kt(()=>{if(!r.isEnabled){console.warn("Compare with latest feature is not enabled");return}e.send({type:"layout.resetManualLayout"})});return[r,{toggleCompare:o,switchLayout:n,resetManualLayout:a}]}const DZe=[["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"}]],zte=Nt("outline","alert-triangle","AlertTriangle",DZe),Ite=E.memo(()=>{const[e,{toggleCompare:r}]=KA(),n=qm(),{drifts:o,isActive:a,isEnabled:i}=e;return y.jsx(Qn,{propagate:!0,children:i&&!a&&y.jsxs(cm,{position:"bottom-start",openDelay:600,closeDelay:200,floatingStrategy:"absolute",offset:{mainAxis:4,crossAxis:-22},...n,children:[y.jsx(cS,{children:y.jsx(Er,{component:Ni,layout:"position",onClick:s=>{r()},whileTap:{scale:.95,translateY:1},className:et("group",CT({variant:"filled",type:"warning"}),Zn({gap:"xxs",padding:"1.5",rounded:"sm",userSelect:"none",cursor:"pointer",fontSize:"xs",fontWeight:600})),children:a?y.jsx(y.Fragment,{children:"Stop Compare"}):y.jsx(zte,{size:18})})}),y.jsx(sS,{p:"0",children:y.jsxs(Z2,{color:"orange",withBorder:!1,withCloseButton:!1,title:"View is out of sync",children:[y.jsx(ft,{mt:2,size:"sm",lh:"xs",children:"Model has changed since this view was last updated."}),y.jsxs(ft,{mt:4,size:"sm",lh:"xs",children:["Detected changes:",o.map(s=>y.jsxs(E.Fragment,{children:[y.jsx("br",{}),y.jsxs("span",{children:["- ",s]})]},s))]}),y.jsx(Kn,{mt:"xs",size:"compact-sm",variant:"default",onClick:s=>{s.stopPropagation(),r()},children:"Compare with current state"})]})})]})})});Ite.displayName="ManualLayoutWarning";const $Ze=({context:e})=>{const r=e.view,n=e.viewModel?.folder;return{folders:!n||n.isRoot?[]:n.breadcrumbs.map(o=>({folderPath:o.path,title:o.title})),viewId:r.id,viewTitle:e.viewModel?.title??(r.title&&kE(r.title))??"Untitled View",isDynamicView:(e.viewModel?._type??r._type)==="dynamic"}},Ote=E.memo(()=>{const e=Fy(),{enableNavigationButtons:r,enableDynamicViewWalkthrough:n}=_r(),{folders:o,viewTitle:a,isDynamicView:i}=fn(e.actorRef,$Ze,lt),s=o.flatMap(({folderPath:c,title:u},d)=>[y.jsx(Er,{component:Ni,className:et(u4({dimmed:!0,truncate:!0}),"mantine-active",be({userSelect:"none",maxWidth:"200px",display:{base:"none","@/md":"block"}})),initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},title:u,onMouseEnter:()=>e.send({type:"breadcrumbs.mouseEnter.folder",folderPath:c}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave.folder",folderPath:c}),onClick:h=>{h.stopPropagation(),e.send({type:"breadcrumbs.click.folder",folderPath:c})},children:u},c),y.jsx(Nte,{},`separator-${d}`)]),l=y.jsx(Er,{component:Ni,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:et("mantine-active",u4({truncate:!0}),be({userSelect:"none"})),title:a,onMouseEnter:()=>e.send({type:"breadcrumbs.mouseEnter.viewtitle"}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave.viewtitle"}),onClick:c=>{c.stopPropagation(),e.send({type:"breadcrumbs.click.viewtitle"})},children:a},"view-title");return y.jsxs(Qn,{propagate:!0,mode:"popLayout",children:[y.jsx(sZe,{},"burger-button"),r&&y.jsx(uZe,{},"nav-buttons"),y.jsxs(Br,{layout:"position",className:Zn({gap:"1",flexShrink:1,flexGrow:1,overflow:"hidden"}),children:[s,l]},"breadcrumbs"),y.jsxs(Br,{layout:"position",className:Zn({gap:"0.5",flexGrow:0,_empty:{display:"none"}}),children:[y.jsx(fZe,{onOpen:()=>e.closeDropdown()}),y.jsx(vZe,{}),y.jsx(EZe,{})]},"actions"),n&&i&&y.jsx(RZe,{},"dynamic-view-controls"),y.jsx(Pte,{},"search-control"),y.jsx(Ite,{},"outdated-manual-layout-warning")]})});Ote.displayName="NavigationPanelControls";const ZA=E.forwardRef(({className:e,truncateLabel:r=!0,...n},o)=>y.jsx(mS,{...n,component:"button",classNames:uWe({truncateLabel:r}),className:et("group","mantine-active",e),ref:o}));ZA.displayName="NavigationLink";const MZe=E.createContext(null),PZe=[],zZe=()=>{},IZe={projects:PZe,onProjectChange:zZe};function OZe(){return E.useContext(MZe)??IZe}function jZe(){const e=E.useContext(K0);if(!e)throw new Error("No LikeC4ModelContext found");return e.projectId}const LZe=E.memo(e=>{const{projects:r,onProjectChange:n}=OZe(),o=jZe();return r.length<=1?null:y.jsxs(sn,{gap:"0.5",alignItems:"baseline",children:[y.jsx(zr,{css:{fontWeight:"400",fontSize:"xxs",color:"likec4.panel.text.dimmed",userSelect:"none"},children:"Project"}),y.jsxs(hn,{withinPortal:!1,shadow:"md",position:"bottom-start",offset:{mainAxis:2},children:[y.jsx(G2,{children:y.jsx(Kn,{tabIndex:-1,autoFocus:!1,variant:"subtle",size:"compact-xs",color:"gray",classNames:{root:be({fontWeight:"400",fontSize:"xxs",height:"auto",lineHeight:1.1,color:{_light:"mantine.colors.gray[9]"}}),section:be({'&:is([data-position="right"])':{marginInlineStart:"1"}})},rightSection:y.jsx(MT,{opacity:.5,size:12,stroke:1.5}),children:o})}),y.jsx(q0,{children:r.map(({id:a,title:i})=>y.jsx(U0,{onClick:s=>{if(o===a){s.stopPropagation();return}n(a)},children:i??a},a))})]})]})}),BZe=[["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=Nt("filled","direction-sign-filled","DirectionSignFilled",BZe),HZe=[["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"}]],VZe=Nt("filled","star-filled","StarFilled",HZe),qZe=[["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"}]],UZe=Nt("filled","folder-filled","FolderFilled",qZe),jte=N0({siblingSelector:"[data-likec4-focusable]",parentSelector:"[data-likec4-breadcrumbs-dropdown]",activateOnFocus:!1,loop:!0,orientation:"vertical"});function WZe(e){return e.context.searchQuery.trim().length>=2}const Lte=E.memo(()=>{const e=Fy(),r=XA(WZe);Fa("paneClick",()=>{e.closeDropdown()}),Fa("nodeClick",()=>{e.closeDropdown()}),Fa("edgeClick",()=>{e.closeDropdown()});const n=C$e(o=>{e.send({type:"searchQuery.change",value:o})},250);return y.jsxs(fc,{className:et("nowheel",Z0({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(LZe,{}),y.jsx(sn,{gap:"xs",children:y.jsx(oQe,{defaultValue:e.actorRef.getSnapshot().context.searchQuery,onChange:n})}),y.jsx(pa,{scrollbars:"x",type:"auto",offsetScrollbars:"present",classNames:{root:be({maxWidth:["calc(100vw - 50px)","calc(100cqw - 50px)"]})},styles:{viewport:{overscrollBehavior:"none"}},children:r?y.jsx(XZe,{}):y.jsx(tQe,{})})]})});Lte.displayName="NavigationPanelDropdown";function YZe(e){return Lx(e.context.searchQuery)}const GZe=eO($a),XZe=E.memo(()=>{const e=Ko(),r=Fy(),n=fn(r.actorRef,YZe),o=E.useDeferredValue(n),a=o.includes($a),i=a?o.split($a):o,[s,l]=E.useState([]);return E.useEffect(()=>{l(c=>{const u=En(e.views(),Qd(d=>a&&d.$view.title?Lx(d.$view.title).toLowerCase().includes(o):d.id.toLowerCase().includes(o)||!!d.title?.toLowerCase().includes(o)),V6e(20),K1(),GNe((d,h)=>GZe(d.folder.path,h.folder.path)));return an(u,c)?c:u})},[e,o,a]),s.length===0?y.jsx("div",{children:"no results"}):y.jsx(pa,{scrollbars:"xy",offsetScrollbars:!1,className:be({width:"100%",maxWidth:["calc(100vw - 250px)","calc(100cqw - 250px)"],maxHeight:["calc(100vh - 200px)","calc(100cqh - 200px)"]}),children:y.jsx(Ap,{gap:"0.5",children:s.map(c=>y.jsx(ZZe,{view:c,highlight:i,onClick:u=>{u.stopPropagation(),r.selectView(c.id)},"data-likec4-focusable":!0,onKeyDown:jte},c.id))})})}),KZe=Zn({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!"}}),Bte=be({_groupFocus:{color:"[inherit!]",transition:"none"}});function ZZe({view:e,highlight:r,...n}){const o=e.folder,a=Hte[e.id==="index"?"index":e._type],i=y.jsx(gc,{component:"div",className:et(Bte,u4({truncate:!0}),be({"& > 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),s=et(n.className,"group",KZe);if(o.isRoot)return y.jsxs(Er,{...n,className:s,children:[a,i]});const l=o.breadcrumbs.map(c=>y.jsx(gc,{component:"div",className:et(be({_groupHover:{color:"mantine.colors.dimmed"}}),Bte,u4({dimmed:!0,truncate:!0})),maw:170,highlight:P9(r)?r:[],children:c.title},c.path));return l.push(y.jsxs(sn,{gap:"[4px]",children:[a,i]})),y.jsxs(Er,{...n,className:s,children:[Fte,y.jsx(q2,{separator:y.jsx(qu,{size:12,stroke:1.5}),separatorMargin:3,children:l})]})}const QZe=y.jsx(qu,{size:12,stroke:1.5,className:"mantine-rotate-rtl"}),Fte=y.jsx(UZe,{size:16,className:be({opacity:{base:.3,_groupHover:.5,_groupActive:.5,_groupFocus:.5}})}),d4=be({opacity:{base:.3,_dark:.5,_groupHover:.8,_groupActive:.8,_groupFocus:.8}}),Hte={index:y.jsx(VZe,{size:16,className:d4}),element:y.jsx(Ri,{size:18,stroke:2,className:d4}),deployment:y.jsx(PA,{size:16,stroke:1.5,className:d4}),dynamic:y.jsx(FZe,{size:18,className:d4})},JZe=pa.withProps({scrollbars:"y",className:be({maxHeight:["calc(100vh - 160px)","calc(100cqh - 160px)"]})});function Vte(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 eQe=e=>{const r=e.viewModel;if(!r)return[];const n=r.$model,o=[Vte(n.rootViewFolder,e)],a=n.viewFolder(e.selectedFolder);if(!a.isRoot)for(const i of a.breadcrumbs)o.push(Vte(i,e));return o},tQe=E.memo(()=>{const e=oZe(eQe,lt);return y.jsx(sn,{gap:"xs",alignItems:"stretch",children:e.flatMap((r,n)=>[n>0&&y.jsx(kp,{orientation:"vertical"},"divider"+n),y.jsx(rQe,{data:r,isLast:n>0&&n==e.length-1},r.folderPath)])})});function rQe({data:e,isLast:r}){const n=E.useRef(null),o=GA(),a=i=>s=>{s.stopPropagation(),i.type==="folder"?o.send({type:"select.folder",folderPath:i.folderPath}):o.send({type:"select.view",viewId:i.viewId})};return LEe(()=>{r&&n.current&&n.current.scrollIntoView({block:"nearest",inline:"nearest",behavior:"smooth"})}),y.jsx(zr,{mb:"1",ref:n,children:y.jsx(JZe,{children:y.jsx(Ap,{gap:"0.5",children:e.items.map((i,s)=>y.jsx(nQe,{columnItem:i,onClick:a(i)},`${e.folderPath}/${i.type}/${s}`))})})})}function nQe({columnItem:e,...r}){switch(e.type){case"folder":return y.jsx(ZA,{variant:"light",active:e.selected,label:e.title,leftSection:Fte,rightSection:QZe,maw:"300px",miw:"200px",...r},e.folderPath);case"view":return y.jsx(ZA,{variant:"filled",active:e.selected,label:e.title,description:e.description,leftSection:Hte[e.viewType],maw:"300px",miw:"200px",...r},e.viewId);default:Zi(e)}}function oQe(e){const[r,n]=uc({...e,finalValue:""});return y.jsx(La,{size:"xs",placeholder:"Search by title or id",variant:"unstyled",height:Me(26),value:r,onKeyDown:jte,onChange:o=>n(o.currentTarget.value),"data-likec4-focusable":!0,classNames:{wrapper:be({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:be({_placeholder:{color:"mantine.colors.dimmed"},_focus:{outline:"none"}})},style:{"--input-fz":"var(--mantine-font-size-sm)"},leftSection:y.jsx(VA,{size:14}),rightSectionPointerEvents:"all",rightSectionWidth:"min-content",rightSection:!e.value||fp(e.value)?null:y.jsx(Kn,{variant:"subtle",h:"100%",size:"compact-xs",color:"gray",onClick:o=>{o.stopPropagation(),n("")},children:"clear"})})}const aQe=Iu("div",{base:{fontSize:"xs",color:"mantine.colors.dimmed",fontWeight:500,userSelect:"none",mb:"xxs"}});function iQe(e){const r=RNe(e.activeWalkthrough),n=r?e.xyedges.findIndex(o=>o.id===e.activeWalkthrough?.stepId):-1;return{isActive:r,isParallel:r&&ua(e.activeWalkthrough?.parallelPrefix),hasNext:r&&n0,notes:r?e.xyedges[n]?.data?.notes??or.EMPTY:null}}const sQe=E.memo(()=>{const{isActive:e,notes:r}=vs(iQe);return y.jsx(Qn,{children:e&&r&&!r.isEmpty&&y.jsx(Ei.div,{layout:"position",className:be({position:"relative"}),initial:{opacity:0,translateX:-20},animate:{opacity:1,translateX:0},exit:{opacity:0,translateX:-20},children:y.jsxs(pa,{className:Z0({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(aQe,{children:"Notes"}),y.jsx(Wp,{value:r,fontSize:"sm",emptyText:"No description",className:be({userSelect:"all"})})]})})})});function lQe({onResetManualLayout:e}){return y.jsxs(hn,{withinPortal:!1,floatingStrategy:"absolute",shadow:"lg",position:"bottom-start",offset:{mainAxis:4},children:[y.jsx(hn.Target,{children:y.jsxs(Er,{className:et("mantine-active",CT({variant:"default"}),Zn({gap:"2",py:"1.5",px:"2",lineHeight:"1",rounded:"sm",textStyle:"xs",fontWeight:"medium",color:{base:"likec4.panel.action",_hover:"likec4.panel.action.hover"},userSelect:"none"})),children:[y.jsx(zr,{children:"Actions"}),y.jsx(MT,{size:12,stroke:2,opacity:.7})]})}),y.jsxs(hn.Dropdown,{children:[y.jsx(hn.Item,{disabled:!0,rightSection:y.jsx(vl,{size:"xs",radius:"sm",children:"Soon"}),children:"Apply changes"}),y.jsx(hn.Item,{fz:"sm",onClick:e,children:"Reset manual layout"})]})]})}function cQe({value:e,onChange:r}){const n=E.useMemo(()=>[{value:"manual",label:"Saved"},{value:"auto",label:"Latest"}],[]);return y.jsx(Br,{layout:"position",children:y.jsx(dm,{size:"xs",color:e==="manual"?"orange":"green",value:e,component:Br,onChange:o=>{at(o==="manual"||o==="auto","Invalid layout type"),r(o)},classNames:{label:be({fontSize:"xxs",fontWeight:"medium"})},data:n})})}const qte=kp.withProps({mx:2,size:"xs",orientation:"vertical"});function uQe(){const[e,{toggleCompare:r,switchLayout:n,resetManualLayout:o}]=KA();return y.jsxs(y.Fragment,{children:[y.jsx(zr,{css:{textStyle:"xs",color:"likec4.panel.text",userSelect:"none"},children:"Compare"}),y.jsx(cQe,{value:e.layout,onChange:n}),e.isEditable&&y.jsxs(sn,{gap:"1",children:[y.jsx(qte,{}),y.jsx(lQe,{onResetManualLayout:o}),y.jsx(qte,{})]}),y.jsx(Ec,{size:"sm",onClick:a=>{a.stopPropagation(),r()},children:y.jsx(Rp,{})})]})}const Ute=E.memo(()=>{const{enableCompareWithLatest:e}=_r();return y.jsx(Qn,{children:e&&y.jsx(Br,{layout:"position",className:Zn({gap:"2",layerStyle:"likec4.panel",position:"relative",px:"2",py:"1",pl:"3",pointerEvents:"all"}),initial:{opacity:0,translateX:-20},animate:{opacity:1,translateX:0},exit:{opacity:0,translateX:-20},children:y.jsx(uQe,{})})})});Ute.displayName="ComparePanel";const Hy=co.withProps({color:"dark",fz:"xs",openDelay:600,closeDelay:120,label:"",children:null,offset:8,position:"right"}),dQe=[["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"}]],pQe=Nt("outline","focus-centered","FocusCentered",dQe),hQe=()=>{const e=Qt();return y.jsx(Hy,{label:"Center camera",children:y.jsx(Ec,{onClick:()=>e.fitDiagram(),children:y.jsx(pQe,{})})})};be({gap:"xxs",_empty:{display:"none"}}),be({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"}}}),be({shadow:{base:"md",_whenPanning:"none"}}),be({"& .tabler-icon":{width:"65%",height:"65%"}});const p4=be({flex:"1 1 40%",textAlign:"center",fontWeight:500,padding:"[4px 6px]",fontSize:"11px",zIndex:1}),fQe=be({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]"}}),mQe=be({position:"relative",borderRadius:"sm",background:"mantine.colors.gray[3]",boxShadow:"inset 1px 1px 3px 0px #00000024",_dark:{background:"mantine.colors.dark[7]"}}),gQe=be({position:"absolute",width:8,height:8,border:"2px solid",borderColor:"mantine.colors.gray[5]",borderRadius:3,transform:"translate(-50%, -50%)"}),yQe=[["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"}]],bQe=Nt("outline","layout-dashboard","LayoutDashboard",yQe),vQe=e=>({viewId:e.view.id,isManualLayout:e.view._layout==="manual",autoLayout:e.view.autoLayout}),xQe=()=>{const e=Qt(),[r,n]=E.useState(null),[o,a]=E.useState({}),{autoLayout:i,viewId:s,isManualLayout:l}=vs(vQe),{ref:c,hovered:u}=X9(),d=g=>b=>{o[g]=b,a(o)},h=g=>b=>{b.stopPropagation(),e.fitDiagram(),e.triggerChange({op:"change-autolayout",layout:{...i,direction:g}})},f=(g,b)=>{e.fitDiagram(),e.triggerChange({op:"change-autolayout",layout:{...i,nodeSep:g,rankSep:b}})};return l?null:y.jsxs(Rr,{position:"right-start",clickOutsideEvents:["pointerdown"],radius:"xs",shadow:"lg",offset:{mainAxis:10},children:[y.jsx($u,{children:y.jsx(Hy,{label:"Change Auto Layout",children:y.jsx(Ec,{children:y.jsx(bQe,{})})})}),y.jsx(fc,{className:"likec4-top-left-panel",p:8,pt:6,opacity:u?.6:1,children:y.jsxs(Re,{pos:"relative",ref:n,children:[y.jsx(B2,{target:o[i.direction],parent:r,className:fQe}),y.jsx(Re,{mb:10,children:y.jsx(ft,{inline:!0,fz:"xs",c:"dimmed",fw:500,children:"Auto layout:"})}),y.jsxs(mc,{gap:2,wrap:"wrap",justify:"stretch",maw:160,children:[y.jsx(Er,{className:p4,ref:d("TB"),onClick:h("TB"),children:"Top-Bottom"}),y.jsx(Er,{className:p4,ref:d("BT"),onClick:h("BT"),children:"Bottom-Top"}),y.jsx(Er,{className:p4,ref:d("LR"),onClick:h("LR"),children:"Left-Right"}),y.jsx(Er,{className:p4,ref:d("RL"),onClick:h("RL"),children:"Right-Left"})]}),y.jsx(Re,{my:10,children:y.jsx(ft,{inline:!0,fz:"xs",c:"dimmed",fw:500,children:"Spacing:"})}),y.jsx(wQe,{ref:c,isVertical:i.direction==="TB"||i.direction==="BT",nodeSep:i.nodeSep,rankSep:i.rankSep,onChange:f},s)]})})]})},Um=400,wQe=E.forwardRef(({isVertical:e,nodeSep:r,rankSep:n,onChange:o},a)=>{e||([r,n]=[n,r]);const i=HE(({x:f,y:g})=>{e||([f,g]=[g,f]),o(Math.round(f*Um),Math.round(g*Um))},[o,e],250,2e3),[s,l]=uc({defaultValue:d$e({x:(r??100)/Um,y:(n??120)/Um}),onChange:i}),{ref:c}=CU(l);let u=Math.round(s.x*Um),d=Math.round(s.y*Um);e||([u,d]=[d,u]);const h=Hr(c,a);return y.jsxs(Re,{ref:h,className:mQe,pt:"100%",children:[y.jsx(Re,{className:gQe,style:{left:`${s.x*100}%`,top:`${s.y*100}%`}}),y.jsx(Re,{pos:"absolute",left:2,bottom:2,children:y.jsxs(ft,{component:"div",fz:8,c:"dimmed",fw:500,children:[d,", ",u]})})]})}),kQe=[["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"}]],_Qe=Nt("outline","layout-collage","LayoutCollage",kQe),EQe=[["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"}]],Wte=Nt("outline","layout-board-split","LayoutBoardSplit",EQe),SQe=[["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"}]],CQe=Nt("outline","layout-align-left","LayoutAlignLeft",SQe),TQe=[["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"}]],AQe=Nt("outline","layout-align-center","LayoutAlignCenter",TQe),RQe=[["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"}]],NQe=Nt("outline","layout-align-right","LayoutAlignRight",RQe),DQe=[["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"}]],$Qe=Nt("outline","layout-align-top","LayoutAlignTop",DQe),MQe=[["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"}]],PQe=Nt("outline","layout-align-middle","LayoutAlignMiddle",MQe),zQe=[["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"}]],IQe=Nt("outline","layout-align-bottom","LayoutAlignBottom",zQe),OQe=[["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"}]],jQe=Nt("outline","route-off","RouteOff",OQe),Sc=({label:e,icon:r,onClick:n})=>y.jsx(Hy,{label:e,withinPortal:!1,position:"top",children:y.jsx(Ec,{classNames:{root:"action-icon",icon:be({"& > svg":{width:"70%",height:"70%"}})},onClick:n,children:r})}),Yte=E.memo(()=>{const e=Qt(),r=qm();return y.jsxs(Rr,{position:"right",offset:{mainAxis:12},clickOutsideEvents:["pointerdown"],...r,children:[y.jsx($u,{children:y.jsx(Hy,{label:"Manual layouting tools",children:y.jsx(Ec,{children:y.jsx(_Qe,{})})})}),y.jsx(fc,{className:Zn({gap:"0.5",layerStyle:"likec4.panel",padding:"1",pointerEvents:"all"}),children:y.jsxs(Ep,{children:[y.jsx(Sc,{label:"Align in columns",icon:y.jsx(Wte,{}),onClick:n=>{n.stopPropagation(),e.align("Column")}}),y.jsx(Sc,{label:"Align left",icon:y.jsx(CQe,{}),onClick:n=>{n.stopPropagation(),e.align("Left")}}),y.jsx(Sc,{label:"Align center",icon:y.jsx(AQe,{}),onClick:n=>{n.stopPropagation(),e.align("Center")}}),y.jsx(Sc,{label:"Align right",icon:y.jsx(NQe,{}),onClick:n=>{n.stopPropagation(),e.align("Right")}}),y.jsx(Sc,{label:"Align in rows",icon:y.jsx(Wte,{style:{transform:"rotate(90deg)"}}),onClick:n=>{n.stopPropagation(),e.align("Row")}}),y.jsx(Sc,{label:"Align top",icon:y.jsx($Qe,{}),onClick:n=>{n.stopPropagation(),e.align("Top")}}),y.jsx(Sc,{label:"Align middle",icon:y.jsx(PQe,{}),onClick:n=>{n.stopPropagation(),e.align("Middle")}}),y.jsx(Sc,{label:"Align bottom",icon:y.jsx(IQe,{}),onClick:n=>{n.stopPropagation(),e.align("Bottom")}}),y.jsx(Sc,{label:"Reset all control points",icon:y.jsx(jQe,{}),onClick:n=>{n.stopPropagation(),e.resetEdgeControlPoints()}})]})})]})});Yte.displayName="ManualLayoutToolsButton";const LQe=()=>{const e=Qt();return y.jsx(Hy,{label:"Switch to Read-only",children:y.jsx(Ec,{onClick:()=>e.toggleFeature("ReadOnly"),children:y.jsx($te,{size:14,stroke:2})})})};function BQe(){const{enableReadOnly:e}=_r();return y.jsx(Qn,{children:!e&&y.jsx(Br,{layout:"position",className:Z0({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(Ep,{openDelay:600,closeDelay:120,children:[y.jsx(xQe,{}),y.jsx(Yte,{}),y.jsx(hQe,{}),y.jsx(LQe,{})]})})})}const FQe=[["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=Nt("filled","player-stop-filled","PlayerStopFilled",FQe),VQe=[["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"}]],qQe=Nt("filled","player-skip-back-filled","PlayerSkipBackFilled",VQe),UQe=[["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"}]],WQe=Nt("filled","player-skip-forward-filled","PlayerSkipForwardFilled",UQe),Gte=Kn.withProps({component:Ni,layout:"position",whileTap:{scale:.95},variant:"light",size:"xs",fw:"500"}),YQe=()=>{const{portalProps:e}=qm();return y.jsx(j0,{...e,children:y.jsx(zr,{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 GQe(){const e=Qt(),{isParallel:r,hasNext:n,hasPrevious:o,currentStep:a,totalSteps:i}=vs(s=>{const l=s.xyedges.findIndex(c=>c.id===s.activeWalkthrough?.stepId);return{isParallel:ua(s.activeWalkthrough?.parallelPrefix),hasNext:l0,currentStep:l+1,totalSteps:s.xyedges.length}});return y.jsxs(Qn,{propagate:!0,mode:"popLayout",children:[y.jsx(Mte,{variant:"light",size:"xs",color:"orange",mr:"sm",onClick:s=>{s.stopPropagation(),e.stopWalkthrough()},rightSection:y.jsx(HQe,{size:10}),children:"Stop"},"stop-walkthrough"),y.jsx(Gte,{disabled:!o,onClick:()=>e.walkthroughStep("previous"),leftSection:y.jsx(qQe,{size:10}),children:"Previous"},"prev"),y.jsxs(vl,{component:Br,layout:"position",size:"md",radius:"sm",variant:r?"gradient":"transparent",gradient:{from:"red",to:"orange",deg:90},rightSection:y.jsx(Br,{className:be({fontSize:"xxs",display:r?"block":"none"}),children:"parallel"}),className:be({alignItems:"baseline"}),children:[a," / ",i]},"step-badge"),y.jsx(Gte,{disabled:!n,onClick:()=>e.walkthroughStep("next"),rightSection:y.jsx(WQe,{size:10}),children:"Next"},"next"),r&&y.jsx(YQe,{},"parallel-frame")]})}const Xte=E.memo(()=>{const e=zp(),r=NGe(),n=AWe(),o=KS(rZe,{input:{view:r,viewModel:n}});return E.useEffect(()=>{const a=o.on("navigateTo",i=>{e.getSnapshot().context.view.id!==i.viewId&&e.send({type:"navigate.to",viewId:i.viewId})});return()=>a.unsubscribe()},[o,e]),OF(()=>{o.send({type:"update.inputs",inputs:{viewModel:n,view:r}})},[n,r]),y.jsx(Ap,{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(nZe,{value:o,children:[y.jsx(XQe,{actor:o}),y.jsx(Ute,{}),y.jsx(sQe,{}),y.jsx(BQe,{})]})})});Xte.displayName="NavigationPanel";const XQe=({actor:e})=>{const r=fn(e,o=>o.hasTag("active")),n=qm();return y.jsxs(Rr,{offset:{mainAxis:4},opened:r,position:"bottom-start",trapFocus:!0,...n,clickOutsideEvents:["pointerdown","mousedown","click"],onDismiss:()=>e.send({type:"dropdown.dismiss"}),children:[y.jsx(KQe,{actor:e}),r&&y.jsx(Lte,{})]})},KQe=({actor:e})=>{const r=vs(n=>n.activeWalkthrough!==null);return y.jsx($m,{children:y.jsx($u,{children:y.jsx(Br,{layout:!0,className:Zn({layerStyle:"likec4.panel",position:"relative",gap:"xs",cursor:"pointer",pointerEvents:"all",width:"100%"}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave"}),children:y.jsx(Qn,{mode:"popLayout",children:r?y.jsx(GQe,{}):y.jsx(Ote,{})})})})})},QA=be({position:"absolute",bottom:"0",right:"0",padding:"2",margin:"0",width:"min-content",height:"min-content"}),ZQe=be({"--ai-radius":"0px",_noReduceGraphics:{"--ai-radius":"{radii.md}"}}),QQe=be({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"}}),JQe=be({padding:"xxs"}),eJe=be({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"}}});be({fill:"var(--likec4-palette-fill)",stroke:"var(--likec4-palette-stroke)",strokeWidth:1,overflow:"visible",width:"100%",height:"auto",filter:` + `.replace(/\s+/g," ").trim(),ry:a,rx:i}}function PJ(e,r,n=.185){const o=r,i=Math.round(o/2),a=Pd(o/2*n),l=e-2*a;return{path:` + M ${a},0 + a ${a},${i} 0,0,0 0 ${o} + l ${l},0 + a ${a},${i} 0,0,0 0 ${-o} + z`.replace(/\s+/g," ").trim(),ry:i,rx:a}}const Rp={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 MJ({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-Rp.width-6,y:n-Rp.height,width:Rp.width,height:Rp.height,viewBox:`0 0 ${Rp.width} ${Rp.height}`,"data-likec4-fill":"mix-stroke",children:y.jsx("path",{strokeWidth:0,d:Rp.path})})]});case"queue":{const{path:o,rx:i,ry:a}=PJ(r,n);return y.jsxs(y.Fragment,{children:[y.jsx("path",{d:o,strokeWidth:2}),y.jsx("ellipse",{cx:i,cy:a,ry:a-.75,rx:i,"data-likec4-fill":"mix-stroke",strokeWidth:2})]})}case"storage":case"cylinder":{const{path:o,rx:i,ry:a}=DJ(r,n);return y.jsxs(y.Fragment,{children:[y.jsx("path",{d:o,strokeWidth:2}),y.jsx("ellipse",{cx:i,cy:a,ry:a,rx:i-.75,"data-likec4-fill":"mix-stroke",strokeWidth:2})]})}default:return Qo(e)}}function JHe({shape:e,w:r,h:n}){let o;switch(e){case"queue":o=y.jsx("path",{d:PJ(r,n).path});break;case"storage":case"cylinder":{o=y.jsx("path",{d:DJ(r,n).path});break}default:{o=y.jsx("rect",{x:-3,y:-3,width:r+6,height:n+6,rx:8});break}}return y.jsx("g",{className:"likec4-shape-outline",children:o})}function eUe({multiple:e,withOutLine:r}){return y.jsxs("div",{className:GZ({shapetype:"html"}),children:[e&&y.jsx("div",{className:"likec4-shape-multiple"}),r&&y.jsx("div",{className:"likec4-shape-outline"})]})}function pg({data:e,width:r,height:n,showSeletionOutline:o=!0}){let i=r&&r>10?r:e.width,a=n&&n>10?n:e.height;const l=e.style?.multiple??!1;if(e.shape==="rectangle")return y.jsx(eUe,{multiple:l,withOutLine:o});const s=GZ({shapetype:"svg"});return y.jsxs(y.Fragment,{children:[l&&y.jsx("svg",{className:s,"data-likec4-shape-multiple":"true",viewBox:`0 0 ${i} ${a}`,children:y.jsx(MJ,{shape:e.shape,w:i,h:a})}),y.jsxs("svg",{className:s,viewBox:`0 0 ${i} ${a}`,children:[o&&y.jsx(JHe,{shape:e.shape,w:i,h:a}),y.jsx(MJ,{shape:e.shape,w:i,h:a})]})]})}const zp=S.forwardRef(({value:e,textScale:r=1,uselikec4palette:n=!1,hideIfEmpty:o=!1,emptyText:i="no content",className:a,style:l,fontSize:s,...c},d)=>{if(e.isEmpty&&o)return null;const u=e.nonEmpty?e.isMarkdown?{dangerouslySetInnerHTML:{__html:e.html}}:{children:y.jsx("p",{children:e.text})}:{children:y.jsx(it,{component:"span",fz:"xs",c:"dimmed",style:{userSelect:"none"},children:i})};return y.jsx(hr,{ref:d,...c,className:Ge(bVe({uselikec4palette:n,value:e.isMarkdown?"markdown":"plaintext"}),a),style:{...l,...s&&{"--text-fz":`var(--font-sizes-${s}, var(--font-sizes-md))`},...r!==1&&{"--mantine-scale":r}},...u})});zp.displayName="Markdown";const NJ=S.forwardRef(({className:e,...r},n)=>y.jsx("div",{...r,ref:n,className:Ge(e,yVe(),"likec4-element")})),BJ=({data:e,...r})=>y.jsx(bx,{element:e,...r}),IJ=S.forwardRef(({className:e,...r},n)=>y.jsx("div",{...r,className:Ge(e,"likec4-element-node-content"),ref:n})),OJ=S.forwardRef(({data:{title:e,style:r},className:n,...o},i)=>{const{size:a}=$b(r),l=a==="sm"||a==="xs";return y.jsx(it,{component:"div",...o,className:Ge(n,"likec4-element-title"),"data-likec4-node-title":"",lineClamp:l?2:3,ref:i,children:e})}),LJ=S.forwardRef(({data:e,children:r,className:n,...o},i)=>{const a=e?.technology??r;return Zn(a)?y.jsx(it,{component:"div",...o,className:Ge(n,"likec4-element-technology"),"data-likec4-node-technology":"",ref:i,children:a}):null}),FJ=S.forwardRef(({data:{description:e,style:r},className:n,...o},i)=>{if(!e)return null;const a=ur.from(e),{size:l}=$b(r);return y.jsx(zp,{...o,className:Ge(n,"likec4-element-description",fe({lineClamp:l==="sm"||l==="xs"?3:5})),"data-likec4-node-description":"",value:a,uselikec4palette:!0,hideIfEmpty:!0,style:{maxHeight:a.isMarkdown?"8rem":void 0},ref:i})});function dl({iconSize:e,data:r}){return y.jsxs(NJ,{style:Iq(e)?{"--likec4-icon-size":`${e}px`}:void 0,children:[y.jsx(BJ,{data:r}),y.jsxs(IJ,{children:[y.jsx(OJ,{data:r}),y.jsx(LJ,{data:r}),y.jsx(FJ,{data:r})]})]})}dl.Root=NJ,dl.Icon=BJ,dl.Content=IJ,dl.Title=OJ,dl.Technology=LJ,dl.Description=FJ;const tUe=fe({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"},_print:{display:"none"}});function oR({selected:e=!1,data:{hovered:r=!1},icon:n,onClick:o}){return y.jsx(hr,{className:Ge(tUe,"details-button"),children:y.jsx(lr,{className:Ge("nodrag nopan",a2({variant:"transparent"})),component:wa,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:nn,children:n??y.jsx(nR,{stroke:1.8,style:{width:"75%"}})})})}const rUe=e=>{const r=Mt();return y.jsx(oR,{...e,onClick:n=>{n.stopPropagation(),r.openElementDetails(e.data.fqn)}})};function nUe(e){const{enableElementTags:r}=sr();return y.jsxs(ug,{layoutId:e.id,nodeProps:e,children:[y.jsx(pg,{...e}),y.jsx(dl,{...e}),r&&y.jsx(t0,{...e}),y.jsx(rUe,{...e}),y.jsx(KHe,{...e}),y.jsx(iUe,{...e})]},e.id)}function oUe(e){const r=Mt();return y.jsxs(c0,{layoutId:e.id,nodeProps:e,children:[y.jsx(d0,{...e}),y.jsx(AJ,{...e,onClick:n=>{n.stopPropagation(),r.openElementDetails(e.data.fqn)}}),y.jsx(aUe,{...e})]},e.id)}const iUe=({data:{ports:e,height:r}})=>y.jsxs(y.Fragment,{children:[e.in.map((n,o)=>y.jsx(Oo,{id:n,type:"target",position:Ue.Left,style:{visibility:"hidden",top:`${15+(o+1)*((r-30)/(e.in.length+1))}px`}},n)),e.out.map((n,o)=>y.jsx(Oo,{id:n,type:"source",position:Ue.Right,style:{visibility:"hidden",top:`${15+(o+1)*((r-30)/(e.out.length+1))}px`}},n))]}),aUe=({data:e})=>y.jsxs(y.Fragment,{children:[e.ports.in.map((r,n)=>y.jsx(Oo,{id:r,type:"target",position:Ue.Left,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r)),e.ports.out.map((r,n)=>y.jsx(Oo,{id:r,type:"source",position:Ue.Right,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r))]}),lUe=[["path",{d:"M15 6l-6 6l6 6",key:"svg-0"}]],VJ=wt("outline","chevron-left","ChevronLeft",lUe),sUe={element:nUe,compound:oUe,empty:OHe},cUe={relationship:BHe};function qJ({actorRef:e}){const r=S.useRef(null);return r.current==null&&(r.current={initialNodes:[],initialEdges:[]}),y.jsx(xQ.Provider,{value:e,children:y.jsx(lw,{...r.current,children:y.jsx(lg,{id:e.sessionId,inherit:!1,children:y.jsx(Cn,{children:y.jsx(pUe,{})})})})})}const dUe=e=>({isActive:e.hasTag("active"),nodes:e.context.xynodes,edges:e.context.xyedges}),uUe=(e,r)=>e.isActive===r.isActive&&Ir(e.nodes,r.nodes)&&Ir(e.edges,r.edges),pUe=S.memo(()=>{const e=n0(),{isActive:r,nodes:n,edges:o}=v2(dUe,uUe);return y.jsx(s$,{id:e.rootElementId,nodes:n,edges:o,className:Ge(r?"initialized":"not-initialized","relationships-browser"),nodeTypes:sUe,edgeTypes:cUe,fitView:!1,onNodeClick:at((i,a)=>{i.stopPropagation(),e.send({type:"xyflow.nodeClick",node:a})}),onEdgeClick:at((i,a)=>{i.stopPropagation(),e.send({type:"xyflow.edgeClick",edge:a})}),onPaneClick:at(i=>{i.stopPropagation(),e.send({type:"xyflow.paneClick"})}),onDoubleClick:at(i=>{e.send({type:"xyflow.paneDblClick"})}),onViewportResize:at(()=>{e.send({type:"xyflow.resized"})}),onNodesChange:at(i=>{e.send({type:"xyflow.applyNodeChanges",changes:i})}),onEdgesChange:at(i=>{e.send({type:"xyflow.applyEdgeChanges",changes:i})}),onEdgeMouseEnter:at((i,a)=>{a.data.hovered||e.send({type:"xyflow.edgeMouseEnter",edge:a})}),onEdgeMouseLeave:at((i,a)=>{a.data.hovered&&e.send({type:"xyflow.edgeMouseLeave",edge:a})}),onSelectionChange:at(i=>{e.send({type:"xyflow.selectionChange",...i})}),nodesDraggable:!1,nodesSelectable:!0,pannable:!0,zoomable:!0,children:y.jsx(fUe,{})})}),hUe=e=>({subjectId:e.context.subject,viewId:e.context.viewId,scope:e.context.scope,closeable:e.context.closeable}),fUe=S.memo(()=>{const e=n0(),{subjectId:r,viewId:n,scope:o,closeable:i}=v2(hUe),a=vr(),l=pf();S.useEffect(()=>{l.viewportInitialized&&e.send({type:"xyflow.init",instance:l,store:a})},[a,l.viewportInitialized,e]);const s=bHe(r,n,o),[c,d,{history:u,current:p}]=RH(r);S.useEffect(()=>{c!==r&&d.set(r)},[r]),S.useEffect(()=>{c!==r&&e.navigateTo(c)},[c,e]),_L(()=>{e.updateView(s)},[s,e]);const f=p>0,m=p+1d.back(),onStepForward:()=>d.forward()}),i&&y.jsx(sd,{position:"top-right",children:y.jsx(lr,{variant:"default",color:"gray",onClick:v=>{v.stopPropagation(),e.close()},children:y.jsx(fp,{})})})]})}),gUe=({hasStepBack:e,hasStepForward:r,onStepBack:n,onStepForward:o})=>y.jsx(sd,{position:"top-left",children:y.jsxs(en,{gap:4,wrap:"nowrap",children:[y.jsxs(Cn,{mode:"popLayout",children:[e&&y.jsx(ga.div,{layout:!0,initial:{opacity:.05,transform:"translateX(-5px)"},animate:{opacity:1,transform:"translateX(0)"},exit:{opacity:.05,transform:"translateX(-10px)"},children:y.jsx(lr,{variant:"default",color:"gray",onClick:i=>{i.stopPropagation(),n()},children:y.jsx(VJ,{})})},"back"),r&&y.jsx(ga.div,{layout:!0,initial:{opacity:.05,transform:"translateX(5px)"},animate:{opacity:1,transform:"translateX(0)"},exit:{opacity:0,transform:"translateX(5px)"},children:y.jsx(lr,{variant:"default",color:"gray",onClick:i=>{i.stopPropagation(),o()},children:y.jsx(Dd,{})})},"forward")]}),y.jsx($He,{})]})}),mUe=fe({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)"}),yUe=fe({_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]"}}}),vUe=fe({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]"}});fe({_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]"}}}),fe({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"}});const bUe=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M13 18l6 -6",key:"svg-1"}],["path",{d:"M13 6l6 6",key:"svg-2"}]],hg=wt("outline","arrow-right","ArrowRight",bUe),xUe=[["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"}]],HJ=wt("outline","external-link","ExternalLink",xUe),wUe=_n.withProps({color:"dark",fz:"xs",openDelay:600,closeDelay:120,label:"",children:null,offset:8,withinPortal:!1});function kUe({node:e,element:r}){const n=Mt(),o=lVe(),i=pn(o,S.useCallback(u=>u.children[`${o.id}-relationships`],[o.id])),a=[...r.incoming()].map(u=>u.id),l=[...r.outgoing()].map(u=>u.id),s=e?yw([...e.incoming()].flatMap(u=>u.$edge.relations)):[],c=e?yw([...e.outgoing()].flatMap(u=>u.$edge.relations)):[],d=[...a,...l].filter(u=>!s.includes(u)&&!c.includes(u)).length;return y.jsxs(Lo,{gap:"xs",pos:"relative",w:"100%",h:"100%",children:[a.length+l.length>0&&y.jsxs(en,{gap:"xs",wrap:"nowrap",align:"center",children:[y.jsx(Se,{children:y.jsxs(en,{gap:8,mb:4,wrap:"nowrap",children:[y.jsx(UJ,{title:"incoming",total:a.length,included:s.length}),y.jsx(Ti,{size:"sm",variant:"transparent",c:"dimmed",children:y.jsx(hg,{style:{width:16}})}),y.jsx(it,{className:mUe,children:Jm(r.id)}),y.jsx(Ti,{size:"sm",variant:"transparent",c:"dimmed",children:y.jsx(hg,{style:{width:16}})}),y.jsx(UJ,{title:"outgoing",total:l.length,included:c.length})]})}),d>0&&y.jsx(wUe,{label:"Current view does not include some relationships",children:y.jsxs(en,{mt:"xs",gap:6,c:"orange",style:{cursor:"pointer"},children:[y.jsx(r0,{style:{width:14}}),y.jsxs(it,{fz:"sm",children:[d," relationship",d>1?"s are":" is"," hidden"]})]})})]}),y.jsx(Se,{className:vUe,children:i&&y.jsxs(y.Fragment,{children:[y.jsx(qJ,{actorRef:i}),y.jsx(Se,{pos:"absolute",top:12,right:12,children:y.jsx(lr,{size:"md",variant:"default",radius:"sm",onClick:u=>{u.stopPropagation();const{subject:p,scope:f,viewId:m}=i.getSnapshot().context;n.overlays().send({type:"open.relationshipsBrowser",subject:p,scope:f,viewId:m})},children:y.jsx(HJ,{stroke:1.6,style:{width:"70%"}})})})]})})]})}function UJ({title:e,total:r,included:n}){return y.jsx(Af,{withBorder:!0,shadow:"none",className:yUe,px:"md",py:"xs",radius:"md",mod:{zero:r===0,missing:r!==n},children:y.jsxs(Lo,{gap:4,align:"flex-end",children:[y.jsx(it,{component:"div",c:r!==n?"orange":"dimmed",tt:"uppercase",fw:600,fz:10,lh:1,children:e}),y.jsx(it,{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 _Ue=fe({marginTop:"sm",marginBottom:"sm"}),SUe=fe({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)"}}}),iR=({element:e})=>y.jsx(Se,{className:SUe,children:y.jsx(it,{component:"div",fz:"sm",fw:"500",children:e.title})}),EUe=()=>{};function CUe({element:e}){const r=_y({multiple:!1});r.setHoveredNode=EUe;const n=S.useMemo(()=>{let o=1;const i=l=>({label:l,value:`msg${o++}`,type:"message",children:[]}),a={label:y.jsx(iR,{type:"current",element:e}),value:e.id,element:e,type:"current",children:[...e.children()].map(l=>({label:y.jsx(iR,{type:"descedant",element:l}),value:l.id,element:l,type:"descedant",children:[]}))};return a.children.length===0&&a.children.push(i(y.jsx(_3,{radius:"sm",children:"no nested"}))),[[...e.ancestors()].reduce((l,s)=>({label:y.jsx(iR,{type:"ancestor",element:s}),value:s.id,element:s,type:"ancestor",children:[l]}),a)]},[e]);return S.useEffect(()=>{r.expandAllNodes()},[n]),y.jsxs(y.Fragment,{children:[y.jsxs(f3,{variant:"light",color:"orange",title:"In development",icon:y.jsx(r0,{}),children:["We need your feedback. Share your thoughts and ideas -"," ",y.jsx(gS,{fz:"sm",fw:500,underline:"hover",c:"orange",href:"https://github.com/likec4/likec4/discussions/",target:"_blank",children:"GitHub discussions"})]}),y.jsx(Ff,{levelOffset:"xl",allowRangeSelection:!1,expandOnClick:!1,expandOnSpace:!1,classNames:{label:_Ue},data:n,tree:r})]})}const $Ue=[["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"}]],aR=wt("outline","stack-2","Stack2",$Ue),WJ=sp.withProps({mb:8,labelPosition:"left",variant:"dashed"}),GJ=_n.withProps({color:"dark",fz:"xs",openDelay:400,closeDelay:150,label:"",children:null,offset:4}),YJ=it.withProps({component:"div",fz:11,fw:500,c:"dimmed",lh:1}),u0=it.withProps({component:"div",fz:"xs",c:"dimmed",className:iqe}),fg=24,RUe=["Properties","Relationships","Views","Structure","Deployments"];function zUe({viewId:e,fromNode:r,rectFromNode:n,fqn:o,onClose:i}){const[a,l]=S.useState(!1),s=fze(),c=s.width||window.innerWidth||1200,d=s.height||window.innerHeight||800,[u,p]=cze({key:"likec4:element-details:active-tab",defaultValue:"Properties"}),f=Mt(),m=WVe(),v=r?m.findNode(r):m.findNodeWithElement(o),w=m.$model.element(o),[x,k]=Jr([...w.views()],un(K=>K.$view),qq(K=>K._type==="element"&&K.viewOf===o));let C=v?.navigateTo?.$view??w.defaultView?.$view??null;C?.id===e&&(C=null);const _=fw(w.links),$=aVe(),R=(v?.$node.children?.length??0)>0,T=Math.min(700,c-fg*2),A=Math.min(650,d-fg*2),z=n?{x:n.x+(R?n.width-T/2:n.width/2),y:n.y+(R?0:n.height/2)}:{x:c/2,y:d/2},j=n?Math.min(n.width/T,n.height/A,.9):1,I=Math.round(ta(z.x-T/2,{min:fg,max:c-T-fg})),N=Math.round(ta(z.y-(R?0:60),{min:fg,max:d-A-fg})),L=ta((z.x-I)/T,{min:.1,max:.9}),H=ta((z.y-N)/A,{min:.1,max:.9}),P=jZ(T),V=jZ(A);$p(()=>{P.set(T),V.set(A)},[T,A]);const B=S.useCallback((K,O)=>{P.set(Math.max(P.get()+O.delta.x,320)),V.set(Math.max(V.get()+O.delta.y,300))},[]),F=S.useRef(null),q=Zh(i),G=h7(()=>{q.current()},[],50),U=v?.$node.notation??null,Y=bx({element:{id:o,title:w.title,icon:v?.icon??w.icon},className:ZVe});return wx(()=>{F.current?.open||F.current?.showModal()},20),wx(()=>{l(!0)},220),y.jsx(ga.dialog,{ref:F,className:Ge(GVe,ny.classNames.fullWidth),layout:!0,initial:{[p2]:"0px",[h2]:"5%"},animate:{[p2]:"3px",[h2]:"60%"},exit:{[p2]:"0px",[h2]:"0%",transition:{duration:.1}},onClick:K=>{K.stopPropagation(),K.target?.nodeName?.toUpperCase()==="DIALOG"&&F.current?.close()},onDoubleClick:nn,onPointerDown:nn,onClose:K=>{K.stopPropagation(),G()},children:y.jsx(ny,{forwardProps:!0,removeScrollBar:!1,children:y.jsxs(ga.div,{layout:!0,layoutRoot:!0,drag:!0,dragControls:$,dragElastic:0,dragMomentum:!1,dragListener:!1,"data-likec4-color":v?.color??w.color,className:YVe,initial:{top:N,left:I,width:T,height:A,opacity:0,originX:L,originY:H,scale:Math.max(j,.65)},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9,translateY:-10,transition:{duration:.1}},style:{width:P,height:V},children:[y.jsxs("div",{className:XVe,onPointerDown:K=>$.start(K),children:[y.jsxs(Or,{alignItems:"start",justify:"space-between",gap:"sm",mb:"sm",flexWrap:"nowrap",children:[y.jsxs(Or,{alignItems:"start",gap:"sm",style:{cursor:"default"},flexWrap:"nowrap",children:[Y,y.jsxs("div",{children:[y.jsx(it,{component:"div",className:KVe,children:w.title}),U&&y.jsx(it,{component:"div",c:"dimmed",fz:"sm",fw:500,lh:1.3,lineClamp:1,children:U})]})]}),y.jsx(lp,{size:"lg",onClick:K=>{K.stopPropagation(),G()}})]}),y.jsxs(Or,{alignItems:"baseline",gap:"sm",flexWrap:"nowrap",children:[y.jsxs("div",{children:[y.jsx(YJ,{children:"kind"}),y.jsx(ec,{radius:"sm",size:"sm",fw:600,color:"gray",style:{cursor:"pointer"},onClick:K=>{K.stopPropagation(),f.openSearch(`kind:${w.kind}`)},children:w.kind})]}),y.jsxs("div",{style:{flex:1},children:[y.jsx(YJ,{children:"tags"}),y.jsxs(Js,{gap:4,flex:1,mt:6,wrap:"wrap",children:[w.tags.map(K=>y.jsx(u2,{tag:K,cursor:"pointer",onClick:O=>{O.stopPropagation(),f.openSearch(`#${K}`)}},K)),w.tags.length===0&&y.jsx(ec,{radius:"sm",size:"sm",fw:600,color:"gray",children:"—"})]})]}),y.jsxs(s3,{style:{alignSelf:"flex-start"},children:[_&&y.jsx(lr,{component:"a",href:_.url,target:"_blank",size:"lg",variant:"default",radius:"sm",children:y.jsx(HJ,{stroke:1.6,style:{width:"65%"}})}),y.jsx(LMe,{feature:"Vscode",children:y.jsx(GJ,{label:"Open source",children:y.jsx(lr,{size:"lg",variant:"default",radius:"sm",onClick:K=>{K.stopPropagation(),f.openSource({element:w.id})},children:y.jsx(dg,{stroke:1.8,style:{width:"62%"}})})})}),C&&y.jsx(GJ,{label:"Open default view",children:y.jsx(lr,{size:"lg",variant:"default",radius:"sm",onClick:K=>{K.stopPropagation(),f.navigateTo(C.id,r??void 0)},children:y.jsx(ba,{style:{width:"70%"}})})})]})]})]}),y.jsx(pQ,{children:y.jsxs(up,{value:u,onChange:K=>p(K),variant:"none",classNames:{root:eqe,list:tqe,tab:rqe,panel:nqe},children:[y.jsx(ky,{children:RUe.map(K=>y.jsx(Lf,{value:K,children:K},K))}),y.jsx(rc,{value:"Properties",children:y.jsx(es,{scrollbars:"y",type:"scroll",offsetScrollbars:!0,children:y.jsxs(Se,{className:oqe,pt:"xs",children:[w.hasSummary&&y.jsxs(y.Fragment,{children:[y.jsx(u0,{children:"summary"}),y.jsx(zp,{value:w.summary})]}),y.jsxs(y.Fragment,{children:[y.jsx(u0,{children:"description"}),y.jsx(zp,{value:w.description,emptyText:"no description"})]}),w.technology&&y.jsx(TUe,{title:"technology",children:w.technology}),w.links.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(u0,{children:"links"}),y.jsx(Or,{gap:"xs",flexWrap:"wrap",children:w.links.map((K,O)=>y.jsx(o$,{value:K},O))})]}),w.$element.metadata&&y.jsx(jUe,{value:w.$element.metadata})]})})}),y.jsx(rc,{value:"Relationships",children:y.jsx(gp,{overrides:{enableRelationshipBrowser:!1,enableNavigateTo:!1},children:a&&u==="Relationships"&&y.jsx(kUe,{element:w,node:v??null})})}),y.jsx(rc,{value:"Views",children:y.jsx(es,{scrollbars:"y",type:"auto",children:y.jsxs(Lo,{gap:"lg",children:[x.length>0&&y.jsxs(Se,{children:[y.jsx(WJ,{label:"views of the element (scoped)"}),y.jsx(Lo,{gap:"sm",children:x.map(K=>y.jsx(XJ,{view:K,onNavigateTo:O=>f.navigateTo(O,r??void 0)},K.id))})]}),k.length>0&&y.jsxs(Se,{children:[y.jsx(WJ,{label:"views including this element"}),y.jsx(Lo,{gap:"sm",children:k.map(K=>y.jsx(XJ,{view:K,onNavigateTo:O=>f.navigateTo(O,r??void 0)},K.id))})]})]})})}),y.jsx(rc,{value:"Structure",children:y.jsx(es,{scrollbars:"y",type:"auto",children:y.jsx(CUe,{element:w})})}),y.jsx(rc,{value:"Deployments",children:y.jsx(es,{scrollbars:"y",type:"auto",children:y.jsx(kqe,{elementFqn:w.id})})})]})}),y.jsx(ga.div,{className:aqe,drag:!0,dragElastic:0,dragMomentum:!1,onDrag:B,dragConstraints:{top:0,left:0,right:0,bottom:0}})]})})})}const XJ=({view:e,onNavigateTo:r})=>y.jsx(pr,{className:QVe,onClick:n=>r(e.id,n),children:y.jsxs(en,{gap:6,align:"start",wrap:"nowrap",children:[y.jsx(Ti,{size:"sm",variant:"transparent",children:e._type==="deployment"?y.jsx(aR,{stroke:1.8}):y.jsx(ba,{stroke:1.8})}),y.jsx(Se,{children:y.jsx(it,{component:"div",className:JVe,lineClamp:1,children:e.title||"untitled"})})]})});function TUe({title:e,emptyValue:r="undefined",children:n,style:o,...i}){return y.jsxs(y.Fragment,{children:[y.jsx(u0,{children:e}),y.jsx(it,{component:"div",...ty(n)&&{c:"dimmed"},fz:"md",style:{whiteSpace:"preserve-breaks",userSelect:"all",...o},...i,children:n||r})]})}function jUe({value:e}){const r=uw(e).sort(([n],[o])=>n.localeCompare(o));return y.jsx(pQ,{children:y.jsxs(y.Fragment,{children:[y.jsx(u0,{style:{justifySelf:"end",textAlign:"right"},children:"metadata"}),y.jsx(Se,{className:fe({display:"grid",gridTemplateColumns:"min-content 1fr",gridAutoRows:"min-content",gap:"[12px 16px]",alignItems:"baseline",justifyItems:"stretch"}),children:r.map(([n,o])=>y.jsx(dqe,{label:n,value:o},n))})]})})}const AUe=e=>({viewId:e.context.currentView.id,fromNode:e.context.initiatedFrom.node,rectFromNode:e.context.initiatedFrom.clientRect,fqn:e.context.subject});function DUe({actorRef:e,onClose:r}){const n=pn(e,AUe,Ir);return y.jsx(FC.Provider,{value:e,children:y.jsx(zUe,{onClose:r,...n})})}const $2="--_blur",R2="--_opacity",PUe="--_level",p0=S.forwardRef(({onClose:e,className:r,classes:n,overlayLevel:o=0,children:i,fullscreen:a=!1,withBackdrop:l=!0,backdrop:s,openDelay:c=130,...d},u)=>{const[p,f]=S.useState(c===0),m=bH(p),v=S.useRef(null),w=S.useRef(!1),x=AZ()!==!0,k=S.useRef(e);k.current=e;const C=h7(()=>{w.current||(w.current=!0,k.current())},[],50);S.useLayoutEffect(()=>{v.current?.open||v.current?.showModal()},[]),wx(()=>{f(!0)},c>0?c:void 0);const _=xVe({fullscreen:a,withBackdrop:l});let $=o>0?"50%":"60%";return s?.opacity!==void 0&&($=`${s.opacity*100}%`),y.jsx(ga.dialog,{ref:$r(v,m,u),className:Ge(n?.dialog,r,_,a&&ny.classNames.fullWidth),layout:!0,style:{[PUe]:o},...x?{initial:{[$2]:"0px",[R2]:"0%",scale:.85,opacity:0},animate:{[$2]:o>0?"4px":"8px",[R2]:$,scale:1,opacity:1,translateY:0},exit:{opacity:0,scale:.98,translateY:-20,[$2]:"0px",[R2]:"0%"}}:{initial:{[$2]:"8px",[R2]:$}},onClick:R=>{if(R.stopPropagation(),R.target?.nodeName?.toUpperCase()==="DIALOG"){v.current?.close();return}},onCancel:R=>{R.preventDefault(),R.stopPropagation(),C()},onDoubleClick:nn,onPointerDown:nn,onClose:R=>{R.stopPropagation(),C()},...d,children:y.jsx(ny,{forwardProps:!0,children:y.jsx("div",{className:Ge(n?.body,"likec4-overlay-body"),children:p&&y.jsx(y.Fragment,{children:i})})})})});p0.displayName="Overlay";const z2=(e,r)=>e.size>2&&r.size!==e.size?new Set(Jc([...hx(e).flatten(),...r])):e.size>1?new Set(Jc([...e])):e;function MUe(e,r){const n=new Set,o=new Set,i=new Set,a={sources:new Set,targets:new Set},l=(s,c)=>{c==="source"?(n.add(s),a.sources.add(s)):(i.add(s),a.targets.add(s))};for(const s of e){const c=r.findEdge(s),d=c?[...c.relationships("model")]:[];if(!c||!xn(d,1)||!c.source.hasElement()||!c.target.hasElement())continue;const u=c.source.element,p=c.target.element;l(u,"source"),l(p,"target");for(const f of d){if(o.add(f),f.source!==u){l(f.source,"source");for(const m of f.source.ancestors()){if(m===u)break;n.add(m)}}if(f.target!==p){l(f.target,"target");for(const m of f.target.ancestors()){if(m===p)break;i.add(m)}}}}return{sources:z2(n,a.sources),targets:z2(i,a.targets),relationships:o}}function NUe({source:e,target:r}){const n=new Set,o=new Set,i=new Set,a={sources:new Set,targets:new Set},l=(c,d)=>{d==="source"?(n.add(c),a.sources.add(c)):(i.add(c),a.targets.add(c))};e&&l(e,"source"),r&&l(r,"target");const[s]=V5e.findConnection(e,r,"directed");if(!s)return{sources:n,targets:i,relationships:o};for(const c of s.relations){const d=c.source,u=c.target;if(l(d,"source"),l(u,"target"),o.add(c),e!==d){He(Yn(e,d),`${e.id} is not an ancestor of ${d.id}`);for(const p of d.ancestors()){if(p===e)break;n.add(p)}}if(r!==u){He(Yn(r,u),`${r.id} is not an ancestor of ${u.id}`);for(const p of u.ancestors()){if(p===r)break;i.add(p)}}}return{sources:z2(n,a.sources),targets:z2(i,a.targets),relationships:o}}const KJ=S.createContext(null);function lR(){return gt(S.useContext(KJ),"No RelationshipDetailsActorContext")}function ZJ(e,r=Ir){const n=at(e),o=lR();return pn(o,n,r)}function sR(){const e=lR();return S.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 ul={dagre:{ranksep:60,nodesep:35,edgesep:25},edgeLabel:{width:220,height:14},nodeWidth:330,nodeHeight:180,compound:{labelHeight:2,paddingTop:50,paddingBottom:32}};function BUe(){const e=new x2.graphlib.Graph({directed:!0,compound:!0,multigraph:!0});return e.setGraph({...ul.dagre,rankdir:"LR"}),e.setDefaultEdgeLabel(()=>({...ul.edgeLabel})),e.setDefaultNodeLabel(()=>({})),e}const cR="-port";function QJ(e,r,n){const o=new Ln(a=>({id:`${e}-${a}`,portId:`${e}-${a}`})),i=hx(r);for(const a of i.sorted){const l=i.children(a).length>0,s=a.id,c=`${e}-${s}`,d=l?`${c}${cR}`:c;o.set(s,{id:c,portId:d}),n.setNode(c,{column:e,element:a,isCompound:l,portId:d,inPorts:[],outPorts:[],width:ul.nodeWidth,height:ul.nodeHeight}),l&&(n.setNode(d,{element:a,portId:d,isCompound:l,inPorts:[],outPorts:[],width:ul.nodeWidth-ul.dagre.ranksep,height:ul.compound.labelHeight}),n.setParent(d,c));const u=i.parent(a);u&&n.setParent(c,`${e}-${u.id}`)}return{...i,byId:a=>{const l=i.byId(a),s=o.get(l.id);return{element:l,graph:s}},graphNodes:o}}function IUe(e){return x2.layout(e,{}),r=>{const n=e.node(r),{x:o,y:i,width:a,height:l}=n;return{position:{x:o-Math.round(a/2),y:i-Math.round(l/2)},width:a,height:l}}}function OUe(e,r){const n=BUe(),o=QJ("sources",e.sources,n),i=QJ("targets",e.targets,n),a=Array.from(e.relationships).map(k=>{const C=o.byId(k.source.id).graph,_=i.byId(k.target.id).graph,$=k.id;return n.node(C.id).outPorts.push(_.id),n.node(_.id).inPorts.push(C.id),n.setEdge(C.portId,_.portId,{...ul.edgeLabel},$),{name:$,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(),...i.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,{...ul.edgeLabel,width:s>10?800:400});const c=IUe(n),d=Jr(l,ep(k=>k.id===k.portId),hw(k=>[k.id,c(k.id)]));function u(k){return d[k]??=Jr(n.children(k)??[],ep(C=>!C.endsWith(cR)),un(C=>u(C)),Wq(C=>{He(C.length>0,`Node ${k} has no nested nodes`)}),gw((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:$},width:R}=c(k);return C=C-ul.compound.paddingTop,_=_+ul.compound.paddingBottom,{position:{x:$,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 m=(k,C,_)=>Jr(_,un(($,R)=>({port:k+"_"+C+R,topY:u($).position.y})),mw(rp("topY")),un(rp("port")));let v=0,w=0;const x=l.map(({id:k})=>{const{element:C,inPorts:_,outPorts:$,column:R}=n.node(k);let{position:T,width:A,height:z}=u(k);const j=n.parent(k),I=(n.children(k)??[]).filter(V=>!V.endsWith(cR));v=Math.min(v,T.x),w=Math.min(w,T.y);const N=r?E1(C.scopedViews(),V=>V.id!==r.id)?.id??null:null,L=r?.findNodeWithElement(C.id),H=r&&!L?E1(C.ancestors(),V=>!!r.findNodeWithElement(V.id))?.id:null,P=L??(H&&r?.findNodeWithElement(H));return _1({id:k,parent:j??null,x:T.x,y:T.y,title:C.title,description:Fs(C.$element)??null,technology:C.technology,tags:[...C.tags],links:null,color:P?.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:T.x,y:T.y,width:A,height:z},style:ud({...(L??P)?.style,...C.$element.style},["shape","color","icon"]),navigateTo:N,...I.length>0&&{depth:f(k)},children:I,width:A,height:z,column:R,ports:{in:m(k,"in",_),out:m(k,"out",$)}})});return{bounds:{x:Math.min(v,0),y:Math.min(w,0),width:n.graph().width??100,height:n.graph().height??100},nodes:x,edges:n.edges().reduce((k,C)=>{const _=n.edge(C),$=C.name;if(!$)return k;const{name:R,source:T,target:A,relationship:z,sourceHandle:j,targetHandle:I}=Q1(a,V=>V.name===$),N=z.title??"untitled",L=z.navigateTo?.id??null,H=Fs(z.$relationship)??null,P=z.technology??null;return k.push({id:R,source:T,sourceHandle:j,target:A,targetHandle:I,label:N,color:z.color,description:H,...L&&{navigateTo:L},...P&&{technology:P},points:_.points.map(V=>[V.x,V.y]),line:z.line,relationId:z.id,parent:null}),k},[])}}const dR=fe.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"}}),JJ=fe({paddingLeft:"1",gridColumn:1},dR),LUe=fe({gridColumn:2},dR),eee=fe({gridColumn:3,paddingRight:"1"},dR),tee="likec4-edge-label",FUe=Ge(tee,fe({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"}})),VUe=fe({display:"contents",[`&:last-child .${tee}`]:{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"}}),qUe=fe({display:"grid",gridTemplateColumns:"1fr 30px 1fr",gridAutoRows:"min-content max-content",gap:"0",alignItems:"stretch"});fe({display:"grid",gridTemplateColumns:"min-content 1fr",gridAutoRows:"min-content max-content",gap:"[10px 12px]",alignItems:"baseline",justifyItems:"start"});const HUe=fe({maxHeight:["70vh","calc(100cqh - 70px)"]}),UUe=({edge:e,view:r})=>{const n=sR(),o=S.useRef(null),i=r.nodes.find(s=>s.id===e.source),a=r.nodes.find(s=>s.id===e.target),l=r.edges.flatMap(s=>{const c=r.nodes.find(u=>u.id===s.source),d=r.nodes.find(u=>u.id===s.target);return c&&d?{id:s.id,source:c,target:d,label:s.label}:[]});return!i||!a||l.length===0?null:y.jsxs(br,{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(kd,{children:y.jsxs(Vn,{size:"xs",variant:"default",fw:"500",style:{padding:"0.25rem 0.75rem"},rightSection:y.jsx(tR,{size:16}),children:[y.jsx(Se,{className:JJ,maw:160,p:0,mod:{"likec4-color":i.color},children:y.jsx(it,{component:"span",truncate:!0,children:i.title})}),y.jsx(Ti,{color:"dark",variant:"transparent",size:"xs",children:y.jsx(hg,{style:{width:"80%"}})}),y.jsx(Se,{className:eee,maw:160,p:0,mod:{"likec4-color":a.color},children:y.jsx(it,{component:"span",truncate:!0,children:a.title})})]})}),y.jsx(Qs,{p:0,miw:250,maw:400,children:y.jsx(oi,{className:HUe,scrollbars:"y",type:"never",viewportRef:o,children:y.jsx(Se,{className:qUe,p:"xs",maw:400,children:l.map(s=>y.jsxs("div",{className:VUe,"data-selected":s.id===e.id,onClick:c=>{c.stopPropagation(),n.navigateTo(s.id)},children:[y.jsx(Se,{className:JJ,mod:{"edge-id":s.id,"likec4-color":s.source.color},children:y.jsx(it,{component:"span",truncate:!0,children:s.source.title})}),y.jsx(Se,{className:LUe,children:y.jsx(Ti,{color:"dark",variant:"transparent",size:"xs",children:y.jsx(hg,{style:{width:"80%"}})})}),y.jsx(Se,{className:eee,mod:{"likec4-color":s.target.color},children:y.jsx(it,{component:"span",truncate:!0,children:s.target.title})}),y.jsx(Se,{className:FUe,children:y.jsx(it,{component:"span",truncate:!0,children:s.label||"untitled"})})]},s.id))})})})]})},WUe=rR(e=>{const{enableNavigateTo:r}=sr(),{data:{navigateTo:n}}=e,[o,i,a]=Kx(e),l=Mt();return y.jsxs(a0,{...e,children:[y.jsx(l0,{edgeProps:e,svgPath:o}),y.jsx(S2,{edgeProps:e,labelPosition:{x:i,y:a,translate:"translate(-50%, 0)"},style:{maxWidth:Math.abs(e.targetX-e.sourceX-100)},children:y.jsx(i0,{edgeProps:e,children:r&&n&&y.jsx(_2,{...e,onClick:s=>{s.stopPropagation(),l.navigateTo(n)}})})})]})}),GUe=e=>{const{enableNavigateTo:r,enableVscode:n}=sr(),o=Mt(),i=E2(),a=[],{navigateTo:l,fqn:s}=e.data;return l&&r&&i!==l&&a.push({key:"navigate",icon:y.jsx(ba,{}),onClick:c=>{c.stopPropagation(),o.navigateTo(l)}}),s&&a.push({key:"relationships",icon:y.jsx(s0,{}),onClick:c=>{c.stopPropagation(),o.openRelationshipsBrowser(s)}}),s&&n&&a.push({key:"goToSource",icon:y.jsx(dg,{}),onClick:c=>{c.stopPropagation(),o.openSource({element:s})}}),y.jsx(C2,{buttons:a,...e})};function YUe(e,r){return e.id===r.id&&tt(e.type,r.type)&&tt(e.selected??!1,r.selected??!1)&&tt(e.dragging??!1,r.dragging??!1)&&tt(e.width??0,r.width??0)&&tt(e.height??0,r.height??0)&&tt(e.zIndex??0,r.zIndex??0)&&tt(e.data,r.data)}const ree=Symbol.for("isMemoized");function sc(e,r="Node"){if(e.hasOwnProperty(ree))return e;const n=S.memo(e,YUe);return n.displayName=r,Object.defineProperty(n,ree,{enumerable:!1,writable:!1,value:!0}),n}const nee=e=>{const r=Mt();return y.jsx(oR,{...e,onClick:n=>{n.stopPropagation(),r.openElementDetails(e.data.fqn)}})},XUe=sc(e=>{const{enableElementTags:r}=sr();return y.jsxs(ug,{nodeProps:e,children:[y.jsx(pg,{...e}),y.jsx(dl,{...e}),r&&y.jsx(t0,{...e}),y.jsx(nee,{...e}),y.jsx(GUe,{...e}),y.jsx(ZUe,{...e})]})}),KUe=sc(e=>y.jsxs(c0,{nodeProps:e,children:[y.jsx(nee,{...e}),y.jsx(d0,{...e}),y.jsx(QUe,{...e})]})),ZUe=({data:{ports:e,height:r}})=>y.jsxs(y.Fragment,{children:[e.in.map((n,o)=>y.jsx(Oo,{id:n,type:"target",position:Ue.Left,style:{visibility:"hidden",top:`${15+(o+1)*((r-30)/(e.in.length+1))}px`}},n)),e.out.map((n,o)=>y.jsx(Oo,{id:n,type:"source",position:Ue.Right,style:{visibility:"hidden",top:`${15+(o+1)*((r-30)/(e.out.length+1))}px`}},n))]}),QUe=({data:e})=>y.jsxs(y.Fragment,{children:[e.ports.in.map((r,n)=>y.jsx(Oo,{id:r,type:"target",position:Ue.Left,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r)),e.ports.out.map((r,n)=>y.jsx(Oo,{id:r,type:"source",position:Ue.Right,style:{visibility:"hidden",top:`${20*(n+1)}px`}},r))]}),JUe={element:XUe,compound:KUe},eWe={relationship:WUe};function tWe({actorRef:e}){const r=S.useRef(null);return r.current==null&&(r.current={defaultNodes:[],defaultEdges:[]}),y.jsx(KJ.Provider,{value:e,children:y.jsx(lw,{...r.current,children:y.jsx(lg,{id:e.sessionId,inherit:!1,children:y.jsxs(Cn,{children:[y.jsx(iWe,{},"xyflow"),y.jsx(nWe,{},"sync")]})})})})}const rWe=e=>({...e.context.subject,viewId:e.context.viewId}),nWe=S.memo(()=>{const e=lR(),r=pn(e,rWe,tt),n=Fo(),o=n.findView(r.viewId)??null,i=S.useMemo(()=>{let s;if("edgeId"in r&&Zn(r.edgeId)){He(o,`view ${r.viewId} not found`);const c=gt(o.findEdge(r.edgeId),`edge ${r.edgeId} not found in ${r.viewId}`);s=MUe([c.id],o)}else if(r.source&&r.target)s=NUe({source:n.element(r.source),target:n.element(r.target)});else return null;return OUe(s,o)},[r,o,n]),a=vr(),l=pf();return S.useEffect(()=>{l.viewportInitialized&&e.send({type:"xyflow.init",instance:l,store:a})},[a,l.viewportInitialized,e]),S.useEffect(()=>{i!==null&&e.send({type:"update.layoutData",data:i})},[i,e]),null}),oWe=({context:e})=>({initialized:e.initialized.xydata&&e.initialized.xyflow,nodes:e.xynodes,edges:e.xyedges}),iWe=S.memo(()=>{const e=sR(),{initialized:r,nodes:n,edges:o}=ZJ(oWe,tt);return y.jsxs(s$,{id:e.rootElementId,nodes:n,edges:o,className:Ge(r?"initialized":"not-initialized","likec4-relationship-details"),nodeTypes:JUe,edgeTypes:eWe,onNodesChange:Qn(i=>{e.send({type:"xyflow.applyNodeChanges",changes:i})}),onEdgesChange:Qn(i=>{e.send({type:"xyflow.applyEdgeChanges",changes:i})}),fitViewPadding:.05,onNodeClick:Qn((i,a)=>{i.stopPropagation(),e.send({type:"xyflow.nodeClick",node:a})}),onEdgeClick:Qn((i,a)=>{i.stopPropagation(),e.send({type:"xyflow.edgeClick",edge:a})}),onPaneClick:Qn(()=>{e.send({type:"xyflow.paneClick"})}),onDoubleClick:Qn(()=>{e.send({type:"xyflow.paneDblClick"})}),onViewportResize:Qn(()=>{e.send({type:"xyflow.resized"})}),onEdgeMouseEnter:Qn((i,a)=>{a.data.hovered||e.send({type:"xyflow.edgeMouseEnter",edge:a})}),onEdgeMouseLeave:Qn((i,a)=>{a.data.hovered&&e.send({type:"xyflow.edgeMouseLeave",edge:a})}),onSelectionChange:Qn(i=>{e.send({type:"xyflow.selectionChange",...i})}),nodesDraggable:!1,nodesSelectable:!0,fitView:!1,pannable:!0,zoomable:!0,children:[y.jsx(lWe,{}),y.jsx(sd,{position:"top-right",children:y.jsx(lr,{variant:"default",color:"gray",onClick:i=>{i.stopPropagation(),e.close()},children:y.jsx(fp,{})})})]})}),aWe=({context:e})=>({subject:e.subject,viewId:e.viewId}),lWe=S.memo(()=>{const{subject:e,viewId:r}=ZJ(aWe,tt),n=Fo().findView(r);if(!n||!n.isDiagram())return null;const o=[...n.edges()];let i="edgeId"in e&&Zn(e.edgeId)?o.find(a=>a.id===e.edgeId):Q1(o,a=>a.source.element?.id===e.source&&a.target.element?.id===e.target)||Q1(o,a=>(a.source.element?.id===e.source||Yn(a.source.element?.id??"__",e.source??"__"))&&(a.target.element?.id===e.target||Yn(a.target.element?.id??"__",e.target??"__")));return i?y.jsx(sWe,{edge:i.$edge,view:n.$view}):null}),sWe=({edge:e,view:r})=>{const n=sR(),o=e.id,[i,a,{history:l,current:s}]=RH(e.id);S.useEffect(()=>{i!==o&&a.set(o)},[o]),S.useEffect(()=>{i!==o&&n.navigateTo(i)},[i]);const c=s>0,d=s+1{u.stopPropagation(),a.back()},children:y.jsx(VJ,{})})},"back"),d&&y.jsx(ga.div,{layout:!0,initial:{opacity:.05,transform:"translateX(5px)"},animate:{opacity:1,transform:"translateX(0)"},exit:{opacity:0,transform:"translateX(5px)"},children:y.jsx(lr,{variant:"default",color:"gray",onClick:u=>{u.stopPropagation(),a.forward()},children:y.jsx(Dd,{})})},"forward"),y.jsx(en,{gap:"xs",wrap:"nowrap",ml:"sm",children:y.jsx(UUe,{edge:e,view:r})})]})})})},cWe=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:Qo(r)}}).filter(Bq),dWe=(e,r)=>e.length===r.length&&e.every((n,o)=>n.actorRef===r[o].actorRef);function uWe({overlaysActorRef:e}){const r=Mt(),n=pn(e,cWe,dWe),o=AZ()??!1,i=n.some(s=>s.type==="elementDetails");S.useEffect(()=>{const s=r.getContext().xystore.getState().domNode?.querySelector(".react-flow__renderer");if(!s||o)return;const c=GOe(s,{opacity:i?.7:1,filter:i?"grayscale(1)":"grayscale(0)",transform:i?"perspective(400px) translateZ(-12px) translateY(3px)":"translateY(0)"},{duration:i?.35:.17});let d=null;return i||(d=setTimeout(()=>{s.style.transform="",s.style.filter="",d=null},450)),()=>{d&&clearTimeout(d),c.stop()}},[i]);const a=s=>{e.send({type:"close",actorId:s.id})},l=n.map((s,c)=>{switch(s.type){case"relationshipsBrowser":return y.jsx(p0,{overlayLevel:c,onClose:()=>a(s.actorRef),children:y.jsx(qJ,{actorRef:s.actorRef})},s.actorRef.sessionId);case"relationshipDetails":return y.jsx(p0,{overlayLevel:c,onClose:()=>a(s.actorRef),children:y.jsx(tWe,{actorRef:s.actorRef})},s.actorRef.sessionId);case"elementDetails":return y.jsx(DUe,{actorRef:s.actorRef,onClose:()=>a(s.actorRef)},s.actorRef.sessionId);default:Qo(s)}});return y.jsx(gp.Overlays,{children:y.jsx(QS,{onReset:()=>e.send({type:"close.all"}),children:y.jsx(lg,{children:y.jsx(Cn,{mode:"popLayout",children:l})})})})}const[pWe,Md]=na("SearchActorContext"),hWe=e=>e.context.searchValue;function fWe(){const e=Md(),r=pn(e,hWe),n=S.useCallback(o=>{e.send({type:"change.search",search:o})},[e]);return[r,n]}const gWe=e=>{const r=e.context.searchValue.trim().toLowerCase();return r.length>1?r:""};function uR(){const e=Md();return S.useDeferredValue(pn(e,gWe))}function mWe(){const e=Md();return S.useCallback(r=>{e.send({type:"change.search",search:r})},[e])}const yWe=e=>e.context.pickViewFor;function vWe(){const e=Md();return pn(e,yWe)}const pR=fe.raw({outline:"none",background:"mantine.colors.primary[8]",borderColor:"mantine.colors.primary[9]"}),T2=".mantine-Tree-node:focus > .mantine-Tree-label &",bWe=fe.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:{...pR,borderColor:"mantine.colors.primary[9]",background:"mantine.colors.primary[8]/60"},_focus:pR,[T2]:pR,_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]"}}}),j2="likec4-focusable",A2={ref:"var(--likec4-icon-size, 24px)"},xWe=fe.raw({color:{base:"mantine.colors.dimmed",_light:"mantine.colors.gray[5]",_groupHover:"mantine.colors.primary[0]",_groupFocus:"mantine.colors.primary[0]"},[T2]:{color:"mantine.colors.primary[0]"},flex:`0 0 ${A2.ref}`,height:A2.ref,width:A2.ref,display:"flex",alignItems:"center",justifyContent:"center",alignSelf:"flex-start","--ti-size":A2.ref,"& svg, & img":{width:"100%",height:"auto",maxHeight:"100%",pointerEvents:"none"},"& img":{objectFit:"contain"},"&.likec4-shape-icon svg":{strokeWidth:1.5}}),wWe=fe.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"}},[T2]:{color:{base:"mantine.colors.primary[1]",_light:"mantine.colors.white"}}}),oee=fe.raw({color:{base:"mantine.colors.dimmed",_groupHover:{base:"mantine.colors.primary[1]",_light:"mantine.colors.primary[0]"},_groupFocus:"mantine.colors.primary[0]"},[T2]:{color:"mantine.colors.primary[0]"}}),kWe=fe.raw(oee,{marginTop:"1",fontSize:"12px",lineHeight:"1.4",":where([data-disabled]) &":{opacity:.85}}),_We=fe({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"}),iee=Ake({slots:["root","icon","title","description","descriptionColor"],className:"search-button",base:{root:bWe,icon:xWe,title:wWe,description:kWe,descriptionColor:oee}}),hR="@container likec4-tree (max-width: 450px)",SWe=fe({outline:"none",marginBottom:"2"}),EWe=fe(LG.raw({containerName:"likec4-tree"}),{containerType:"inline-size",height:"100%"}),CWe=fe({display:"flex",alignItems:"baseline",outline:"none !important",gap:"1"}),$We=fe({marginTop:"2"}),RWe=fe({color:"mantine.colors.dimmed"}),zWe=fe({[hR]:{flexDirection:"column-reverse",alignItems:"flex-start",gap:"0.5"}}),TWe=fe({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"}}),jWe=fe({"--likec4-icon-size":"24px",[hR]:{"--likec4-icon-size":"18px"}}),AWe=fe({flex:0,fontSize:"10px",fontWeight:500,whiteSpace:"nowrap",lineHeight:"1.1",[hR]:{display:"none"}});function ka(e){e.stopPropagation(),e.preventDefault()}function aee(e){const r=e.getBoundingClientRect();return r.y+Math.floor(r.height/2)}function h0(e){if(!e){console.error("moveFocusToSearchInput: from is null or undefined");return}const r=e.getRootNode();if(!ey(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 D2(e){if(!e){console.error("focusToFirstFoundElement: from is null or undefined");return}const r=e.getRootNode();if(!ey(r.querySelector)){console.error("focusToFirstFoundElement: root.querySelector is not a function");return}r.querySelector(`[data-likec4-search] .${j2}`)?.focus()}function lee(e,r,n=`.${j2}`){if(!e)return console.error("queryAllFocusable: from is null or undefined"),[];const o=e.getRootNode();return ey(o.querySelectorAll)?[...o.querySelectorAll(`[data-likec4-search-${r}] ${n}`)]:(console.error("queryAllFocusable: root.querySelectorAll is not a function"),[])}function see(e){setTimeout(e,300)}const DWe="likec4-view-btn",PWe=Ge(fe({flexWrap:"nowrap",display:"flex","&[data-disabled] .mantine-ThemeIcon-root":{opacity:.45}}),DWe);fe({marginTop:"1",fontSize:"13px",lineHeight:"1.4",":where(.likec4-view-btn[data-disabled]) &":{opacity:.85}});const cee=()=>y.jsx(hr,{className:_We,children:"Nothing found"}),MWe=S.memo(()=>{const e=S.useRef(null);let r=[...Fo().views()],n=uR();return n&&(n.startsWith("kind:")?r=[]:r=r.filter(o=>n.startsWith("#")?o.tags.some(i=>i.toLocaleLowerCase().includes(n.slice(1))):`${o.id} ${o.title} ${o.description.text}`.toLocaleLowerCase().includes(n))),y.jsxs(Lo,{ref:e,renderRoot:o=>y.jsx(Rr,{layout:!0,...o}),gap:8,"data-likec4-search-views":!0,onKeyDown:o=>{if(o.key==="ArrowLeft"||o.key==="ArrowRight"){const i=o.target.getBoundingClientRect().y,a=lee(e.current,"elements",".likec4-element-button");let l=a.length>1?a.find((s,c,d)=>aee(s)>i||c===d.length-1):null;l??=hf(a),l&&(o.stopPropagation(),l.focus());return}},children:[r.length===0&&y.jsx(cee,{}),r.length>0&&y.jsx(o3,{children:y.jsx(pr,{"data-likec4-view":!0,tabIndex:-1,onFocus:o=>{o.stopPropagation(),h0(e.current)}})}),r.map((o,i)=>y.jsx(Rr,{layoutId:`@view${o.id}`,children:y.jsx(fR,{view:o,search:n,tabIndex:i===0?0:-1})},o.id))]})}),P2=iee();function fR({className:e,view:r,loop:n=!1,search:o,focusOnElement:i,...a}){const l=Md(),s=Mt(),c=r.id,d=E2(),u=c===d,p=()=>{l.send({type:"close"}),see(()=>{if(u&&i){s.focusOnElement(i);return}s.navigateTo(c,void 0,i)})};return y.jsxs(pr,{...a,className:Ge(P2.root,"group",j2,PWe,e),"data-likec4-view":r.id,...u&&!i&&{"data-disabled":!0},onClick:f=>{f.stopPropagation(),p()},onKeyDown:iy({siblingSelector:"[data-likec4-view]",parentSelector:"[data-likec4-search-views]",activateOnFocus:!1,loop:n,orientation:"vertical",onKeyDown:f=>{f.nativeEvent.code==="Space"&&(f.stopPropagation(),p())}}),children:[y.jsx(Ti,{variant:"transparent",className:P2.icon,children:r.isDeploymentView()?y.jsx(aR,{stroke:1.8}):y.jsx(ba,{stroke:1.8})}),y.jsxs(hr,{style:{flexGrow:1},children:[y.jsxs(en,{gap:"xs",wrap:"nowrap",align:"center",children:[y.jsx(tc,{component:"div",highlight:o,className:P2.title,children:r.title||"untitled"}),u&&y.jsx(ec,{size:"xs",fz:9,radius:"sm",children:"current"})]}),y.jsx(tc,{highlight:r.description.nonEmpty?o:"",component:"div",className:P2.description,lineClamp:1,children:r.description.text||"No description"})]})]})}const gg=iee(),NWe=S.memo(()=>{const e=Fo(),r=uR(),n=S.useMemo(()=>{const i=r.split(".");let a;tp(i)||i[0]==="kind:"?a=e.elements():a=Is(e.elements(),d=>r.startsWith("kind:")?d.kind.toLocaleLowerCase().startsWith(r.slice(5)):r.startsWith("#")?d.tags.some(u=>u.toLocaleLowerCase().includes(r.slice(1))):(d.title+" "+d.id+" "+d.summary.text).toLocaleLowerCase().includes(r));const l={},{all:s,roots:c}=Jr([...a],Jc,gw((d,u)=>{const p={label:u.title,value:u.id,element:u,searchTerms:i,children:[]};l[p.value]=p;const f=d.all.findLast(m=>Yn(m.value,p.value));return f?(f.children.push(p),f.children.length>1&&f.children.sort(o0)):d.roots.push(p),d.all.push(p),d},{all:[],roots:[]}));return{all:s,byid:l,roots:c.sort(o0)}},[e,r]),o=dee();return n.all.length===0?y.jsx(cee,{}):y.jsx(IWe,{data:n,handleClick:o})}),BWe=()=>{};function IWe({data:{all:e,byid:r,roots:n},handleClick:o}){const i=_y({multiple:!1});i.setHoveredNode=BWe,S.useEffect(()=>{i.collapseAllNodes();for(const l of e)l.children.length>0&&i.expand(l.value)},[e]);const a=at(l=>{const s=l.target,c=s.getAttribute("data-value"),d=!!c&&r[c];if(d){if(l.key==="ArrowUp"){c===n[0]?.value&&(ka(l),h0(s));return}if(l.key==="ArrowRight"){if(d.children.length>0&&i.expandedState[c]===!1)return;const u=(l.target.querySelector(".mantine-Tree-label")??s).getBoundingClientRect().y,p=lee(s,"views");let f=p.length>1?p.find((m,v,w)=>aee(m)>u||v===w.length-1):null;f??=hf(p),f&&(ka(l),f.focus());return}if(l.key===" "||l.key==="Enter"){ka(l),o(d.element);return}}});return y.jsx(Ff,{"data-likec4-search-elements":!0,allowRangeSelection:!1,clearSelectionOnOutsideClick:!0,selectOnClick:!1,tree:i,data:n,levelOffset:"lg",classNames:{root:EWe,node:Ge(j2,SWe),label:CWe,subtree:$We},onKeyDownCapture:a,renderNode:OWe})}function OWe({node:e,elementProps:r,hasChildren:n,expanded:o}){const{element:i,searchTerms:a}=e,l=Gke({element:{id:i.id,title:i.title,shape:i.shape,icon:i.icon},className:Ge(gg.icon,jWe)}),s=[...i.views()],c=dee(),d=`@tree.${e.value}`;return y.jsxs(Rr,{layoutId:d,...r,children:[y.jsx(lr,{variant:"transparent",size:16,tabIndex:-1,className:Ge(RWe),style:{visibility:n?"visible":"hidden"},children:y.jsx(Dd,{stroke:3.5,style:{transition:"transform 150ms ease",transform:`rotate(${o?"90deg":"0"})`,width:"100%"}})}),y.jsxs(pr,{component:wa,layout:!0,tabIndex:-1,"data-value":i.id,className:Ge(gg.root,"group","likec4-element-button"),...s.length>0&&{onClick:u=>{(!n||o)&&(u.stopPropagation(),c(i))}},children:[l,y.jsxs(Se,{style:{flexGrow:1},children:[y.jsxs(en,{gap:"xs",wrap:"nowrap",align:"center",className:zWe,children:[y.jsx(tc,{component:"div",highlight:a,className:gg.title,children:e.label}),y.jsx(_n,{label:i.id,withinPortal:!1,fz:"xs",disabled:!i.id.includes("."),children:y.jsx(tc,{component:"div",highlight:a,className:Ge(TWe,gg.descriptionColor),children:Jm(i.id)})})]}),y.jsx(tc,{component:"div",highlight:a,className:gg.description,lineClamp:1,children:i.summary.text||"No description"})]}),y.jsx(it,{component:"div",className:Ge(AWe,gg.descriptionColor),fz:"xs",children:s.length===0?"No views":y.jsxs(y.Fragment,{children:[s.length," view",s.length>1?"s":""]})})]})]})}function dee(){const e=Mt(),r=Md();return at(n=>{const o=[...n.views()];if(o.length===0)return;const i=n.id,a=fw(o)?.id;if(!a){r.send({type:"pickview.open",elementFqn:i});return}const l=a===e.currentView.id;r.send({type:"close"}),see(()=>{if(l){e.focusOnElement(i);return}e.navigateTo(a,void 0,i)})})}const LWe=fe({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"}}}),FWe=fe({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)]"}}),VWe=fe({position:"absolute",top:"[2rem]",left:"[50%]",width:"100%",maxWidth:"600px",minWidth:"200px",transform:"translateX(-50%)",zIndex:903}),uee=fe({marginTop:"2","& + &":{marginTop:"[32px]"}});fe({height:["100%","100cqh"],"& .mantine-ScrollArea-viewport":{minHeight:"100%","& > div":{minHeight:"100%",height:"100%"}}});function qWe({elementFqn:e}){const r=Md(),n=Fo().element(e),o=[],i=[];for(const l of n.views())l.viewOf===n?o.push(l):i.push(l);const a=()=>{r.send({type:"pickview.close"})};return kf("keydown",l=>{try{l.key==="Escape"&&(l.stopPropagation(),l.preventDefault(),a())}catch(s){console.warn(s)}},{capture:!0}),y.jsxs(y.Fragment,{children:[y.jsx(Rr,{className:FWe,onClick:l=>{l.stopPropagation(),a()}},"pickview-backdrop"),y.jsx(l3,{children:y.jsxs(Rr,{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:VWe,"data-likec4-search-views":!0,children:[y.jsxs(en,{px:"sm",py:"md",justify:"space-between",children:[y.jsx(pp,{order:2,lh:1,children:"Select view"}),y.jsx(lr,{size:"md",variant:"default",onClick:l=>{l.stopPropagation(),a()},children:y.jsx(fp,{})})]}),y.jsxs(oi,{mah:"calc(100vh - 110px)",type:"never",children:[o.length>0&&y.jsxs(Lo,{gap:"sm",px:"sm",className:uee,children:[y.jsx(pp,{order:6,c:"dimmed",children:"scoped views of the element"}),o.map((l,s)=>y.jsx(fR,{view:l,search:"",loop:!0,focusOnElement:e,mod:{autofocus:s===0}},l.id))]}),i.length>0&&y.jsxs(Lo,{gap:"sm",px:"sm",className:uee,children:[y.jsx(pp,{order:6,c:"dimmed",children:"views including this element"}),i.map((l,s)=>y.jsx(fR,{view:l,search:"",loop:!0,focusOnElement:e,mod:{autofocus:s===0&&o.length===0}},l.id))]})]})]},"pickview")})]})}function HWe(){const e=S.useRef(null);let r=Fo().tagsSortedByUsage,n=mWe(),o=uR(),i=r.length,a=!1;if(o.startsWith("#")){const l=o.slice(1);r=r.filter(({tag:s})=>s.toLocaleLowerCase().includes(l)),a=r.length!==i}return r.length===0?null:(r=r.slice(0,15),y.jsxs(Or,{ref:e,css:{gap:"md",paddingLeft:"[48px]",flexWrap:"nowrap"},children:[y.jsx(Or,{css:{gap:"1.5",flexWrap:"wrap",opacity:a?1:.3,grayscale:a?0:.9,filter:"auto",transition:"fast",_groupHover:{opacity:1,grayscale:0},_groupFocusWithin:{opacity:1,grayscale:0}},children:r.map(({tag:l})=>y.jsx(u2,{tag:l,className:fe({userSelect:"none",cursor:"pointer"}),onClick:s=>{s.stopPropagation(),n(`#${l}`),setTimeout(()=>{D2(e.current)},350)}},l))}),a&&y.jsx(Vn,{size:"compact-xs",variant:"light",onClick:l=>{l.stopPropagation(),n(""),h0(e.current)},rightSection:y.jsx(fp,{size:14}),children:"Clear"})]}))}const UWe=[["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"}]],gR=wt("outline","search","Search",UWe);function pee(e){return e.match(/^(k|ki|kin|kind|kind:)$/)!=null}const WWe=["#","kind:"],GWe=S.memo(()=>{const e=Md(),r=Fo(),n=S.useRef(null),{ref:o,focused:i}=kze(),[a,l]=fWe(),s=IW({scrollBehavior:"smooth",loop:!1});kf("keydown",u=>{try{!i&&(u.key==="Backspace"||u.key.startsWith("Arrow")||u.key.match(new RegExp("^\\p{L}$","u")))&&h0(n.current)}catch(p){console.warn(p)}});let c=[],d=!1;switch(!0){case a.startsWith("#"):{const u=a.toLocaleLowerCase().slice(1),p=r.tags.filter(f=>f.toLocaleLowerCase().includes(u));p.length===0?(d=!1,c=[y.jsx(fy,{children:"No tags found"},"empty-tags")]):(d=r.tags.some(f=>f.toLocaleLowerCase()===u),c=p.map(f=>y.jsxs(gy,{value:`#${f}`,children:[y.jsx(it,{component:"span",opacity:.5,mr:1,fz:"sm",children:"#"}),f]},f)));break}case a.startsWith("kind:"):case pee(a):{const u=a.length>5?a.slice(5).toLocaleLowerCase():"";let p=l9(r.specification.elements);u&&(p=p.filter(f=>f.toLocaleLowerCase().includes(u))),p.length===0?(d=!1,c=[y.jsx(fy,{children:"No kinds found"},"empty-kinds")]):(d=p.some(f=>f.toLocaleLowerCase()===u),c=p.map(f=>y.jsxs(gy,{value:`kind:${f}`,children:[y.jsx(it,{component:"span",opacity:.5,mr:1,fz:"sm",children:"kind:"}),f]},f)));break}}return y.jsxs(eo,{onOptionSubmit:u=>{l(u),s.resetSelectedOption(),WWe.includes(u)||(s.closeDropdown(),setTimeout(()=>{D2(n.current)},350))},width:"max-content",position:"bottom-start",shadow:"md",offset:{mainAxis:4,crossAxis:50},store:s,withinPortal:!1,children:[y.jsx(kS,{children:y.jsx(zi,{ref:$r(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:LWe},size:"lg",value:a,leftSection:y.jsx(gR,{style:{width:$e(20)},stroke:2}),rightSection:y.jsx(zi.ClearButton,{onClick:u=>{u.stopPropagation();const p=e.getSnapshot().context.openedWithSearch;a===""||a===p?e.send({type:"close"}):l("")}}),rightSectionPointerEvents:"auto",onChange:u=>{l(u.currentTarget.value),s.openDropdown(),s.updateSelectedOptionIndex()},onClick:()=>s.openDropdown(),onFocus:()=>s.openDropdown(),onBlur:()=>s.closeDropdown(),onKeyDownCapture:u=>{if(u.key==="Tab"){switch(!0){case s.getSelectedOptionIndex()>=0:return s.clickSelectedOption(),ka(u);case c.length===1:return s.selectFirstOption()&&s.clickSelectedOption(),ka(u);case pee(a):return l("kind:"),ka(u)}return}if(u.key==="Backspace"&&s.dropdownOpened){if(a==="kind:")return l(""),s.resetSelectedOption(),ka(u);if(a.startsWith("kind:")&&d)return l("kind:"),s.resetSelectedOption(),ka(u);if(a.startsWith("#")&&d)return l("#"),s.resetSelectedOption(),ka(u)}if(u.key==="Escape"&&s.dropdownOpened&&c.length>0){ka(u),s.closeDropdown();return}if(u.key==="ArrowUp"&&s.dropdownOpened&&a===""&&s.getSelectedOptionIndex()===0){s.closeDropdown(),ka(u);return}if(u.key==="ArrowDown"&&(!s.dropdownOpened||c.length===0||d||a===""&&s.getSelectedOptionIndex()===c.length-1)){s.closeDropdown(),ka(u),D2(n.current);return}}})}),y.jsx(g3,{hidden:c.length===0,style:{minWidth:300},children:y.jsx(m3,{children:y.jsx(oi,{mah:"min(322px, calc(100cqh - 50px))",type:"scroll",children:c})})})]})}),YWe=fe({backgroundColor:"[rgb(34 34 34 / var(--_opacity, 95%))]",_light:{backgroundColor:"[rgb(250 250 250 / var(--_opacity, 95%))]"},backdropFilter:"auto",backdropBlur:"var(--_blur, 10px)"}),XWe=fe({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]"}),KWe=e=>!e.matches("inactive");function ZWe({searchActorRef:e}){const r=pn(e,KWe),n=()=>{e.send({type:"open"})},o=at(()=>{e.send({type:"close"})});return bze([["mod+k",n,{preventDefault:!0}],["mod+f",n,{preventDefault:!0}]]),y.jsx(pWe,{value:e,children:y.jsx(gp.Overlays,{children:y.jsx(HG,{FallbackComponent:UG,onReset:o,children:y.jsx(Cn,{children:r&&y.jsx(p0,{fullscreen:!0,withBackdrop:!1,backdrop:{opacity:.9},classes:{dialog:YWe,body:XWe},openDelay:0,onClose:o,"data-likec4-search":"true",children:y.jsx(QWe,{searchActorRef:e})})})})})})}const hee=fe({height:["100%","100cqh"],"& .mantine-ScrollArea-viewport":{minHeight:"100%","& > div":{minHeight:"100%",height:"100%"}}}),QWe=({searchActorRef:e})=>{const r=S.useRef(null),n=vWe();return wx(()=>{Zn(e.getSnapshot().context.openedWithSearch)&&D2(r.current)},150),y.jsxs(hr,{ref:r,display:"contents",children:[y.jsx(en,{className:"group",wrap:"nowrap",onClick:o=>{o.stopPropagation(),h0(r.current)},children:y.jsxs(hp,{flex:1,px:"sm",children:[y.jsx(GWe,{}),y.jsx(HWe,{})]})}),y.jsxs(yy,{children:[y.jsx(cp,{span:6,children:y.jsx(pp,{component:"div",order:6,c:"dimmed",pl:"sm",children:"Elements"})}),y.jsx(cp,{span:6,children:y.jsx(pp,{component:"div",order:6,c:"dimmed",pl:"sm",children:"Views"})})]}),y.jsxs(yy,{className:fe({containerName:"likec4-search-elements",containerType:"size",overflow:"hidden",flexGrow:1}),children:[y.jsx(cp,{span:6,children:y.jsx(es,{type:"scroll",className:hee,pr:"xs",scrollbars:"y",children:y.jsx(Cn,{children:y.jsx(lg,{id:"likec4-search-elements",children:y.jsx(NWe,{})})})})}),y.jsx(cp,{span:6,children:y.jsx(es,{type:"scroll",className:hee,pr:"xs",scrollbars:"y",children:y.jsx(Cn,{children:y.jsx(lg,{id:"likec4-search-views",children:y.jsx(MWe,{})})})})})]}),n&&y.jsx(qWe,{elementFqn:n})]})};function JWe({children:e}){const r=S.useContext(WS);if(!r)throw new Error("PortalToContainer must be used within RootContainer");return y.jsx(py,{target:r.ref.current??`#${r.id}`,children:e})}const fee={onNavigateTo:null,onNodeClick:null,onNodeContextMenu:null,onCanvasContextMenu:null,onEdgeClick:null,onEdgeContextMenu:null,onCanvasClick:null,onCanvasDblClick:null,onBurgerMenuClick:null,onOpenSource:null,onInitialized:null,onLayoutTypeChange:null},mR=l9(fee),gee=S.createContext({...hw(mR,e=>[e,null]),handlersRef:{current:fee}});function eGe({handlers:e,children:r}){const n=Zh(e),o=mR.map(a=>ey(e[a])),i=S.useMemo(()=>({...hw(mR,a=>n.current[a]?[a,(...l)=>n.current[a]?.(...l)]:[a,null]),handlersRef:n}),[n,...o]);return y.jsx(gee.Provider,{value:i,children:r})}function mg(){return S.useContext(gee)}const mee=(e,r)=>e.find(o=>"modelFqn"in o.data&&o.data.modelFqn===r)||null;function zr(e){return{get overlaysActorRef(){return e.get("overlays")??null},get diagramActorRef(){return gt(e.get("diagram"),"Diagram actor not found")},get searchActorRef(){return e.get("search")??null},get editorActorRef(){return e.get("editor")??null}}}zr.editorActor=({system:e})=>e.get("editor"),zr.overlaysActor=({system:e})=>e.get("overlays"),zr.diagramActor=({system:e})=>e.get("diagram"),zr.searchActor=({system:e})=>e.get("search");function yg(e,r){return e.view.nodes.find(n=>n.id===r)??null}function yR(e,r){return e.view.edges.find(n=>n.id===r)??null}function tGe(e){const r=new Map,n=e.context.xynodes.reduce((o,i)=>{let a=i.position;if(i.parentId){const c=r.get(i.parentId)??{x:0,y:0};a={x:a.x+c.x,y:a.y+c.y}}if(r.set(i.id,a),i.hidden||i.data.dimmed)return o;const l=i.measured?.width??i.width??i.initialWidth,s=i.measured?.height??i.height??i.initialHeight;return o.minX=Math.min(o.minX,a.x),o.minY=Math.min(o.minY,a.y),o.maxX=Math.max(o.maxX,a.x+l),o.maxY=Math.max(o.maxY,a.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 rGe=32;function nGe(e){const r=gt(e.context.activeWalkthrough),n=gt(e.context.xyedges.find(c=>c.id===r.stepId)),o=e.context.xystore.getState(),i=gt(o.nodeLookup.get(n.source)),a=gt(o.nodeLookup.get(n.target)),l=EF([i,a],o);let s;if(r.parallelPrefix){const c=e.context.xynodes.find(d=>d.type==="seq-parallel"&&d.data.parallelPrefix===r.parallelPrefix);c&&(s={x:c.position.x,y:c.position.y,..._o(c)})}return s??=oGe(n,o),s?s=ko.merge(s,l):s=l,{duration:350,bounds:ko.expand(s,rGe)}}function oGe(e,r){const n=r.nodeLookup.get(e.source),o=r.nodeLookup.get(e.target);if(!n||!o)return null;const i=WF({id:e.id,sourceNode:n,targetNode:o,sourceHandle:e.sourceHandle||null,targetHandle:e.targetHandle||null,connectionMode:r.connectionMode});return i?ko.fromPoints([[i.sourceX,i.sourceY],[i.targetX,i.targetY]]):null}function vR(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:Qo(e)}}function iGe(e,r){const n=e.lastOnNavigate?.fromNode,o=n&&e.xynodes.find(l=>l.id===n),i=o&&vR(o),a=i&&r.xynodes.find(l=>vR(l)===i);return{fromNode:o,toNode:a}}function aGe(e,r){let{width:n,height:o,transform:i}=e.xystore.getState();const a=Math.max(i[2],1);return Ws(r,n,o,xa,a,e.fitViewPadding)}const lGe=ns({delays:{"open timeout":({context:e})=>e.openTimeout,"close timeout":600,"long idle":1500},actions:{"update edgeId":Bt(({context:e,event:r})=>(ht(r,["xyedge.select","xyedge.mouseEnter"]),{edgeId:r.edgeId,edgeSelected:e.edgeSelected||r.type==="xyedge.select"})),"increase open timeout":Bt(()=>({openTimeout:800})),"decrease open timeout":Bt(()=>({openTimeout:300})),"reset edgeId":Bt({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"}}}}}}}),sGe=lGe,yee=fe({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)"}}),cGe=fe({whiteSpaceCollapse:"preserve-breaks",fontSize:"sm",lineHeight:"sm",userSelect:"all"});function dGe(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 uGe=S.memo(()=>{const e=Fo(),r=vE(sGe),n=Mt(),{viewId:o,selected:i}=pa(dGe),a=pn(r,m=>m.hasTag("opened")?m.context.edgeId:null);ji("navigateTo",()=>{r.send({type:"close"})}),ji("edgeMouseEnter",({edge:m})=>{r.send({type:"xyedge.mouseEnter",edgeId:m.data.id})}),ji("edgeMouseLeave",()=>{r.send({type:"xyedge.mouseLeave"})}),ji("walkthroughStarted",()=>{r.send({type:"close"})}),S.useEffect(()=>{i?r.send({type:"xyedge.select",edgeId:i}):r.send({type:"xyedge.unselect"})},[i]);const l=S.useCallback(m=>{if(!a)return;r.send({type:"dropdown.mouseEnter"});const v=n.findEdge(a);v&&!v.data.hovered&&n.send({type:"xyflow.edgeMouseEnter",edge:v,event:m})},[r,n,a]),s=S.useCallback(m=>{if(!a)return;r.send({type:"dropdown.mouseLeave"});const v=n.findEdge(a);v?.data.hovered&&n.send({type:"xyflow.edgeMouseLeave",edge:v,event:m})},[r,n,a]),{diagramEdge:c,sourceNode:d,targetNode:u}=pa(m=>{const v=a?yR(m,a):null,w=v?yg(m,v.source):null,x=v?yg(m,v.target):null;return{diagramEdge:v,sourceNode:w,targetNode:x}},Ir,[a]);if(!c||!d||!u||tp(c.relations))return null;const[p,f]=Jr(c.relations,un(m=>{try{return e.relationship(m)}catch(v){return console.error(`View is cached and likec4model missing relationship ${m} from ${d.id} -> ${u.id}`,v),null}}),ep(Zn),qq(m=>m.source.id===d.id&&m.target.id===u.id));return p.length===0&&f.length===0?(console.warn("No relationships found diagram edge",{diagramEdge:c,sourceNode:d,targetNode:u}),null):y.jsx(JWe,{children:y.jsx(fGe,{viewId:o,direct:p,nested:f,diagramEdge:c,sourceNode:d,targetNode:u,onMouseEnter:l,onMouseLeave:s})})}),pGe=(e,r)=>r?.querySelector(`.likec4-edge-label[data-edge-id="${e}"]`)??r?.querySelector(`.likec4-edge-middle-point[data-edge-id="${e}"]`)??null,hGe=8,fGe=({viewId:e,diagramEdge:r,direct:n,nested:o,sourceNode:i,targetNode:a,onMouseEnter:l,onMouseLeave:s})=>{const c=S.useRef(null),{enableNavigateTo:d,enableVscode:u,enableCompareWithLatest:p}=sr(),{onOpenSource:f}=mg(),m=dMe(),[v,w]=S.useState(null);S.useLayoutEffect(()=>{w(pGe(r.id,m.current))},[r]),S.useEffect(()=>{const C=v,_=c.current;if(!C||!_)return;let $=!1;const R=Kw(C,_,()=>{$U(C,_,{placement:"bottom-start",middleware:[_U(4),Zje({crossAxis:!0,allowedPlacements:["bottom-start","bottom-end","left-start","top-start","top-end","right-start","right-end","left-end"]}),SU({apply({availableHeight:T,availableWidth:A,elements:z}){$||Object.assign(z.floating.style,{maxWidth:`${ta(Pd(A),{min:220,max:400})}px`,maxHeight:`${ta(Pd(T),{min:100,max:500})}px`})}}),EU({padding:hGe*2})]}).then(({x:T,y:A,middlewareData:z})=>{$||(_.style.transform=`translate(${Pd(T)}px, ${Pd(A)}px)`,_.style.visibility=z.hide?.referenceHidden?"hidden":"visible")})},{ancestorResize:!1,animationFrame:!0});return()=>{$=!0,R()}},[v]);const x=Mt(),k=S.useCallback((C,_)=>y.jsxs(S.Fragment,{children:[_>0&&y.jsx(sp,{}),y.jsx(mGe,{viewId:e,relationship:C,sourceNode:i,targetNode:a,onNavigateTo:d?$=>{x.navigateTo($)}:void 0,...f&&u&&{onOpenSource:()=>f({relation:C.id})}})]},C.id),[e,i,a,x,d,f,u]);return y.jsx(oi,{ref:c,onMouseEnter:l,onMouseLeave:s,type:"auto",scrollbars:"y",scrollbarSize:6,styles:{viewport:{overscrollBehavior:"contain",minWidth:200,minHeight:40}},className:Ge(fe({layerStyle:"likec4.dropdown",p:"0",pointerEvents:{base:"all",_whenPanning:"none"},position:"absolute",top:"0",left:"0",width:"max-content",cursor:"default"})),children:y.jsxs(hp,{css:{gap:"3",padding:"4",paddingTop:"2"},children:[p&&y.jsx(gGe,{diagramEdge:r}),y.jsx(Vn,{variant:"default",color:"gray",size:"compact-xs",style:{alignSelf:"flex-start",fontWeight:500,"--button-fz":"var(--font-sizes-xxs)"},onClick:C=>{C.stopPropagation(),x.openRelationshipDetails(r.id)},children:"browse relationships"}),n.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(vg,{children:"DIRECT RELATIONSHIPS"}),n.map(k)]}),o.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(vg,{css:{mt:n.length>0?"2":"0"},children:"RESOLVED FROM NESTED"}),o.map(k)]})]})})},gGe=({diagramEdge:e})=>{const r=e.drifts;return!r||r.length===0?null:y.jsx(xy,{color:"orange",withBorder:!1,withCloseButton:!1,title:"Changes:",children:r.map(n=>y.jsxs(it,{mt:2,size:"sm",lh:"xs",children:["- ",n]},n))})},mGe=S.forwardRef(({viewId:e,relationship:r,sourceNode:n,targetNode:o,onNavigateTo:i,onOpenSource:a},l)=>{const s=vee(r,"source",n),c=vee(r,"target",o),d=i&&r.navigateTo?.id!==e?r.navigateTo?.id:void 0,u=r.links,p=r.hasMetadata()?uw(r.getMetadata()).sort(([m],[v])=>m.localeCompare(v)):null,f=p&&y.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:[y.jsx("div",{style:{fontWeight:600,fontSize:"10px",color:"#868e96",marginBottom:"2px",letterSpacing:"0.5px",textTransform:"uppercase"},children:"Metadata"}),y.jsx("div",{style:{borderTop:"1px solid rgba(0, 0, 0, 0.1)",paddingTop:"6px",display:"flex",flexDirection:"column",gap:"6px"},children:p.map(([m,v])=>{const w=Array.isArray(v)?v.join(", "):v;return y.jsxs("div",{style:{display:"flex",gap:"12px",fontSize:"12px",lineHeight:"1.4"},children:[y.jsxs("span",{style:{fontWeight:600,minWidth:"110px",color:"#495057"},children:[m,":"]}),y.jsx("span",{style:{color:"#212529",wordBreak:"break-word",flex:1},children:w})]},m)})})]});return y.jsxs(hp,{ref:l,className:qG({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(Or,{gap:"0.5",children:y.jsxs(dp,{openDelay:200,children:[y.jsx(f0,{label:s.full,offset:2,position:"top-start",children:y.jsx(it,{component:"div","data-likec4-color":n.color,className:yee,children:s.short})}),y.jsx(hg,{stroke:2.5,size:"11px",opacity:.65}),y.jsx(f0,{label:c.full,offset:2,position:"top-start",children:y.jsx(it,{component:"div","data-likec4-color":o.color,className:yee,children:c.short})}),d&&y.jsx(f0,{label:"Open dynamic view",children:y.jsx(lr,{size:"sm",radius:"sm",variant:"default",onClick:m=>{m.stopPropagation(),i?.(d)},style:{alignSelf:"flex-end"},role:"button",children:y.jsx(ba,{size:"80%",stroke:2})})}),a&&y.jsx(f0,{label:"Open source",children:y.jsx(lr,{size:"sm",radius:"sm",variant:"default",onClick:m=>{m.stopPropagation(),a()},role:"button",children:y.jsx(dg,{size:"80%",stroke:2})})})]})}),y.jsxs(Or,{gap:"xs",alignItems:"center",children:[y.jsx(hr,{className:cGe,children:r.title||"untitled"}),f&&y.jsx(f0,{label:f,w:350,position:"right",offset:10,openDelay:300,withArrow:!0,bg:"white",c:"dark",withinPortal:!0,styles:{tooltip:{boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",border:"1px solid #dee2e6"}},children:y.jsx(hr,{display:"inline-flex",children:y.jsx(r0,{size:14,opacity:.5,style:{flexShrink:0,cursor:"help"}})})})]}),r.kind&&y.jsxs(Or,{gap:"2",children:[y.jsx(vg,{children:"kind"}),y.jsx(it,{size:"xs",className:fe({userSelect:"all"}),children:r.kind})]}),r.technology&&y.jsxs(Or,{gap:"2",children:[y.jsx(vg,{children:"technology"}),y.jsx(it,{size:"xs",className:fe({userSelect:"all"}),children:r.technology})]}),r.summary.nonEmpty&&y.jsxs(y.Fragment,{children:[y.jsx(vg,{children:"description"}),y.jsx(hr,{css:{paddingLeft:"2.5",py:"1.5",borderLeft:"2px dotted",borderLeftColor:{base:"mantine.colors.gray[3]",_dark:"mantine.colors.dark[4]"}},children:y.jsx(zp,{value:r.summary,fontSize:"sm",textScale:.875})})]}),u.length>0&&y.jsxs(y.Fragment,{children:[y.jsx(vg,{children:"links"}),y.jsx(Or,{gap:"1",flexWrap:"wrap",children:u.map(m=>y.jsx(o$,{size:"sm",value:m},m.url))})]})]})}),vg=Ed("div",{base:{display:"block",fontSize:"xxs",fontWeight:500,userSelect:"none",lineHeight:"sm",color:"mantine.colors.dimmed"}}),f0=_n.withProps({color:"dark",fz:"xs",label:"",children:null,offset:8,withinPortal:!1});function vee(e,r,n){const o=e.isDeploymentRelation()?n.id:n.modelRef||"",i=e[r].id,a=Jm(o)+i.slice(o.length);return{full:i,short:a}}function bg(){const e=uMe();return S.useMemo(()=>e?{portalProps:{target:e},withinPortal:!0}:{withinPortal:!1},[e])}const yGe=ns({delays:{"open timeout":500,"close timeout":350},actions:{"update activatedBy":Bt({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":Bt({activatedBy:"click"}),"update selected folder":Bt(({event:e})=>e.type==="breadcrumbs.click.root"?{selectedFolder:""}:(ht(e,["breadcrumbs.click.folder","select.folder"]),{selectedFolder:e.folderPath})),"reset selected folder":Bt({selectedFolder:({context:e})=>e.viewModel?.folder.path??""}),"update inputs":Bt(({context:e,event:r})=>{ht(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??""),{view:r.inputs.view,viewModel:r.inputs.viewModel,selectedFolder:o,activatedBy:n?"hover":e.activatedBy}}),"reset search query":Bt({searchQuery:""}),"update search query":Bt(({event:e})=>(ht(e,"searchQuery.change"),{searchQuery:e.value??""})),"emit navigateTo":gE(({event:e})=>(ht(e,"select.view"),{type:"navigateTo",viewId:e.viewId}))},guards:{"was opened on hover":({context:e})=>e.activatedBy==="hover","has search query":({context:e})=>!tp(e.searchQuery),"search query is empty":({context:e})=>tp(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",ai({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"}}}}}}}),vGe=yGe,bR=S.createContext(null);bR.displayName="NavigationPanelActorSafeContext";const bGe=bR.Provider,xR=()=>{const e=S.useContext(bR);if(e===null)throw new Error("NavigationPanelActorRef is not found in the context");return e};function wR(e,r=Ir){const n=xR();return pn(n,e,r)}function xGe(e,r=Ir){return wR(n=>e(n.context),r)}function g0(){const e=xR();return S.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 bee=_n.withProps({color:"dark",fz:"xs",openDelay:600,closeDelay:120,label:"",children:null,offset:8,withinPortal:!1}),xee=()=>y.jsx(Ti,{component:Rr,variant:"transparent",size:16,className:fe({display:{base:"none","@/md":"flex"},color:{base:"mantine.colors.gray[5]",_dark:"mantine.colors.dark[3]"}}),children:y.jsx(Dd,{})});y3.withProps({separator:y.jsx(xee,{}),separatorMargin:4});const cc=S.forwardRef(({variant:e="default",className:r,disabled:n=!1,type:o,...i},a)=>y.jsx(lr,{size:"md",variant:"transparent",radius:"sm",component:wa,...!n&&{whileHover:{scale:1.085},whileTap:{scale:1,translateY:1}},disabled:n,...i,className:Ge(r,eQ({variant:e,type:o})),ref:a})),M2=T1({base:{fontSize:"sm",fontWeight:"500",transition:"fast",color:{base:"likec4.panel.action",_hover:"likec4.panel.action.hover"}},variants:{truncate:{true:{truncate:!0}},dimmed:{true:{color:{base:"likec4.panel.text.dimmed",_hover:"likec4.panel.action"}}}}}),wGe=S.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:fe({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"})]})),kGe=S.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"})})),_Ge=()=>{const e=g0(),{onBurgerMenuClick:r}=mg();return y.jsx(Rr,{layout:"position",children:y.jsxs(pr,{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:Ge("mantine-active",qn({padding:"0.5",width:{base:"[20px]","@/md":"[64px]"}})),children:[y.jsx(wGe,{className:fe({display:{base:"none","@/md":"block"}})}),y.jsx(kGe,{className:fe({display:{base:"block","@/md":"none"}})})]})})},SGe=[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M5 12l6 6",key:"svg-1"}],["path",{d:"M5 12l6 -6",key:"svg-2"}]],EGe=wt("outline","arrow-left","ArrowLeft",SGe),CGe=()=>{const e=Mt(),{hasStepBack:r,hasStepForward:n}=pa(o=>({hasStepBack:o.navigationHistory.currentIndex>0,hasStepForward:o.navigationHistory.currentIndex{o.stopPropagation(),e.navigate("back")},children:y.jsx(EGe,{size:14})}),y.jsx(cc,{disabled:!n,onClick:o=>{o.stopPropagation(),e.navigate("forward")},children:y.jsx(hg,{size:14})})]})},$Ge=[["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"}]],RGe=wt("outline","link","Link",$Ge),zGe=({context:e})=>{const r=e.view;return{id:r.id,title:e.viewModel?.title??(r.title&&n7(r.title))??"Untitled View",description:e.viewModel?.description??ur.from(r.description),tags:r.tags??[],links:r.links??[]}},TGe=e=>{const[r,n]=S.useState(!1),o=wR(zGe,tt),i=bg();return y.jsxs(br,{position:"bottom-end",shadow:"xl",clickOutsideEvents:["pointerdown","mousedown","click"],offset:{mainAxis:4},opened:r,onChange:n,...i,...e,children:[y.jsx(jGe,{linksCount:o.links.length,onOpen:()=>n(!0)}),r&&y.jsx(AGe,{data:o,onClose:()=>n(!1)})]})},jGe=({linksCount:e,onOpen:r})=>y.jsx(br.Target,{children:y.jsxs(pr,{component:wa,layout:"position",whileTap:{scale:.95,translateY:1},onClick:n=>{n.stopPropagation(),r()},className:Ge("group",qn({gap:"2",paddingInline:"2",paddingBlock:"1",rounded:"sm",userSelect:"none",cursor:"pointer",color:{base:"likec4.panel.action",_hover:"likec4.panel.action.hover"},backgroundColor:{_hover:"likec4.panel.action.bg.hover"},display:{base:"none","@/xs":"flex"}}),""),children:[y.jsx(nR,{size:16,stroke:1.8}),e>0&&y.jsxs(Or,{gap:"[1px]",children:[y.jsx(RGe,{size:14,stroke:2}),y.jsx(hr,{css:{fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8},children:e})]})]})}),wee=Ed("div",{base:{fontSize:"xs",color:"mantine.colors.dimmed",fontWeight:500,userSelect:"none",mb:"xxs"}}),AGe=({data:{id:e,title:r,description:n,tags:o,links:i},onClose:a})=>{const l=Mt();return ji("paneClick",a),ji("nodeClick",a),y.jsxs(br.Dropdown,{className:Ge("nowheel nopan nodrag",Ey({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(it,{component:"div",fw:500,size:"xl",lh:"sm",children:r}),y.jsxs(Or,{alignItems:"flex-start",mt:"1",children:[y.jsx(DGe,{label:"id",value:e}),y.jsx(Or,{gap:"xs",flexWrap:"wrap",children:o.map(s=>y.jsx(u2,{tag:s,cursor:"pointer",onClick:c=>{c.stopPropagation(),l.openSearch(`#${s}`)}},s))})]})]}),i.length>0&&y.jsxs("section",{className:qn({alignItems:"baseline"}),children:[y.jsx(wee,{children:"Links"}),y.jsx(Or,{gap:"xs",flexWrap:"wrap",children:i.map((s,c)=>y.jsx(o$,{value:s},`${c}-${s.url}`))})]}),n.isEmpty&&y.jsx(it,{component:"div",fw:500,size:"xs",c:"dimmed",style:{userSelect:"none"},children:"No description"}),n.nonEmpty&&y.jsxs("section",{children:[y.jsx(wee,{children:"Description"}),y.jsx(zp,{value:n,fontSize:"sm",emptyText:"No description",className:fe({userSelect:"all"})})]})]})},DGe=({label:e,value:r})=>y.jsxs(Or,{gap:"0.5",children:[y.jsx(PGe,{children:e}),y.jsx(ec,{size:"sm",radius:"sm",variant:"light",color:"gray",tt:"none",fw:500,classNames:{root:fe({width:"max-content",overflow:"visible",px:"1",color:{_dark:"mantine.colors.gray[4]",_light:"mantine.colors.gray[8]"}}),label:fe({overflow:"visible"}),section:fe({opacity:.5,userSelect:"none",marginInlineEnd:"0.5"})},children:r})]}),PGe=Ed("div",{base:{color:"mantine.colors.dimmed",fontWeight:500,fontSize:"xxs",userSelect:"none"}}),MGe=()=>{const e=E2(),{enableVscode:r}=sr(),{onOpenSource:n}=mg();return r?y.jsx(bee,{label:"Open View Source",children:y.jsx(cc,{onClick:o=>{o.stopPropagation(),n?.({view:e})},children:y.jsx(dg,{style:{width:"60%",height:"60%"}})})}):null};function kee(e,r){if(e._type==="dynamic")try{if(r??=e.variant,r==="sequence")return e.sequenceLayout.bounds}catch{}return e.bounds}function NGe({points:e,controlPoints:r,labelBBox:n}){let o=1/0,i=1/0,a=-1/0,l=-1/0;if(r)for(const s of r)o=Math.min(o,s.x),i=Math.min(i,s.y),a=Math.max(a,s.x),l=Math.max(l,s.y);else for(const[s,c]of e)o=Math.min(o,s),i=Math.min(i,c),a=Math.max(a,s),l=Math.max(l,c);return n&&(o=Math.min(o,n.x),i=Math.min(i,n.y),a=Math.max(a,n.x+n.width),l=Math.max(l,n.y+n.height)),{x:o,y:i,width:a-o,height:l-i}}function BGe({nodes:e,edges:r}){return ko.expand(ko.merge(...e,...r.map(NGe)),10)}function _ee(e){const{view:{drifts:r,_layout:n,...o},xynodes:i,xystore:a}=e,{nodeLookup:l,edgeLookup:s}=a.getState(),c=new Set,d=un(o.nodes,p=>{const f=l.get(p.id);if(!f)return console.error(`Internal node not found for ${p.id}`),p;const m=i.find(k=>k.id===p.id)?.data??f.data,v=f.internals.positionAbsolute,{width:w,height:x}=_o(f);return(!d2(v,p)||p.width!==w||p.height!==x)&&c.add(p.id),{...p,shape:m.shape,color:m.color,style:{...m.style},x:Math.floor(v.x),y:Math.floor(v.y),width:Math.ceil(w),height:Math.ceil(x)}}),u=un(o.edges,p=>{const f=s.get(p.id);if(!f)return console.error(`Internal edge not found for ${p.id}`),p;const m=f.data;let v=m.controlPoints??[];const w=c.has(f.source)||c.has(f.target);v.length===0&&w&&(v=c2(m.points));const x={...ud(p,["controlPoints","labelBBox"]),points:m.points};return m.labelBBox&&(x.labelBBox=m.labelBBox),xn(v,1)&&(x.controlPoints=v),x});return{op:"save-view-snapshot",layout:{...o,_layout:"manual",bounds:BGe({nodes:d,edges:u}),nodes:d,edges:u}}}const IGe=function(e){return e.get("diagram")},See=function(e){return e.get("diagram").getSnapshot().context},Eee=()=>Rn.raise({type:"sync"},{delay:200,id:"sync"}),xg=()=>Rn.cancel("sync"),Cee=(e=50)=>Rn.raise(({event:r})=>r,{delay:e}),$ee=e=>e.op==="reset-manual-layout"||e.op==="save-view-snapshot",Ree=ep(S$e($ee)),zee=()=>Rn.assign(({system:e})=>{const r=See(e);return{beforeEditing:{xynodes:r.xynodes.map(({measured:n,...o})=>({...ud(o,["selected","dragging","resizing"]),data:ud(o.data,["dimmed","hovered"]),measured:n,initialWidth:n?.width??o.width??o.initialWidth,initialHeight:n?.height??o.height??o.initialHeight})),xyedges:r.xyedges.map(n=>({...ud(n,["selected"]),data:ud(n.data,["active","dimmed","hovered"])})),change:_ee(r),view:r.view,synched:!1}}}),OGe=()=>Rn.enqueueActions(({enqueue:e,event:r})=>{e(zee()),r.type==="edit.start"&&e.assign({editing:r.subject})}),LGe=()=>Rn.stopChild("hotkey"),kR=()=>Rn.enqueueActions(({check:e,enqueue:r,self:n})=>{const o=e("can undo"),i=n.getSnapshot().children.hotkey;if(!o&&i){r.stopChild(i);return}o&&!i&&r.spawnChild("hotkey",{id:"hotkey"})}),Tee=()=>Rn.assign(({context:e})=>{const r=e.beforeEditing;return r?{beforeEditing:null,editing:null,history:[...e.history,r]}:{editing:null}}),_R=()=>Rn.enqueueActions(({event:e,enqueue:r})=>{if(e.type==="edit.finish"&&e.wasChanged){r(Tee()),r(Eee());return}r.assign({beforeEditing:null,editing:null})}),FGe=()=>Rn.assign(({context:e})=>({beforeEditing:e.beforeEditing&&e.beforeEditing.synched===!1?{...e.beforeEditing,synched:!0}:e.beforeEditing,history:e.history.map(r=>({...r,synched:!0}))})),VGe=()=>Rn.assign(({context:e})=>e.history.length<=1?{history:[]}:{history:e.history.slice(0,e.history.length-1)}),qGe=()=>Rn.enqueueActions(({context:e,enqueue:r,system:n})=>{const o=dd(e.history);if(!o)return;r(xg()),r(VGe()),r(kR());const i=IGe(n);r.sendTo(i,{type:"update.view",view:o.view,xyedges:o.xyedges,xynodes:o.xynodes,source:"editor"}),r.assign({pendingChanges:[]}),o.synched?r.raise({type:"change",change:o.change},{delay:50}):r(Eee())}),SR=()=>Rn.assign(({context:e,system:r})=>{const n=See(r),o=_ee(n);return{pendingChanges:[...Ree(e.pendingChanges),o]}}),HGe=B3(({sendBack:e})=>{const r=$w([["mod + z",n=>{n.stopPropagation(),e({type:"undo"})},{preventDefault:!0}]]);return document.body.addEventListener("keydown",r,{capture:!0}),()=>{document.body.removeEventListener("keydown",r,{capture:!0})}}),UGe=zy(()=>{throw new Error("Not implemented")}),WGe=zy(()=>{throw new Error("Not implemented")}),jee=function(e){return e.system.get("diagram")},Rn=ns({delays:{"350ms":350,waitBeforeSync:2e3},actors:{applyLatest:UGe,executeChange:WGe,hotkey:HGe},guards:{"has pending":({context:e})=>e.pendingChanges.length>0,"can undo":({context:e})=>e.history.length>0}}),Hn={idle:{target:"#idle"},editing:{target:"#editing"},afterEdit:{target:"#afterEdit"},pending:{target:"#pending"},applyLatestToManual:{target:"#applyLatestToManual"},executeChanges:{target:"#executeChanges"}},GGe=Rn.createStateConfig({id:"idle",on:{sync:{...Hn.pending},"edit.start":{...Hn.editing}}}),YGe=Rn.createStateConfig({id:"editing",tags:"pending",entry:[OGe(),xg()],on:{change:{actions:_R(),...Hn.executeChanges},"edit.finish":{actions:_R(),...Hn.afterEdit},undo:{actions:_R(),...Hn.idle}}}),XGe=Rn.createStateConfig({id:"pending",tags:["pending"],entry:kR(),on:{sync:{reenter:!0,...Hn.pending},"edit.start":{actions:[SR()],...Hn.editing}},after:{waitBeforeSync:{actions:[SR()],...Hn.executeChanges}}}),KGe=Rn.createStateConfig({id:"afterEdit",always:[{guard:"has pending",...Hn.pending},{...Hn.idle}]}),ZGe=Rn.createStateConfig({id:"applyLatestToManual",entry:[xg(),zee()],initial:"call",on:{"*":{actions:[yE(({event:e})=>`applyLatestToManual received unexpected event: ${e.type}`),Cee(350)]}},states:{call:{invoke:{src:"applyLatest",input:({context:e})=>{const r=e.beforeEditing?.change.layout;return{current:r&&r._layout==="manual"?r:void 0,viewId:e.viewId}},onDone:{actions:jy(jee,({event:e})=>({type:"update.view",view:e.output.updated}),{delay:10}),target:"wait"},onError:{actions:[Bt({beforeEditing:null,pendingChanges:[]}),({event:e})=>{console.error(e.error)}],...Hn.idle}}},wait:{entry:Tee(),after:{"350ms":{actions:[SR(),kR()],...Hn.executeChanges}}}}}),QGe=Rn.createStateConfig({id:"executeChanges",entry:[Bt(({event:e,context:r})=>{if(e.type==="change"){if($ee(e.change))return{pendingChanges:[...Ree(r.pendingChanges),e.change]};if(!r.pendingChanges.includes(e.change))return{pendingChanges:[...r.pendingChanges,e.change]}}return{}}),xg()],invoke:{src:"executeChange",input:({context:e})=>({changes:e.pendingChanges,viewId:e.viewId}),onDone:{actions:rs(({context:e,enqueue:r})=>{const n=Q1(e.pendingChanges,o=>o.op==="save-view-snapshot");n&&r.sendTo(jee,{type:"update.view-bounds",bounds:n.layout.bounds}),r.assign({pendingChanges:[]})}),...Hn.idle},onError:{actions:({event:e})=>{console.error(e.error)},...Hn.afterEdit}},on:{"*":{actions:Cee()}}}),JGe=Rn.createMachine({id:"editor",context:({input:e})=>({viewId:e.viewId,beforeEditing:null,editing:null,pendingChanges:[],history:[]}),initial:"idle",states:{idle:GGe,editing:YGe,pending:XGe,afterEdit:KGe,applyLatestToManual:ZGe,executeChanges:QGe},on:{cancel:{actions:[xg(),Bt({editing:null,beforeEditing:null,pendingChanges:[]})],...Hn.idle},synced:{actions:FGe()},undo:{guard:"can undo",actions:qGe(),...Hn.idle},change:{...Hn.executeChanges},applyLatestToManual:{...Hn.applyLatestToManual},reset:{actions:[xg(),Bt({history:[],editing:null,beforeEditing:null,pendingChanges:[]}),LGe()],...Hn.idle}}}),Aee=JGe,Dee={};function Pee(e,r){return e===r?e:(r=r.map(n=>{const o=e.find(l=>l.id===n.id&&l.type===n.type&&l.source===n.source&&l.target===n.target);if(!o)return n;const i=tt(o.data,n.data),a=i?o.data:n.data;return i&&tt(o.hidden,n.hidden??o.hidden)&&tt(o.selected,n.selected??o.selected)&&tt(o.selectable,n.selectable??o.selectable)&&tt(o.focusable,n.focusable??o.focusable)&&tt(o.animated,n.animated??o.animated)&&tt(o.className,n.className)&&tt(o.zIndex,n.zIndex??o.zIndex)&&tt(o.label,n.label)&&tt(o.sourceHandle,n.sourceHandle)&&tt(o.targetHandle,n.targetHandle)&&tt(o.style??Dee,n.style??Dee)?o:{...ry(o,ra),...ry(n,ra),data:a}}),Oq(e,r)?e:r)}function ER(e,r){return ra(r)?Pee(e,r):(r=e,n=>Pee(n,r))}const N2={};function Mee(e,r){return e===r?e:(r=r.map(n=>{const o=e.find(p=>p.id===n.id&&p.type===n.type);if(!o)return n;const i=Mq(o.data,n.data);let a=i?o.data:n.data;i||(ra(o.data.hovered)&&!ra(n.data.hovered)&&(a={...a,hovered:o.data.hovered}),ra(o.data.dimmed)&&!ra(n.data.dimmed)&&(a={...a,dimmed:o.data.dimmed}));const{width:l,height:s}=_o(o),c=Object.hasOwn(o,"handles")||Object.hasOwn(n,"handles"),d=!c||tt(o.handles??[],n.handles??[]);if(i&&d&&tt(l,n.width??n.initialWidth)&&tt(s,n.height??n.initialHeight)&&tt(o.parentId??null,n.parentId??null)&&tt(o.hidden,n.hidden??o.hidden)&&tt(o.selected,n.selected??o.selected)&&tt(o.selectable,n.selectable??o.selectable)&&tt(o.focusable,n.focusable??o.focusable)&&tt(o.draggable,n.draggable??o.draggable)&&tt(o.dragHandle,n.dragHandle)&&tt(o.className,n.className)&&tt(o.zIndex,n.zIndex??o.zIndex)&&tt(o.position,n.position)&&tt(o.domAttributes??N2,n.domAttributes??N2)&&tt(o.style??N2,n.style??N2))return o;const u=c&&d?o.handles:n.handles;return{...ry(o,(p,f)=>ra(p)&&f!=="parentId"),..."measured"in o&&{measured:{width:n.width??n.initialWidth,height:n.height??n.initialHeight}},...ry(n,ra),width:n.width??n.initialWidth,height:n.height??n.initialHeight,...u&&{handles:u},data:a}}),Oq(e,r)?e:r)}function B2(e,r){return ra(r)?Mee(e,r):(r=e,n=>Mee(n,r))}const CR={top:"40px",bottom:"22px",left:"22px",right:"22px"};function Nee(e){const r=[],n=[],o=new Map,i=x8.from(e.nodes.reduce((s,c)=>(o.set(c.id,c),c.parent||s.push({node:c,parent:null}),s),[])),a=s=>gt(o.get(s),`Node not found: ${s}`);let l;for(;l=i.dequeue();){const{node:s,parent:c}=l,d=xn(s.children,1)||s.kind==w1;if(d)for(const w of s.children)i.enqueue({node:a(w),parent:s});const u={x:s.x,y:s.y};c&&(u.x-=c.x,u.y-=c.y);const p=s.id,f={id:p,position:u,zIndex:d?lc.Compound:lc.Element,style:{width:s.width,height:s.height},initialWidth:s.width,initialHeight:s.height,...c&&{parentId:c.id}},m=s.modelRef??null,v={navigateTo:s.navigateTo??null};switch(!0){case s.kind===w2.Empty:{r.push({...f,type:"empty",data:{column:s.column}});break}case(d&&!!m):{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:m,...v}});break}default:He(m,"Element should have either modelRef or deploymentRef"),r.push({...f,type:"element",data:{id:p,column:s.column,fqn:m,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,...v}})}}for(const s of e.edges){const c=s.source,d=s.target,u=s.id;if(!xn(s.points,2)){console.error("edge should have at least 2 points",s);continue}if(!xn(s.relations,1)){console.error("edge should have at least 1 relation",s);continue}n.push({id:u,type:"relationship",source:c,target:d,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 Bee=e=>e.find(r=>r.data.column==="subjects"&&ty(r.parentId)),eYe=zy(async({input:e,self:r,signal:n})=>{const{subjectId:o,navigateFromNode:i,xyflow:a,xystore:l,update:s}=e;let{nodes:c,width:d,height:u}=l.getState();const p=Nee(s),f=()=>{const{nodes:j,edges:I}=l.getState();return{xynodes:B2(j,p.xynodes),xyedges:ER(I,p.xyedges)}},m=gt(r._parent);let v=a.getZoom();const w=Math.max(v,1),x=Ws(s.bounds,d,u,xa,w,CR),k=p.xynodes.find(j=>j.type!=="empty"&&j.data.column==="subjects"&&j.data.fqn===o)??Bee(p.xynodes),C=Bee(c),_=i?c.find(j=>j.id===i):c.find(j=>j.type!=="empty"&&j.data.column!=="subjects"&&j.data.fqn===o);if(!k||!_||k.type==="empty"||!C||k.data.fqn===C.data.fqn)return await a.setViewport(x),f();const $={x:k.position.x+(k.initialWidth??0)/2,y:k.position.y+(k.initialHeight??0)/2},R=a.getInternalNode(C.id),T=n$(R),A=new Set;if(c.forEach(j=>{if(j.id!==_.id){if(j.data.column==="subjects"){A.add(j.id);return}j.parentId&&(j.parentId===_.id||A.has(j.parentId))&&A.add(j.id)}}),c=B2(c,c.flatMap(j=>A.has(j.id)?[]:j.id!==_.id?{...j,data:{...j.data,dimmed:j.data.column==="subjects"?"immediate":!0}}:{...ud(j,["parentId"]),position:{x:T.x-j.initialWidth/2,y:T.y-j.initialHeight/2},zIndex:lc.Max,hidden:!1,data:{...j.data,dimmed:!1}})),m.send({type:"update.xydata",xynodes:c,xyedges:[]}),await XO(120),p.xynodes=p.xynodes.map(tr.setDimmed(!1)),n.aborted)return f();const z=300;return a.setCenter(T.x,T.y,{zoom:v,duration:z,interpolate:"smooth"}),await XO(z),await a.setCenter($.x,$.y,{zoom:v}),f()}),dc=ns({actors:{layouter:eYe},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}}),Iee=()=>dc.assign(({event:e})=>(ht(e,"xyflow.init"),{xyflow:e.instance,xystore:e.store})),Oee=()=>dc.assign(({event:e})=>(ht(e,"update.view"),{layouted:e.layouted,...Nee(e.layouted)})),tYe=()=>dc.createAction(({context:e})=>{He(e.xystore,"xystore is not initialized");const{domNode:r,updateNodeInternals:n}=e.xystore.getState(),o=new Set(e.xyedges.flatMap(l=>[l.source,l.target]));if(o.size===0||!r)return;const i=new Map,a=r.querySelectorAll(".react-flow__node");for(const l of a){const s=l.getAttribute("data-id");s&&o.has(s)&&i.set(s,{id:s,nodeElement:l,force:!0})}n(i,{triggerFitView:!1})}),$R=e=>dc.createAction(({context:r,event:n})=>{e??=n.type==="fitDiagram"?n:{};let{duration:o,bounds:i}=e??{};o??=450;const{xyflow:a,xystore:l}=r;He(a,"xyflow is not initialized"),He(l,"xystore is not initialized"),i??=r.layouted?.bounds;const s=Math.max(a.getZoom(),1);if(i){const{width:c,height:d}=l.getState(),u=Ws(i,c,d,xa,s,CR);a.setViewport(u,o>0?{duration:o,interpolate:"smooth"}:void 0).catch(console.error)}else a.fitView({minZoom:xa,maxZoom:s,padding:CR,...o>0&&{duration:o,interpolate:"smooth"}}).catch(console.error)}),rYe=()=>dc.assign(({context:e,event:r})=>(ht(r,"xyflow.applyNodeChanges"),{xynodes:rw(r.changes,e.xynodes)})),nYe=()=>dc.assign(({context:e,event:r})=>(ht(r,"xyflow.applyEdgeChanges"),{xyedges:nw(r.changes,e.xyedges)})),Lee=()=>dc.enqueueActions(({system:e,event:r})=>{if(r.type!=="xyflow.edgeClick")return;const n=zr(e).diagramActorRef,o=r.edge.data.relations;xn(o,1)&&n.send({type:"open.source",relation:o[0]})}),Fee=()=>dc.assign({xyflow:null,layouted:null,xystore:null,xyedges:[],xynodes:[]}),oYe=dc.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:rYe()},"xyflow.applyEdgeChanges":{actions:nYe()}},states:{initializing:{on:{"xyflow.init":{actions:Iee(),target:"isReady"},"update.view":{actions:Oee(),target:"isReady"},stop:"closed",close:"closed"}},isReady:{always:[{guard:"isReady",actions:[$R({duration:0}),ai({type:"xyflow.updateNodeInternals"},{delay:150})],target:"active"},{target:"initializing"}]},active:{initial:"idle",tags:["active"],on:{"xyflow.nodeClick":{actions:rs(({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:rs(({event:e,context:r,system:n,enqueue:o})=>{e.edge.selected||e.edge.data.relations.length>1?o.sendTo(zr(n).overlaysActorRef,{type:"open.relationshipDetails",viewId:r.viewId,source:e.edge.data.sourceFqn,target:e.edge.data.targetFqn}):o(Lee())})},{actions:Lee()}],"navigate.to":{actions:[Bt({subject:({event:e})=>e.subject,viewId:({event:e,context:r})=>e.viewId??r.viewId??null,navigateFromNode:({event:e})=>e.fromNode??null})]},"xyflow.paneDblClick":{actions:$R()},"update.view":{actions:Oee(),target:".layouting"},"change.scope":{actions:Bt({scope:({event:e})=>e.scope})},"xyflow.updateNodeInternals":{actions:tYe()},fitDiagram:{actions:$R()},"xyflow.resized":{actions:[ua("fitDiagram"),ai({type:"fitDiagram"},{id:"fitDiagram",delay:300})]},"xyflow.init":{actions:Iee()},"xyflow.unmount":{target:"initializing"},close:"closed"},states:{idle:{on:{"xyflow.edgeMouseEnter":{actions:[Bt({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?tr.setData(o,{hovered:!0,dimmed:!1}):n&&!o.selected?tr.setDimmed(o,"immediate"):o)}}),ua("undim.edges"),ua("dim.nonhovered.edges"),ai({type:"dim.nonhovered.edges"},{id:"dim.nonhovered.edges",delay:200})]},"xyflow.edgeMouseLeave":{actions:[Bt({xyedges:({context:e,event:r})=>e.xyedges.map(n=>n.id===r.edge.id?tr.setHovered(n,!1):n)}),ua("dim.nonhovered.edges"),ai({type:"undim.edges"},{id:"undim.edges",delay:400})]},"dim.nonhovered.edges":{actions:Bt({xyedges:({context:e})=>e.xyedges.map(r=>r.data.hovered?r:tr.setDimmed(r,r.data.dimmed==="immediate"?"immediate":!0))})},"undim.edges":{actions:Bt({xyedges:({context:e})=>e.xyedges.map(tr.setDimmed(!1))})},"xyflow.selectionChange":{actions:rs(({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:gt(e.xyflow),xystore:gt(e.xystore),update:gt(e.layouted)}),onDone:{target:"idle",actions:rs(({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=1;n<8;n++)e.raise({type:"xyflow.updateNodeInternals"},{delay:120+n*75})})}},on:{"update.xydata":{actions:Bt({xynodes:({event:e})=>e.xynodes,xyedges:({event:e})=>e.xyedges})},"xyflow.applyEdgeChanges":{},"xyflow.applyNodeChanges":{}}}}},closed:{id:"closed",type:"final",entry:Fee()}},exit:Fee()}),Vee=oYe,iYe=ns({actors:{relationshipsBrowserLogic:Vee}}).createMachine({id:"element-details",context:({input:e})=>({...e,initiatedFrom:{node:e.initiatedFrom?.node??null,clientRect:e.initiatedFrom?.clientRect??null}}),initial:"active",states:{active:{entry:T3("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:[jy(({self:e})=>`${e.id}-relationships`,{type:"close"}),$y(({self:e})=>`${e.id}-relationships`)],on:{"change.subject":{actions:Bt({subject:({event:e})=>e.subject})},close:"closed"}},closed:{id:"closed",type:"final"}}}),aYe=iYe;function lYe(e){const r=[],n=[],o=new Map,i=x8.from(e.nodes.reduce((s,c)=>(o.set(c.id,c),c.parent||s.push({node:c,parent:null}),s),[])),a=s=>gt(o.get(s),`Node not found: ${s}`);let l;for(;l=i.dequeue();){const{node:s,parent:c}=l,d=xn(s.children,1);if(d)for(const w of s.children)i.enqueue({node:a(w),parent:s});const u={x:s.x,y:s.y};c&&(u.x-=c.x,u.y-=c.y);const p=s.id,f={id:p,draggable:!1,deletable:!1,position:u,zIndex:d?lc.Compound:lc.Element,style:{width:s.width,height:s.height},initialWidth:s.width,initialHeight:s.height,...c&&{parentId:c.id}},m=s.modelRef,v={navigateTo:s.navigateTo??null};switch(!0){case d:{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:m,...v}});break}default:r.push({...f,type:"element",data:{id:p,column:s.column,fqn:m,title:s.title,technology:s.technology,description:s.description??null,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,...v}})}}for(const{source:s,target:c,relationId:d,label:u,technology:p,description:f,navigateTo:m=null,color:v="gray",line:w="dashed",...x}of e.edges){const k=x.id;n.push({id:k,type:"relationship",source:s,target:c,sourceHandle:x.sourceHandle,targetHandle:x.targetHandle,deletable:!1,data:{relationId:d,label:u,color:v,navigateTo:m,line:w,description:f??null,...p&&{technology:p}}})}return{xynodes:r,xyedges:n,bounds:e.bounds}}function qee(e){return"edgeId"in e?(He(pw(e.edgeId),"edgeId is required"),{edgeId:e.edgeId}):{source:e.source,target:e.target}}const Hee={x:"22px",y:"22px"},sYe=ns({actions:{"xyflow:fitDiagram":({context:e},r)=>{let{duration:n,bounds:o}=r??{};n??=450;const{xyflow:i,xystore:a}=e;He(i,"xyflow is not initialized"),He(a,"xystore is not initialized"),o??=e.bounds;const l=Math.max(i.getZoom(),1);if(o){const{width:s,height:c}=a.getState(),d=Ws(o,s,c,xa,l,Hee);i.setViewport(d,n>0?{duration:n}:void 0).catch(console.error)}else i.fitView({minZoom:xa,maxZoom:l,padding:Hee,...n>0&&{duration:n,interpolate:"smooth"}}).catch(console.error)},"xyflow:updateNodeInternals":({context:e})=>{He(e.xystore,"xystore is not initialized");const{domNode:r,updateNodeInternals:n}=e.xystore.getState(),o=new Set(e.xyedges.flatMap(a=>[a.source,a.target]));if(o.size===0||!r)return;const i=new Map;for(const a of o){const l=r.querySelector(`.react-flow__node[data-id="${a}"]`);l&&i.set(a,{id:a,nodeElement:l,force:!0})}n(i,{triggerFitView:!1})},updateXYFlow:Bt(({context:e,event:r})=>{ht(r,"xyflow.init");let n=e.initialized;return n.xyflow||(n={...n,xyflow:!0}),{initialized:n,xyflow:r.instance,xystore:r.store}}),updateLayoutData:Bt(({context:e,event:r})=>{ht(r,"update.layoutData");const{xynodes:n,xyedges:o,bounds:i}=lYe(r.data);let a=e.initialized;return a.xydata||(a={...a,xydata:!0}),{initialized:a,xynodes:B2(e.xynodes,n),xyedges:ER(e.xyedges,o),bounds:Ir(e.bounds,i)?e.bounds:i}}),"open relationship source":rs(({system:e,event:r})=>{if(r.type!=="xyflow.edgeClick")return;const n=zr(e).diagramActorRef,o=r.edge.data.relationId;o&&n.send({type:"open.source",relation:o})})},guards:{isReady:({context:e})=>e.initialized.xydata&&e.initialized.xyflow,"enable: navigate.to":()=>!0}}).createMachine({initial:"initializing",context:({input:e})=>({subject:qee(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}},ai({type:"xyflow.updateNodeInternals"},{delay:50})],target:"ready"},{target:"initializing"}]},ready:{on:{"xyflow.edgeMouseEnter":{actions:[Bt({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?tr.setData(o,{hovered:!0,dimmed:!1}):n&&!o.selected?tr.setDimmed(o,"immediate"):o)}}),ua("undim.edges"),ua("dim.nonhovered.edges"),ai({type:"dim.nonhovered.edges"},{id:"dim.nonhovered.edges",delay:100})]},"xyflow.edgeMouseLeave":{actions:[Bt({xyedges:({context:e,event:r})=>e.xyedges.map(n=>n.id===r.edge.id?tr.setHovered(n,!1):n)}),ua("dim.nonhovered.edges"),ai({type:"undim.edges"},{id:"undim.edges",delay:400})]},"dim.nonhovered.edges":{actions:Bt({xyedges:({context:e})=>e.xyedges.map(r=>tr.setDimmed(r,r.data.hovered!==!0))})},"undim.edges":{actions:Bt({xyedges:({context:e})=>e.xyedges.some(r=>r.selected===!0)?e.xyedges.map(r=>tr.setDimmed(r,r.selected!==!0?r.data.dimmed||"immediate":!1)):e.xyedges.map(tr.setDimmed(!1))})},"xyflow.selectionChange":{actions:rs(({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",ua("fitDiagram"),ai({type:"fitDiagram",duration:0},{id:"fitDiagram",delay:50}),ai({type:"xyflow.updateNodeInternals"},{delay:75})]},"xyflow.init":{actions:"updateXYFlow"},"xyflow.applyNodeChanges":{actions:Bt({xynodes:({context:e,event:r})=>rw(r.changes,e.xynodes)})},"xyflow.applyEdgeChanges":{actions:Bt({xyedges:({context:e,event:r})=>nw(r.changes,e.xyedges)})},"xyflow.paneDblClick":{actions:"xyflow:fitDiagram"},"xyflow.edgeClick":{actions:"open relationship source"},"navigate.to":{actions:Bt({subject:({event:e})=>qee(e.params),viewId:({context:e,event:r})=>r.params.viewId??e.viewId})},close:{target:"closed"}},exit:Bt({xyedges:[],xynodes:[],initialized:{xydata:!1,xyflow:!1},xyflow:null,xystore:null})},closed:{type:"final"}},on:{fitDiagram:{actions:{type:"xyflow:fitDiagram",params:rp("event")}},"xyflow.resized":{actions:[ua("fitDiagram"),ai({type:"fitDiagram"},{id:"fitDiagram",delay:200})]},"xyflow.updateNodeInternals":{actions:"xyflow:updateNodeInternals"}}}),cYe=sYe;var Nd={},ft={},Uee=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},wg={},Wee;function RR(){if(Wee)return wg;Wee=1,Object.defineProperty(wg,"__esModule",{value:!0});function e(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof Uee<"u")return Uee}function r(){const i=e();if(i.__xstate__)return i.__xstate__}function n(i){if(typeof window>"u")return;const a=r();a&&a.register(i)}const o=i=>{if(typeof window>"u")return;const a=r();a&&a.register(i)};return wg.devToolsAdapter=o,wg.getGlobal=e,wg.registerService=n,wg}var Gee;function I2(){if(Gee)return ft;Gee=1;var e=RR();class r{constructor(ee){this._process=ee,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(ee){const oe={value:ee,next:null};if(this._current){this._last.next=oe,this._last=oe;return}this._current=oe,this._last=oe,this._active&&this.flush()}flush(){for(;this._current;){const ee=this._current;this._process(ee.value),this._current=ee.next}this._last=null}}const n=".",o="",i="",a="#",l="*",s="xstate.init",c="xstate.error",d="xstate.stop";function u(J,ee){return{type:`xstate.after.${J}.${ee}`}}function p(J,ee){return{type:`xstate.done.state.${J}`,output:ee}}function f(J,ee){return{type:`xstate.done.actor.${J}`,output:ee,actorId:J}}function m(J,ee){return{type:`xstate.error.actor.${J}`,error:ee,actorId:J}}function v(J){return{type:s,input:J}}function w(J){setTimeout(()=>{throw J})}const x=typeof Symbol=="function"&&Symbol.observable||"@@observable";function k(J,ee){const oe=_(J),ae=_(ee);return typeof ae=="string"?typeof oe=="string"?ae===oe:!1:typeof oe=="string"?oe in ae:Object.keys(oe).every(le=>le in ae?k(oe[le],ae[le]):!1)}function C(J){if(j(J))return J;const ee=[];let oe="";for(let ae=0;aetypeof ee>"u"||typeof ee=="string"?{target:ee}:ee)}function L(J){if(!(J===void 0||J===o))return A(J)}function H(J,ee,oe){const ae=typeof J=="object",le=ae?J:void 0;return{next:(ae?J.next:J)?.bind(le),error:(ae?J.error:ee)?.bind(le),complete:(ae?J.complete:oe)?.bind(le)}}function P(J,ee){return`${ee}.${J}`}function V(J,ee){const oe=ee.match(/^xstate\.invoke\.(\d+)\.(.*)/);if(!oe)return J.implementations.actors[ee];const[,ae,le]=oe,ve=J.getStateNodeById(le).config.invoke;return(Array.isArray(ve)?ve[ae]:ve).src}function B(J){return[...new Set([...J._nodes.flatMap(ee=>ee.ownEvents)])]}function F(J,ee){return`${J.sessionId}.${ee}`}let q=0;function G(J,ee){const oe=new Map,ae=new Map,le=new WeakMap,ve=new Set,De={},{clock:Fe,logger:rt}=ee,lt={schedule:(Ze,pt,vt,Lt,Mo=Math.random().toString(36).slice(2))=>{const uh={source:Ze,target:pt,event:vt,delay:Lt,id:Mo,startedAt:Date.now()},Vi=F(Ze,Mo);Ke._snapshot._scheduledEvents[Vi]=uh;const su=Fe.setTimeout(()=>{delete De[Vi],delete Ke._snapshot._scheduledEvents[Vi],Ke._relay(Ze,pt,vt)},Lt);De[Vi]=su},cancel:(Ze,pt)=>{const vt=F(Ze,pt),Lt=De[vt];delete De[vt],delete Ke._snapshot._scheduledEvents[vt],Lt!==void 0&&Fe.clearTimeout(Lt)},cancelAll:Ze=>{for(const pt in Ke._snapshot._scheduledEvents){const vt=Ke._snapshot._scheduledEvents[pt];vt.source===Ze&<.cancel(Ze,vt.id)}}},Ot=Ze=>{if(!ve.size)return;const pt={...Ze,rootId:J.sessionId};ve.forEach(vt=>vt.next?.(pt))},Ke={_snapshot:{_scheduledEvents:(ee?.snapshot&&ee.snapshot.scheduler)??{}},_bookId:()=>`x:${q++}`,_register:(Ze,pt)=>(oe.set(Ze,pt),Ze),_unregister:Ze=>{oe.delete(Ze.sessionId);const pt=le.get(Ze);pt!==void 0&&(ae.delete(pt),le.delete(Ze))},get:Ze=>ae.get(Ze),getAll:()=>Object.fromEntries(ae.entries()),_set:(Ze,pt)=>{const vt=ae.get(Ze);if(vt&&vt!==pt)throw new Error(`Actor with system ID '${Ze}' already exists.`);ae.set(Ze,pt),le.set(pt,Ze)},inspect:Ze=>{const pt=H(Ze);return ve.add(pt),{unsubscribe(){ve.delete(pt)}}},_sendInspectionEvent:Ot,_relay:(Ze,pt,vt)=>{Ke._sendInspectionEvent({type:"@xstate.event",sourceRef:Ze,actorRef:pt,event:vt}),pt._send(vt)},scheduler:lt,getSnapshot:()=>({_scheduledEvents:{...Ke._snapshot._scheduledEvents}}),start:()=>{const Ze=Ke._snapshot._scheduledEvents;Ke._snapshot._scheduledEvents={};for(const pt in Ze){const{source:vt,target:Lt,event:Mo,delay:uh,id:Vi}=Ze[pt];lt.schedule(vt,Lt,Mo,uh,Vi)}},_clock:Fe,_logger:rt};return Ke}let U=!1;const Y=1;let K=(function(J){return J[J.NotStarted=0]="NotStarted",J[J.Running=1]="Running",J[J.Stopped=2]="Stopped",J})({});const O={clock:{setTimeout:(J,ee)=>setTimeout(J,ee),clearTimeout:J=>clearTimeout(J)},logger:console.log.bind(console),devTools:!1};class W{constructor(ee,oe){this.logic=ee,this._snapshot=void 0,this.clock=void 0,this.options=void 0,this.id=void 0,this.mailbox=new r(this._process.bind(this)),this.observers=new Set,this.eventListeners=new Map,this.logger=void 0,this._processingStatus=K.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 ae={...O,...oe},{clock:le,logger:ve,parent:De,syncSnapshot:Fe,id:rt,systemId:lt,inspect:Ot}=ae;this.system=De?De.system:G(this,{clock:le,logger:ve}),Ot&&!De&&this.system.inspect(H(Ot)),this.sessionId=this.system._bookId(),this.id=rt??this.sessionId,this.logger=oe?.logger??this.system._logger,this.clock=oe?.clock??this.system._clock,this._parent=De,this._syncSnapshot=Fe,this.options=ae,this.src=ae.src??ee,this.ref=this,this._actorScope={self:this,id:this.id,sessionId:this.sessionId,logger:this.logger,defer:Ke=>{this._deferred.push(Ke)},system:this.system,stopChild:Ke=>{if(Ke._parent!==this)throw new Error(`Cannot stop child actor ${Ke.id} of ${this.id} because it is not a child`);Ke._stop()},emit:Ke=>{const Ze=this.eventListeners.get(Ke.type),pt=this.eventListeners.get("*");if(!Ze&&!pt)return;const vt=[...Ze?Ze.values():[],...pt?pt.values():[]];for(const Lt of vt)try{Lt(Ke)}catch(Mo){w(Mo)}},actionExecutor:Ke=>{const Ze=()=>{if(this._actorScope.system._sendInspectionEvent({type:"@xstate.action",actorRef:this,action:{type:Ke.type,params:Ke.params}}),!Ke.exec)return;const pt=U;try{U=!0,Ke.exec(Ke.info,Ke.params)}finally{U=pt}};this._processingStatus===K.Running?Ze():this._deferred.push(Ze)}},this.send=this.send.bind(this),this.system._sendInspectionEvent({type:"@xstate.actor",actorRef:this}),lt&&(this.systemId=lt,this.system._set(lt,this)),this._initState(oe?.snapshot??oe?.state),lt&&this._snapshot.status!=="active"&&this.system._unregister(this)}_initState(ee){try{this._snapshot=ee?this.logic.restoreSnapshot?this.logic.restoreSnapshot(ee,this._actorScope):ee:this.logic.getInitialSnapshot(this._actorScope,this.options?.input)}catch(oe){this._snapshot={status:"error",output:void 0,error:oe}}}update(ee,oe){this._snapshot=ee;let ae;for(;ae=this._deferred.shift();)try{ae()}catch(le){this._deferred.length=0,this._snapshot={...ee,status:"error",error:le}}switch(this._snapshot.status){case"active":for(const le of this.observers)try{le.next?.(ee)}catch(ve){w(ve)}break;case"done":for(const le of this.observers)try{le.next?.(ee)}catch(ve){w(ve)}this._stopProcedure(),this._complete(),this._doneEvent=f(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:oe,snapshot:ee})}subscribe(ee,oe,ae){const le=H(ee,oe,ae);if(this._processingStatus!==K.Stopped)this.observers.add(le);else switch(this._snapshot.status){case"done":try{le.complete?.()}catch(ve){w(ve)}break;case"error":{const ve=this._snapshot.error;if(!le.error)w(ve);else try{le.error(ve)}catch(De){w(De)}break}}return{unsubscribe:()=>{this.observers.delete(le)}}}on(ee,oe){let ae=this.eventListeners.get(ee);ae||(ae=new Set,this.eventListeners.set(ee,ae));const le=oe.bind(void 0);return ae.add(le),{unsubscribe:()=>{ae.delete(le)}}}start(){if(this._processingStatus===K.Running)return this;this._syncSnapshot&&this.subscribe({next:oe=>{oe.status==="active"&&this.system._relay(this,this._parent,{type:`xstate.snapshot.${this.id}`,snapshot:oe})},error:()=>{}}),this.system._register(this.sessionId,this),this.systemId&&this.system._set(this.systemId,this),this._processingStatus=K.Running;const ee=v(this.options.input);switch(this.system._sendInspectionEvent({type:"@xstate.event",sourceRef:this._parent,actorRef:this,event:ee}),this._snapshot.status){case"done":return this.update(this._snapshot,ee),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(oe){return this._snapshot={...this._snapshot,status:"error",error:oe},this._error(oe),this}return this.update(this._snapshot,ee),this.options.devTools&&this.attachDevTools(),this.mailbox.start(),this}_process(ee){let oe,ae;try{oe=this.logic.transition(this._snapshot,ee,this._actorScope)}catch(le){ae={err:le}}if(ae){const{err:le}=ae;this._snapshot={...this._snapshot,status:"error",error:le},this._error(le);return}this.update(oe,ee),ee.type===d&&(this._stopProcedure(),this._complete())}_stop(){return this._processingStatus===K.Stopped?this:(this.mailbox.clear(),this._processingStatus===K.NotStarted?(this._processingStatus=K.Stopped,this):(this.mailbox.enqueue({type:d}),this))}stop(){if(this._parent)throw new Error("A non-root actor cannot be stopped directly.");return this._stop()}_complete(){for(const ee of this.observers)try{ee.complete?.()}catch(oe){w(oe)}this.observers.clear()}_reportError(ee){if(!this.observers.size){this._parent||w(ee);return}let oe=!1;for(const ae of this.observers){const le=ae.error;oe||=!le;try{le?.(ee)}catch(ve){w(ve)}}this.observers.clear(),oe&&w(ee)}_error(ee){this._stopProcedure(),this._reportError(ee),this._parent&&this.system._relay(this,this._parent,m(this.id,ee))}_stopProcedure(){return this._processingStatus!==K.Running?this:(this.system.scheduler.cancelAll(this),this.mailbox.clear(),this.mailbox=new r(this._process.bind(this)),this._processingStatus=K.Stopped,this.system._unregister(this),this)}_send(ee){this._processingStatus!==K.Stopped&&this.mailbox.enqueue(ee)}send(ee){this.system._relay(void 0,this,ee)}attachDevTools(){const{devTools:ee}=this.options;ee&&(typeof ee=="function"?ee:e.devToolsAdapter)(this)}toJSON(){return{xstate$$type:Y,id:this.id}}getPersistedSnapshot(ee){return this.logic.getPersistedSnapshot(this._snapshot,ee)}[x](){return this}getSnapshot(){return this._snapshot}}function Z(J,...[ee]){return new W(J,ee)}const Q=Z;function ie(J,ee,oe,ae,{sendId:le}){const ve=typeof le=="function"?le(oe,ae):le;return[ee,{sendId:ve},void 0]}function te(J,ee){J.defer(()=>{J.system.scheduler.cancel(J.self,ee.sendId)})}function re(J){function ee(oe,ae){}return ee.type="xstate.cancel",ee.sendId=J,ee.resolve=ie,ee.execute=te,ee}function ue(J,ee,oe,ae,{id:le,systemId:ve,src:De,input:Fe,syncSnapshot:rt}){const lt=typeof De=="string"?V(ee.machine,De):De,Ot=typeof le=="function"?le(oe):le;let Ke,Ze;return lt&&(Ze=typeof Fe=="function"?Fe({context:ee.context,event:oe.event,self:J.self}):Fe,Ke=Z(lt,{id:Ot,src:De,parent:J.self,syncSnapshot:rt,systemId:ve,input:Ze})),[Gr(ee,{children:{...ee.children,[Ot]:Ke}}),{id:le,systemId:ve,actorRef:Ke,src:De,input:Ze},void 0]}function _e(J,{actorRef:ee}){ee&&J.defer(()=>{ee._processingStatus!==K.Stopped&&ee.start()})}function ce(...[J,{id:ee,systemId:oe,input:ae,syncSnapshot:le=!1}={}]){function ve(De,Fe){}return ve.type="xstate.spawnChild",ve.id=ee,ve.systemId=oe,ve.src=J,ve.input=ae,ve.syncSnapshot=le,ve.resolve=ue,ve.execute=_e,ve}function pe(J,ee,oe,ae,{actorRef:le}){const ve=typeof le=="function"?le(oe,ae):le,De=typeof ve=="string"?ee.children[ve]:ve;let Fe=ee.children;return De&&(Fe={...Fe},delete Fe[De.id]),[Gr(ee,{children:Fe}),De,void 0]}function xe(J,ee){if(ee){if(J.system._unregister(ee),ee._processingStatus!==K.Running){J.stopChild(ee);return}J.defer(()=>{J.stopChild(ee)})}}function je(J){function ee(oe,ae){}return ee.type="xstate.stopChild",ee.actorRef=J,ee.resolve=pe,ee.execute=xe,ee}const Be=je;function Je(J,ee,{stateValue:oe}){if(typeof oe=="string"&&Ht(oe)){const ae=J.machine.getStateNodeById(oe);return J._nodes.some(le=>le===ae)}return J.matches(oe)}function st(J){function ee(){return!1}return ee.check=Je,ee.stateValue=J,ee}function Le(J,{context:ee,event:oe},{guards:ae}){return!Et(ae[0],ee,oe,J)}function St(J){function ee(oe,ae){return!1}return ee.check=Le,ee.guards=[J],ee}function Ve(J,{context:ee,event:oe},{guards:ae}){return ae.every(le=>Et(le,ee,oe,J))}function qe(J){function ee(oe,ae){return!1}return ee.check=Ve,ee.guards=J,ee}function Xe(J,{context:ee,event:oe},{guards:ae}){return ae.some(le=>Et(le,ee,oe,J))}function It(J){function ee(oe,ae){return!1}return ee.check=Xe,ee.guards=J,ee}function Et(J,ee,oe,ae){const{machine:le}=ae,ve=typeof J=="function",De=ve?J:le.implementations.guards[typeof J=="string"?J:J.type];if(!ve&&!De)throw new Error(`Guard '${typeof J=="string"?J:J.type}' is not implemented.'.`);if(typeof De!="function")return Et(De,ee,oe,ae);const Fe={context:ee,event:oe},rt=ve||typeof J=="string"?void 0:"params"in J?typeof J.params=="function"?J.params({context:ee,event:oe}):J.params:void 0;return"check"in De?De.check(ae,Fe,De):De(Fe,rt)}const be=J=>J.type==="atomic"||J.type==="final";function ke(J){return Object.values(J.states).filter(ee=>ee.type!=="history")}function Ye(J,ee){const oe=[];if(ee===J)return oe;let ae=J.parent;for(;ae&&ae!==ee;)oe.push(ae),ae=ae.parent;return oe}function yt(J){const ee=new Set(J),oe=Tr(ee);for(const ae of ee)if(ae.type==="compound"&&(!oe.get(ae)||!oe.get(ae).length))ui(ae).forEach(le=>ee.add(le));else if(ae.type==="parallel"){for(const le of ke(ae))if(le.type!=="history"&&!ee.has(le)){const ve=ui(le);for(const De of ve)ee.add(De)}}for(const ae of ee){let le=ae.parent;for(;le;)ee.add(le),le=le.parent}return ee}function xt(J,ee){const oe=ee.get(J);if(!oe)return{};if(J.type==="compound"){const le=oe[0];if(le){if(be(le))return le.key}else return{}}const ae={};for(const le of oe)ae[le.key]=xt(le,ee);return ae}function Tr(J){const ee=new Map;for(const oe of J)ee.has(oe)||ee.set(oe,[]),oe.parent&&(ee.has(oe.parent)||ee.set(oe.parent,[]),ee.get(oe.parent).push(oe));return ee}function er(J,ee){const oe=yt(ee);return xt(J,Tr(oe))}function qt(J,ee){return ee.type==="compound"?ke(ee).some(oe=>oe.type==="final"&&J.has(oe)):ee.type==="parallel"?ke(ee).every(oe=>qt(J,oe)):ee.type==="final"}const Ht=J=>J[0]===a;function Kr(J,ee){return J.transitions.get(ee)||[...J.transitions.keys()].filter(oe=>{if(oe===l)return!0;if(!oe.endsWith(".*"))return!1;const ae=oe.split("."),le=ee.split(".");for(let ve=0;veae.length-oe.length).flatMap(oe=>J.transitions.get(oe))}function Gt(J){const ee=J.config.after;if(!ee)return[];const oe=ae=>{const le=u(ae,J.id),ve=le.type;return J.entry.push(lu(le,{id:ve,delay:ae})),J.exit.push(re(ve)),ve};return Object.keys(ee).flatMap(ae=>{const le=ee[ae],ve=typeof le=="string"?{target:le}:le,De=Number.isNaN(+ae)?ae:+ae,Fe=oe(De);return A(ve).map(rt=>({...rt,event:Fe,delay:De}))}).map(ae=>{const{delay:le}=ae;return{...ln(J,ae.event,ae),delay:le}})}function ln(J,ee,oe){const ae=L(oe.target),le=oe.reenter??!1,ve=oo(J,ae),De={...oe,actions:A(oe.actions),guard:oe.guard,target:ve,source:J,reenter:le,eventType:ee,toJSON:()=>({...De,source:`#${J.id}`,target:ve?ve.map(Fe=>`#${Fe.id}`):void 0})};return De}function Wn(J){const ee=new Map;if(J.config.on)for(const oe of Object.keys(J.config.on)){if(oe===i)throw new Error('Null events ("") cannot be specified as a transition key. Use `always: { ... }` instead.');const ae=J.config.on[oe];ee.set(oe,N(ae).map(le=>ln(J,oe,le)))}if(J.config.onDone){const oe=`xstate.done.state.${J.id}`;ee.set(oe,N(J.config.onDone).map(ae=>ln(J,oe,ae)))}for(const oe of J.invoke){if(oe.onDone){const ae=`xstate.done.actor.${oe.id}`;ee.set(ae,N(oe.onDone).map(le=>ln(J,ae,le)))}if(oe.onError){const ae=`xstate.error.actor.${oe.id}`;ee.set(ae,N(oe.onError).map(le=>ln(J,ae,le)))}if(oe.onSnapshot){const ae=`xstate.snapshot.${oe.id}`;ee.set(ae,N(oe.onSnapshot).map(le=>ln(J,ae,le)))}}for(const oe of J.after){let ae=ee.get(oe.eventType);ae||(ae=[],ee.set(oe.eventType,ae)),ae.push(oe)}return ee}function fn(J,ee){const oe=typeof ee=="string"?J.states[ee]:ee?J.states[ee.target]:void 0;if(!oe&&ee)throw new Error(`Initial state node "${ee}" not found on parent state node #${J.id}`);const ae={source:J,actions:!ee||typeof ee=="string"?[]:A(ee.actions),eventType:null,reenter:!1,target:oe?[oe]:[],toJSON:()=>({...ae,source:`#${J.id}`,target:oe?[`#${oe.id}`]:[]})};return ae}function oo(J,ee){if(ee!==void 0)return ee.map(oe=>{if(typeof oe!="string")return oe;if(Ht(oe))return J.machine.getStateNodeById(oe);const ae=oe[0]===n;if(ae&&!J.parent)return xs(J,oe.slice(1));const le=ae?J.key+oe:oe;if(J.parent)try{return xs(J.parent,le)}catch(ve){throw new Error(`Invalid transition definition for state node '${J.id}': +${ve.message}`)}else throw new Error(`Invalid target: "${oe}" is not a valid target from the root node. Did you mean ".${oe}"?`)})}function Yo(J){const ee=L(J.config.target);return ee?{target:ee.map(oe=>typeof oe=="string"?xs(J.parent,oe):oe)}:J.parent.initial}function jo(J){return J.type==="history"}function ui(J){const ee=Dl(J);for(const oe of ee)for(const ae of Ye(oe,J))ee.add(ae);return ee}function Dl(J){const ee=new Set;function oe(ae){if(!ee.has(ae)){if(ee.add(ae),ae.type==="compound")oe(ae.initial.target[0]);else if(ae.type==="parallel")for(const le of ke(ae))oe(le)}}return oe(J),ee}function Ao(J,ee){if(Ht(ee))return J.machine.getStateNodeById(ee);if(!J.states)throw new Error(`Unable to retrieve child state '${ee}' from '${J.id}'; no child states exist.`);const oe=J.states[ee];if(!oe)throw new Error(`Child state '${ee}' does not exist on '${J.id}'`);return oe}function xs(J,ee){if(typeof ee=="string"&&Ht(ee))try{return J.machine.getStateNodeById(ee)}catch{}const oe=C(ee).slice();let ae=J;for(;oe.length;){const le=oe.shift();if(!le.length)break;ae=Ao(ae,le)}return ae}function ws(J,ee){if(typeof ee=="string"){const le=J.states[ee];if(!le)throw new Error(`State '${ee}' does not exist on '${J.id}'`);return[J,le]}const oe=Object.keys(ee),ae=oe.map(le=>Ao(J,le)).filter(Boolean);return[J.machine.root,J].concat(ae,oe.reduce((le,ve)=>{const De=Ao(J,ve);if(!De)return le;const Fe=ws(De,ee[ve]);return le.concat(Fe)},[]))}function zc(J,ee,oe,ae){const le=Ao(J,ee).next(oe,ae);return!le||!le.length?J.next(oe,ae):le}function Pl(J,ee,oe,ae){const le=Object.keys(ee),ve=Ao(J,le[0]),De=ks(ve,ee[le[0]],oe,ae);return!De||!De.length?J.next(oe,ae):De}function lh(J,ee,oe,ae){const le=[];for(const ve of Object.keys(ee)){const De=ee[ve];if(!De)continue;const Fe=Ao(J,ve),rt=ks(Fe,De,oe,ae);rt&&le.push(...rt)}return le.length?le:J.next(oe,ae)}function ks(J,ee,oe,ae){return typeof ee=="string"?zc(J,ee,oe,ae):Object.keys(ee).length===1?Pl(J,ee,oe,ae):lh(J,ee,oe,ae)}function tu(J){return Object.keys(J.states).map(ee=>J.states[ee]).filter(ee=>ee.type==="history")}function Xo(J,ee){let oe=J;for(;oe.parent&&oe.parent!==ee;)oe=oe.parent;return oe.parent===ee}function Tc(J,ee){const oe=new Set(J),ae=new Set(ee);for(const le of oe)if(ae.has(le))return!0;for(const le of ae)if(oe.has(le))return!0;return!1}function _s(J,ee,oe){const ae=new Set;for(const le of J){let ve=!1;const De=new Set;for(const Fe of ae)if(Tc(Mr([le],ee,oe),Mr([Fe],ee,oe)))if(Xo(le.source,Fe.source))De.add(Fe);else{ve=!0;break}if(!ve){for(const Fe of De)ae.delete(Fe);ae.add(le)}}return Array.from(ae)}function ru(J){const[ee,...oe]=J;for(const ae of Ye(ee,void 0))if(oe.every(le=>Xo(le,ae)))return ae}function Ss(J,ee){if(!J.target)return[];const oe=new Set;for(const ae of J.target)if(jo(ae))if(ee[ae.id])for(const le of ee[ae.id])oe.add(le);else for(const le of Ss(Yo(ae),ee))oe.add(le);else oe.add(ae);return[...oe]}function Ko(J,ee){const oe=Ss(J,ee);if(!oe)return;if(!J.reenter&&oe.every(le=>le===J.source||Xo(le,J.source)))return J.source;const ae=ru(oe.concat(J.source));if(ae)return ae;if(!J.reenter)return J.source.machine.root}function Mr(J,ee,oe){const ae=new Set;for(const le of J)if(le.target?.length){const ve=Ko(le,oe);le.reenter&&le.source===ve&&ae.add(ve);for(const De of ee)Xo(De,ve)&&ae.add(De)}return[...ae]}function Pn(J,ee){if(J.length!==ee.size)return!1;for(const oe of J)if(!ee.has(oe))return!1;return!0}function Do(J,ee,oe,ae,le,ve){if(!J.length)return ee;const De=new Set(ee._nodes);let Fe=ee.historyValue;const rt=_s(J,De,Fe);let lt=ee;le||([lt,Fe]=za(lt,ae,oe,rt,De,Fe,ve,oe.actionExecutor)),lt=ho(lt,ae,oe,rt.flatMap(Ke=>Ke.actions),ve,void 0),lt=jc(lt,ae,oe,rt,De,ve,Fe,le);const Ot=[...De];lt.status==="done"&&(lt=ho(lt,ae,oe,Ot.sort((Ke,Ze)=>Ze.order-Ke.order).flatMap(Ke=>Ke.exit),ve,void 0));try{return Fe===ee.historyValue&&Pn(ee._nodes,De)?lt:Gr(lt,{_nodes:Ot,historyValue:Fe})}catch(Ke){throw Ke}}function Ml(J,ee,oe,ae,le){if(ae.output===void 0)return;const ve=p(le.id,le.output!==void 0&&le.parent?z(le.output,J.context,ee,oe.self):void 0);return z(ae.output,J.context,ve,oe.self)}function jc(J,ee,oe,ae,le,ve,De,Fe){let rt=J;const lt=new Set,Ot=new Set;sh(ae,De,Ot,lt),Fe&&Ot.add(J.machine.root);const Ke=new Set;for(const Ze of[...lt].sort((pt,vt)=>pt.order-vt.order)){le.add(Ze);const pt=[];pt.push(...Ze.entry);for(const vt of Ze.invoke)pt.push(ce(vt.src,{...vt,syncSnapshot:!!vt.onSnapshot}));if(Ot.has(Ze)){const vt=Ze.initial.actions;pt.push(...vt)}if(rt=ho(rt,ee,oe,pt,ve,Ze.invoke.map(vt=>vt.id)),Ze.type==="final"){const vt=Ze.parent;let Lt=vt?.type==="parallel"?vt:vt?.parent,Mo=Lt||Ze;for(vt?.type==="compound"&&ve.push(p(vt.id,Ze.output!==void 0?z(Ze.output,rt.context,ee,oe.self):void 0));Lt?.type==="parallel"&&!Ke.has(Lt)&&qt(le,Lt);)Ke.add(Lt),ve.push(p(Lt.id)),Mo=Lt,Lt=Lt.parent;if(Lt)continue;rt=Gr(rt,{status:"done",output:Ml(rt,ee,oe,rt.machine.root,Mo)})}}return rt}function sh(J,ee,oe,ae){for(const le of J){const ve=Ko(le,ee);for(const Fe of le.target||[])!jo(Fe)&&(le.source!==Fe||le.source!==ve||le.reenter)&&(ae.add(Fe),oe.add(Fe)),Li(Fe,ee,oe,ae);const De=Ss(le,ee);for(const Fe of De){const rt=Ye(Fe,ve);ve?.type==="parallel"&&rt.push(ve),Ra(ae,ee,oe,rt,!le.source.parent&&le.reenter?void 0:ve)}}}function Li(J,ee,oe,ae){if(jo(J))if(ee[J.id]){const le=ee[J.id];for(const ve of le)ae.add(ve),Li(ve,ee,oe,ae);for(const ve of le)Nl(ve,J.parent,ae,ee,oe)}else{const le=Yo(J);for(const ve of le.target)ae.add(ve),le===J.parent?.initial&&oe.add(J.parent),Li(ve,ee,oe,ae);for(const ve of le.target)Nl(ve,J.parent,ae,ee,oe)}else if(J.type==="compound"){const[le]=J.initial.target;jo(le)||(ae.add(le),oe.add(le)),Li(le,ee,oe,ae),Nl(le,J,ae,ee,oe)}else if(J.type==="parallel")for(const le of ke(J).filter(ve=>!jo(ve)))[...ae].some(ve=>Xo(ve,le))||(jo(le)||(ae.add(le),oe.add(le)),Li(le,ee,oe,ae))}function Ra(J,ee,oe,ae,le){for(const ve of ae)if((!le||Xo(ve,le))&&J.add(ve),ve.type==="parallel")for(const De of ke(ve).filter(Fe=>!jo(Fe)))[...J].some(Fe=>Xo(Fe,De))||(J.add(De),Li(De,ee,oe,J))}function Nl(J,ee,oe,ae,le){Ra(oe,ae,le,Ye(J,ee))}function za(J,ee,oe,ae,le,ve,De,Fe){let rt=J;const lt=Mr(ae,le,ve);lt.sort((Ke,Ze)=>Ze.order-Ke.order);let Ot;for(const Ke of lt)for(const Ze of tu(Ke)){let pt;Ze.history==="deep"?pt=vt=>be(vt)&&Xo(vt,Ke):pt=vt=>vt.parent===Ke,Ot??={...ve},Ot[Ze.id]=Array.from(le).filter(pt)}for(const Ke of lt)rt=ho(rt,ee,oe,[...Ke.exit,...Ke.invoke.map(Ze=>je(Ze.id))],De,void 0),le.delete(Ke);return[rt,Ot||ve]}function Ta(J,ee){return J.implementations.actions[ee]}function pi(J,ee,oe,ae,le,ve){const{machine:De}=J;let Fe=J;for(const rt of ae){const lt=typeof rt=="function",Ot=lt?rt:Ta(De,typeof rt=="string"?rt:rt.type),Ke={context:Fe.context,event:ee,self:oe.self,system:oe.system},Ze=lt||typeof rt=="string"?void 0:"params"in rt?typeof rt.params=="function"?rt.params({context:Fe.context,event:ee}):rt.params:void 0;if(!Ot||!("resolve"in Ot)){oe.actionExecutor({type:typeof rt=="string"?rt:typeof rt=="object"?rt.type:rt.name||"(anonymous)",info:Ke,params:Ze,exec:Ot});continue}const pt=Ot,[vt,Lt,Mo]=pt.resolve(oe,Fe,Ke,Ze,Ot,le);Fe=vt,"retryResolve"in pt&&ve?.push([pt,Lt]),"execute"in pt&&oe.actionExecutor({type:pt.type,info:Ke,params:Lt,exec:pt.execute.bind(null,oe,Lt)}),Mo&&(Fe=pi(Fe,ee,oe,Mo,le,ve))}return Fe}function ho(J,ee,oe,ae,le,ve){const De=ve?[]:void 0,Fe=pi(J,ee,oe,ae,{internalQueue:le,deferredActorIds:ve},De);return De?.forEach(([rt,lt])=>{rt.retryResolve(oe,Fe,lt)}),Fe}function Wr(J,ee,oe,ae){let le=J;const ve=[];function De(lt,Ot,Ke){oe.system._sendInspectionEvent({type:"@xstate.microstep",actorRef:oe.self,event:Ot,snapshot:lt,_transitions:Ke}),ve.push(lt)}if(ee.type===d)return le=Gr(Ac(le,ee,oe),{status:"stopped"}),De(le,ee,[]),{snapshot:le,microstates:ve};let Fe=ee;if(Fe.type!==s){const lt=Fe,Ot=I(lt),Ke=Dc(lt,le);if(Ot&&!Ke.length)return le=Gr(J,{status:"error",error:lt.error}),De(le,lt,[]),{snapshot:le,microstates:ve};le=Do(Ke,J,oe,Fe,!1,ae),De(le,lt,Ke)}let rt=!0;for(;le.status==="active";){let lt=rt?Fi(le,Fe):[];const Ot=lt.length?le:void 0;if(!lt.length){if(!ae.length)break;Fe=ae.shift(),lt=Dc(Fe,le)}le=Do(lt,le,oe,Fe,!1,ae),rt=le!==Ot,De(le,Fe,lt)}return le.status!=="active"&&Ac(le,Fe,oe),{snapshot:le,microstates:ve}}function Ac(J,ee,oe){return ho(J,ee,oe,Object.values(J.children).map(ae=>je(ae)),[],void 0)}function Dc(J,ee){return ee.machine.getTransitionData(ee,J)}function Fi(J,ee){const oe=new Set,ae=J._nodes.filter(be);for(const le of ae)e:for(const ve of[le].concat(Ye(le,void 0)))if(ve.always){for(const De of ve.always)if(De.guard===void 0||Et(De.guard,J.context,ee,J)){oe.add(De);break e}}return _s(Array.from(oe),new Set(J._nodes),J.historyValue)}function ja(J,ee){const oe=yt(ws(J,ee));return er(J,[...oe])}function nu(J){return!!J&&typeof J=="object"&&"machine"in J&&"value"in J}const Es=function(J){return k(J,this.value)},ou=function(J){return this.tags.has(J)},ch=function(J){const ee=this.machine.getTransitionData(this,J);return!!ee?.length&&ee.some(oe=>oe.target!==void 0||oe.actions.length)},Cs=function(){const{_nodes:J,tags:ee,machine:oe,getMeta:ae,toJSON:le,can:ve,hasTag:De,matches:Fe,...rt}=this;return{...rt,tags:Array.from(ee)}},$s=function(){return this._nodes.reduce((J,ee)=>(ee.meta!==void 0&&(J[ee.id]=ee.meta),J),{})};function Po(J,ee){return{status:J.status,output:J.output,error:J.error,machine:ee,context:J.context,_nodes:J._nodes,value:er(ee.root,J._nodes),tags:new Set(J._nodes.flatMap(oe=>oe.tags)),children:J.children,historyValue:J.historyValue||{},matches:Es,hasTag:ou,can:ch,getMeta:$s,toJSON:Cs}}function Gr(J,ee={}){return Po({...J,...ee},J.machine)}function iu(J){if(typeof J!="object"||J===null)return{};const ee={};for(const oe in J){const ae=J[oe];Array.isArray(ae)&&(ee[oe]=ae.map(le=>({id:le.id})))}return ee}function dh(J,ee){const{_nodes:oe,tags:ae,machine:le,children:ve,context:De,can:Fe,hasTag:rt,matches:lt,getMeta:Ot,toJSON:Ke,...Ze}=J,pt={};for(const vt in ve){const Lt=ve[vt];pt[vt]={snapshot:Lt.getPersistedSnapshot(ee),src:Lt.src,systemId:Lt.systemId,syncSnapshot:Lt._syncSnapshot}}return{...Ze,context:Aa(De),children:pt,historyValue:iu(Ze.historyValue)}}function Aa(J){let ee;for(const oe in J){const ae=J[oe];if(ae&&typeof ae=="object")if("sessionId"in ae&&"send"in ae&&"ref"in ae)ee??=Array.isArray(J)?J.slice():{...J},ee[oe]={xstate$$type:Y,id:ae.id};else{const le=Aa(ae);le!==ae&&(ee??=Array.isArray(J)?J.slice():{...J},ee[oe]=le)}}return ee??J}function au(J,ee,oe,ae,{event:le,id:ve,delay:De},{internalQueue:Fe}){const rt=ee.machine.implementations.delays;if(typeof le=="string")throw new Error(`Only event objects may be used with raise; use raise({ type: "${le}" }) instead`);const lt=typeof le=="function"?le(oe,ae):le;let Ot;if(typeof De=="string"){const Ke=rt&&rt[De];Ot=typeof Ke=="function"?Ke(oe,ae):Ke}else Ot=typeof De=="function"?De(oe,ae):De;return typeof Ot!="number"&&Fe.push(lt),[ee,{event:lt,id:ve,delay:Ot},void 0]}function Da(J,ee){const{event:oe,delay:ae,id:le}=ee;if(typeof ae=="number"){J.defer(()=>{const ve=J.self;J.system.scheduler.schedule(ve,ve,oe,ae,le)});return}}function lu(J,ee){function oe(ae,le){}return oe.type="xstate.raise",oe.event=J,oe.id=ee?.id,oe.delay=ee?.delay,oe.resolve=au,oe.execute=Da,oe}return ft.$$ACTOR_TYPE=Y,ft.Actor=W,ft.NULL_EVENT=i,ft.ProcessingStatus=K,ft.STATE_DELIMITER=n,ft.XSTATE_ERROR=c,ft.XSTATE_STOP=d,ft.and=qe,ft.cancel=re,ft.cloneMachineSnapshot=Gr,ft.createActor=Z,ft.createErrorActorEvent=m,ft.createInitEvent=v,ft.createInvokeId=P,ft.createMachineSnapshot=Po,ft.evaluateGuard=Et,ft.formatInitialTransition=fn,ft.formatTransition=ln,ft.formatTransitions=Wn,ft.getAllOwnEventDescriptors=B,ft.getAllStateNodes=yt,ft.getCandidates=Kr,ft.getDelayedTransitions=Gt,ft.getInitialStateNodes=Dl,ft.getPersistedSnapshot=dh,ft.getStateNodeByPath=xs,ft.getStateNodes=ws,ft.interpret=Q,ft.isInFinalState=qt,ft.isMachineSnapshot=nu,ft.isStateId=Ht,ft.macrostep=Wr,ft.mapValues=R,ft.matchesState=k,ft.microstep=Do,ft.not=St,ft.or=It,ft.pathToStateValue=$,ft.raise=lu,ft.resolveActionsAndContext=ho,ft.resolveReferencedActor=V,ft.resolveStateValue=ja,ft.spawnChild=ce,ft.stateIn=st,ft.stop=Be,ft.stopChild=je,ft.toArray=A,ft.toObserver=H,ft.toStatePath=C,ft.toTransitionConfigArray=N,ft.transitionNode=ks,ft}var Yee;function dYe(){if(Yee)return Nd;Yee=1,Object.defineProperty(Nd,"__esModule",{value:!0});var e=I2();return RR(),Nd.and=e.and,Nd.evaluateGuard=e.evaluateGuard,Nd.not=e.not,Nd.or=e.or,Nd.stateIn=e.stateIn,Nd}var Bd=dYe();const uYe=B3(({sendBack:e})=>{const r=$w([["Escape",n=>{n.stopPropagation(),e({type:"close"})},{preventDefault:!0}]]);return document.body.addEventListener("keydown",r,{capture:!0}),()=>{document.body.removeEventListener("keydown",r,{capture:!0})}}),pl=ns({actors:{relationshipDetails:cYe,elementDetails:aYe,relationshipsBrowser:Vee,hotkey:uYe},guards:{"has overlays?":({context:e})=>e.overlays.length>0,"close specific overlay?":({context:e,event:r})=>(ht(r,"close"),pw(r.actorId)&&e.overlays.some(n=>n.id===r.actorId)),"last: is relationshipDetails?":({context:e})=>dd(e.overlays)?.type==="relationshipDetails","last: is relationshipsBrowser?":({context:e})=>dd(e.overlays)?.type==="relationshipsBrowser"}}),pYe=()=>pl.enqueueActions(({context:e,enqueue:r})=>{if(e.overlays.length===0)return;const n=dd(e.overlays)?.id;n&&(r.sendTo(n,{type:"close"}),r.stopChild(n),r.assign({overlays:e.overlays.filter(o=>o.id!==n)}))}),hYe=()=>pl.enqueueActions(({context:e,enqueue:r,event:n})=>{ht(n,"close");const o=n.actorId;if(!pw(o))return;const i=e.overlays.find(a=>a.id===o)?.id;i&&(r.sendTo(i,{type:"close"}),r.stopChild(i),r.assign({overlays:e.overlays.filter(a=>a.id!==i)}))}),Xee=()=>pl.enqueueActions(({context:e,enqueue:r})=>{for(const{id:n}of U$e(e.overlays))r.sendTo(n,{type:"close"}),r.stopChild(n);r.assign({overlays:[]})}),fYe=()=>pl.enqueueActions(({context:e,enqueue:r,event:n})=>{if(ht(n,"open.elementDetails"),e.overlays.some(i=>i.type==="elementDetails"&&i.subject===n.subject))return;const o=`elementDetails-${e.seq}`;r.spawnChild("elementDetails",{id:o,input:n,syncSnapshot:!0}),r.assign({seq:e.seq+1,overlays:[...e.overlays,{id:o,type:"elementDetails",subject:n.subject}]})}),gYe=()=>pl.enqueueActions(({context:e,enqueue:r,event:n})=>{ht(n,"open.relationshipDetails");const o=dd(e.overlays);if(o?.type==="relationshipDetails"){r.sendTo(o.id,{...n,type:"navigate.to"});return}const i=`relationshipDetails-${e.seq}`;r.spawnChild("relationshipDetails",{id:i,input:n,syncSnapshot:!0}),r.assign({seq:e.seq+1,overlays:[...e.overlays,{id:i,type:"relationshipDetails"}]})}),mYe=()=>pl.enqueueActions(({context:e,enqueue:r,event:n})=>{ht(n,"open.relationshipsBrowser");const o=dd(e.overlays);if(o?.type==="relationshipsBrowser"){r.sendTo(o.id,{type:"navigate.to",subject:n.subject,viewId:n.viewId});return}const i=`relationshipsBrowser-${e.seq}`;r.spawnChild("relationshipsBrowser",{id:i,input:n,syncSnapshot:!0}),r.assign({seq:e.seq+1,overlays:[...e.overlays,{id:i,type:"relationshipsBrowser",subject:n.subject}]})}),Kee=()=>pl.enqueueActions(({enqueue:e,event:r})=>{switch(ht(r,["open.elementDetails","open.relationshipDetails","open.relationshipsBrowser"]),r.type){case"open.elementDetails":e(fYe());break;case"open.relationshipDetails":e(gYe());break;case"open.relationshipsBrowser":e(mYe());break}}),yYe=()=>pl.spawnChild("hotkey",{id:"hotkey"}),Zee=()=>pl.stopChild("hotkey"),Qee=()=>pl.enqueueActions(({enqueue:e,context:r})=>{r.overlays.length===0&&e.raise({type:"close"})}),vYe=pl.createMachine({id:"overlays",context:()=>({seq:1,overlays:[]}),initial:"idle",states:{idle:{on:{"open.*":{actions:Kee(),target:"active"}}},active:{entry:[yYe()],exit:[Zee()],on:{"open.*":{actions:Kee()},close:[{guard:Bd.not("has overlays?"),target:"idle"},{guard:"close specific overlay?",actions:[hYe(),Qee()]},{actions:[pYe(),Qee()]}],"close.all":{actions:[Xee()],target:"idle"}}},final:{entry:[Xee(),Zee()],type:"final"}}}),bYe=vYe,xYe=ns({actions:{"change searchValue":Bt({searchValue:({event:e,context:r})=>(ht(e,["change.search","open"]),e.search??r.searchValue)}),"reset pickViewFor":Bt({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:[Bt({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:Bt({pickViewFor:({event:e})=>e.elementFqn})}}},pickView:{on:{"pickview.close":{target:"opened",actions:"reset pickViewFor"}}}}}),wYe=xYe,kYe=B3(({sendBack:e})=>{const r=$w([["Escape",o=>{o.stopPropagation(),e({type:"key.esc"})},{preventDefault:!0}]]),n=$w([["ArrowLeft",o=>{o.stopPropagation(),e({type:"key.arrow.left"})},{preventDefault:!0}],["ArrowUp",o=>{o.stopPropagation(),e({type:"key.arrow.up"})},{preventDefault:!0}],["ArrowRight",o=>{o.stopPropagation(),e({type:"key.arrow.right"})},{preventDefault:!0}],["ArrowDown",o=>{o.stopPropagation(),e({type:"key.arrow.down"})},{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})}}),_Ye=B3(({sendBack:e})=>{const r=()=>{e({type:"media.print.on"})},n=()=>{e({type:"media.print.off"})};return window.addEventListener("beforeprint",r),window.addEventListener("afterprint",n),()=>{window.removeEventListener("beforeprint",r),window.removeEventListener("afterprint",n)}}),O2=e=>{let r=e.toggledFeatures;const n=Zn(e.activeWalkthrough),o=e.features.enableCompareWithLatest&&(r.enableCompareWithLatest??!1)&&Zn(e.view._layout)&&!n,i=e.features.enableReadOnly||(r.enableReadOnly??!1)||n||e.dynamicViewVariant==="sequence"&&e.view._type==="dynamic"||o&&e.view._layout==="auto";return{enableCompareWithLatest:o,enableReadOnly:i}},zR=e=>O2(e).enableReadOnly,Qe=ns({actors:{hotkeyActorLogic:kYe,overlaysActorLogic:bYe,searchActorLogic:wYe,mediaPrintActorLogic:_Ye,editorActor:Aee},guards:{isReady:({context:e})=>e.initialized.xydata&&e.initialized.xyflow,"enabled: Editor":({context:e})=>e.features.enableEditor,"enabled: FitView":({context:e})=>e.features.enableFitView,"enabled: FocusMode":({context:e})=>e.features.enableFocusMode&&zR(e),"enabled: Readonly":({context:e})=>zR(e),"enabled: RelationshipDetails":({context:e})=>e.features.enableRelationshipDetails,"enabled: Search":({context:e})=>e.features.enableSearch,"enabled: ElementDetails":({context:e})=>e.features.enableElementDetails,"enabled: OpenSource":({context:e})=>e.features.enableVscode,"enabled: DynamicViewWalkthrough":({context:e})=>e.features.enableDynamicViewWalkthrough,"focus.node: autoUnfocus":({event:e})=>(ht(e,"focus.node"),e.autoUnfocus===!0),"enabled: Overlays":({context:e})=>e.features.enableElementDetails||e.features.enableRelationshipBrowser||e.features.enableRelationshipDetails,"not readonly":({context:e})=>!zR(e),"is dynamic view":({context:e})=>e.view._type==="dynamic","is same view":({context:e,event:r})=>{if(ht(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;Qo(r.type)},"is another view":({context:e,event:r})=>{if(ht(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;Qo(r.type)},"click: node has modelFqn":({event:e})=>(ht(e,"xyflow.nodeClick"),"modelFqn"in e.node.data),"click: selected node":({event:e})=>(ht(e,"xyflow.nodeClick"),e.node.selected===!0),"click: same node":({context:e,event:r})=>(ht(r,"xyflow.nodeClick"),e.lastClickedNode?.id===r.node.id),"click: focused node":({context:e,event:r})=>(ht(r,"xyflow.nodeClick"),e.focusedNode===r.node.id),"click: node has connections":({context:e,event:r})=>(ht(r,"xyflow.nodeClick"),e.xyedges.some(n=>n.source===r.node.id||n.target===r.node.id)),"click: selected edge":({event:e})=>(ht(e,["xyflow.edgeClick","xyflow.edgeDoubleClick"]),e.edge.selected===!0||e.edge.data.active===!0)}}),zn={idle:"#idle",focused:"#focused",walkthrough:"#walkthrough",printing:"#printing",navigating:"#navigating"},SYe=[["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"}]],Jee=wt("outline","lock-open-2","LockOpen2",SYe),EYe=[["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"}]],CYe=wt("outline","lock","Lock",EYe),$Ye=e=>{const r=O2(e).enableCompareWithLatest&&!!e.view.drifts&&e.view._layout==="auto",n=e.view._type==="dynamic"&&e.dynamicViewVariant==="sequence",o=!Zn(e.activeWalkthrough);return{visible:e.features.enableEditor&&o,disabled:r||n,isReadOnly:e.toggledFeatures.enableReadOnly??!1}},RYe=()=>{const{visible:e,disabled:r,isReadOnly:n}=pa($Ye),o=Mt();return y.jsx(Cn,{mode:"popLayout",children:e&&y.jsxs(pr,{component:wa,layout:"position",layoutDependency:n,disabled:r,onClick:i=>{i.stopPropagation(),!r&&o.toggleFeature("ReadOnly")},initial:{opacity:0,scale:.6},animate:{opacity:1,scale:r?.95:1},exit:{opacity:0,scale:.6},whileTap:{translateY:1},className:Ge("group",qn({gap:"0.5",paddingInline:"xxs",paddingBlock:"xxs",userSelect:"none",layerStyle:"likec4.panel.action",backgroundColor:{base:"none",_notDisabled:{_hover:"likec4.panel.action.bg.hover"}}})),children:[y.jsx(Jee,{size:14,stroke:2,style:{display:n?"none":void 0}}),y.jsx(CYe,{size:14,stroke:2,style:{display:n?void 0:"none"}}),y.jsx(Rr,{className:fe({fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8}),style:{display:n?"block":"none"},children:"Edit"})]})})},zYe=[["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"}]],TYe=wt("filled","player-play-filled","PlayerPlayFilled",zYe),ete=S.forwardRef((e,r)=>y.jsx(Vn,{variant:"filled",size:"xs",fw:"500",...e,ref:r,component:wa,whileTap:{scale:.95},layout:"position",layoutId:"trigger-dynamic-walkthrough",className:fe({flexShrink:0})}));function jYe(){const{enableReadOnly:e,enableCompareWithLatest:r}=sr(),n=Mt(),o=g0();let i="Start Dynamic View Walkthrough";switch(!0){case!e:i="Walkthrough not available in Edit mode";break;case r:i="Walkthrough not available when Compare is active";break}return y.jsx(bee,{label:i,children:y.jsx(ete,{onClick:a=>{a.stopPropagation(),o.closeDropdown(),n.startWalkthrough()},initial:{opacity:0,scale:.6,translateX:-10},animate:{opacity:1,scale:1,translateX:0},exit:{opacity:0,translateX:-20},size:"compact-xs",h:26,disabled:!e||r,classNames:{label:fe({display:{base:"none","@/md":"inherit"}}),section:fe({marginInlineStart:{base:"0","@/md":"2"}})},rightSection:y.jsx(TYe,{size:10}),children:"Start"})})}const AYe=S.forwardRef(({value:e,onChange:r},n)=>y.jsx(Rr,{ref:n,layout:"position",children:y.jsx(Of,{size:"xs",value:e,component:Rr,onChange:o=>{He(o==="diagram"||o==="sequence","Invalid dynamic view variant"),r(o)},classNames:{label:fe({fontSize:"xxs"})},data:[{value:"diagram",label:"Diagram"},{value:"sequence",label:"Sequence"}]})}));function DYe(){const e=pa(n=>n.dynamicViewVariant),r=Mt();return y.jsxs(Cn,{children:[y.jsx(AYe,{value:e,onChange:n=>{r.switchDynamicViewVariant(n)}}),y.jsx(jYe,{},"trigger-dynamic-walkthrough")]})}const tte=S.memo(()=>{const{enableSearch:e,enableCompareWithLatest:r}=sr(),n=Mt(),o=lf();return y.jsx(Cn,{children:e&&!r&&y.jsxs(pr,{component:wa,layout:"position",onClick:i=>{i.stopPropagation(),n.openSearch()},whileTap:{scale:.95,translateY:1},className:Ge("group",qn({gap:"xxs",paddingInline:"sm",paddingBlock:"xxs",userSelect:"none",layerStyle:"likec4.panel.action.filled",display:{base:"none","@/md":"flex"}})),children:[y.jsx(gR,{size:14,stroke:2.5}),y.jsx(hr,{css:{fontSize:"11px",fontWeight:600,lineHeight:1,opacity:.8,whiteSpace:"nowrap"},children:o?"⌘ + K":"Ctrl + K"})]})})});tte.displayName="SearchControl";const PYe=({context:e})=>{const r=e.view.drifts??null;if(!e.features.enableCompareWithLatest||!r||r.length===0)return{hasEditor:!1,isEnabled:!1,isEditable:!1,isActive:!1,drifts:[],canApplyLatest:!1,layout:e.view._layout??"auto"};const{enableCompareWithLatest:n,enableReadOnly:o}=O2(e);return{hasEditor:e.features.enableEditor,isEnabled:!0,isEditable:!o,isActive:n===!0,drifts:r,canApplyLatest:!r.includes("type-changed"),layout:e.view._layout??"auto"}};function TR(){const e=Xf(),r=pn(e,PYe,Ir),n=at(l=>{if(!r.isEnabled){console.warn("Compare with latest feature is not enabled");return}e.send({type:"emit.onLayoutTypeChange",layoutType:l})}),o=at(l=>{if(!r.isEnabled){console.warn("Compare with latest feature is not enabled");return}const s=l?l==="on":!r.isActive;r.isActive&&!s&&r.layout==="auto"&&n("manual"),e.send({type:"toggle.feature",feature:"CompareWithLatest",forceValue:s})}),i=at(()=>{if(!r.isEnabled){console.warn("Compare with latest feature is not enabled");return}e.send({type:"layout.resetManualLayout"})}),a=at(()=>{if(!r.isEnabled){console.warn("Compare with latest feature is not enabled");return}gt(e.system?.get("editor"),"editor actor not found").send({type:"applyLatestToManual"}),r.isActive&&e.send({type:"toggle.feature",feature:"CompareWithLatest",forceValue:!1})});return[r,{toggleCompare:o,switchLayout:n,resetManualLayout:i,applyLatestToManual:a}]}const MYe=[["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"}]],rte=wt("outline","alert-triangle","AlertTriangle",MYe),nte=S.memo(()=>{const[e,{toggleCompare:r}]=TR(),n=bg(),{drifts:o,isActive:i,isEnabled:a}=e;return y.jsx(Cn,{propagate:!0,children:a&&!i&&y.jsxs(Bf,{position:"bottom-start",openDelay:600,closeDelay:200,floatingStrategy:"absolute",offset:{mainAxis:4,crossAxis:-22},...n,children:[y.jsx(AS,{children:y.jsx(pr,{component:wa,layout:"position",onClick:l=>{l.stopPropagation(),r()},whileTap:{scale:.95,translateY:1},className:Ge("group",eQ({variant:"filled",type:"warning"}),qn({gap:"xxs",padding:"1.5",rounded:"sm",userSelect:"none",cursor:"pointer",fontSize:"xs",fontWeight:600})),children:i?y.jsx(y.Fragment,{children:"Stop Compare"}):y.jsx(rte,{size:18})})}),y.jsx(TS,{p:"0",children:y.jsxs(xy,{color:"orange",withBorder:!1,withCloseButton:!1,title:"View is out of sync",children:[y.jsx(it,{mt:2,size:"sm",lh:"xs",children:"Model has changed since this view was last updated."}),y.jsxs(it,{mt:4,size:"sm",lh:"xs",children:["Detected changes:",o.map(l=>y.jsxs(S.Fragment,{children:[y.jsx("br",{}),y.jsxs("span",{children:["- ",l]})]},l))]}),y.jsx(Vn,{mt:"xs",size:"compact-sm",variant:"default",onClick:l=>{l.stopPropagation(),r()},children:"Compare with current state"})]})})]})})});nte.displayName="ManualLayoutWarning";const NYe=({context:e})=>{const r=e.view,n=e.viewModel?.folder;return{folders:!n||n.isRoot?[]:n.breadcrumbs.map(o=>({folderPath:o.path,title:o.title})),viewId:r.id,viewTitle:e.viewModel?.title??(r.title&&n7(r.title))??"Untitled View",isDynamicView:(e.viewModel?._type??r._type)==="dynamic"}},ote=S.memo(()=>{const e=g0(),{enableNavigationButtons:r,enableDynamicViewWalkthrough:n}=sr(),{folders:o,viewTitle:i,isDynamicView:a}=pn(e.actorRef,NYe,tt),l=o.flatMap(({folderPath:c,title:d},u)=>[y.jsx(pr,{component:wa,className:Ge(M2({dimmed:!0,truncate:!0}),"mantine-active",fe({userSelect:"none",maxWidth:"200px",display:{base:"none","@/md":"block"}})),initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},title:d,onMouseEnter:()=>e.send({type:"breadcrumbs.mouseEnter.folder",folderPath:c}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave.folder",folderPath:c}),onClick:p=>{p.stopPropagation(),e.send({type:"breadcrumbs.click.folder",folderPath:c})},children:d},c),y.jsx(xee,{},`separator-${u}`)]),s=y.jsx(pr,{component:wa,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:Ge("mantine-active",M2({truncate:!0}),fe({userSelect:"none"})),title:i,onMouseEnter:()=>e.send({type:"breadcrumbs.mouseEnter.viewtitle"}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave.viewtitle"}),onClick:c=>{c.stopPropagation(),e.send({type:"breadcrumbs.click.viewtitle"})},children:i},"view-title");return y.jsxs(Cn,{propagate:!0,mode:"popLayout",children:[y.jsx(_Ge,{},"burger-button"),r&&y.jsx(CGe,{},"nav-buttons"),y.jsxs(Rr,{layout:"position",className:qn({gap:"1",flexShrink:1,flexGrow:1,overflow:"hidden"}),children:[l,s]},"breadcrumbs"),y.jsxs(Rr,{layout:"position",className:qn({gap:"0.5",flexGrow:0,_empty:{display:"none"}}),children:[y.jsx(TGe,{onOpen:()=>e.closeDropdown()}),y.jsx(MGe,{}),y.jsx(RYe,{})]},"actions"),n&&a&&y.jsx(DYe,{},"dynamic-view-controls"),y.jsx(tte,{},"search-control"),y.jsx(nte,{},"outdated-manual-layout-warning")]})});ote.displayName="NavigationPanelControls";const jR=S.forwardRef(({className:e,truncateLabel:r=!0,...n},o)=>y.jsx(IS,{...n,component:"button",classNames:CVe({truncateLabel:r}),className:Ge("group","mantine-active",e),ref:o}));jR.displayName="NavigationLink";const BYe=S.createContext(null),IYe=[],OYe=()=>{},LYe={projects:IYe,onProjectChange:OYe};function FYe(){return S.useContext(BYe)??LYe}function VYe(){const e=S.useContext(Sy);if(!e)throw new Error("No LikeC4ModelProvider found");return e.projectId}const qYe=S.memo(e=>{const{projects:r,onProjectChange:n}=FYe(),o=VYe();return r.length<=1?null:y.jsxs(Or,{gap:"0.5",alignItems:"baseline",children:[y.jsx(hr,{css:{fontWeight:"400",fontSize:"xxs",color:"likec4.panel.text.dimmed",userSelect:"none"},children:"Project"}),y.jsxs(tn,{withinPortal:!1,shadow:"md",position:"bottom-start",offset:{mainAxis:2},children:[y.jsx(w3,{children:y.jsx(Vn,{tabIndex:-1,autoFocus:!1,variant:"subtle",size:"compact-xs",color:"gray",classNames:{root:fe({fontWeight:"400",fontSize:"xxs",height:"auto",lineHeight:1.1,color:{_light:"mantine.colors.gray[9]"}}),section:fe({'&:is([data-position="right"])':{marginInlineStart:"1"}})},rightSection:y.jsx(a$,{opacity:.5,size:12,stroke:1.5}),children:o})}),y.jsx(vy,{children:r.map(({id:i,title:a})=>y.jsx(by,{onClick:l=>{if(o===i){l.stopPropagation();return}n(i)},children:a??i},i))})]})]})}),HYe=[["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"}]],UYe=wt("filled","direction-sign-filled","DirectionSignFilled",HYe),WYe=[["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"}]],GYe=wt("filled","star-filled","StarFilled",WYe),YYe=[["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"}]],XYe=wt("filled","folder-filled","FolderFilled",YYe),ite=iy({siblingSelector:"[data-likec4-focusable]",parentSelector:"[data-likec4-breadcrumbs-dropdown]",activateOnFocus:!1,loop:!0,orientation:"vertical"});function KYe(e){return e.context.searchQuery.trim().length>=2}const ate=S.memo(()=>{const e=g0(),r=wR(KYe);ji("paneClick",()=>{e.closeDropdown()}),ji("nodeClick",()=>{e.closeDropdown()}),ji("edgeClick",()=>{e.closeDropdown()});const n=Eze(o=>{e.send({type:"searchQuery.change",value:o})},250);return y.jsxs(Qs,{className:Ge("nowheel",Ey({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(qYe,{}),y.jsx(Or,{gap:"xs",children:y.jsx(sXe,{defaultValue:e.actorRef.getSnapshot().context.searchQuery,onChange:n})}),y.jsx(oi,{scrollbars:"x",type:"auto",offsetScrollbars:"present",classNames:{root:fe({maxWidth:["calc(100vw - 50px)","calc(100cqw - 50px)"]})},styles:{viewport:{overscrollBehavior:"none"}},children:r?y.jsx(JYe,{}):y.jsx(iXe,{})})]})});ate.displayName="NavigationPanelDropdown";function ZYe(e){return mx(e.context.searchQuery)}const QYe=JN(_i),JYe=S.memo(()=>{const e=Fo(),r=g0(),n=pn(r.actorRef,ZYe),o=S.useDeferredValue(n),i=o.includes(_i),a=i?o.split(_i):o,[l,s]=S.useState([]);return S.useEffect(()=>{s(c=>{const d=Jr(e.views(),Is(u=>i&&u.$view.title?mx(u.$view.title).toLowerCase().includes(o):u.id.toLowerCase().includes(o)||!!u.title?.toLowerCase().includes(o)),j5e(20),C1(),G$e((u,p)=>QYe(u.folder.path,p.folder.path)));return Ir(d,c)?c:d})},[e,o,i]),l.length===0?y.jsx("div",{children:"no results"}):y.jsx(oi,{scrollbars:"xy",offsetScrollbars:!1,className:fe({width:"100%",maxWidth:["calc(100vw - 250px)","calc(100cqw - 250px)"],maxHeight:["calc(100vh - 200px)","calc(100cqh - 200px)"]}),children:y.jsx(hp,{gap:"0.5",children:l.map(c=>y.jsx(tXe,{view:c,highlight:a,onClick:d=>{d.stopPropagation(),r.selectView(c.id)},"data-likec4-focusable":!0,onKeyDown:ite},c.id))})})}),eXe=qn({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!"}}),lte=fe({_groupFocus:{color:"[inherit!]",transition:"none"}});function tXe({view:e,highlight:r,...n}){const o=e.folder,i=cte[e.id==="index"?"index":e._type],a=y.jsx(tc,{component:"div",className:Ge(lte,M2({truncate:!0}),fe({"& > 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=Ge(n.className,"group",eXe);if(o.isRoot)return y.jsxs(pr,{...n,className:l,children:[i,a]});const s=o.breadcrumbs.map(c=>y.jsx(tc,{component:"div",className:Ge(fe({_groupHover:{color:"mantine.colors.dimmed"}}),lte,M2({dimmed:!0,truncate:!0})),maw:170,highlight:i9(r)?r:[],children:c.title},c.path));return s.push(y.jsxs(Or,{gap:"[4px]",children:[i,a]})),y.jsxs(pr,{...n,className:l,children:[ste,y.jsx(y3,{separator:y.jsx(Dd,{size:12,stroke:1.5}),separatorMargin:3,children:s})]})}const rXe=y.jsx(Dd,{size:12,stroke:1.5,className:"mantine-rotate-rtl"}),ste=y.jsx(XYe,{size:16,className:fe({opacity:{base:.3,_groupHover:.5,_groupActive:.5,_groupFocus:.5}})}),L2=fe({opacity:{base:.3,_dark:.5,_groupHover:.8,_groupActive:.8,_groupFocus:.8}}),cte={index:y.jsx(GYe,{size:16,className:L2}),element:y.jsx(ba,{size:18,stroke:2,className:L2}),deployment:y.jsx(aR,{size:16,stroke:1.5,className:L2}),dynamic:y.jsx(UYe,{size:18,className:L2})},nXe=oi.withProps({scrollbars:"y",className:fe({maxHeight:["calc(100vh - 160px)","calc(100cqh - 160px)"]})});function dte(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 oXe=e=>{const r=e.viewModel;if(!r)return[];const n=r.$model,o=[dte(n.rootViewFolder,e)],i=n.viewFolder(e.selectedFolder);if(!i.isRoot)for(const a of i.breadcrumbs)o.push(dte(a,e));return o},iXe=S.memo(()=>{const e=xGe(oXe,tt);return y.jsx(Or,{gap:"xs",alignItems:"stretch",children:e.flatMap((r,n)=>[n>0&&y.jsx(sp,{orientation:"vertical"},"divider"+n),y.jsx(aXe,{data:r,isLast:n>0&&n==e.length-1},r.folderPath)])})});function aXe({data:e,isLast:r}){const n=S.useRef(null),o=xR(),i=a=>l=>{l.stopPropagation(),a.type==="folder"?o.send({type:"select.folder",folderPath:a.folderPath}):o.send({type:"select.view",viewId:a.viewId})};return Qke(()=>{r&&n.current&&n.current.scrollIntoView({block:"nearest",inline:"nearest",behavior:"smooth"})}),y.jsx(hr,{mb:"1",ref:n,children:y.jsx(nXe,{children:y.jsx(hp,{gap:"0.5",children:e.items.map((a,l)=>y.jsx(lXe,{columnItem:a,onClick:i(a)},`${e.folderPath}/${a.type}/${l}`))})})})}function lXe({columnItem:e,...r}){switch(e.type){case"folder":return y.jsx(jR,{variant:"light",active:e.selected,label:e.title,leftSection:ste,rightSection:rXe,maw:"300px",miw:"200px",...r},e.folderPath);case"view":return y.jsx(jR,{variant:"filled",active:e.selected,label:e.title,description:e.description,leftSection:cte[e.viewType],maw:"300px",miw:"200px",...r},e.viewId);default:Qo(e)}}function sXe(e){const[r,n]=Ys({...e,finalValue:""});return y.jsx(zi,{size:"xs",placeholder:"Search by title or id",variant:"unstyled",height:$e(26),value:r,onKeyDown:ite,onChange:o=>n(o.currentTarget.value),"data-likec4-focusable":!0,classNames:{wrapper:fe({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:fe({_placeholder:{color:"mantine.colors.dimmed"},_focus:{outline:"none"}})},style:{"--input-fz":"var(--mantine-font-size-sm)"},leftSection:y.jsx(gR,{size:14}),rightSectionPointerEvents:"all",rightSectionWidth:"min-content",rightSection:!e.value||tp(e.value)?null:y.jsx(Vn,{variant:"subtle",h:"100%",size:"compact-xs",color:"gray",onClick:o=>{o.stopPropagation(),n("")},children:"clear"})})}const cXe=Ed("div",{base:{fontSize:"xs",color:"mantine.colors.dimmed",fontWeight:500,userSelect:"none",mb:"xxs"}});function dXe(e){const r=_$e(e.activeWalkthrough),n=r?e.xyedges.findIndex(o=>o.id===e.activeWalkthrough?.stepId):-1;return{isActive:r,isParallel:r&&Zn(e.activeWalkthrough?.parallelPrefix),hasNext:r&&n0,notes:r?e.xyedges[n]?.data?.notes??null:null}}const uXe=S.memo(()=>{const{isActive:e,notes:r}=pa(dXe),n=r?ur.from(r):ur.EMPTY;return y.jsx(Cn,{children:e&&!n.isEmpty&&y.jsx(ga.div,{layout:"position",className:fe({position:"relative"}),initial:{opacity:0,translateX:-20},animate:{opacity:1,translateX:0},exit:{opacity:0,translateX:-20},children:y.jsxs(oi,{className:Ey({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(cXe,{children:"Notes"}),y.jsx(zp,{value:n,fontSize:"sm",emptyText:"No description",className:fe({userSelect:"all"})})]})})})});function pXe({disabled:e=!1,onApplyLatestToManual:r,onResetManualLayout:n}){return y.jsxs(tn,{withinPortal:!1,floatingStrategy:"absolute",shadow:"lg",position:"bottom-start",offset:{mainAxis:4},disabled:e,children:[y.jsx(tn.Target,{children:y.jsxs(pr,{disabled:e,className:Ge("mantine-active",qn({gap:"2",py:"1.5",px:"2",lineHeight:"1",textStyle:"xs",fontWeight:"medium",layerStyle:"likec4.panel.action",userSelect:"none"})),children:[y.jsx(hr,{children:"Actions"}),y.jsx(a$,{size:12,stroke:2,opacity:.7})]})}),y.jsxs(tn.Dropdown,{children:[y.jsxs(tn.Item,{disabled:!r,onClick:r,rightSection:r&&y.jsx(_n,{onClick:nn,position:"right-start",label:y.jsxs(y.Fragment,{children:["Applies changes from the latest auto-layouted",y.jsx("br",{}),"to saved snapshot, preserving (as possible)",y.jsx("br",{}),"manual adjustments.",y.jsx("br",{}),y.jsx("br",{}),"You can undo this action."]}),children:y.jsx(r0,{size:14,stroke:1.7,opacity:.5})}),children:["Sync with latest",!r&&y.jsx(hr,{textStyle:"xs",children:"view type is changed"})]}),y.jsx(tn.Item,{onClick:n,children:"Remove manual layout"})]})]})}function hXe({value:e,onChange:r}){const n=S.useMemo(()=>[{value:"manual",label:"Saved manual"},{value:"auto",label:"Latest auto"}],[]);return y.jsx(Rr,{layout:"position",children:y.jsx(Of,{size:"xs",color:e==="manual"?"orange":"green",value:e,component:Rr,onChange:o=>{He(o==="manual"||o==="auto","Invalid layout type"),r(o)},classNames:{label:fe({fontSize:"xxs",fontWeight:"medium"})},data:n})})}const ute=sp.withProps({mx:2,size:"xs",orientation:"vertical"});function fXe(){const[e,{toggleCompare:r,switchLayout:n,resetManualLayout:o,applyLatestToManual:i}]=TR();return y.jsxs(y.Fragment,{children:[y.jsx(hr,{css:{textStyle:"xs",color:"likec4.panel.text",userSelect:"none"},children:"Compare"}),y.jsx(hXe,{value:e.layout,onChange:n}),e.hasEditor&&y.jsxs(Or,{gap:"1",children:[y.jsx(ute,{}),y.jsx(pXe,{disabled:e.layout==="auto",onResetManualLayout:o,onApplyLatestToManual:e.canApplyLatest?i:void 0}),y.jsx(ute,{})]}),y.jsx(cc,{size:"sm",onClick:a=>{a.stopPropagation(),r()},children:y.jsx(fp,{})})]})}const pte=S.memo(()=>{const{enableCompareWithLatest:e}=sr();return y.jsx(Cn,{children:e&&y.jsx(Rr,{layout:"position",className:qn({gap:"2",layerStyle:"likec4.panel",position:"relative",px:"2",py:"1",pl:"3",pointerEvents:"all"}),initial:{opacity:0,translateX:-20},animate:{opacity:1,translateX:0},exit:{opacity:0,translateX:-20},children:y.jsx(fXe,{})})})});pte.displayName="ComparePanel";const m0=_n.withProps({color:"dark",fz:"xs",openDelay:600,closeDelay:120,label:"",children:null,offset:8,position:"right"}),gXe=[["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"}]],mXe=wt("outline","focus-centered","FocusCentered",gXe),yXe=()=>{const e=Mt();return y.jsx(m0,{label:"Center camera",children:y.jsx(cc,{onClick:()=>e.fitDiagram(),children:y.jsx(mXe,{})})})};fe({gap:"xxs",_empty:{display:"none"}}),fe({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"}}}),fe({shadow:{base:"md",_whenPanning:"none"}}),fe({"& .tabler-icon":{width:"65%",height:"65%"}});const F2=fe({flex:"1 1 40%",textAlign:"center",fontWeight:500,padding:"[4px 6px]",fontSize:"11px",zIndex:1}),vXe=fe({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]"}}),bXe=fe({position:"relative",borderRadius:"sm",background:"mantine.colors.gray[3]",boxShadow:"inset 1px 1px 3px 0px #00000024",_dark:{background:"mantine.colors.dark[7]"}}),xXe=fe({position:"absolute",width:8,height:8,border:"2px solid",borderColor:"mantine.colors.gray[5]",borderRadius:3,transform:"translate(-50%, -50%)"}),wXe=[["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"}]],kXe=wt("outline","layout-dashboard","LayoutDashboard",wXe),_Xe=e=>({viewId:e.view.id,isManualLayout:e.view._layout==="manual",autoLayout:e.view.autoLayout}),SXe=()=>{const e=Mt(),[r,n]=S.useState(null),[o,i]=S.useState({}),{autoLayout:a,viewId:l,isManualLayout:s}=pa(_Xe),{ref:c,hovered:d}=b9(),u=m=>v=>{o[m]=v,i(o)},p=m=>v=>{v.stopPropagation(),e.fitDiagram(),e.triggerChange({op:"change-autolayout",layout:{...a,direction:m}})},f=(m,v)=>{e.fitDiagram(),e.triggerChange({op:"change-autolayout",layout:{...a,nodeSep:m,rankSep:v}})};return s?null:y.jsxs(br,{position:"right-start",clickOutsideEvents:["pointerdown"],radius:"xs",shadow:"lg",offset:{mainAxis:10},children:[y.jsx(kd,{children:y.jsx(m0,{label:"Change Auto Layout",children:y.jsx(cc,{children:y.jsx(kXe,{})})})}),y.jsx(Qs,{className:"likec4-top-left-panel",p:8,pt:6,opacity:d?.6:1,children:y.jsxs(Se,{pos:"relative",ref:n,children:[y.jsx(h3,{target:o[a.direction],parent:r,className:vXe}),y.jsx(Se,{mb:10,children:y.jsx(it,{inline:!0,fz:"xs",c:"dimmed",fw:500,children:"Auto layout:"})}),y.jsxs(Js,{gap:2,wrap:"wrap",justify:"stretch",maw:160,children:[y.jsx(pr,{className:F2,ref:u("TB"),onClick:p("TB"),children:"Top-Bottom"}),y.jsx(pr,{className:F2,ref:u("BT"),onClick:p("BT"),children:"Bottom-Top"}),y.jsx(pr,{className:F2,ref:u("LR"),onClick:p("LR"),children:"Left-Right"}),y.jsx(pr,{className:F2,ref:u("RL"),onClick:p("RL"),children:"Right-Left"})]}),y.jsx(Se,{my:10,children:y.jsx(it,{inline:!0,fz:"xs",c:"dimmed",fw:500,children:"Spacing:"})}),y.jsx(EXe,{ref:c,isVertical:a.direction==="TB"||a.direction==="BT",nodeSep:a.nodeSep,rankSep:a.rankSep,onChange:f},l)]})})]})},kg=400,EXe=S.forwardRef(({isVertical:e,nodeSep:r,rankSep:n,onChange:o},i)=>{e||([r,n]=[n,r]);const a=h7(({x:f,y:m})=>{e||([f,m]=[m,f]),o(Math.round(f*kg),Math.round(m*kg))},[o,e],250,2e3),[l,s]=Ys({defaultValue:dze({x:(r??100)/kg,y:(n??120)/kg}),onChange:a}),{ref:c}=kH(s);let d=Math.round(l.x*kg),u=Math.round(l.y*kg);e||([d,u]=[u,d]);const p=$r(c,i);return y.jsxs(Se,{ref:p,className:bXe,pt:"100%",children:[y.jsx(Se,{className:xXe,style:{left:`${l.x*100}%`,top:`${l.y*100}%`}}),y.jsx(Se,{pos:"absolute",left:2,bottom:2,children:y.jsxs(it,{component:"div",fz:8,c:"dimmed",fw:500,children:[u,", ",d]})})]})}),CXe=[["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"}]],$Xe=wt("outline","layout-collage","LayoutCollage",CXe),RXe=[["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"}]],hte=wt("outline","layout-board-split","LayoutBoardSplit",RXe),zXe=[["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"}]],TXe=wt("outline","layout-align-left","LayoutAlignLeft",zXe),jXe=[["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"}]],AXe=wt("outline","layout-align-center","LayoutAlignCenter",jXe),DXe=[["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"}]],PXe=wt("outline","layout-align-right","LayoutAlignRight",DXe),MXe=[["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"}]],NXe=wt("outline","layout-align-top","LayoutAlignTop",MXe),BXe=[["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"}]],IXe=wt("outline","layout-align-middle","LayoutAlignMiddle",BXe),OXe=[["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"}]],LXe=wt("outline","layout-align-bottom","LayoutAlignBottom",OXe),FXe=[["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"}]],VXe=wt("outline","route-off","RouteOff",FXe),uc=({label:e,icon:r,onClick:n})=>y.jsx(m0,{label:e,withinPortal:!1,position:"top",children:y.jsx(cc,{classNames:{root:"action-icon",icon:fe({"& > svg":{width:"70%",height:"70%"}})},onClick:n,children:r})}),fte=S.memo(()=>{const e=Mt(),r=bg();return y.jsxs(br,{position:"right",offset:{mainAxis:12},clickOutsideEvents:["pointerdown"],...r,children:[y.jsx(kd,{children:y.jsx(m0,{label:"Manual layouting tools",children:y.jsx(cc,{children:y.jsx($Xe,{})})})}),y.jsx(Qs,{className:qn({gap:"0.5",layerStyle:"likec4.panel",padding:"1",pointerEvents:"all"}),children:y.jsxs(dp,{children:[y.jsx(uc,{label:"Align in columns",icon:y.jsx(hte,{}),onClick:n=>{n.stopPropagation(),e.align("Column")}}),y.jsx(uc,{label:"Align left",icon:y.jsx(TXe,{}),onClick:n=>{n.stopPropagation(),e.align("Left")}}),y.jsx(uc,{label:"Align center",icon:y.jsx(AXe,{}),onClick:n=>{n.stopPropagation(),e.align("Center")}}),y.jsx(uc,{label:"Align right",icon:y.jsx(PXe,{}),onClick:n=>{n.stopPropagation(),e.align("Right")}}),y.jsx(uc,{label:"Align in rows",icon:y.jsx(hte,{style:{transform:"rotate(90deg)"}}),onClick:n=>{n.stopPropagation(),e.align("Row")}}),y.jsx(uc,{label:"Align top",icon:y.jsx(NXe,{}),onClick:n=>{n.stopPropagation(),e.align("Top")}}),y.jsx(uc,{label:"Align middle",icon:y.jsx(IXe,{}),onClick:n=>{n.stopPropagation(),e.align("Middle")}}),y.jsx(uc,{label:"Align bottom",icon:y.jsx(LXe,{}),onClick:n=>{n.stopPropagation(),e.align("Bottom")}}),y.jsx(uc,{label:"Reset all control points",icon:y.jsx(VXe,{}),onClick:n=>{n.stopPropagation(),e.resetEdgeControlPoints()}})]})})]})});fte.displayName="ManualLayoutToolsButton";const qXe=()=>{const e=Mt();return y.jsx(m0,{label:"Switch to Read-only",children:y.jsx(cc,{onClick:()=>e.toggleFeature("ReadOnly"),children:y.jsx(Jee,{size:14,stroke:2})})})};function HXe(){const{enableReadOnly:e}=sr();return y.jsx(Cn,{children:!e&&y.jsx(Rr,{layout:"position",className:Ey({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(dp,{openDelay:600,closeDelay:120,children:[y.jsx(SXe,{}),y.jsx(fte,{}),y.jsx(yXe,{}),y.jsx(qXe,{})]})})})}const UXe=[["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"}]],WXe=wt("filled","player-stop-filled","PlayerStopFilled",UXe),GXe=[["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"}]],YXe=wt("filled","player-skip-back-filled","PlayerSkipBackFilled",GXe),XXe=[["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"}]],KXe=wt("filled","player-skip-forward-filled","PlayerSkipForwardFilled",XXe),gte=Vn.withProps({component:wa,layout:"position",whileTap:{scale:.95},variant:"light",size:"xs",fw:"500"}),ZXe=()=>{const{portalProps:e}=bg();return y.jsx(py,{...e,children:y.jsx(hr,{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 QXe(){const e=Mt(),{isParallel:r,hasNext:n,hasPrevious:o,currentStep:i,totalSteps:a}=pa(l=>{const s=l.xyedges.findIndex(c=>c.id===l.activeWalkthrough?.stepId);return{isParallel:Zn(l.activeWalkthrough?.parallelPrefix),hasNext:s0,currentStep:s+1,totalSteps:l.xyedges.length}});return y.jsxs(Cn,{propagate:!0,mode:"popLayout",children:[y.jsx(ete,{variant:"light",size:"xs",color:"orange",mr:"sm",onClick:l=>{l.stopPropagation(),e.stopWalkthrough()},rightSection:y.jsx(WXe,{size:10}),children:"Stop"},"stop-walkthrough"),y.jsx(gte,{disabled:!o,onClick:()=>e.walkthroughStep("previous"),leftSection:y.jsx(YXe,{size:10}),children:"Previous"},"prev"),y.jsxs(ec,{component:Rr,layout:"position",size:"md",radius:"sm",variant:r?"gradient":"transparent",gradient:{from:"red",to:"orange",deg:90},rightSection:y.jsx(Rr,{className:fe({fontSize:"xxs",display:r?"block":"none"}),children:"parallel"}),className:fe({alignItems:"baseline"}),children:[i," / ",a]},"step-badge"),y.jsx(gte,{disabled:!n,onClick:()=>e.walkthroughStep("next"),rightSection:y.jsx(KXe,{size:10}),children:"Next"},"next"),r&&y.jsx(ZXe,{},"parallel-frame")]})}const mte=S.memo(()=>{const e=Mt(),r=VHe(),n=UVe(),o=vE(vGe,{input:{view:r,viewModel:n}});return S.useEffect(()=>{const i=o.on("navigateTo",a=>{e.navigateTo(a.viewId)});return()=>i.unsubscribe()},[o,e]),S.useEffect(()=>{o.send({type:"update.inputs",inputs:{viewModel:n,view:r}})},[n,r]),y.jsx(hp,{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})"]},_print:{display:"none"}},children:y.jsxs(bGe,{value:o,children:[y.jsx(JXe,{actor:o}),y.jsx(pte,{}),y.jsx(uXe,{}),y.jsx(HXe,{})]})})});mte.displayName="NavigationPanel";const JXe=({actor:e})=>{const r=pn(e,o=>o.hasTag("active")),n=bg();return y.jsxs(br,{offset:{mainAxis:4},opened:r,position:"bottom-start",trapFocus:r,...n,clickOutsideEvents:["pointerdown","mousedown","click"],onDismiss:()=>e.send({type:"dropdown.dismiss"}),children:[y.jsx(eKe,{actor:e}),r&&y.jsx(ate,{})]})},eKe=({actor:e})=>{const r=pa(n=>n.activeWalkthrough!==null);return y.jsx(lg,{children:y.jsx(kd,{children:y.jsx(Rr,{layout:!0,layoutDependency:r,className:qn({layerStyle:"likec4.panel",position:"relative",gap:"xs",cursor:"pointer",pointerEvents:"all",width:"100%"}),onMouseLeave:()=>e.send({type:"breadcrumbs.mouseLeave"}),children:y.jsx(Cn,{children:r?y.jsx(QXe,{}):y.jsx(ote,{})})})})})},AR=fe({position:"absolute",bottom:"0",right:"0",padding:"2",margin:"0",width:"min-content",height:"min-content",_print:{display:"none"}}),tKe=fe({"--ai-radius":"0px",_noReduceGraphics:{"--ai-radius":"{radii.md}"}}),rKe=fe({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"}}),nKe=fe({padding:"xxs"}),oKe=fe({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"}}});fe({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 tJe=be({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)"}),rJe=[["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"}]],nJe=Nt("outline","help-circle","HelpCircle",rJe),oJe=[["path",{d:"M7 7l10 10",key:"svg-0"}],["path",{d:"M17 8l0 9l-9 0",key:"svg-1"}]],aJe=Nt("outline","arrow-down-right","ArrowDownRight",oJe),iJe=({value:e})=>{const{title:r,color:n="primary",shape:o="rectangle"}=e,[a,i]=E.useState(null),s=Qt(),l=300,c=200;return y.jsx(W2,{shadow:"none",px:"xs",py:"sm",className:et(eJe),"data-likec4-color":n,onMouseEnter:()=>{i(null),s.highlightNotation(e)},onMouseLeave:()=>{i(null),s.unhighlightNotation()},children:y.jsxs(pn,{gap:"sm",align:"stretch",wrap:"nowrap",children:[y.jsx(Re,{flex:"0 0 70px",style:{position:"relative",width:70,height:XRe(70*(c/l),0)},children:y.jsx(Om,{data:{shape:o,width:l,height:c}})}),y.jsxs(Xo,{gap:4,flex:1,children:[y.jsx(pn,{gap:4,flex:"0 0 auto",children:e.kinds.map(u=>y.jsx(vl,{className:et(tJe),onMouseEnter:()=>{i(u),s.highlightNotation(e,u)},onMouseLeave:()=>{i(null),s.highlightNotation(e)},opacity:Vq(a)&&a!==u?.25:1,children:u},u))}),y.jsx(ft,{component:"div",fz:"sm",fw:500,lh:"1.25",style:{textWrap:"pretty"},children:r})]})]})})},sJe=e=>({id:e.view.id,notations:e.view.notation?.nodes??[]}),lJe=E.memo(()=>{const e=Iw(l=>l.height),{id:r,notations:n}=vs(sJe),[o,a]=c$e({key:"notation-webview-collapsed",defaultValue:!0}),i=n.length>0,s=qm();return y.jsxs(Qn,{children:[!i&&y.jsx(Ei.div,{initial:{opacity:.75,translateX:"50%"},animate:{opacity:1,translateX:0},exit:{translateX:"100%",opacity:.6},className:QA,children:y.jsx(co,{label:"View has no notations",color:"orange",...s,children:y.jsx(Ba,{size:"lg",variant:"light",color:"orange",radius:"md",children:y.jsx(zte,{})})})},"empty"),i&&o&&y.jsx(Ei.div,{initial:{opacity:.75,translateX:"50%"},animate:{opacity:1,translateX:0},exit:{translateX:"100%",opacity:.6},className:QA,children:y.jsx(co,{label:"Show notation",color:"dark",fz:"xs",...s,children:y.jsx(br,{size:"lg",variant:"default",color:"gray",className:ZQe,onClick:()=>a(!1),children:y.jsx(nJe,{stroke:1.5})})})},"collapsed"),i&&!o&&y.jsx(Ei.div,{initial:{opacity:.75,scale:.2},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.25},className:et("react-flow__panel",QA),style:{transformOrigin:"bottom right"},children:y.jsx(om,{radius:"sm",withBorder:!0,shadow:"lg",className:QQe,children:y.jsxs(Sp,{defaultValue:"first",radius:"xs",children:[y.jsxs(Y0,{children:[y.jsx(br,{size:"md",variant:"subtle",color:"gray",ml:2,style:{alignSelf:"center"},onClick:()=>a(!0),children:y.jsx(aJe,{stroke:2})}),y.jsx(pm,{value:"first",fz:"xs",children:"Elements"}),y.jsx(pm,{value:"second",fz:"xs",disabled:!0,children:"Relationships"})]}),y.jsx(yc,{value:"first",className:JQe,hidden:o,children:y.jsx(pa,{viewportProps:{style:{maxHeight:`min(40vh, ${Math.max(e-60,50)}px)`}},children:y.jsx(Xo,{gap:0,children:n.map((l,c)=>y.jsx(iJe,{value:l},c))})})})]})})},r)]})}),cJe=E.memo(()=>{const[{layout:e,isActive:r},{toggleCompare:n}]=KA(),o=e==="manual"?"var(--mantine-color-orange-6)":"var(--mantine-color-green-6)";return y.jsx(zr,{className:Zn({position:"absolute",top:"0",left:"0",width:"full",height:"full",border:"default",borderWidth:4,pointerEvents:"none",alignItems:"flex-start",justifyContent:"center"}),style:{zIndex:"9999",display:r?void 0:"none",borderColor:o},children:y.jsx(uJe,{style:{backgroundColor:o},onClick:a=>{a.stopPropagation(),n()},children:"Close compare"})})}),uJe=Er.withProps({className:be({fontSize:"xs",fontWeight:"medium",py:"1.5",lineHeight:"1",borderBottomLeftRadius:"sm",borderBottomRightRadius:"sm",transform:"translateY(-4px)",px:"4",color:"mantine.colors.gray[9]",pointerEvents:"all",_active:{transform:"translateY(-3px)"}})}),Kte=E.memo(()=>{const{enableControls:e,enableNotations:r,enableSearch:n,enableRelationshipDetails:o,enableReadOnly:a,enableCompareWithLatest:i}=_r(),s=FEe(),l=IX(),c=VBe(),u=E.useCallback(()=>{console.warn("DiagramUI: resetting error boundary and rerendering..."),s()},[]);return y.jsxs(rX,{onReset:u,children:[e&&y.jsx(Xte,{}),l&&y.jsx(JXe,{overlaysActorRef:l}),r&&y.jsx(lJe,{}),n&&c&&y.jsx(LKe,{searchActorRef:c}),o&&a&&y.jsx(ZKe,{}),i&&y.jsx(cJe,{})]})});Kte.displayName="DiagramUI";const dJe=be({overflow:"visible",position:"absolute",pointerEvents:"none",top:"0",left:"0",mixBlendMode:"normal"}),pJe=be({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:18,transition:"stroke 100ms ease-out, stroke-width 100ms ease-out"},":where([data-likec4-selected='true'], [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:12}}),hJe=be({cursor:"grabbing","& *":{cursor:"grabbing !important"},"& .react-flow__edge-interaction":{cursor:"grabbing !important"}});function fJe({sourceX:e,sourceY:r,targetX:n,targetY:o,data:a}){const[i,s]=E.useState(()=>a.controlPoints??jw(a.points));qp(()=>{const c=a.controlPoints??jw(a.points);s(u=>lt(u,c)?u:c)},[a.controlPoints?.map(c=>`${c.x},${c.y}`).join("|")??"",a.points.map(c=>`${c[0]},${c[1]}`).join("|")]);const l=kt(({x:c,y:u})=>{const d=jo(e,r),h=jo(n,o),f=[a.dir==="back"?h:d,...i.map(jo)||[],a.dir==="back"?d:h],g=jo(Math.round(c),Math.round(u));let b=0,x=1/0;for(let k=0;k=0))throw new Error(`invalid digits: ${e}`);if(r>15)return Qte;const n=10**r;return function(o){this._+=o[0];for(let a=1,i=o.length;aYp)if(!(Math.abs(h*c-u*d)>Yp)||!i)this._append`L${this._x1=r},${this._y1=n}`;else{let g=o-s,b=a-l,x=c*c+u*u,w=g*g+b*b,k=Math.sqrt(x),C=Math.sqrt(f),_=i*Math.tan((JA-Math.acos((x+f-w)/(2*k*C)))/2),T=_/C,A=_/k;Math.abs(T-1)>Yp&&this._append`L${r+T*d},${n+T*h}`,this._append`A${i},${i},0,0,${+(h*g>d*b)},${this._x1=r+A*c},${this._y1=n+A*u}`}}arc(r,n,o,a,i,s){if(r=+r,n=+n,o=+o,s=!!s,o<0)throw new Error(`negative radius: ${o}`);let l=o*Math.cos(a),c=o*Math.sin(a),u=r+l,d=n+c,h=1^s,f=s?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%eR+eR),f>mJe?this._append`A${o},${o},0,1,${h},${r-l},${n-c}A${o},${o},0,1,${h},${this._x1=u},${this._y1=d}`:f>Yp&&this._append`A${o},${o},0,${+(f>=JA)},${h},${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 bJe(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 yJe(r)}function vJe(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Jte(e){this._context=e}Jte.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 xJe(e){return new Jte(e)}function wJe(e){return e[0]}function kJe(e){return e[1]}function _Je(e,r){var n=Wm(!0),o=null,a=xJe,i=null,s=bJe(l);e=typeof e=="function"?e:e===void 0?wJe:Wm(e),r=typeof r=="function"?r:r===void 0?kJe:Wm(r);function l(c){var u,d=(c=vJe(c)).length,h,f=!1,g;for(o==null&&(i=a(g=s())),u=0;u<=d;++u)!(uZte){var l=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*l-e._x0*e._l12_2a+e._x2*e._l01_2a)/c,a=(a*l-e._y0*e._l12_2a+e._y2*e._l01_2a)/c}if(e._l23_a>Zte){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,s=(s*u+e._y1*e._l23_2a-n*e._l12_2a)/d}e._context.bezierCurveTo(o,a,i,s,e._x2,e._y2)}function tre(e,r){this._context=e,this._alpha=r}tre.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:ere(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 tre(o,r):new rR(o,0)}return n.alpha=function(o){return e(+o)},n})(.5);function rre(e,r){this._context=e,this._alpha=r}rre.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:ere(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 EJe=(function e(r){function n(o){return r?new rre(o,r):new nR(o,0)}return n.alpha=function(o){return e(+o)},n})(.5),SJe=_Je().curve(EJe.alpha(.7)).x(e=>Math.round(e.x)).y(e=>Math.round(e.y)),CJe=(e,r)=>bJ(e.sourceNode,r.sourceNode)&&bJ(e.targetNode,r.targetNode);function TJe({props:{sourceX:e,sourceY:r,source:n,target:o,targetX:a,targetY:i,data:s},controlPoints:l,isControlPointDragging:c}){const{sourceNode:u,targetNode:d}=Iw(E.useCallback(({nodeLookup:h})=>{const f=bt(h.get(n),`source node ${n} not found`),g=bt(h.get(o),`target node ${o} not found`);return{sourceNode:yJ(f),targetNode:yJ(g)}},[n,o]),CJe);if(ua(s.controlPoints)||c){const h={x:e,y:r},f={x:a,y:i},g=6,b=s.dir==="back"?[f,Ay(d,Ff(l)??h,g),...l,Ay(u,lc(l)??f,g),h]:[h,Ay(u,Ff(l)??f,g),...l,Ay(d,lc(l)??h,g),f];return bt(SJe(b))}return kWe(s.points)}const nre=e=>{const r=e.getPointAtLength(e.getTotalLength()*.5);return{x:Math.round(r.x),y:Math.round(r.y)}},ore=NA(e=>{const[r,n]=E.useState(!1),o=hJ(),a=Qt(),{enableNavigateTo:i,enableReadOnly:s}=_r(),l=!s,{id:c,selected:u=!1,data:{hovered:d=!1,active:h=!1,labelBBox:f,labelXY:g,...b}}=e,x=i?b.navigateTo:void 0,{controlPoints:w,setControlPoints:k,insertControlPoint:C}=fJe(e);let _=TJe({props:e,controlPoints:w,isControlPointDragging:r}),T=f?.x??0,A=f?.y??0;const[R,D]=E.useState({x:g?.x??T,y:g?.y??A});qp(()=>{D({x:T,y:A})},[T,A]);const N=E.useRef(null);qE(()=>{const V=N.current;!V||!r||D(nre(V))},[_,r]),r&&(T=R.x,A=R.y);const M=kt(V=>{const I=N.current?nre(N.current):null;f&&I?a.updateEdgeData(c,{controlPoints:V,labelBBox:{...f,...I},labelXY:I}):a.updateEdgeData(c,{controlPoints:V}),a.stopEditing(!0),n(!1)}),O=kt(()=>{a.startEditing("edge"),n(!0)}),F=kt(()=>{a.stopEditing(),n(!1)}),L=kt(V=>{k(V),requestAnimationFrame(()=>{M(V)})}),U=kt(V=>{a.startEditing("edge"),n(!0),k(V),requestAnimationFrame(()=>{M(V)})}),P=kt(V=>{if(V.pointerType!=="mouse"||V.button!==2)return;V.stopPropagation(),V.preventDefault(),a.startEditing("edge");const I=C(o.screenToFlowPosition({x:V.clientX,y:V.clientY},{snapToGrid:!1}));a.updateEdgeData(c,{controlPoints:I}),a.stopEditing(!0)});return r&&!e.data.hovered&&(e={...e,data:{...e.data,hovered:!0}}),y.jsxs(y.Fragment,{children:[y.jsxs(My,{...e,className:et(r&&hJe),children:[y.jsx(Py,{edgeProps:e,svgPath:_,ref:N,isDragging:r,...l&&{onEdgePointerDown:P}}),f&&y.jsx(Qw,{edgeProps:e,labelPosition:{x:T,y:A},children:y.jsx($y,{pointerEvents:l?"none":"all",edgeProps:e,children:!l&&x&&y.jsx(Zw,{onClick:V=>{V.stopPropagation(),a.navigateTo(x)}})})})]}),l&&w.length>0&&(u||h||d||r)&&y.jsx(AJe,{edgeProps:e,controlPoints:w,onMove:k,onStartMove:O,onCancelMove:F,onFinishMove:L,onDelete:U,zIndex:_l.Element+500})]})});ore.displayName="RelationshipEdge";function AJe({edgeProps:e,controlPoints:r,onMove:n,onStartMove:o,onCancelMove:a,onFinishMove:i,onDelete:s,zIndex:l}){const c=AT(),u=hJ(),d=e.data.id,h=(b,x,w)=>{let k=!1,C={x:x.clientX,y:x.clientY},_=null,T=r;const A=D=>{const N={x:D.clientX,y:D.clientY};wJ(C,N)||(k||(k=!0,o()),C=N,_??=requestAnimationFrame(()=>{_=null,T=T.slice();const{x:M,y:O}=u.screenToFlowPosition(C,{snapToGrid:!1});T[b]={x:Math.round(M),y:Math.round(O)},n(T)})),D.stopPropagation()},R=D=>{D.stopPropagation(),w.removeEventListener("pointermove",A,{capture:!0}),w.removeEventListener("click",oR,{capture:!0}),k?i(T):a()};w.addEventListener("pointermove",A,{capture:!0}),w.addEventListener("pointerup",R,{once:!0,capture:!0}),w.addEventListener("click",oR,{capture:!0,once:!0})},f=(b,x)=>{if(r.length<=1)return;x.stopPropagation(),x.preventDefault();const w=r.slice();w.splice(b,1),setTimeout(()=>{s(w)},10)},g=kt(b=>{const{domNode:x,addSelectedEdges:w}=c.getState();if(!x||b.pointerType!=="mouse")return;const k=parseFloat(b.currentTarget.getAttribute("data-control-point-index")||"");if(isNaN(k))throw new Error("data-control-point-index is not a number");switch(b.button){case 0:{b.stopPropagation(),w([d]),h(k,b,x);break}case 2:f(k,b);break}});return y.jsx(Dq,{children:y.jsx(My,{component:"svg",className:dJe,...e,style:{...e.style,zIndex:l},children:y.jsx("g",{onContextMenu:oR,children:r.map((b,x)=>y.jsx("circle",{"data-control-point-index":x,onPointerDownCapture:g,className:et("nodrag nopan",pJe),cx:b.x,cy:b.y,r:3},"controlPoints"+d+"#"+x))})})})}const oR=e=>{e.stopPropagation(),e.preventDefault()},h4=16;function RJe(e){const{enableNavigateTo:r}=_r(),n=Qt(),{navigateTo:o}=e.data,a=e.source===e.target,i=e.sourceX>e.targetX,[s]=T3({sourceX:e.sourceX,sourceY:e.sourceY,sourcePosition:e.sourcePosition,targetX:e.targetX,targetY:e.targetY,targetPosition:e.targetPosition,...a&&{offset:30,borderRadius:16}});let l=e.sourceX;switch(!0){case a:l=e.sourceX+24+h4;break;case i:l=e.sourceX-h4;break;default:l=e.sourceX+h4;break}return y.jsxs(My,{...e,children:[y.jsx(Py,{edgeProps:e,svgPath:s}),y.jsx(Qw,{edgeProps:e,labelPosition:{x:l,y:e.sourceY+(a?0:h4),translate:i?"translate(-100%, 0)":void 0},children:y.jsx($y,{edgeProps:e,children:r&&o&&y.jsx(Zw,{onClick:c=>{c.stopPropagation(),n.navigateTo(o)}})})})]})}const NJe=(e,r)=>lt(e.data.id,r.data.id)&<(e.selected??!1,r.selected??!1)&<(e.data.modelFqn??null,r.data.modelFqn??null)&<(e.data.navigateTo??null,r.data.navigateTo??null)&<(e.data.hovered??!1,r.data.hovered??!1)&&(!e.extraButtons&&!r.extraButtons||an(e.extraButtons,r.extraButtons)),are=E.memo(({extraButtons:e,...r})=>{const{enableNavigateTo:n,enableRelationshipBrowser:o}=_r(),a=Qt(),{id:i,navigateTo:s,modelFqn:l}=r.data;let c=E.useMemo(()=>{const u=[];return s&&n&&u.push({key:"navigate",icon:y.jsx(Ri,{}),onClick:d=>{d.stopPropagation(),a.navigateTo(s,i)}}),o&&u.push({key:"relationships",icon:y.jsx(zy,{}),onClick:d=>{d.stopPropagation(),a.openRelationshipsBrowser(l)}}),u},[n,o,l,s,i,a]);return e&&bo(e,1)&&(c=[...c,...e]),y.jsx(e4,{...r,buttons:c})},NJe),DJe=({extraButtons:e,...r})=>{const{enableNavigateTo:n,enableRelationshipBrowser:o}=_r(),a=Qt(),{id:i,navigateTo:s,modelFqn:l}=r.data;let c=E.useMemo(()=>{const u=[];return s&&n&&u.push({key:"navigate",icon:y.jsx(Ri,{}),onClick:d=>{d.stopPropagation(),a.navigateTo(s,i)}}),o&&l&&u.push({key:"relationships",icon:y.jsx(zy,{}),onClick:d=>{d.stopPropagation(),a.openRelationshipsBrowser(l)}}),u},[n,o,l,s,i]);return e&&bo(e,1)&&(c=[...c,...e]),y.jsx(e4,{...r,buttons:c})};function $Je({data:{hovered:e=!1},icon:r,onClick:n}){const o=W9(e,e?130:0)[0]&&e;return y.jsx(Br,{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(br,{className:et("nodrag nopan",Vee({delay:e&&!o}),zw({variant:"transparent"})),onClick:n,onDoubleClick:Cn,children:r??y.jsx(Ri,{stroke:2})})})}const ire=e=>{const{enableNavigateTo:r}=_r(),n=Qt(),{navigateTo:o}=e.data;return o&&r?y.jsx($Je,{onClick:a=>{a.stopPropagation(),n.navigateTo(o,e.id)},...e}):null};function sre({data:e}){const r=e.drifts;return!r||r.length===0?null:y.jsx(zr,{className:"likec4-node-drifts",css:{position:"absolute",inset:"0",pointerEvents:"none","& + .likec4-element-shape":{outlineColor:"likec4.compare.manual.outline",outlineWidth:{base:"2px",_light:"4px"},outlineStyle:"solid",outlineOffset:"1"}},children:y.jsx(D9,{isVisible:e.hovered===!0,align:"start",position:tt.Bottom,children:y.jsx(Z2,{color:"orange",withBorder:!1,withCloseButton:!1,title:"Changes:",children:r.map(n=>y.jsxs(ft,{mt:2,size:"sm",lh:"xs",children:["- ",n]},n))})})})}const lre=co.withProps({color:"dark",fz:"xs",openDelay:400,closeDelay:150,label:"",children:null,offset:4,withinPortal:!1});function f4({fqn:e}){const r=Qt();return y.jsx(lre,{label:"Browse relationships",children:y.jsx(br,{size:"sm",variant:"subtle",color:"gray",onClick:n=>{n.stopPropagation(),r.openRelationshipsBrowser(e)},children:y.jsx(zy,{stroke:2,style:{width:"72%",height:"72%"}})})})}function m4(e){const{onOpenSource:r}=Fm();return r?y.jsx(lre,{label:"Open source",children:y.jsx(br,{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(zm,{stroke:1.8,style:{width:"70%"}})})}):null}function cre(){const e=E.useContext(K0);e||console.error("No LikeC4ModelContext found");const r=e?.$styles??ZI.DEFAULT,[n,o]=E.useState(r);return E.useEffect(()=>{o(a=>a.equals(r)?a:r)},[r]),n}const ure=["primary","secondary","muted"];function g4({elementColor:e,elementOpacity:r,onColorPreview:n,isOpacityEditable:o=!1,onChange:a,...i}){const{theme:s}=cre();return y.jsxs(Rr,{clickOutsideEvents:["pointerdown","mousedown","click"],position:"right-end",offset:2,withinPortal:!1,...i,children:[y.jsx($u,{children:y.jsx(Kn,{variant:"subtle",color:"gray",size:"compact-xs",px:3,children:y.jsx(H0,{color:s.colors[e].elements.fill,size:14,withShadow:!0,style:{color:"#fff",cursor:"pointer"}})})}),y.jsxs(fc,{p:"xs",children:[y.jsx(MJe,{theme:s,elementColor:e,onColorPreview:n,onChange:l=>a({color:l})}),o&&y.jsxs(y.Fragment,{children:[y.jsx(xS,{h:"xs"}),y.jsx(kp,{label:"opacity",labelPosition:"left"}),y.jsx(xS,{h:"xs"}),y.jsx(PJe,{elementOpacity:r,onOpacityChange:l=>{a({opacity:l})}})]})]})]})}function MJe({theme:e,elementColor:r,onColorPreview:n,onChange:o}){const a=s=>l=>{l.stopPropagation(),n(null),r!==s&&o(s)},i=I9(e.colors).filter(s=>!ure.includes(s));return y.jsx(Xo,{gap:2,onMouseLeave:()=>n(null),children:y.jsxs(Ep,{openDelay:1e3,closeDelay:300,children:[y.jsx(mc,{maw:120,gap:"6",justify:"flex-start",align:"flex-start",direction:"row",wrap:"wrap",children:ure.map(s=>y.jsx(co,{label:s,fz:"xs",color:"dark",offset:2,withinPortal:!1,transitionProps:{duration:140,transition:"slide-up"},children:y.jsx(H0,{color:e.colors[s].elements.fill,size:18,withShadow:!0,onMouseEnter:()=>n(s),onClick:a(s),style:{color:"#fff",cursor:"pointer"},children:r===s&&y.jsx(HY,{style:{width:Me(10),height:Me(10)}})})},s))}),y.jsx(mc,{mt:"sm",maw:110,gap:"6",justify:"flex-start",align:"flex-start",direction:"row",wrap:"wrap",children:i.map(s=>y.jsx(co,{label:s,fz:"xs",color:"dark",offset:2,transitionProps:{duration:140,transition:"slide-up"},children:y.jsx(H0,{color:e.colors[s].elements.fill,size:18,onMouseEnter:()=>n(s),onClick:a(s),style:{color:"#fff",cursor:"pointer"},children:r===s&&y.jsx(HY,{style:{width:Me(10),height:Me(10)}})})},s))})]})})}function PJe({elementOpacity:e=100,onOpacityChange:r}){const[n,o]=E.useState(e);return OF(()=>{o(e)},[e]),y.jsx(vS,{size:"sm",color:"dark",value:n,onChange:o,onChangeEnd:r})}const zJe=be({color:"mantine.colors.dimmed",fontSize:"10px",fontWeight:600,maxWidth:"220px",cursor:"default",userSelect:"all",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"}),IJe=()=>vs(e=>e.xynodes.filter(r=>r.selected).length);function y4({title:e,children:r,nodeProps:n,...o}){const a=IJe(),{selected:i=!1,dragging:s=!1,data:{hovered:l=!1}}=n,c=l&&a===0||i&&a===1;let u=150;c?i?u=100:u=1e3:a>0&&(u=50);const[d]=W9(c,u);return d?y.jsx(D9,{isVisible:!s,offset:4,...o,children:y.jsx(om,{className:et("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(Xo,{gap:"6px",children:[y.jsx(Re,{px:"4px",children:y.jsx(ft,{className:zJe,children:e})}),y.jsx(pn,{gap:4,children:r})]})})}):null}function b4(e,r){const n=Qt(),[o,a]=E.useState(null),i=kt(l=>{if(l===null){if(!o)return;a(null),n.updateNodeData(r.data.id,{color:o});return}a(c=>c??r.data.color),n.updateNodeData(r.data.id,{color:l})}),s=kt(l=>{const{shape:c,color:u,...d}=l;n.updateNodeData(r.data.id,{...c&&{shape:c},...u&&{color:u},style:d}),n.triggerChange({op:"change-element-style",style:l,targets:[e]})});return{elementColor:o??r.data.color,onColorPreview:i,onChange:s}}function OJe(e){const{enableVscode:r,enableRelationshipBrowser:n}=_r(),{data:{style:o,modelFqn:a}}=e,{elementColor:i,onColorPreview:s,onChange:l}=b4(a,e),c=o?.opacity??100;return y.jsxs(y4,{nodeProps:e,title:a,align:"start",children:[y.jsx(g4,{elementColor:i,onColorPreview:s,isOpacityEditable:!0,elementOpacity:c,onChange:l,position:"left-start"}),y.jsx(dre,{elementBorderStyle:o?.border??(c<99?"dashed":"none"),onChange:l}),r&&y.jsx(m4,{elementId:a}),n&&y.jsx(f4,{fqn:a})]})}function jJe(e){const{enableVscode:r,enableRelationshipBrowser:n}=_r(),{data:{deploymentFqn:o,style:a,modelFqn:i}}=e,{elementColor:s,onColorPreview:l,onChange:c}=b4(o,e);return y.jsxs(y4,{nodeProps:e,title:o,align:"start",children:[y.jsx(g4,{elementColor:s,onColorPreview:l,isOpacityEditable:!0,elementOpacity:a?.opacity,onChange:c,position:"left-start"}),y.jsx(dre,{elementBorderStyle:a?.border,onChange:c}),r&&y.jsx(m4,{deploymentId:o}),n&&i&&y.jsx(f4,{fqn:i})]})}function dre({elementBorderStyle:e="dashed",onChange:r}){const[n,o]=E.useState(e);return E.useEffect(()=>{o(e)},[e]),y.jsx(Re,{children:y.jsx(dm,{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 LJe(e){const{enableVscode:r,enableRelationshipBrowser:n}=_r(),{data:{shape:o,modelFqn:a}}=e,{elementColor:i,onColorPreview:s,onChange:l}=b4(a,e);return y.jsxs(y4,{nodeProps:e,title:a,align:"start",children:[y.jsx(pre,{elementShape:o,onChange:l}),y.jsx(g4,{elementColor:i,onColorPreview:s,onChange:l,position:"right-end"}),r&&y.jsx(m4,{elementId:a}),n&&y.jsx(f4,{fqn:a})]})}function BJe(e){const{enableVscode:r,enableRelationshipBrowser:n}=_r(),{data:{shape:o,deploymentFqn:a,modelFqn:i}}=e,{elementColor:s,onColorPreview:l,onChange:c}=b4(a,e);return y.jsxs(y4,{nodeProps:e,title:a,align:"start",children:[y.jsx(pre,{elementShape:o,onChange:c}),y.jsx(g4,{elementColor:s,onColorPreview:l,onChange:c,position:"right-end"}),r&&y.jsx(m4,{deploymentId:a}),n&&i&&y.jsx(f4,{fqn:i})]})}function pre({elementShape:e,onChange:r}){return y.jsxs(hn,{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(G2,{children:y.jsx(Kn,{variant:"light",color:"gray",size:"compact-xs",rightSection:y.jsx(RA,{size:12}),children:e})}),y.jsx(q0,{onDoubleClick:Cn,onClick:Cn,children:Fye.map(n=>y.jsx(U0,{fz:12,fw:500,value:n,rightSection:e===n?y.jsx(kJ,{size:12}):void 0,onClick:o=>{o.stopPropagation(),r({shape:n})},children:n},n))})]})}const v4={top:"50%",left:"50%",right:"unset",bottom:"unset",visibility:"hidden",width:5,height:5,transform:"translate(-50%, -50%)"},Vy=()=>y.jsxs(y.Fragment,{children:[y.jsx(yo,{type:"target",position:tt.Top,style:v4}),y.jsx(yo,{type:"target",position:tt.Left,style:v4}),y.jsx(yo,{type:"source",position:tt.Right,style:v4}),y.jsx(yo,{type:"source",position:tt.Bottom,style:v4})]});function aR(e){const r=Qt(),n=e.data.modelFqn;return n?y.jsx($A,{...e,onClick:o=>{o.stopPropagation(),r.openElementDetails(n,e.id)}}):null}function hre(e){const r=Qt(),n=e.data.modelFqn;return n?y.jsx(qee,{...e,onClick:o=>{o.stopPropagation(),r.openElementDetails(n,e.id)}}):null}function FJe(e){const{enableElementTags:r,enableElementDetails:n,enableReadOnly:o,enableCompareWithLatest:a}=_r();return y.jsxs(Im,{nodeProps:e,children:[a&&y.jsx(sre,{...e}),y.jsx(Om,{...e}),y.jsx(Ss,{...e}),r&&y.jsx(Ry,{...e}),y.jsx(are,{...e}),n&&y.jsx(aR,{...e}),!o&&y.jsx(LJe,{...e}),y.jsx(Vy,{})]})}function HJe(e){const{enableElementTags:r,enableElementDetails:n,enableReadOnly:o,enableCompareWithLatest:a}=_r();return y.jsxs(Im,{nodeProps:e,children:[a&&y.jsx(sre,{...e}),y.jsx(Om,{...e}),y.jsx(Ss,{...e}),r&&y.jsx(Ry,{...e}),y.jsx(DJe,{...e}),n&&y.jsx(aR,{...e}),!o&&y.jsx(BJe,{...e}),y.jsx(Vy,{})]})}function VJe(e){const{enableElementDetails:r,enableReadOnly:n}=_r();return y.jsxs(Iy,{nodeProps:e,children:[y.jsx(Oy,{...e}),y.jsx(ire,{...e}),r&&y.jsx(hre,{...e}),!n&&y.jsx(OJe,{...e}),y.jsx(Vy,{})]})}function qJe(e){const{enableElementDetails:r,enableReadOnly:n}=_r();return y.jsxs(Iy,{nodeProps:e,children:[y.jsx(Oy,{...e}),y.jsx(ire,{...e}),r&&y.jsx(hre,{...e}),!n&&y.jsx(jJe,{...e}),y.jsx(Vy,{})]})}function UJe(e){return y.jsxs(Iy,{nodeProps:e,children:[y.jsx(Oy,{...e}),y.jsx(Vy,{})]})}const WJe={left:tt.Left,right:tt.Right,top:tt.Top,bottom:tt.Bottom},YJe=({data:e,port:r})=>y.jsxs(y.Fragment,{children:[y.jsx(zr,{"data-likec4-color":e.color,className:be({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(yo,{id:r.id,type:r.type,position:WJe[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)"}})]}),GJe=e=>ua(e.modelFqn);function XJe(e){const{enableElementDetails:r}=_r(),n=e.data,{id:o,positionAbsoluteY:a,data:{viewHeight:i,hovered:s=!1,ports:l}}=e;return y.jsxs(y.Fragment,{children:[y.jsx(zr,{"data-likec4-color":"gray",className:be({position:"absolute",rounded:"xs",top:"1",pointerEvents:"none",transition:"fast",translateX:"-1/2",translate:"auto"}),style:{backgroundColor:"var(--likec4-palette-stroke)",opacity:s?.6:.4,left:"50%",width:s?3:2,height:i-a,zIndex:-1,pointerEvents:"none"}}),y.jsxs(Im,{nodeProps:e,children:[y.jsx(Om,{...e}),y.jsx(Ss,{...e}),GJe(n)&&y.jsxs(y.Fragment,{children:[y.jsx(are,{...e,data:n}),r&&y.jsx(aR,{id:o,data:n})]})]}),l.map(c=>y.jsx(YJe,{port:c,data:e.data},c.id))]})}function KJe(e){return y.jsx(zr,{"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 Gp={ElementNode:FJe,DeploymentNode:HJe,CompoundElementNode:VJe,CompoundDeploymentNode:qJe,ViewGroupNode:UJe,SequenceActorNode:XJe,SequenceParallelArea:KJe},fre={RelationshipEdge:ore,SequenceStepEdge:RJe};var mre=Symbol.for("immer-nothing"),gre=Symbol.for("immer-draftable"),Ha=Symbol.for("immer-state");function Ts(e,...r){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var qy=Object.getPrototypeOf;function Ym(e){return!!e&&!!e[Ha]}function Xp(e){return e?bre(e)||Array.isArray(e)||!!e[gre]||!!e.constructor?.[gre]||Uy(e)||k4(e):!1}var ZJe=Object.prototype.constructor.toString(),yre=new WeakMap;function bre(e){if(!e||typeof e!="object")return!1;const r=Object.getPrototypeOf(e);if(r===null||r===Object.prototype)return!0;const n=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let o=yre.get(n);return o===void 0&&(o=Function.toString.call(n),yre.set(n,o)),o===ZJe}function x4(e,r,n=!0){w4(e)===0?(n?Reflect.ownKeys(e):Object.keys(e)).forEach(o=>{r(o,e[o],e)}):e.forEach((o,a)=>r(a,o,e))}function w4(e){const r=e[Ha];return r?r.type_:Array.isArray(e)?1:Uy(e)?2:k4(e)?3:0}function iR(e,r){return w4(e)===2?e.has(r):Object.prototype.hasOwnProperty.call(e,r)}function vre(e,r,n){const o=w4(e);o===2?e.set(r,n):o===3?e.add(n):e[r]=n}function QJe(e,r){return e===r?e!==0||1/e===1/r:e!==e&&r!==r}function Uy(e){return e instanceof Map}function k4(e){return e instanceof Set}function Kp(e){return e.copy_||e.base_}function sR(e,r){if(Uy(e))return new Map(e);if(k4(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const n=bre(e);if(r===!0||r==="class_only"&&!n){const o=Object.getOwnPropertyDescriptors(e);delete o[Ha];let a=Reflect.ownKeys(o);for(let i=0;i1&&Object.defineProperties(e,{set:_4,add:_4,clear:_4,delete:_4}),Object.freeze(e),r&&Object.values(e).forEach(n=>lR(n,!0))),e}function JJe(){Ts(2)}var _4={value:JJe};function E4(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var eet={};function Zp(e){const r=eet[e];return r||Ts(0,e),r}var Wy;function xre(){return Wy}function tet(e,r){return{drafts_:[],parent_:e,immer_:r,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function wre(e,r){r&&(Zp("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=r)}function cR(e){uR(e),e.drafts_.forEach(ret),e.drafts_=null}function uR(e){e===Wy&&(Wy=e.parent_)}function kre(e){return Wy=tet(Wy,e)}function ret(e){const r=e[Ha];r.type_===0||r.type_===1?r.revoke_():r.revoked_=!0}function _re(e,r){r.unfinalizedDrafts_=r.drafts_.length;const n=r.drafts_[0];return e!==void 0&&e!==n?(n[Ha].modified_&&(cR(r),Ts(4)),Xp(e)&&(e=S4(r,e),r.parent_||C4(r,e)),r.patches_&&Zp("Patches").generateReplacementPatches_(n[Ha].base_,e,r.patches_,r.inversePatches_)):e=S4(r,n,[]),cR(r),r.patches_&&r.patchListener_(r.patches_,r.inversePatches_),e!==mre?e:void 0}function S4(e,r,n){if(E4(r))return r;const o=e.immer_.shouldUseStrictIteration(),a=r[Ha];if(!a)return x4(r,(i,s)=>Ere(e,a,r,i,s,n),o),r;if(a.scope_!==e)return r;if(!a.modified_)return C4(e,a.base_,!0),a.base_;if(!a.finalized_){a.finalized_=!0,a.scope_.unfinalizedDrafts_--;const i=a.copy_;let s=i,l=!1;a.type_===3&&(s=new Set(i),i.clear(),l=!0),x4(s,(c,u)=>Ere(e,a,i,c,u,n,l),o),C4(e,i,!1),n&&e.patches_&&Zp("Patches").generatePatches_(a,n,e.patches_,e.inversePatches_)}return a.copy_}function Ere(e,r,n,o,a,i,s){if(a==null||typeof a!="object"&&!s)return;const l=E4(a);if(!(l&&!s)){if(Ym(a)){const c=i&&r&&r.type_!==3&&!iR(r.assigned_,o)?i.concat(o):void 0,u=S4(e,a,c);if(vre(n,o,u),Ym(u))e.canAutoFreeze_=!1;else return}else s&&n.add(a);if(Xp(a)&&!l){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||r&&r.base_&&r.base_[o]===a&&l)return;S4(e,a),(!r||!r.scope_.parent_)&&typeof o!="symbol"&&(Uy(n)?n.has(o):Object.prototype.propertyIsEnumerable.call(n,o))&&C4(e,a)}}}function C4(e,r,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&lR(r,n)}function net(e,r){const n=Array.isArray(e),o={type_:n?1:0,scope_:r?r.scope_:xre(),modified_:!1,finalized_:!1,assigned_:{},parent_:r,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let a=o,i=dR;n&&(a=[o],i=Yy);const{revoke:s,proxy:l}=Proxy.revocable(a,i);return o.draft_=l,o.revoke_=s,l}var dR={get(e,r){if(r===Ha)return e;const n=Kp(e);if(!iR(n,r))return oet(e,n,r);const o=n[r];return e.finalized_||!Xp(o)?o:o===pR(e.base_,r)?(fR(e),e.copy_[r]=mR(o,e)):o},has(e,r){return r in Kp(e)},ownKeys(e){return Reflect.ownKeys(Kp(e))},set(e,r,n){const o=Sre(Kp(e),r);if(o?.set)return o.set.call(e.draft_,n),!0;if(!e.modified_){const a=pR(Kp(e),r),i=a?.[Ha];if(i&&i.base_===n)return e.copy_[r]=n,e.assigned_[r]=!1,!0;if(QJe(n,a)&&(n!==void 0||iR(e.base_,r)))return!0;fR(e),hR(e)}return e.copy_[r]===n&&(n!==void 0||r in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[r])||(e.copy_[r]=n,e.assigned_[r]=!0),!0},deleteProperty(e,r){return pR(e.base_,r)!==void 0||r in e.base_?(e.assigned_[r]=!1,fR(e),hR(e)):delete e.assigned_[r],e.copy_&&delete e.copy_[r],!0},getOwnPropertyDescriptor(e,r){const n=Kp(e),o=Reflect.getOwnPropertyDescriptor(n,r);return o&&{writable:!0,configurable:e.type_!==1||r!=="length",enumerable:o.enumerable,value:n[r]}},defineProperty(){Ts(11)},getPrototypeOf(e){return qy(e.base_)},setPrototypeOf(){Ts(12)}},Yy={};x4(dR,(e,r)=>{Yy[e]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}}),Yy.deleteProperty=function(e,r){return Yy.set.call(this,e,r,void 0)},Yy.set=function(e,r,n){return dR.set.call(this,e[0],r,n,e[0])};function pR(e,r){const n=e[Ha];return(n?Kp(n):e)[r]}function oet(e,r,n){const o=Sre(r,n);return o?"value"in o?o.value:o.get?.call(e.draft_):void 0}function Sre(e,r){if(!(r in e))return;let n=qy(e);for(;n;){const o=Object.getOwnPropertyDescriptor(n,r);if(o)return o;n=qy(n)}}function hR(e){e.modified_||(e.modified_=!0,e.parent_&&hR(e.parent_))}function fR(e){e.copy_||(e.copy_=sR(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var aet=class{constructor(r){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(n,o,a)=>{if(typeof n=="function"&&typeof o!="function"){const s=o;o=n;const l=this;return function(c=s,...u){return l.produce(c,d=>o.call(this,d,...u))}}typeof o!="function"&&Ts(6),a!==void 0&&typeof a!="function"&&Ts(7);let i;if(Xp(n)){const s=kre(this),l=mR(n,void 0);let c=!0;try{i=o(l),c=!1}finally{c?cR(s):uR(s)}return wre(s,a),_re(i,s)}else if(!n||typeof n!="object"){if(i=o(n),i===void 0&&(i=n),i===mre&&(i=void 0),this.autoFreeze_&&lR(i,!0),a){const s=[],l=[];Zp("Patches").generateReplacementPatches_(n,i,s,l),a(s,l)}return i}else Ts(1,n)},this.produceWithPatches=(n,o)=>{if(typeof n=="function")return(s,...l)=>this.produceWithPatches(s,c=>n(c,...l));let a,i;return[this.produce(n,o,(s,l)=>{a=s,i=l}),a,i]},typeof r?.autoFreeze=="boolean"&&this.setAutoFreeze(r.autoFreeze),typeof r?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(r.useStrictShallowCopy),typeof r?.useStrictIteration=="boolean"&&this.setUseStrictIteration(r.useStrictIteration)}createDraft(r){Xp(r)||Ts(8),Ym(r)&&(r=iet(r));const n=kre(this),o=mR(r,void 0);return o[Ha].isManual_=!0,uR(n),o}finishDraft(r,n){const o=r&&r[Ha];(!o||!o.isManual_)&&Ts(9);const{scope_:a}=o;return wre(a,n),_re(void 0,a)}setAutoFreeze(r){this.autoFreeze_=r}setUseStrictShallowCopy(r){this.useStrictShallowCopy_=r}setUseStrictIteration(r){this.useStrictIteration_=r}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(r,n){let o;for(o=n.length-1;o>=0;o--){const i=n[o];if(i.path.length===0&&i.op==="replace"){r=i.value;break}}o>-1&&(n=n.slice(o+1));const a=Zp("Patches").applyPatches_;return Ym(r)?a(r,n):this.produce(r,i=>a(i,n))}};function mR(e,r){const n=Uy(e)?Zp("MapSet").proxyMap_(e,r):k4(e)?Zp("MapSet").proxySet_(e,r):net(e,r);return(r?r.scope_:xre()).drafts_.push(n),n}function iet(e){return Ym(e)||Ts(10,e),Cre(e)}function Cre(e){if(!Xp(e)||E4(e))return e;const r=e[Ha];let n,o=!0;if(r){if(!r.modified_)return r.base_;r.finalized_=!0,n=sR(e,r.scope_.immer_.useStrictShallowCopy_),o=r.scope_.immer_.shouldUseStrictIteration()}else n=sR(e,!0);return x4(n,(a,i)=>{vre(n,a,Cre(i))},o),r&&(r.finalized_=!1),n}var set=new aet,T4=set.produce;class Gm{static LeftPadding=42;static RightPadding=42;static TopPadding=60;static BottomPadding=42;id;minX=1/0;minY=1/0;maxX=-1/0;maxY=-1/0;initialX;initialY;get positionAbsolute(){return{x:this.minX,y:this.minY}}get initialPositionAbsolute(){return{x:this.initialX,y:this.initialY}}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 diff(){return{x:this.positionAbsolute.x-this.initialX,y:this.positionAbsolute.y-this.initialY}}get isMoved(){return this.diff.x!==0||this.diff.y!==0}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}=ao(r);this.maxX=this.minX+Math.ceil(o),this.maxY=this.minY+Math.ceil(a),this.initialX=this.positionAbsolute.x,this.initialY=this.positionAbsolute.y,n&&n.children.push(this)}}class A4 extends Gm{constructor(r,n=null){super(r,n),this.parent=n}children=[]}class cet extends Gm{constructor(r,n=null){super(r,n),this.parent=n}}function Tre(e,r){return n=>{const o=bt(n.get(e.id),`Edge ${e.id} not found`),{x:a,y:i}=r.diff;return a===0&&i===0?{id:e.id,type:"replace",item:T4(o,s=>{s.data.points=e.data.points,s.data.controlPoints=e.data.controlPoints,s.data.labelXY=e.data.labelXY,s.data.labelBBox=e.data.labelBBox})}:{id:e.id,type:"replace",item:T4(o,s=>{s.data.points=Sn(e.data.points,l=>[l[0]+a,l[1]+i]),e.data.controlPoints&&(s.data.controlPoints=(e.data.controlPoints??[]).map(l=>({x:l.x+a,y:l.y+i}))),e.data.labelXY&&(s.data.labelXY={x:e.data.labelXY.x+a,y:e.data.labelXY.y+i}),e.data.labelBBox&&(s.data.labelBBox={x:e.data.labelBBox.x+a,y:e.data.labelBBox.y+i,width:e.data.labelBBox.width,height:e.data.labelBBox.height})})}}}function Are(e,r){const{parentLookup:n,nodeLookup:o,edges:a,edgeLookup:i}=e.getState(),s=new Map,l=new Xn(T=>{let A=o.get(T)?.parentId;return A?[A,...l.get(A)]:[]}),c=new Xn(T=>{const A=n.get(T);if(!A||A.size===0)return new Set;const R=new Set;for(const D of A.values()){R.add(D.id);for(const N of c.get(D.id))R.add(N)}return R}),u=new Set(r.flatMap(T=>l.get(T))),d=[...o.values()].flatMap(T=>T.parentId?[]:{xynode:T,parent:null});for(;d.length>0;){const{xynode:T,parent:A}=d.shift();if(!r.includes(T.id)&&u.has(T.id)){const R=new A4(T,A);s.set(T.id,R),n.get(T.id)?.forEach(D=>{d.push({xynode:D,parent:R})})}else s.set(T.id,new cet(T,A))}const h=[...s.values()],f=new Map;for(const T of h){if(T instanceof A4)continue;const A=c.get(T.id);A.size!==0&&En(a,hp(R=>!f.has(R)&&A.has(R.source)&&A.has(R.target)),mNe(R=>{f.set(R,Tre(R,T))}))}const g=T=>s.get(T)??l.get(T).map(A=>s.get(A)).find(A=>!!A)??null,b=new Set(r.flatMap(T=>[T,...c.get(T)]));for(const T of a){if(f.has(T))continue;const A=b.has(T.source),R=b.has(T.target);if(A&&R){let D=s.get(T.source)??s.get(T.target)??l.get(T.source).map(N=>s.get(N)).find(N=>!!N)??l.get(T.target).map(N=>s.get(N)).find(N=>!!N);D&&f.set(T,Tre(T,D));continue}if(A!==R){const D=g(A?T.source:T.target);if(!D)continue;const N=T.data.controlPoints??jw(T.data.points),M=bt(o.get(T.source),`Source node ${T.source} not found`),O=bt(o.get(T.target),`Target node ${T.target} not found`),F=jo(vJ(M,O)),L=jo(vJ(O,M)),[U,P]=A?[F,L]:[L,F],V=U.subtract(P),I=V.length();f.set(T,H=>{const q=bt(H.get(T.id),`Edge ${T.id} not found`),{x:Z,y:W}=D.diff;if(Z===0&&W===0)return{id:T.id,type:"replace",item:T4(q,j=>{j.data.points=T.data.points,j.data.controlPoints=T.data.controlPoints,j.data.labelXY=T.data.labelXY,j.data.labelBBox=T.data.labelBBox})};const G=jo(Z,W),K=j=>{const Y=jo(j),Q=Y.subtract(P).dot(V),J=Math.min(Q/I**2,1),ie=Y.add(G.multiply(J));return{x:Math.round(ie.x),y:Math.round(ie.y)}};return{id:T.id,type:"replace",item:T4(q,j=>{if(j.data.controlPoints=N.map(K),T.data.labelBBox){const{x:Y,y:Q}=K(T.data.labelBBox);j.data.labelBBox={x:Y,y:Q,width:T.data.labelBBox.width,height:T.data.labelBBox.height}}T.data.labelXY&&(j.data.labelXY=K(T.data.labelXY))})}});continue}}function x(T){for(const A of T){if(!(A instanceof A4))continue;x(A.children);const R={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};for(const D of A.children)R.minX=Math.min(R.minX,D.minX),R.minY=Math.min(R.minY,D.minY),R.maxX=Math.max(R.maxX,D.maxX),R.maxY=Math.max(R.maxY,D.maxY);A.minX=R.minX-Gm.LeftPadding,A.minY=R.minY-Gm.TopPadding,A.maxX=R.maxX+Gm.RightPadding,A.maxY=R.maxY+Gm.BottomPadding}}const w=[...f.values()];function k(){x(h);const T=h.reduce((R,D)=>(R.push({id:D.id,type:"position",dragging:!1,position:D.position,positionAbsolute:D.positionAbsolute}),D instanceof A4&&R.push({id:D.id,type:"dimensions",setAttributes:!0,dimensions:D.dimensions}),R),[]);e.getState().triggerNodeChanges(T);const A=w.map(R=>R(i));A.length>0&&e.getState().triggerEdgeChanges(A)}let C=null;function _(){h.length!==0&&(C??=requestAnimationFrame(()=>{C=null;for(const T of r){const A=bt(s.get(T)),R=bt(o.get(T));A.positionAbsolute=R.internals.positionAbsolute}k()}))}return{rects:s,onMove:_,updateXYFlow:k}}function uet(){const e=AT(),r=Qt(),n=E.useRef(void 0);return E.useMemo(()=>({onNodeDragStart:(o,a)=>{r.startEditing("node");const{nodeLookup:i}=e.getState(),s=En(Array.from(i.values()),hp(l=>l.draggable!==!1&&(l.dragging===!0||l.id===a.id||l.selected===!0)));bo(s,1)&&(n.current=Are(e,Sn(s,l=>l.id)))},onNodeDrag:o=>{n.current?.onMove()},onNodeDragStop:o=>{const a=n.current?VB(n.current.rects.values(),i=>i.isMoved):!1;r.stopEditing(a),n.current=void 0}}),[e,r])}const det={relationship:fre.RelationshipEdge,"seq-step":fre.SequenceStepEdge},Yu={element:_c(Gp.ElementNode),deployment:_c(Gp.DeploymentNode),"compound-element":_c(Gp.CompoundElementNode),"compound-deployment":_c(Gp.CompoundDeploymentNode),"view-group":_c(Gp.ViewGroupNode),"seq-actor":_c(Gp.SequenceActorNode),"seq-parallel":_c(Gp.SequenceParallelArea)};function pet(e){return!e||fp(e)?Yu:{element:e.element??Yu.element,deployment:e.deployment??Yu.deployment,"compound-element":e.compoundElement??Yu["compound-element"],"compound-deployment":e.compoundDeployment??Yu["compound-deployment"],"view-group":e.viewGroup??Yu["view-group"],"seq-actor":e.seqActor??Yu["seq-actor"],"seq-parallel":e.seqParallel??Yu["seq-parallel"]}}const het=({context:e,children:r})=>{const n=e.toggledFeatures,o=e.features.enableReadOnly||n.enableReadOnly===!0,a=o||r.syncLayout?.getSnapshot().context.editing!=="edge";return{enableReadOnly:o,initialized:e.initialized.xydata&&e.initialized.xyflow,nodes:e.xynodes,edges:e.xyedges,pannable:e.pannable,zoomable:e.zoomable,nodesDraggable:!o&&e.nodesDraggable,nodesSelectable:e.nodesSelectable&&a,fitViewPadding:e.fitViewPadding,enableFitView:e.toggledFeatures.enableFitView??e.features.enableFitView,...!e.features.enableFitView&&{viewport:{x:-Math.min(e.view.bounds.x,0),y:-Math.min(e.view.bounds.y,0),zoom:1}}}},fet=(e,r)=>e.enableReadOnly===r.enableReadOnly&&e.initialized===r.initialized&&e.pannable===r.pannable&&e.zoomable===r.zoomable&&e.nodesDraggable===r.nodesDraggable&&e.nodesSelectable===r.nodesSelectable&&e.enableFitView===r.enableFitView&&an(e.fitViewPadding,r.fitViewPadding)&&an(e.nodes,r.nodes)&&an(e.edges,r.edges)&&an(e.viewport??null,r.viewport??null);function met({background:e="dots",reactFlowProps:r={},children:n,renderNodes:o}){const a=Qt();let{enableReadOnly:i,initialized:s,nodes:l,edges:c,enableFitView:u,nodesDraggable:d,nodesSelectable:h,...f}=ZS(het,fet);const{onNodeContextMenu:g,onCanvasContextMenu:b,onEdgeContextMenu:x,onNodeClick:w,onEdgeClick:k,onCanvasClick:C,onCanvasDblClick:_}=Fm(),T=fje(),A=uet(),R=gje(),D=NU(()=>{R.set(!0)},T?120:400),N=Yf(()=>{D.clear(),R.set(!1)},T?350:200),M=kt(U=>{U&&(R.get()||D.start(),N())}),O=kt((U,P)=>{D.clear(),a.send({type:"xyflow.viewportMoved",viewport:P,manually:!!U})}),F=kt(()=>{a.send({type:"xyflow.resized"})}),L=jF(()=>pet(o),[o],TJ);return qp(()=>{console.warn("renderNodes changed - this might degrade performance")},[L]),y.jsx(IT,{nodes:l,edges:c,className:et(s?"initialized":"not-initialized"),nodeTypes:L,edgeTypes:det,onNodesChange:kt(U=>{a.send({type:"xyflow.applyNodeChanges",changes:U})}),onEdgesChange:kt(U=>{a.send({type:"xyflow.applyEdgeChanges",changes:U})}),background:s?e:"transparent",fitView:!1,onNodeClick:kt((U,P)=>{U.stopPropagation(),a.send({type:"xyflow.nodeClick",node:P}),w?.(a.findDiagramNode(P.id),U)}),onEdgeClick:kt((U,P)=>{U.stopPropagation(),a.send({type:"xyflow.edgeClick",edge:P}),k?.(a.findDiagramEdge(P.id),U)}),onEdgeDoubleClick:kt((U,P)=>{U.stopPropagation(),a.send({type:"xyflow.edgeDoubleClick",edge:P})}),onPaneClick:kt(U=>{U.stopPropagation(),a.send({type:"xyflow.paneClick"}),C?.(U)}),onDoubleClick:kt(U=>{U.stopPropagation(),U.preventDefault(),a.send({type:"xyflow.paneDblClick"}),_?.(U)}),onNodeMouseEnter:kt((U,P)=>{U.stopPropagation(),a.send({type:"xyflow.nodeMouseEnter",node:P})}),onNodeMouseLeave:kt((U,P)=>{U.stopPropagation(),a.send({type:"xyflow.nodeMouseLeave",node:P})}),onEdgeMouseEnter:kt((U,P)=>{U.stopPropagation(),a.send({type:"xyflow.edgeMouseEnter",edge:P,event:U})}),onEdgeMouseLeave:kt((U,P)=>{U.stopPropagation(),a.send({type:"xyflow.edgeMouseLeave",edge:P,event:U})}),onMove:M,onMoveEnd:O,onInit:kt(U=>{a.send({type:"xyflow.init",instance:U})}),onNodeContextMenu:kt((U,P)=>{const V=bt(a.findDiagramNode(P.id),`diagramNode ${P.id} not found`);g?.(V,U)}),onEdgeContextMenu:kt((U,P)=>{const V=bt(a.findDiagramEdge(P.id),`diagramEdge ${P.id} not found`);x?.(V,U)}),...b&&{onPaneContextMenu:b},...u&&{onViewportResize:F},nodesDraggable:d,nodesSelectable:h,elevateEdgesOnSelect:!i,...d&&A,...f,...r,children:n})}function get(e){const{view:r}=e,n=[],o=[],a=new Map,i=J8.from(r.nodes.reduce((d,h)=>(a.set(h.id,h),h.parent||d.push({node:h,parent:null}),d),[]));let s=d=>!0;if(e.where)try{const d=Xd(e.where);s=h=>d({...Gq(h,["tags","kind"]),..."source"in h?{source:c(h.source)}:h,..."target"in h?{target:c(h.target)}:h})}catch(d){console.error("Error in where filter:",d)}const l="",c=d=>bt(a.get(d),`Node not found: ${d}`);let u;for(;u=i.dequeue();){const{node:d,parent:h}=u,f=bo(d.children,1)||d.kind==V1;if(f)for(const R of d.children)i.enqueue({node:c(R),parent:d});const g={x:d.x,y:d.y};h&&(g.x-=h.x,g.y-=h.y);const b=l+d.id,x=d.drifts??null,w={id:b,deletable:!1,position:g,zIndex:f?_l.Compound:_l.Element,style:{width:d.width,height:d.height},initialWidth:d.width,initialHeight:d.height,hidden:d.kind!==V1&&!s(d),...h&&{parentId:l+h.id}},k={viewId:r.id,id:d.id,title:d.title,color:d.color,shape:d.shape,style:d.style,depth:d.depth??0,icon:d.icon??"none",tags:d.tags??null,x:d.x,y:d.y},C={viewId:r.id,id:d.id,title:d.title,technology:d.technology??null,description:or.from(d.description),height:d.height,width:d.width,level:d.level,color:d.color,shape:d.shape,style:d.style,icon:d.icon??null,tags:d.tags,x:d.x,y:d.y,isMultiple:d.style?.multiple??!1};if(d.kind===V1){n.push({...w,type:"view-group",data:{isViewGroup:!0,...k},dragHandle:".likec4-compound-title-container"});continue}const _=d.modelRef??null,T=d.deploymentRef??null;if(!_&&!T)throw console.error("Invalid node",d),new Error("Element should have either modelRef or deploymentRef");const A={navigateTo:d.navigateTo??null};switch(!0){case(f&&!!T):{n.push({...w,type:"compound-deployment",data:{...k,...A,deploymentFqn:T,modelFqn:_,drifts:x}});break}case f:{at(!!_,"ModelRef expected"),n.push({...w,type:"compound-element",data:{...k,...A,modelFqn:_,drifts:x}});break}case!!T:{n.push({...w,type:"deployment",data:{...C,...A,deploymentFqn:T,modelFqn:_,drifts:x}});break}default:at(!!_,"ModelRef expected"),n.push({...w,type:"element",data:{...C,...A,modelFqn:_,drifts:x}})}}for(const d of r.edges){const h=d.source,f=d.target,g=l+d.id;if(!bo(d.points,2)){console.error("edge should have at least 2 points",d);continue}o.push({id:g,type:"relationship",source:l+h,target:l+f,zIndex:_l.Edge,hidden:!s(d),deletable:!1,data:{id:d.id,label:d.label,technology:d.technology,notes:or.from(d.notes),navigateTo:d.navigateTo,controlPoints:d.controlPoints??null,labelBBox:d.labelBBox??null,labelXY:d.labelBBox?{x:d.labelBBox.x,y:d.labelBBox.y}:null,points:d.points,color:d.color??"gray",line:d.line??"dashed",dir:d.dir??"forward",head:d.head??"normal",tail:d.tail??"none",astPath:d.astPath,drifts:d.drifts??null},interactionWidth:20})}return{bounds:r.bounds,xynodes:n,xyedges:o}}const Rre={parallel:1,actor:10},R4={default:"gray",active:"amber"};function yet(e){const{actors:r,steps:n,compounds:o,parallelAreas:a,bounds:i}=e.sequenceLayout,s=[],l=[],c=u=>bt(e.nodes.find(d=>d.id===u));for(const u of o)s.push(bet(u,c(u.origin),e));for(const u of a)s.push(vet(u,e));for(const u of r)s.push(xet(u,c(u.id),i,e));for(const u of n){const d=e.edges.find(h=>h.id===u.id);if(!d)throw new Error(`Edge ${u.id} not found`);l.push(wet(u,d))}return{bounds:i,xynodes:s,xyedges:l}}function bet({id:e,x:r,y:n,width:o,height:a,depth:i},s,l){return{id:e,type:"view-group",data:{id:s.id,title:s.title,color:s.color??"gray",shape:s.shape,style:s.style,tags:s.tags,x:r,y:n,viewId:l.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 vet({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:R4.default,shape:"rectangle",style:{},tags:[],x:r,y:n,level:0,icon:null,width:o,height:a,description:or.EMPTY,viewId:i.id,parallelPrefix:e},zIndex:Rre.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 xet({id:e,x:r,y:n,width:o,height:a,ports:i},s,l,c){return{id:e,type:"seq-actor",data:{id:s.id,x:r,y:n,level:0,icon:s.icon??null,isMultiple:s.style.multiple??!1,title:s.title,width:o,height:a,color:s.color,navigateTo:s.navigateTo??null,shape:s.shape,style:s.style,tags:s.tags,modelFqn:s.modelRef??null,technology:s.technology??null,description:or.from(s.description),viewHeight:l.height,viewId:c.id,ports:i},deletable:!1,selectable:!0,zIndex:Rre.actor,position:{x:r,y:n},width:o,initialWidth:o,height:a,initialHeight:a}}function wet({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:or.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 ket({dynamicViewVariant:e,...r}){const n=r.view,o=n._type==="dynamic",{bounds:a,xynodes:i,xyedges:s}=o&&e==="sequence"?yet(n):get(r);return o&&n.variant!==e?{view:{...n,bounds:a,variant:e},xynodes:i,xyedges:s}:{view:a===n.bounds?n:{...n,bounds:a},xynodes:i,xyedges:s}}function Nre(e){return{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})},startEditing:r=>{const n=jn(e.system).syncLayoutActorRef;at(n,"No sync layout actor found in diagram actor system"),n.send({type:"editing.start",subject:r})},stopEditing:(r=!1)=>{const n=jn(e.system).syncLayoutActorRef;at(n,"No sync layout actor found in diagram actor system"),n.send({type:"editing.stop",wasChanged:r})},undoEditing:()=>{const r=jn(e.system).syncLayoutActorRef;at(r,"No sync layout actor found in diagram actor system");const n=r.getSnapshot().context.history.length>0;return n&&r.send({type:"undo"}),n},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=>Hm(e.getSnapshot().context,r),findEdge:r=>e.getSnapshot().context.xyedges.find(n=>n.data.id===r)??null,findDiagramEdge:r=>UA(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}})},triggerChange:r=>{e.send({type:"emit.onChange",change:r})},switchDynamicViewVariant:r=>{e.send({type:"switch.dynamicViewVariant",variant:r})}}}function _et({context:e,event:r}){Tt(r,"update.view");const n=r.view,o=e.view.id===n.id,a=e.xynodes,i=r.xynodes.map(l=>{const c=a.find(u=>u.id===l.id);if(c){if(c===l)return c;const{width:u,height:d}=ao(c);return lt(c.type,l.type)&<(u,l.initialWidth)&<(d,l.initialHeight)&<(c.hidden??!1,l.hidden??!1)&<(c.position,l.position)&<(c.data,l.data)&<(c.parentId??null,l.parentId??null)?c:{...Eu(c,["measured","parentId","hidden"]),...l,width:l.initialWidth,height:l.initialHeight}}return l});let s=r.xyedges;if(o&&(!n.drifts||n.drifts.length===0)){const l=e.xyedges;s=r.xyedges.map(c=>{const u=l.find(d=>d.id===c.id);return u===c?u:u&&u.type===c.type?lt(u.hidden??!1,c.hidden??!1)&<(u.data,c.data)&<(u.source,c.source)&<(u.target,c.target)&<(u.sourceHandle,c.sourceHandle)&<(u.targetHandle,c.targetHandle)?u:{...Eu(u,["hidden","sourceHandle","targetHandle"]),...c,data:{...u.data,...c.data}}:c})}return{xynodes:i,xyedges:s,view:n}}function Eet(e){const{xynodes:r,xyedges:n,focusedNode:o}=e.context;if(!o)return{};const a=new Set([o]),i=n.map(s=>s.source===o||s.target===o?(a.add(s.source),a.add(s.target),cr.setData(s,{dimmed:!1,active:!0})):cr.setData(s,{dimmed:!0,active:!1}));return{xynodes:r.map(s=>cr.setDimmed(s,!a.has(s.id))),xyedges:i}}function Dre({context:e,event:r}){Tt(r,"update.view");let{navigationHistory:{currentIndex:n,history:o},lastOnNavigate:a,viewport:i}=e;const s=o[n];if(!s)return{navigationHistory:{currentIndex:0,history:[{viewId:r.view.id,fromNode:null,viewport:{...i}}]}};if(s.viewId!==r.view.id){if(!a){const l=n>0?bt(o[n-1]):null;if(l&&l.viewId===r.view.id)return{navigationHistory:{currentIndex:n-1,history:o},lastOnNavigate:{fromView:s.viewId,toView:l.viewId,fromNode:s.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 Tet({context:e}){const{navigationHistory:{currentIndex:r,history:n}}=e;at(r{if(n.id!==r.nodeId)return n;const o=Uq(n.data,r.data);return lt(o,n.data)?n:{...n,data:o}})}}function Ret({context:e,event:r}){return Tt(r,"update.edgeData"),{xyedges:e.xyedges.map(n=>{if(n.id!==r.edgeId)return n;const o=Uq(n.data,r.data);return lt(o,n.data)?n:{...n,data:o}})}}function $re(e,r,n){const o=ao(e),a=o.width/2/n.x,i=o.height/2/n.y,s=Math.min(Math.abs(a),Math.abs(i));return jo(n).multiply(s).add(r)}function Mre(e,r){const n=bt(e.get(r.source),`Source node ${r.source} not found`),o=bt(e.get(r.target),`Target node ${r.target} not found`),a=jo(Ty(n)),i=jo(Ty(o));if(n===o){const u=jo(0,n.height||0).multiply(-.5).add(a);return[u.add(jo(-32,-80)),u.add(jo(32,-80))]}const s=i.subtract(a),l=$re(n,a,s),c=$re(o,i,s.multiply(-1));return[l.add(c.subtract(l).multiply(.4))]}function Net({context:e}){const{stepId:r,parallelPrefix:n}=bt(e.activeWalkthrough,"activeWalkthrough is null"),o=bt(e.xyedges.find(a=>a.id===r));return{xyedges:e.xyedges.map(a=>{const i=r===a.id||!!n&&a.id.startsWith(n);return cr.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"?cr.setData(a,{color:n===a.data.parallelPrefix?R4.active:R4.default,dimmed:i}):cr.setDimmed(a,i)})}}class Pre{}class Xm extends Pre{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 Det extends Pre{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=En(r,W3(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(s=>s.x)),o=Math.min(...r.map(s=>s.y)),a=Math.max(...r.map(s=>s.x+s.width)),i=Math.max(...r.map(s=>s.y+s.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((s,l)=>s[this.secondaryAxisCoord]-l[this.secondaryAxisCoord])),n}buildLayout(r,n,o){const a=new Map(o.map(b=>[b.id,b])),i=[],s=r.reduce((b,x)=>b+x.primaryAxisSize,0),l=r.length>1?(n[this.primaryAxisDimension]-s)/(r.length-1):0,c=r.reduce((b,x,w)=>r[b].occupiedSpaceb+x.primaryAxisSize+l,n[this.primaryAxisCoord]),h=this.buildLayerLayout(u,n,d,a,null);u.layout=h,i.push(...h.nodePositions);let f=d+u.primaryAxisSize+l,g=u;for(let b=c+1;b=0;b--){const x=r[b];f-=x.primaryAxisSize+l,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 s=this.scoreLayout(this.spaceAround(r,n,o),a);if(r.nodes.length!=1){const l=this.scoreLayout(this.spaceBetween(r,n,o),a);s=l[0]=r.nodes.length){const l=this.scoreLayout(this.placeInGaps(r,o,i),a);s=l[0]=r.nodes.length){const l=this.scoreLayout(this.placeInCells(r,o,i),a);s=l[0]c[this.secondaryAxisCoord]))s.set(l.id,{[this.secondaryAxisCoord]:i,[this.primaryAxisCoord]:o}),i+=l[this.secondaryAxisDimension]+a;return{nodePositions:s,refLayer:null}}placeInGaps(r,n,o){const a=new Map,i=r.nodes,s=this.getGapsPositions(o);let l=0;for(let c=0,u=i[c];c{const i=n.get(o);return at(i,`Could not find original rect for node ${o}`),[Gq(i,["x","y"]),a]}),Sn(([o,a])=>Math.abs(o[this.secondaryAxisCoord]-a[this.secondaryAxisCoord])),U3((o,a)=>o+a,0)),r]}getGapsPositions(r){const n=[],{layout:o,nodes:a}=r;at(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 Xm(r=>Math.min(...r.map(n=>n.y)),(r,n)=>Math.floor(r),"y");case"Right":return new Xm(r=>Math.max(...r.map(n=>n.x+n.width)),(r,n)=>Math.floor(r-n.width),"x");case"Bottom":return new Xm(r=>Math.max(...r.map(n=>n.y+n.height)),(r,n)=>Math.floor(r-n.height),"y");case"Center":return new Xm(r=>Math.min(...r.map(n=>n.x+n.width/2)),(r,n)=>Math.floor(r-n.width/2),"x");case"Middle":return new Xm(r=>Math.min(...r.map(n=>n.y+n.height/2)),(r,n)=>Math.floor(r-n.height/2),"y")}}function zre(e){const{width:r,height:n}=ao(e);return{...e.internals.positionAbsolute,id:e.id,width:r,height:n}}function Met(e){switch(e){case"Left":case"Right":case"Top":case"Bottom":case"Center":case"Middle":return $et(e);case"Column":case"Row":return new Det(e);default:Zi(e)}}function Ire(e,r){if(e._type==="dynamic")try{if(r??=e.variant,r==="sequence")return e.sequenceLayout.bounds}catch{}return e.bounds}function Pet({points:e,controlPoints:r,labelBBox:n}){let o=1/0,a=1/0,i=-1/0,s=-1/0;for(const l of e)o=Math.min(o,l[0]),a=Math.min(a,l[1]),i=Math.max(i,l[0]),s=Math.max(s,l[1]);if(r)for(const l of r)o=Math.min(o,l.x),a=Math.min(a,l.y),i=Math.max(i,l.x),s=Math.max(s,l.y);return n&&(o=Math.min(o,n.x),a=Math.min(a,n.y),i=Math.max(i,n.x+n.width),s=Math.max(s,n.y+n.height)),{x:o,y:a,width:i-o,height:s-a}}function zet({nodes:e,edges:r}){return il.expand(il.merge(...e,...r.map(Pet)),10)}function gR(e){const{view:{drifts:r,_layout:n,...o},xynodes:a,xyedges:i,xystore:s}=e,{nodeLookup:l}=s.getState(),c=new Set,u=Fq(a,g=>g.data.id),d=Fq(i,g=>g.data.id),h=Sn(o.nodes,g=>{const b=u[g.id];if(!b)return g;const x=l.get(b.id),w=ao(x);return!wJ(x.internals.positionAbsolute,g)||g.width!==w.width||g.height!==w.height||g.shape!==b.data.shape||g.color!==b.data.color||g.style.border!==b.data.style.border||g.style.opacity!==b.data.style.opacity?(c.add(b.id),{...g,shape:b.data.shape,color:b.data.color,style:{...g.style,...b.data.style},x:Math.floor(x.internals.positionAbsolute.x),y:Math.floor(x.internals.positionAbsolute.y),width:Math.ceil(w.width),height:Math.ceil(w.height)}):g}),f=Sn(o.edges,g=>{const b=d[g.id];if(!b)return g;const x=b.data;let w=x.controlPoints??[];const k=c.has(b.source)||c.has(b.target);w.length===0&&k&&(w=jw(x.points));const C={...Eu(g,["controlPoints"]),points:x.points};return x.labelXY&&x.labelBBox&&(C.labelBBox={...x.labelBBox,...x.labelXY}),x.labelBBox&&(C.labelBBox??=x.labelBBox),bo(w,1)&&(C.controlPoints=w),C});return{op:"save-view-snapshot",layout:{...o,bounds:zet({nodes:h,edges:f}),nodes:h,edges:f}}}function Ore(e,r){return r.map(n=>{const o=e.find(a=>a.id===n.id);if(o&&o.type===n.type&&o.source===n.source&&o.target===n.target){const a=lt(o.data,n.data);return a&<(o.hidden??!1,n.hidden??!1)&<(o.selected??!1,n.selected??!1)&<(o.animated??!1,n.animated??!1)&<(o.sourceHandle??null,n.sourceHandle??null)&<(o.targetHandle??null,n.targetHandle??null)&<(o.zIndex??0,n.zIndex??0)&<(o.label??null,n.label??null)?o:{...Eu(o,["hidden","zIndex"]),...n,data:a?o.data:n.data}}return n})}function jre(e,r){return F3(r)?Ore(e,r):(r=e,n=>Ore(n,r))}function Lre(e,r){return r.map(n=>{const o=e.find(a=>a.id===n.id);if(o&<(o.type,n.type)){const a=lt(o.data,n.data),{width:i,height:s}=ao(o);return a&<(i,n.initialWidth)&<(s,n.initialHeight)&<(o.parentId??null,n.parentId??null)&<(o.hidden??!1,n.hidden??!1)&<(o.zIndex??0,n.zIndex??0)&<(o.position,n.position)?o:{...Eu(o,["measured","parentId","hidden","zIndex"]),...n,width:n.initialWidth,height:n.initialHeight,data:a?o.data:n.data}}return n})}function yR(e,r){return F3(r)?Lre(e,r):(r=e,n=>Lre(n,r))}const bR={top:"40px",bottom:"22px",left:"22px",right:"22px"};function Bre(e){const r=[],n=[],o=new Map,a=J8.from(e.nodes.reduce((l,c)=>(o.set(c.id,c),c.parent||l.push({node:c,parent:null}),l),[])),i=l=>bt(o.get(l),`Node not found: ${l}`);let s;for(;s=a.dequeue();){const{node:l,parent:c}=s,u=bo(l.children,1)||l.kind==V1;if(u)for(const x of l.children)a.enqueue({node:i(x),parent:l});const d={x:l.x,y:l.y};c&&(d.x-=c.x,d.y-=c.y);const h=l.id,f={id:h,draggable:!1,selectable:!0,focusable:!0,position:d,zIndex:u?_l.Compound:_l.Element,style:{width:l.width,height:l.height},initialWidth:l.width,initialHeight:l.height,...c&&{parentId:c.id}},g=l.modelRef??null,b={navigateTo:l.navigateTo??null};switch(!0){case l.kind===Xw.Empty:{r.push({...f,type:"empty",data:{column:l.column}});break}case(u&&!!g):{r.push({...f,type:"compound",data:{id:h,column:l.column,title:l.title,color:l.color,shape:l.shape,style:l.style,depth:l.depth??0,icon:l.icon??"none",ports:l.ports,existsInCurrentView:l.existsInCurrentView,fqn:g,...b}});break}default:at(g,"Element should have either modelRef or deploymentRef"),r.push({...f,type:"element",data:{id:h,column:l.column,fqn:g,title:l.title,technology:l.technology,description:l.description,height:l.height,width:l.width,color:l.color,shape:l.shape,icon:l.icon??"none",ports:l.ports,style:l.style,existsInCurrentView:l.existsInCurrentView,tags:l.tags,...b}})}}for(const l of e.edges){const c=l.source,u=l.target,d=l.id;if(!bo(l.points,2)){console.error("edge should have at least 2 points",l);continue}if(!bo(l.relations,1)){console.error("edge should have at least 1 relation",l);continue}n.push({id:d,type:"relationship",source:c,target:u,sourceHandle:l.sourceHandle,targetHandle:l.targetHandle,data:{sourceFqn:l.sourceFqn,targetFqn:l.targetFqn,relations:l.relations,color:l.color??"gray",label:l.label,navigateTo:l.navigateTo??null,line:l.line??"dashed",existsInCurrentView:l.existsInCurrentView},interactionWidth:20})}return{xynodes:r,xyedges:n}}const Fre=e=>e.find(r=>r.data.column==="subjects"&&z9(r.parentId)),Iet=wBe(async({input:e,self:r,signal:n})=>{const{subjectId:o,navigateFromNode:a,xyflow:i,xystore:s,update:l}=e;let{nodes:c,width:u,height:d}=s.getState();const h=Bre(l),f=()=>{const{nodes:M,edges:O}=s.getState();return{xynodes:yR(M,h.xynodes),xyedges:jre(O,h.xyedges)}},g=bt(r._parent);let b=i.getZoom();const x=Math.max(b,1),w=vu(l.bounds,u,d,_s,x,bR),k=h.xynodes.find(M=>M.type!=="empty"&&M.data.column==="subjects"&&M.data.fqn===o)??Fre(h.xynodes),C=Fre(c),_=a?c.find(M=>M.id===a):c.find(M=>M.type!=="empty"&&M.data.column!=="subjects"&&M.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},A=i.getInternalNode(C.id),R=Ty(A),D=new Set;if(c.forEach(M=>{if(M.id!==_.id){if(M.data.column==="subjects"){D.add(M.id);return}M.parentId&&(M.parentId===_.id||D.has(M.parentId))&&D.add(M.id)}}),c=yR(c,c.flatMap(M=>D.has(M.id)?[]:M.id!==_.id?{...M,data:{...M.data,dimmed:M.data.column==="subjects"?"immediate":!0}}:{...Eu(M,["parentId"]),position:{x:R.x-M.initialWidth/2,y:R.y-M.initialHeight/2},zIndex:_l.Max,hidden:!1,data:{...M.data,dimmed:!1}})),g.send({type:"update.xydata",xynodes:c,xyedges:[]}),await qB(120),h.xynodes=h.xynodes.map(cr.setDimmed(!1)),n.aborted)return f();const N=300;return i.setCenter(R.x,R.y,{zoom:b,duration:N,interpolate:"smooth"}),await qB(N),await i.setCenter(T.x,T.y,{zoom:b}),f()}),Cc=wl({actors:{layouter:Iet},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}}),Hre=()=>Cc.assign(({event:e})=>(Tt(e,"xyflow.init"),{xyflow:e.instance,xystore:e.store})),Vre=()=>Cc.assign(({event:e})=>(Tt(e,"update.view"),{layouted:e.layouted,...Bre(e.layouted)})),Oet=()=>Cc.createAction(({context:e})=>{at(e.xystore,"xystore is not initialized");const{domNode:r,updateNodeInternals:n}=e.xystore.getState(),o=new Set(e.xyedges.flatMap(s=>[s.source,s.target]));if(o.size===0||!r)return;const a=new Map,i=r.querySelectorAll(".react-flow__node");for(const s of i){const l=s.getAttribute("data-id");l&&o.has(l)&&a.set(l,{id:l,nodeElement:s,force:!0})}n(a,{triggerFitView:!1})}),vR=e=>Cc.createAction(({context:r,event:n})=>{e??=n.type==="fitDiagram"?n:{};let{duration:o,bounds:a}=e??{};o??=450;const{xyflow:i,xystore:s}=r;at(i,"xyflow is not initialized"),at(s,"xystore is not initialized"),a??=r.layouted?.bounds;const l=Math.max(i.getZoom(),1);if(a){const{width:c,height:u}=s.getState(),d=vu(a,c,u,_s,l,bR);i.setViewport(d,o>0?{duration:o,interpolate:"smooth"}:void 0).catch(console.error)}else i.fitView({minZoom:_s,maxZoom:l,padding:bR,...o>0&&{duration:o,interpolate:"smooth"}}).catch(console.error)}),jet=()=>Cc.assign(({context:e,event:r})=>(Tt(r,"xyflow.applyNodeChanges"),{xynodes:$3(r.changes,e.xynodes)})),Let=()=>Cc.assign(({context:e,event:r})=>(Tt(r,"xyflow.applyEdgeChanges"),{xyedges:M3(r.changes,e.xyedges)})),qre=()=>Cc.enqueueActions(({system:e,event:r})=>{if(r.type!=="xyflow.edgeClick")return;const n=jn(e).diagramActorRef,o=r.edge.data.relations;bo(o,1)&&n.send({type:"open.source",relation:o[0]})}),Ure=()=>Cc.assign({xyflow:null,layouted:null,xystore:null,xyedges:[],xynodes:[]}),Bet=Cc.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:jet()},"xyflow.applyEdgeChanges":{actions:Let()}},states:{initializing:{on:{"xyflow.init":{actions:Hre(),target:"isReady"},"update.view":{actions:Vre(),target:"isReady"},stop:"closed",close:"closed"}},isReady:{always:[{guard:"isReady",actions:[vR({duration:0}),fa({type:"xyflow.updateNodeInternals"},{delay:150})],target:"active"},{target:"initializing"}]},active:{initial:"idle",tags:["active"],on:{"xyflow.nodeClick":{actions:Pp(({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:Pp(({event:e,context:r,system:n,enqueue:o})=>{e.edge.selected||e.edge.data.relations.length>1?o.sendTo(jn(n).overlaysActorRef,{type:"open.relationshipDetails",viewId:r.viewId,source:e.edge.data.sourceFqn,target:e.edge.data.targetFqn}):o(qre())})},{actions:qre()}],"navigate.to":{actions:[Zt({subject:({event:e})=>e.subject,viewId:({event:e,context:r})=>e.viewId??r.viewId??null,navigateFromNode:({event:e})=>e.fromNode??null})]},"xyflow.paneDblClick":{actions:vR()},"update.view":{actions:Vre(),target:".layouting"},"change.scope":{actions:Zt({scope:({event:e})=>e.scope})},"xyflow.updateNodeInternals":{actions:Oet()},fitDiagram:{actions:vR()},"xyflow.resized":{actions:[wi("fitDiagram"),fa({type:"fitDiagram"},{id:"fitDiagram",delay:300})]},"xyflow.init":{actions:Hre()},"xyflow.unmount":{target:"initializing"},close:"closed"},states:{idle:{on:{"xyflow.edgeMouseEnter":{actions:[Zt({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?cr.setData(o,{hovered:!0,dimmed:!1}):n&&!o.selected?cr.setDimmed(o,"immediate"):o)}}),wi("undim.edges"),wi("dim.nonhovered.edges"),fa({type:"dim.nonhovered.edges"},{id:"dim.nonhovered.edges",delay:200})]},"xyflow.edgeMouseLeave":{actions:[Zt({xyedges:({context:e,event:r})=>e.xyedges.map(n=>n.id===r.edge.id?cr.setHovered(n,!1):n)}),wi("dim.nonhovered.edges"),fa({type:"undim.edges"},{id:"undim.edges",delay:400})]},"dim.nonhovered.edges":{actions:Zt({xyedges:({context:e})=>e.xyedges.map(r=>r.data.hovered?r:cr.setDimmed(r,r.data.dimmed==="immediate"?"immediate":!0))})},"undim.edges":{actions:Zt({xyedges:({context:e})=>e.xyedges.map(cr.setDimmed(!1))})},"xyflow.selectionChange":{actions:Pp(({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:bt(e.xyflow),xystore:bt(e.xystore),update:bt(e.layouted)}),onDone:{target:"idle",actions:Pp(({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=1;n<8;n++)e.raise({type:"xyflow.updateNodeInternals"},{delay:120+n*75})})}},on:{"update.xydata":{actions:Zt({xynodes:({event:e})=>e.xynodes,xyedges:({event:e})=>e.xyedges})},"xyflow.applyEdgeChanges":{},"xyflow.applyNodeChanges":{}}}}},closed:{id:"closed",type:"final",entry:Ure()}},exit:Ure()}),Wre=Bet,Fet=wl({actors:{relationshipsBrowserLogic:Wre}}).createMachine({id:"element-details",context:({input:e})=>({...e,initiatedFrom:{node:e.initiatedFrom?.node??null,clientRect:e.initiatedFrom?.clientRect??null}}),initial:"active",states:{active:{entry:aw("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:[fw(({self:e})=>`${e.id}-relationships`,{type:"close"}),J0(({self:e})=>`${e.id}-relationships`)],on:{"change.subject":{actions:Zt({subject:({event:e})=>e.subject})},close:"closed"}},closed:{id:"closed",type:"final"}}}),Het=Fet;function Vet(e){const r=[],n=[],o=new Map,a=J8.from(e.nodes.reduce((l,c)=>(o.set(c.id,c),c.parent||l.push({node:c,parent:null}),l),[])),i=l=>bt(o.get(l),`Node not found: ${l}`);let s;for(;s=a.dequeue();){const{node:l,parent:c}=s,u=bo(l.children,1);if(u)for(const x of l.children)a.enqueue({node:i(x),parent:l});const d={x:l.x,y:l.y};c&&(d.x-=c.x,d.y-=c.y);const h=l.id,f={id:h,draggable:!1,selectable:!0,focusable:!0,deletable:!1,position:d,zIndex:u?_l.Compound:_l.Element,style:{width:l.width,height:l.height},initialWidth:l.width,initialHeight:l.height,...c&&{parentId:c.id}},g=l.modelRef,b={navigateTo:l.navigateTo??null};switch(!0){case u:{r.push({...f,type:"compound",data:{id:h,column:l.column,title:l.title,color:l.color,style:l.style,depth:l.depth??0,icon:l.icon??"none",ports:l.ports,fqn:g,...b}});break}default:r.push({...f,type:"element",data:{id:h,column:l.column,fqn:g,title:l.title,technology:l.technology,description:or.from(l.description),height:l.height,width:l.width,color:l.color,shape:l.shape,icon:l.icon??"none",ports:l.ports,style:l.style,tags:l.tags,...b}})}}for(const{source:l,target:c,relationId:u,label:d,technology:h,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:l,target:c,sourceHandle:w.sourceHandle,targetHandle:w.targetHandle,deletable:!1,data:{relationId:u,label:d,color:b,navigateTo:g,line:x,description:or.from(f),...h&&{technology:h}}})}return{xynodes:r,xyedges:n,bounds:e.bounds}}function Yre(e){return"edgeId"in e?(at(H3(e.edgeId),"edgeId is required"),{edgeId:e.edgeId}):{source:e.source,target:e.target}}const Gre={x:"22px",y:"22px"},qet=wl({actions:{"xyflow:fitDiagram":({context:e},r)=>{let{duration:n,bounds:o}=r??{};n??=450;const{xyflow:a,xystore:i}=e;at(a,"xyflow is not initialized"),at(i,"xystore is not initialized"),o??=e.bounds;const s=Math.max(a.getZoom(),1);if(o){const{width:l,height:c}=i.getState(),u=vu(o,l,c,_s,s,Gre);a.setViewport(u,n>0?{duration:n}:void 0).catch(console.error)}else a.fitView({minZoom:_s,maxZoom:s,padding:Gre,...n>0&&{duration:n,interpolate:"smooth"}}).catch(console.error)},"xyflow:updateNodeInternals":({context:e})=>{at(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 s=r.querySelector(`.react-flow__node[data-id="${i}"]`);s&&a.set(i,{id:i,nodeElement:s,force:!0})}n(a,{triggerFitView:!1})},updateXYFlow:Zt(({context:e,event:r})=>{Tt(r,"xyflow.init");let n=e.initialized;return n.xyflow||(n={...n,xyflow:!0}),{initialized:n,xyflow:r.instance,xystore:r.store}}),updateLayoutData:Zt(({context:e,event:r})=>{Tt(r,"update.layoutData");const{xynodes:n,xyedges:o,bounds:a}=Vet(r.data);let i=e.initialized;return i.xydata||(i={...i,xydata:!0}),{initialized:i,xynodes:yR(e.xynodes,n),xyedges:jre(e.xyedges,o),bounds:an(e.bounds,a)?e.bounds:a}}),"open relationship source":Pp(({system:e,event:r})=>{if(r.type!=="xyflow.edgeClick")return;const n=jn(e).diagramActorRef,o=r.edge.data.relationId;o&&n.send({type:"open.source",relation:o})})},guards:{isReady:({context:e})=>e.initialized.xydata&&e.initialized.xyflow,"enable: navigate.to":()=>!0}}).createMachine({initial:"initializing",context:({input:e})=>({subject:Yre(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}},fa({type:"xyflow.updateNodeInternals"},{delay:50})],target:"ready"},{target:"initializing"}]},ready:{on:{"xyflow.edgeMouseEnter":{actions:[Zt({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?cr.setData(o,{hovered:!0,dimmed:!1}):n&&!o.selected?cr.setDimmed(o,"immediate"):o)}}),wi("undim.edges"),wi("dim.nonhovered.edges"),fa({type:"dim.nonhovered.edges"},{id:"dim.nonhovered.edges",delay:100})]},"xyflow.edgeMouseLeave":{actions:[Zt({xyedges:({context:e,event:r})=>e.xyedges.map(n=>n.id===r.edge.id?cr.setHovered(n,!1):n)}),wi("dim.nonhovered.edges"),fa({type:"undim.edges"},{id:"undim.edges",delay:400})]},"dim.nonhovered.edges":{actions:Zt({xyedges:({context:e})=>e.xyedges.map(r=>cr.setDimmed(r,r.data.hovered!==!0))})},"undim.edges":{actions:Zt({xyedges:({context:e})=>e.xyedges.some(r=>r.selected===!0)?e.xyedges.map(r=>cr.setDimmed(r,r.selected!==!0?r.data.dimmed||"immediate":!1)):e.xyedges.map(cr.setDimmed(!1))})},"xyflow.selectionChange":{actions:Pp(({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",wi("fitDiagram"),fa({type:"fitDiagram",duration:0},{id:"fitDiagram",delay:50}),fa({type:"xyflow.updateNodeInternals"},{delay:75})]},"xyflow.init":{actions:"updateXYFlow"},"xyflow.applyNodeChanges":{actions:Zt({xynodes:({context:e,event:r})=>$3(r.changes,e.xynodes)})},"xyflow.applyEdgeChanges":{actions:Zt({xyedges:({context:e,event:r})=>M3(r.changes,e.xyedges)})},"xyflow.paneDblClick":{actions:"xyflow:fitDiagram"},"xyflow.edgeClick":{actions:"open relationship source"},"navigate.to":{actions:Zt({subject:({event:e})=>Yre(e.params),viewId:({context:e,event:r})=>r.params.viewId??e.viewId})},close:{target:"closed"}},exit:Zt({xyedges:[],xynodes:[],initialized:{xydata:!1,xyflow:!1},xyflow:null,xystore:null})},closed:{type:"final"}},on:{fitDiagram:{actions:{type:"xyflow:fitDiagram",params:mp("event")}},"xyflow.resized":{actions:[wi("fitDiagram"),fa({type:"fitDiagram"},{id:"fitDiagram",delay:200})]},"xyflow.updateNodeInternals":{actions:"xyflow:updateNodeInternals"}}}),Uet=qet,Wet=WS(({sendBack:e})=>{const r=t2([["Escape",n=>{n.stopPropagation(),e({type:"close"})},{preventDefault:!0}]]);return document.body.addEventListener("keydown",r,{capture:!0}),()=>{document.body.removeEventListener("keydown",r,{capture:!0})}}),Tc=wl({actors:{relationshipDetails:Uet,elementDetails:Het,relationshipsBrowser:Wre,hotkey:Wet},guards:{"has overlays?":({context:e})=>e.overlays.length>0,"close specific overlay?":({context:e,event:r})=>(Tt(r,"close"),H3(r.actorId)&&e.overlays.some(n=>n.id===r.actorId)),"last: is relationshipDetails?":({context:e})=>lc(e.overlays)?.type==="relationshipDetails","last: is relationshipsBrowser?":({context:e})=>lc(e.overlays)?.type==="relationshipsBrowser"}}),Yet=()=>Tc.enqueueActions(({context:e,enqueue:r})=>{if(e.overlays.length===0)return;const n=lc(e.overlays)?.id;n&&(r.sendTo(n,{type:"close"}),r.stopChild(n),r.assign({overlays:e.overlays.filter(o=>o.id!==n)}))}),Get=()=>Tc.enqueueActions(({context:e,enqueue:r,event:n})=>{Tt(n,"close");const o=n.actorId;if(!H3(o))return;const a=e.overlays.find(i=>i.id===o)?.id;a&&(r.sendTo(a,{type:"close"}),r.stopChild(a),r.assign({overlays:e.overlays.filter(i=>i.id!==a)}))}),Xre=()=>Tc.enqueueActions(({context:e,enqueue:r})=>{for(const{id:n}of WNe(e.overlays))r.sendTo(n,{type:"close"}),r.stopChild(n);r.assign({overlays:[]})}),Xet=()=>Tc.enqueueActions(({context:e,enqueue:r,event:n})=>{if(Tt(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}]})}),Ket=()=>Tc.enqueueActions(({context:e,enqueue:r,event:n})=>{Tt(n,"open.relationshipDetails");const o=lc(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}]})}),Zet=()=>Tc.enqueueActions(({context:e,enqueue:r,event:n})=>{Tt(n,"open.relationshipsBrowser");const o=lc(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}]})}),Qet=()=>Tc.spawnChild("hotkey",{id:"hotkey"}),N4=()=>Tc.stopChild("hotkey"),Jet=Tc.createMachine({id:"overlays",context:()=>({seq:1,overlays:[]}),initial:"idle",on:{"open.elementDetails":{actions:Xet(),target:".active",reenter:!1},"open.relationshipDetails":{actions:Ket(),target:".active",reenter:!1},"open.relationshipsBrowser":{actions:Zet(),target:".active",reenter:!1}},states:{idle:{},active:{entry:Qet(),exit:N4(),on:{close:[{guard:"close specific overlay?",actions:Get(),target:"closing"},{actions:Yet(),target:"closing"}],"close.all":{actions:[Xre(),N4()],target:"idle"}}},closing:{always:[{guard:"has overlays?",target:"active"},{actions:N4(),target:"idle"}]}},exit:[N4(),Xre()]}),ett=Jet,ttt=wl({actions:{"change searchValue":Zt({searchValue:({event:e,context:r})=>(Tt(e,["change.search","open"]),e.search??r.searchValue)}),"reset pickViewFor":Zt({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:[Zt({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:Zt({pickViewFor:({event:e})=>e.elementFqn})}}},pickView:{on:{"pickview.close":{target:"opened",actions:"reset pickViewFor"}}}}}),rtt=ttt,ntt=WS(({sendBack:e})=>{const r=t2([["Escape",o=>{o.stopPropagation(),console.log("Escape karsarsey pressed"),e({type:"key.esc"})},{preventDefault:!0}]]),n=t2([["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})}}),ott=WS(({sendBack:e})=>{const r=t2([["mod + z",n=>{console.log("Undo hotkey pressed"),n.stopPropagation(),e({type:"undo"})},{preventDefault:!0}]]);return document.body.addEventListener("keydown",r,{capture:!0}),()=>{document.body.removeEventListener("keydown",r,{capture:!0})}}),D4=function(e){return e.get("diagram")},Va=wl({delays:{timeout:2e3},guards:{"can undo":({context:e})=>e.history.length>0},actors:{undoHotKeyActorLogic:ott}}),att=Va.assign(({context:e})=>{const r=e.beforeEditing;if(!r)return{};const n=lc(e.history);return lt(n?.xyedges,r.xyedges)&<(n?.xynodes,r.xynodes)?{beforeEditing:null}:{beforeEditing:null,history:[...e.history,r]}}),itt=Va.assign(({context:e})=>e.history.length===0?{}:{history:e.history.slice(0,-1)}),Kre=Va.assign(({system:e,event:r})=>{Tt(r,"editing.start");const n=D4(e).getSnapshot().context;return{editing:r.subject,beforeEditing:{xynodes:Sn(n.xynodes,o=>({...o})),xyedges:Sn(n.xyedges,o=>({...o})),change:gR(n),view:n.view,synched:!1}}}),$4=Va.enqueueActions(({check:e,enqueue:r,self:n})=>{const o=e("can undo"),a=n.getSnapshot().children.undoHotKey;if(a&&!o){r.stopChild(a);return}!a&&o&&r.spawnChild("undoHotKeyActorLogic",{id:"undoHotKey"})}),Zre=Va.enqueueActions(({event:e,enqueue:r})=>{Tt(e,"editing.stop"),e.wasChanged&&(r.cancel("sync"),r(att),r.raise({type:"sync"},{id:"sync",delay:50})),r.assign({beforeEditing:null,editing:null})}),stt=Va.sendTo(({system:e})=>D4(e),({system:e})=>{const r=D4(e).getSnapshot().context;return{type:"emit.onChange",change:gR(r)}}),ltt=Va.assign(({context:e,event:r})=>(Tt(r,"synced"),{history:e.history.map(n=>({...n,synched:!0})),beforeEditing:e.beforeEditing?{...e.beforeEditing,synched:!0}:null})),Qre=Va.enqueueActions(({context:e,enqueue:r,system:n})=>{const o=lc(e.history);if(!o)return;r(itt),r($4);const a=D4(n);r.sendTo(a,{type:"update.view",view:o.view,xyedges:o.xyedges,xynodes:o.xynodes}),o.synched&&r.sendTo(a,{type:"emit.onChange",change:o.change})}),ctt=Va.createStateConfig({tags:"ready",entry:[Zt({beforeEditing:null,editing:null})],on:{sync:{target:"pending"},"editing.start":{actions:Kre,target:"editing"},undo:{guard:"can undo",actions:Qre}}}),utt=Va.createStateConfig({on:{"editing.stop":{actions:[Zre,$4],target:"idle"},undo:{}}}),dtt=Va.createStateConfig({tags:"pending",on:{sync:{target:"pending",reenter:!0},"editing.start":{target:"paused",actions:Kre},undo:{guard:"can undo",actions:Qre,target:"idle"}},after:{timeout:{target:"idle",actions:stt}}}),ptt=Va.createStateConfig({tags:"pending",on:{"editing.stop":{actions:[Zre,$4],target:"pending"},undo:{}}}),htt=Va.createMachine({initial:"idle",context:({input:e})=>({...e,history:[],beforeEditing:null,editing:null}),states:{idle:ctt,editing:utt,pending:dtt,paused:ptt,stopped:{entry:[Zt({beforeEditing:null,history:[]}),$4],type:"final"}},on:{cancel:{target:".idle"},synced:{actions:ltt,target:".idle"},stop:{target:".stopped"}}}),ftt=htt,M4=e=>(e.features.enableReadOnly||e.toggledFeatures.enableReadOnly===!0)&&(e.view._type!=="dynamic"||e.dynamicViewVariant!=="sequence"),mt=wl({actors:{syncManualLayoutActorLogic:ftt,hotkeyActorLogic:ntt,overlaysActorLogic:ett,searchActorLogic:rtt},guards:{isReady:({context:e})=>e.initialized.xydata&&e.initialized.xyflow,"enabled: FitView":({context:e})=>e.features.enableFitView,"enabled: FocusMode":({context:e})=>(e.toggledFeatures.enableFocusMode??e.features.enableFocusMode)===!0&&M4(e),"enabled: Readonly":({context:e})=>M4(e),"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})=>M4(e)&&e.features.enableDynamicViewWalkthrough,"not readonly":({context:e})=>!M4(e),"is dynamic view":({context:e})=>e.view._type==="dynamic","is another view":({context:e,event:r})=>{if(Tt(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;Zi(r.type)},"click: node has modelFqn":({event:e})=>(Tt(e,"xyflow.nodeClick"),"modelFqn"in e.node.data),"click: selected node":({event:e})=>(Tt(e,"xyflow.nodeClick"),e.node.selected===!0),"click: same node":({context:e,event:r})=>(Tt(r,"xyflow.nodeClick"),e.lastClickedNode?.id===r.node.id),"click: focused node":({context:e,event:r})=>(Tt(r,"xyflow.nodeClick"),e.focusedNode===r.node.id),"click: node has connections":({context:e,event:r})=>(Tt(r,"xyflow.nodeClick"),e.xyedges.some(n=>n.source===r.node.id||n.target===r.node.id)),"click: selected edge":({event:e})=>(Tt(e,["xyflow.edgeClick","xyflow.edgeDoubleClick"]),e.edge.selected===!0||e.edge.data.active===!0)}});function Jre(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:Zi(e)}}function ene(e,r){const n=e.lastOnNavigate?.fromNode,o=n&&e.xynodes.find(s=>s.id===n),a=o&&Jre(o),i=a&&r.xynodes.find(s=>Jre(s)===a);return{fromNode:o,toNode:i}}const mtt={navigateTo:()=>mt.emit(({context:e})=>({type:"navigateTo",viewId:bt(e.lastOnNavigate,"Invalid state, lastOnNavigate is null").toView}))},ko={fitDiagram:e=>mt.createAction(({context:r,event:n})=>{e??=n.type==="fitDiagram"?n:{};const{bounds:o=r.view.bounds,duration:a=450}=e,{width:i,height:s,panZoom:l,transform:c}=bt(r.xystore).getState(),u=Math.max(1,c[2]),d=vu(o,i,s,_s,u,r.fitViewPadding);d.x=Math.round(d.x),d.y=Math.round(d.y),l?.setViewport(d,a>0?{duration:a,interpolate:"smooth"}:void 0).catch(console.error)}),fitFocusedBounds:()=>mt.createAction(({context:e})=>{const r=!!e.activeWalkthrough&&e.dynamicViewVariant==="sequence",{bounds:n,duration:o=450}=r?UKe({context:e}):VKe({context:e}),{width:a,height:i,panZoom:s,transform:l}=bt(e.xystore).getState(),c=Math.max(1,l[2]),u=vu(n,a,i,_s,c,e.fitViewPadding);u.x=Math.round(u.x),u.y=Math.round(u.y),s?.setViewport(u,o>0?{duration:o,interpolate:"smooth"}:void 0)}),alignNodeFromToAfterNavigate:e=>mt.createAction(({context:r})=>{const n=bt(r.xyflow,"xyflow is not initialized"),o=n.getInternalNode(e.fromNode);if(!o)return;const a=n.flowToScreenPosition({x:o.internals.positionAbsolute.x,y:o.internals.positionAbsolute.y}),i=n.flowToScreenPosition(e.toPosition),s={x:Math.round(a.x-i.x),y:Math.round(a.y-i.y)};r.xystore.getState().panBy(s)}),setViewportCenter:e=>mt.createAction(({context:r,event:n})=>{let o;e?o=e:n.type==="update.view"?o=il.center(n.view.bounds):o=il.center(r.view.bounds),at(r.xyflow,"xyflow is not initialized");const a=r.xyflow.getZoom();r.xyflow.setCenter(Math.round(o.x),Math.round(o.y),{zoom:a})}),setViewport:e=>mt.createAction(({context:r})=>{const{viewport:n,duration:o=350}=e;r.xystore?.getState().panZoom?.setViewport(n,o>0?{duration:o,interpolate:"smooth"}:void 0)})},xR=()=>mt.assign(({context:e})=>({toggledFeatures:{...e.toggledFeatures,enableCompareWithLatest:!1},viewportOnAutoLayout:null,viewportOnManualLayout:null})),gtt=()=>mt.assign(({context:e,event:r})=>{if(Tt(r,"xyflow.edgeDoubleClick"),!r.edge.data.controlPoints)return{};const{nodeLookup:n}=e.xystore.getState();return{xyedges:e.xyedges.map(o=>{if(o.id===r.edge.id){const a=Mre(n,o),i=a[0];return{...o,data:{...o.data,controlPoints:a,labelBBox:o.data.labelBBox?{...o.data.labelBBox,...i}:null,labelXY:o.data.labelXY?i:null}}}return o})}}),ytt=()=>mt.enqueueActions(({event:e,enqueue:r})=>{Tt(e,"emit.onChange"),r.assign({viewportChangedManually:!0}),r.emit({type:"onChange",change:e.change})}),btt=()=>mt.enqueueActions(({event:e,system:r,context:n,enqueue:o})=>{if(!n.features.enableCompareWithLatest){console.warn("Layout type cannot be changed while CompareWithLatest feature is disabled");return}const a=n.view._layout;let i=a==="auto"?"manual":"auto";if(e.type==="emit.onLayoutTypeChange"&&(i=e.layoutType),a===i){console.warn("Ignoring layout type change event, layout type is already",a);return}if(n.toggledFeatures.enableCompareWithLatest===!0){if(a==="manual"&&i==="auto"){const l=jn(r).syncLayoutActorRef,c=l?.getSnapshot().value;l&&(c==="pending"||c==="paused")&&(o.sendTo(l,{type:"cancel"}),o.emit({type:"onChange",change:gR(n)}))}const s=n.viewport;a==="auto"&&o.assign({viewportOnAutoLayout:s}),a==="manual"&&o.assign({viewportOnManualLayout:s})}o.emit({type:"onLayoutTypeChange",layoutType:i})}),Gy=()=>mt.assign(({context:e,event:r})=>{Tt(r,"xyflow.nodeClick");const{lastClickedNode:n}=e;return!n||n.id!==r.node.id?{lastClickedNode:{id:r.node.id,clicks:1,timestamp:Date.now()}}:{lastClickedNode:{id:n.id,clicks:n.clicks+1,timestamp:Date.now()}}}),wR=()=>mt.assign(({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}}),Xy=()=>mt.assign(()=>({lastClickedNode:null})),vtt=()=>mt.assign(({event:e})=>(Tt(e,"update.features"),{features:{...e.features}})),xtt=()=>mt.assign(({event:e})=>(Tt(e,"update.inputs"),{...e.inputs})),kR=()=>mt.assign(({context:e,event:r})=>(Tt(r,"update.view"),{..._et({context:e,event:r}),lastClickedNode:null})),P4=()=>mt.assign(Eet),z4=()=>mt.assign(({context:e})=>({xynodes:e.xynodes.map(cr.setDimmed(!1)),xyedges:e.xyedges.map(cr.setData({dimmed:!1,active:!1}))})),Ky=()=>mt.assign(Net),wtt=()=>mt.assign(({event:e})=>(Tt(e,"switch.dynamicViewVariant"),{dynamicViewVariant:e.variant})),ktt=e=>mt.assign(({context:r,event:n})=>{let o=e?.node;return o||(Tt(n,"xyflow.nodeMouseEnter"),o=n.node),{xynodes:r.xynodes.map(a=>a.id===o.id?cr.setHovered(a,!0):a)}}),_tt=e=>mt.assign(({context:r,event:n})=>{let o=e?.node;return o||(Tt(n,"xyflow.nodeMouseLeave"),o=n.node),{xynodes:r.xynodes.map(a=>a.id===o.id?cr.setHovered(a,!1):a)}}),Ett=()=>mt.emit(()=>({type:"walkthroughStopped"})),_R=()=>mt.emit(()=>({type:"paneClick"})),tne=e=>mt.emit(({event:r})=>e?{type:"openSource",params:e}:(Tt(r,"open.source"),{type:"openSource",params:r})),Stt=()=>mt.emit(({context:e})=>(at(e.xyflow,"XYFlow instance not found"),{type:"initialized",instance:e.xyflow})),Qp=()=>mt.emit(({context:e,event:r})=>(Tt(r,"xyflow.nodeClick"),{type:"nodeClick",node:bt(Hm(e,r.node.id),`Node ${r.node.id} not found in diagram`),xynode:r.node})),ER=()=>mt.emit(({context:e,event:r})=>(Tt(r,"xyflow.edgeClick"),{type:"edgeClick",edge:bt(UA(e,r.edge.id),`Edge ${r.edge.id} not found in diagram`),xyedge:r.edge})),Ctt=()=>mt.emit(({context:e})=>{const r=e.xyedges.find(n=>n.id===e.activeWalkthrough?.stepId);return at(r,"Invalid walkthrough state"),{type:"walkthroughStarted",edge:r}}),rne=()=>mt.emit(({context:e})=>{const r=e.xyedges.find(n=>n.id===e.activeWalkthrough?.stepId);return at(r,"Invalid walkthrough state"),{type:"walkthroughStep",edge:r}}),Ttt=e=>mt.createAction(({context:r,event:n})=>{let o;Tt(n,"layout.align"),o=n.mode;const a=bt(r.xystore,"xystore is not initialized"),{nodeLookup:i,parentLookup:s}=a.getState(),l=[...new Set(i.values().filter(h=>h.selected).map(h=>h.id)).difference(new Set(s.keys()))];if(!bo(l,2)){console.warn("At least 2 nodes must be selected to align");return}const c=Are(a,l),u=Met(o),d=l.map(h=>({node:bt(i.get(h)),rect:bt(c.rects.get(h))}));u.computeLayout(d.map(({node:h})=>zre(h)));for(const{rect:h,node:f}of d)h.positionAbsolute={...h.positionAbsolute,...u.applyPosition(zre(f))};c.updateXYFlow()}),Att=()=>mt.assign(({context:e})=>{const{nodeLookup:r}=e.xystore.getState();return{xyedges:e.xyedges.map(n=>{if(!n.data.controlPoints)return n;const o=Mre(r,n),a=o[0];return{...n,data:{...n.data,controlPoints:o,labelBBox:n.data.labelBBox?{...n.data.labelBBox,x:a.x,y:a.y}:null,labelXY:n.data.labelXY?a:null}}})}}),Rtt=e=>mt.assign(({context:r,event:n})=>{e||(Tt(n,"notations.highlight"),e={...n});const o=e.notation,a=e.kind?[e.kind]:o.kinds;return{xynodes:r.xynodes.map(i=>{const s=Hm(r,i.id);return s&&s.notation===o.title&&s.shape===o.shape&&s.color===o.color&&a.includes(s.kind)?cr.setDimmed(i,!1):cr.setDimmed(i,"immediate")}),xyedges:r.xyedges.map(cr.setDimmed("immediate"))}}),Ntt=()=>mt.assign(({context:e,event:r})=>(Tt(r,"tag.highlight"),{xynodes:e.xynodes.map(n=>n.data.tags?.includes(r.tag)?cr.setDimmed(n,!1):cr.setDimmed(n,!0))})),Dtt=()=>mt.assign(({context:e,event:r})=>{Tt(r,"toggle.feature");const n=e.toggledFeatures[`enable${r.feature}`]??e.features[`enable${r.feature}`],o=r.forceValue??!n;return{toggledFeatures:{...e.toggledFeatures,[`enable${r.feature}`]:o}}}),nne=()=>mt.sendTo(({system:e})=>jn(e).searchActorRef,{type:"close"}),one=()=>mt.sendTo(({system:e})=>jn(e).overlaysActorRef,{type:"close.all"}),$tt=e=>e.features.enableReadOnly||e.toggledFeatures.enableReadOnly===!0,I4=()=>mt.enqueueActions(({enqueue:e,system:r})=>{const n=jn(r).syncLayoutActorRef;n&&e.stopChild(n)}),Zy=()=>mt.enqueueActions(({context:e,enqueue:r,system:n})=>{const o=jn(n).syncLayoutActorRef;if($tt(e)){o&&r.stopChild(o);return}o||r.spawnChild("syncManualLayoutActorLogic",{id:"syncLayout",systemId:"syncLayout",input:{viewId:e.view.id},syncSnapshot:!0})}),ane=(e="node")=>mt.sendTo(({system:r})=>jn(r).syncLayoutActorRef,{type:"editing.start",subject:e}),ine=(e=!0)=>mt.sendTo(({system:r})=>jn(r).syncLayoutActorRef,{type:"editing.stop",wasChanged:e}),sne=e=>"modelFqn"in e.data&&ua(e.data.modelFqn),SR=e=>mt.enqueueActions(({context:r,event:n,enqueue:o,system:a})=>{let i=null,s,l;switch(!0){case n.type==="xyflow.nodeClick":{if(!sne(n.node)){console.warn("No modelFqn in clicked node data");return}l=n.node.data.modelFqn,s=n.node.data.id;break}case n.type==="open.elementDetails":{l=n.fqn,s=n.fromNode;break}default:{if(!r.lastClickedNode){console.warn("No last clicked node");return}s=r.lastClickedNode.id;const u=r.xynodes.find(d=>d.id===s);if(!u||!sne(u)){console.warn("No modelFqn in last clicked node");return}l=u.data.modelFqn;break}}const c=s?r.xystore.getState().nodeLookup.get(s):null;if(s&&c){const u=dp(c),d=r.xyflow.getZoom(),h={...r.xyflow.flowToScreenPosition(u),width:u.width*d,height:u.height*d};i={node:s,clientRect:h}}o.sendTo(jn(a).overlaysActorRef,{type:"open.elementDetails",subject:l,currentView:r.view,...i&&{initiatedFrom:i}})}),O4=()=>mt.enqueueActions(({context:e,enqueue:r})=>{const n=e.focusedNode??e.lastClickedNode?.id;if(!n||!e.features.enableVscode)return;const o=Hm(e,n);o&&(o.deploymentRef?r.raise({type:"open.source",deployment:o.deploymentRef}):o.modelRef&&r.raise({type:"open.source",element:o.modelRef}))}),Mtt=()=>mt.enqueueActions(({enqueue:e,context:{features:r},system:n})=>{const o=r.enableElementDetails||r.enableRelationshipDetails||r.enableRelationshipBrowser,a=jn(n).overlaysActorRef;if(o&&!a){e.spawnChild("overlaysActorLogic",{id:"overlays",systemId:"overlays"});return}!o&&a&&(e.sendTo(a,{type:"close.all"}),e.stopChild("overlays"))}),Ptt=()=>mt.enqueueActions(({enqueue:e,context:{features:{enableSearch:r}},system:n})=>{const o=jn(n).searchActorRef;if(r&&!o){e.spawnChild("searchActorLogic",{id:"search",systemId:"search"});return}!r&&o&&(e.sendTo(o,{type:"close"}),e.stopChild("search"))}),ztt=()=>mt.enqueueActions(({enqueue:e,context:r,event:n})=>{Tt(n,"xyflow.edgeMouseEnter");let o=n.edge;e.assign({xyedges:r.xyedges.map(a=>a.id===n.edge.id?(o=cr.setHovered(a,!0),o):a)}),e.emit({type:"edgeMouseEnter",edge:o,event:n.event})}),Itt=()=>mt.enqueueActions(({enqueue:e,context:r,event:n})=>{Tt(n,"xyflow.edgeMouseLeave");let o=n.edge;e.assign({xyedges:r.xyedges.map(a=>a.id===n.edge.id?(o=cr.setHovered(a,!1),o):a)}),e.emit({type:"edgeMouseLeave",edge:o,event:n.event})}),Qy=()=>mt.cancel("fitDiagram"),Km=e=>mt.enqueueActions(({enqueue:r})=>{r.cancel("fitDiagram"),r.raise({type:"fitDiagram",..._u(e?.duration)?{duration:e.duration}:{}},{id:"fitDiagram",..._u(e?.delay)?{delay:e.delay}:{}})}),Ott=()=>mt.enqueueActions(({enqueue:e,event:r,check:n,context:o,system:a})=>{Tt(r,"update.view");const i=n("is another view");if(e(Qy()),i){e(I4()),e(one()),e(nne()),e.assign({focusedNode:null}),e(xR());const{fromNode:u,toNode:d}=ene(o,r);u&&d?(e(ko.alignNodeFromToAfterNavigate({fromNode:u.id,toPosition:{x:d.data.x,y:d.data.y}})),e(Km({delay:80}))):(e(ko.setViewportCenter()),e(Km({duration:200,delay:25}))),e(kR()),e(Zy());return}e(kR());const s=jn(a).syncLayoutActorRef;s&&e.sendTo(s,{type:"synced"});const l=r.view;if(o.toggledFeatures.enableCompareWithLatest===!0&&o.view._layout!==l._layout){if(l._layout==="auto"&&o.viewportOnAutoLayout){e(ko.setViewport({viewport:o.viewportOnAutoLayout,duration:0}));return}if(l._layout==="manual"&&o.viewportOnManualLayout){e(ko.setViewport({viewport:o.viewportOnManualLayout,duration:0}));return}}let c=!o.viewportChangedManually;c=c||l._type==="dynamic"&&o.view._type==="dynamic"&&l.variant!==o.view.variant,c=c||o.toggledFeatures.enableCompareWithLatest===!0&&!!l._layout&&o.view._layout!==l._layout,c&&(e(ko.setViewportCenter(il.center(l.bounds))),e(Km({delay:50})))});var Qo={},CR={},_t={},lne=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Zm={},cne;function TR(){if(cne)return Zm;cne=1,Object.defineProperty(Zm,"__esModule",{value:!0});function e(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof lne<"u")return lne}function r(){const a=e();if(a.__xstate__)return a.__xstate__}function n(a){if(typeof window>"u")return;const i=r();i&&i.register(a)}const o=a=>{if(typeof window>"u")return;const i=r();i&&i.register(a)};return Zm.devToolsAdapter=o,Zm.getGlobal=e,Zm.registerService=n,Zm}var une;function j4(){if(une)return _t;une=1;var e=TR();class r{constructor(te){this._process=te,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(te){const ae={value:te,next:null};if(this._current){this._last.next=ae,this._last=ae;return}this._current=ae,this._last=ae,this._active&&this.flush()}flush(){for(;this._current;){const te=this._current;this._process(te.value),this._current=te.next}this._last=null}}const n=".",o="",a="",i="#",s="*",l="xstate.init",c="xstate.error",u="xstate.stop";function d(ee,te){return{type:`xstate.after.${ee}.${te}`}}function h(ee,te){return{type:`xstate.done.state.${ee}`,output:te}}function f(ee,te){return{type:`xstate.done.actor.${ee}`,output:te,actorId:ee}}function g(ee,te){return{type:`xstate.error.actor.${ee}`,error:te,actorId:ee}}function b(ee){return{type:l,input:ee}}function x(ee){setTimeout(()=>{throw ee})}const w=typeof Symbol=="function"&&Symbol.observable||"@@observable";function k(ee,te){const ae=_(ee),le=_(te);return typeof le=="string"?typeof ae=="string"?le===ae:!1:typeof ae=="string"?ae in le:Object.keys(ae).every(ue=>ue in le?k(ae[ue],le[ue]):!1)}function C(ee){if(M(ee))return ee;const te=[];let ae="";for(let le=0;letypeof te>"u"||typeof te=="string"?{target:te}:te)}function L(ee){if(!(ee===void 0||ee===o))return D(ee)}function U(ee,te,ae){const le=typeof ee=="object",ue=le?ee:void 0;return{next:(le?ee.next:ee)?.bind(ue),error:(le?ee.error:te)?.bind(ue),complete:(le?ee.complete:ae)?.bind(ue)}}function P(ee,te){return`${te}.${ee}`}function V(ee,te){const ae=te.match(/^xstate\.invoke\.(\d+)\.(.*)/);if(!ae)return ee.implementations.actors[te];const[,le,ue]=ae,_e=ee.getStateNodeById(ue).config.invoke;return(Array.isArray(_e)?_e[le]:_e).src}function I(ee){return[...new Set([...ee._nodes.flatMap(te=>te.ownEvents)])]}function H(ee,te){return`${ee.sessionId}.${te}`}let q=0;function Z(ee,te){const ae=new Map,le=new Map,ue=new WeakMap,_e=new Set,Be={},{clock:Xe,logger:dt}=te,gt={schedule:(ot,wt,Ct,Gt,Wo=Math.random().toString(36).slice(2))=>{const Mh={source:ot,target:wt,event:Ct,delay:Gt,id:Wo,startedAt:Date.now()},Ja=H(ot,Wo);nt._snapshot._scheduledEvents[Ja]=Mh;const hd=Xe.setTimeout(()=>{delete Be[Ja],delete nt._snapshot._scheduledEvents[Ja],nt._relay(ot,wt,Ct)},Gt);Be[Ja]=hd},cancel:(ot,wt)=>{const Ct=H(ot,wt),Gt=Be[Ct];delete Be[Ct],delete nt._snapshot._scheduledEvents[Ct],Gt!==void 0&&Xe.clearTimeout(Gt)},cancelAll:ot=>{for(const wt in nt._snapshot._scheduledEvents){const Ct=nt._snapshot._scheduledEvents[wt];Ct.source===ot&>.cancel(ot,Ct.id)}}},Yt=ot=>{if(!_e.size)return;const wt={...ot,rootId:ee.sessionId};_e.forEach(Ct=>Ct.next?.(wt))},nt={_snapshot:{_scheduledEvents:(te?.snapshot&&te.snapshot.scheduler)??{}},_bookId:()=>`x:${q++}`,_register:(ot,wt)=>(ae.set(ot,wt),ot),_unregister:ot=>{ae.delete(ot.sessionId);const wt=ue.get(ot);wt!==void 0&&(le.delete(wt),ue.delete(ot))},get:ot=>le.get(ot),getAll:()=>Object.fromEntries(le.entries()),_set:(ot,wt)=>{const Ct=le.get(ot);if(Ct&&Ct!==wt)throw new Error(`Actor with system ID '${ot}' already exists.`);le.set(ot,wt),ue.set(wt,ot)},inspect:ot=>{const wt=U(ot);return _e.add(wt),{unsubscribe(){_e.delete(wt)}}},_sendInspectionEvent:Yt,_relay:(ot,wt,Ct)=>{nt._sendInspectionEvent({type:"@xstate.event",sourceRef:ot,actorRef:wt,event:Ct}),wt._send(Ct)},scheduler:gt,getSnapshot:()=>({_scheduledEvents:{...nt._snapshot._scheduledEvents}}),start:()=>{const ot=nt._snapshot._scheduledEvents;nt._snapshot._scheduledEvents={};for(const wt in ot){const{source:Ct,target:Gt,event:Wo,delay:Mh,id:Ja}=ot[wt];gt.schedule(Ct,Gt,Wo,Mh,Ja)}},_clock:Xe,_logger:dt};return nt}let W=!1;const G=1;let K=(function(ee){return ee[ee.NotStarted=0]="NotStarted",ee[ee.Running=1]="Running",ee[ee.Stopped=2]="Stopped",ee})({});const j={clock:{setTimeout:(ee,te)=>setTimeout(ee,te),clearTimeout:ee=>clearTimeout(ee)},logger:console.log.bind(console),devTools:!1};class Y{constructor(te,ae){this.logic=te,this._snapshot=void 0,this.clock=void 0,this.options=void 0,this.id=void 0,this.mailbox=new r(this._process.bind(this)),this.observers=new Set,this.eventListeners=new Map,this.logger=void 0,this._processingStatus=K.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 le={...j,...ae},{clock:ue,logger:_e,parent:Be,syncSnapshot:Xe,id:dt,systemId:gt,inspect:Yt}=le;this.system=Be?Be.system:Z(this,{clock:ue,logger:_e}),Yt&&!Be&&this.system.inspect(U(Yt)),this.sessionId=this.system._bookId(),this.id=dt??this.sessionId,this.logger=ae?.logger??this.system._logger,this.clock=ae?.clock??this.system._clock,this._parent=Be,this._syncSnapshot=Xe,this.options=le,this.src=le.src??te,this.ref=this,this._actorScope={self:this,id:this.id,sessionId:this.sessionId,logger:this.logger,defer:nt=>{this._deferred.push(nt)},system:this.system,stopChild:nt=>{if(nt._parent!==this)throw new Error(`Cannot stop child actor ${nt.id} of ${this.id} because it is not a child`);nt._stop()},emit:nt=>{const ot=this.eventListeners.get(nt.type),wt=this.eventListeners.get("*");if(!ot&&!wt)return;const Ct=[...ot?ot.values():[],...wt?wt.values():[]];for(const Gt of Ct)try{Gt(nt)}catch(Wo){x(Wo)}},actionExecutor:nt=>{const ot=()=>{if(this._actorScope.system._sendInspectionEvent({type:"@xstate.action",actorRef:this,action:{type:nt.type,params:nt.params}}),!nt.exec)return;const wt=W;try{W=!0,nt.exec(nt.info,nt.params)}finally{W=wt}};this._processingStatus===K.Running?ot():this._deferred.push(ot)}},this.send=this.send.bind(this),this.system._sendInspectionEvent({type:"@xstate.actor",actorRef:this}),gt&&(this.systemId=gt,this.system._set(gt,this)),this._initState(ae?.snapshot??ae?.state),gt&&this._snapshot.status!=="active"&&this.system._unregister(this)}_initState(te){try{this._snapshot=te?this.logic.restoreSnapshot?this.logic.restoreSnapshot(te,this._actorScope):te:this.logic.getInitialSnapshot(this._actorScope,this.options?.input)}catch(ae){this._snapshot={status:"error",output:void 0,error:ae}}}update(te,ae){this._snapshot=te;let le;for(;le=this._deferred.shift();)try{le()}catch(ue){this._deferred.length=0,this._snapshot={...te,status:"error",error:ue}}switch(this._snapshot.status){case"active":for(const ue of this.observers)try{ue.next?.(te)}catch(_e){x(_e)}break;case"done":for(const ue of this.observers)try{ue.next?.(te)}catch(_e){x(_e)}this._stopProcedure(),this._complete(),this._doneEvent=f(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:ae,snapshot:te})}subscribe(te,ae,le){const ue=U(te,ae,le);if(this._processingStatus!==K.Stopped)this.observers.add(ue);else switch(this._snapshot.status){case"done":try{ue.complete?.()}catch(_e){x(_e)}break;case"error":{const _e=this._snapshot.error;if(!ue.error)x(_e);else try{ue.error(_e)}catch(Be){x(Be)}break}}return{unsubscribe:()=>{this.observers.delete(ue)}}}on(te,ae){let le=this.eventListeners.get(te);le||(le=new Set,this.eventListeners.set(te,le));const ue=ae.bind(void 0);return le.add(ue),{unsubscribe:()=>{le.delete(ue)}}}start(){if(this._processingStatus===K.Running)return this;this._syncSnapshot&&this.subscribe({next:ae=>{ae.status==="active"&&this.system._relay(this,this._parent,{type:`xstate.snapshot.${this.id}`,snapshot:ae})},error:()=>{}}),this.system._register(this.sessionId,this),this.systemId&&this.system._set(this.systemId,this),this._processingStatus=K.Running;const te=b(this.options.input);switch(this.system._sendInspectionEvent({type:"@xstate.event",sourceRef:this._parent,actorRef:this,event:te}),this._snapshot.status){case"done":return this.update(this._snapshot,te),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(ae){return this._snapshot={...this._snapshot,status:"error",error:ae},this._error(ae),this}return this.update(this._snapshot,te),this.options.devTools&&this.attachDevTools(),this.mailbox.start(),this}_process(te){let ae,le;try{ae=this.logic.transition(this._snapshot,te,this._actorScope)}catch(ue){le={err:ue}}if(le){const{err:ue}=le;this._snapshot={...this._snapshot,status:"error",error:ue},this._error(ue);return}this.update(ae,te),te.type===u&&(this._stopProcedure(),this._complete())}_stop(){return this._processingStatus===K.Stopped?this:(this.mailbox.clear(),this._processingStatus===K.NotStarted?(this._processingStatus=K.Stopped,this):(this.mailbox.enqueue({type:u}),this))}stop(){if(this._parent)throw new Error("A non-root actor cannot be stopped directly.");return this._stop()}_complete(){for(const te of this.observers)try{te.complete?.()}catch(ae){x(ae)}this.observers.clear()}_reportError(te){if(!this.observers.size){this._parent||x(te);return}let ae=!1;for(const le of this.observers){const ue=le.error;ae||=!ue;try{ue?.(te)}catch(_e){x(_e)}}this.observers.clear(),ae&&x(te)}_error(te){this._stopProcedure(),this._reportError(te),this._parent&&this.system._relay(this,this._parent,g(this.id,te))}_stopProcedure(){return this._processingStatus!==K.Running?this:(this.system.scheduler.cancelAll(this),this.mailbox.clear(),this.mailbox=new r(this._process.bind(this)),this._processingStatus=K.Stopped,this.system._unregister(this),this)}_send(te){this._processingStatus!==K.Stopped&&this.mailbox.enqueue(te)}send(te){this.system._relay(void 0,this,te)}attachDevTools(){const{devTools:te}=this.options;te&&(typeof te=="function"?te:e.devToolsAdapter)(this)}toJSON(){return{xstate$$type:G,id:this.id}}getPersistedSnapshot(te){return this.logic.getPersistedSnapshot(this._snapshot,te)}[w](){return this}getSnapshot(){return this._snapshot}}function Q(ee,...[te]){return new Y(ee,te)}const J=Q;function ie(ee,te,ae,le,{sendId:ue}){const _e=typeof ue=="function"?ue(ae,le):ue;return[te,{sendId:_e},void 0]}function ne(ee,te){ee.defer(()=>{ee.system.scheduler.cancel(ee.self,te.sendId)})}function re(ee){function te(ae,le){}return te.type="xstate.cancel",te.sendId=ee,te.resolve=ie,te.execute=ne,te}function ge(ee,te,ae,le,{id:ue,systemId:_e,src:Be,input:Xe,syncSnapshot:dt}){const gt=typeof Be=="string"?V(te.machine,Be):Be,Yt=typeof ue=="function"?ue(ae):ue;let nt,ot;return gt&&(ot=typeof Xe=="function"?Xe({context:te.context,event:ae.event,self:ee.self}):Xe,nt=Q(gt,{id:Yt,src:Be,parent:ee.self,syncSnapshot:dt,systemId:_e,input:ot})),[nn(te,{children:{...te.children,[Yt]:nt}}),{id:ue,systemId:_e,actorRef:nt,src:Be,input:ot},void 0]}function De(ee,{actorRef:te}){te&&ee.defer(()=>{te._processingStatus!==K.Stopped&&te.start()})}function he(...[ee,{id:te,systemId:ae,input:le,syncSnapshot:ue=!1}={}]){function _e(Be,Xe){}return _e.type="xstate.spawnChild",_e.id=te,_e.systemId=ae,_e.src=ee,_e.input=le,_e.syncSnapshot=ue,_e.resolve=ge,_e.execute=De,_e}function me(ee,te,ae,le,{actorRef:ue}){const _e=typeof ue=="function"?ue(ae,le):ue,Be=typeof _e=="string"?te.children[_e]:_e;let Xe=te.children;return Be&&(Xe={...Xe},delete Xe[Be.id]),[nn(te,{children:Xe}),Be,void 0]}function Te(ee,te){if(te){if(ee.system._unregister(te),te._processingStatus!==K.Running){ee.stopChild(te);return}ee.defer(()=>{ee.stopChild(te)})}}function Ie(ee){function te(ae,le){}return te.type="xstate.stopChild",te.actorRef=ee,te.resolve=me,te.execute=Te,te}const Ze=Ie;function rt(ee,te,{stateValue:ae}){if(typeof ae=="string"&&fr(ae)){const le=ee.machine.getStateNodeById(ae);return ee._nodes.some(ue=>ue===le)}return ee.matches(ae)}function Rt(ee){function te(){return!1}return te.check=rt,te.stateValue=ee,te}function Qe(ee,{context:te,event:ae},{guards:le}){return!Ir(le[0],te,ae,ee)}function Pt(ee){function te(ae,le){return!1}return te.check=Qe,te.guards=[ee],te}function Ke(ee,{context:te,event:ae},{guards:le}){return le.every(ue=>Ir(ue,te,ae,ee))}function Ge(ee){function te(ae,le){return!1}return te.check=Ke,te.guards=ee,te}function ct(ee,{context:te,event:ae},{guards:le}){return le.some(ue=>Ir(ue,te,ae,ee))}function ut(ee){function te(ae,le){return!1}return te.check=ct,te.guards=ee,te}function Ir(ee,te,ae,le){const{machine:ue}=le,_e=typeof ee=="function",Be=_e?ee:ue.implementations.guards[typeof ee=="string"?ee:ee.type];if(!_e&&!Be)throw new Error(`Guard '${typeof ee=="string"?ee:ee.type}' is not implemented.'.`);if(typeof Be!="function")return Ir(Be,te,ae,le);const Xe={context:te,event:ae},dt=_e||typeof ee=="string"?void 0:"params"in ee?typeof ee.params=="function"?ee.params({context:te,event:ae}):ee.params:void 0;return"check"in Be?Be.check(le,Xe,Be):Be(Xe,dt)}const Ee=ee=>ee.type==="atomic"||ee.type==="final";function Se(ee){return Object.values(ee.states).filter(te=>te.type!=="history")}function it(ee,te){const ae=[];if(te===ee)return ae;let le=ee.parent;for(;le&&le!==te;)ae.push(le),le=le.parent;return ae}function xt(ee){const te=new Set(ee),ae=Fr(te);for(const le of te)if(le.type==="compound"&&(!ae.get(le)||!ae.get(le).length))wa(le).forEach(ue=>te.add(ue));else if(le.type==="parallel"){for(const ue of Se(le))if(ue.type!=="history"&&!te.has(ue)){const _e=wa(ue);for(const Be of _e)te.add(Be)}}for(const le of te){let ue=le.parent;for(;ue;)te.add(ue),ue=ue.parent}return te}function zt(ee,te){const ae=te.get(ee);if(!ae)return{};if(ee.type==="compound"){const ue=ae[0];if(ue){if(Ee(ue))return ue.key}else return{}}const le={};for(const ue of ae)le[ue.key]=zt(ue,te);return le}function Fr(ee){const te=new Map;for(const ae of ee)te.has(ae)||te.set(ae,[]),ae.parent&&(te.has(ae.parent)||te.set(ae.parent,[]),te.get(ae.parent).push(ae));return te}function It(ee,te){const ae=xt(te);return zt(ee,Fr(ae))}function vr(ee,te){return te.type==="compound"?Se(te).some(ae=>ae.type==="final"&&ee.has(ae)):te.type==="parallel"?Se(te).every(ae=>vr(ee,ae)):te.type==="final"}const fr=ee=>ee[0]===i;function un(ee,te){return ee.transitions.get(te)||[...ee.transitions.keys()].filter(ae=>{if(ae===s)return!0;if(!ae.endsWith(".*"))return!1;const le=ae.split("."),ue=te.split(".");for(let _e=0;_ele.length-ae.length).flatMap(ae=>ee.transitions.get(ae))}function ir(ee){const te=ee.config.after;if(!te)return[];const ae=le=>{const ue=d(le,ee.id),_e=ue.type;return ee.entry.push(pd(ue,{id:_e,delay:le})),ee.exit.push(re(_e)),_e};return Object.keys(te).flatMap(le=>{const ue=te[le],_e=typeof ue=="string"?{target:ue}:ue,Be=Number.isNaN(+le)?le:+le,Xe=ae(Be);return D(_e).map(dt=>({...dt,event:Xe,delay:Be}))}).map(le=>{const{delay:ue}=le;return{...vn(ee,le.event,le),delay:ue}})}function vn(ee,te,ae){const le=L(ae.target),ue=ae.reenter??!1,_e=xa(ee,le),Be={...ae,actions:D(ae.actions),guard:ae.guard,target:_e,source:ee,reenter:ue,eventType:te,toJSON:()=>({...Be,source:`#${ee.id}`,target:_e?_e.map(Xe=>`#${Xe.id}`):void 0})};return Be}function xr(ee){const te=new Map;if(ee.config.on)for(const ae of Object.keys(ee.config.on)){if(ae===a)throw new Error('Null events ("") cannot be specified as a transition key. Use `always: { ... }` instead.');const le=ee.config.on[ae];te.set(ae,F(le).map(ue=>vn(ee,ae,ue)))}if(ee.config.onDone){const ae=`xstate.done.state.${ee.id}`;te.set(ae,F(ee.config.onDone).map(le=>vn(ee,ae,le)))}for(const ae of ee.invoke){if(ae.onDone){const le=`xstate.done.actor.${ae.id}`;te.set(le,F(ae.onDone).map(ue=>vn(ee,le,ue)))}if(ae.onError){const le=`xstate.error.actor.${ae.id}`;te.set(le,F(ae.onError).map(ue=>vn(ee,le,ue)))}if(ae.onSnapshot){const le=`xstate.snapshot.${ae.id}`;te.set(le,F(ae.onSnapshot).map(ue=>vn(ee,le,ue)))}}for(const ae of ee.after){let le=te.get(ae.eventType);le||(le=[],te.set(ae.eventType,le)),le.push(ae)}return te}function ea(ee,te){const ae=typeof te=="string"?ee.states[te]:te?ee.states[te.target]:void 0;if(!ae&&te)throw new Error(`Initial state node "${te}" not found on parent state node #${ee.id}`);const le={source:ee,actions:!te||typeof te=="string"?[]:D(te.actions),eventType:null,reenter:!1,target:ae?[ae]:[],toJSON:()=>({...le,source:`#${ee.id}`,target:ae?[`#${ae.id}`]:[]})};return le}function xa(ee,te){if(te!==void 0)return te.map(ae=>{if(typeof ae!="string")return ae;if(fr(ae))return ee.machine.getStateNodeById(ae);const le=ae[0]===n;if(le&&!ee.parent)return Ol(ee,ae.slice(1));const ue=le?ee.key+ae:ae;if(ee.parent)try{return Ol(ee.parent,ue)}catch(_e){throw new Error(`Invalid transition definition for state node '${ee.id}': -${_e.message}`)}else throw new Error(`Invalid target: "${ae}" is not a valid target from the root node. Did you mean ".${ae}"?`)})}function Gs(ee){const te=L(ee.config.target);return te?{target:te.map(ae=>typeof ae=="string"?Ol(ee.parent,ae):ae)}:ee.parent.initial}function Vo(ee){return ee.type==="history"}function wa(ee){const te=Xs(ee);for(const ae of te)for(const le of it(ae,ee))te.add(le);return te}function Xs(ee){const te=new Set;function ae(le){if(!te.has(le)){if(te.add(le),le.type==="compound")ae(le.initial.target[0]);else if(le.type==="parallel")for(const ue of Se(le))ae(ue)}}return ae(ee),te}function fo(ee,te){if(fr(te))return ee.machine.getStateNodeById(te);if(!ee.states)throw new Error(`Unable to retrieve child state '${te}' from '${ee.id}'; no child states exist.`);const ae=ee.states[te];if(!ae)throw new Error(`Child state '${te}' does not exist on '${ee.id}'`);return ae}function Ol(ee,te){if(typeof te=="string"&&fr(te))try{return ee.machine.getStateNodeById(te)}catch{}const ae=C(te).slice();let le=ee;for(;ae.length;){const ue=ae.shift();if(!ue.length)break;le=fo(le,ue)}return le}function jl(ee,te){if(typeof te=="string"){const ue=ee.states[te];if(!ue)throw new Error(`State '${te}' does not exist on '${ee.id}'`);return[ee,ue]}const ae=Object.keys(te),le=ae.map(ue=>fo(ee,ue)).filter(Boolean);return[ee.machine.root,ee].concat(le,ae.reduce((ue,_e)=>{const Be=fo(ee,_e);if(!Be)return ue;const Xe=jl(Be,te[_e]);return ue.concat(Xe)},[]))}function Bc(ee,te,ae,le){const ue=fo(ee,te).next(ae,le);return!ue||!ue.length?ee.next(ae,le):ue}function Ks(ee,te,ae,le){const ue=Object.keys(te),_e=fo(ee,ue[0]),Be=Ll(_e,te[ue[0]],ae,le);return!Be||!Be.length?ee.next(ae,le):Be}function Rh(ee,te,ae,le){const ue=[];for(const _e of Object.keys(te)){const Be=te[_e];if(!Be)continue;const Xe=fo(ee,_e),dt=Ll(Xe,Be,ae,le);dt&&ue.push(...dt)}return ue.length?ue:ee.next(ae,le)}function Ll(ee,te,ae,le){return typeof te=="string"?Bc(ee,te,ae,le):Object.keys(te).length===1?Ks(ee,te,ae,le):Rh(ee,te,ae,le)}function id(ee){return Object.keys(ee.states).map(te=>ee.states[te]).filter(te=>te.type==="history")}function ta(ee,te){let ae=ee;for(;ae.parent&&ae.parent!==te;)ae=ae.parent;return ae.parent===te}function Fc(ee,te){const ae=new Set(ee),le=new Set(te);for(const ue of ae)if(le.has(ue))return!0;for(const ue of le)if(ae.has(ue))return!0;return!1}function Bl(ee,te,ae){const le=new Set;for(const ue of ee){let _e=!1;const Be=new Set;for(const Xe of le)if(Fc(Wr([ue],te,ae),Wr([Xe],te,ae)))if(ta(ue.source,Xe.source))Be.add(Xe);else{_e=!0;break}if(!_e){for(const Xe of Be)le.delete(Xe);le.add(ue)}}return Array.from(le)}function sd(ee){const[te,...ae]=ee;for(const le of it(te,void 0))if(ae.every(ue=>ta(ue,le)))return le}function Fl(ee,te){if(!ee.target)return[];const ae=new Set;for(const le of ee.target)if(Vo(le))if(te[le.id])for(const ue of te[le.id])ae.add(ue);else for(const ue of Fl(Gs(le),te))ae.add(ue);else ae.add(le);return[...ae]}function ra(ee,te){const ae=Fl(ee,te);if(!ae)return;if(!ee.reenter&&ae.every(ue=>ue===ee.source||ta(ue,ee.source)))return ee.source;const le=sd(ae.concat(ee.source));if(le)return le;if(!ee.reenter)return ee.source.machine.root}function Wr(ee,te,ae){const le=new Set;for(const ue of ee)if(ue.target?.length){const _e=ra(ue,ae);ue.reenter&&ue.source===_e&&le.add(_e);for(const Be of te)ta(Be,_e)&&le.add(Be)}return[...le]}function Vn(ee,te){if(ee.length!==te.size)return!1;for(const ae of ee)if(!te.has(ae))return!1;return!0}function qo(ee,te,ae,le,ue,_e){if(!ee.length)return te;const Be=new Set(te._nodes);let Xe=te.historyValue;const dt=Bl(ee,Be,Xe);let gt=te;ue||([gt,Xe]=ji(gt,le,ae,dt,Be,Xe,_e,ae.actionExecutor)),gt=So(gt,le,ae,dt.flatMap(nt=>nt.actions),_e,void 0),gt=Hc(gt,le,ae,dt,Be,_e,Xe,ue);const Yt=[...Be];gt.status==="done"&&(gt=So(gt,le,ae,Yt.sort((nt,ot)=>ot.order-nt.order).flatMap(nt=>nt.exit),_e,void 0));try{return Xe===te.historyValue&&Vn(te._nodes,Be)?gt:nn(gt,{_nodes:Yt,historyValue:Xe})}catch(nt){throw nt}}function Zs(ee,te,ae,le,ue){if(le.output===void 0)return;const _e=h(ue.id,ue.output!==void 0&&ue.parent?N(ue.output,ee.context,te,ae.self):void 0);return N(le.output,ee.context,_e,ae.self)}function Hc(ee,te,ae,le,ue,_e,Be,Xe){let dt=ee;const gt=new Set,Yt=new Set;Nh(le,Be,Yt,gt),Xe&&Yt.add(ee.machine.root);const nt=new Set;for(const ot of[...gt].sort((wt,Ct)=>wt.order-Ct.order)){ue.add(ot);const wt=[];wt.push(...ot.entry);for(const Ct of ot.invoke)wt.push(he(Ct.src,{...Ct,syncSnapshot:!!Ct.onSnapshot}));if(Yt.has(ot)){const Ct=ot.initial.actions;wt.push(...Ct)}if(dt=So(dt,te,ae,wt,_e,ot.invoke.map(Ct=>Ct.id)),ot.type==="final"){const Ct=ot.parent;let Gt=Ct?.type==="parallel"?Ct:Ct?.parent,Wo=Gt||ot;for(Ct?.type==="compound"&&_e.push(h(Ct.id,ot.output!==void 0?N(ot.output,dt.context,te,ae.self):void 0));Gt?.type==="parallel"&&!nt.has(Gt)&&vr(ue,Gt);)nt.add(Gt),_e.push(h(Gt.id)),Wo=Gt,Gt=Gt.parent;if(Gt)continue;dt=nn(dt,{status:"done",output:Zs(dt,te,ae,dt.machine.root,Wo)})}}return dt}function Nh(ee,te,ae,le){for(const ue of ee){const _e=ra(ue,te);for(const Xe of ue.target||[])!Vo(Xe)&&(ue.source!==Xe||ue.source!==_e||ue.reenter)&&(le.add(Xe),ae.add(Xe)),Za(Xe,te,ae,le);const Be=Fl(ue,te);for(const Xe of Be){const dt=it(Xe,_e);_e?.type==="parallel"&&dt.push(_e),Oi(le,te,ae,dt,!ue.source.parent&&ue.reenter?void 0:_e)}}}function Za(ee,te,ae,le){if(Vo(ee))if(te[ee.id]){const ue=te[ee.id];for(const _e of ue)le.add(_e),Za(_e,te,ae,le);for(const _e of ue)Qs(_e,ee.parent,le,te,ae)}else{const ue=Gs(ee);for(const _e of ue.target)le.add(_e),ue===ee.parent?.initial&&ae.add(ee.parent),Za(_e,te,ae,le);for(const _e of ue.target)Qs(_e,ee.parent,le,te,ae)}else if(ee.type==="compound"){const[ue]=ee.initial.target;Vo(ue)||(le.add(ue),ae.add(ue)),Za(ue,te,ae,le),Qs(ue,ee,le,te,ae)}else if(ee.type==="parallel")for(const ue of Se(ee).filter(_e=>!Vo(_e)))[...le].some(_e=>ta(_e,ue))||(Vo(ue)||(le.add(ue),ae.add(ue)),Za(ue,te,ae,le))}function Oi(ee,te,ae,le,ue){for(const _e of le)if((!ue||ta(_e,ue))&&ee.add(_e),_e.type==="parallel")for(const Be of Se(_e).filter(Xe=>!Vo(Xe)))[...ee].some(Xe=>ta(Xe,Be))||(ee.add(Be),Za(Be,te,ae,ee))}function Qs(ee,te,ae,le,ue){Oi(ae,le,ue,it(ee,te))}function ji(ee,te,ae,le,ue,_e,Be,Xe){let dt=ee;const gt=Wr(le,ue,_e);gt.sort((nt,ot)=>ot.order-nt.order);let Yt;for(const nt of gt)for(const ot of id(nt)){let wt;ot.history==="deep"?wt=Ct=>Ee(Ct)&&ta(Ct,nt):wt=Ct=>Ct.parent===nt,Yt??={..._e},Yt[ot.id]=Array.from(ue).filter(wt)}for(const nt of gt)dt=So(dt,te,ae,[...nt.exit,...nt.invoke.map(ot=>Ie(ot.id))],Be,void 0),ue.delete(nt);return[dt,Yt||_e]}function Li(ee,te){return ee.implementations.actions[te]}function ka(ee,te,ae,le,ue,_e){const{machine:Be}=ee;let Xe=ee;for(const dt of le){const gt=typeof dt=="function",Yt=gt?dt:Li(Be,typeof dt=="string"?dt:dt.type),nt={context:Xe.context,event:te,self:ae.self,system:ae.system},ot=gt||typeof dt=="string"?void 0:"params"in dt?typeof dt.params=="function"?dt.params({context:Xe.context,event:te}):dt.params:void 0;if(!Yt||!("resolve"in Yt)){ae.actionExecutor({type:typeof dt=="string"?dt:typeof dt=="object"?dt.type:dt.name||"(anonymous)",info:nt,params:ot,exec:Yt});continue}const wt=Yt,[Ct,Gt,Wo]=wt.resolve(ae,Xe,nt,ot,Yt,ue);Xe=Ct,"retryResolve"in wt&&_e?.push([wt,Gt]),"execute"in wt&&ae.actionExecutor({type:wt.type,info:nt,params:Gt,exec:wt.execute.bind(null,ae,Gt)}),Wo&&(Xe=ka(Xe,te,ae,Wo,ue,_e))}return Xe}function So(ee,te,ae,le,ue,_e){const Be=_e?[]:void 0,Xe=ka(ee,te,ae,le,{internalQueue:ue,deferredActorIds:_e},Be);return Be?.forEach(([dt,gt])=>{dt.retryResolve(ae,Xe,gt)}),Xe}function rn(ee,te,ae,le){let ue=ee;const _e=[];function Be(gt,Yt,nt){ae.system._sendInspectionEvent({type:"@xstate.microstep",actorRef:ae.self,event:Yt,snapshot:gt,_transitions:nt}),_e.push(gt)}if(te.type===u)return ue=nn(Vc(ue,te,ae),{status:"stopped"}),Be(ue,te,[]),{snapshot:ue,microstates:_e};let Xe=te;if(Xe.type!==l){const gt=Xe,Yt=O(gt),nt=qc(gt,ue);if(Yt&&!nt.length)return ue=nn(ee,{status:"error",error:gt.error}),Be(ue,gt,[]),{snapshot:ue,microstates:_e};ue=qo(nt,ee,ae,Xe,!1,le),Be(ue,gt,nt)}let dt=!0;for(;ue.status==="active";){let gt=dt?Qa(ue,Xe):[];const Yt=gt.length?ue:void 0;if(!gt.length){if(!le.length)break;Xe=le.shift(),gt=qc(Xe,ue)}ue=qo(gt,ue,ae,Xe,!1,le),dt=ue!==Yt,Be(ue,Xe,gt)}return ue.status!=="active"&&Vc(ue,Xe,ae),{snapshot:ue,microstates:_e}}function Vc(ee,te,ae){return So(ee,te,ae,Object.values(ee.children).map(le=>Ie(le)),[],void 0)}function qc(ee,te){return te.machine.getTransitionData(te,ee)}function Qa(ee,te){const ae=new Set,le=ee._nodes.filter(Ee);for(const ue of le)e:for(const _e of[ue].concat(it(ue,void 0)))if(_e.always){for(const Be of _e.always)if(Be.guard===void 0||Ir(Be.guard,ee.context,te,ee)){ae.add(Be);break e}}return Bl(Array.from(ae),new Set(ee._nodes),ee.historyValue)}function Bi(ee,te){const ae=xt(jl(ee,te));return It(ee,[...ae])}function ld(ee){return!!ee&&typeof ee=="object"&&"machine"in ee&&"value"in ee}const Hl=function(ee){return k(ee,this.value)},cd=function(ee){return this.tags.has(ee)},Dh=function(ee){const te=this.machine.getTransitionData(this,ee);return!!te?.length&&te.some(ae=>ae.target!==void 0||ae.actions.length)},Vl=function(){const{_nodes:ee,tags:te,machine:ae,getMeta:le,toJSON:ue,can:_e,hasTag:Be,matches:Xe,...dt}=this;return{...dt,tags:Array.from(te)}},ql=function(){return this._nodes.reduce((ee,te)=>(te.meta!==void 0&&(ee[te.id]=te.meta),ee),{})};function Uo(ee,te){return{status:ee.status,output:ee.output,error:ee.error,machine:te,context:ee.context,_nodes:ee._nodes,value:It(te.root,ee._nodes),tags:new Set(ee._nodes.flatMap(ae=>ae.tags)),children:ee.children,historyValue:ee.historyValue||{},matches:Hl,hasTag:cd,can:Dh,getMeta:ql,toJSON:Vl}}function nn(ee,te={}){return Uo({...ee,...te},ee.machine)}function ud(ee){if(typeof ee!="object"||ee===null)return{};const te={};for(const ae in ee){const le=ee[ae];Array.isArray(le)&&(te[ae]=le.map(ue=>({id:ue.id})))}return te}function $h(ee,te){const{_nodes:ae,tags:le,machine:ue,children:_e,context:Be,can:Xe,hasTag:dt,matches:gt,getMeta:Yt,toJSON:nt,...ot}=ee,wt={};for(const Ct in _e){const Gt=_e[Ct];wt[Ct]={snapshot:Gt.getPersistedSnapshot(te),src:Gt.src,systemId:Gt.systemId,syncSnapshot:Gt._syncSnapshot}}return{...ot,context:Fi(Be),children:wt,historyValue:ud(ot.historyValue)}}function Fi(ee){let te;for(const ae in ee){const le=ee[ae];if(le&&typeof le=="object")if("sessionId"in le&&"send"in le&&"ref"in le)te??=Array.isArray(ee)?ee.slice():{...ee},te[ae]={xstate$$type:G,id:le.id};else{const ue=Fi(le);ue!==le&&(te??=Array.isArray(ee)?ee.slice():{...ee},te[ae]=ue)}}return te??ee}function dd(ee,te,ae,le,{event:ue,id:_e,delay:Be},{internalQueue:Xe}){const dt=te.machine.implementations.delays;if(typeof ue=="string")throw new Error(`Only event objects may be used with raise; use raise({ type: "${ue}" }) instead`);const gt=typeof ue=="function"?ue(ae,le):ue;let Yt;if(typeof Be=="string"){const nt=dt&&dt[Be];Yt=typeof nt=="function"?nt(ae,le):nt}else Yt=typeof Be=="function"?Be(ae,le):Be;return typeof Yt!="number"&&Xe.push(gt),[te,{event:gt,id:_e,delay:Yt},void 0]}function Ul(ee,te){const{event:ae,delay:le,id:ue}=te;if(typeof le=="number"){ee.defer(()=>{const _e=ee.self;ee.system.scheduler.schedule(_e,_e,ae,le,ue)});return}}function pd(ee,te){function ae(le,ue){}return ae.type="xstate.raise",ae.event=ee,ae.id=te?.id,ae.delay=te?.delay,ae.resolve=dd,ae.execute=Ul,ae}return _t.$$ACTOR_TYPE=G,_t.Actor=Y,_t.NULL_EVENT=a,_t.ProcessingStatus=K,_t.STATE_DELIMITER=n,_t.XSTATE_ERROR=c,_t.XSTATE_STOP=u,_t.and=Ge,_t.cancel=re,_t.cloneMachineSnapshot=nn,_t.createActor=Q,_t.createErrorActorEvent=g,_t.createInitEvent=b,_t.createInvokeId=P,_t.createMachineSnapshot=Uo,_t.evaluateGuard=Ir,_t.formatInitialTransition=ea,_t.formatTransition=vn,_t.formatTransitions=xr,_t.getAllOwnEventDescriptors=I,_t.getAllStateNodes=xt,_t.getCandidates=un,_t.getDelayedTransitions=ir,_t.getInitialStateNodes=Xs,_t.getPersistedSnapshot=$h,_t.getStateNodeByPath=Ol,_t.getStateNodes=jl,_t.interpret=J,_t.isInFinalState=vr,_t.isMachineSnapshot=ld,_t.isStateId=fr,_t.macrostep=rn,_t.mapValues=A,_t.matchesState=k,_t.microstep=qo,_t.not=Pt,_t.or=ut,_t.pathToStateValue=T,_t.raise=pd,_t.resolveActionsAndContext=So,_t.resolveReferencedActor=V,_t.resolveStateValue=Bi,_t.spawnChild=he,_t.stateIn=Rt,_t.stop=Ze,_t.stopChild=Ie,_t.toArray=D,_t.toObserver=U,_t.toStatePath=C,_t.toTransitionConfigArray=F,_t.transitionNode=Ll,_t}var dne;function pne(){if(dne)return CR;dne=1;var e=j4();function r(a,{machine:i,context:s},l,c){const u=(d,h)=>{if(typeof d=="string"){const f=e.resolveReferencedActor(i,d);if(!f)throw new Error(`Actor logic '${d}' not implemented in machine '${i.id}'`);const g=e.createActor(f,{id:h?.id,parent:a.self,syncSnapshot:h?.syncSnapshot,input:typeof h?.input=="function"?h.input({context:s,event:l,self:a.self}):h?.input,src:d,systemId:h?.systemId});return c[g.id]=g,g}else return e.createActor(d,{id:h?.id,parent:a.self,syncSnapshot:h?.syncSnapshot,input:h?.input,src:d,systemId:h?.systemId})};return(d,h)=>{const f=u(d,h);return c[f.id]=f,a.defer(()=>{f._processingStatus!==e.ProcessingStatus.Stopped&&f.start()}),f}}function n(a,i,s,l,{assignment:c}){if(!i.context)throw new Error("Cannot assign to undefined `context`. Ensure that `context` is defined in the machine config.");const u={},d={context:i.context,event:s.event,spawn:r(a,i,s.event,u),self:a.self,system:a.system};let h={};if(typeof c=="function")h=c(d,l);else for(const g of Object.keys(c)){const b=c[g];h[g]=typeof b=="function"?b(d,l):b}const f=Object.assign({},i.context,h);return[e.cloneMachineSnapshot(i,{context:f,children:Object.keys(u).length?{...i.children,...u}:i.children}),void 0,void 0]}function o(a){function i(s,l){}return i.type="xstate.assign",i.assignment=a,i.resolve=n,i}return CR.assign=o,CR}var Ac={},hne;function jtt(){if(hne)return Ac;hne=1;var e=j4(),r=pne();function n(k,C,_,T,{event:A}){const R=typeof A=="function"?A(_,T):A;return[C,{event:R},void 0]}function o(k,{event:C}){k.defer(()=>k.emit(C))}function a(k){function C(_,T){}return C.type="xstate.emit",C.event=k,C.resolve=n,C.execute=o,C}let i=(function(k){return k.Parent="#_parent",k.Internal="#_internal",k})({});function s(k,C,_,T,{to:A,event:R,id:D,delay:N},M){const O=C.machine.implementations.delays;if(typeof R=="string")throw new Error(`Only event objects may be used with sendTo; use sendTo({ type: "${R}" }) instead`);const F=typeof R=="function"?R(_,T):R;let L;if(typeof N=="string"){const V=O&&O[N];L=typeof V=="function"?V(_,T):V}else L=typeof N=="function"?N(_,T):N;const U=typeof A=="function"?A(_,T):A;let P;if(typeof U=="string"){if(U===i.Parent?P=k.self._parent:U===i.Internal?P=k.self:U.startsWith("#_")?P=C.children[U.slice(2)]:P=M.deferredActorIds?.includes(U)?U:C.children[U],!P)throw new Error(`Unable to send event to actor '${U}' from machine '${C.machine.id}'.`)}else P=U||k.self;return[C,{to:P,targetId:typeof U=="string"?U:void 0,event:F,id:D,delay:L},void 0]}function l(k,C,_){typeof _.to=="string"&&(_.to=C.children[_.to])}function c(k,C){k.defer(()=>{const{to:_,event:T,delay:A,id:R}=C;if(typeof A=="number"){k.system.scheduler.schedule(k.self,_,T,A,R);return}k.system._relay(k.self,_,T.type===e.XSTATE_ERROR?e.createErrorActorEvent(k.self.id,T.data):T)})}function u(k,C,_){function T(A,R){}return T.type="xstate.sendTo",T.to=k,T.event=C,T.id=_?.id,T.delay=_?.delay,T.resolve=s,T.retryResolve=l,T.execute=c,T}function d(k,C){return u(i.Parent,k,C)}function h(k,C){return u(k,({event:_})=>_,C)}function f(k,C,_,T,{collect:A}){const R=[],D=function(N){R.push(N)};return D.assign=(...N)=>{R.push(r.assign(...N))},D.cancel=(...N)=>{R.push(e.cancel(...N))},D.raise=(...N)=>{R.push(e.raise(...N))},D.sendTo=(...N)=>{R.push(u(...N))},D.sendParent=(...N)=>{R.push(d(...N))},D.spawnChild=(...N)=>{R.push(e.spawnChild(...N))},D.stopChild=(...N)=>{R.push(e.stopChild(...N))},D.emit=(...N)=>{R.push(a(...N))},A({context:_.context,event:_.event,enqueue:D,check:N=>e.evaluateGuard(N,C.context,_.event,C),self:k.self,system:k.system},T),[C,void 0,R]}function g(k){function C(_,T){}return C.type="xstate.enqueueActions",C.collect=k,C.resolve=f,C}function b(k,C,_,T,{value:A,label:R}){return[C,{value:typeof A=="function"?A(_,T):A,label:R},void 0]}function x({logger:k},{value:C,label:_}){_?k(_,C):k(C)}function w(k=({context:_,event:T})=>({context:_,event:T}),C){function _(T,A){}return _.type="xstate.log",_.value=k,_.label=C,_.resolve=b,_.execute=x,_}return Ac.SpecialTargets=i,Ac.emit=a,Ac.enqueueActions=g,Ac.forwardTo=h,Ac.log=w,Ac.sendParent=d,Ac.sendTo=u,Ac}var fne;function Ltt(){if(fne)return Qo;fne=1,Object.defineProperty(Qo,"__esModule",{value:!0});var e=pne(),r=j4(),n=jtt();return TR(),Qo.assign=e.assign,Qo.cancel=r.cancel,Qo.raise=r.raise,Qo.spawnChild=r.spawnChild,Qo.stop=r.stop,Qo.stopChild=r.stopChild,Qo.emit=n.emit,Qo.enqueueActions=n.enqueueActions,Qo.forwardTo=n.forwardTo,Qo.log=n.log,Qo.sendParent=n.sendParent,Qo.sendTo=n.sendTo,Qo}var ar=Ltt();const Btt=mt.createStateConfig({on:{"xyflow.init":{actions:ar.assign(({context:e,event:r})=>({initialized:{...e.initialized,xyflow:!0},xyflow:r.instance})),target:"isReady"},"update.view":{actions:ar.assign(({context:e,event:r})=>({initialized:{...e.initialized,xydata:!0},view:r.view,xynodes:r.xynodes,xyedges:r.xyedges})),target:"isReady"}}}),Ftt=mt.createStateConfig({always:[{guard:"isReady",actions:[ko.fitDiagram({duration:0}),ar.assign(({context:e})=>({navigationHistory:{currentIndex:0,history:[{viewId:e.view.id,fromNode:null,viewport:{...e.xyflow.getViewport()}}]}})),Zy(),Stt()],target:"ready"},{target:"initializing"}]}),Htt=mt.createStateConfig({id:"navigating",entry:[one(),nne(),I4(),Qy(),mtt.navigateTo()],on:{"update.view":{actions:ar.enqueueActions(({enqueue:e,context:r,event:n})=>{e(xR());const{fromNode:o,toNode:a}=ene(r,n);e(o&&a?ko.alignNodeFromToAfterNavigate({fromNode:o.id,toPosition:{x:a.data.x,y:a.data.y}}):ko.setViewportCenter()),e.assign(Dre),e(kR()),e(Zy()),e(Km({delay:25}))}),target:"#idle"}}});var Gu={},mne;function Vtt(){if(mne)return Gu;mne=1,Object.defineProperty(Gu,"__esModule",{value:!0});var e=j4();return TR(),Gu.and=e.and,Gu.evaluateGuard=e.evaluateGuard,Gu.not=e.not,Gu.or=e.or,Gu.stateIn=e.stateIn,Gu}var Qm=Vtt();const AR="#navigating",qtt=mt.createStateConfig({id:"idle",on:{"xyflow.nodeClick":[{guard:Qm.and(["enabled: FocusMode","click: node has connections",Qm.or(["click: same node","click: selected node"])]),actions:[Gy(),wR(),Qp()],target:"focused"},{guard:Qm.and(["enabled: Readonly","enabled: ElementDetails","click: node has modelFqn",Qm.or(["click: same node","click: selected node"])]),actions:[Gy(),O4(),SR(),Qp()]},{actions:[Gy(),O4(),Qp()]}],"xyflow.paneClick":{actions:[Xy(),_R()]},"xyflow.paneDblClick":{actions:[Xy(),ko.fitDiagram(),ar.enqueueActions(({context:e,enqueue:r})=>{r(tne({view:e.view.id}))})]},"focus.node":{guard:"enabled: FocusMode",actions:wR(),target:"focused"},"xyflow.edgeClick":{guard:Qm.and(["enabled: Readonly","is dynamic view","enabled: DynamicViewWalkthrough","click: selected edge"]),actions:[ar.raise(({event:e})=>({type:"walkthrough.start",stepId:e.edge.id})),ER()]}}}),Utt=mt.createStateConfig({entry:[P4(),ar.assign(e=>({viewportBeforeFocus:{...e.context.viewport}})),O4(),ar.spawnChild("hotkeyActorLogic",{id:"hotkey"}),ko.fitFocusedBounds()],exit:ar.enqueueActions(({enqueue:e,context:r})=>{e.stopChild("hotkey"),r.viewportBeforeFocus?e(ko.setViewport({viewport:r.viewportBeforeFocus})):e.raise({type:"fitDiagram"},{id:"fitDiagram",delay:20}),e(z4()),e.assign({viewportBeforeFocus:null,focusedNode:null})}),on:{"xyflow.nodeClick":[{guard:Qm.and(["click: focused node","click: node has modelFqn"]),actions:[SR(),Qp()]},{guard:"click: focused node",actions:Qp(),target:"#idle"},{actions:[Gy(),ar.raise(({event:e})=>({type:"focus.node",nodeId:e.node.id})),Qp()]}],"focus.node":{actions:[wR(),P4(),O4(),ko.fitFocusedBounds()]},"key.esc":{target:"idle"},"xyflow.paneClick":{actions:[Xy(),_R()],target:"idle"},"notations.unhighlight":{actions:P4()},"tag.unhighlight":{actions:P4()}}}),Wtt=mt.createStateConfig({entry:[ar.spawnChild("hotkeyActorLogic",{id:"hotkey"}),ar.assign({viewportBeforeFocus:({context:e})=>e.viewport,activeWalkthrough:({context:e,event:r})=>{Tt(r,"walkthrough.start");const n=r.stepId??Ff(e.xyedges).id;return{stepId:n,parallelPrefix:aE(n)}}}),Ky(),ko.fitFocusedBounds(),Ctt()],exit:ar.enqueueActions(({enqueue:e,context:r})=>{e.stopChild("hotkey"),r.viewportBeforeFocus?e(ko.setViewport({viewport:r.viewportBeforeFocus})):e(Km({delay:10})),r.dynamicViewVariant==="sequence"&&r.activeWalkthrough?.parallelPrefix&&e.assign({xynodes:r.xynodes.map(n=>n.type==="seq-parallel"?cr.setData(n,{color:R4.default}):n)}),e(z4()),e.assign({activeWalkthrough:null,viewportBeforeFocus:null}),e(Ett())}),on:{"key.esc":{target:"idle"},"key.arrow.left":{actions:ar.raise({type:"walkthrough.step",direction:"previous"})},"key.arrow.right":{actions:ar.raise({type:"walkthrough.step",direction:"next"})},"walkthrough.step":{actions:[ar.assign(({context:e,event:r})=>{const{stepId:n}=e.activeWalkthrough,o=e.xyedges.findIndex(s=>s.id===n),a=us(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:aE(i)}}}),Ky(),ko.fitFocusedBounds(),rne()]},"xyflow.edgeClick":{actions:[ar.assign(({event:e,context:r})=>!q1(e.edge.id)||e.edge.id===r.activeWalkthrough?.stepId?{}:{activeWalkthrough:{stepId:e.edge.id,parallelPrefix:aE(e.edge.id)}}),Ky(),ko.fitFocusedBounds(),ER(),rne()]},"notations.unhighlight":{actions:Ky()},"tag.unhighlight":{actions:Ky()},"walkthrough.end":{target:"idle"},"xyflow.paneDblClick":{target:"idle"},"update.view":{guard:"is another view",actions:ar.raise(({event:e})=>e,{delay:50}),target:"idle"}}}),Ytt=mt.createStateConfig({initial:"idle",on:{"navigate.to":{guard:"is another view",actions:ar.assign({lastOnNavigate:({context:e,event:r})=>({fromView:e.view.id,toView:r.viewId,fromNode:r.fromNode??null})}),target:AR},"navigate.back":{guard:({context:e})=>e.navigationHistory.currentIndex>0,actions:ar.assign(Cet),target:AR},"navigate.forward":{guard:({context:e})=>e.navigationHistory.currentIndexe.features.enableFitView&&!e.viewportChangedManually,actions:[Qy(),Km({delay:200})]},"open.elementDetails":{guard:"enabled: ElementDetails",actions:SR()},"open.relationshipsBrowser":{actions:ar.sendTo(({system:e})=>jn(e).overlaysActorRef,({context:e,event:r,self:n})=>({type:"open.relationshipsBrowser",subject:r.fqn,viewId:e.view.id,scope:"view",closeable:!0,enableChangeScope:!0,enableSelectSubject:!0,openSourceActor:n}))},"open.relationshipDetails":{actions:ar.sendTo(({system:e})=>jn(e).overlaysActorRef,({context:e,event:r,self:n})=>({type:"open.relationshipDetails",viewId:e.view.id,openSourceActor:n,...r.params}))},"open.source":{actions:tne()},"walkthrough.start":{guard:"is dynamic view",target:".walkthrough"},"toggle.feature":{actions:[Dtt(),Zy()]},"xyflow.nodeMouseEnter":{actions:ktt()},"xyflow.nodeMouseLeave":{actions:_tt()},"xyflow.edgeMouseEnter":{actions:ztt()},"xyflow.edgeMouseLeave":{actions:Itt()},"xyflow.edgeDoubleClick":{guard:"not readonly",actions:gtt()},"notations.highlight":{actions:Rtt()},"notations.unhighlight":{actions:z4()},"tag.highlight":{actions:Ntt()},"tag.unhighlight":{actions:z4()},"open.search":{guard:"enabled: Search",actions:ar.sendTo(({system:e})=>jn(e).searchActorRef,({event:e})=>({type:"open",search:e.search}))}},exit:[Qy()],states:{idle:qtt,focused:Utt,walkthrough:Wtt}}),RR="likec4:diagram:toggledFeatures",gne={read(){try{let e=sessionStorage.getItem(RR);return e?JSON.parse(e):null}catch(e){return console.error(`Error reading fromStorage ${RR}:`,e),null}},write(e){return sessionStorage.setItem(RR,JSON.stringify(FNe(e,Hq))),e}},Gtt=mt.createMachine({initial:"initializing",context:({input:e})=>({...e,xyedges:[],xynodes:[],features:{...nX},toggledFeatures:gne.read()??{enableReadOnly:!0,enableCompareWithLatest:!1},initialized:{xydata:!1,xyflow:!1},viewportChangedManually:!1,lastOnNavigate:null,lastClickedNode:null,focusedNode:null,activeElementDetails:null,viewportBeforeFocus:null,viewportOnManualLayout:null,viewportOnAutoLayout:null,navigationHistory:{currentIndex:0,history:[]},viewport:{x:0,y:0,zoom:1},xyflow:null,dynamicViewVariant:e.dynamicViewVariant??(e.view._type==="dynamic"?e.view.variant:"diagram")??"diagram",activeWalkthrough:null}),states:{initializing:Btt,isReady:Ftt,ready:Ytt,navigating:Htt},on:{"xyflow.paneClick":{actions:[Xy(),_R()]},"xyflow.nodeClick":{actions:[Gy(),Qp()]},"xyflow.edgeClick":{actions:[Xy(),ER()]},"xyflow.applyNodeChanges":{actions:ar.assign({xynodes:({context:e,event:r})=>$3(r.changes,e.xynodes)})},"xyflow.applyEdgeChanges":{actions:ar.assign({xyedges:({context:e,event:r})=>M3(r.changes,e.xyedges)})},"xyflow.viewportMoved":{actions:ar.assign({viewportChangedManually:(({event:e})=>e.manually),viewport:(({event:e})=>e.viewport)})},fitDiagram:{guard:"enabled: FitView",actions:ko.fitDiagram()},"update.nodeData":{actions:ar.assign(Aet)},"update.edgeData":{actions:ar.assign(Ret)},"update.view":{actions:[ar.assign(Dre),Ott()]},"update.inputs":{actions:xtt()},"update.features":{actions:[vtt(),Mtt(),Ptt()]},"switch.dynamicViewVariant":{actions:wtt()},"emit.onChange":{actions:ytt()},"emit.onLayoutTypeChange":{actions:btt()}},exit:[I4(),Qy(),ar.stopChild("hotkey"),ar.stopChild("overlays"),ar.stopChild("search"),ar.assign({xyflow:null,xystore:null,xyedges:[],xynodes:[],initialized:{xydata:!1,xyflow:!1}})]}),Xtt=Gtt;function Ktt({view:e,zoomable:r,pannable:n,nodesDraggable:o,nodesSelectable:a,fitViewPadding:i,where:s,children:l,dynamicViewVariant:c}){const u=Ar(),d=KS(Xtt,{id:"diagram",systemId:"diagram",input:{xystore:u,view:e,zoomable:r,pannable:n,fitViewPadding:i,nodesDraggable:o,nodesSelectable:a,dynamicViewVariant:c}}),[h,f]=E.useState(()=>Nre(d));E.useEffect(()=>{f(b=>b.actor===d?b:Nre(d))},[d]),h.actor!==d&&console.warn("DiagramApi instance changed, this should not happen during the lifetime of the actor");const g=_r();return E.useEffect(()=>d.send({type:"update.features",features:g}),[g,d]),E.useEffect(()=>d.send({type:"update.inputs",inputs:{zoomable:r,pannable:n,fitViewPadding:i,nodesDraggable:o,nodesSelectable:a}}),[r,n,i,d,o,a]),qp(()=>{c&&d.send({type:"switch.dynamicViewVariant",variant:c})},[c,d]),console.debug("Render DiagramActorProvider for view",e.id),y.jsxs(BBe,{value:h,children:[y.jsxs(rX,{children:[y.jsx(trt,{view:e,where:s,actorRef:d}),y.jsx(Jtt,{actorRef:d,children:l})]}),y.jsx(rrt,{})]})}const Ztt=({context:e})=>{let r=e.toggledFeatures;const n=e.view.drifts!=null,o=e.features.enableCompareWithLatest&&(r.enableCompareWithLatest??!1)&&z9(e.activeWalkthrough)&&n,a=e.features.enableReadOnly||r.enableReadOnly||!!e.activeWalkthrough||e.dynamicViewVariant==="sequence"&&e.view._type==="dynamic"||o&&e.view._layout==="auto";return(r.enableReadOnly!==a||r.enableCompareWithLatest!==o)&&(r={...r,enableCompareWithLatest:o,enableReadOnly:a}),{toggledFeatures:r,viewId:e.view.id}},Qtt=(e,r)=>e.viewId===r.viewId&&an(e.toggledFeatures,r.toggledFeatures);function Jtt({children:e,actorRef:r}){const{viewId:n,toggledFeatures:o}=fn(r,Ztt,Qtt);qp(()=>{gne.write(o)},[o]);const a=Ko().findView(n);return y.jsx(ES.Provider,{value:a,children:y.jsx(Np,{overrides:o,children:e})})}const ert=e=>e.context.dynamicViewVariant;function trt({view:e,where:r,actorRef:n}){const o=fn(n,ert);return qE(()=>{n.send({type:"update.view",...ket({view:e,where:r,dynamicViewVariant:o})})},[e,r,o,n]),null}const rrt=E.memo(()=>{const e=Qt(),{onNavigateTo:r,onOpenSource:n,onChange:o,onLayoutTypeChange:a,handlersRef:i}=Fm();Fa("openSource",({params:l})=>n?.(l)),Fa("navigateTo",({viewId:l})=>r?.(l)),Fa("onChange",({change:l})=>o?.({change:l})),Fa("onLayoutTypeChange",({layoutType:l})=>{a?.(l)});const s=E.useRef(!1);return E.useEffect(()=>{if(s.current)return;let l=e.actor.on("initialized",({instance:c})=>{try{i.current.onInitialized?.({diagram:e,xyflow:c})}catch(u){console.error(u)}finally{s.current=!0,l?.unsubscribe(),l=null}});return()=>{l?.unsubscribe()}},[e]),null}),L4={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 L4.hue2rgb(i,a,e+1/3)*255;case"g":return L4.hue2rgb(i,a,e)*255;case"b":return L4.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),s=(a+i)/2;if(o==="l")return s*100;if(a===i)return 0;const l=a-i,c=s>.5?l/(2-a-i):l/(a+i);if(o==="s")return c*100;switch(a){case e:return((r-n)/l+(rr>n?Math.min(r,Math.max(n,e)):Math.min(n,Math.max(r,e)),round:e=>Math.round(e*1e10)/1e10},ort={dec2hex:e=>{const r=Math.round(e).toString(16);return r.length>1?r:`0${r}`}},Bt={channel:L4,lang:nrt,unit:ort},Xu={};for(let e=0;e<=255;e++)Xu[e]=Bt.unit.dec2hex(e);const Lo={ALL:0,RGB:1,HSL:2};class art{constructor(){this.type=Lo.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=Lo.ALL}is(r){return this.type===r}}class irt{constructor(r,n){this.color=n,this.changed=!1,this.data=r,this.type=new art}set(r,n){return this.color=n,this.changed=!1,this.data=r,this.type.type=Lo.ALL,this}_ensureHSL(){const r=this.data,{h:n,s:o,l:a}=r;n===void 0&&(r.h=Bt.channel.rgb2hsl(r,"h")),o===void 0&&(r.s=Bt.channel.rgb2hsl(r,"s")),a===void 0&&(r.l=Bt.channel.rgb2hsl(r,"l"))}_ensureRGB(){const r=this.data,{r:n,g:o,b:a}=r;n===void 0&&(r.r=Bt.channel.hsl2rgb(r,"r")),o===void 0&&(r.g=Bt.channel.hsl2rgb(r,"g")),a===void 0&&(r.b=Bt.channel.hsl2rgb(r,"b"))}get r(){const r=this.data,n=r.r;return!this.type.is(Lo.HSL)&&n!==void 0?n:(this._ensureHSL(),Bt.channel.hsl2rgb(r,"r"))}get g(){const r=this.data,n=r.g;return!this.type.is(Lo.HSL)&&n!==void 0?n:(this._ensureHSL(),Bt.channel.hsl2rgb(r,"g"))}get b(){const r=this.data,n=r.b;return!this.type.is(Lo.HSL)&&n!==void 0?n:(this._ensureHSL(),Bt.channel.hsl2rgb(r,"b"))}get h(){const r=this.data,n=r.h;return!this.type.is(Lo.RGB)&&n!==void 0?n:(this._ensureRGB(),Bt.channel.rgb2hsl(r,"h"))}get s(){const r=this.data,n=r.s;return!this.type.is(Lo.RGB)&&n!==void 0?n:(this._ensureRGB(),Bt.channel.rgb2hsl(r,"s"))}get l(){const r=this.data,n=r.l;return!this.type.is(Lo.RGB)&&n!==void 0?n:(this._ensureRGB(),Bt.channel.rgb2hsl(r,"l"))}get a(){return this.data.a}set r(r){this.type.set(Lo.RGB),this.changed=!0,this.data.r=r}set g(r){this.type.set(Lo.RGB),this.changed=!0,this.data.g=r}set b(r){this.type.set(Lo.RGB),this.changed=!0,this.data.b=r}set h(r){this.type.set(Lo.HSL),this.changed=!0,this.data.h=r}set s(r){this.type.set(Lo.HSL),this.changed=!0,this.data.s=r}set l(r){this.type.set(Lo.HSL),this.changed=!0,this.data.l=r}set a(r){this.changed=!0,this.data.a=r}}const B4=new irt({r:0,g:0,b:0,a:0},"transparent"),Jm={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:e=>{if(e.charCodeAt(0)!==35)return;const r=e.match(Jm.re);if(!r)return;const n=r[1],o=parseInt(n,16),a=n.length,i=a%4===0,s=a>4,l=s?1:17,c=s?8:4,u=i?0:-1,d=s?255:15;return B4.set({r:(o>>c*(u+3)&d)*l,g:(o>>c*(u+2)&d)*l,b:(o>>c*(u+1)&d)*l,a:i?(o&d)*l/255:1},e)},stringify:e=>{const{r,g:n,b:o,a}=e;return a<1?`#${Xu[Math.round(r)]}${Xu[Math.round(n)]}${Xu[Math.round(o)]}${Xu[Math.round(a*255)]}`:`#${Xu[Math.round(r)]}${Xu[Math.round(n)]}${Xu[Math.round(o)]}`}},Jp={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(Jp.hueRe);if(r){const[,n,o]=r;switch(o){case"grad":return Bt.channel.clamp.h(parseFloat(n)*.9);case"rad":return Bt.channel.clamp.h(parseFloat(n)*180/Math.PI);case"turn":return Bt.channel.clamp.h(parseFloat(n)*360)}}return Bt.channel.clamp.h(parseFloat(e))},parse:e=>{const r=e.charCodeAt(0);if(r!==104&&r!==72)return;const n=e.match(Jp.re);if(!n)return;const[,o,a,i,s,l]=n;return B4.set({h:Jp._hue2deg(o),s:Bt.channel.clamp.s(parseFloat(a)),l:Bt.channel.clamp.l(parseFloat(i)),a:s?Bt.channel.clamp.a(l?parseFloat(s)/100:parseFloat(s)):1},e)},stringify:e=>{const{h:r,s:n,l:o,a}=e;return a<1?`hsla(${Bt.lang.round(r)}, ${Bt.lang.round(n)}%, ${Bt.lang.round(o)}%, ${a})`:`hsl(${Bt.lang.round(r)}, ${Bt.lang.round(n)}%, ${Bt.lang.round(o)}%)`}},Jy={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=Jy.colors[e];if(r)return Jm.parse(r)},stringify:e=>{const r=Jm.stringify(e);for(const n in Jy.colors)if(Jy.colors[n]===r)return n}},eb={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(eb.re);if(!n)return;const[,o,a,i,s,l,c,u,d]=n;return B4.set({r:Bt.channel.clamp.r(a?parseFloat(o)*2.55:parseFloat(o)),g:Bt.channel.clamp.g(s?parseFloat(i)*2.55:parseFloat(i)),b:Bt.channel.clamp.b(c?parseFloat(l)*2.55:parseFloat(l)),a:u?Bt.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(${Bt.lang.round(r)}, ${Bt.lang.round(n)}, ${Bt.lang.round(o)}, ${Bt.lang.round(a)})`:`rgb(${Bt.lang.round(r)}, ${Bt.lang.round(n)}, ${Bt.lang.round(o)})`}},As={format:{keyword:Jy,hex:Jm,rgb:eb,rgba:eb,hsl:Jp,hsla:Jp},parse:e=>{if(typeof e!="string")return e;const r=Jm.parse(e)||eb.parse(e)||Jp.parse(e)||Jy.parse(e);if(r)return r;throw new Error(`Unsupported color format: "${e}"`)},stringify:e=>!e.changed&&e.color?e.color:e.type.is(Lo.HSL)||e.data.r===void 0?Jp.stringify(e):e.a<1||!Number.isInteger(e.r)||!Number.isInteger(e.g)||!Number.isInteger(e.b)?eb.stringify(e):Jm.stringify(e)},yne=(e,r)=>{const n=As.parse(e);for(const o in r)n[o]=Bt.channel.clamp[o](r[o]);return As.stringify(n)},srt=(e,r,n=0,o=1)=>{if(typeof e!="number")return yne(e,{a:r});const a=B4.set({r:Bt.channel.clamp.r(e),g:Bt.channel.clamp.g(r),b:Bt.channel.clamp.b(n),a:Bt.channel.clamp.a(o)});return As.stringify(a)},bne=e=>As.format.hex.stringify(As.parse(e)),vne=e=>As.format.rgba.stringify(As.parse(e)),lrt=(e,r)=>{const n=As.parse(e),o={};for(const a in r)r[a]&&(o[a]=n[a]+r[a]);return yne(e,o)},xne=(e,r,n=50)=>{const{r:o,g:a,b:i,a:s}=As.parse(e),{r:l,g:c,b:u,a:d}=As.parse(r),h=n/100,f=h*2-1,g=s-d,b=((f*g===-1?f:(f+g)/(1+f*g))+1)/2,x=1-b,w=o*b+l*x,k=a*b+c*x,C=i*b+u*x,_=s*h+d*(1-h);return srt(w,k,C,_)},wne=(e,r)=>{const n=As.parse(e),o={},a=(i,s,l)=>s>0?(l-i)*s/100:i*s/100;for(const i in r)o[i]=a(n[i],r[i],Bt.channel.max[i]);return lrt(e,o)},kne=e=>`[data-mantine-color-scheme="${e}"]`,_ne=kne("dark"),crt=kne("light"),urt=5,drt=(e,r,n,o)=>{const a=l=>bne(wne(l,{l:-22-5*o,s:-10-6*o})),i=l=>bne(wne(l,{l:-20-3*o,s:-3-6*o})),s=`:where(${e} [data-likec4-color="${r}"][data-compound-depth="${o}"])`;return` -${s} { - --likec4-palette-fill: ${i(n.elements.fill)}; - --likec4-palette-stroke: ${i(n.elements.stroke)}; -} -${_ne} ${s} { + `});const iKe=fe({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)"}),aKe=[["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"}]],lKe=wt("outline","help-circle","HelpCircle",aKe),sKe=[["path",{d:"M7 7l10 10",key:"svg-0"}],["path",{d:"M17 8l0 9l-9 0",key:"svg-1"}]],cKe=wt("outline","arrow-down-right","ArrowDownRight",sKe),dKe=({value:e})=>{const{title:r,color:n="primary",shape:o="rectangle"}=e,[i,a]=S.useState(null),l=Mt(),s=300,c=200;return y.jsx(b3,{shadow:"none",px:"xs",py:"sm",className:Ge(oKe),"data-likec4-color":n,onMouseEnter:()=>{a(null),l.highlightNotation(e)},onMouseLeave:()=>{a(null),l.unhighlightNotation()},children:y.jsxs(en,{gap:"sm",align:"stretch",wrap:"nowrap",children:[y.jsx(Se,{flex:"0 0 70px",style:{position:"relative",width:70,height:GCe(70*(c/s),0)},children:y.jsx(pg,{data:{shape:o,width:s,height:c}})}),y.jsxs(Lo,{gap:4,flex:1,children:[y.jsx(en,{gap:4,flex:"0 0 auto",children:e.kinds.map(d=>y.jsx(ec,{className:Ge(iKe),onMouseEnter:()=>{a(d),l.highlightNotation(e,d)},onMouseLeave:()=>{a(null),l.highlightNotation(e)},opacity:Bq(i)&&i!==d?.25:1,children:d},d))}),y.jsx(it,{component:"div",fz:"sm",fw:500,lh:"1.25",style:{textWrap:"pretty"},children:r})]})]})})},uKe=e=>({id:e.view.id,notations:e.view.notation?.nodes??[]}),pKe=S.memo(()=>{const e=QC(s=>s.height),{id:r,notations:n}=pa(uKe),[o,i]=sze({key:"notation-webview-collapsed",defaultValue:!0}),a=n.length>0,l=bg();return y.jsxs(Cn,{children:[!a&&y.jsx(ga.div,{initial:{opacity:.75,translateX:"50%"},animate:{opacity:1,translateX:0},exit:{translateX:"100%",opacity:.6},className:AR,children:y.jsx(_n,{label:"View has no notations",color:"orange",...l,children:y.jsx(Ti,{size:"lg",variant:"light",color:"orange",radius:"md",children:y.jsx(rte,{})})})},"empty"),a&&o&&y.jsx(ga.div,{initial:{opacity:.75,translateX:"50%"},animate:{opacity:1,translateX:0},exit:{translateX:"100%",opacity:.6},className:AR,children:y.jsx(_n,{label:"Show notation",color:"dark",fz:"xs",...l,children:y.jsx(lr,{size:"lg",variant:"default",color:"gray",className:tKe,onClick:()=>i(!1),children:y.jsx(lKe,{stroke:1.5})})})},"collapsed"),a&&!o&&y.jsx(ga.div,{initial:{opacity:.75,scale:.2},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.25},className:Ge("react-flow__panel",AR),style:{transformOrigin:"bottom right"},children:y.jsx(Af,{radius:"sm",withBorder:!0,shadow:"lg",className:rKe,children:y.jsxs(up,{defaultValue:"first",radius:"xs",children:[y.jsxs(ky,{children:[y.jsx(lr,{size:"md",variant:"subtle",color:"gray",ml:2,style:{alignSelf:"center"},onClick:()=>i(!0),children:y.jsx(cKe,{stroke:2})}),y.jsx(Lf,{value:"first",fz:"xs",children:"Elements"}),y.jsx(Lf,{value:"second",fz:"xs",disabled:!0,children:"Relationships"})]}),y.jsx(rc,{value:"first",className:nKe,hidden:o,children:y.jsx(oi,{viewportProps:{style:{maxHeight:`min(40vh, ${Math.max(e-60,50)}px)`}},children:y.jsx(Lo,{gap:0,children:n.map((s,c)=>y.jsx(dKe,{value:s},c))})})})]})})},r)]})}),hKe=S.memo(()=>{const[{layout:e,isActive:r},{toggleCompare:n}]=TR(),o=e==="manual"?"var(--mantine-color-orange-6)":"var(--mantine-color-green-6)";return y.jsx(hr,{className:qn({position:"absolute",top:"0",left:"0",width:"full",height:"full",border:"default",borderWidth:4,pointerEvents:"none",alignItems:"flex-start",justifyContent:"center"}),style:{zIndex:"9999",display:r?void 0:"none",borderColor:o},children:y.jsx(fKe,{style:{backgroundColor:o},onClick:i=>{i.stopPropagation(),n()},children:"Close compare"})})}),fKe=pr.withProps({className:fe({fontSize:"xs",fontWeight:"medium",py:"1.5",lineHeight:"1",borderBottomLeftRadius:"sm",borderBottomRightRadius:"sm",transform:"translateY(-4px)",px:"4",color:"mantine.colors.gray[9]",pointerEvents:"all",_active:{transform:"translateY(-3px)"}})}),yte=S.memo(()=>{const{enableControls:e,enableNotations:r,enableSearch:n,enableRelationshipDetails:o,enableReadOnly:i,enableCompareWithLatest:a}=sr(),l=e6e(),s=oBe(),c=aBe(),d=S.useCallback(()=>{console.warn("DiagramUI: resetting error boundary and rerendering..."),l()},[]);return y.jsxs(QS,{onReset:d,children:[e&&y.jsx(mte,{}),s&&y.jsx(uWe,{overlaysActorRef:s}),r&&y.jsx(pKe,{}),n&&c&&y.jsx(ZWe,{searchActorRef:c}),o&&i&&y.jsx(uGe,{}),a&&y.jsx(hKe,{})]})});yte.displayName="DiagramUI";function vte({edgeProps:{data:e},svgPath:r}){const n=e.drifts;return!n||n.length===0?null:y.jsx("path",{className:Ge("react-flow__edge-path",fe({pointerEvents:"none",stroke:"likec4.compare.manual.outline",fill:"none",strokeWidth:{base:"8px",_whenHovered:"12px"},strokeOpacity:.5})),d:r,strokeLinecap:"round"})}const gKe=fe({overflow:"visible",position:"absolute",pointerEvents:"none",top:"0",left:"0",mixBlendMode:{_dark:"screen",_light:"multiply"}}),mKe=fe({fill:"[var(--xy-edge-stroke)]",stroke:"transparent",fillOpacity:.5,strokeWidth:10,r:4,cursor:"grab",pointerEvents:"all",visibility:"hidden",transitionDuration:"120ms",transitionProperty:"visibility, fill, fill-opacity, r",transitionTimingFunction:"inOut",transitionDelay:"20ms",":where([data-likec4-selected='true'], [data-likec4-hovered='true']) &":{visibility:"visible",fillOpacity:1,transitionTimingFunction:"out",transitionDelay:"0ms"},":where([data-likec4-selected='true']) &":{r:6},":is([data-likec4-hovered='true']) &":{r:8},_hover:{fill:"mantine.colors.primary.filledHover",r:10,transitionDuration:"100ms"},_groupActive:{cursor:"grabbing"}});function yKe({sourceX:e,sourceY:r,targetX:n,targetY:o,data:i}){const[a,l]=S.useState(()=>i.controlPoints??c2(i.points));$p(()=>{const c=i.controlPoints??c2(i.points);l(d=>tt(d,c)?d:c)},[i.controlPoints?.map(c=>`${Math.round(c.x)},${Math.round(c.y)}`).join("|")??"",i.points.map(c=>`${Math.round(c[0])},${Math.round(c[1])}`).join("|")]);const s=at(({x:c,y:d})=>{const u=Qr(e,r),p=Qr(n,o),f=[i.dir==="back"?p:u,...a.map(Qr)||[],i.dir==="back"?u:p],m=Qr(c,d).round();let v=0,w=1/0;for(let k=0;k=0))throw new Error(`invalid digits: ${e}`);if(r>15)return xte;const n=10**r;return function(o){this._+=o[0];for(let i=1,a=o.length;iTp)if(!(Math.abs(p*c-d*u)>Tp)||!a)this._append`L${this._x1=r},${this._y1=n}`;else{let m=o-l,v=i-s,w=c*c+d*d,x=m*m+v*v,k=Math.sqrt(w),C=Math.sqrt(f),_=a*Math.tan((DR-Math.acos((w+f-x)/(2*k*C)))/2),$=_/C,R=_/k;Math.abs($-1)>Tp&&this._append`L${r+$*u},${n+$*p}`,this._append`A${a},${a},0,0,${+(p*m>u*v)},${this._x1=r+R*c},${this._y1=n+R*d}`}}arc(r,n,o,i,a,l){if(r=+r,n=+n,o=+o,l=!!l,o<0)throw new Error(`negative radius: ${o}`);let s=o*Math.cos(i),c=o*Math.sin(i),d=r+s,u=n+c,p=1^l,f=l?i-a:a-i;this._x1===null?this._append`M${d},${u}`:(Math.abs(this._x1-d)>Tp||Math.abs(this._y1-u)>Tp)&&this._append`L${d},${u}`,o&&(f<0&&(f=f%PR+PR),f>vKe?this._append`A${o},${o},0,1,${p},${r-s},${n-c}A${o},${o},0,1,${p},${this._x1=d},${this._y1=u}`:f>Tp&&this._append`A${o},${o},0,${+(f>=DR)},${p},${this._x1=r+o*Math.cos(a)},${this._y1=n+o*Math.sin(a)}`)}rect(r,n,o,i){this._append`M${this._x0=this._x1=+r},${this._y0=this._y1=+n}h${o=+o}v${+i}h${-o}Z`}toString(){return this._}}function wKe(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 xKe(r)}function kKe(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function wte(e){this._context=e}wte.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 _Ke(e){return new wte(e)}function SKe(e){return e[0]}function EKe(e){return e[1]}function CKe(e,r){var n=_g(!0),o=null,i=_Ke,a=null,l=wKe(s);e=typeof e=="function"?e:e===void 0?SKe:_g(e),r=typeof r=="function"?r:r===void 0?EKe:_g(r);function s(c){var d,u=(c=kKe(c)).length,p,f=!1,m;for(o==null&&(a=i(m=l())),d=0;d<=u;++d)!(dbte){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,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/c}if(e._l23_a>bte){var d=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,u=3*e._l23_a*(e._l23_a+e._l12_a);a=(a*d+e._x1*e._l23_2a-r*e._l12_2a)/u,l=(l*d+e._y1*e._l23_2a-n*e._l12_2a)/u}e._context.bezierCurveTo(o,i,a,l,e._x2,e._y2)}function _te(e,r){this._context=e,this._alpha=r}_te.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:kte(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 _te(o,r):new NR(o,0)}return n.alpha=function(o){return e(+o)},n})(.5);function Ste(e,r){this._context=e,this._alpha=r}Ste.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:kte(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 $Ke=(function e(r){function n(o){return r?new Ste(o,r):new BR(o,0)}return n.alpha=function(o){return e(+o)},n})(.5),RKe=CKe().curve($Ke.alpha(.7)).x(e=>Math.round(e.x)).y(e=>Math.round(e.y)),zKe=(e,r)=>cQ(e.sourceNode,r.sourceNode)&&cQ(e.targetNode,r.targetNode);function TKe({props:{sourceX:e,sourceY:r,source:n,target:o,targetX:i,targetY:a,data:l},controlPoints:s,isControlPointDragging:c}){const{sourceNode:d,targetNode:u}=QC(S.useCallback(({nodeLookup:p})=>{const f=gt(p.get(n),`source node ${n} not found`),m=gt(p.get(o),`target node ${o} not found`);return{sourceNode:r$(f),targetNode:r$(m)}},[n,o]),zKe);if(Zn(l.controlPoints)||c){const p={x:e,y:r},f={x:i,y:a},m=6,v=l.dir==="back"?[f,s2(u,hf(s)??p,m),...s,s2(d,dd(s)??f,m),p]:[p,s2(d,hf(s)??f,m),...s,s2(u,dd(s)??p,m),f];return gt(RKe(v))}return OVe(l.points)}const Ete=e=>{const r=e.getPointAtLength(e.getTotalLength()*.5);return{x:Math.round(r.x),y:Math.round(r.y)}},Cte=rR(e=>{const[r,n]=S.useState(!1),o=S.useRef(r);o.current=r;const i=iQ(),a=Mt(),{enableNavigateTo:l,enableReadOnly:s,enableCompareWithLatest:c}=sr(),d=!s,{id:u,selected:p=!1,data:{labelBBox:f,labelXY:m,...v}}=e,w=l&&!r?v.navigateTo:void 0,{controlPoints:x,setControlPoints:k,insertControlPoint:C}=yKe(e);let _=TKe({props:e,controlPoints:x,isControlPointDragging:r}),$=f?.x??0,R=f?.y??0;const[T,A]=S.useState({x:m?.x??$,y:m?.y??R});$p(()=>{if(o.current)return;const V={x:$,y:R};A(B=>d2(B,V)?B:V)},[$,R]);const z=S.useRef(null);S.useEffect(()=>{const V=z.current;if(!V||!r)return;const B=Ete(V);A(F=>d2(F,B)?F:B)},[_,r]);const j=at(V=>{const B=z.current?Ete(z.current):null;f&&B?a.updateEdgeData(u,{controlPoints:V,labelBBox:{...f,...B}}):a.updateEdgeData(u,{controlPoints:V}),a.stopEditing(!0),n(!1)}),I=at(()=>{a.startEditing("edge"),n(!0)}),N=at(()=>{a.stopEditing(),n(!1)}),L=at(V=>{k(V),requestAnimationFrame(()=>{j(V)})}),H=at(V=>{a.startEditing("edge"),n(!0),k(V),requestAnimationFrame(()=>{j(V)})}),P=at(V=>{if(V.pointerType!=="mouse"||V.button!==2&&!p)return;V.stopPropagation(),V.preventDefault(),a.startEditing("edge");const B=C(i.screenToFlowPosition({x:V.clientX,y:V.clientY},{snapToGrid:!1}));a.updateEdgeData(u,{controlPoints:B}),a.stopEditing(!0)});return r&&!e.data.hovered&&(e={...e,data:{...e.data,hovered:!0}}),y.jsxs(y.Fragment,{children:[y.jsxs(a0,{...e,className:fe({"& .react-flow__edge-interaction":{cursor:d&&p?"copy":void 0}}),children:[y.jsx(l0,{edgeProps:e,svgPath:_,ref:z,isDragging:r,...d&&{onEdgePointerDown:P}}),c&&y.jsx(vte,{edgeProps:e,svgPath:_}),f&&y.jsx(S2,{edgeProps:e,labelPosition:r?T:{x:$,y:R},children:y.jsx(i0,{pointerEvents:d?"none":"all",edgeProps:e,children:w&&y.jsx(_2,{onClick:V=>{V.stopPropagation(),a.navigateTo(w)}})})})]}),d&&x.length>0&&y.jsx(jKe,{isControlPointDragging:r,edgeProps:e,controlPoints:x,onMove:k,onStartMove:I,onCancelMove:N,onFinishMove:L,onDelete:H,zIndex:9999})]})});Cte.displayName="RelationshipEdge";function jKe({isControlPointDragging:e,edgeProps:r,controlPoints:n,onMove:o,onStartMove:i,onCancelMove:a,onFinishMove:l,onDelete:s,zIndex:c}){const d=JC(),u=iQ(),p=r.data.id,f=(x,k,C)=>{let _=!1,$={x:k.clientX,y:k.clientY},R=null,T=n;const A=j=>{const I={x:j.clientX,y:j.clientY};d2($,I)||(_||(_=!0,i()),$=I,R??=requestAnimationFrame(()=>{R=null,T=T.slice();const{x:N,y:L}=u.screenToFlowPosition($,{snapToGrid:!1});T[x]={x:Math.round(N),y:Math.round(L)},o(T)})),j.stopPropagation()},z=j=>{j.stopPropagation(),C.removeEventListener("pointermove",A,{capture:!0}),C.removeEventListener("click",IR,{capture:!0}),_?l(T):a()};C.addEventListener("pointermove",A,{capture:!0}),C.addEventListener("pointerup",z,{once:!0,capture:!0}),C.addEventListener("click",IR,{capture:!0,once:!0})},m=(x,k)=>{if(n.length<=1)return;k.stopPropagation(),k.preventDefault();const C=n.slice();C.splice(x,1),setTimeout(()=>{s(C)},10)},v=at(x=>{const{domNode:k,addSelectedEdges:C,edges:_,unselectNodesAndEdges:$}=d.getState();if(!k||x.pointerType!=="mouse")return;const R=parseFloat(x.currentTarget.getAttribute("data-control-point-index")||"");if(isNaN(R))throw new Error("data-control-point-index is not a number");switch(x.button){case 0:{x.stopPropagation(),$({edges:_.filter(T=>T.selected&&T.id!==p)}),C([p]),f(R,x,k);break}case 2:m(R,x);break}}),w=at(x=>{const{domNode:k}=d.getState();if(!k||x.pointerType!=="mouse")return;const C=parseFloat(x.currentTarget.getAttribute("data-control-point-index")||"");if(isNaN(C))throw new Error("data-control-point-index is not a number");m(C,x)});return y.jsx(yq,{children:y.jsx(a0,{component:"svg",className:gKe,...r,style:{...r.style,zIndex:c},children:y.jsx("g",{"data-active":e?!0:void 0,className:"group",onContextMenu:IR,children:n.map((x,k)=>y.jsx("circle",{"data-control-point-index":k,onPointerDownCapture:v,onDoubleClick:w,className:Ge("nodrag nopan",mKe),cx:x.x,cy:x.y},"controlPoints"+p+"#"+k))})})})}const IR=e=>{e.stopPropagation(),e.preventDefault()},V2=16;function AKe(e){const{enableNavigateTo:r,enableCompareWithLatest:n}=sr(),o=Mt(),{navigateTo:i}=e.data,a=e.source===e.target,l=e.sourceX>e.targetX,[s]=Zx({sourceX:e.sourceX,sourceY:e.sourceY,sourcePosition:e.sourcePosition,targetX:e.targetX,targetY:e.targetY,targetPosition:e.targetPosition,...a&&{offset:30,borderRadius:16}});let c=e.sourceX;switch(!0){case a:c=e.sourceX+24+V2;break;case l:c=e.sourceX-V2;break;default:c=e.sourceX+V2;break}return y.jsxs(a0,{...e,children:[y.jsx(l0,{edgeProps:e,svgPath:s}),n&&y.jsx(vte,{edgeProps:e,svgPath:s}),y.jsx(S2,{edgeProps:e,labelPosition:{x:c,y:e.sourceY+(a?0:V2),translate:l?"translate(-100%, 0)":void 0},children:y.jsx(i0,{edgeProps:e,children:r&&i&&y.jsx(_2,{onClick:d=>{d.stopPropagation(),o.navigateTo(i)}})})})]})}const DKe=(e,r)=>tt(e.data.id,r.data.id)&&tt(e.selected??!1,r.selected??!1)&&tt(e.data.modelFqn??null,r.data.modelFqn??null)&&tt(e.data.navigateTo??null,r.data.navigateTo??null)&&tt(e.data.hovered??!1,r.data.hovered??!1)&&(!e.extraButtons&&!r.extraButtons||Ir(e.extraButtons,r.extraButtons)),$te=S.memo(({extraButtons:e,...r})=>{const{enableNavigateTo:n,enableRelationshipBrowser:o}=sr(),i=Mt(),{id:a,navigateTo:l,modelFqn:s}=r.data;let c=S.useMemo(()=>{const d=[];return l&&n&&d.push({key:"navigate",icon:y.jsx(ba,{}),onClick:u=>{u.stopPropagation(),i.navigateTo(l,a)}}),o&&d.push({key:"relationships",icon:y.jsx(s0,{}),onClick:u=>{u.stopPropagation(),i.openRelationshipsBrowser(s)}}),d},[n,o,s,l,a,i]);return e&&xn(e,1)&&(c=[...c,...e]),y.jsx(C2,{...r,buttons:c})},DKe),PKe=({extraButtons:e,...r})=>{const{enableNavigateTo:n,enableRelationshipBrowser:o}=sr(),i=Mt(),{id:a,navigateTo:l,modelFqn:s}=r.data;let c=S.useMemo(()=>{const d=[];return l&&n&&d.push({key:"navigate",icon:y.jsx(ba,{}),onClick:u=>{u.stopPropagation(),i.navigateTo(l,a)}}),o&&s&&d.push({key:"relationships",icon:y.jsx(s0,{}),onClick:u=>{u.stopPropagation(),i.openRelationshipsBrowser(s)}}),d},[n,o,s,l,a]);return e&&xn(e,1)&&(c=[...c,...e]),y.jsx(C2,{...r,buttons:c})};function Sg({nodeProps:{data:e},position:r="bottom"}){const n=e.drifts;if(!n||n.length===0)return null;const o=r==="top"?Ue.Top:Ue.Bottom;return y.jsx(hr,{className:"likec4-node-drifts",css:{display:"contents","& + .likec4-element-shape":{outlineColor:"likec4.compare.manual.outline",outlineWidth:"4px",outlineStyle:"dashed",outlineOffset:"1.5"}},children:y.jsx(r9,{isVisible:e.hovered===!0,align:"start",position:o,children:y.jsx(xy,{color:"orange",withBorder:!1,withCloseButton:!1,title:"Changes:",children:n.map(i=>y.jsxs(it,{mt:2,size:"sm",lh:"xs",children:["- ",i]},i))})})})}function MKe({data:{hovered:e=!1},icon:r,onClick:n}){const o=m9(e,e?130:0)[0]&&e;return y.jsx(Rr,{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:nn,children:y.jsx(lr,{className:Ge("nodrag nopan",jJ({delay:e&&!o}),a2({variant:"transparent"})),onClick:n,onDoubleClick:nn,children:r??y.jsx(ba,{stroke:2})})})}const Rte=e=>{const{enableNavigateTo:r}=sr(),n=Mt(),{navigateTo:o}=e.data;return o&&r?y.jsx(MKe,{onClick:i=>{i.stopPropagation(),n.navigateTo(o,e.id)},...e}):null},zte=_n.withProps({color:"dark",fz:"xs",openDelay:400,closeDelay:150,label:"",children:null,offset:4,withinPortal:!1});function q2({fqn:e}){const r=Mt();return y.jsx(zte,{label:"Browse relationships",children:y.jsx(lr,{size:"sm",variant:"subtle",color:"gray",onClick:n=>{n.stopPropagation(),r.openRelationshipsBrowser(e)},children:y.jsx(s0,{stroke:2,style:{width:"72%",height:"72%"}})})})}function H2(e){const{onOpenSource:r}=mg();return r?y.jsx(zte,{label:"Open source",children:y.jsx(lr,{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(dg,{stroke:1.8,style:{width:"70%"}})})}):null}function Tte(){const e=S.useContext(Sy);e||console.error("No LikeC4ModelContext found");const r=e?.$styles??XN.DEFAULT,[n,o]=S.useState(r);return S.useEffect(()=>{o(i=>i.equals(r)?i:r)},[r]),n}const jte=["primary","secondary","muted"];function U2({elementColor:e,elementOpacity:r,onColorPreview:n,isOpacityEditable:o=!1,onChange:i,...a}){const{theme:l}=Tte();return y.jsxs(br,{clickOutsideEvents:["pointerdown","mousedown","click"],position:"right-end",offset:2,withinPortal:!1,...a,children:[y.jsx(kd,{children:y.jsx(Vn,{variant:"subtle",color:"gray",size:"compact-xs",px:3,children:y.jsx(my,{color:l.colors[e].elements.fill,size:14,withShadow:!0,style:{color:"#fff",cursor:"pointer"}})})}),y.jsxs(Qs,{p:"xs",children:[y.jsx(NKe,{theme:l,elementColor:e,onColorPreview:n,onChange:s=>i({color:s})}),o&&y.jsxs(y.Fragment,{children:[y.jsx(qS,{h:"xs"}),y.jsx(sp,{label:"opacity",labelPosition:"left"}),y.jsx(qS,{h:"xs"}),y.jsx(BKe,{elementOpacity:r,onOpacityChange:s=>{i({opacity:s})}})]})]})]})}function NKe({theme:e,elementColor:r,onColorPreview:n,onChange:o}){const i=l=>s=>{s.stopPropagation(),n(null),r!==l&&o(l)},a=l9(e.colors).filter(l=>!jte.includes(l));return y.jsx(Lo,{gap:2,onMouseLeave:()=>n(null),children:y.jsxs(dp,{openDelay:1e3,closeDelay:300,children:[y.jsx(Js,{maw:120,gap:"6",justify:"flex-start",align:"flex-start",direction:"row",wrap:"wrap",children:jte.map(l=>y.jsx(_n,{label:l,fz:"xs",color:"dark",offset:2,withinPortal:!1,transitionProps:{duration:140,transition:"slide-up"},children:y.jsx(my,{color:e.colors[l].elements.fill,size:18,withShadow:!0,onMouseEnter:()=>n(l),onClick:i(l),style:{color:"#fff",cursor:"pointer"},children:r===l&&y.jsx(OW,{style:{width:$e(10),height:$e(10)}})})},l))}),y.jsx(Js,{mt:"sm",maw:110,gap:"6",justify:"flex-start",align:"flex-start",direction:"row",wrap:"wrap",children:a.map(l=>y.jsx(_n,{label:l,fz:"xs",color:"dark",offset:2,transitionProps:{duration:140,transition:"slide-up"},children:y.jsx(my,{color:e.colors[l].elements.fill,size:18,onMouseEnter:()=>n(l),onClick:i(l),style:{color:"#fff",cursor:"pointer"},children:r===l&&y.jsx(OW,{style:{width:$e(10),height:$e(10)}})})},l))})]})})}function BKe({elementOpacity:e=100,onOpacityChange:r}){const[n,o]=S.useState(e);return t6e(()=>{o(e)},[e]),y.jsx(VS,{size:"sm",color:"dark",value:n,onChange:o,onChangeEnd:r})}const IKe=fe({color:"mantine.colors.dimmed",fontSize:"10px",fontWeight:600,maxWidth:"220px",cursor:"default",userSelect:"all",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"}),OKe=()=>pa(e=>e.xynodes.filter(r=>r.selected).length);function W2({title:e,children:r,nodeProps:n,...o}){const i=OKe(),{selected:a=!1,dragging:l=!1,data:{hovered:s=!1}}=n,c=s&&i===0||a&&i===1;let d=150;c?a?d=100:d=1e3:i>0&&(d=50);const[u]=m9(c,d);return u?y.jsx(r9,{isVisible:!l,offset:4,...o,children:y.jsx(Af,{className:Ge("nodrag","nopan"),px:5,pb:8,pt:4,radius:"sm",shadow:"xl",onDoubleClickCapture:nn,onPointerDown:nn,onClick:nn,onDoubleClick:nn,withBorder:!0,children:y.jsxs(Lo,{gap:"6px",children:[y.jsx(Se,{px:"4px",children:y.jsx(it,{className:IKe,children:e})}),y.jsx(en,{gap:4,children:r})]})})}):null}function G2(e,r){const n=Mt(),[o,i]=S.useState(null),a=at(s=>{if(s===null){if(!o)return;i(null),n.updateNodeData(r.data.id,{color:o});return}i(c=>c??r.data.color),n.updateNodeData(r.data.id,{color:s})}),l=at(s=>{const{shape:c,color:d,...u}=s;n.updateNodeData(r.data.id,{...c&&{shape:c},...d&&{color:d},style:u}),n.triggerChange({op:"change-element-style",style:s,targets:[e]})});return{elementColor:o??r.data.color,onColorPreview:a,onChange:l}}function LKe(e){const{enableVscode:r,enableRelationshipBrowser:n}=sr(),{data:{style:o,modelFqn:i}}=e,{elementColor:a,onColorPreview:l,onChange:s}=G2(i,e),c=o?.opacity??100;return y.jsxs(W2,{nodeProps:e,title:i,align:"start",children:[y.jsx(U2,{elementColor:a,onColorPreview:l,isOpacityEditable:!0,elementOpacity:c,onChange:s,position:"left-start"}),y.jsx(Ate,{elementBorderStyle:o?.border??(c<99?"dashed":"none"),onChange:s}),r&&y.jsx(H2,{elementId:i}),n&&y.jsx(q2,{fqn:i})]})}function FKe(e){const{enableVscode:r,enableRelationshipBrowser:n}=sr(),{data:{deploymentFqn:o,style:i,modelFqn:a}}=e,{elementColor:l,onColorPreview:s,onChange:c}=G2(o,e);return y.jsxs(W2,{nodeProps:e,title:o,align:"start",children:[y.jsx(U2,{elementColor:l,onColorPreview:s,isOpacityEditable:!0,elementOpacity:i?.opacity,onChange:c,position:"left-start"}),y.jsx(Ate,{elementBorderStyle:i?.border,onChange:c}),r&&y.jsx(H2,{deploymentId:o}),n&&a&&y.jsx(q2,{fqn:a})]})}function Ate({elementBorderStyle:e="dashed",onChange:r}){const[n,o]=S.useState(e);return S.useEffect(()=>{o(e)},[e]),y.jsx(Se,{children:y.jsx(Of,{size:"xs",fullWidth:!0,withItemsBorders:!1,value:n,onChange:i=>{const a=i;o(a),r({border:a})},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 VKe(e){const{enableVscode:r,enableRelationshipBrowser:n}=sr(),{data:{shape:o,modelFqn:i}}=e,{elementColor:a,onColorPreview:l,onChange:s}=G2(i,e);return y.jsxs(W2,{nodeProps:e,title:i,align:"start",children:[y.jsx(Dte,{elementShape:o,onChange:s}),y.jsx(U2,{elementColor:a,onColorPreview:l,onChange:s,position:"right-end"}),r&&y.jsx(H2,{elementId:i}),n&&y.jsx(q2,{fqn:i})]})}function qKe(e){const{enableVscode:r,enableRelationshipBrowser:n}=sr(),{data:{shape:o,deploymentFqn:i,modelFqn:a}}=e,{elementColor:l,onColorPreview:s,onChange:c}=G2(i,e);return y.jsxs(W2,{nodeProps:e,title:i,align:"start",children:[y.jsx(Dte,{elementShape:o,onChange:c}),y.jsx(U2,{elementColor:l,onColorPreview:s,onChange:c,position:"right-end"}),r&&y.jsx(H2,{deploymentId:i}),n&&a&&y.jsx(q2,{fqn:a})]})}function Dte({elementShape:e,onChange:r}){return y.jsxs(tn,{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(w3,{children:y.jsx(Vn,{variant:"light",color:"gray",size:"compact-xs",rightSection:y.jsx(tR,{size:12}),children:e})}),y.jsx(vy,{onDoubleClick:nn,onClick:nn,children:n0e.map(n=>y.jsx(by,{fz:12,fw:500,value:n,rightSection:e===n?y.jsx(dQ,{size:12}):void 0,onClick:o=>{o.stopPropagation(),r({shape:n})},children:n},n))})]})}const HKe=[Ue.Top,Ue.Right,Ue.Bottom,Ue.Left],y0=S.memo(()=>y.jsx(y.Fragment,{children:HKe.map(e=>y.jsxs(S.Fragment,{children:[y.jsx(Oo,{type:"source",position:e,className:"likec4-node-handle-center"}),y.jsx(Oo,{type:"target",position:e,className:"likec4-node-handle-center"})]},e))}));function OR(e){const r=Mt(),n=e.data.modelFqn;return n?y.jsx(oR,{...e,onClick:o=>{o.stopPropagation(),r.openElementDetails(n,e.id)}}):null}function Pte(e){const r=Mt(),n=e.data.modelFqn;return n?y.jsx(AJ,{...e,onClick:o=>{o.stopPropagation(),r.openElementDetails(n,e.id)}}):null}function UKe(e){const{enableElementTags:r,enableElementDetails:n,enableReadOnly:o,enableCompareWithLatest:i}=sr();return y.jsxs(ug,{nodeProps:e,children:[i&&y.jsx(Sg,{nodeProps:e}),y.jsx(pg,{...e}),y.jsx(dl,{...e}),r&&y.jsx(t0,{...e}),y.jsx($te,{...e}),n&&y.jsx(OR,{...e}),!o&&y.jsx(VKe,{...e}),y.jsx(y0,{})]})}function WKe(e){const{enableElementTags:r,enableElementDetails:n,enableReadOnly:o,enableCompareWithLatest:i}=sr();return y.jsxs(ug,{nodeProps:e,children:[i&&y.jsx(Sg,{nodeProps:e}),y.jsx(pg,{...e}),y.jsx(dl,{...e}),r&&y.jsx(t0,{...e}),y.jsx(PKe,{...e}),n&&y.jsx(OR,{...e}),!o&&y.jsx(qKe,{...e}),y.jsx(y0,{})]})}const LR=fe({outlineColor:"likec4.compare.manual.outline",outlineWidth:"4px",outlineStyle:"dashed",outlineOffset:"1.5"}),FR=e=>e.data.drifts&&e.data.drifts.length>0;function GKe(e){const{enableElementDetails:r,enableReadOnly:n,enableCompareWithLatest:o}=sr(),i=o&&FR(e);return y.jsxs(c0,{className:i?LR:void 0,nodeProps:e,children:[o&&y.jsx(Sg,{nodeProps:e}),y.jsx(d0,{...e}),y.jsx(Rte,{...e}),r&&y.jsx(Pte,{...e}),!n&&y.jsx(LKe,{...e}),y.jsx(y0,{})]})}function YKe(e){const{enableElementDetails:r,enableReadOnly:n,enableCompareWithLatest:o}=sr(),i=o&&FR(e);return y.jsxs(c0,{className:i?LR:void 0,nodeProps:e,children:[o&&y.jsx(Sg,{nodeProps:e}),y.jsx(d0,{...e}),y.jsx(Rte,{...e}),r&&y.jsx(Pte,{...e}),!n&&y.jsx(FKe,{...e}),y.jsx(y0,{})]})}function XKe(e){const{enableCompareWithLatest:r}=sr(),n=r&&FR(e);return y.jsxs(c0,{className:n?LR:void 0,nodeProps:e,children:[r&&y.jsx(Sg,{nodeProps:e}),y.jsx(d0,{...e}),y.jsx(y0,{})]})}const KKe={left:Ue.Left,right:Ue.Right,top:Ue.Top,bottom:Ue.Bottom},ZKe=({data:e,port:r})=>y.jsxs(y.Fragment,{children:[y.jsx(hr,{"data-likec4-color":e.color,className:fe({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(Oo,{id:r.id,type:r.type,position:KKe[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)"}})]}),QKe=e=>Zn(e.modelFqn);function JKe(e){const{enableElementDetails:r,enableCompareWithLatest:n}=sr(),o=e.data,{id:i,positionAbsoluteY:a,data:{viewHeight:l,hovered:s=!1,ports:c}}=e;return y.jsxs(y.Fragment,{children:[y.jsx(hr,{"data-likec4-color":"gray",className:fe({position:"absolute",rounded:"xs",top:"1",pointerEvents:"none",transition:"fast",translateX:"-1/2",translate:"auto"}),style:{backgroundColor:"var(--likec4-palette-stroke)",opacity:s?.6:.4,left:"50%",width:s?3:2,height:l-a,zIndex:-1,pointerEvents:"none"}}),y.jsxs(ug,{nodeProps:e,children:[n&&y.jsx(Sg,{nodeProps:e}),y.jsx(pg,{...e}),y.jsx(dl,{...e}),QKe(o)&&y.jsxs(y.Fragment,{children:[y.jsx($te,{...e,data:o}),r&&y.jsx(OR,{id:i,data:o})]})]}),c.map(d=>y.jsx(ZKe,{port:d,data:e.data},d.id))]})}function eZe(e){return y.jsx(hr,{"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 oklab, 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 jp={ElementNode:UKe,DeploymentNode:WKe,CompoundElementNode:GKe,CompoundDeploymentNode:YKe,ViewGroupNode:XKe,SequenceActorNode:JKe,SequenceParallelArea:eZe},Mte={RelationshipEdge:Cte,SequenceStepEdge:AKe};var Nte=Symbol.for("immer-nothing"),Bte=Symbol.for("immer-draftable"),qo=Symbol.for("immer-state");function hl(e,...r){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Ai=Object,Eg=Ai.getPrototypeOf,Y2="constructor",X2="prototype",VR="configurable",K2="enumerable",Z2="writable",v0="value",Id=e=>!!e&&!!e[qo];function pc(e){return e?Ote(e)||J2(e)||!!e[Bte]||!!e[Y2]?.[Bte]||e4(e)||t4(e):!1}var tZe=Ai[X2][Y2].toString(),Ite=new WeakMap;function Ote(e){if(!e||!HR(e))return!1;const r=Eg(e);if(r===null||r===Ai[X2])return!0;const n=Ai.hasOwnProperty.call(r,Y2)&&r[Y2];if(n===Object)return!0;if(!Cg(n))return!1;let o=Ite.get(n);return o===void 0&&(o=Function.toString.call(n),Ite.set(n,o)),o===tZe}function b0(e,r,n=!0){x0(e)===0?(n?Reflect.ownKeys(e):Ai.keys(e)).forEach(o=>{r(o,e[o],e)}):e.forEach((o,i)=>r(i,o,e))}function x0(e){const r=e[qo];return r?r.type_:J2(e)?1:e4(e)?2:t4(e)?3:0}var Lte=(e,r,n=x0(e))=>n===2?e.has(r):Ai[X2].hasOwnProperty.call(e,r),qR=(e,r,n=x0(e))=>n===2?e.get(r):e[r],Q2=(e,r,n,o=x0(e))=>{o===2?e.set(r,n):o===3?e.add(n):e[r]=n};function rZe(e,r){return e===r?e!==0||1/e===1/r:e!==e&&r!==r}var J2=Array.isArray,e4=e=>e instanceof Map,t4=e=>e instanceof Set,HR=e=>typeof e=="object",Cg=e=>typeof e=="function",UR=e=>typeof e=="boolean",hc=e=>e.copy_||e.base_,WR=e=>e.modified_?e.copy_:e.base_;function GR(e,r){if(e4(e))return new Map(e);if(t4(e))return new Set(e);if(J2(e))return Array[X2].slice.call(e);const n=Ote(e);if(r===!0||r==="class_only"&&!n){const o=Ai.getOwnPropertyDescriptors(e);delete o[qo];let i=Reflect.ownKeys(o);for(let a=0;a1&&Ai.defineProperties(e,{set:r4,add:r4,clear:r4,delete:r4}),Ai.freeze(e),r&&b0(e,(n,o)=>{YR(o,!0)},!1)),e}function nZe(){hl(2)}var r4={[v0]:nZe};function n4(e){return e===null||!HR(e)?!0:Ai.isFrozen(e)}var o4="MapSet",XR="Patches",Fte={};function $g(e){const r=Fte[e];return r||hl(0,e),r}var oZe=e=>!!Fte[e],w0,Vte=()=>w0,iZe=(e,r)=>({drafts_:[],parent_:e,immer_:r,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:oZe(o4)?$g(o4):void 0});function qte(e,r){r&&(e.patchPlugin_=$g(XR),e.patches_=[],e.inversePatches_=[],e.patchListener_=r)}function KR(e){ZR(e),e.drafts_.forEach(aZe),e.drafts_=null}function ZR(e){e===w0&&(w0=e.parent_)}var Hte=e=>w0=iZe(w0,e);function aZe(e){const r=e[qo];r.type_===0||r.type_===1?r.revoke_():r.revoked_=!0}function Ute(e,r){r.unfinalizedDrafts_=r.drafts_.length;const n=r.drafts_[0];if(e!==void 0&&e!==n){n[qo].modified_&&(KR(r),hl(4)),pc(e)&&(e=Wte(r,e));const{patchPlugin_:o}=r;o&&o.generateReplacementPatches_(n[qo].base_,e,r)}else e=Wte(r,n);return lZe(r,e,!0),KR(r),r.patches_&&r.patchListener_(r.patches_,r.inversePatches_),e!==Nte?e:void 0}function Wte(e,r){if(n4(r))return r;const n=r[qo];if(!n)return QR(r,e.handledSet_,e);if(!i4(n,e))return r;if(!n.modified_)return n.base_;if(!n.finalized_){const{callbacks_:o}=n;if(o)for(;o.length>0;)o.pop()(e);Xte(n,e)}return n.copy_}function lZe(e,r,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&YR(r,n)}function Gte(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var i4=(e,r)=>e.scope_===r,sZe=[];function Yte(e,r,n,o){const i=hc(e),a=e.type_;if(o!==void 0&&qR(i,o,a)===r){Q2(i,o,n,a);return}if(!e.draftLocations_){const s=e.draftLocations_=new Map;b0(i,(c,d)=>{if(Id(d)){const u=s.get(d)||[];u.push(c),s.set(d,u)}})}const l=e.draftLocations_.get(r)??sZe;for(const s of l)Q2(i,s,n,a)}function cZe(e,r,n){e.callbacks_.push(function(o){const i=r;if(!i||!i4(i,o))return;o.mapSetPlugin_?.fixSetContents(i);const a=WR(i);Yte(e,i.draft_??i,a,n),Xte(i,o)})}function Xte(e,r){if(e.modified_&&!e.finalized_&&(e.type_===3||(e.assigned_?.size??0)>0)){const{patchPlugin_:n}=r;if(n){const o=n.getPath(e);o&&n.generatePatches_(e,o,r)}Gte(e)}}function dZe(e,r,n){const{scope_:o}=e;if(Id(n)){const i=n[qo];i4(i,o)&&i.callbacks_.push(function(){a4(e);const a=WR(i);Yte(e,n,a,r)})}else pc(n)&&e.callbacks_.push(function(){const i=hc(e);qR(i,r,e.type_)===n&&o.drafts_.length>1&&(e.assigned_.get(r)??!1)===!0&&e.copy_&&QR(qR(e.copy_,r,e.type_),o.handledSet_,o)})}function QR(e,r,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||Id(e)||r.has(e)||!pc(e)||n4(e)||(r.add(e),b0(e,(o,i)=>{if(Id(i)){const a=i[qo];if(i4(a,n)){const l=WR(a);Q2(e,o,l,e.type_),Gte(a)}}else pc(i)&&QR(i,r,n)})),e}function uZe(e,r){const n=J2(e),o={type_:n?1:0,scope_:r?r.scope_:Vte(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:r,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let i=o,a=JR;n&&(i=[o],a=k0);const{revoke:l,proxy:s}=Proxy.revocable(i,a);return o.draft_=s,o.revoke_=l,[s,o]}var JR={get(e,r){if(r===qo)return e;const n=hc(e);if(!Lte(n,r,e.type_))return pZe(e,n,r);const o=n[r];if(e.finalized_||!pc(o))return o;if(o===ez(e.base_,r)){a4(e);const i=e.type_===1?+r:r,a=rz(e.scope_,o,e,i);return e.copy_[i]=a}return o},has(e,r){return r in hc(e)},ownKeys(e){return Reflect.ownKeys(hc(e))},set(e,r,n){const o=Kte(hc(e),r);if(o?.set)return o.set.call(e.draft_,n),!0;if(!e.modified_){const i=ez(hc(e),r),a=i?.[qo];if(a&&a.base_===n)return e.copy_[r]=n,e.assigned_.set(r,!1),!0;if(rZe(n,i)&&(n!==void 0||Lte(e.base_,r,e.type_)))return!0;a4(e),tz(e)}return e.copy_[r]===n&&(n!==void 0||r in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[r])||(e.copy_[r]=n,e.assigned_.set(r,!0),dZe(e,r,n)),!0},deleteProperty(e,r){return a4(e),ez(e.base_,r)!==void 0||r in e.base_?(e.assigned_.set(r,!1),tz(e)):e.assigned_.delete(r),e.copy_&&delete e.copy_[r],!0},getOwnPropertyDescriptor(e,r){const n=hc(e),o=Reflect.getOwnPropertyDescriptor(n,r);return o&&{[Z2]:!0,[VR]:e.type_!==1||r!=="length",[K2]:o[K2],[v0]:n[r]}},defineProperty(){hl(11)},getPrototypeOf(e){return Eg(e.base_)},setPrototypeOf(){hl(12)}},k0={};b0(JR,(e,r)=>{k0[e]=function(){const n=arguments;return n[0]=n[0][0],r.apply(this,n)}}),k0.deleteProperty=function(e,r){return k0.set.call(this,e,r,void 0)},k0.set=function(e,r,n){return JR.set.call(this,e[0],r,n,e[0])};function ez(e,r){const n=e[qo];return(n?hc(n):e)[r]}function pZe(e,r,n){const o=Kte(r,n);return o?v0 in o?o[v0]:o.get?.call(e.draft_):void 0}function Kte(e,r){if(!(r in e))return;let n=Eg(e);for(;n;){const o=Object.getOwnPropertyDescriptor(n,r);if(o)return o;n=Eg(n)}}function tz(e){e.modified_||(e.modified_=!0,e.parent_&&tz(e.parent_))}function a4(e){e.copy_||(e.assigned_=new Map,e.copy_=GR(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var hZe=class{constructor(r){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(n,o,i)=>{if(Cg(n)&&!Cg(o)){const l=o;o=n;const s=this;return function(c=l,...d){return s.produce(c,u=>o.call(this,u,...d))}}Cg(o)||hl(6),i!==void 0&&!Cg(i)&&hl(7);let a;if(pc(n)){const l=Hte(this),s=rz(l,n,void 0);let c=!0;try{a=o(s),c=!1}finally{c?KR(l):ZR(l)}return qte(l,i),Ute(a,l)}else if(!n||!HR(n)){if(a=o(n),a===void 0&&(a=n),a===Nte&&(a=void 0),this.autoFreeze_&&YR(a,!0),i){const l=[],s=[];$g(XR).generateReplacementPatches_(n,a,{patches_:l,inversePatches_:s}),i(l,s)}return a}else hl(1,n)},this.produceWithPatches=(n,o)=>{if(Cg(n))return(l,...s)=>this.produceWithPatches(l,c=>n(c,...s));let i,a;return[this.produce(n,o,(l,s)=>{i=l,a=s}),i,a]},UR(r?.autoFreeze)&&this.setAutoFreeze(r.autoFreeze),UR(r?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(r.useStrictShallowCopy),UR(r?.useStrictIteration)&&this.setUseStrictIteration(r.useStrictIteration)}createDraft(r){pc(r)||hl(8),Id(r)&&(r=fZe(r));const n=Hte(this),o=rz(n,r,void 0);return o[qo].isManual_=!0,ZR(n),o}finishDraft(r,n){const o=r&&r[qo];(!o||!o.isManual_)&&hl(9);const{scope_:i}=o;return qte(i,n),Ute(void 0,i)}setAutoFreeze(r){this.autoFreeze_=r}setUseStrictShallowCopy(r){this.useStrictShallowCopy_=r}setUseStrictIteration(r){this.useStrictIteration_=r}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(r,n){let o;for(o=n.length-1;o>=0;o--){const a=n[o];if(a.path.length===0&&a.op==="replace"){r=a.value;break}}o>-1&&(n=n.slice(o+1));const i=$g(XR).applyPatches_;return Id(r)?i(r,n):this.produce(r,a=>i(a,n))}};function rz(e,r,n,o){const[i,a]=e4(r)?$g(o4).proxyMap_(r,n):t4(r)?$g(o4).proxySet_(r,n):uZe(r,n);return(n?.scope_??Vte()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=o,n&&o!==void 0?cZe(n,a,o):a.callbacks_.push(function(l){l.mapSetPlugin_?.fixSetContents(a);const{patchPlugin_:s}=l;a.modified_&&s&&s.generatePatches_(a,[],l)}),i}function fZe(e){return Id(e)||hl(10,e),Zte(e)}function Zte(e){if(!pc(e)||n4(e))return e;const r=e[qo];let n,o=!0;if(r){if(!r.modified_)return r.base_;r.finalized_=!0,n=GR(e,r.scope_.immer_.useStrictShallowCopy_),o=r.scope_.immer_.shouldUseStrictIteration()}else n=GR(e,!0);return b0(n,(i,a)=>{Q2(n,i,Zte(a))},o),r&&(r.finalized_=!1),n}var nz=new hZe,as=nz.produce,Qte=nz.setAutoFreeze.bind(nz),_0=e=>e;class Rg{static LeftPadding=42;static RightPadding=42;static TopPadding=60;static BottomPadding=42;id;minX=1/0;minY=1/0;maxX=-1/0;maxY=-1/0;initialX;initialY;get positionAbsolute(){return{x:this.minX,y:this.minY}}get initialPositionAbsolute(){return{x:this.initialX,y:this.initialY}}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:Math.round(this.maxX-this.minX),height:Math.round(this.maxY-this.minY)}}get diff(){return{x:Math.round(this.positionAbsolute.x-this.initialX),y:Math.round(this.positionAbsolute.y-this.initialY)}}get isMoved(){return this.diff.x!==0||this.diff.y!==0}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:i}=_o(r);this.maxX=this.minX+Math.ceil(o),this.maxY=this.minY+Math.ceil(i),this.initialX=this.positionAbsolute.x,this.initialY=this.positionAbsolute.y,n&&n.children.push(this)}}class oz extends Rg{constructor(r,n=null){super(r,n),this.parent=n}children=[]}class gZe extends Rg{constructor(r,n=null){super(r,n),this.parent=n}}function mZe(e,r){const n=e.data.controlPoints??null;return o=>{const i=gt(o.get(e.id),`Edge ${e.id} not found`),{x:a,y:l}=r.diff;return a===0&&l===0?{id:e.id,type:"replace",item:as(i,s=>{s.data.points=e.data.points,s.data.controlPoints=n,s.data.labelBBox=e.data.labelBBox})}:{id:e.id,type:"replace",item:as(i,s=>{s.data.points=un(e.data.points,c=>[c[0]+a,c[1]+l]),n&&(s.data.controlPoints=n.map(c=>({x:c.x+a,y:c.y+l}))),e.data.labelBBox&&(s.data.labelBBox={x:e.data.labelBBox.x+a,y:e.data.labelBBox.y+l,width:e.data.labelBBox.width,height:e.data.labelBBox.height})})}}}function yZe(e,r,n,o){const i=e.data.controlPoints??c2(e.data.points),a=Qr(ko.center(n)),l=Qr(ko.center(o)),s=a.subtract(l),c=s.length();return d=>{const u=gt(d.get(e.id),`Edge ${e.id} not found`),{x:p,y:f}=r.diff;if(p===0&&f===0)return{id:e.id,type:"replace",item:as(u,w=>{w.data.points=e.data.points,w.data.controlPoints=e.data.controlPoints,w.data.labelBBox=e.data.labelBBox})};const m=Qr(p,f),v=w=>{const x=Qr(w),k=x.subtract(l).dot(s),C=ta(k/c**2,{min:-1,max:1});return x.add(m.multiply(C)).round().toObject()};return{id:e.id,type:"replace",item:as(u,w=>{if(w.data.controlPoints=i.map(v),e.data.labelBBox){w.data.labelBBox??=e.data.labelBBox;const{x,y:k}=v(e.data.labelBBox);w.data.labelBBox.x=x,w.data.labelBBox.y=k}})}}}function Jte(e,r){const{parentLookup:n,nodeLookup:o,edges:i}=e.getState(),a=new Map,l=new Ln(_=>{let $=o.get(_)?.parentId;return $?[$,...l.get($)]:[]}),s=new Ln(_=>{const $=n.get(_);if(!$||$.size===0)return new Set;const R=new Set;for(const T of $.values()){R.add(T.id);for(const A of s.get(T.id))R.add(A)}return R});if(xn(r,2)){const _=Jr(r,Pq($=>[...s.get($)]),yw(),$=>e$e(r,$));He(xn(_,1),"All editing nodes are nested within each other"),r=_}const c=new Set(r.flatMap(_=>l.get(_))),d=[...o.values()].flatMap(_=>_.parentId?[]:{xynode:_,parent:null});for(;d.length>0;){const{xynode:_,parent:$}=d.shift();if(!r.includes(_.id)&&c.has(_.id)){const R=new oz(_,$);a.set(_.id,R),n.get(_.id)?.forEach(T=>{d.push({xynode:T,parent:R})});continue}a.set(_.id,new gZe(_,$))}const u=[...a.values()],p=new Map,f=_=>a.get(_)??l.get(_).map($=>a.get($)).find($=>!!$)??null,m=new Set(r.flatMap(_=>[_,...s.get(_)]));for(const _ of i){const $=m.has(_.source),R=m.has(_.target);if($&&R){let T=a.get(_.source)??a.get(_.target)??f(_.source)??f(_.target);T&&p.set(_,mZe(_,T));continue}if($!==R){const T=f($?_.source:_.target);if(!T)continue;const[A,z]=Jr([_.source,_.target],un(N=>gt(o.get(N),`Node ${N} not found`)),un(r$)),[j,I]=$?[A,z]:[z,A];p.set(_,yZe(_,T,j,I));continue}}function v(_){for(const $ of _){if(!($ instanceof oz))continue;v($.children);const R={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};for(const T of $.children)R.minX=Math.min(R.minX,T.minX),R.minY=Math.min(R.minY,T.minY),R.maxX=Math.max(R.maxX,T.maxX),R.maxY=Math.max(R.maxY,T.maxY);$.minX=R.minX-Rg.LeftPadding,$.minY=R.minY-Rg.TopPadding,$.maxX=R.maxX+Rg.RightPadding,$.maxY=R.maxY+Rg.BottomPadding}}const w=[...p.values()];function x(){v(u);const _=u.reduce((z,j)=>(z.push({id:j.id,type:"position",dragging:!1,position:j.position,positionAbsolute:j.positionAbsolute}),j instanceof oz&&z.push({id:j.id,type:"dimensions",setAttributes:!0,dimensions:j.dimensions}),z),[]),{edgeLookup:$,triggerNodeChanges:R,triggerEdgeChanges:T}=e.getState();R(_);const A=w.map(z=>z($));A.length>0&&T(A)}let k=null;function C(){u.length!==0&&(k??=requestAnimationFrame(()=>{k=null;for(const _ of r){const $=a.get(_);if(!$){console.warn(`Rect not found for id ${_}`);continue}const R=o.get(_);if(!R){console.warn(`Node not found for id ${_}`);continue}$.positionAbsolute=R.internals.positionAbsolute}x()}))}return{rects:a,onMove:C,updateXYFlow:x}}function vZe(){const e=JC(),r=Mt(),n=S.useRef(void 0);return S.useMemo(()=>({onNodeDragStart:(o,i)=>{r.startEditing("node");const{nodeLookup:a}=e.getState(),l=Jr(Array.from(a.values()),ep(s=>s.dragging===!0||s.id===i.id||s.selected===!0),un(s=>s.id));xn(l,1)&&(n.current=Jte(e,l))},onNodeDrag:o=>{n.current?.onMove()},onNodeDragStop:o=>{const i=n.current?YO(n.current.rects.values(),a=>a.isMoved):!1;r.stopEditing(i),n.current=void 0}}),[e,r])}const bZe={relationship:Mte.RelationshipEdge,"seq-step":Mte.SequenceStepEdge},Od={element:sc(jp.ElementNode),deployment:sc(jp.DeploymentNode),"compound-element":sc(jp.CompoundElementNode),"compound-deployment":sc(jp.CompoundDeploymentNode),"view-group":sc(jp.ViewGroupNode),"seq-actor":sc(jp.SequenceActorNode),"seq-parallel":sc(jp.SequenceParallelArea)};function xZe(e){return!e||tp(e)?Od:{element:e.element??Od.element,deployment:e.deployment??Od.deployment,"compound-element":e.compoundElement??Od["compound-element"],"compound-deployment":e.compoundDeployment??Od["compound-deployment"],"view-group":e.viewGroup??Od["view-group"],"seq-actor":e.seqActor??Od["seq-actor"],"seq-parallel":e.seqParallel??Od["seq-parallel"]}}const wZe=({context:e,children:r})=>{const{enableReadOnly:n}=O2(e),o=n||r.editor?.getSnapshot().context.editing!=="edge";return{enableReadOnly:n,initialized:e.initialized.xydata&&e.initialized.xyflow,nodes:e.xynodes,edges:e.xyedges,pannable:e.pannable,zoomable:e.zoomable,nodesDraggable:!n&&e.nodesDraggable,nodesSelectable:e.nodesSelectable&&o,fitViewPadding:e.fitViewPadding,enableFitView:e.features.enableFitView,...!e.features.enableFitView&&{viewport:{x:-e.view.bounds.x,y:-e.view.bounds.y,zoom:1}}}},kZe=(e,r)=>e.enableReadOnly===r.enableReadOnly&&e.initialized===r.initialized&&e.pannable===r.pannable&&e.zoomable===r.zoomable&&e.nodesDraggable===r.nodesDraggable&&e.nodesSelectable===r.nodesSelectable&&e.enableFitView===r.enableFitView&&Ir(e.fitViewPadding,r.fitViewPadding)&&Ir(e.nodes,r.nodes)&&Ir(e.edges,r.edges)&&Ir(e.viewport??null,r.viewport??null);function _Ze({background:e="dots",reactFlowProps:r={},children:n,renderNodes:o}){const i=Mt();let{enableReadOnly:a,initialized:l,nodes:s,edges:c,enableFitView:d,nodesDraggable:u,nodesSelectable:p,...f}=wE(wZe,kZe);const{onNodeContextMenu:m,onCanvasContextMenu:v,onEdgeContextMenu:w,onNodeClick:x,onEdgeClick:k,onCanvasClick:C,onCanvasDblClick:_}=mg(),$=pMe(),R=vZe(),T=fMe(),A=CH(()=>{T.set(!0)},$?120:400),z=bf(()=>{A.clear(),T.set(!1)},$?350:200),j=at(H=>{H&&(T.get()||A.start(),z())}),I=at((H,P)=>{A.clear(),i.send({type:"xyflow.viewportMoved",viewport:P,manually:!!H})}),N=at(()=>{i.send({type:"xyflow.resized"})}),L=SL(()=>xZe(o),[o],gQ);return $p(()=>{console.warn("renderNodes changed - this might degrade performance")},[L]),y.jsx(s$,{nodes:s,edges:c,className:Ge(l?"initialized":"not-initialized"),nodeTypes:L,edgeTypes:bZe,onNodesChange:at(H=>{i.send({type:"xyflow.applyNodeChanges",changes:H})}),onEdgesChange:at(H=>{i.send({type:"xyflow.applyEdgeChanges",changes:H})}),background:l?e:"transparent",fitView:!1,onNodeClick:at((H,P)=>{H.stopPropagation(),i.send({type:"xyflow.nodeClick",node:P}),x?.(i.findDiagramNode(P.id),H)}),onEdgeClick:at((H,P)=>{H.stopPropagation(),i.send({type:"xyflow.edgeClick",edge:P}),k?.(i.findDiagramEdge(P.id),H)}),onEdgeDoubleClick:at((H,P)=>{H.stopPropagation(),i.send({type:"xyflow.edgeDoubleClick",edge:P})}),onPaneClick:at(H=>{H.stopPropagation(),i.send({type:"xyflow.paneClick"}),C?.(H)}),onDoubleClick:at(H=>{H.stopPropagation(),H.preventDefault(),i.send({type:"xyflow.paneDblClick"}),_?.(H)}),onNodeMouseEnter:at((H,P)=>{H.stopPropagation(),i.send({type:"xyflow.nodeMouseEnter",node:P})}),onNodeMouseLeave:at((H,P)=>{H.stopPropagation(),i.send({type:"xyflow.nodeMouseLeave",node:P})}),onEdgeMouseEnter:at((H,P)=>{H.stopPropagation(),i.send({type:"xyflow.edgeMouseEnter",edge:P,event:H})}),onEdgeMouseLeave:at((H,P)=>{H.stopPropagation(),i.send({type:"xyflow.edgeMouseLeave",edge:P,event:H})}),onMove:j,onMoveEnd:I,onInit:at(H=>{i.send({type:"xyflow.init",instance:H})}),onNodeContextMenu:at((H,P)=>{const V=gt(i.findDiagramNode(P.id),`diagramNode ${P.id} not found`);m?.(V,H)}),onEdgeContextMenu:at((H,P)=>{const V=gt(i.findDiagramEdge(P.id),`diagramEdge ${P.id} not found`);w?.(V,H)}),...v&&{onPaneContextMenu:v},...d&&{onViewportResize:N},nodesDraggable:u,nodesSelectable:p,elevateEdgesOnSelect:!a,...u&&R,...f,...r,children:n})}function SZe(e,r){try{return Qte(!1),EZe(e,r)}finally{Qte(!0)}}const ere=e=>ty(e.parent);function EZe(e,r){He(e.id===r.id,"View IDs do not match"),He(e._type===r._type,"View types do not match"),He(e._layout==="manual"&&r._layout==="auto","Views must be manual and auto");const n=new Set,o=new Set,i=u=>!n.has(typeof u=="string"?u:u.id),a=u=>o.has(u.source)&&o.has(u.target)&&i(u.source)&&i(u.target),l=new Map(r.nodes.map(u=>{u.children&&u.children.length>0&&n.add(u.id);const p=e.nodes.find(f=>f.id===u.id);return p?[u.id,$Ze({latest:u,manual:p})]:(o.add(u.id),[u.id,iz(u)])}));if(o.size===l.size)return as(r,u=>{u._layout="manual",u.nodes=_0([...l.values()]),u.edges=_0(r.edges.map(iz)),delete u.drifts});n.size>0&&CZe(l);const s=[...l.values()],c=r.edges.map(u=>{const p=u.dir??"forward",f=x=>x.source===u.source&&x.target===u.target&&(x.dir===p||!x.dir&&!u.dir);let m=e.edges.find(x=>x.id===u.id&&f(x));if(m||(m=e.edges.find(x=>f(x))),m)return RZe({latest:u,manual:m});if(a(u))return iz(u);const v=l.get(u.source),w=l.get(u.target);return zZe(u,v,w)}),d=ko.merge(...s.filter(ere));return as(r,u=>{u._layout="manual",u.nodes=_0(s),u.edges=_0(c),u.bounds=d,delete u.drifts})}const zg={Left:42,Right:42,Top:60,Bottom:42};function CZe(e){function r(n){const o=gt(e.get(n),`Node ${n} not found`);if(o.children.length===0)return o;const i=[];for(const l of o.children)i.push(r(l));const a=ko.merge(...i);return o.x=a.x-zg.Left,o.y=a.y-zg.Top,o.width=a.width+zg.Left+zg.Right,o.height=a.height+zg.Top+zg.Bottom,o}for(const n of e.values())!ere(n)||n.children.length===0||r(n.id)}function $Ze({latest:e,manual:r}){return He(r.id===e.id,"Node IDs do not match"),as(e,n=>{n.x=r.x,n.y=r.y,n.drifts=null})}function RZe(e){const{manual:r,latest:n}=e;return as(n,o=>{r.controlPoints?o.controlPoints=r.controlPoints:delete o.controlPoints,o.points=_0(r.points),r.labelBBox&&(o.labelBBox=n.labelBBox??r.labelBBox,o.labelBBox.x=r.labelBBox.x,o.labelBBox.y=r.labelBBox.y),o.drifts=null})}function iz(e){if("drifts"in e&&e.drifts!==null){const r={...e};return r.drifts=null,r}return e}function zZe(e,r,n){const o=TZe(r,n),i=o[0];return as(e,a=>{a.controlPoints=o,e.labelBBox&&(a.labelBBox.x=i.x,a.labelBBox.y=i.y),delete a.drifts})}function tre(e,r,n){const o=e.width/2/n.x,i=e.height/2/n.y,a=Math.min(Math.abs(o),Math.abs(i));return Qr(n).multiply(a).add(r)}function TZe(e,r){const n=Qr(ko.center(e)),o=Qr(ko.center(r));if(e===r){const s=Qr(0,e.height||0).multiply(-.5).add(n);return[s.add(Qr(-32,-80)).round().toObject(),s.add(Qr(32,-80)).round().toObject()]}const i=o.subtract(n),a=tre(e,n,i),l=tre(r,o,i.multiply(-1)).subtract(a);return[a.add(l.multiply(.4)).round().toObject(),a.add(l.multiply(.6)).round().toObject()]}const jZe=S.createContext(null);function rre(){return S.useContext(jZe)}function AZe(e){const r=rre(),n=at(async({input:{viewId:i,current:a}})=>{if(!r)return console.error("No editor port available for applying latest to manual layout"),Promise.reject(new Error("No editor port"));const[l,s]=await Promise.all([a??Promise.resolve().then(()=>r.fetchView(i,"manual")),Promise.resolve().then(()=>r.fetchView(i,"auto"))]).catch(c=>(console.error("Failed to fetch views for applying latest to manual layout",c),Promise.reject(c)));return{updated:SZe(l,s)}}),o=at(async({input:i})=>{if(!r)return console.error("No editor port available for executing change"),Promise.reject(new Error("No editor port"));for(const a of i.changes)await Promise.resolve().then(()=>r.handleChange(e,a)).catch(l=>(console.error("Failed to execute change",{change:a,err:l}),Promise.reject(l)));return{}});return Aee.provide({actors:{applyLatest:zy(n),executeChange:zy(o)}})}function nre(e){return{ref:e,get actor(){return e.current},overlays(){return gt(e.current.getSnapshot().children.overlays,"Overlays actor not found")},send:r=>e.current.send(r),navigateTo:(r,n,o)=>{e.current.send({type:"navigate.to",viewId:r,...n&&{fromNode:n},...o&&{focusOnElement:o}})},navigate:r=>{e.current.send({type:`navigate.${r}`})},fitDiagram:(r=350)=>{e.current.send({type:"xyflow.fitDiagram",duration:r})},openRelationshipsBrowser:r=>{e.current.send({type:"open.relationshipsBrowser",fqn:r})},openSource:r=>{e.current.send({type:"open.source",...r})},openElementDetails:(r,n)=>{e.current.send({type:"open.elementDetails",fqn:r,fromNode:n})},openRelationshipDetails:(...r)=>{r.length===1?e.current.send({type:"open.relationshipDetails",params:{edgeId:r[0]}}):e.current.send({type:"open.relationshipDetails",params:{source:r[0],target:r[1]}})},updateNodeData:(r,n)=>{e.current.send({type:"update.nodeData",nodeId:r,data:n})},updateEdgeData:(r,n)=>{e.current.send({type:"update.edgeData",edgeId:r,data:n})},startEditing:r=>{const n=zr(e.current.system).editorActorRef;He(n,"No editor actor found in diagram actor system"),n.send({type:"edit.start",subject:r})},stopEditing:(r=!1)=>{const n=zr(e.current.system).editorActorRef;He(n,"No editor actor found in diagram actor system"),n.send({type:"edit.finish",wasChanged:r})},undoEditing:()=>{const r=zr(e.current.system).editorActorRef;He(r,"No editor actor found in diagram actor system");const n=r.getSnapshot().context.history.length>0;return n&&r.send({type:"undo"}),n},align:r=>{e.current.send({type:"layout.align",mode:r})},resetEdgeControlPoints:()=>{e.current.send({type:"layout.resetEdgeControlPoints"})},focusNode:r=>{e.current.send({type:"focus.node",nodeId:r})},focusOnElement:r=>{const n=e.current.getSnapshot().context,o=mee(n.xynodes,r);o&&e.current.send({type:"focus.node",nodeId:o.id,autoUnfocus:!0})},get currentView(){return e.current.getSnapshot().context.view},getContext:()=>e.current.getSnapshot().context,findDiagramNode:r=>yg(e.current.getSnapshot().context,r),findEdge:r=>e.current.getSnapshot().context.xyedges.find(n=>n.data.id===r)??null,findDiagramEdge:r=>yR(e.current.getSnapshot().context,r),startWalkthrough:()=>{e.current.send({type:"walkthrough.start"})},walkthroughStep:(r="next")=>{e.current.send({type:"walkthrough.step",direction:r})},stopWalkthrough:()=>{e.current.send({type:"walkthrough.end"})},toggleFeature:(r,n)=>{e.current.send({type:"toggle.feature",feature:r,...n!==void 0&&{forceValue:n}})},highlightNotation:(r,n)=>{e.current.send({type:"notations.highlight",notation:r,...n&&{kind:n}})},unhighlightNotation:()=>{e.current.send({type:"notations.unhighlight"})},openSearch:r=>{e.current.send({type:"open.search",...r&&{search:r}})},triggerChange:r=>{e.current.send({type:"trigger.change",change:r})},switchDynamicViewVariant:r=>{e.current.send({type:"switch.dynamicViewVariant",variant:r})}}}function az(e,r){const n=r.view,o=e.view.id===n.id;if(n._type==="dynamic"&&n.variant==="sequence")return{xynodes:r.xynodes,xyedges:r.xyedges,view:n};const i=B2(e.xynodes,r.xynodes),a=o?ER(e.xyedges,r.xyedges):r.xyedges;return{xynodes:i,xyedges:a,view:n}}function DZe(e){const{xynodes:r,xyedges:n,focusedNode:o}=e;if(!o)return null;const i=new Set([o]),a=n.map(l=>l.source===o||l.target===o?(i.add(l.source),i.add(l.target),tr.setData(l,{dimmed:!1,active:!0})):tr.setData(l,{dimmed:!0,active:!1}));return{xynodes:r.map(l=>tr.setDimmed(l,!i.has(l.id))),xyedges:a}}function PZe({context:e,event:r}){return ht(r,"update.nodeData"),{xynodes:e.xynodes.map(n=>{if(n.id!==r.nodeId)return n;const o=Fq(n.data,r.data);return tt(o,n.data)?n:{...n,data:o}})}}function MZe({context:e,event:r}){return ht(r,"update.edgeData"),{xyedges:e.xyedges.map(n=>{if(n.id!==r.edgeId)return n;const o=Fq(n.data,r.data);return tt(o,n.data)?n:{...n,data:o}})}}function ore(e,r,n){const o=_o(e),i=o.width/2/n.x,a=o.height/2/n.y,l=Math.min(Math.abs(i),Math.abs(a));return Qr(n).multiply(l).add(r)}function ire(e,r){const n=gt(e.get(r.source),`Source node ${r.source} not found`),o=gt(e.get(r.target),`Target node ${r.target} not found`),i=Qr(n$(n)),a=Qr(n$(o));if(n===o){const d=Qr(0,n.height||0).multiply(-.5).add(i);return[d.add(Qr(-32,-80)).round().toObject(),d.add(Qr(32,-80)).round().toObject()]}const l=a.subtract(i),s=ore(n,i,l),c=ore(o,a,l.multiply(-1)).subtract(s);return[s.add(c.multiply(.4)).round().toObject(),s.add(c.multiply(.6)).round().toObject()]}function NZe(e){const{view:r}=e,n=[],o=[],i=new Map,a=x8.from(r.nodes.reduce((u,p)=>(i.set(p.id,p),p.parent||u.push({node:p,parent:null}),u),[]));let l=u=>!0;if(e.where)try{const u=Ou(e.where);l=p=>u({...Hq(p,["tags","kind"]),..."source"in p?{source:c(p.source)}:p,..."target"in p?{target:c(p.target)}:p})}catch(u){console.error("Error in where filter:",u)}const s="",c=u=>gt(i.get(u),`Node not found: ${u}`);let d;for(;d=a.dequeue();){const{node:u,parent:p}=d,f=xn(u.children,1)||u.kind==w1;if(f)for(const $ of u.children)a.enqueue({node:c($),parent:u});const m={x:u.x,y:u.y};p&&(m.x-=p.x,m.y-=p.y);const v={id:s+u.id,deletable:!1,position:m,zIndex:f?lc.Compound:lc.Element,style:{width:u.width,height:u.height},initialWidth:u.width,initialHeight:u.height,hidden:u.kind!==w1&&!l(u),...p&&{parentId:s+p.id}},w={viewId:r.id,id:u.id,title:u.title,color:u.color,shape:u.shape,style:u.style,depth:u.depth??0,icon:u.icon??"none",tags:u.tags??null,x:u.x,y:u.y,drifts:u.drifts??null},x={viewId:r.id,id:u.id,title:u.title,technology:u.technology??null,description:u.description??null,height:u.height,width:u.width,level:u.level,color:u.color,shape:u.shape,style:u.style,icon:u.icon??null,tags:u.tags,x:u.x,y:u.y,isMultiple:u.style?.multiple??!1,drifts:u.drifts??null};if(u.kind===w1){n.push({...v,type:"view-group",data:{isViewGroup:!0,...w},dragHandle:".likec4-compound-title-container"});continue}const k=u.modelRef??null,C=u.deploymentRef??null;if(!k&&!C)throw console.error("Invalid node",u),new Error("Element should have either modelRef or deploymentRef");const _={navigateTo:u.navigateTo??null};switch(!0){case(f&&!!C):{n.push({...v,type:"compound-deployment",data:{...w,..._,deploymentFqn:C,modelFqn:k}});break}case f:{He(!!k,"ModelRef expected"),n.push({...v,type:"compound-element",data:{...w,..._,modelFqn:k}});break}case!!C:{n.push({...v,type:"deployment",data:{...x,..._,deploymentFqn:C,modelFqn:k}});break}default:He(!!k,"ModelRef expected"),n.push({...v,type:"element",data:{...x,..._,modelFqn:k}})}}for(const u of r.edges){const p=u.source,f=u.target,m=s+u.id;if(!xn(u.points,2)){console.error("edge should have at least 2 points",u);continue}o.push({id:m,type:"relationship",source:s+p,target:s+f,zIndex:lc.Edge,hidden:!l(u),deletable:!1,data:{id:u.id,label:u.label,technology:u.technology,notes:u.notes??null,navigateTo:u.navigateTo,controlPoints:u.controlPoints??null,labelBBox:u.labelBBox??null,labelXY:null,points:u.points,color:u.color??"gray",line:u.line??"dashed",dir:u.dir??"forward",head:u.head??"normal",tail:u.tail??"none",astPath:u.astPath,drifts:u.drifts??null},interactionWidth:20})}return{bounds:r.bounds,xynodes:n,xyedges:o}}const are={parallel:1,actor:10},l4={default:"gray",active:"amber"};function BZe(e){const{actors:r,steps:n,compounds:o,parallelAreas:i,bounds:a}=e.sequenceLayout,l=[],s=[],c=d=>gt(e.nodes.find(u=>u.id===d));for(const d of o)l.push(IZe(d,c(d.origin),e));for(const d of i)l.push(OZe(d,e));for(const d of r)l.push(LZe(d,c(d.id),a,e));for(const d of n){const u=e.edges.find(p=>p.id===d.id);if(!u)throw new Error(`Edge ${d.id} not found`);s.push(FZe(d,u))}return{bounds:a,xynodes:l,xyedges:s}}function IZe({id:e,x:r,y:n,width:o,height:i,depth:a},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:a,isViewGroup:!0,drifts:l.drifts??null},position:{x:r,y:n},draggable:!1,selectable:!1,focusable:!1,style:{pointerEvents:"none"},width:o,initialWidth:o,height:i,initialHeight:i}}function OZe({parallelPrefix:e,x:r,y:n,width:o,height:i},a){return{id:`seq-parallel-${e}`,type:"seq-parallel",data:{id:`seq-parallel-${e}`,title:"PARALLEL",technology:null,color:l4.default,shape:"rectangle",style:{},tags:[],x:r,y:n,level:0,icon:null,width:o,height:i,description:null,viewId:a.id,parallelPrefix:e,drifts:null},zIndex:are.parallel,position:{x:r,y:n},draggable:!1,deletable:!1,selectable:!1,focusable:!1,style:{pointerEvents:"none"},width:o,initialWidth:o,height:i,initialHeight:i}}function LZe({id:e,x:r,y:n,width:o,height:i,ports:a},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:i,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:l.description??null,viewHeight:s.height,viewId:c.id,ports:a,drifts:l.drifts??null},deletable:!1,selectable:!0,zIndex:are.actor,position:{x:r,y:n},width:o,initialWidth:o,height:i,initialHeight:i}}function FZe({id:e,labelBBox:r,sourceHandle:n,targetHandle:o},i){return{id:e,type:"seq-step",data:{id:e,label:i.label,technology:i.technology,notes:i.notes??null,navigateTo:i.navigateTo,controlPoints:null,labelBBox:{x:0,y:0,width:r?.width??i.labelBBox?.width??32,height:r?.height??i.labelBBox?.height??32},labelXY:null,points:i.points,color:i.color,line:i.line,dir:"forward",head:i.head??"normal",tail:i.tail??"none",astPath:i.astPath,drifts:i.drifts??null},selectable:!0,focusable:!1,zIndex:20,interactionWidth:40,source:i.source,sourceHandle:n,target:i.target,targetHandle:o}}function lre({dynamicViewVariant:e,...r}){const n=r.view,o=n._type==="dynamic",{bounds:i,xynodes:a,xyedges:l}=o&&e==="sequence"?BZe(n):NZe(r);return o&&n.variant!==e?{view:{...n,bounds:i,variant:e},xynodes:a,xyedges:l}:{view:i===n.bounds?n:{...n,bounds:i},xynodes:a,xyedges:l}}class sre{}class Tg extends sre{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 VZe extends sre{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=Jr(r,mw(a=>a[this.primaryAxisCoord])),o=this.getLayoutRect(n),i=this.getLayers(n);this.layout=this.buildLayout(i,o,n)}getLayoutRect(r){const n=Math.min(...r.map(l=>l.x)),o=Math.min(...r.map(l=>l.y)),i=Math.max(...r.map(l=>l.x+l.width)),a=Math.max(...r.map(l=>l.y+l.height));return{x:n,y:o,width:i-n,height:a-o}}getLayers(r){const n=[];let o=0,i=null;for(let a of r)if(i&&a[this.primaryAxisCoord]a.nodes.sort((l,s)=>l[this.secondaryAxisCoord]-s[this.secondaryAxisCoord])),n}buildLayout(r,n,o){const i=new Map(o.map(v=>[v.id,v])),a=[],l=r.reduce((v,w)=>v+w.primaryAxisSize,0),s=r.length>1?(n[this.primaryAxisDimension]-l)/(r.length-1):0,c=r.reduce((v,w,x)=>r[v].occupiedSpacev+w.primaryAxisSize+s,n[this.primaryAxisCoord]),p=this.buildLayerLayout(d,n,u,i,null);d.layout=p,a.push(...p.nodePositions);let f=u+d.primaryAxisSize+s,m=d;for(let v=c+1;v=0;v--){const w=r[v];f-=w.primaryAxisSize+s,w.layout=this.buildLayerLayout(w,n,f,i,m),a.push(...w.layout.nodePositions),m=w.layout.refLayer??w}return new Map(a)}buildLayerLayout(r,n,o,i,a){let l=this.scoreLayout(this.spaceAround(r,n,o),i);if(r.nodes.length!=1){const s=this.scoreLayout(this.spaceBetween(r,n,o),i);l=s[0]=r.nodes.length){const s=this.scoreLayout(this.placeInGaps(r,o,a),i);l=s[0]=r.nodes.length){const s=this.scoreLayout(this.placeInCells(r,o,a),i);l=s[0]c[this.secondaryAxisCoord]))l.set(s.id,{[this.secondaryAxisCoord]:a,[this.primaryAxisCoord]:o}),a+=s[this.secondaryAxisDimension]+i;return{nodePositions:l,refLayer:null}}placeInGaps(r,n,o){const i=new Map,a=r.nodes,l=this.getGapsPositions(o);let s=0;for(let c=0,d=a[c];c{const a=n.get(o);return He(a,`Could not find original rect for node ${o}`),[Hq(a,["x","y"]),i]}),un(([o,i])=>Math.abs(o[this.secondaryAxisCoord]-i[this.secondaryAxisCoord])),gw((o,i)=>o+i,0)),r]}getGapsPositions(r){const n=[],{layout:o,nodes:i}=r;He(o,"Layout of the layer must be computed before calling getGapsPositions");for(let a=1;aMath.min(...r.map(n=>n.x)),(r,n)=>Math.floor(r),"x");case"Top":return new Tg(r=>Math.min(...r.map(n=>n.y)),(r,n)=>Math.floor(r),"y");case"Right":return new Tg(r=>Math.max(...r.map(n=>n.x+n.width)),(r,n)=>Math.floor(r-n.width),"x");case"Bottom":return new Tg(r=>Math.max(...r.map(n=>n.y+n.height)),(r,n)=>Math.floor(r-n.height),"y");case"Center":return new Tg(r=>Math.min(...r.map(n=>n.x+n.width/2)),(r,n)=>Math.floor(r-n.width/2),"x");case"Middle":return new Tg(r=>Math.min(...r.map(n=>n.y+n.height/2)),(r,n)=>Math.floor(r-n.height/2),"y")}}function cre(e){const{width:r,height:n}=_o(e);return{...e.internals.positionAbsolute,id:e.id,width:r,height:n}}function HZe(e){switch(e){case"Left":case"Right":case"Top":case"Bottom":case"Center":case"Middle":return qZe(e);case"Column":case"Row":return new VZe(e);default:Qo(e)}}const S0=e=>Qe.createAction(({context:r,event:n})=>{let o,i;e?(o=e.viewport,i=e.duration):(ht(n,"xyflow.setViewport"),o=n.viewport,i=n.duration),i=i??400;const{panZoom:a}=gt(r.xystore).getState(),l=i>0?{duration:i,interpolate:"smooth"}:void 0;a?.setViewport({x:Math.round(o.x),y:Math.round(o.y),zoom:o.zoom},l).catch(s=>{console.error("Error during fitDiagram panZoom setViewport",{err:s})})}),s4=e=>Qe.enqueueActions(({context:r,event:n,enqueue:o})=>{let i=r.view.bounds,a;e?(i=e.bounds??r.view.bounds,a=e.duration):n.type==="xyflow.fitDiagram"&&(i=n.bounds??r.view.bounds,a=n.duration,o.assign({viewportChangedManually:!1})),a??=450;const{width:l,height:s,panZoom:c,transform:d}=gt(r.xystore).getState(),u=Math.max(1,d[2]),p=Ws(i,l,s,xa,u,r.fitViewPadding);p.x=Math.round(p.x),p.y=Math.round(p.y);const f=a>0?{duration:a,interpolate:"smooth"}:void 0;c?.setViewport(p,f).catch(m=>{console.error("Error during fitDiagram panZoom setViewport",{err:m})})}),E0=()=>Qe.createAction(({context:e})=>{const r=!!e.activeWalkthrough&&e.dynamicViewVariant==="sequence",{bounds:n,duration:o=450}=r?nGe({context:e}):tGe({context:e}),{width:i,height:a,panZoom:l,transform:s}=gt(e.xystore).getState(),c=Math.max(1,s[2]),d=Ws(n,i,a,xa,c,e.fitViewPadding);d.x=Math.round(d.x),d.y=Math.round(d.y);const u=o>0?{duration:o,interpolate:"smooth"}:void 0;l?.setViewport(d,u).catch(p=>{console.error("Error during fitFocusedBounds panZoom setViewport",{err:p})})}),lz=30,dre=e=>{const{delay:r=lz,...n}=e??{};return Qe.raise({type:"xyflow.setViewport",...n},{id:"fitDiagram",delay:r})},fc=()=>Qe.cancel("fitDiagram"),c4=e=>{const{delay:r=lz,...n}=e??{};return Qe.raise({type:"xyflow.fitDiagram",...n},{id:"fitDiagram",delay:r})},UZe=e=>Qe.raise(({context:r})=>({type:"update.view",view:r.view}),{delay:lz}),sz=e=>Qe.assign(({context:r})=>({viewportBefore:{wasChangedManually:r.viewportChangedManually,value:{...r.viewport}}})),cz=e=>Qe.enqueueActions(({enqueue:r,context:{viewportBefore:n}})=>{r(fc()),n?(r.assign({viewportChangedManually:n.wasChangedManually,viewportBefore:null}),e&&e.delay===0?r(S0({viewport:n.value,...e})):r(dre({viewport:n.value,...e}))):e&&e.delay===0?r(s4({...e})):r(c4({...e}))}),ure=()=>Qe.assign(({context:e})=>({toggledFeatures:{...e.toggledFeatures,enableCompareWithLatest:!1},viewportOnAutoLayout:null,viewportOnManualLayout:null})),WZe=()=>Qe.assign(({context:e,event:r})=>{if(ht(r,"xyflow.edgeDoubleClick"),!r.edge.data.controlPoints)return{};const{nodeLookup:n}=e.xystore.getState();return{xyedges:e.xyedges.map(o=>{if(o.id===r.edge.id){const i=ire(n,o),a=i[0];return{...o,data:{...o.data,controlPoints:i,labelBBox:o.data.labelBBox?{...o.data.labelBBox,...a}:null,labelXY:null}}}return o})}}),Ap=()=>Qe.assign(({context:e,event:r})=>{ht(r,"xyflow.nodeClick");const{lastClickedNode:n}=e;return!n||n.id!==r.node.id?{lastClickedNode:{id:r.node.id,clicks:1,timestamp:Date.now()}}:{lastClickedNode:{id:n.id,clicks:n.clicks+1,timestamp:Date.now()}}}),d4=()=>Qe.assign(({event:e})=>{let r,n=!1;switch(e.type){case"xyflow.nodeClick":r=e.node.data.id;break;case"focus.node":r=e.nodeId,n=e.autoUnfocus===!0;break;default:throw new Error(`Unexpected event type: ${e.type} in action 'assign: focusedNode'`)}return{focusedNode:r,autoUnfocusTimer:n}}),jg=()=>Qe.assign(()=>({lastClickedNode:null})),pre=()=>Qe.assign(({event:e})=>(ht(e,"update.features"),{features:{...e.features}})),GZe=()=>Qe.assign(({event:e})=>(ht(e,"update.inputs"),{...e.inputs})),hre=e=>Qe.assign(({context:r,event:n})=>{let o;ht(n,"update.view"),o="xynodes"in n?n:lre({dynamicViewVariant:r.dynamicViewVariant,view:n.view,where:r.where});const i=az(r,o);let{lastClickedNode:a,focusedNode:l,activeWalkthrough:s}=r;if(a||l||s){const c=new Set(i.xynodes.map(u=>u.id));a&&!c.has(a.id)&&(a=null),l&&!c.has(l)&&(l=null);const d=s?.stepId;return d&&!i.xyedges.some(u=>u.id===d)&&(s=null),{...i,lastClickedNode:a,focusedNode:l,activeWalkthrough:s}}return i}),C0=()=>Qe.enqueueActions(({context:e,enqueue:r})=>{const n=DZe(e);n?r.assign(n):r.raise({type:"key.esc"})}),u4=()=>Qe.assign(({context:e})=>({xynodes:e.xynodes.map(tr.setDimmed(!1)),xyedges:e.xyedges.map(tr.setData({dimmed:!1,active:!1}))})),YZe=()=>Qe.assign(({event:e})=>(ht(e,"switch.dynamicViewVariant"),{dynamicViewVariant:e.variant})),XZe=e=>Qe.assign(({context:r,event:n})=>{let o=e?.node;return o||(ht(n,"xyflow.nodeMouseEnter"),o=n.node),{xynodes:r.xynodes.map(i=>i.id===o.id?tr.setHovered(i,!0):i)}}),KZe=e=>Qe.assign(({context:r,event:n})=>{let o=e?.node;return o||(ht(n,"xyflow.nodeMouseLeave"),o=n.node),{xynodes:r.xynodes.map(i=>i.id===o.id?tr.setHovered(i,!1):i)}}),dz=()=>Qe.emit(()=>({type:"paneClick"})),fre=e=>Qe.emit(({event:r})=>e?{type:"openSource",params:e}:(ht(r,"open.source"),{type:"openSource",params:r})),ZZe=()=>Qe.emit(({context:e})=>(He(e.xyflow,"XYFlow instance not found"),{type:"initialized",instance:e.xyflow})),Dp=()=>Qe.emit(({context:e,event:r})=>(ht(r,"xyflow.nodeClick"),{type:"nodeClick",node:gt(yg(e,r.node.id),`Node ${r.node.id} not found in diagram`),xynode:r.node})),uz=e=>Qe.emit(({context:r})=>({type:"navigateTo",viewId:e?.viewId??gt(r.lastOnNavigate,"Invalid state, lastOnNavigate is null").toView})),pz=()=>Qe.emit(({context:e,event:r})=>(ht(r,"xyflow.edgeClick"),{type:"edgeClick",edge:gt(yR(e,r.edge.id),`Edge ${r.edge.id} not found in diagram`),xyedge:r.edge})),gre=e=>Qe.enqueueActions(({event:r,enqueue:n})=>{let o=e;o||(ht(r,"trigger.change"),o=r.change),n.assign({viewportChangedManually:!0}),n.sendTo(zr.editorActor,{type:"change",change:o})}),QZe=()=>Qe.enqueueActions(({event:e,system:r,context:n,enqueue:o})=>{if(!n.features.enableCompareWithLatest){console.warn("Layout type cannot be changed while CompareWithLatest feature is disabled");return}const i=n.view._layout;let a=i==="auto"?"manual":"auto";if(e.type==="emit.onLayoutTypeChange"&&(a=e.layoutType),i===a){console.warn("Ignoring layout type change event, layout type is already",i);return}if(n.toggledFeatures.enableCompareWithLatest===!0){i==="manual"&&a==="auto"&&zr(r).editorActorRef?.send({type:"cancel"});const l=n.viewport;i==="auto"&&o.assign({viewportOnAutoLayout:l}),i==="manual"&&o.assign({viewportOnManualLayout:l})}o.emit({type:"onLayoutTypeChange",layoutType:a})}),JZe=e=>Qe.createAction(({context:r,event:n})=>{let o;ht(n,"layout.align"),o=n.mode;const i=gt(r.xystore,"xystore is not initialized"),{nodeLookup:a,parentLookup:l}=i.getState(),s=[...new Set(a.values().filter(p=>p.selected).map(p=>p.id)).difference(new Set(l.keys()))];if(!xn(s,2)){console.warn("At least 2 nodes must be selected to align");return}const c=Jte(i,s),d=HZe(o),u=s.map(p=>({node:gt(a.get(p)),rect:gt(c.rects.get(p))}));d.computeLayout(u.map(({node:p})=>cre(p)));for(const{rect:p,node:f}of u)p.positionAbsolute={...p.positionAbsolute,...d.applyPosition(cre(f))};c.updateXYFlow()}),eQe=()=>Qe.assign(({context:e})=>{const{nodeLookup:r}=e.xystore.getState();return{xyedges:e.xyedges.map(n=>{if(!n.data.controlPoints)return n;const o=ire(r,n),i=o[0];return{...n,data:{...n.data,controlPoints:o,labelBBox:n.data.labelBBox?{...n.data.labelBBox,x:i.x,y:i.y}:null,labelXY:n.data.labelXY?i:null}}})}}),tQe=()=>Qe.assign(({context:e,event:r})=>{ht(r,"notations.highlight");const{notation:n,kind:o}=r,i=o?[o]:n.kinds,a=c=>c.notation===n.title&&c.shape===n.shape&&c.color===n.color&&i.includes(c.kind),l=e.xynodes.map(c=>{const d=yg(e,c.id),u=d&&a(d);return tr.setDimmed(c,u?!1:"immediate")}),s=e.xyedges.map(c=>tr.setDimmed(c,!0));return{xynodes:l,xyedges:s}}),rQe=()=>Qe.assign(({context:e,event:r})=>(ht(r,"tag.highlight"),{xynodes:e.xynodes.map(n=>n.data.tags?.includes(r.tag)?tr.setDimmed(n,!1):tr.setDimmed(n,!0))})),nQe=()=>Qe.assign(({context:e,event:r})=>{ht(r,"toggle.feature");const n=e.toggledFeatures[`enable${r.feature}`]??e.features[`enable${r.feature}`],o=r.forceValue??!n;return{toggledFeatures:{...e.toggledFeatures,[`enable${r.feature}`]:o}}}),oQe=()=>Qe.sendTo(zr.searchActor,{type:"close"}),iQe=()=>Qe.sendTo(zr.overlaysActor,{type:"close.all"}),mre=()=>Qe.enqueueActions(({enqueue:e,system:r})=>{const n=zr(r).editorActorRef;n&&e.stopChild(n)}),hz=()=>Qe.enqueueActions(({enqueue:e,context:r,system:n,check:o})=>{const i=o("enabled: Editor"),a=zr(n).editorActorRef;if(!i&&a){e.stopChild(a);return}i&&!a&&e.spawnChild("editorActor",{id:"editor",systemId:"editor",input:{viewId:r.view.id},syncSnapshot:!0})}),fz=(e="node")=>Qe.sendTo(zr.editorActor,{type:"edit.start",subject:e}),aQe=()=>Qe.sendTo(zr.editorActor,{type:"synced"}),gz=(e=!0)=>Qe.sendTo(zr.editorActor,{type:"edit.finish",wasChanged:e}),yre=()=>Qe.sendTo(zr.editorActor,{type:"cancel"}),vre=e=>"modelFqn"in e.data&&Zn(e.data.modelFqn),mz=e=>Qe.enqueueActions(({context:r,event:n,enqueue:o})=>{let i=null,a,l;switch(!0){case n.type==="xyflow.nodeClick":{if(!vre(n.node)){console.warn("No modelFqn in clicked node data");return}l=n.node.data.modelFqn,a=n.node.data.id;break}case n.type==="open.elementDetails":{l=n.fqn,a=n.fromNode;break}default:{if(!r.lastClickedNode){console.warn("No last clicked node");return}a=r.lastClickedNode.id;const c=r.xynodes.find(d=>d.id===a);if(!c||!vre(c)){console.warn("No modelFqn in last clicked node");return}l=c.data.modelFqn;break}}const s=a?r.xystore.getState().nodeLookup.get(a):null;if(a&&s){const c=Ku(s),d=r.xyflow.getZoom(),u={...r.xyflow.flowToScreenPosition(c),width:c.width*d,height:c.height*d};i={node:a,clientRect:u}}o.sendTo(zr.overlaysActor,{type:"open.elementDetails",subject:l,currentView:r.view,...i&&{initiatedFrom:i}})}),yz=()=>Qe.enqueueActions(({context:e,event:r,enqueue:n,check:o})=>{if(ht(r,["open.relationshipsBrowser","open.relationshipDetails","open.elementDetails"]),!o("enabled: Overlays")){console.warn("Overlays feature is disabled");return}switch(r.type){case"open.elementDetails":{o("enabled: ElementDetails")?n(mz()):console.warn("ElementDetails feature is disabled");break}case"open.relationshipsBrowser":{n.sendTo(zr.overlaysActor,{type:"open.relationshipsBrowser",subject:r.fqn,viewId:e.view.id,scope:"view",closeable:!0,enableChangeScope:!0,enableSelectSubject:!0});break}case"open.relationshipDetails":{n.sendTo(zr.overlaysActor,{type:"open.relationshipDetails",viewId:e.view.id,...r.params});break}default:Qo(r)}}),p4=()=>Qe.enqueueActions(({context:e,enqueue:r})=>{const n=e.focusedNode??e.lastClickedNode?.id;if(!n||!e.features.enableVscode)return;const o=yg(e,n);o&&(o.deploymentRef?r.raise({type:"open.source",deployment:o.deploymentRef}):o.modelRef&&r.raise({type:"open.source",element:o.modelRef}))}),bre=()=>Qe.enqueueActions(({enqueue:e,check:r,system:n})=>{const o=r("enabled: Overlays"),i=zr(n).overlaysActorRef;if(o&&!i){e.spawnChild("overlaysActorLogic",{id:"overlays",systemId:"overlays"});return}!o&&i&&(e.sendTo(i,{type:"close.all"}),e.stopChild("overlays"))}),xre=()=>Qe.enqueueActions(({enqueue:e,context:{features:{enableSearch:r}},system:n})=>{const o=zr(n).searchActorRef;if(r&&!o){e.spawnChild("searchActorLogic",{id:"search",systemId:"search"});return}!r&&o&&(e.sendTo(o,{type:"close"}),e.stopChild("search"))}),lQe=()=>Qe.enqueueActions(({enqueue:e,context:r,event:n})=>{ht(n,"xyflow.edgeMouseEnter");let o=n.edge;e.assign({xyedges:r.xyedges.map(i=>i.id===n.edge.id?(o=tr.setHovered(i,!0),o):i)}),e.emit({type:"edgeMouseEnter",edge:o,event:n.event})}),sQe=()=>Qe.enqueueActions(({enqueue:e,context:r,event:n})=>{ht(n,"xyflow.edgeMouseLeave");let o=n.edge;e.assign({xyedges:r.xyedges.map(i=>i.id===n.edge.id?(o=tr.setHovered(i,!1),o):i)}),e.emit({type:"edgeMouseLeave",edge:o,event:n.event})}),wre=()=>Qe.spawnChild("hotkeyActorLogic",{id:"hotkey"}),kre=()=>Qe.stopChild("hotkey"),_re=3e3,cQe=()=>Qe.enqueueActions(({context:e,enqueue:r})=>{e.autoUnfocusTimer&&_re>0&&r.raise({type:"focus.autoUnfocus"},{delay:_re,id:"autoUnfocusTimer"})}),dQe=()=>Qe.cancel("autoUnfocusTimer"),uQe=()=>Qe.enqueueActions(({enqueue:e,context:r,event:n})=>{ht(n,["navigate.to","navigate.back","navigate.forward"]);const{view:o,focusedNode:i,activeWalkthrough:a,dynamicViewVariant:l,viewport:s,viewportChangedManually:c,viewportBefore:d,navigationHistory:{currentIndex:u,history:p}}=r;let f=[...p];if(u{v.viewport={...s},v.viewportChangedManually=c,v.focusedNode=i,o._type==="dynamic"?(v.activeWalkthrough=a?.stepId??null,v.dynamicViewVariant=l):(v.activeWalkthrough=null,v.dynamicViewVariant=null),d?v.viewportBefore=d:delete v.viewportBefore});f=[...p],f[u]=m}switch(n.type){case"navigate.to":{e.assign({navigationHistory:{currentIndex:u,history:f},lastOnNavigate:{fromView:r.view.id,toView:n.viewId,fromNode:n.fromNode??null,focusOnElement:n.focusOnElement??null}}),e(uz());break}case"navigate.back":{He(u>0,"Cannot navigate back");const m=f[u-1];e.assign({navigationHistory:{currentIndex:u-1,history:f},lastOnNavigate:null}),e(uz({viewId:m.viewId}));break}case"navigate.forward":{He(uQe.enqueueActions(({enqueue:e,event:r,context:n})=>{if(r.type!=="update.view"){console.warn(`Ignoring unexpected event type: ${r.type} in action 'update.view'`);return}const o=r.view;if(o.id!==n.view.id){console.warn("updateView called for another view - ignoring",{event:r});return}if(e(hre()),r.source==="editor")return;e(aQe());let i=!n.viewportChangedManually&&!n.focusedNode&&!n.activeWalkthrough;if(n.toggledFeatures.enableCompareWithLatest===!0&&n.view._layout!==o._layout){if(o._layout==="auto"&&n.viewportOnAutoLayout){e(S0({viewport:n.viewportOnAutoLayout,duration:0}));return}if(o._layout==="manual"&&n.viewportOnManualLayout){e(S0({viewport:n.viewportOnManualLayout,duration:0}));return}}i=i||o._type==="dynamic"&&n.view._type==="dynamic"&&o.variant!==n.view.variant,i=i||n.toggledFeatures.enableCompareWithLatest===!0&&!!o._layout&&n.view._layout!==o._layout,i&&(e(fc()),e(c4({bounds:r.view.bounds})))});var Ho={},bz={},Sre;function Ere(){if(Sre)return bz;Sre=1;var e=I2();function r(i,{machine:a,context:l},s,c){const d=(u,p)=>{if(typeof u=="string"){const f=e.resolveReferencedActor(a,u);if(!f)throw new Error(`Actor logic '${u}' not implemented in machine '${a.id}'`);const m=e.createActor(f,{id:p?.id,parent:i.self,syncSnapshot:p?.syncSnapshot,input:typeof p?.input=="function"?p.input({context:l,event:s,self:i.self}):p?.input,src:u,systemId:p?.systemId});return c[m.id]=m,m}else return e.createActor(u,{id:p?.id,parent:i.self,syncSnapshot:p?.syncSnapshot,input:p?.input,src:u,systemId:p?.systemId})};return(u,p)=>{const f=d(u,p);return c[f.id]=f,i.defer(()=>{f._processingStatus!==e.ProcessingStatus.Stopped&&f.start()}),f}}function n(i,a,l,s,{assignment:c}){if(!a.context)throw new Error("Cannot assign to undefined `context`. Ensure that `context` is defined in the machine config.");const d={},u={context:a.context,event:l.event,spawn:r(i,a,l.event,d),self:i.self,system:i.system};let p={};if(typeof c=="function")p=c(u,s);else for(const m of Object.keys(c)){const v=c[m];p[m]=typeof v=="function"?v(u,s):v}const f=Object.assign({},a.context,p);return[e.cloneMachineSnapshot(a,{context:f,children:Object.keys(d).length?{...a.children,...d}:a.children}),void 0,void 0]}function o(i){function a(l,s){}return a.type="xstate.assign",a.assignment=i,a.resolve=n,a}return bz.assign=o,bz}var gc={},Cre;function pQe(){if(Cre)return gc;Cre=1;var e=I2(),r=Ere();function n(k,C,_,$,{event:R}){const T=typeof R=="function"?R(_,$):R;return[C,{event:T},void 0]}function o(k,{event:C}){k.defer(()=>k.emit(C))}function i(k){function C(_,$){}return C.type="xstate.emit",C.event=k,C.resolve=n,C.execute=o,C}let a=(function(k){return k.Parent="#_parent",k.Internal="#_internal",k})({});function l(k,C,_,$,{to:R,event:T,id:A,delay:z},j){const I=C.machine.implementations.delays;if(typeof T=="string")throw new Error(`Only event objects may be used with sendTo; use sendTo({ type: "${T}" }) instead`);const N=typeof T=="function"?T(_,$):T;let L;if(typeof z=="string"){const V=I&&I[z];L=typeof V=="function"?V(_,$):V}else L=typeof z=="function"?z(_,$):z;const H=typeof R=="function"?R(_,$):R;let P;if(typeof H=="string"){if(H===a.Parent?P=k.self._parent:H===a.Internal?P=k.self:H.startsWith("#_")?P=C.children[H.slice(2)]:P=j.deferredActorIds?.includes(H)?H:C.children[H],!P)throw new Error(`Unable to send event to actor '${H}' from machine '${C.machine.id}'.`)}else P=H||k.self;return[C,{to:P,targetId:typeof H=="string"?H:void 0,event:N,id:A,delay:L},void 0]}function s(k,C,_){typeof _.to=="string"&&(_.to=C.children[_.to])}function c(k,C){k.defer(()=>{const{to:_,event:$,delay:R,id:T}=C;if(typeof R=="number"){k.system.scheduler.schedule(k.self,_,$,R,T);return}k.system._relay(k.self,_,$.type===e.XSTATE_ERROR?e.createErrorActorEvent(k.self.id,$.data):$)})}function d(k,C,_){function $(R,T){}return $.type="xstate.sendTo",$.to=k,$.event=C,$.id=_?.id,$.delay=_?.delay,$.resolve=l,$.retryResolve=s,$.execute=c,$}function u(k,C){return d(a.Parent,k,C)}function p(k,C){return d(k,({event:_})=>_,C)}function f(k,C,_,$,{collect:R}){const T=[],A=function(z){T.push(z)};return A.assign=(...z)=>{T.push(r.assign(...z))},A.cancel=(...z)=>{T.push(e.cancel(...z))},A.raise=(...z)=>{T.push(e.raise(...z))},A.sendTo=(...z)=>{T.push(d(...z))},A.sendParent=(...z)=>{T.push(u(...z))},A.spawnChild=(...z)=>{T.push(e.spawnChild(...z))},A.stopChild=(...z)=>{T.push(e.stopChild(...z))},A.emit=(...z)=>{T.push(i(...z))},R({context:_.context,event:_.event,enqueue:A,check:z=>e.evaluateGuard(z,C.context,_.event,C),self:k.self,system:k.system},$),[C,void 0,T]}function m(k){function C(_,$){}return C.type="xstate.enqueueActions",C.collect=k,C.resolve=f,C}function v(k,C,_,$,{value:R,label:T}){return[C,{value:typeof R=="function"?R(_,$):R,label:T},void 0]}function w({logger:k},{value:C,label:_}){_?k(_,C):k(C)}function x(k=({context:_,event:$})=>({context:_,event:$}),C){function _($,R){}return _.type="xstate.log",_.value=k,_.label=C,_.resolve=v,_.execute=w,_}return gc.SpecialTargets=a,gc.emit=i,gc.enqueueActions=m,gc.forwardTo=p,gc.log=x,gc.sendParent=u,gc.sendTo=d,gc}var $re;function hQe(){if($re)return Ho;$re=1,Object.defineProperty(Ho,"__esModule",{value:!0});var e=Ere(),r=I2(),n=pQe();return RR(),Ho.assign=e.assign,Ho.cancel=r.cancel,Ho.raise=r.raise,Ho.spawnChild=r.spawnChild,Ho.stop=r.stop,Ho.stopChild=r.stopChild,Ho.emit=n.emit,Ho.enqueueActions=n.enqueueActions,Ho.forwardTo=n.forwardTo,Ho.log=n.log,Ho.sendParent=n.sendParent,Ho.sendTo=n.sendTo,Ho}var fr=hQe();const fQe=Qe.createStateConfig({on:{"xyflow.init":{actions:fr.assign(({context:e,event:r})=>({initialized:{...e.initialized,xyflow:!0},xyflow:r.instance})),target:"isReady"},"update.view":{actions:[hre(),fr.assign(({context:e})=>({initialized:{...e.initialized,xydata:!0}}))],target:"isReady"}}}),gQe=Qe.createStateConfig({always:[{guard:"isReady",actions:[s4({duration:0}),fr.assign(({context:e})=>({navigationHistory:{currentIndex:0,history:[{viewId:e.view.id,viewport:{...e.xyflow.getViewport()},viewportChangedManually:!1}]}})),ZZe()],target:"ready"},{target:"initializing"}]}),mQe=()=>Qe.assign(({context:e,event:r})=>{ht(r,"update.view");let{lastOnNavigate:n,navigationHistory:{currentIndex:o,history:i}}=e;const a=i[o];if(!a||a.viewId===r.view.id||n)return{};const l=o>0?gt(i[o-1]):null;if(l&&l.viewId===r.view.id)return{navigationHistory:{currentIndex:o-1,history:i},lastOnNavigate:null};const s=ovR(u)===c);if(d)return{lastOnNavigate:{fromView:e.view.id,toView:r.view.id,fromNode:d.id}}}return{}}),yQe=Qe.createStateConfig({id:zn.navigating.slice(1),always:{target:zn.idle,actions:[fc(),mQe(),ure(),rs(({enqueue:e,context:r,event:n})=>{ht(n,"update.view");const{xyflow:o,xystore:i,navigationHistory:{currentIndex:a,history:l}}=r,s="xynodes"in n?n:{...n,...lre({dynamicViewVariant:r.dynamicViewVariant,view:n.view,where:r.where})};He(o,"xyflow is not initialized");const c=x=>{const k=o.getZoom(),C=x.zoom({type:"focus.node",nodeId:e.node.id})),Dp()]}],"focus.node":{actions:[d4(),C0(),p4(),E0()]},"key.esc":{target:zn.idle},"xyflow.paneClick":{actions:[jg(),dz()],target:zn.idle},"notations.unhighlight":{actions:C0()},"tag.unhighlight":{actions:C0()},"update.view":{guard:"is same view",actions:[vz(),C0()]}}}),bQe=Qe.createStateConfig({id:zn.idle.slice(1),on:{"xyflow.nodeClick":[{guard:Bd.and(["enabled: Readonly","enabled: FocusMode","click: node has connections",Bd.or(["click: same node","click: selected node"])]),actions:[Ap(),d4(),Dp()],target:zn.focused},{guard:Bd.and(["enabled: Readonly","enabled: ElementDetails","click: node has modelFqn",Bd.or(["click: same node","click: selected node"])]),actions:[Ap(),p4(),mz(),Dp()]},{actions:[Ap(),p4(),Dp()]}],"xyflow.paneClick":{actions:[jg(),dz()]},"xyflow.paneDblClick":{actions:[jg(),fr.enqueueActions(({context:e,enqueue:r,check:n})=>{n("enabled: FitView")&&r(s4()),r(fre({view:e.view.id}))})]},"focus.node":[{guard:"focus.node: autoUnfocus",actions:d4(),target:zn.focused},{guard:"enabled: FocusMode",actions:d4(),target:zn.focused}],"xyflow.edgeClick":{guard:Bd.and(["enabled: Readonly","is dynamic view","enabled: DynamicViewWalkthrough","click: selected edge"]),actions:[jg(),fr.raise(({event:e})=>({type:"walkthrough.start",stepId:e.edge.id})),pz()]}}}),xQe=Qe.createStateConfig({id:zn.printing.slice(1),entry:[fc(),sz(),rs(({enqueue:e,context:r})=>{const n=r.view.bounds,o=16;e(S0({viewport:{x:n.x+o,y:n.y+o,zoom:1},duration:0}))})],exit:[cz({delay:0,duration:0})],on:{"media.print.off":{target:zn.idle},"*":{actions:[yE(({event:e})=>`Printing state - ignoring event: ${e.type}`)]}}}),Ag=()=>Qe.enqueueActions(({context:e,enqueue:r})=>{const{activeWalkthrough:n}=e;if(!n){console.warn("Active walkthrough is null"),r.raise({type:"walkthrough.end"});return}const{stepId:o,parallelPrefix:i}=n,a=e.xyedges.find(l=>l.id===o);if(!a){console.warn("Invalid walkthrough stepId:",o),r.raise({type:"walkthrough.end"});return}r.assign({xyedges:e.xyedges.map(l=>{const s=o===l.id||!!i&&l.id.startsWith(i);return tr.setData(l,{active:s,dimmed:o!==l.id})}),xynodes:e.xynodes.map(l=>{const s=a.source!==l.id&&a.target!==l.id;return l.type==="seq-parallel"?tr.setData(l,{color:i===l.data.parallelPrefix?l4.active:l4.default,dimmed:s}):tr.setDimmed(l,s)})})}),wQe=()=>Qe.emit(({context:e})=>{const r=e.xyedges.find(n=>n.id===e.activeWalkthrough?.stepId);return He(r,"Invalid walkthrough state"),{type:"walkthroughStarted",edge:r}}),kQe=()=>Qe.emit(()=>({type:"walkthroughStopped"})),Rre=()=>Qe.emit(({context:e})=>{const r=e.xyedges.find(n=>n.id===e.activeWalkthrough?.stepId);return He(r,"Invalid walkthrough state"),{type:"walkthroughStep",edge:r}}),_Qe=Qe.createStateConfig({id:zn.walkthrough.slice(1),entry:[wre(),yre(),fc(),sz(),fr.assign({activeWalkthrough:({context:e,event:r})=>{ht(r,"walkthrough.start");const n=r.stepId??hf(e.xyedges).id;return{stepId:n,parallelPrefix:Z8(n)}}}),Ag(),E0(),wQe()],exit:[kre(),fr.enqueueActions(({enqueue:e,context:r})=>{e.assign({activeWalkthrough:null}),r.dynamicViewVariant==="sequence"&&r.activeWalkthrough?.parallelPrefix&&e.assign({xynodes:r.xynodes.map(n=>n.type==="seq-parallel"?tr.setData(n,{color:l4.default}):n)})}),u4(),cz(),kQe()],on:{"key.esc":{target:zn.idle},"key.arrow.left":{actions:fr.raise({type:"walkthrough.step",direction:"previous"})},"key.arrow.up":{actions:fr.raise({type:"walkthrough.step",direction:"previous"})},"key.arrow.right":{actions:fr.raise({type:"walkthrough.step",direction:"next"})},"key.arrow.down":{actions:fr.raise({type:"walkthrough.step",direction:"next"})},"walkthrough.step":{actions:[fr.assign(({context:e,event:r})=>{const{stepId:n}=e.activeWalkthrough,o=e.xyedges.findIndex(l=>l.id===n),i=ta(r.direction==="next"?o+1:o-1,{min:0,max:e.xyedges.length-1});if(i===o)return{};const a=e.xyedges[i].id;return{activeWalkthrough:{stepId:a,parallelPrefix:Z8(a)}}}),Ag(),E0(),Rre()]},"xyflow.edgeClick":{actions:[fr.assign(({event:e,context:r})=>!k1(e.edge.id)||e.edge.id===r.activeWalkthrough?.stepId?{}:{activeWalkthrough:{stepId:e.edge.id,parallelPrefix:Z8(e.edge.id)}}),Ag(),E0(),pz(),Rre()]},"notations.unhighlight":{actions:Ag()},"tag.unhighlight":{actions:Ag()},"update.view":{guard:"is same view",actions:[vz(),Ag()]},"walkthrough.end":{target:zn.idle},"xyflow.paneDblClick":{target:zn.idle}}}),SQe=Qe.createStateConfig({initial:"idle",entry:[fr.spawnChild("mediaPrintActorLogic",{id:"mediaPrint"}),hz(),bre(),xre()],exit:[fc(),fr.stopChild("mediaPrint"),iQe(),oQe(),mre()],states:{idle:bQe,focused:vQe,walkthrough:_Qe,printing:xQe},on:{"navigate.*":{actions:uQe()},"layout.align":{guard:"not readonly",actions:[fz("node"),JZe(),gz(!0)]},"layout.resetEdgeControlPoints":{guard:"not readonly",actions:[fz("edge"),eQe(),gz(!0)]},"layout.resetManualLayout":{guard:"not readonly",actions:[yre(),ure(),gre({op:"reset-manual-layout"})]},"xyflow.resized":{guard:({context:e})=>e.features.enableFitView&&!e.viewportChangedManually,actions:[fc(),c4({delay:200})]},"open.elementDetails":{actions:yz()},"open.relationshipsBrowser":{actions:yz()},"open.relationshipDetails":{actions:yz()},"open.source":{guard:"enabled: OpenSource",actions:fre()},"walkthrough.start":{guard:"is dynamic view",target:zn.walkthrough},"toggle.feature":{actions:[nQe(),hz()]},"update.features":{actions:[pre(),bre(),xre(),hz()]},"xyflow.nodeMouseEnter":{actions:XZe()},"xyflow.nodeMouseLeave":{actions:KZe()},"xyflow.edgeMouseEnter":{actions:lQe()},"xyflow.edgeMouseLeave":{actions:sQe()},"xyflow.edgeDoubleClick":{guard:Bd.and(["not readonly",({event:e})=>!!e.edge.data.controlPoints&&e.edge.data.controlPoints.length>0]),actions:[fz("edge"),WZe(),gz(!0)]},"notations.highlight":{actions:tQe()},"notations.unhighlight":{actions:u4()},"tag.highlight":{actions:rQe()},"tag.unhighlight":{actions:u4()},"open.search":{guard:"enabled: Search",actions:fr.sendTo(({system:e})=>zr(e).searchActorRef,({event:e})=>({type:"open",search:e.search}))},"xyflow.paneClick":{actions:[jg(),dz()]},"xyflow.nodeClick":{actions:[Ap(),Dp()]},"xyflow.edgeClick":{actions:[jg(),pz()]},"xyflow.fitDiagram":{guard:"enabled: FitView",actions:s4()},"xyflow.setViewport":{actions:S0()},"update.view":[{guard:"is another view",target:zn.navigating},{actions:vz()}],"media.print.on":{target:zn.printing}}}),xz="likec4:diagram:toggledFeatures",zre={read(){try{let e=sessionStorage.getItem(xz);return e?JSON.parse(e):null}catch(e){return console.error(`Error reading fromStorage ${xz}:`,e),null}},write(e){return sessionStorage.setItem(xz,JSON.stringify(ry(e,Nq))),e}},EQe=Qe.createMachine({initial:"initializing",context:({input:e})=>({...e,xyedges:[],xynodes:[],features:{...WG},toggledFeatures:zre.read()??{enableReadOnly:!0,enableCompareWithLatest:!1},initialized:{xydata:!1,xyflow:!1},viewportChangedManually:!1,lastOnNavigate:null,lastClickedNode:null,focusedNode:null,autoUnfocusTimer:!1,activeElementDetails:null,viewportBefore:null,viewportOnManualLayout:null,viewportOnAutoLayout:null,navigationHistory:{currentIndex:0,history:[]},viewport:{x:0,y:0,zoom:1},xyflow:null,dynamicViewVariant:e.dynamicViewVariant??(e.view._type==="dynamic"?e.view.variant:"diagram")??"diagram",activeWalkthrough:null}),states:{initializing:fQe,isReady:gQe,ready:SQe,navigating:yQe,final:{type:"final",entry:[mre(),fc(),fr.stopChild("hotkey"),fr.stopChild("overlays"),fr.stopChild("search"),fr.stopChild("mediaPrint"),fr.assign({xyflow:null,xystore:null,xyedges:[],xynodes:[],initialized:{xydata:!1,xyflow:!1}})]}},on:{"update.nodeData":{actions:fr.assign(PZe)},"update.edgeData":{actions:fr.assign(MZe)},"switch.dynamicViewVariant":{guard:({context:e,event:r})=>e.dynamicViewVariant!==r.variant,actions:[YZe(),UZe()]},"update.inputs":{actions:GZe()},"update.view-bounds":{actions:fr.assign(({context:e,event:r})=>({view:{...e.view,bounds:r.bounds}}))},"update.features":{actions:pre()},"trigger.change":{actions:gre()},"emit.onLayoutTypeChange":{actions:QZe()},"xyflow.applyNodeChanges":{actions:fr.assign({xynodes:({context:e,event:r})=>rw(r.changes,e.xynodes)})},"xyflow.applyEdgeChanges":{actions:fr.assign({xyedges:({context:e,event:r})=>nw(r.changes,e.xyedges)})},"xyflow.viewportMoved":{actions:fr.assign(({event:e,context:r})=>({viewportChangedManually:r.viewportChangedManually||e.manually,viewport:e.viewport}))},destroy:{target:".final"}}}),CQe=EQe;function $Qe({view:e,zoomable:r,pannable:n,nodesDraggable:o,nodesSelectable:i,fitViewPadding:a,where:l,children:s,dynamicViewVariant:c}){const d=vr(),u=AZe(e.id),p=vE(CQe.provide({actors:{editorActor:u}}),{id:"diagram",systemId:"diagram",input:{xystore:d,view:e,zoomable:r,pannable:n,fitViewPadding:a,nodesDraggable:o,nodesSelectable:i,where:l,dynamicViewVariant:c}}),f=S.useRef(p);f.current!==p&&(console.warn("DiagramMachine actor instance changed",{context:{previous:f.current.getSnapshot().context,current:p.getSnapshot().context}}),f.current=p);const[m,v]=S.useState(()=>nre(f));S.useEffect(()=>{v(x=>x.ref===f?x:(console.warn("DiagramMachine actorRef changed, creating new DiagramApi instance, this should not happen during the lifetime of the actor"),nre(f)))},[f]);const w=sr();return S.useEffect(()=>p.send({type:"update.features",features:w}),[w,p]),S.useEffect(()=>p.send({type:"update.inputs",inputs:{zoomable:r,where:l,pannable:n,fitViewPadding:a,nodesDraggable:o,nodesSelectable:i}}),[r,l,n,a,p,o,i]),$p(()=>{c&&p.send({type:"switch.dynamicViewVariant",variant:c})},[c,p]),_L(()=>p.send({type:"update.view",view:e,source:"external"}),[p,e]),y.jsx(tBe,{value:p,children:y.jsxs(rBe,{value:m,children:[y.jsx(QS,{children:y.jsx(TQe,{actorRef:p,children:s})}),y.jsx(jQe,{})]})})}const RQe=({context:e})=>{let r=e.toggledFeatures;const n=e.view.drifts!=null&&e.view.drifts.length>0,o=e.features.enableCompareWithLatest&&(r.enableCompareWithLatest??!1)&&ty(e.activeWalkthrough)&&n,i=e.features.enableReadOnly||r.enableReadOnly||!!e.activeWalkthrough||e.dynamicViewVariant==="sequence"&&e.view._type==="dynamic"||o&&e.view._layout==="auto";return(r.enableReadOnly!==i||r.enableCompareWithLatest!==o)&&(r={...r,enableCompareWithLatest:o,enableReadOnly:i}),{toggledFeatures:r,viewId:e.view.id}},zQe=(e,r)=>e.viewId===r.viewId&&Ir(e.toggledFeatures,r.toggledFeatures);function TQe({children:e,actorRef:r}){const{viewId:n,toggledFeatures:o}=pn(r,RQe,zQe),i=Fo().findView(n);return y.jsx(GS.Provider,{value:i,children:y.jsx(gp,{overrides:o,children:e})})}const jQe=S.memo(()=>{const e=Mt(),{onNavigateTo:r,onOpenSource:n,onLayoutTypeChange:o,handlersRef:i}=mg();ji("openSource",({params:l})=>n?.(l)),ji("navigateTo",({viewId:l})=>r?.(l)),ji("onLayoutTypeChange",({layoutType:l})=>{o?.(l)}),ji("initialized",({instance:l})=>{try{i.current.onInitialized?.({diagram:e,xyflow:l})}catch(s){console.error(s)}},{once:!0});const a=pa(l=>l.toggledFeatures,Ir);return $p(()=>{zre.write(N$e(a,ty))},[a]),null}),h4={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 i=n<.5?n*(1+r):n+r-n*r,a=2*n-i;switch(o){case"r":return h4.hue2rgb(a,i,e+1/3)*255;case"g":return h4.hue2rgb(a,i,e)*255;case"b":return h4.hue2rgb(a,i,e-1/3)*255}},rgb2hsl:({r:e,g:r,b:n},o)=>{e/=255,r/=255,n/=255;const i=Math.max(e,r,n),a=Math.min(e,r,n),l=(i+a)/2;if(o==="l")return l*100;if(i===a)return 0;const s=i-a,c=l>.5?s/(2-i-a):s/(i+a);if(o==="s")return c*100;switch(i){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},DQe={dec2hex:e=>{const r=Math.round(e).toString(16);return r.length>1?r:`0${r}`}},Tt={channel:h4,lang:AQe,unit:DQe},Ld={};for(let e=0;e<=255;e++)Ld[e]=Tt.unit.dec2hex(e);const $o={ALL:0,RGB:1,HSL:2};class PQe{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 MQe{constructor(r,n){this.color=n,this.changed=!1,this.data=r,this.type=new PQe}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:i}=r;n===void 0&&(r.h=Tt.channel.rgb2hsl(r,"h")),o===void 0&&(r.s=Tt.channel.rgb2hsl(r,"s")),i===void 0&&(r.l=Tt.channel.rgb2hsl(r,"l"))}_ensureRGB(){const r=this.data,{r:n,g:o,b:i}=r;n===void 0&&(r.r=Tt.channel.hsl2rgb(r,"r")),o===void 0&&(r.g=Tt.channel.hsl2rgb(r,"g")),i===void 0&&(r.b=Tt.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(),Tt.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(),Tt.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(),Tt.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(),Tt.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(),Tt.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(),Tt.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 f4=new MQe({r:0,g:0,b:0,a:0},"transparent"),Dg={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:e=>{if(e.charCodeAt(0)!==35)return;const r=e.match(Dg.re);if(!r)return;const n=r[1],o=parseInt(n,16),i=n.length,a=i%4===0,l=i>4,s=l?1:17,c=l?8:4,d=a?0:-1,u=l?255:15;return f4.set({r:(o>>c*(d+3)&u)*s,g:(o>>c*(d+2)&u)*s,b:(o>>c*(d+1)&u)*s,a:a?(o&u)*s/255:1},e)},stringify:e=>{const{r,g:n,b:o,a:i}=e;return i<1?`#${Ld[Math.round(r)]}${Ld[Math.round(n)]}${Ld[Math.round(o)]}${Ld[Math.round(i*255)]}`:`#${Ld[Math.round(r)]}${Ld[Math.round(n)]}${Ld[Math.round(o)]}`}},Pp={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(Pp.hueRe);if(r){const[,n,o]=r;switch(o){case"grad":return Tt.channel.clamp.h(parseFloat(n)*.9);case"rad":return Tt.channel.clamp.h(parseFloat(n)*180/Math.PI);case"turn":return Tt.channel.clamp.h(parseFloat(n)*360)}}return Tt.channel.clamp.h(parseFloat(e))},parse:e=>{const r=e.charCodeAt(0);if(r!==104&&r!==72)return;const n=e.match(Pp.re);if(!n)return;const[,o,i,a,l,s]=n;return f4.set({h:Pp._hue2deg(o),s:Tt.channel.clamp.s(parseFloat(i)),l:Tt.channel.clamp.l(parseFloat(a)),a:l?Tt.channel.clamp.a(s?parseFloat(l)/100:parseFloat(l)):1},e)},stringify:e=>{const{h:r,s:n,l:o,a:i}=e;return i<1?`hsla(${Tt.lang.round(r)}, ${Tt.lang.round(n)}%, ${Tt.lang.round(o)}%, ${i})`:`hsl(${Tt.lang.round(r)}, ${Tt.lang.round(n)}%, ${Tt.lang.round(o)}%)`}},$0={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=$0.colors[e];if(r)return Dg.parse(r)},stringify:e=>{const r=Dg.stringify(e);for(const n in $0.colors)if($0.colors[n]===r)return n}},R0={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(R0.re);if(!n)return;const[,o,i,a,l,s,c,d,u]=n;return f4.set({r:Tt.channel.clamp.r(i?parseFloat(o)*2.55:parseFloat(o)),g:Tt.channel.clamp.g(l?parseFloat(a)*2.55:parseFloat(a)),b:Tt.channel.clamp.b(c?parseFloat(s)*2.55:parseFloat(s)),a:d?Tt.channel.clamp.a(u?parseFloat(d)/100:parseFloat(d)):1},e)},stringify:e=>{const{r,g:n,b:o,a:i}=e;return i<1?`rgba(${Tt.lang.round(r)}, ${Tt.lang.round(n)}, ${Tt.lang.round(o)}, ${Tt.lang.round(i)})`:`rgb(${Tt.lang.round(r)}, ${Tt.lang.round(n)}, ${Tt.lang.round(o)})`}},fl={format:{keyword:$0,hex:Dg,rgb:R0,rgba:R0,hsl:Pp,hsla:Pp},parse:e=>{if(typeof e!="string")return e;const r=Dg.parse(e)||R0.parse(e)||Pp.parse(e)||$0.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?Pp.stringify(e):e.a<1||!Number.isInteger(e.r)||!Number.isInteger(e.g)||!Number.isInteger(e.b)?R0.stringify(e):Dg.stringify(e)},Tre=(e,r)=>{const n=fl.parse(e);for(const o in r)n[o]=Tt.channel.clamp[o](r[o]);return fl.stringify(n)},NQe=(e,r,n=0,o=1)=>{if(typeof e!="number")return Tre(e,{a:r});const i=f4.set({r:Tt.channel.clamp.r(e),g:Tt.channel.clamp.g(r),b:Tt.channel.clamp.b(n),a:Tt.channel.clamp.a(o)});return fl.stringify(i)},jre=e=>fl.format.hex.stringify(fl.parse(e)),Are=e=>fl.format.rgba.stringify(fl.parse(e)),BQe=(e,r)=>{const n=fl.parse(e),o={};for(const i in r)r[i]&&(o[i]=n[i]+r[i]);return Tre(e,o)},Dre=(e,r,n=50)=>{const{r:o,g:i,b:a,a:l}=fl.parse(e),{r:s,g:c,b:d,a:u}=fl.parse(r),p=n/100,f=p*2-1,m=l-u,v=((f*m===-1?f:(f+m)/(1+f*m))+1)/2,w=1-v,x=o*v+s*w,k=i*v+c*w,C=a*v+d*w,_=l*p+u*(1-p);return NQe(x,k,C,_)},Pre=(e,r)=>{const n=fl.parse(e),o={},i=(a,l,s)=>l>0?(s-a)*l/100:a*l/100;for(const a in r)o[a]=i(n[a],r[a],Tt.channel.max[a]);return BQe(e,o)},IQe=e=>`[data-mantine-color-scheme="${e}"]`,Mre=IQe("dark"),OQe=5,LQe=(e,r,n,o)=>{const i=s=>jre(Pre(s,{l:-22-5*o,s:-10-6*o})),a=s=>jre(Pre(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: ${a(n.elements.fill)}; --likec4-palette-stroke: ${a(n.elements.stroke)}; } - `.trim()};function prt(e,r,n){const{elements:o,relationships:a}=n,i=`:where(${e} [data-likec4-color=${r}])`;return[` -${i} { +${Mre} ${l} { + --likec4-palette-fill: ${i(n.elements.fill)}; + --likec4-palette-stroke: ${i(n.elements.stroke)}; +} + `.trim()};function FQe(e,r,n){const{elements:o,relationships:i}=n,a=`:where(${e} [data-likec4-color=${r}])`;return[` +${a} { --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}; + --likec4-palette-relation-stroke: ${i.line}; + --likec4-palette-relation-label: ${i.label}; + --likec4-palette-relation-label-bg: ${i.labelBg}; + --likec4-palette-relation-stroke-selected: ${Are(Dre(i.line,"black",85))}; } -${crt} ${i} { - --likec4-palette-relation-stroke-selected: ${vne(xne(a.line,"black",85))}; -} -${_ne} ${i} { - --likec4-palette-relation-stroke-selected: ${vne(xne(a.line,"white",70))}; +${Mre} ${a} { + --likec4-palette-relation-stroke-selected: ${Are(Dre(i.line,"white",70))}; } - `.trim(),...VNe(1,urt+1).map(s=>drt(e,r,n,s))].join(` -`)}function hrt(e,r){return En(r.colors,M9(),Sn(([n,o])=>prt(e,n,o)),qq(` -`))}const frt=E.memo(({id:e})=>{const r=`#${e}`,n=yp()?.(),{theme:o}=cre(),a=hrt(r,o);return y.jsx("style",{type:"text/css","data-likec4-colors":e,dangerouslySetInnerHTML:{__html:a},nonce:n})});function Ene({children:e}){const r=E.useContext(a2);return E.useEffect(()=>{r||console.warn("LikeC4Diagram must be a child of MantineProvider")},[]),r?y.jsx(y.Fragment,{children:e}):y.jsx(i7,{defaultColorScheme:"auto",children:e})}Ene.displayName="EnsureMantine";const NR=({reducedMotion:e="user",children:r})=>{const n=yp()?.();return y.jsx(UVe,{features:FUe,strict:!0,children:y.jsx(GVe,{reducedMotion:e,...n&&{nonce:n},children:r})})};function Sne({onCanvasClick:e,onCanvasContextMenu:r,onCanvasDblClick:n,onEdgeClick:o,onChange:a,onEdgeContextMenu:i,onNavigateTo:s,onNodeClick:l,onNodeContextMenu:c,onOpenSource:u,onBurgerMenuClick:d,onLayoutTypeChange:h,onInitialized:f,view:g,className:b,readonly:x=!0,controls:w=!x,fitView:k=!0,fitViewPadding:C=w?Uw.withControls:Uw.default,pannable:_=!0,zoomable:T=!0,background:A="dots",enableElementTags:R=!1,enableFocusMode:D=!1,enableElementDetails:N=!1,enableRelationshipDetails:M=!1,enableRelationshipBrowser:O=!1,enableCompareWithLatest:F=!!h,nodesDraggable:L=!x,nodesSelectable:U=!x||D||!!s||!!l,enableNotations:P=!1,showNavigationButtons:V=!!s,enableDynamicViewWalkthrough:I=!1,dynamicViewVariant:H,enableSearch:q=!1,initialWidth:Z,initialHeight:W,reduceGraphics:G="auto",renderIcon:K,where:j,reactFlowProps:Y,renderNodes:Q,children:J}){const ie=UG(),ne=E.useRef(null),re=Ire(g,H),ge=mrt(C);ne.current==null&&(ne.current={defaultEdges:[],defaultNodes:[],initialWidth:Z??re.width,initialHeight:W??re.height,initialFitViewOptions:{maxZoom:zT,minZoom:_s,padding:ge},initialMaxZoom:zT,initialMinZoom:_s});const De=G==="auto"?_&&(re.width??1)*(re.height??1)>6e6&&g.nodes.some(he=>he.children?.length>0):G;return y.jsx(Ene,{children:y.jsx(NR,{...De&&{reducedMotion:"always"},children:y.jsx($Ee,{value:K??null,children:y.jsx(Np,{features:{enableFitView:k,enableReadOnly:x,enableFocusMode:D,enableNavigateTo:!!s,enableElementDetails:N,enableRelationshipDetails:M,enableRelationshipBrowser:O,enableSearch:q,enableNavigationButtons:V&&!!s,enableDynamicViewWalkthrough:g._type==="dynamic"&&I,enableNotations:P,enableVscode:!!u,enableControls:w,enableElementTags:R,enableCompareWithLatest:F&&!!h},children:y.jsxs(HKe,{handlers:{onCanvasClick:e,onCanvasContextMenu:r,onCanvasDblClick:n,onEdgeClick:o,onChange:a,onEdgeContextMenu:i,onNavigateTo:s,onNodeClick:l,onNodeContextMenu:c,onOpenSource:u,onBurgerMenuClick:d,onInitialized:f,onLayoutTypeChange:h},children:[y.jsx(frt,{id:ie}),y.jsx(oLe,{rootSelector:`#${ie}`,children:y.jsx(yje,{id:ie,className:b,reduceGraphics:De,children:y.jsx(O3,{fitView:k,...ne.current,children:y.jsxs(Ktt,{view:g,zoomable:T,pannable:_,fitViewPadding:ge,nodesDraggable:L,nodesSelectable:U,where:j??null,dynamicViewVariant:H,children:[y.jsx(met,{background:A,reactFlowProps:Y,renderNodes:Q,children:J}),y.jsx(Kte,{})]})})})})]})})})})})}const Cne=e=>typeof e=="number"?`${e}px`:e;function mrt(e){return jF(()=>T0(e)?zNe(e,Cne):Cne(e),[e],grt)}const grt=([e],[r])=>e===r||T0(e)&&T0(r)&&e.bottom==r.bottom&&e.left==r.left&&e.right==r.right&&e.top==r.top;function yrt({children:e,likec4model:r}){return y.jsx(K0.Provider,{value:r,children:e})}const DR=({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})}),brt=({viewId:e})=>y.jsxs(DR,{children:["View ",y.jsx("code",{children:e})," not found"]}),vrt=e=>{throw new Error("LikeC4View is not available SSR")};var Tne={exports:{}},$R,Ane;function xrt(){if(Ane)return $R;Ane=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return $R=e,$R}var MR,Rne;function wrt(){if(Rne)return MR;Rne=1;var e=xrt();function r(){}function n(){}return n.resetWarningCache=r,MR=function(){function o(s,l,c,u,d,h){if(h!==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},MR}var Nne;function krt(){return Nne||(Nne=1,Tne.exports=wrt()()),Tne.exports}var _rt=krt();const Rs=_9(_rt);var Ert=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Dne(e,r){return e(r={exports:{}},r.exports),r.exports}var Srt=Dne((function(e){(function(r){var n=function(w,k,C){if(!c(k)||d(k)||h(k)||f(k)||l(k))return k;var _,T=0,A=0;if(u(k))for(_=[],A=k.length;Te.length)&&(r=e.length);for(var n=0,o=new Array(r);n=0||(a[n]=e[n]);return a},Pne=function(e,r){if(e==null)return{};var n,o,a=Drt(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},$rt=E.createContext(null);function zne(e){var r=e.children,n=r===void 0?"":r,o=Pne(e,["children"]);return typeof n!="string"&&(n=vrt()),dn.createElement("template",Mne({},o,{dangerouslySetInnerHTML:{__html:n}}))}function Ine(e){var r=e.root,n=e.children;return Ki.createPortal(n===void 0?null:n,r)}function Mrt(e){var r=E.forwardRef((function(n,o){var a,i,s=n.mode,l=s===void 0?"open":s,c=n.delegatesFocus,u=c!==void 0&&c,d=n.styleSheets,h=d===void 0?[]:d,f=n.ssr,g=f!==void 0&&f,b=n.children,x=Pne(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=Nrt(k,2),_=C[0],T=C[1],A="node_".concat(l).concat(u);return E.useLayoutEffect((function(){if(w.current)try{if(typeof o=="function"&&o(w.current),g){var R=w.current.shadowRoot;return void T(R)}var D=w.current.attachShadow({mode:l,delegatesFocus:u});h.length>0&&(D.adoptedStyleSheets=h),T(D)}catch(N){(function(M){var O=M.error,F=M.styleSheets,L=M.root;switch(O.name){case"NotSupportedError":F.length>0&&(L.adoptedStyleSheets=F);break;default:throw O}})({error:N,styleSheets:h,root:_})}}),[o,w,h]),dn.createElement(dn.Fragment,null,dn.createElement(e.tag,Mne({key:A,ref:w},x),(_||g)&&dn.createElement($rt.Provider,{value:_},g?dn.createElement(zne,{shadowroot:l,shadowrootmode:l},e.render({root:_,ssr:g,children:b})):dn.createElement(Ine,{root:_},e.render({root:_,ssr:g,children:b})))))}));return r.propTypes={mode:Rs.oneOf(["open","closed"]),delegatesFocus:Rs.bool,styleSheets:Rs.arrayOf(Rs.instanceOf(globalThis.CSSStyleSheet)),ssr:Rs.bool,children:Rs.node},r}zne.propTypes={children:Rs.oneOfType([Rs.string,Rs.node])},Ine.propTypes={root:Rs.object.isRequired,children:Rs.node};var PR=new Map;function Prt(){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=Srt(a,{separator:"-"}),s="".concat(r,"-").concat(i);return PR.has(s)||PR.set(s,Mrt({tag:i,render:n})),PR.get(s)}})}var zrt=Prt();const Irt='@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}',One=`@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-size=xs] .m_6c018570[data-with-right-section]:has([data-combined-clear-section]){--input-padding-inline-end: calc(2.5625rem * var(--mantine-scale))}.m_6c018570[data-size=sm] .m_6c018570[data-with-right-section]:has([data-combined-clear-section]){--input-padding-inline-end: calc(3.125rem * var(--mantine-scale))}.m_6c018570[data-size=md] .m_6c018570[data-with-right-section]:has([data-combined-clear-section]){--input-padding-inline-end: calc(3.75rem * var(--mantine-scale))}.m_6c018570[data-size=lg] .m_6c018570[data-with-right-section]:has([data-combined-clear-section]){--input-padding-inline-end: calc(4.5rem * var(--mantine-scale))}.m_6c018570[data-size=xl] .m_6c018570[data-with-right-section]:has([data-combined-clear-section]){--input-padding-inline-end: calc(5.5625rem * var(--mantine-scale))}[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_6c018570[data-size=xs] .m_82577fc2[data-position=right]:has([data-combined-clear-section]){--section-size: calc(2.5625rem * var(--mantine-scale))}.m_6c018570[data-size=sm] .m_82577fc2[data-position=right]:has([data-combined-clear-section]){--section-size: calc(3.125rem * var(--mantine-scale))}.m_6c018570[data-size=md] .m_82577fc2[data-position=right]:has([data-combined-clear-section]){--section-size: calc(3.75rem * var(--mantine-scale))}.m_6c018570[data-size=lg] .m_82577fc2[data-position=right]:has([data-combined-clear-section]){--section-size: calc(4.5rem * var(--mantine-scale))}.m_6c018570[data-size=xl] .m_82577fc2[data-position=right]:has([data-combined-clear-section]){--section-size: calc(5.5625rem * var(--mantine-scale))}.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)}:where([data-scroll-locked]) .m_9cdde9a{visibility:var(--app-shell-aside-scroll-locked-visibility)}.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,margin-inline-start,margin-inline-end;background-color:var(--mantine-color-body)}:where([data-layout=alt]) .m_3b16f56b,:where([data-layout=alt]) .m_3840c879{margin-inline-start:var(--app-shell-navbar-offset, 0rem);margin-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)}.m_5e5256ee:where([data-variant=filled]){--checkbox-icon-color: var(--mantine-color-white)}.m_5e5256ee:where([data-variant=outline]){--checkbox-icon-color: var(--checkbox-color)}.m_5e5256ee{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-icon-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)}.m_bf2d988c:where([data-variant=filled]){--checkbox-icon-color: var(--mantine-color-white)}.m_bf2d988c:where([data-variant=outline]){--checkbox-icon-color: var(--checkbox-color)}.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-icon-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(.5625rem * 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(.5125rem * 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-marker-gap: var(--mantine-spacing-lg);list-style-position:outside;font-size:var(--list-fz);line-height:var(--list-lh);margin:0;padding:0;padding-inline-start:var(--list-marker-gap)}.m_abbac491[data-type=none]{--list-marker-gap: 0}.m_abbac491:where([data-with-padding]){padding-inline-start:calc(var(--list-marker-gap) + var(--mantine-spacing-md))}.m_abb6bec2{white-space:normal;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:var(--sizes-100\\%);height:var(--sizes-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;--sizes-100\\%: 100%;--sizes-full: 100%;--sizes-breakpoint-xs: 36em;--sizes-breakpoint-sm: 48em;--sizes-breakpoint-md: 62em;--sizes-breakpoint-lg: 75em;--sizes-breakpoint-xl: 88em;--borders-none: none;--borders-transparent: 0px solid transparent;--borders-default: 1px solid var(--mantine-color-default-border);--radii-0: 0px;--radii-xs: .125rem;--radii-sm: .25rem;--radii-md: .5rem;--radii-lg: 1rem;--radii-xl: 2rem;--font-weights-normal: 400;--font-weights-medium: 500;--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%);--z-index-0: 0;--z-index-1: 1;--z-index--1: -1;--z-index-likec4-panel: 100;--z-index-likec4-dropdown: 200;--breakpoints-xs: 36em;--breakpoints-sm: 48em;--breakpoints-md: 62em;--breakpoints-lg: 75em;--breakpoints-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(--mantine-color-body);--colors-likec4-panel-border: transparent;--colors-likec4-panel-text: color-mix(in oklab, var(--mantine-color-text) 85%, transparent 15%);--colors-likec4-panel-text-dimmed: var(--mantine-color-dimmed);--colors-likec4-panel-action: color-mix(in oklab, var(--mantine-color-text) 90%, transparent 10%);--colors-likec4-panel-action-disabled: var(--mantine-color-dimmed);--colors-likec4-panel-action-hover: var(--mantine-color-bright);--colors-likec4-panel-action-bg: var(--mantine-color-gray-1);--colors-likec4-panel-action-bg-hover: var(--mantine-color-gray-2);--colors-likec4-panel-action-warning: var(--mantine-color-orange-6);--colors-likec4-panel-action-warning-hover: var(--mantine-color-orange-7);--colors-likec4-panel-action-warning-bg: color-mix(in oklab, var(--mantine-color-orange-1) 90%, transparent 10%);--colors-likec4-panel-action-warning-bg-hover: color-mix(in oklab, var(--mantine-color-orange-3) 70%, transparent 30%);--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 oklab, var(--mantine-color-default-border) 50%, transparent 50%);--colors-likec4-compare-latest: var(--mantine-color-green-6)}[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 oklab, var(--mantine-color-dark-4) 70%, transparent 30%);--colors-likec4-mix-color: white;--colors-likec4-panel-bg: var(--mantine-color-dark-6);--colors-likec4-panel-action-bg: color-mix(in oklab, var(--mantine-color-dark-7) 70%, transparent 30%);--colors-likec4-panel-action-bg-hover: var(--mantine-color-dark-8);--colors-likec4-panel-action-warning-hover: var(--mantine-color-orange-5);--colors-likec4-panel-action-warning-bg: color-mix(in oklab, var(--mantine-color-orange-9) 10%, transparent 90%);--colors-likec4-panel-action-warning-bg-hover: color-mix(in oklab, var(--mantine-color-orange-9) 20%, transparent 80%);--colors-likec4-dropdown-bg: var(--mantine-color-dark-6);--colors-likec4-compare-manual: var(--mantine-color-orange-6);--colors-likec4-compare-manual-outline: var(--mantine-color-orange-6) }[data-mantine-color-scheme=light]{--colors-likec4-background-pattern: var(--mantine-color-gray-4);--colors-likec4-mix-color: black;--colors-likec4-panel-border: color-mix(in oklab, var(--mantine-color-default-border) 30%, transparent 70%);--colors-likec4-overlay-backdrop: rgb(15 15 15);--colors-likec4-compare-manual: var(--mantine-color-orange-8);--colors-likec4-compare-manual-outline: var(--mantine-color-orange-8) }@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:var(--sizes-100\\%);height:var(--sizes-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:var(--sizes-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:var(--sizes-100\\%);margin-bottom:var(--typography-spacing)}.likec4-navigation-panel-icon{color:var(--colors-likec4-panel-action)}.likec4-navigation-panel-icon:is(:disabled,[disabled],[data-disabled],[aria-disabled=true]){color:var(--colors-likec4-panel-action-disabled);opacity:.5}.likec4-navigation-panel-icon:not(:is(:disabled,[disabled],[data-disabled])):is(:hover,[data-hover]){color:var(--colors-likec4-panel-action-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:var(--sizes-100\\%);height:var(--sizes-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:var(--sizes-100\\%);height:auto;max-height:var(--sizes-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:var(--sizes-100\\%);max-width:var(--sizes-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:var(--sizes-100\\%);height:auto;max-height:var(--sizes-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:var(--sizes-100\\%);max-width:var(--sizes-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:var(--sizes-100\\%);height:var(--sizes-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-bg-hover)}.likec4-navigation-panel-icon--variant_filled{background-color:var(--colors-likec4-panel-action-bg)}.likec4-navigation-panel-icon--variant_filled:not(:is(:disabled,[disabled],[data-disabled])):is(:hover,[data-hover]){background-color:var(--colors-likec4-panel-action-bg-hover)}.likec4-navigation-panel-icon--type_warning{color:var(--colors-likec4-panel-action-warning)}.likec4-navigation-panel-icon--type_warning:is(:hover,[data-hover]){color:var(--colors-likec4-panel-action-warning-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)}.action-btn--size_sm{--ai-size: var(--ai-size-sm)}.action-btn--radius_sm{--ai-radius: var(--mantine-radius-sm)}.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:var(--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;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:var(--sizes-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:var(--sizes-100\\%)}.likec4-edge-label__root--pointerEvents_all{pointer-events:all}.likec4-edge-label__root--cursor_pointer{cursor:pointer}.likec4-edge-label__root--cursor_default{cursor:default}.likec4-edge-label__root--pointerEvents_none{pointer-events:none}.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{padding:var(--spacing-1);border:1px solid var(--colors-likec4-panel-border);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-2);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)}.textStyle_xs{font-size:.75rem;line-height:1rem}.layerStyle_likec4\\.panel\\.action{border:var(--borders-transparent);border-radius:var(--radii-sm);color:var(--colors-likec4-panel-action);cursor:pointer;background-color:var(--colors-likec4-panel-action-bg)}.layerStyle_likec4\\.panel\\.action:not(:is(:disabled,[disabled],[data-disabled])):is(:hover,[data-hover]){color:var(--colors-likec4-panel-action-hover);background-color:var(--colors-likec4-panel-action-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{border-radius:var(--radii-md);padding-inline:var(--spacing-2);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)}.m_0{margin:var(--spacing-0)}.p_0{padding:var(--spacing-0)}.bg_likec4\\.overlay\\.body{background:var(--colors-likec4-overlay-body)}.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}.bg_\\[transparent\\]{background:var(--colors-transparent)}.p_1{padding:var(--spacing-1)}.p_4{padding:var(--spacing-4)}.bd_default{border:var(--borders-default)}.p_0\\.5{padding:var(--spacing-0\\.5)}.m_xs{margin:var(--spacing-xs)}.p_md{padding:var(--spacing-md)}.p_1\\.5{padding:var(--spacing-1\\.5)}.p_8{padding:var(--spacing-8)}.p_xxs{padding:var(--spacing-xxs)}.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_xs{padding:var(--spacing-xs)}.p_\\[4px_8px\\]{padding:4px 8px}.p_\\[1px_4px\\]{padding:1px 4px}.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}.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}.p_2{padding:var(--spacing-2)}.bd_3px_dashed{border:3px dashed}.gap_20{gap:20px}.bdr_sm{border-radius:var(--radii-sm)}.bd-w_3{border-width:3px}.bd-c_likec4\\.overlay\\.border{border-color:var(--colors-likec4-overlay-border)}.ring_none{outline:var(--borders-none)}.gap_lg{gap:var(--spacing-lg)}.gap_md{gap:var(--spacing-md)}.gap_sm{gap:var(--spacing-sm)}.flex_1{flex:1 1 0%}.transition_fast{transition:all var(--durations-fast) var(--easings-in-out)}.td_none{text-decoration:none}.bd-c_mantine\\.colors\\.defaultBorder{border-color:var(--colors-mantine-colors-default-border)}.gap_xs{gap:var(--spacing-xs)}.gap_xxs{gap:var(--spacing-xxs)}.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}.bd-w_4{border-width:4px}.px_4{padding-inline:var(--spacing-4)}.py_1{padding-block:var(--spacing-1)}.gap_\\[1px\\]{gap:1px}.ov_auto{overflow:auto}.ovs-b_contain{overscroll-behavior:contain}.ov_visible{overflow:visible}.px_xxs{padding-inline:var(--spacing-xxs)}.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}.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_\\[12px_16px\\]{gap:12px 16px}.bd-c_mantine\\.colors\\.gray\\[3\\]{border-color:var(--colors-mantine-colors-gray\\[3\\])}.flex_0_1_auto{flex:0 1 auto}.transition_all_150ms_ease{transition:all .15s ease}.bdr_xs{border-radius:var(--radii-xs)}.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)!important}.bdr_4px{border-radius:4px}.mx_auto{margin-inline:auto}.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))}.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}.z_999{z-index:999}.c_gray{color:gray}.pos_fixed{position:fixed}.bx-sh_xl{box-shadow:var(--shadows-xl)}.d_flex{display:flex}.ai_flex-start{align-items:flex-start}.flex-d_row{flex-direction:row}.flex-wrap_nowrap{flex-wrap:nowrap}.ai_center{align-items:center}.c_red{color:red}.ai_stretch{align-items:stretch}.flex-d_column{flex-direction:column}.c_teal{color:teal}.op_1{opacity:1}.op_0\\.45{opacity:.45}.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}.pointer-events_none{pointer-events:none}.main-axis_4{main-axis:4px}.pos_bottom-start{position:bottom-start}.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\\])}.bg-c_likec4\\.panel\\.action\\.warning\\.bg{background-color:var(--colors-likec4-panel-action-warning-bg)}.c_likec4\\.panel\\.action{color:var(--colors-likec4-panel-action)}.trunc_true{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c_likec4\\.panel\\.text\\.dimmed{color:var(--colors-likec4-panel-text-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:var(--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)}.c_mantine\\.colors\\.dimmed{color:var(--colors-mantine-colors-dimmed)}.white-space_nowrap{white-space:nowrap}.white-space-collapse_preserve-breaks{white-space-collapse:preserve-breaks}.fs_xs{font-size:var(--font-sizes-xs)}.fw_medium{font-weight:var(--font-weights-medium)}.trf_translateY\\(-4px\\){transform:translateY(-4px)}.c_mantine\\.colors\\.gray\\[9\\]{color:var(--colors-mantine-colors-gray\\[9\\])}.bx-sh_lg{box-shadow:var(--shadows-lg)}.c_likec4\\.panel\\.text{color:var(--colors-likec4-panel-text)}.c_orange{color:orange}.c_green{color:green}.pos_bottom-end{position:bottom-end}.op_0\\.8{opacity:.8}.op_0\\.5{opacity:.5}.me_0\\.5{margin-inline-end:var(--spacing-0\\.5)}.cross-axis_-22{cross-axis:-22px}.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}.main-axis_10{main-axis:10px}.op_0\\.6{opacity:.6}.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}.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}.grid-ar_min-content{grid-auto-rows:min-content}.white-space_pre-wrap{white-space:pre-wrap}.tov_unset{text-overflow:unset}.tov_ellipsis{text-overflow:ellipsis}.wb_break-word{word-break:break-word}.wb_normal{word-break:normal}.bg-c_mantine\\.colors\\.white{background-color:var(--colors-mantine-colors-white)}.jc_flex-end{justify-content:flex-end}.c_mantine\\.colors\\.gray\\[6\\]{color:var(--colors-mantine-colors-gray\\[6\\])}.fw_700{font-weight:700}.justify-self_stretch{justify-self:stretch}.as_start{align-self:start}.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\\.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}.top_4{top:var(--spacing-4)}.right_4{right:var(--spacing-4)}.top_10{top:var(--spacing-10)}.left_10{left:var(--spacing-10)}.w_\\[calc\\(100vw_-_\\(\\{spacing\\.10\\}_\\*_2\\)\\)\\]{width:calc(100vw - (var(--spacing-10) * 2))}.h_max-content{height:max-content}.max-h_\\[calc\\(100vh_-_\\(\\{spacing\\.10\\}_\\*_3\\)\\)\\]{max-height:calc(100vh - (var(--spacing-10) * 3))}.mt_md{margin-top:var(--spacing-md)}.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)}.w_100\\%{width:var(--sizes-100\\%)}.pr_2\\.5{padding-right:var(--spacing-2\\.5)}.top_0{top:var(--spacing-0)}.left_0{left:var(--spacing-0)}.max-w_calc\\(100vw\\){max-width:100vw}.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)}.h_100\\%{height:var(--sizes-100\\%)}.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)}.pr_md{padding-right: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)}.w_full{width:var(--sizes-full)}.h_full{height:var(--sizes-full)}.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\\])}.bdr-bl_sm{border-bottom-left-radius:var(--radii-sm)}.bdr-br_sm{border-bottom-right-radius:var(--radii-sm)}.pl_3{padding-left:var(--spacing-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)}.mt_4{margin-top:var(--spacing-4)}.mt_xs{margin-top:var(--spacing-xs)}.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)}.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)}.w_300{width:300px}.min-w_0{min-width:0}.min-h_32px{min-height:32px}.max-w_min\\(200px\\,_100\\%\\){max-width:min(200px,100%)}.min-w_60px{min-width:60px}.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)}.backdrop\\:bg_\\[color-mix\\(in_oklab\\,_\\{colors\\.likec4\\.overlay\\.backdrop\\}_60\\%\\,_transparent\\)\\]::backdrop{background:color-mix(in oklab,var(--colors-likec4-overlay-backdrop) 60%,transparent)}[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\\])}[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([data-likec4-selected=true],[data-likec4-hovered=true]) .\\[\\:where\\(\\[data-likec4-selected\\=\\'true\\'\\]\\,_\\[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}.backdrop\\:cursor_zoom-out::backdrop{cursor:zoom-out}.backdrop\\:bkdp_blur\\(18px\\)::backdrop{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.\\[\\&\\: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}:where(.react-flow__node,.react-flow__edge):is(.selectable) .whenSelectable\\:pointer-events_all{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\\:bg-c_mantine\\.colors\\.dark\\[9\\]{background-color:var(--colors-mantine-colors-dark\\[9\\])}[data-mantine-color-scheme=dark] .dark\\:c_mantine\\.colors\\.text{color:var(--colors-mantine-colors-text)}[data-mantine-color-scheme=dark] .dark\\:c_mantine\\.colors\\.dark\\[2\\]{color:var(--colors-mantine-colors-dark\\[2\\])}[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\\:pos_absolute:before{position:absolute}.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([data-likec4-selected=true],[data-likec4-hovered=true]) .\\[\\:where\\(\\[data-likec4-selected\\=\\'true\\'\\]\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:vis_visible{visibility:visible}:where([data-likec4-selected=true],[data-likec4-hovered=true]) .\\[\\:where\\(\\[data-likec4-selected\\=\\'true\\'\\]\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:trs-dly_50ms{transition-delay:50ms}:where([data-likec4-selected=true],[data-likec4-hovered=true]) .\\[\\:where\\(\\[data-likec4-selected\\=\\'true\\'\\]\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:fill-opacity_1{fill-opacity:1}:where([data-likec4-selected=true],[data-likec4-hovered=true]) .\\[\\:where\\(\\[data-likec4-selected\\=\\'true\\'\\]\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:stk-w_12{stroke-width:12}.\\[\\&_\\*\\]\\:cursor_grabbing\\! *,.\\[\\&_\\.react-flow__edge-interaction\\]\\:cursor_grabbing\\! .react-flow__edge-interaction{cursor:grabbing!important}.\\[\\&_\\+_\\.likec4-element-shape\\]\\:ring-c_likec4\\.compare\\.manual\\.outline+.likec4-element-shape{outline-color:var(--colors-likec4-compare-manual-outline)}.\\[\\&_\\+_\\.likec4-element-shape\\]\\:ring-w_2px+.likec4-element-shape{outline-width:2px}.\\[\\&_\\+_\\.likec4-element-shape\\]\\:outline-style_solid+.likec4-element-shape{outline-style:solid}.\\[\\&_\\+_\\.likec4-element-shape\\]\\:ring-o_1+.likec4-element-shape{outline-offset:var(--spacing-1)}[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:var(--sizes-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)}: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:var(--sizes-100\\%)}.\\[\\&_\\:where\\(svg\\,_img\\)\\]\\:h_auto :where(svg,img){height:auto}.\\[\\&_\\:where\\(svg\\,_img\\)\\]\\:max-h_100\\% :where(svg,img){max-height:var(--sizes-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:var(--sizes-100\\%)}.\\[\\&_\\.mantine-ScrollArea-root\\]\\:h_100\\% .mantine-ScrollArea-root{height:var(--sizes-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:var(--sizes-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:var(--sizes-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\\])}.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\\:bg-c_likec4\\.panel\\.action\\.warning\\.bg\\.hover:is(:hover,[data-hover]){background-color:var(--colors-likec4-panel-action-warning-bg-hover)}.hover\\:c_likec4\\.panel\\.action\\.hover:is(:hover,[data-hover]){color:var(--colors-likec4-panel-action-hover)}.hover\\:c_likec4\\.panel\\.action:is(:hover,[data-hover]){color:var(--colors-likec4-panel-action)}.hover\\:trs-dly_0s:is(:hover,[data-hover]){transition-delay:0s}.hover\\:bg-c_likec4\\.panel\\.action\\.bg\\.hover:is(:hover,[data-hover]){background-color:var(--colors-likec4-panel-action-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)}.hover\\:c_mantine\\.colors\\.primary\\[6\\]:is(:hover,[data-hover]){color:var(--colors-mantine-colors-primary\\[6\\])}.\\[\\&\\: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_18:is(:hover,[data-hover]){stroke-width:18}.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}.active\\:trf_translateY\\(-3px\\):is(:active,[data-active]){transform:translateY(-3px)}.likec4-root:is([data-likec4-reduced-graphics]) .reduceGraphics\\:\\[\\&_\\.action-icon\\]\\:--ai-radius_0px .action-icon{--ai-radius: 0px}:where(.react-flow__node,.react-flow__edge):is(.selectable) .whenSelectable\\:before\\:bg_transparent:before{background:var(--colors-transparent)}[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}:where(.react-flow__node,.react-flow__edge):is(.selectable) .whenSelectable\\:before\\:content_\\"_\\":before{content:" "}:where(.react-flow__node,.react-flow__edge):is(.selectable) .whenSelectable\\:before\\:pos_absolute:before{position:absolute}:where(.react-flow__node,.react-flow__edge):is(.selectable) .whenSelectable\\:before\\:pointer-events_all:before{pointer-events:all}.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\\])}[data-mantine-color-scheme=light] .\\[\\&_\\+_\\.likec4-element-shape\\]\\:light\\:ring-w_4px+.likec4-element-shape{outline-width:4px}.\\[\\&_\\.mantine-ScrollArea-viewport\\]\\:\\[\\&_\\>_div\\]\\:min-h_100\\% .mantine-ScrollArea-viewport>div{min-height:var(--sizes-100\\%)}.\\[\\&_\\.mantine-ScrollArea-viewport\\]\\:\\[\\&_\\>_div\\]\\:h_100\\% .mantine-ScrollArea-viewport>div{height:var(--sizes-100\\%)}:where(.react-flow__node,.react-flow__edge):is(.selectable) .whenSelectable\\:before\\:top_\\[calc\\(100\\%_-_4px\\)\\]:before{top:calc(100% - 4px)}:where(.react-flow__node,.react-flow__edge):is(.selectable) .whenSelectable\\:before\\:left_0:before{left:var(--spacing-0)}:where(.react-flow__node,.react-flow__edge):is(.selectable) .whenSelectable\\:before\\:w_full:before{width:var(--sizes-full)}:where(.react-flow__node,.react-flow__edge):is(.selectable) .whenSelectable\\:before\\:h_24px:before{height:24px}.\\[\\&_\\.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)}[data-mantine-color-scheme=dark] .hover\\:dark\\:bg-c_mantine\\.colors\\.dark\\[7\\]:is(:hover,[data-hover]){background-color:var(--colors-mantine-colors-dark\\[7\\])}[data-mantine-color-scheme=dark] .hover\\:dark\\:c_mantine\\.colors\\.primary\\[4\\]:is(:hover,[data-hover]){color:var(--colors-mantine-colors-primary\\[4\\])}.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}}}`,Ort={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:j0.extend({defaultProps:{reuseTargetNode:!0}})}};be({cursor:"pointer","--mantine-cursor-pointer":"pointer","& :where(.likec4-diagram, .likec4-compound-node, .likec4-element-node)":{cursor:"pointer"}});function jrt(e,r){const[n,o]=E.useState([]);return VE(()=>{if(e&&!document.querySelector("style[data-likec4-font]")){const a=document.createElement("style");a.setAttribute("type","text/css"),a.setAttribute("data-likec4-font",""),H3(r)&&a.setAttribute("nonce",r),C0(r)&&a.setAttribute("nonce",r()),a.appendChild(document.createTextNode(Irt)),document.head.appendChild(a)}},[e]),VE(()=>{const a=new CSSStyleSheet;return a.replaceSync(One.replaceAll(":where(:root,:host)",".likec4-shadow-root").replaceAll(":root",".likec4-shadow-root").replaceAll(new RegExp("(?{a.replaceSync("")}},[One]),n}const jne=()=>{try{const e=window.getComputedStyle(document.documentElement).colorScheme??"",r=Ff(e.split(" "));if(r==="light"||r==="dark")return r}catch{}return null};function Lrt(e){const r=vU(),[n,o]=E.useState(jne);return DU(Yf(()=>o(jne),100),{attributes:!0,childList:!1,subtree:!1},()=>document.documentElement),e??n??r}const Brt=zrt.div;function Frt(e,r=!1){if(r===!1)return` + `.trim(),...V$e(1,OQe+1).map(l=>LQe(e,r,n,l))].join(` +`)}function VQe(e,r){return Jr(r.colors,uw(),un(([n,o])=>FQe(e,n,o)),Lq(` +`))}const qQe=S.memo(({id:e})=>{const r=`#${e}`,n=np()?.(),{theme:o}=Tte(),i=VQe(r,o);return y.jsx("style",{type:"text/css","data-likec4-colors":e,dangerouslySetInnerHTML:{__html:i},nonce:n})}),HQe='@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}',Nre=`@layer reset,base,mantine,xyflow,tokens,recipes,utilities;@layer mantine{:root,:host{color-scheme:var(--mantine-color-scheme)}*,*:before,*:after{box-sizing:border-box}input,button,textarea,select{font:inherit}button,select{text-transform:none}body,:host{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,:host{-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,:host{--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],:host([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],:host([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: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-size=xs] .m_6c018570[data-with-right-section]:has([data-combined-clear-section]){--input-padding-inline-end: calc(2.5625rem * var(--mantine-scale))}.m_6c018570[data-size=sm] .m_6c018570[data-with-right-section]:has([data-combined-clear-section]){--input-padding-inline-end: calc(3.125rem * var(--mantine-scale))}.m_6c018570[data-size=md] .m_6c018570[data-with-right-section]:has([data-combined-clear-section]){--input-padding-inline-end: calc(3.75rem * var(--mantine-scale))}.m_6c018570[data-size=lg] .m_6c018570[data-with-right-section]:has([data-combined-clear-section]){--input-padding-inline-end: calc(4.5rem * var(--mantine-scale))}.m_6c018570[data-size=xl] .m_6c018570[data-with-right-section]:has([data-combined-clear-section]){--input-padding-inline-end: calc(5.5625rem * var(--mantine-scale))}[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_6c018570[data-size=xs] .m_82577fc2[data-position=right]:has([data-combined-clear-section]){--section-size: calc(2.5625rem * var(--mantine-scale))}.m_6c018570[data-size=sm] .m_82577fc2[data-position=right]:has([data-combined-clear-section]){--section-size: calc(3.125rem * var(--mantine-scale))}.m_6c018570[data-size=md] .m_82577fc2[data-position=right]:has([data-combined-clear-section]){--section-size: calc(3.75rem * var(--mantine-scale))}.m_6c018570[data-size=lg] .m_82577fc2[data-position=right]:has([data-combined-clear-section]){--section-size: calc(4.5rem * var(--mantine-scale))}.m_6c018570[data-size=xl] .m_82577fc2[data-position=right]:has([data-combined-clear-section]){--section-size: calc(5.5625rem * var(--mantine-scale))}.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)}:where([data-scroll-locked]) .m_9cdde9a{visibility:var(--app-shell-aside-scroll-locked-visibility)}.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,margin-inline-start,margin-inline-end;background-color:var(--mantine-color-body)}:where([data-layout=alt]) .m_3b16f56b,:where([data-layout=alt]) .m_3840c879{margin-inline-start:var(--app-shell-navbar-offset, 0rem);margin-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_a530ee0a{width:.8em;min-width:.8em;height:.8em}.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{margin-top:calc(var(--mantine-spacing-xs) / 2);padding-inline-start:var(--label-offset-start);padding-inline-end:var(--label-offset-end);cursor:default}.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)}.m_5e5256ee:where([data-variant=filled]){--checkbox-icon-color: var(--mantine-color-white)}.m_5e5256ee:where([data-variant=outline]){--checkbox-icon-color: var(--checkbox-color)}.m_5e5256ee{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-icon-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)}.m_bf2d988c:where([data-variant=filled]){--checkbox-icon-color: var(--mantine-color-white)}.m_bf2d988c:where([data-variant=outline]){--checkbox-icon-color: var(--checkbox-color)}.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-icon-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(.5625rem * 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(.5125rem * 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_66a028b5{--ci-button-size-xs: calc(1.375rem * var(--mantine-scale));--ci-button-size-sm: calc(1.625rem * var(--mantine-scale));--ci-button-size-md: calc(1.75rem * var(--mantine-scale));--ci-button-size-lg: calc(2rem * var(--mantine-scale));--ci-button-size-xl: calc(2.5rem * var(--mantine-scale));--ci-button-size: var(--ci-button-size-sm);width:var(--ci-button-size);height:var(--ci-button-size);min-width:var(--ci-button-size);min-height:var(--ci-button-size)}.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-marker-gap: var(--mantine-spacing-lg);list-style-position:outside;font-size:var(--list-fz);line-height:var(--list-lh);margin:0;padding:0;padding-inline-start:var(--list-marker-gap)}.m_abbac491[data-type=none]{--list-marker-gap: 0}.m_abbac491:where([data-with-padding]){padding-inline-start:calc(var(--list-marker-gap) + var(--mantine-spacing-md))}.m_abb6bec2{white-space:normal;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;background:var(--colors-transparent);overflow:hidden;position:relative;container-name:likec4-root;container-type:size;width:var(--sizes-100\\%);height:var(--sizes-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))}.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 .react-flow .likec4-node-handle-center{visibility:hidden!important;transform:translate(-50%,-50%)!important;top:50%!important;left:50%!important;right:unset!important;bottom:unset!important;width:5px!important;height:5px!important}.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 oklab, 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 oklab, var(--likec4-palette-relation-label), #FFF 50%);--xy-edge-label-background-color: color-mix(in oklab, var(--likec4-palette-relation-label-bg) 65%, 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__edgelabel-renderer)>*{mix-blend-mode:screen}[data-mantine-color-scheme=light] .likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__edgelabel-renderer)>*{mix-blend-mode:hard-light}[data-mantine-color-scheme=dark] .likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__edges)>svg{mix-blend-mode:plus-lighter}[data-mantine-color-scheme=light] .likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__edges)>svg{mix-blend-mode:multiply}[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: #8D8D8D;--likec4-palette-relation-label: #C9C9C9;--likec4-palette-relation-label-bg: #18191B;--mantine-scale: 1;--likec4-palette-outline: var(--likec4-palette-loContrast);--likec4-spacing: ;--text-fz: ;--likec4-icon-size: }@media print{.likec4-root .react-flow{--xy-background-color: transparent !important;background:var(--colors-transparent)!important}.likec4-root .react-flow__background{display:none}.likec4-root *{color-adjust:exact!important;print-color-adjust:exact!important}.likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__edgelabel-renderer)>*{mix-blend-mode:normal!important}.likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__edges)>svg{mix-blend-mode:normal!important}.likec4-root:not([data-likec4-reduced-graphics]) .react-flow__node-seq-parallel{mix-blend-mode:normal!important}}}@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;--sizes-100\\%: 100%;--sizes-full: 100%;--sizes-breakpoint-xs: 36em;--sizes-breakpoint-sm: 48em;--sizes-breakpoint-md: 62em;--sizes-breakpoint-lg: 75em;--sizes-breakpoint-xl: 88em;--borders-none: none;--borders-transparent: 0px solid transparent;--borders-default: 1px solid var(--mantine-color-default-border);--radii-0: 0px;--radii-xs: .125rem;--radii-sm: .25rem;--radii-md: .5rem;--radii-lg: 1rem;--radii-xl: 2rem;--font-weights-normal: 400;--font-weights-medium: 500;--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%);--z-index-0: 0;--z-index-1: 1;--z-index--1: -1;--z-index-likec4-panel: 100;--z-index-likec4-dropdown: 200;--breakpoints-xs: 36em;--breakpoints-sm: 48em;--breakpoints-md: 62em;--breakpoints-lg: 75em;--breakpoints-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-text: var(--mantine-color-text);--colors-text-dimmed: var(--mantine-color-dimmed);--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(--mantine-color-body);--colors-likec4-panel-border: transparent;--colors-likec4-panel-text: color-mix(in oklab, var(--mantine-color-text) 85%, transparent 15%);--colors-likec4-panel-text-dimmed: var(--mantine-color-dimmed);--colors-likec4-panel-action: color-mix(in oklab, var(--mantine-color-text) 90%, transparent 10%);--colors-likec4-panel-action-disabled: var(--mantine-color-dimmed);--colors-likec4-panel-action-hover: var(--mantine-color-bright);--colors-likec4-panel-action-bg: var(--mantine-color-gray-1);--colors-likec4-panel-action-bg-hover: var(--mantine-color-gray-2);--colors-likec4-panel-action-warning: var(--mantine-color-orange-6);--colors-likec4-panel-action-warning-hover: var(--mantine-color-orange-7);--colors-likec4-panel-action-warning-bg: color-mix(in oklab, var(--mantine-color-orange-1) 90%, transparent 10%);--colors-likec4-panel-action-warning-bg-hover: color-mix(in oklab, var(--mantine-color-orange-3) 70%, transparent 30%);--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 oklab, var(--mantine-color-default-border) 50%, transparent 50%);--colors-likec4-compare-latest: var(--mantine-color-green-6)}[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 oklab, var(--mantine-color-dark-4) 70%, transparent 30%);--colors-likec4-mix-color: white;--colors-likec4-panel-bg: var(--mantine-color-dark-6);--colors-likec4-panel-action-bg: color-mix(in oklab, var(--mantine-color-dark-7) 70%, transparent 30%);--colors-likec4-panel-action-bg-hover: var(--mantine-color-dark-8);--colors-likec4-panel-action-warning-hover: var(--mantine-color-orange-5);--colors-likec4-panel-action-warning-bg: color-mix(in oklab, var(--mantine-color-orange-9) 10%, transparent 90%);--colors-likec4-panel-action-warning-bg-hover: color-mix(in oklab, var(--mantine-color-orange-9) 20%, transparent 80%);--colors-likec4-dropdown-bg: var(--mantine-color-dark-6);--colors-likec4-overlay-body: var(--mantine-color-dark-6);--colors-likec4-compare-manual: var(--mantine-color-orange-6);--colors-likec4-compare-manual-outline: color-mix(in oklab, var(--mantine-color-orange-6) 80%, transparent 20%) }[data-mantine-color-scheme=light]{--colors-likec4-background-pattern: var(--mantine-color-gray-4);--colors-likec4-mix-color: black;--colors-likec4-panel-border: var(--mantine-color-gray-2);--colors-likec4-overlay-backdrop: rgb(15 15 15);--colors-likec4-compare-manual: var(--mantine-color-orange-8);--colors-likec4-compare-manual-outline: var(--mantine-color-orange-8) }@keyframes indicatorOpacity{0%{opacity:.8;stroke-opacity:.8}to{opacity:.4;stroke-opacity:.4}}@keyframes xyedgeAnimated{0%{stroke-dashoffset:36}to{stroke-dashoffset:0}}}@layer recipes{@layer _base{.likec4-edge-label{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;font-family:var(--fonts-likec4-relation);display:flex;flex-direction:column;align-items:center;color:var(--xy-edge-label-color);width:max-content;max-width:var(--sizes-100\\%)}.likec4-edge-label .likec4-edge-label__step-number{padding:var(--spacing-1);background:color-mix(in oklab,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 .likec4-edge-label__step-number:only-child{border-radius:4px;min-width:24px}[data-mantine-color-scheme=dark] :where([data-likec4-color=gray]) .likec4-edge-label .likec4-edge-label__step-number{background:color-mix(in oklab,var(--likec4-palette-relation-label-bg),var(--colors-likec4-mix-color) 15%)}.likec4-edge-label .likec4-edge-label__text{margin:var(--spacing-0);white-space-collapse:preserve-breaks;font-size:14px;line-height:1.2}.likec4-edge-label .likec4-edge-label__contents{display:contents}.likec4-edge-label .likec4-edge-label__contents:is(:empty,[data-empty]){display:none!important}.likec4-edge-label .likec4-edge-label__technology{text-align:center;white-space-collapse:preserve-breaks;font-size:11px;line-height:var(--line-heights-1);opacity:.75}.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:var(--sizes-100\\%);height:var(--sizes-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;--code-background: var(--mantine-color-gray-2);--code-color: var(--mantine-color-black);font-size:var(--text-fz-md);line-height:var(--mantine-line-height)}[data-mantine-color-scheme=dark] .likec4-markdown-block{--code-background: var(--mantine-color-dark-8);--code-color: var(--mantine-color-white);--color-border-default: #30363d;--color-accent-fg: #58a6ff;--color-accent-emphasis: #1f6feb;--color-danger-fg: #f85149;--color-danger-emphasis: #da3633;--color-attention-fg: #d29922;--color-attention-emphasis: #9e6a03;--color-done-fg: #a371f7;--color-done-emphasis: #8957e5;--color-success-fg: #3fb950;--color-success-emphasis: #238636}[data-mantine-color-scheme=light] .likec4-markdown-block{--color-border-default: #d0d7de;--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-danger-fg: #d1242f;--color-danger-emphasis: #cf222e;--color-attention-fg: #9a6700;--color-attention-emphasis: #9a6700;--color-done-fg: #8250df;--color-done-emphasis: #8250df;--color-success-fg: #1a7f37;--color-success-emphasis: #1f883d}.likec4-markdown-block :where(hr){border:var(--borders-none);border-bottom:1px solid;border-color:var(--mantine-color-gray-3);margin-top:calc(var(--typography-spacing) / 2);margin-bottom:calc(var(--typography-spacing) / 2)}[data-mantine-color-scheme=dark] .likec4-markdown-block :where(hr){border-color:var(--mantine-color-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);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 .markdown-alert{border-left:.25em solid var(--borderColor-default, var(--color-border-default));color:inherit;margin-bottom:calc(var(--typography-spacing) * 1.5);padding-left:1em;padding-right:.5em}.likec4-markdown-block .markdown-alert .markdown-alert-title{gap:var(--spacing-2);align-items:center;display:flex;font-size:var(--text-fz-md);font-weight:500;line-height:1.5;margin-bottom:.1em}.likec4-markdown-block .markdown-alert .markdown-alert-title svg{fill:currentColor;height:var(--text-fz-md)}.likec4-markdown-block .markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--color-accent-fg)}.likec4-markdown-block .markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--color-success-fg)}.likec4-markdown-block .markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--color-done-fg)}.likec4-markdown-block .markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--color-attention-fg)}.likec4-markdown-block .markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--color-danger-fg)}.likec4-markdown-block .markdown-alert:last-child{margin-bottom:var(--spacing-0)!important}.likec4-markdown-block .markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis,var(--color-accent-emphasis))}.likec4-markdown-block .markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis,var(--color-success-emphasis))}.likec4-markdown-block .markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis,var(--color-done-emphasis))}.likec4-markdown-block .markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis,var(--color-attention-emphasis))}.likec4-markdown-block .markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis,var(--color-danger-emphasis))}.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);background-color:var(--mantine-color-yellow-2);color:inherit}[data-mantine-color-scheme=dark] .likec4-markdown-block :where(mark){background-color:var(--mantine-color-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:var(--sizes-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:var(--sizes-100\\%);margin-bottom:var(--typography-spacing)}.likec4-navigation-panel-icon{color:var(--colors-likec4-panel-action)}.likec4-navigation-panel-icon:is(:disabled,[disabled],[data-disabled],[aria-disabled=true]){color:var(--colors-likec4-panel-action-disabled);opacity:.5}.likec4-navigation-panel-icon:not(:is(:disabled,[disabled],[data-disabled])):is(:hover,[data-hover]){color:var(--colors-likec4-panel-action-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 oklab , var(--likec4-palette-fill), transparent 99%);--actionbtn-bg-hovered: color-mix(in oklab , var(--likec4-palette-fill) 65%, var(--likec4-palette-stroke));--actionbtn-bg-hovered-btn: color-mix(in oklab , var(--likec4-palette-fill) 50%, var(--likec4-palette-stroke));--ai-bg: var(--actionbtn-bg-idle);background:var(--ai-bg);color:var(--actionbtn-color);opacity:.75}:where(.react-flow__node:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[data-likec4-hovered=true]) .action-btn{--ai-bg: var(--actionbtn-bg-hovered);opacity:1;color:var(--actionbtn-color-hovered)}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selectable) .action-btn{pointer-events:all;cursor:pointer}.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{--likec4-palette-outline: oklab(from var(--likec4-palette-stroke) calc(l - .05) a b);--_border-width: 3px;--_border-radius: 6px;--_compound-transparency: 100%;--_border-transparency: 100%;--_indicator-spacing: calc(var(--_border-width) + 1px);--_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:var(--sizes-100\\%);height:var(--sizes-100\\%)}[data-mantine-color-scheme=dark] .likec4-compound-node{--likec4-palette-outline: oklab(from var(--likec4-palette-stroke) calc(l + .2) a b)}.likec4-compound-node:before{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-duration:1s;animation-iteration-count:infinite;animation-direction:alternate;animation-name:indicatorOpacity;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:before{display:block;animation-play-state:running}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selected) .likec4-compound-node:before{display:block;animation-play-state:running}.likec4-root:is([data-likec4-diagram-panning=true]) .likec4-compound-node:before{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 oklab, 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:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[data-likec4-hovered=true]) .likec4-compound-node .action-btn{opacity:.75}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):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:var(--sizes-100\\%);height:auto;max-height:var(--sizes-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 oklab , 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:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[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:var(--sizes-100\\%);max-width:var(--sizes-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:var(--sizes-100\\%);height:auto;max-height:var(--sizes-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:var(--sizes-100\\%);max-width:var(--sizes-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-description] .markdown-alert{mix-blend-mode:screen}.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:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[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{--likec4-palette-outline: oklab(from var(--likec4-palette-stroke) calc(l - .05) a b);--likec4-outline-size: 4px;overflow:visible;position:absolute;pointer-events:none;top:var(--spacing-0);left:var(--spacing-0);width:var(--sizes-100\\%);height:var(--sizes-100\\%)}[data-mantine-color-scheme=dark] .likec4-element-shape{--likec4-palette-outline: oklab(from var(--likec4-palette-stroke) calc(l + .2) a b)}.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,.likec4-edge-container):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-markdown-block .markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--fgColor-accent,var(--color-accent-fg))}.likec4-markdown-block .markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--fgColor-success,var(--color-success-fg))}.likec4-markdown-block .markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--fgColor-done,var(--color-done-fg))}.likec4-markdown-block .markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--fgColor-attention,var(--color-attention-fg))}.likec4-markdown-block .markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--fgColor-danger,var(--color-danger-fg))}.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%))}}@media print{.action-btn{display:none}.likec4-compound-node .likec4-compound-icon{mix-blend-mode:normal!important}.likec4-compound-node .action-btn,.likec4-compound-node .likec4-compound-navigation,.likec4-compound-node .likec4-compound-details,.likec4-edge-action-btn{display:none}}}.likec4-edge-label--pointerEvents_all{pointer-events:all}.likec4-edge-label--cursor_default{cursor:default}.likec4-edge-label--cursor_pointer{cursor:pointer}.likec4-edge-label--isStepEdge_true{padding:var(--spacing-0);gap:var(--spacing-1);flex-direction:row}.likec4-edge-label--isStepEdge_true .likec4-edge-label__contents{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--isStepEdge_true .likec4-edge-label__text{padding-block:var(--spacing-0\\.5);padding-right:var(--spacing-0\\.5)}.likec4-edge-label--pointerEvents_none{pointer-events:none}.likec4-overlay--withBackdrop_true::backdrop{background:color-mix(in oklab,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 oklab , 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 oklab,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-bg-hover)}.likec4-navigation-panel-icon--variant_filled{background-color:var(--colors-likec4-panel-action-bg)}.likec4-navigation-panel-icon--variant_filled:not(:is(:disabled,[disabled],[data-disabled])):is(:hover,[data-hover]){background-color:var(--colors-likec4-panel-action-bg-hover)}.likec4-navigation-panel-icon--type_warning{color:var(--colors-likec4-panel-action-warning)}.likec4-navigation-panel-icon--type_warning:is(:hover,[data-hover]){color:var(--colors-likec4-panel-action-warning-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:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[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)}.action-btn--size_sm{--ai-size: var(--ai-size-sm)}.action-btn--radius_sm{--ai-radius: var(--mantine-radius-sm)}.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,.likec4-edge-container):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 oklab,var(--likec4-palette-stroke) var(--_border-transparency),transparent);background-color:color-mix(in oklab,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 oklab, 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{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 oklab,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:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[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:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[data-likec4-hovered=true]) .likec4-element-shape--shapetype_html{box-shadow:#0a0b10e5 0 20px 30px -10px}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):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)}.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:var(--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,.likec4-edge-container):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:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[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:11px;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) - 1px);left:calc(-1 * var(--likec4-outline-size) - 1px);width:calc(100% + 2 * var(--likec4-outline-size) + 2px);height:calc(100% + 2 * var(--likec4-outline-size) + 2px)}.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 oklab,var(--likec4-palette-stroke) 40%,transparent)) drop-shadow(0 5px 3px rgba(0,0,0,.1))}:where(.react-flow__node:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[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,.likec4-edge-container):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 oklab,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:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[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,.likec4-edge-container):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:3;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}}@media print{.likec4-markdown-block--uselikec4palette_true :where(a){mix-blend-mode:normal!important}}@media print{.likec4-tag--autoTextColor_true>span{mix-blend-mode:normal!important}}@media print{.hover\\:likec4-tag--autoTextColor_true:is(:hover,[data-hover])>span{mix-blend-mode:normal!important}}}@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__path{fill:var(--colors-none);stroke-dashoffset:0}.likec4-root:not([data-likec4-reduced-graphics]) .likec4-edge__path{transition:stroke .13s ease-out,stroke-width .13s ease-out;animation-duration:.8s;animation-iteration-count:infinite;animation-timing-function:linear;animation-fill-mode:both;animation-name:xyedgeAnimated;animation-play-state:paused}:where([data-edge-dir=back]) .likec4-edge__path{animation-direction:reverse}:where(.react-flow__node,.react-flow__edge):has([data-likec4-dimmed]) .likec4-edge__path{animation-play-state:paused}:where([data-likec4-zoom-small=true]) .likec4-edge__path{animation-name:none}.likec4-root:is([data-likec4-diagram-panning=true]) .likec4-edge__path{stroke-dasharray:none!important;animation-play-state:paused}.likec4-root:not([data-likec4-reduced-graphics]) :where(.react-flow__node:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[data-likec4-hovered=true]) .likec4-edge__path{animation-play-state:running;animation-delay:.45s}.likec4-root:not([data-likec4-reduced-graphics]) :where(.selected,[data-edge-active=true],[data-edge-animated=true]) .likec4-edge__path{animation-play-state:running;animation-delay:0ms}.likec4-edge__pathBg{pointer-events:none;fill:var(--colors-none);stroke-width:calc(var(--xy-edge-stroke-width) + 2);stroke-opacity:.08}.likec4-root:not([data-likec4-reduced-graphics]) .likec4-edge__pathBg{--transition-prop: stroke-width, stroke-opacity;transition-property:stroke-width,stroke-opacity;--transition-duration: var(--durations-fast);transition-duration:var(--durations-fast);--transition-easing: var(--easings-in-out);transition-timing-function:var(--easings-in-out)}:where(.react-flow__node:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[data-likec4-hovered=true]) .likec4-edge__pathBg{--transition-easing: var(--easings-out);transition-timing-function:var(--easings-out);stroke-width:calc(var(--xy-edge-stroke-width) + 4);stroke-opacity:.2}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selected) .likec4-edge__pathBg{stroke-width:calc(var(--xy-edge-stroke-width) + 6);stroke-opacity:.25}:where(.react-flow__node:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[data-likec4-hovered=true]) :where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selected) .likec4-edge__pathBg{stroke-opacity:.4}.likec4-edge__markersCtx{fill:var(--xy-edge-stroke);stroke:var(--xy-edge-stroke)}.likec4-edge__middlePoint{visibility:hidden;offset-distance:50%;cx:0;cy:0;r:4px;pointer-events:none}}.likec4-navlink__label--truncateLabel_true,.likec4-navlink__description--truncateLabel_true{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:var(--sizes-100\\%)}}@layer utilities{@layer compositions{.layerStyle_likec4\\.panel{padding:var(--spacing-1);border:1px solid var(--colors-likec4-panel-border);border-radius:var(--radii-0);background-color:var(--colors-likec4-panel-bg)}.layerStyle_likec4\\.dropdown{padding:var(--spacing-2);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)}.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)}.textStyle_xs{font-size:.75rem;line-height:1rem}.layerStyle_likec4\\.panel\\.action{border:var(--borders-transparent);padding-inline:var(--spacing-xxs);padding-block:var(--spacing-xxs);border-radius:var(--radii-sm);color:var(--colors-likec4-panel-action);cursor:pointer}.layerStyle_likec4\\.panel\\.action:is(:disabled,[disabled],[data-disabled],[aria-disabled=true]){color:var(--colors-likec4-panel-action-disabled);cursor:not-allowed}.layerStyle_likec4\\.panel\\.action:not(:is(:disabled,[disabled],[data-disabled])):is(:hover,[data-hover]){color:var(--colors-likec4-panel-action-hover);background-color:var(--colors-likec4-panel-action-bg-hover)}.layerStyle_likec4\\.panel\\.action\\.filled{border:var(--borders-transparent);padding-inline:var(--spacing-xxs);padding-block:var(--spacing-xxs);border-radius:var(--radii-sm);color:var(--colors-likec4-panel-action);cursor:pointer;background-color:var(--colors-likec4-panel-action-bg)}.layerStyle_likec4\\.panel\\.action\\.filled:is(:disabled,[disabled],[data-disabled],[aria-disabled=true]){color:var(--colors-likec4-panel-action-disabled);cursor:not-allowed;background-color:var(--colors-likec4-panel-action-bg)}.layerStyle_likec4\\.panel\\.action\\.filled:not(:is(:disabled,[disabled],[data-disabled])):is(:hover,[data-hover]){color:var(--colors-likec4-panel-action-hover);background-color:var(--colors-likec4-panel-action-bg-hover)}@container (min-width: 40rem){.layerStyle_likec4\\.panel{border-radius:var(--radii-md);padding-inline:var(--spacing-2);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)}.m_0{margin:var(--spacing-0)}.p_0{padding:var(--spacing-0)}.bg_likec4\\.overlay\\.body{background:var(--colors-likec4-overlay-body)}.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}.bg_\\[transparent\\]{background:var(--colors-transparent)}.p_1{padding:var(--spacing-1)}.p_4{padding:var(--spacing-4)}.bg_white{background:#fff}.bd_default{border:var(--borders-default)}.p_0\\.5{padding:var(--spacing-0\\.5)}.m_xs{margin:var(--spacing-xs)}.p_md{padding:var(--spacing-md)}.p_1\\.5{padding:var(--spacing-1\\.5)}.p_8{padding:var(--spacing-8)}.p_xxs{padding:var(--spacing-xxs)}.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_\\[_linear-gradient\\(180deg\\,_color-mix\\(in_oklab\\,_var\\(--likec4-palette-fill\\)_60\\%\\,_transparent\\)\\,_color-mix\\(in_oklab\\,_var\\(--likec4-palette-fill\\)_20\\%\\,_transparent\\)_8px\\,_color-mix\\(in_oklab\\,_var\\(--likec4-palette-fill\\)_14\\%\\,_transparent\\)_20px\\,_transparent_80px_\\)\\,_linear-gradient\\(180deg\\,_var\\(--likec4-palette-fill\\)\\,_var\\(--likec4-palette-fill\\)_4px\\,_transparent_4px\\)\\,_\\{colors\\.likec4\\.overlay\\.body\\}_\\]{background:linear-gradient(180deg,color-mix(in oklab,var(--likec4-palette-fill) 60%,transparent),color-mix(in oklab,var(--likec4-palette-fill) 20%,transparent) 8px,color-mix(in oklab,var(--likec4-palette-fill) 14%,transparent) 20px,transparent 80px),linear-gradient(180deg,var(--likec4-palette-fill),var(--likec4-palette-fill) 4px,transparent 4px),var(--colors-likec4-overlay-body)}.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_xs{padding:var(--spacing-xs)}.p_\\[4px_8px\\]{padding:4px 8px}.p_\\[1px_4px\\]{padding:1px 4px}.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}.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}.p_2{padding:var(--spacing-2)}.bd_3px_dashed{border:3px dashed}.gap_20{gap:20px}.bdr_sm{border-radius:var(--radii-sm)}.bd-w_3{border-width:3px}.bd-c_likec4\\.overlay\\.border{border-color:var(--colors-likec4-overlay-border)}.ring_none{outline:var(--borders-none)}.gap_lg{gap:var(--spacing-lg)}.gap_md{gap:var(--spacing-md)}.gap_sm{gap:var(--spacing-sm)}.flex_1{flex:1 1 0%}.transition_fast{transition:all var(--durations-fast) var(--easings-in-out)}.td_none{text-decoration:none}.bd-c_mantine\\.colors\\.defaultBorder{border-color:var(--colors-mantine-colors-default-border)}.gap_xs{gap:var(--spacing-xs)}.gap_xxs{gap:var(--spacing-xxs)}.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}.offset_10{offset:10px}.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}.bd-w_4{border-width:4px}.px_4{padding-inline:var(--spacing-4)}.py_1{padding-block:var(--spacing-1)}.gap_\\[1px\\]{gap:1px}.ov_auto{overflow:auto}.ovs-b_contain{overscroll-behavior:contain}.ov_visible{overflow:visible}.px_xxs{padding-inline:var(--spacing-xxs)}.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}.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_\\[12px_16px\\]{gap:12px 16px}.bd-c_mantine\\.colors\\.gray\\[3\\]{border-color:var(--colors-mantine-colors-gray\\[3\\])}.flex_0_1_auto{flex:0 1 auto}.transition_all_150ms_ease{transition:all .15s ease}.bdr_xs{border-radius:var(--radii-xs)}.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)!important}.bdr_4px{border-radius:4px}.mx_auto{margin-inline:auto}.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))}.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}.z_999{z-index:999}.c_gray{color:gray}.pos_fixed{position:fixed}.bx-sh_xl{box-shadow:var(--shadows-xl)}.d_flex{display:flex}.ai_flex-start{align-items:flex-start}.flex-d_row{flex-direction:row}.flex-wrap_nowrap{flex-wrap:nowrap}.ai_center{align-items:center}.c_red{color:red}.ai_stretch{align-items:stretch}.flex-d_column{flex-direction:column}.c_teal{color:teal}.op_1{opacity:1}.op_0\\.45{opacity:.45}.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}.pointer-events_none{pointer-events:none}.main-axis_4{main-axis:4px}.pos_bottom-start{position:bottom-start}.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\\])}.bg-c_likec4\\.panel\\.action\\.warning\\.bg{background-color:var(--colors-likec4-panel-action-warning-bg)}.c_likec4\\.panel\\.action{color:var(--colors-likec4-panel-action)}.trunc_true{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c_likec4\\.panel\\.text\\.dimmed{color:var(--colors-likec4-panel-text-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)}.jc_center{justify-content:center}.z_1{z-index:var(--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}.c_orange{color:orange}.pos_top-start{position:top-start}.pos_right{position:right}.op_0\\.65{opacity:.65}.d_inline-flex{display:inline-flex}.op_0\\.5{opacity:.5}.d_block{display:block}.fs_xxs{font-size:var(--font-sizes-xxs)}.lh_sm{line-height:var(--line-heights-sm)}.c_mantine\\.colors\\.dimmed{color:var(--colors-mantine-colors-dimmed)}.white-space_nowrap{white-space:nowrap}.white-space-collapse_preserve-breaks{white-space-collapse:preserve-breaks}.fs_xs{font-size:var(--font-sizes-xs)}.fw_medium{font-weight:var(--font-weights-medium)}.trf_translateY\\(-4px\\){transform:translateY(-4px)}.c_mantine\\.colors\\.gray\\[9\\]{color:var(--colors-mantine-colors-gray\\[9\\])}.bx-sh_lg{box-shadow:var(--shadows-lg)}.pos_right-start{position:right-start}.stk_1\\.7{stroke:1.7px}.c_likec4\\.panel\\.text{color:var(--colors-likec4-panel-text)}.c_green{color:green}.pos_bottom-end{position:bottom-end}.op_0\\.8{opacity:.8}.me_0\\.5{margin-inline-end:var(--spacing-0\\.5)}.cross-axis_-22{cross-axis:-22px}.bg-c_none{background-color:var(--colors-none)}.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}.main-axis_10{main-axis:10px}.op_0\\.6{opacity:.6}.pos_top{position:top}.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}.c_mantine\\.colors\\.text{color:var(--colors-mantine-colors-text)}.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}.grid-ar_min-content{grid-auto-rows:min-content}.white-space_pre-wrap{white-space:pre-wrap}.tov_unset{text-overflow:unset}.tov_ellipsis{text-overflow:ellipsis}.wb_break-word{word-break:break-word}.wb_normal{word-break:normal}.bg-c_mantine\\.colors\\.white{background-color:var(--colors-mantine-colors-white)}.jc_flex-end{justify-content:flex-end}.c_mantine\\.colors\\.gray\\[6\\]{color:var(--colors-mantine-colors-gray\\[6\\])}.fw_700{font-weight:700}.justify-self_stretch{justify-self:stretch}.as_start{align-self:start}.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)}.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\\.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}.stk_likec4\\.compare\\.manual\\.outline{stroke:var(--colors-likec4-compare-manual-outline)}.stk-w_8px{stroke-width:8px}.stk-op_0\\.5{stroke-opacity:.5}.z_9999{z-index:9999}.fill_\\[var\\(--xy-edge-stroke\\)\\]{fill:var(--xy-edge-stroke)}.stk_transparent{stroke:var(--colors-transparent)}.fill-opacity_0\\.5{fill-opacity:.5}.stk-w_10{stroke-width:10}.r_4{r:4px}.cursor_grab{cursor:grab}.vis_hidden{visibility:hidden}.trs-dur_120ms{--transition-duration: .12s;transition-duration:.12s}.trs-prop_visibility\\,_fill\\,_fill-opacity\\,_r{--transition-prop: visibility, fill, fill-opacity, r;transition-property:visibility,fill,fill-opacity,r}.trs-tmf_inOut{--transition-easing: var(--easings-in-out);transition-timing-function:var(--easings-in-out)}.trs-dly_20ms{transition-delay:20ms}.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%}.ring-c_likec4\\.compare\\.manual\\.outline{outline-color:var(--colors-likec4-compare-manual-outline)}.ring-w_4px{outline-width:4px}.outline-style_dashed{outline-style:dashed}.ring-o_1\\.5{outline-offset:var(--spacing-1\\.5)}.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)}.stk-w_1{stroke-width:1}.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}.top_4{top:var(--spacing-4)}.right_4{right:var(--spacing-4)}.top_10{top:var(--spacing-10)}.left_10{left:var(--spacing-10)}.w_\\[calc\\(100vw_-_\\(\\{spacing\\.10\\}_\\*_2\\)\\)\\]{width:calc(100vw - (var(--spacing-10) * 2))}.h_max-content{height:max-content}.max-h_\\[calc\\(100vh_-_\\(\\{spacing\\.10\\}_\\*_3\\)\\)\\]{max-height:calc(100vh - (var(--spacing-10) * 3))}.mt_md{margin-top:var(--spacing-md)}.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)}.w_100\\%{width:var(--sizes-100\\%)}.pr_2\\.5{padding-right:var(--spacing-2\\.5)}.top_0{top:var(--spacing-0)}.left_0{left:var(--spacing-0)}.max-w_calc\\(100vw\\){max-width:100vw}.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)}.h_100\\%{height:var(--sizes-100\\%)}.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)}.pr_md{padding-right: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}.top_0\\.5{top:var(--spacing-0\\.5)}.right_0\\.5{right:var(--spacing-0\\.5)}.w_full{width:var(--sizes-full)}.h_full{height:var(--sizes-full)}.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)}.w_350{width:350px}.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\\])}.bdr-bl_sm{border-bottom-left-radius:var(--radii-sm)}.bdr-br_sm{border-bottom-right-radius:var(--radii-sm)}.pl_3{padding-left:var(--spacing-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)}.mt_4{margin-top:var(--spacing-4)}.mt_xs{margin-top:var(--spacing-xs)}.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)}.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)}.w_300{width:300px}.min-w_0{min-width:0}.min-h_32px{min-height:32px}.max-w_min\\(200px\\,_100\\%\\){max-width:min(200px,100%)}.min-w_60px{min-width:60px}.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_oklab\\,_var\\(--likec4-palette-hiContrast\\)_40\\%\\,_var\\(--likec4-palette-fill\\)\\)\\]{--_color: color-mix(in oklab, 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)}.backdrop\\:bg_\\[color-mix\\(in_oklab\\,_\\{colors\\.likec4\\.overlay\\.backdrop\\}_60\\%\\,_transparent\\)\\]::backdrop{background:color-mix(in oklab,var(--colors-likec4-overlay-backdrop) 60%,transparent)}[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\\])}[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\\])}:where(.react-flow__node:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[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\\(\\.likec4-diagram\\,_\\.likec4-compound-node\\,_\\.likec4-element-node\\)\\]\\:cursor_pointer :where(.likec4-diagram,.likec4-compound-node,.likec4-element-node){cursor:pointer}.backdrop\\:cursor_zoom-out::backdrop{cursor:zoom-out}.backdrop\\:bkdp_blur\\(18px\\)::backdrop{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.\\[\\&\\: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%))}:where([data-likec4-zoom-small=true]) .smallZoom\\:d_none{display:none}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selectable) .whenSelectable\\:pointer-events_all{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:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[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%))}.\\[\\&_\\.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\\:bg-c_mantine\\.colors\\.dark\\[9\\]{background-color:var(--colors-mantine-colors-dark\\[9\\])}[data-mantine-color-scheme=dark] .dark\\:c_mantine\\.colors\\.text{color:var(--colors-mantine-colors-text)}[data-mantine-color-scheme=dark] .dark\\:c_mantine\\.colors\\.dark\\[2\\]{color:var(--colors-mantine-colors-dark\\[2\\])}[data-mantine-color-scheme=dark] .dark\\:bg-c_mantine\\.colors\\.dark\\[6\\]{background-color:var(--colors-mantine-colors-dark\\[6\\])}[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\\:pos_absolute:before{position:absolute}.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__node:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[data-likec4-hovered=true]) .whenHovered\\:stk-w_12px{stroke-width:12px}.\\[\\&_\\.react-flow__edge-interaction\\]\\:cursor_copy .react-flow__edge-interaction{cursor:copy}[data-mantine-color-scheme=dark] .dark\\:mix-bm_screen{mix-blend-mode:screen}[data-mantine-color-scheme=light] .light\\:mix-bm_multiply{mix-blend-mode:multiply}:where([data-likec4-selected=true],[data-likec4-hovered=true]) .\\[\\:where\\(\\[data-likec4-selected\\=\\'true\\'\\]\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:vis_visible{visibility:visible}:where([data-likec4-selected=true],[data-likec4-hovered=true]) .\\[\\:where\\(\\[data-likec4-selected\\=\\'true\\'\\]\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:fill-opacity_1{fill-opacity:1}:where([data-likec4-selected=true],[data-likec4-hovered=true]) .\\[\\:where\\(\\[data-likec4-selected\\=\\'true\\'\\]\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:trs-tmf_out{--transition-easing: var(--easings-out);transition-timing-function:var(--easings-out)}:where([data-likec4-selected=true],[data-likec4-hovered=true]) .\\[\\:where\\(\\[data-likec4-selected\\=\\'true\\'\\]\\,_\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:trs-dly_0ms{transition-delay:0ms}:where([data-likec4-selected=true]) .\\[\\:where\\(\\[data-likec4-selected\\=\\'true\\'\\]\\)_\\&\\]\\:r_6{r:6px}:is([data-likec4-hovered=true]) .\\[\\:is\\(\\[data-likec4-hovered\\=\\'true\\'\\]\\)_\\&\\]\\:r_8{r:8px}.\\[\\&_\\+_\\.likec4-element-shape\\]\\:ring-c_likec4\\.compare\\.manual\\.outline+.likec4-element-shape{outline-color:var(--colors-likec4-compare-manual-outline)}.\\[\\&_\\+_\\.likec4-element-shape\\]\\:ring-w_4px+.likec4-element-shape{outline-width:4px}.\\[\\&_\\+_\\.likec4-element-shape\\]\\:outline-style_dashed+.likec4-element-shape{outline-style:dashed}.\\[\\&_\\+_\\.likec4-element-shape\\]\\:ring-o_1\\.5+.likec4-element-shape{outline-offset:var(--spacing-1\\.5)}[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:var(--sizes-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)}: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:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[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:var(--sizes-100\\%)}.\\[\\&_\\:where\\(svg\\,_img\\)\\]\\:h_auto :where(svg,img){height:auto}.\\[\\&_\\:where\\(svg\\,_img\\)\\]\\:max-h_100\\% :where(svg,img){max-height:var(--sizes-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:var(--sizes-100\\%)}.\\[\\&_\\.mantine-ScrollArea-root\\]\\:h_100\\% .mantine-ScrollArea-root{height:var(--sizes-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:var(--sizes-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:var(--sizes-100\\%)}:is(.\\[\\&_\\+_\\&\\]\\:mt_\\[32px\\])+:is(.\\[\\&_\\+_\\&\\]\\:mt_\\[32px\\]){margin-top:32px}:where(.react-flow__node:has([data-likec4-hovered=true]),.react-flow__edge:has([data-likec4-hovered=true]),.likec4-edge-container[data-likec4-hovered=true]) .whenHovered\\:w_7px{width:7px}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):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\\])}.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_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\\:bg-c_likec4\\.panel\\.action\\.warning\\.bg\\.hover:is(:hover,[data-hover]){background-color:var(--colors-likec4-panel-action-warning-bg-hover)}.hover\\:c_likec4\\.panel\\.action\\.hover:is(:hover,[data-hover]){color:var(--colors-likec4-panel-action-hover)}.hover\\:c_likec4\\.panel\\.action:is(:hover,[data-hover]){color:var(--colors-likec4-panel-action)}.hover\\:trs-dly_0s:is(:hover,[data-hover]){transition-delay:0s}.hover\\:bg-c_likec4\\.panel\\.action\\.bg\\.hover:is(:hover,[data-hover]){background-color:var(--colors-likec4-panel-action-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)}.hover\\:c_mantine\\.colors\\.primary\\[6\\]:is(:hover,[data-hover]){color:var(--colors-mantine-colors-primary\\[6\\])}.\\[\\&\\: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_mantine\\.colors\\.primary\\.filledHover:is(:hover,[data-hover]){fill:var(--colors-mantine-colors-primary-filled-hover)}.hover\\:r_10:is(:hover,[data-hover]){r:10px}.hover\\:trs-dur_100ms:is(:hover,[data-hover]){--transition-duration: .1s;transition-duration:.1s}.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}.active\\:trf_translateY\\(-3px\\):is(:active,[data-active]){transform:translateY(-3px)}.group:is(:active,[data-active]) .groupActive\\:cursor_grabbing{cursor:grabbing}.likec4-root:is([data-likec4-reduced-graphics]) .reduceGraphics\\:\\[\\&_\\.action-icon\\]\\:--ai-radius_0px .action-icon{--ai-radius: 0px}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selectable) .whenSelectable\\:before\\:bg_transparent:before{background:var(--colors-transparent)}[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,.likec4-edge-container):is(.selectable) .whenSelectable\\:before\\:content_\\"_\\":before{content:" "}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selectable) .whenSelectable\\:before\\:pos_absolute:before{position:absolute}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selectable) .whenSelectable\\:before\\:pointer-events_all:before{pointer-events:all}.likec4-root:is([data-likec4-reduced-graphics][data-likec4-diagram-panning=true]) .reduceGraphicsOnPan\\:before\\:d_none:before{display:none}.notDisabled\\:hover\\:bg-c_likec4\\.panel\\.action\\.bg\\.hover:not(:is(:disabled,[disabled],[data-disabled])):is(:hover,[data-hover]){background-color:var(--colors-likec4-panel-action-bg-hover)}.\\[\\&_\\.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:var(--sizes-100\\%)}.\\[\\&_\\.mantine-ScrollArea-viewport\\]\\:\\[\\&_\\>_div\\]\\:h_100\\% .mantine-ScrollArea-viewport>div{height:var(--sizes-100\\%)}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selectable) .whenSelectable\\:before\\:top_\\[calc\\(100\\%_-_4px\\)\\]:before{top:calc(100% - 4px)}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selectable) .whenSelectable\\:before\\:left_0:before{left:var(--spacing-0)}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selectable) .whenSelectable\\:before\\:w_full:before{width:var(--sizes-full)}:where(.react-flow__node,.react-flow__edge,.likec4-edge-container):is(.selectable) .whenSelectable\\:before\\:h_24px:before{height:24px}.\\[\\&_\\.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)}[data-mantine-color-scheme=dark] .hover\\:dark\\:bg-c_mantine\\.colors\\.dark\\[7\\]:is(:hover,[data-hover]){background-color:var(--colors-mantine-colors-dark\\[7\\])}[data-mantine-color-scheme=dark] .hover\\:dark\\:c_mantine\\.colors\\.primary\\[4\\]:is(:hover,[data-hover]){color:var(--colors-mantine-colors-primary\\[4\\])}.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}}@media print{.print\\:d_none{display:none}}}`,Bre={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:py.extend({defaultProps:{reuseTargetNode:!0}}),Tooltip:_n.extend({defaultProps:{color:"dark"}})}};fe({cursor:"pointer","--mantine-cursor-pointer":"pointer","& :where(.likec4-diagram, .likec4-compound-node, .likec4-element-node)":{cursor:"pointer"}});function UQe(e,r){const[n,o]=S.useState([]);return f7(()=>{if(e&&!document.querySelector("style[data-likec4-font]")){const i=document.createElement("style");i.setAttribute("type","text/css"),i.setAttribute("data-likec4-font",""),pw(r)&&i.setAttribute("nonce",r),ey(r)&&i.setAttribute("nonce",r()),i.appendChild(document.createTextNode(HQe)),document.head.appendChild(i)}},[e]),f7(()=>{const i=new CSSStyleSheet;return i.replaceSync(Nre.replaceAll(":where(:root,:host)",".likec4-shadow-root").replaceAll(":root",".likec4-shadow-root").replaceAll(new RegExp("(?{i.replaceSync("")}},[Nre]),n}const Ire=()=>{try{const e=window.getComputedStyle(document.documentElement).colorScheme??"",r=hf(e.split(" "));if(r==="light"||r==="dark")return r}catch{}return null};function WQe(e){const r=gH(),[n,o]=S.useState(Ire);return $H(bf(()=>o(Ire),100),{attributes:!0,childList:!1,subtree:!1},()=>document.documentElement),e??n??r}function Ore({children:e}){const r=S.useContext(Aw);return S.useEffect(()=>{r||console.warn("LikeC4Diagram must be a child of MantineProvider")},[]),r?y.jsx(y.Fragment,{children:e}):y.jsx(z9,{defaultColorScheme:"auto",theme:Bre,children:e})}Ore.displayName="EnsureMantine";const wz=({reducedMotion:e="user",children:r})=>{const n=np()?.();return y.jsx(sLe,{features:rVe,strict:!0,children:y.jsx(uLe,{reducedMotion:e,...n&&{nonce:n},children:r})})};function Lre({onCanvasClick:e,onCanvasContextMenu:r,onCanvasDblClick:n,onEdgeClick:o,onEdgeContextMenu:i,onNavigateTo:a,onNodeClick:l,onNodeContextMenu:s,onOpenSource:c,onBurgerMenuClick:d,onLayoutTypeChange:u,onInitialized:p,view:f,className:m,controls:v=!0,fitView:w=!0,fitViewPadding:x=v?y2.withControls:y2.default,pannable:k=!0,zoomable:C=!0,background:_="dots",enableElementTags:$=!1,enableFocusMode:R=!1,enableElementDetails:T=!1,enableRelationshipDetails:A=!1,enableRelationshipBrowser:z=!1,enableCompareWithLatest:j=!!u,nodesSelectable:I,enableNotations:N=!1,showNavigationButtons:L=!!a,enableDynamicViewWalkthrough:H=!1,dynamicViewVariant:P,enableSearch:V=!1,initialWidth:B,initialHeight:F,reduceGraphics:q="auto",renderIcon:G,where:U,reactFlowProps:Y,renderNodes:K,children:O}){const W=DG(),Z=S.useRef(null),Q=!!rre(),ie=!Q;I??=Q||R||!!a||!!l;const te=kee(f,P),re=GQe(x);Z.current==null&&(Z.current={defaultEdges:[],defaultNodes:[],initialWidth:B??te.width,initialHeight:F??te.height,initialFitViewOptions:{maxZoom:l$,minZoom:xa,padding:re},initialMaxZoom:l$,initialMinZoom:xa});const ue=q==="auto"?k&&(te.width??1)*(te.height??1)>6e6&&f.nodes.some(_e=>_e.children?.length>0):q;return y.jsx(Ore,{children:y.jsx(wz,{...ue&&{reducedMotion:"always"},children:y.jsx(Uke,{value:G??null,children:y.jsx(gp,{features:{enableFitView:w,enableEditor:Q,enableReadOnly:ie,enableFocusMode:R,enableNavigateTo:!!a,enableElementDetails:T,enableRelationshipDetails:A,enableRelationshipBrowser:z,enableSearch:V,enableNavigationButtons:L&&!!a,enableDynamicViewWalkthrough:f._type==="dynamic"&&H,enableNotations:N,enableVscode:!!c,enableControls:v,enableElementTags:$,enableCompareWithLatest:j&&!!u},children:y.jsxs(eGe,{handlers:{onCanvasClick:e,onCanvasContextMenu:r,onCanvasDblClick:n,onEdgeClick:o,onEdgeContextMenu:i,onNavigateTo:a,onNodeClick:l,onNodeContextMenu:s,onOpenSource:c,onBurgerMenuClick:d,onInitialized:p,onLayoutTypeChange:u},children:[y.jsx(qQe,{id:W}),y.jsx(wMe,{rootSelector:`#${W}`,children:y.jsx(gMe,{id:W,className:m,reduceGraphics:ue,children:y.jsx(lw,{fitView:w,...Z.current,children:y.jsxs($Qe,{view:f,zoomable:C,pannable:k,fitViewPadding:re,nodesDraggable:Q,nodesSelectable:I,where:U??null,dynamicViewVariant:P,children:[y.jsx(_Ze,{background:_,reactFlowProps:Y,renderNodes:K,children:O}),y.jsx(yte,{})]})})})})]})})})})})}const Fre=e=>typeof e=="number"?`${e}px`:e;function GQe(e){return SL(()=>{if(a9(e))return D$e(e,Fre);const r=Fre(e);return{x:r,y:r}},[e],tt)}function YQe({children:e,likec4model:r}){return y.jsx(Sy.Provider,{value:r,children:e})}const kz=({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})}),XQe=({viewId:e})=>y.jsxs(kz,{children:["View ",y.jsx("code",{children:e})," not found"]}),KQe=e=>{throw new Error("LikeC4View is not available SSR")};var Vre={exports:{}},_z,qre;function ZQe(){if(qre)return _z;qre=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return _z=e,_z}var Sz,Hre;function QQe(){if(Hre)return Sz;Hre=1;var e=ZQe();function r(){}function n(){}return n.resetWarningCache=r,Sz=function(){function o(l,s,c,d,u,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 i(){return o}var a={array:o,bigint:o,bool:o,func:o,number:o,object:o,string:o,symbol:o,any:o,arrayOf:i,element:o,elementType:o,instanceOf:i,node:o,objectOf:i,oneOf:i,oneOfType:i,shape:i,exact:i,checkPropTypes:n,resetWarningCache:r};return a.PropTypes=a,a},Sz}var Ure;function JQe(){return Ure||(Ure=1,Vre.exports=QQe()()),Vre.exports}var eJe=JQe();const gl=Y7(eJe);var tJe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wre(e,r){return e(r={exports:{}},r.exports),r.exports}var rJe=Wre((function(e){(function(r){var n=function(x,k,C){if(!c(k)||u(k)||p(k)||f(k)||s(k))return k;var _,$=0,R=0;if(d(k))for(_=[],R=k.length;$e.length)&&(r=e.length);for(var n=0,o=new Array(r);n=0||(i[n]=e[n]);return i},Xre=function(e,r){if(e==null)return{};var n,o,i=sJe(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i},cJe=S.createContext(null);function Kre(e){var r=e.children,n=r===void 0?"":r,o=Xre(e,["children"]);return typeof n!="string"&&(n=KQe()),Zr.createElement("template",Yre({},o,{dangerouslySetInnerHTML:{__html:n}}))}function Zre(e){var r=e.root,n=e.children;return Va.createPortal(n===void 0?null:n,r)}function dJe(e){var r=S.forwardRef((function(n,o){var i,a,l=n.mode,s=l===void 0?"open":l,c=n.delegatesFocus,d=c!==void 0&&c,u=n.styleSheets,p=u===void 0?[]:u,f=n.ssr,m=f!==void 0&&f,v=n.children,w=Xre(n,["mode","delegatesFocus","styleSheets","ssr","children"]),x=(a=S.useRef((i=o)&&i.current),S.useEffect((function(){i&&(i.current=a.current)}),[i]),a),k=S.useState(null),C=lJe(k,2),_=C[0],$=C[1],R="node_".concat(s).concat(d);return S.useLayoutEffect((function(){if(x.current)try{if(typeof o=="function"&&o(x.current),m){var T=x.current.shadowRoot;return void $(T)}var A=x.current.attachShadow({mode:s,delegatesFocus:d});p.length>0&&(A.adoptedStyleSheets=p),$(A)}catch(z){(function(j){var I=j.error,N=j.styleSheets,L=j.root;switch(I.name){case"NotSupportedError":N.length>0&&(L.adoptedStyleSheets=N);break;default:throw I}})({error:z,styleSheets:p,root:_})}}),[o,x,p]),Zr.createElement(Zr.Fragment,null,Zr.createElement(e.tag,Yre({key:R,ref:x},w),(_||m)&&Zr.createElement(cJe.Provider,{value:_},m?Zr.createElement(Kre,{shadowroot:s,shadowrootmode:s},e.render({root:_,ssr:m,children:v})):Zr.createElement(Zre,{root:_},e.render({root:_,ssr:m,children:v})))))}));return r.propTypes={mode:gl.oneOf(["open","closed"]),delegatesFocus:gl.bool,styleSheets:gl.arrayOf(gl.instanceOf(globalThis.CSSStyleSheet)),ssr:gl.bool,children:gl.node},r}Kre.propTypes={children:gl.oneOfType([gl.string,gl.node])},Zre.propTypes={root:gl.object.isRequired,children:gl.node};var Ez=new Map;function uJe(){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,i){var a=rJe(i,{separator:"-"}),l="".concat(r,"-").concat(a);return Ez.has(l)||Ez.set(l,dJe({tag:a,render:n})),Ez.get(l)}})}var pJe=uJe();const hJe=pJe.div;function fJe(e,r=!1){if(r===!1)return` :where([data-likec4-instance="${e}"]) { display: block; box-sizing: border-box; @@ -190,7 +187,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho min-width: 80px; min-height: 80px; } - `.trim();const{width:n,height:o}=r,a=n>o;return` + `.trim();const{width:n,height:o}=r,i=n>o;return` :where([data-likec4-instance="${e}"]) { display: block; box-sizing: border-box; @@ -199,35 +196,35 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho padding: 0; overflow: hidden; aspect-ratio: ${Math.ceil(n)} / ${Math.ceil(o)}; - ${a?"":` + ${i?"":` 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;"} + width: ${i?"100%":"auto"}; + height: ${i?"auto":"100%"}; + ${i?"min-width: 80px;":"min-height: 80px;"} max-height: min(100%, var(--likec4-view-max-height, ${Math.ceil(o)}px)); } -`.trim()}function Hrt({children:e,theme:r=Ort,injectFontCss:n=!0,styleNonce:o,colorScheme:a,keepAspectRatio:i=!1,...s}){const l=Lrt(a),c=UG(),u=Frt(c,i),d=E.useRef(null),h=jrt(n,o),f=E.useCallback(()=>d.current??void 0,[d]),g=kt(()=>{if(F3(o)){if(typeof o=="string")return o;if(typeof o=="function")return o()}return""});let b=F3(o)?g():void 0;return y.jsxs(y.Fragment,{children:[y.jsx("style",{type:"text/css",nonce:b,dangerouslySetInnerHTML:{__html:u}}),y.jsx(Brt,{ssr:!1,...s,styleSheets:h,"data-likec4-instance":c,children:y.jsx("div",{ref:d,"data-mantine-color-scheme":l,className:"likec4-shadow-root",children:y.jsx(i7,{...a&&{forceColorScheme:a},defaultColorScheme:l,getRootElement:f,...!!b&&{getStyleNonce:g},cssVariablesSelector:".likec4-shadow-root",theme:r,children:y.jsx(NR,{children:e})})})})]})}const Vrt=be({cursor:"pointer","--mantine-cursor-pointer":"pointer","& :where(.likec4-diagram, .likec4-compound-node, .likec4-element-node)":{cursor:"pointer"}});function qrt({viewId:e,className:r,pannable:n=!1,zoomable:o=!1,keepAspectRatio:a=!0,colorScheme:i,injectFontCss:s=!0,controls:l=!1,background:c="transparent",browser:u=!0,showNavigationButtons:d=!1,enableNotations:h,enableFocusMode:f=!1,enableDynamicViewWalkthrough:g=!1,enableElementDetails:b=!1,enableRelationshipDetails:x=!1,enableRelationshipBrowser:w=x,reduceGraphics:k="auto",mantineTheme:C,styleNonce:_,style:T,reactFlowProps:A,renderNodes:R,children:D,...N}){const M=Jje(),[O,F]=E.useState("manual"),[L,U]=E.useState(null),P=kt(Y=>{Y&&Y!==L&&F("manual"),U(Y)}),V=kt(()=>{P(e)});if(!M)return y.jsx(DR,{children:"LikeC4Model not found. Make sure you provided LikeC4ModelProvider."});const I=M.findView(e)?.$layouted;if(!I)return y.jsx(brt,{viewId:e});if(I._stage!=="layouted")return y.jsxs(DR,{children:['LikeC4 View "$',e,'" is not layouted. Make sure you have LikeC4ModelProvider with layouted model.']});const H=L?M.findView(L):null,q=O==="manual"?H?.$layouted:H?.$view,Z=!!h&&(I.notation?.nodes?.length??0)>0,W=(q?.notation?.nodes?.length??0)>0,G=u!==!1,K=Hq(u)?{}:u,j=Ire(I,N.dynamicViewVariant);return y.jsx(Hrt,{injectFontCss:s,theme:C,colorScheme:i,styleNonce:_,keepAspectRatio:a?j:!1,className:et("likec4-view",r),style:T,children:y.jsxs(NR,{children:[y.jsx(Sne,{view:I,readonly:!0,pannable:n,zoomable:o,background:c,fitView:!0,fitViewPadding:Uw.default,enableNotations:Z,enableDynamicViewWalkthrough:g,showNavigationButtons:d,enableCompareWithLatest:!1,enableFocusMode:f,enableRelationshipDetails:x,enableElementDetails:b,enableRelationshipBrowser:w,enableElementTags:!1,controls:l,nodesDraggable:!1,reduceGraphics:k,className:et("likec4-static-view",G&&Vrt),enableSearch:!1,...G&&{onCanvasClick:V,onNodeClick:V},reactFlowProps:A,renderNodes:R,children:D,...N}),q&&y.jsxs(Ly,{openDelay:0,onClose:()=>P(null),children:[y.jsx(Sne,{view:q,pannable:!0,zoomable:!0,background:"dots",onNavigateTo:P,showNavigationButtons:!0,enableDynamicViewWalkthrough:!0,enableFocusMode:!0,enableRelationshipBrowser:!0,enableElementDetails:!0,enableRelationshipDetails:!0,enableSearch:!0,enableElementTags:!0,enableCompareWithLatest:!0,controls:!0,readonly:!0,nodesDraggable:!1,fitView:!0,...N,fitViewPadding:Uw.withControls,...K,enableNotations:W&&(K.enableNotations??!0),renderNodes:R,onLayoutTypeChange:F}),y.jsx(zr,{pos:"absolute",top:"4",right:"4",zIndex:"999",children:y.jsx(br,{variant:"default",color:"gray",onClick:Y=>{Y.stopPropagation(),P(null)},children:y.jsx(Rp,{})})})]})]})})}var Urt=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"})]}),Wrt=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 128 128",...e,children:y.jsxs("g",{fill:"#47848f",children:[y.jsx("path",{d:"M49.07 32.66c-14.37-2.62-25.72.12-30.25 8-3.38 5.85-2.41 13.61 2.34 21.9a1.47 1.47 0 0 0 2.56-1.47c-4.28-7.47-5.12-14.17-2.35-19 3.76-6.51 13.89-9 27.17-6.54a1.47 1.47 0 1 0 .53-2.9zM28.63 72.61a92.2 92.2 0 0 0 22 17.34c20.84 12 43 15.25 54 7.79a1.47 1.47 0 0 0-1.66-2.43C93.11 102 72 98.92 52.07 87.39a89.3 89.3 0 0 1-21.26-16.77 1.47 1.47 0 0 0-2.18 2z"}),y.jsx("path",{d:"M101.06 70.81c9.41-11.11 12.69-22.29 8.17-30.11-3.32-5.76-10.35-8.8-19.69-8.92a1.47 1.47 0 0 0 0 2.95c8.4.11 14.45 2.73 17.18 7.45 3.75 6.5.82 16.47-7.87 26.74a1.47 1.47 0 1 0 2.25 1.9zM76.89 33.15a92 92 0 0 0-26.25 10.4C29.13 56 15.09 74.29 17 87.57a1.47 1.47 0 0 0 3-.43C18.23 75.35 31.53 58 52.11 46.11A89 89 0 0 1 77.51 36a1.47 1.47 0 1 0-.62-2.88z"}),y.jsx("path",{d:"M42 96.78C47 110.51 55 119 64.05 119c6.6 0 12.7-4.5 17.46-12.42A1.47 1.47 0 1 0 79 105c-4.28 7.12-9.53 11-14.94 11-7.52 0-14.69-7.54-19.24-20.24a1.47 1.47 0 0 0-2.77 1zm45-2.69a92.5 92.5 0 0 0 3.91-27.3c0-24.41-8.54-45.44-20.71-50.85a1.47 1.47 0 0 0-1.2 2.7c10.85 4.82 19 24.78 19 48.15a89.6 89.6 0 0 1-3.78 26.42 1.47 1.47 0 0 0 2.81.88zm27.71-1.44a7.05 7.05 0 1 0-7.05 7.05 7.05 7.05 0 0 0 7.05-7.05m-2.95 0a4.1 4.1 0 1 1-4.1-4.1 4.1 4.1 0 0 1 4.1 4.1M20.34 99.7a7.05 7.05 0 1 0-7.05-7.05 7.05 7.05 0 0 0 7.05 7.05m0-2.95a4.1 4.1 0 1 1 4.1-4.1 4.1 4.1 0 0 1-4.1 4.1"}),y.jsx("path",{d:"M64.05 23.13A7.05 7.05 0 1 0 57 16.08a7.05 7.05 0 0 0 7.05 7.05m0-2.95a4.1 4.1 0 1 1 4.1-4.1 4.1 4.1 0 0 1-4.1 4.1m1.08 51.59A5.1 5.1 0 1 1 69 65.71a5.1 5.1 0 0 1-3.87 6.06"})]})}),Yrt=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"})}),Grt=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"})]})}),Xrt=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"})]}),Krt=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"})]}),Zrt=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"})]}),Qrt=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"})]})}),Jrt=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"})}),ent=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"})]}),tnt=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"})}),rnt=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"})]})}),nnt=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"})]}),ont=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"})}),ant=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 int={"tech:elasticsearch":Urt,"tech:electron":Wrt,"tech:git":Yrt,"tech:github":Grt,"tech:go":Xrt,"tech:grafana":Krt,"tech:java":Zrt,"tech:kubernetes":Qrt,"tech:nginx":Jrt,"tech:postgresql":ent,"tech:prometheus":tnt,"tech:react":rnt,"tech:redis":nnt,"tech:spark":ont,"tech:swagger":ant};function snt(e){const r=int[e.node.icon??""];return r?y.jsx(r,e):null}function lnt(e,r,n){let o=a=>e(a,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function Lne(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return lnt(e,r,n);throw Error("Wrong number of arguments")}function cnt(...e){return Lne(unt,e)}function unt(e,r){let n={};for(let[o,a]of Object.entries(e))n[o]=r(a,o,e);return n}function Bne(...e){return Lne(tb,e)}function tb(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 dnt(e,r);if(e instanceof Map)return pnt(e,r);if(e instanceof Set)return hnt(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)||!tb(o,r[n]))return!1;return!0}function dnt(e,r){if(e.length!==r.length)return!1;for(let[n,o]of e.entries())if(!tb(o,r[n]))return!1;return!0}function pnt(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e.entries())if(!r.has(n)||!tb(o,r.get(n)))return!1;return!0}function hnt(e,r){if(e.size!==r.size)return!1;let n=[...r];for(let o of e){let a=!1;for(let[i,s]of n.entries())if(tb(o,s)){a=!0,n.splice(i,1);break}if(!a)return!1}return!0}let Ns=[],Ku=0;const F4=4;let H4=0,Fne=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=Ku+F4;i(e.events=e.events||{},e.events[n+q4]||(e.events[n+q4]=o(a=>{e.events[n].reduceRight((i,s)=>(s(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+q4](),delete e.events[n+q4])}),gnt=1e3,ynt=(e,r)=>mnt(e,n=>{let o=r(n);o&&e.events[V4].push(o)},fnt,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[V4]=[],e.off=()=>{a(),setTimeout(()=>{if(e.active&&!e.lc){e.active=!1;for(let i of e.events[V4])i();e.events[V4]=[]}},gnt)},()=>{e.listen=o,e.off=a}}),bnt=(e,r,n)=>{Array.isArray(e)||(e=[e]);let o,a,i=()=>{if(a===H4)return;a=H4;let u=e.map(d=>d.get());if(!o||u.some((d,h)=>d!==o[h])){o=u;let d=r(...u);d&&d.then&&d.t?d.then(h=>{o===u&&s.set(h)}):(s.set(d),a=H4)}},s=Fne(void 0),l=s.get;s.get=()=>(i(),l());let c=i;return ynt(s,()=>{let u=e.map(d=>d.listen(c));return i(),()=>{for(let d of u)d()}}),s},Hne=(e,r)=>bnt(e,r);function vnt(e,r,n){let o=new Set(r).add(void 0);return e.listen((a,i,s)=>{o.has(s)&&n(a,i,s)})}let zR=(e,r)=>n=>{e.current!==n&&(e.current=n,r())};function Vne(e,{keys:r,deps:n=[e,r]}={}){let o=E.useRef();o.current=e.get();let a=E.useCallback(s=>(zR(o,s)(e.value),r?.length>0?vnt(e,r,zR(o,s)):e.listen(zR(o,s))),n),i=()=>o.current;return E.useSyncExternalStore(a,i,i)}const xnt=e=>{const r=Hne(e,l=>rp.create(l));function n(l){const c=e.get();if(Bne(c,l))return;const u={...l,views:cnt(l.views,d=>{const h=c.views[d.id];return Bne(h,d)?h:d})};e.set(u)}const o=Hne(e,l=>Object.values(l.views));function a(){return Vne(r)}function i(){return Vne(o)}function s(l){const[c,u]=E.useState(e.value?.views[l]??null);return E.useEffect(()=>e.subscribe(d=>{u(d.views[l]??null)}),[l]),c}return{updateModel:n,$likec4model:r,useLikeC4Model:a,useLikeC4Views:i,useLikeC4View:s}},wnt=Fne({_stage:"layouted",projectId:"architecture",project:{id:"architecture",title:"architecture"},specification:{tags:{internal:{color:"tomato"}},elements:{actor:{style:{shape:"person",color:"green"}},person:{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:{}},tool:{style:{}},process:{style:{}},repository:{style:{shape:"storage"}}},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 +`.trim()}const Qre=S.forwardRef(({children:e,theme:r=Bre,injectFontCss:n=!0,styleNonce:o,colorScheme:i,keepAspectRatio:a=!1,...l},s)=>{const c=WQe(i),d=DG(),u=fJe(d,a),p=S.useRef(null),f=UQe(n,o),m=S.useCallback(()=>p.current??void 0,[p]),v=at(()=>{if(ra(o)){if(typeof o=="string")return o;if(typeof o=="function")return o()}return""});let w=ra(o)?v():void 0;return y.jsxs(y.Fragment,{children:[y.jsx("style",{type:"text/css",nonce:w,dangerouslySetInnerHTML:{__html:u}}),y.jsx(hJe,{ssr:!1,...l,styleSheets:f,"data-likec4-instance":d,children:y.jsx("div",{ref:$r(p,s),"data-mantine-color-scheme":c,className:"likec4-shadow-root",children:y.jsx(z9,{...i&&{forceColorScheme:i},defaultColorScheme:c,getRootElement:m,...!!w&&{getStyleNonce:v},cssVariablesSelector:".likec4-shadow-root",theme:r,children:y.jsx(wz,{children:e})})})})]})});Qre.displayName="ShadowRoot";const gJe=fe({cursor:"pointer","--mantine-cursor-pointer":"pointer","& :where(.likec4-diagram, .likec4-compound-node, .likec4-element-node)":{cursor:"pointer"}});function mJe({viewId:e,className:r,pannable:n=!1,zoomable:o=!1,keepAspectRatio:i=!0,colorScheme:a,injectFontCss:l=!0,controls:s=!1,background:c="transparent",browser:d=!0,showNavigationButtons:u=!1,enableNotations:p,enableFocusMode:f=!1,enableDynamicViewWalkthrough:m=!1,enableElementDetails:v=!1,enableRelationshipDetails:w=!1,enableRelationshipBrowser:x=w,reduceGraphics:k="auto",mantineTheme:C,styleNonce:_,style:$,reactFlowProps:R,renderNodes:T,children:A,...z}){const j=S.useRef(null),I=mMe(),[N,L]=S.useState("manual"),[H,P]=S.useState(null),V=at(Q=>{Q&&Q!==H&&L("manual"),P(Q)}),B=at(()=>{V(e)});if(!I)return y.jsx(kz,{children:"LikeC4Model not found. Make sure you provided LikeC4ModelProvider."});const F=I.findView(e)?.$layouted;if(!F)return y.jsx(XQe,{viewId:e});if(F._stage!=="layouted")return y.jsxs(kz,{children:['LikeC4 View "$',e,'" is not layouted. Make sure you have LikeC4ModelProvider with layouted model.']});const q=H?I.findView(H):null,G=N==="manual"?q?.$layouted:q?.$view,U=!!p&&(F.notation?.nodes?.length??0)>0,Y=(G?.notation?.nodes?.length??0)>0,K=d!==!1,O=Nq(d)?{}:d,W=kee(F,z.dynamicViewVariant),Z=j.current?{root:j.current}:void 0;return y.jsx(Qre,{ref:j,injectFontCss:l,theme:C,colorScheme:a,styleNonce:_,keepAspectRatio:i?W:!1,className:Ge("likec4-view",r),style:$,children:y.jsxs(wz,{children:[y.jsx(Lre,{view:F,pannable:n,zoomable:o,background:c,fitView:!0,fitViewPadding:y2.default,enableNotations:U,enableDynamicViewWalkthrough:m,showNavigationButtons:u,enableCompareWithLatest:!1,enableFocusMode:f,enableRelationshipDetails:w,enableElementDetails:v,enableRelationshipBrowser:x,enableElementTags:!1,controls:s,reduceGraphics:k,className:Ge("likec4-static-view",K&&gJe),enableSearch:!1,...K&&{onCanvasClick:B,onNodeClick:B},reactFlowProps:R,renderNodes:T,children:A,...z}),y.jsx(Cn,{...Z,children:G&&y.jsxs(p0,{openDelay:0,onClose:()=>V(null),children:[y.jsx(Lre,{view:G,pannable:!0,zoomable:!0,background:"dots",onNavigateTo:V,showNavigationButtons:!0,enableDynamicViewWalkthrough:!0,enableFocusMode:!0,enableRelationshipBrowser:!0,enableElementDetails:!0,enableRelationshipDetails:!0,enableSearch:!0,enableElementTags:!0,enableCompareWithLatest:!0,controls:!0,fitView:!0,...z,fitViewPadding:y2.withControls,...O,enableNotations:Y&&(O.enableNotations??!0),renderNodes:T,onLayoutTypeChange:L}),y.jsx(hr,{pos:"absolute",top:"4",right:"4",zIndex:"999",children:y.jsx(lr,{variant:"default",color:"gray",onClick:Q=>{Q.stopPropagation(),V(null)},children:y.jsx(fp,{})})})]})})]})})}var yJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 131",...e,children:y.jsx("path",{fill:"#2396ED",d:"m140.598 25.715 3.892 2.818c6.77 5.46 10.662 11.625 11.508 18.67 7.277-1.409 16.584-.352 20.646 2.466l3.723 2.29-.677 1.41c-1.185 2.641-1.523 3.346-1.692 3.698-6.6 13.21-19.631 13.386-25.723 13.21-15.4 38.573-48.23 59.885-92.57 59.885-20.476 0-36.045-6.517-46.538-19.375C-.709 93.88-.709 71.862.475 64.817l.339-1.41h122.353c6.43 0 11.339-1.76 13.708-3.17-2.539-3.875-3.385-8.278-3.554-10.744-.508-7.045 1.185-14.443 4.57-19.727zm106.014 8.179q2.048 0 3.468 1.373t1.42 3.467v43.563q0 10.89-7.634 18.43-7.726 7.633-18.43 7.633-10.798 0-18.43-7.633-7.633-7.633-7.633-18.43t7.633-18.43q7.632-7.634 18.43-7.633 9.262 0 16.336 5.724V38.734q0-2.094 1.373-3.467t3.467-1.373m36.49 22.34q10.705 0 18.43 7.632 3.818 3.818 5.702 8.424 1.885 4.608 1.932 10.007 0 10.89-7.633 18.43-7.725 7.633-18.43 7.633-10.798 0-18.43-7.633-7.634-7.633-7.634-18.43t7.633-18.43q7.633-7.634 18.43-7.633m57.574 0q9.82 0 16.988 6.33 1.675 1.488 1.675 3.676 0 2.095-1.373 3.49-1.373 1.397-3.467 1.397a4.93 4.93 0 0 1-3.165-1.117q-2.373-2.002-4.98-3.025t-5.678-1.024q-3.397 0-6.376 1.28a16.7 16.7 0 0 0-5.213 3.49 16.2 16.2 0 0 0-3.514 5.19q-1.28 2.977-1.28 6.376 0 3.397 1.28 6.376a16.2 16.2 0 0 0 3.514 5.19 16.7 16.7 0 0 0 5.213 3.49q2.979 1.28 6.376 1.28 3.072 0 5.678-1 2.607-1.002 4.933-3.003 1.304-.977 3.072-1.024 2.094 0 3.467 1.373t1.373 3.468q0 2.048-1.535 3.583-7.214 6.33-16.988 6.33-10.798 0-18.43-7.633-7.633-7.633-7.633-18.43t7.633-18.43q7.632-7.634 18.43-7.633m29.044-22.34q2.001 0 3.42 1.42 1.42 1.418 1.42 3.467v36.302l27.832-18.105q1.163-.744 2.606-.744 1.024 0 1.908.372.885.372 1.536 1.047t1.047 1.56.396 1.86q0 2.607-1.862 3.864l-19.5 12.66 20.012 22.525q1.35 1.489 1.35 3.398 0 .977-.396 1.861a5.4 5.4 0 0 1-1.047 1.56q-.651.675-1.536 1.046a4.9 4.9 0 0 1-1.908.373q-1.955 0-3.258-1.257l-21.502-24.155-5.678 3.724v16.801q0 2.001-1.42 3.444t-3.42 1.443q-2.048 0-3.468-1.443t-1.42-3.444V38.781q0-2.048 1.42-3.468t3.468-1.42m71.489 22.34q10.704 0 18.43 7.632 3.816 3.77 5.725 8.401 1.908 4.63 1.908 10.03 0 2.094-1.42 3.467t-3.467 1.373h-36.86a15.9 15.9 0 0 0 2.327 4.677 16.3 16.3 0 0 0 3.606 3.63 16.7 16.7 0 0 0 4.562 2.351q2.49.838 5.189.838 3.072 0 5.631-.931 2.56-.93 4.748-2.793a5.1 5.1 0 0 1 3.21-1.21q2.095 0 3.468 1.373t1.373 3.468q0 2.047-1.396 3.49-7.214 6.33-17.034 6.33-10.798 0-18.43-7.633-7.633-7.633-7.633-18.43t7.633-18.43q7.632-7.634 18.43-7.633m57.48 0q2.048 0 4.398.279 2.35.28 4.329 1 1.978.721 3.28 1.978 1.305 1.257 1.304 3.258 0 1.025-.396 1.909a5.4 5.4 0 0 1-1.047 1.559q-.651.675-1.536 1.047a4.9 4.9 0 0 1-1.908.372q-.885 0-2.048-.512-2.932-1.163-6.376-1.163-3.397 0-6.376 1.28-2.978 1.28-5.19 3.49-2.21 2.211-3.49 5.19-1.28 2.977-1.28 6.376v21.223q0 2.001-1.42 3.42t-3.42 1.42q-2.048 0-3.467-1.42t-1.42-3.42V61.074q0-2.002 1.42-3.42 1.42-1.42 3.467-1.42 2.001 0 3.42 1.42 1.42 1.418 1.42 3.42v.93a26.7 26.7 0 0 1 7.586-4.281q4.095-1.49 8.75-1.49M225.436 65.96q-3.444 0-6.423 1.303t-5.166 3.514-3.467 5.19-1.28 6.329 1.28 6.33 3.467 5.189 5.166 3.514q2.979 1.302 6.423 1.303 3.397 0 6.376-1.303a16.6 16.6 0 0 0 5.19-3.538 16.8 16.8 0 0 0 3.49-5.189q1.28-2.955 1.28-6.306t-1.28-6.307a16.8 16.8 0 0 0-3.49-5.189 16.6 16.6 0 0 0-5.19-3.537q-2.978-1.303-6.376-1.303m57.667 0q-3.444 0-6.423 1.303t-5.166 3.514-3.468 5.19-1.28 6.329 1.28 6.33q1.281 2.978 3.468 5.189t5.166 3.514 6.423 1.303q3.397 0 6.376-1.303a16.6 16.6 0 0 0 5.19-3.538 16.8 16.8 0 0 0 3.49-5.189q1.28-2.955 1.28-6.306t-1.28-6.307a16.8 16.8 0 0 0-3.49-5.189 16.6 16.6 0 0 0-5.19-3.537q-2.979-1.303-6.376-1.303m158.106 0q-2.653 0-5.166.837a17 17 0 0 0-4.608 2.35 16.1 16.1 0 0 0-3.63 3.631 15.1 15.1 0 0 0-2.28 4.677h31.368a15.6 15.6 0 0 0-2.35-4.677 16.8 16.8 0 0 0-3.63-3.63 16.7 16.7 0 0 0-4.561-2.35 16 16 0 0 0-5.143-.838M32.629 42.27v17.614H14.014V42.272zm22 0v17.614H36.014V42.272zm22 0v17.614H58.013V42.272zm22 0v17.614H80.013V42.272zm22 0v17.614h-18.616V42.272zm-22-21.135v17.613H80.013V21.136zm-22 0v17.613H58.013V21.136zm-22 0v17.613H36.014V21.136zM98.629 0v17.613H80.013V0z"})}),vJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 288",...e,children:[y.jsx("path",{fill:"#343741",d:"M0 143.82c0 12.44 1.744 24.441 4.71 35.956h175.067c19.856 0 35.955-16.1 35.955-35.956 0-19.865-16.1-35.955-35.955-35.955H4.71C1.744 119.371 0 131.38 0 143.82"}),y.jsx("path",{fill:"#FEC514",d:"M242.013 68.863c5.025-4.629 9.7-9.6 13.987-14.93C229.636 21.079 189.213 0 143.82 0 87 0 38.101 33.052 14.775 80.9h196.559c11.38 0 22.319-4.324 30.678-12.037"}),y.jsx("path",{fill:"#00BFB3",d:"M211.334 206.742H14.774c23.336 47.839 72.226 80.9 129.045 80.9 45.393 0 85.816-21.088 112.18-53.933a136.6 136.6 0 0 0-13.987-14.94c-8.36-7.721-19.299-12.027-30.678-12.027"})]}),bJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 278",...e,children:y.jsx("path",{fill:"#47848F",d:"M90.317 59.645c-36.264-6.605-64.936.308-76.364 20.101-8.527 14.77-6.09 34.353 5.912 55.285a3.719 3.719 0 1 0 6.452-3.699c-10.811-18.856-12.915-35.757-5.923-47.867 9.493-16.442 35.068-22.608 68.59-16.503a3.719 3.719 0 1 0 1.333-7.317m53.63-33.684c-2.959 5.723-8.932 9.635-15.819 9.635-9.83 0-17.798-7.969-17.798-17.798C110.33 7.968 118.3 0 128.128 0c9.83 0 17.798 7.968 17.798 17.798q0 .386-.016.767c29.461 15.237 49.933 67.197 49.933 127.226 0 24.69-3.452 48.382-9.879 68.92a3.719 3.719 0 1 1-7.097-2.221c6.196-19.802 9.539-42.747 9.539-66.699 0-56.524-18.789-105.163-44.458-119.83M16.469 193.319a18 18 0 0 1 1.33-.05c9.83 0 17.798 7.97 17.798 17.799s-7.969 17.797-17.798 17.797C7.968 228.865 0 220.897 0 211.068c0-6.692 3.693-12.52 9.151-15.56-2.68-33.265 32.283-77.855 85.12-108.36 21.946-12.671 44.798-21.665 66.267-26.265a3.719 3.719 0 0 1 1.558 7.273c-20.69 4.433-42.817 13.141-64.107 25.433-49.759 28.728-82.66 70.134-81.52 99.73m206.26 26.546a17.7 17.7 0 0 1-2.324-8.797c0-9.83 7.969-17.798 17.798-17.798 9.83 0 17.798 7.968 17.798 17.798s-7.968 17.797-17.798 17.797a17.7 17.7 0 0 1-10.38-3.338c-28.392 16.703-82.625 8.184-133.66-21.282-21.726-12.543-40.776-27.657-55.439-43.77a3.719 3.719 0 0 1 5.5-5.006c14.134 15.532 32.581 30.167 53.657 42.335 48.165 27.808 98.886 36.084 124.847 22.061m-1.166-63.914a3.719 3.719 0 0 1-5.676-4.805c21.946-25.926 29.34-51.086 19.867-67.492-6.876-11.91-22.159-18.52-43.362-18.796a3.719 3.719 0 1 1 .097-7.437c23.575.307 41.315 7.98 49.706 22.514 11.404 19.752 3.113 47.965-20.632 76.016M72.564 221.49a3.719 3.719 0 0 1 7.001-2.507c11.476 32.045 29.591 51.082 48.563 51.082 13.645 0 26.91-9.774 37.71-27.74a3.719 3.719 0 0 1 6.375 3.832c-12.018 19.99-27.428 31.345-44.085 31.345-22.839 0-43.15-21.344-55.564-56.011m175.999-10.423c0-5.722-4.639-10.361-10.36-10.361-5.723 0-10.362 4.639-10.362 10.36 0 5.723 4.64 10.361 10.361 10.361s10.36-4.638 10.36-10.36m-230.765 10.36c5.722 0 10.36-4.638 10.36-10.36s-4.638-10.361-10.36-10.361-10.36 4.639-10.36 10.36c0 5.723 4.638 10.361 10.36 10.361m110.33-193.27c5.722 0 10.36-4.638 10.36-10.36s-4.638-10.36-10.36-10.36-10.36 4.638-10.36 10.36 4.638 10.36 10.36 10.36m2.718 130.22c-6.951 1.502-13.8-2.916-15.305-9.868-1.499-6.952 2.916-13.8 9.868-15.305 6.951-1.502 13.8 2.915 15.305 9.867 1.502 6.952-2.916 13.8-9.868 15.305"})}),xJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 108",...e,children:[y.jsx("path",{fill:"#2F2707",d:"M152.984 37.214c-5.597 0-9.765 2.748-9.765 9.362 0 4.983 2.747 8.443 9.463 8.443 5.693 0 9.56-3.355 9.56-8.65 0-6-3.46-9.155-9.258-9.155m-11.19 46.701c-1.325 1.625-2.645 3.353-2.645 5.39 0 4.067 5.186 5.291 12.31 5.291 5.9 0 13.938-.414 13.938-5.9 0-3.261-3.867-3.462-8.753-3.768zm30.113-46.394c1.828 2.34 3.764 5.597 3.764 10.276 0 11.292-8.851 17.904-21.667 17.904-3.259 0-6.209-.406-8.038-.914l-3.359 5.39 9.969.61c17.602 1.122 27.975 1.632 27.975 15.157 0 11.702-10.272 18.311-27.975 18.311-18.413 0-25.433-4.68-25.433-12.716 0-4.578 2.035-7.015 5.596-10.378-3.358-1.419-4.476-3.961-4.476-6.71 0-2.24 1.118-4.273 2.952-6.208 1.83-1.93 3.864-3.865 6.306-6.103-4.984-2.442-8.75-7.732-8.75-15.262 0-11.697 7.733-19.731 23.295-19.731 4.376 0 7.022.402 9.362 1.017h19.84v8.644zM199.166 19.034c-5.8 0-9.157-3.36-9.157-9.161 0-5.793 3.356-8.95 9.157-8.95 5.9 0 9.258 3.157 9.258 8.95 0 5.801-3.357 9.161-9.258 9.161M186.04 80.171v-8.033l5.19-.71c1.425-.205 1.627-.509 1.627-2.038V39.48c0-1.116-.304-1.832-1.325-2.134l-5.492-1.935 1.118-8.238h21.061V69.39c0 1.63.098 1.833 1.629 2.039l5.188.71v8.032zM255.267 76.227c-4.376 2.135-10.785 4.068-16.586 4.068-12.106 0-16.682-4.878-16.682-16.38V37.264c0-.61 0-1.017-.817-1.017h-7.12V27.19c8.955-1.02 12.513-5.496 13.632-16.585h9.666v14.45c0 .71 0 1.017.815 1.017h14.343v10.173H237.36v24.313c0 6.002 1.426 8.34 6.917 8.34 2.852 0 5.799-.71 8.24-1.626z"}),y.jsx("path",{fill:"#DE4C36",d:"M104.529 49.53 58.013 3.017a6.86 6.86 0 0 0-9.703 0l-9.659 9.66 12.253 12.252a8.15 8.15 0 0 1 8.383 1.953 8.16 8.16 0 0 1 1.936 8.434L73.03 47.125c2.857-.984 6.154-.347 8.435 1.938a8.16 8.16 0 0 1 0 11.545 8.164 8.164 0 0 1-13.324-8.88L57.129 40.716l-.001 28.98a8.3 8.3 0 0 1 2.159 1.544 8.164 8.164 0 0 1 0 11.547c-3.19 3.19-8.36 3.19-11.545 0a8.164 8.164 0 0 1 2.672-13.328v-29.25a8.1 8.1 0 0 1-2.672-1.782c-2.416-2.413-2.997-5.958-1.759-8.925l-12.078-12.08L2.011 49.314a6.863 6.863 0 0 0 0 9.706l46.516 46.514a6.86 6.86 0 0 0 9.703 0l46.299-46.297a6.866 6.866 0 0 0 0-9.707"})]}),wJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 139",...e,children:y.jsx("path",{fill:"#11110F",d:"M98.696 59.312h-43.06c-1.111 0-2.013.903-2.013 2.014v21.053c0 1.111.902 2.015 2.012 2.015h16.799v26.157s-3.772 1.286-14.2 1.286c-12.303 0-29.49-4.496-29.49-42.288 0-37.8 17.897-42.773 34.698-42.773 14.543 0 20.809 2.56 24.795 3.794 1.253.384 2.412-.863 2.412-1.975l4.803-20.342c0-.52-.176-1.146-.769-1.571C93.064 5.527 83.187 0 58.233 0 29.488 0 0 12.23 0 71.023c0 58.795 33.76 67.556 62.21 67.556 23.555 0 37.844-10.066 37.844-10.066.59-.325.653-1.148.653-1.526V61.326c0-1.11-.9-2.014-2.01-2.014m221.8-51.953c0-1.12-.888-2.024-1.999-2.024h-24.246a2.016 2.016 0 0 0-2.008 2.024l.006 46.856h-37.792V7.36c0-1.12-.892-2.024-2.001-2.024H228.21a2.014 2.014 0 0 0-2.003 2.024v126.872c0 1.12.9 2.03 2.003 2.03h24.245c1.109 0 2-.91 2-2.03V79.964h37.793l-.066 54.267c0 1.12.9 2.03 2.008 2.03h24.304c1.11 0 1.998-.91 2-2.03zM144.37 24.322c0-8.73-7-15.786-15.635-15.786-8.627 0-15.632 7.055-15.632 15.786 0 8.72 7.005 15.795 15.632 15.795 8.635 0 15.635-7.075 15.635-15.795m-1.924 83.212V48.97c0-1.112-.897-2.021-2.006-2.021h-24.169c-1.109 0-2.1 1.144-2.1 2.256v83.905c0 2.466 1.536 3.199 3.525 3.199h21.775c2.39 0 2.975-1.173 2.975-3.239zM413.162 46.95h-24.06c-1.104 0-2.002.909-2.002 2.028v62.21s-6.112 4.472-14.788 4.472-10.977-3.937-10.977-12.431v-54.25c0-1.12-.897-2.03-2.001-2.03h-24.419c-1.102 0-2.005.91-2.005 2.03v58.358c0 25.23 14.063 31.403 33.408 31.403 15.87 0 28.665-8.767 28.665-8.767s.61 4.62.885 5.168c.276.547.994 1.098 1.77 1.098l15.535-.068c1.102 0 2.005-.911 2.005-2.025l-.008-85.168c0-1.119-.9-2.028-2.008-2.028m55.435 68.758c-8.345-.254-14.006-4.041-14.006-4.041V71.488s5.585-3.423 12.436-4.035c8.664-.776 17.013 1.841 17.013 22.51 0 21.795-3.768 26.096-15.443 25.744m9.49-71.483c-13.665 0-22.96 6.097-22.96 6.097V7.359a2.01 2.01 0 0 0-2-2.024h-24.315a2.013 2.013 0 0 0-2.004 2.024v126.872c0 1.12.898 2.03 2.007 2.03h16.87c.76 0 1.335-.39 1.76-1.077.419-.682 1.024-5.85 1.024-5.85s9.942 9.422 28.763 9.422c22.096 0 34.768-11.208 34.768-50.315s-20.238-44.217-33.913-44.217M212.229 46.73h-18.187l-.028-24.027c0-.909-.468-1.364-1.52-1.364H167.71c-.964 0-1.481.424-1.481 1.35v24.83s-12.42 2.998-13.26 3.24a2.01 2.01 0 0 0-1.452 1.934v15.603c0 1.122.896 2.027 2.005 2.027h12.707v37.536c0 27.88 19.556 30.619 32.753 30.619 6.03 0 13.243-1.937 14.434-2.376.72-.265 1.138-1.01 1.138-1.82l.02-17.164c0-1.119-.945-2.025-2.01-2.025-1.06 0-3.77.431-6.562.431-8.933 0-11.96-4.154-11.96-9.53l-.001-35.67h18.188a2.014 2.014 0 0 0 2.006-2.028V48.753c0-1.12-.897-2.022-2.006-2.022"})}),kJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 192",...e,children:y.jsx("path",{fill:"#00ACD7",d:"m292.533 13.295 1.124.75c13.212 8.725 22.685 20.691 28.917 35.15 1.496 2.243.499 3.49-2.493 4.237l-5.063 1.296c-11.447 2.949-20.53 5.429-31.827 8.378l-6.443 1.678c-2.32.574-2.96.333-5.428-2.477l-.348-.399c-3.519-3.988-6.155-6.652-10.817-9.03l-.899-.443c-15.705-7.727-30.911-5.484-45.12 3.74-16.952 10.968-25.677 27.172-25.428 47.364.25 19.942 13.96 36.395 33.654 39.137 16.951 2.244 31.16-3.739 42.378-16.452 2.244-2.743 4.238-5.734 6.73-9.224H223.36c-5.235 0-6.481-3.24-4.736-7.478l.864-2.035c3.204-7.454 8.173-18.168 11.4-24.294l.704-1.319c.862-1.494 2.612-3.513 5.977-3.513h80.224c3.603-11.415 9.449-22.201 17.246-32.407 18.198-23.931 40.135-36.396 69.8-41.63 25.427-4.488 49.359-1.995 71.046 12.713 19.694 13.461 31.909 31.66 35.15 55.59 4.237 33.654-5.485 61.075-28.668 84.508-16.453 16.702-36.645 27.172-59.829 31.908-6.73 1.247-13.461 1.496-19.942 2.244-22.685-.499-43.376-6.98-60.826-21.937-12.273-10.61-20.727-23.648-24.928-38.828a105 105 0 0 1-10.47 16.89c-17.949 23.683-41.381 38.39-71.046 42.38-24.43 3.24-47.115-1.497-67.058-16.454-18.447-13.96-28.917-32.407-31.66-55.34-3.24-27.173 4.737-51.603 21.19-73.041 17.7-23.184 41.132-37.891 69.8-43.126 22.999-4.16 45.037-1.595 64.936 11.464M411.12 49.017l-.798.178c-23.183 5.235-38.14 19.942-43.624 43.375-4.488 19.444 4.985 39.138 22.934 47.115 13.71 5.983 27.421 5.235 40.633-1.496 19.694-10.22 30.413-26.175 31.66-47.613-.25-3.24-.25-5.734-.749-8.227-4.436-24.401-26.664-38.324-50.056-33.332M116.416 94.564c.997 0 1.496.748 1.496 1.745l-.499 5.983c0 .997-.997 1.745-1.745 1.745l-54.344-.249c-.997 0-1.246-.748-.748-1.496l3.49-6.232c.499-.748 1.496-1.496 2.493-1.496zM121.9 71.63c.997 0 1.496.748 1.247 1.496l-1.995 5.983c-.249.997-1.246 1.495-2.243 1.495l-117.912.25c-.997 0-1.246-.499-.748-1.247l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247zm12.963-22.934c.997 0 1.246.748.748 1.496l-4.238 6.481c-.499.748-1.745 1.496-2.493 1.496l-90.24-.25c-.998 0-1.247-.498-.749-1.246l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247z"})}),_Je=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 279",...e,children:[y.jsx("defs",{children:y.jsxs("linearGradient",{id:"Grafana_svg__a",x1:"49.995%",x2:"49.995%",y1:"122.45%",y2:"31.139%",children:[y.jsx("stop",{offset:"0%",stopColor:"#FFF100"}),y.jsx("stop",{offset:"100%",stopColor:"#F05A28"})]})}),y.jsx("path",{fill:"url(#Grafana_svg__a)",d:"M255.59 122.775c-.46-4.675-1.226-10.04-2.759-16.017a98 98 0 0 0-7.204-19.16 106.7 106.7 0 0 0-13.412-20.54c-2.222-2.681-4.675-5.287-7.28-7.816 3.908-15.558-4.752-29.046-4.752-29.046-14.945-.92-24.448 4.675-27.973 7.204-.613-.23-1.15-.537-1.763-.767-2.529-.996-5.135-1.992-7.894-2.835a130 130 0 0 0-8.277-2.3c-2.835-.69-5.67-1.226-8.583-1.686-.537-.076-.996-.153-1.533-.23C157.646 8.738 138.946 0 138.946 0c-20.922 13.258-24.831 31.805-24.831 31.805s-.077.383-.23 1.073c-1.15.307-2.299.69-3.449.996-1.609.46-3.218 1.073-4.751 1.686a123 123 0 0 0-4.752 1.916 117 117 0 0 0-9.35 4.599c-2.989 1.686-5.9 3.525-8.737 5.441l-.766-.307c-28.97-11.036-54.643 2.223-54.643 2.223-2.376 30.809 11.572 50.198 14.331 53.724-.69 1.916-1.303 3.832-1.916 5.748-2.146 6.974-3.755 14.101-4.751 21.535-.154 1.073-.307 2.146-.384 3.219C7.894 146.916 0 173.97 0 173.97c22.302 25.674 48.359 27.283 48.359 27.283l.077-.076c3.295 5.9 7.127 11.495 11.419 16.783a112 112 0 0 0 5.671 6.362c-8.124 23.298 1.15 42.61 1.15 42.61 24.83.92 41.155-10.882 44.603-13.564a85 85 0 0 0 7.511 2.222 109.7 109.7 0 0 0 23.298 3.449c1.916.076 3.909.153 5.825.076h2.759l1.226-.076v.076c11.726 16.708 32.265 19.084 32.265 19.084 14.638-15.405 15.48-30.733 15.48-34.028v-1.38c3.066-2.145 5.979-4.445 8.738-6.974 5.824-5.288 10.959-11.342 15.25-17.857l1.15-1.839c16.554.92 28.28-10.27 28.28-10.27-2.759-17.243-12.569-25.673-14.638-27.283 0 0-.077-.076-.23-.153s-.153-.153-.153-.153c-.077-.077-.23-.154-.383-.23.076-1.073.153-2.07.23-3.142.153-1.84.153-3.756.153-5.595v-2.913l-.077-1.149-.076-1.533c0-.536-.077-.996-.154-1.456-.076-.46-.076-.996-.153-1.456l-.153-1.456-.23-1.456c-.307-1.916-.613-3.756-1.073-5.672-1.763-7.433-4.675-14.484-8.43-20.845a70.4 70.4 0 0 0-14.025-16.707c-5.365-4.752-11.42-8.584-17.704-11.42-6.36-2.835-12.952-4.675-19.543-5.518-3.295-.46-6.59-.613-9.886-.536h-2.453l-1.226.077c-.46 0-.92.076-1.303.076a52 52 0 0 0-4.981.69c-6.591 1.226-12.799 3.602-18.24 6.897s-10.193 7.358-14.025 11.956a54.7 54.7 0 0 0-8.89 15.021 52.9 52.9 0 0 0-3.525 16.094c-.077 1.303-.077 2.683-.077 3.986v.996l.077 1.073c.076.613.076 1.303.153 1.916.23 2.682.766 5.288 1.456 7.74 1.456 4.982 3.755 9.503 6.59 13.335s6.285 6.975 9.887 9.504c3.602 2.452 7.51 4.215 11.343 5.364 3.832 1.15 7.664 1.61 11.266 1.61h1.993c.23 0 .46 0 .689-.077.383 0 .766-.077 1.15-.077.076 0 .23 0 .306-.076l.383-.077c.23 0 .46-.076.69-.076.46-.077.843-.154 1.303-.23s.843-.154 1.226-.307c.843-.153 1.61-.46 2.376-.69 1.533-.536 3.066-1.15 4.368-1.839 1.38-.69 2.606-1.533 3.832-2.3.307-.23.69-.459.997-.766 1.226-.996 1.456-2.835.46-4.061-.844-1.073-2.376-1.38-3.603-.69l-.92.46a25 25 0 0 1-3.295 1.38c-1.15.382-2.375.689-3.602.919-.613.076-1.226.153-1.916.23-.306 0-.613.076-.996.076h-1.84c-.383 0-.766 0-1.149-.076h-.46c-.153 0-.383 0-.536-.077-.383-.077-.69-.077-1.073-.153-2.836-.383-5.671-1.226-8.354-2.453a29.3 29.3 0 0 1-7.74-5.058c-2.376-2.146-4.445-4.675-6.055-7.587s-2.759-6.131-3.295-9.503c-.23-1.686-.383-3.449-.307-5.135 0-.46.077-.92.077-1.38v-.613c0-.23.077-.46.077-.69.076-.919.23-1.839.383-2.758 1.303-7.358 4.981-14.562 10.653-20.003 1.456-1.38 2.988-2.606 4.598-3.755a31.7 31.7 0 0 1 5.211-2.99 36 36 0 0 1 5.672-2.068c1.915-.537 3.908-.844 5.977-1.073.997-.077 1.993-.154 3.066-.154h2.376l.843.077c2.222.153 4.368.46 6.514.996 4.292.92 8.507 2.53 12.415 4.675 7.818 4.369 14.485 11.113 18.547 19.237 2.07 4.061 3.525 8.43 4.215 12.951.153 1.15.307 2.3.383 3.45l.077.842.077.843v3.296c0 .536-.077 1.456-.077 1.992-.077 1.227-.23 2.53-.383 3.756s-.383 2.452-.613 3.678a50 50 0 0 1-.843 3.602 64 64 0 0 1-2.3 7.128 62.4 62.4 0 0 1-7.204 13.105c-5.9 8.124-13.948 14.715-23.144 18.93-4.599 2.069-9.427 3.602-14.408 4.368-2.453.46-4.982.69-7.511.766h-3.832a36 36 0 0 1-4.062-.23c-5.365-.383-10.653-1.379-15.864-2.835-5.135-1.456-10.116-3.525-14.868-5.978-9.427-5.058-17.933-11.956-24.524-20.31a79 79 0 0 1-8.584-13.334 79 79 0 0 1-5.671-14.638c-1.38-5.058-2.223-10.193-2.606-15.405l-.077-.996v-6.821c.077-2.529.307-5.211.614-7.817.306-2.606.766-5.288 1.302-7.894.537-2.605 1.15-5.211 1.916-7.817a103 103 0 0 1 5.442-14.791c4.368-9.35 10.04-17.704 16.86-24.371 1.686-1.686 3.449-3.22 5.288-4.752a78 78 0 0 1 5.748-4.138c1.916-1.303 3.985-2.453 6.055-3.526a40 40 0 0 1 3.142-1.533l3.219-1.379c2.146-.92 4.368-1.686 6.667-2.376.537-.153 1.15-.306 1.686-.536.537-.154 1.15-.307 1.686-.46 1.15-.307 2.3-.613 3.45-.843.536-.153 1.149-.23 1.762-.383.613-.154 1.15-.23 1.763-.384.613-.076 1.15-.23 1.762-.306l.843-.153.92-.154c.613-.076 1.15-.153 1.763-.23.69-.076 1.302-.153 1.992-.23.537-.076 1.456-.153 1.993-.23.383-.076.843-.076 1.226-.153l.843-.076.383-.077h.46c.69-.077 1.303-.077 1.993-.153l.996-.077h.767c.536 0 1.149-.076 1.685-.076a99 99 0 0 1 6.745 0c4.445.153 8.813.69 13.028 1.456 8.507 1.61 16.478 4.291 23.758 7.893 7.28 3.526 13.719 7.894 19.39 12.646.383.306.69.613 1.073.92.306.306.69.613.996.92.69.612 1.303 1.225 1.993 1.838.69.614 1.303 1.227 1.916 1.84a44 44 0 0 1 1.839 1.916c2.376 2.529 4.598 5.058 6.59 7.664a99 99 0 0 1 9.734 15.25l.46.92.46.92c.306.613.613 1.226.843 1.84.306.613.536 1.149.843 1.762.23.613.536 1.15.766 1.763.92 2.299 1.84 4.521 2.53 6.59 1.149 3.373 1.992 6.362 2.682 8.967a2.043 2.043 0 0 0 2.299 1.61c1.15-.077 1.992-.996 1.992-2.146.077-2.759 0-6.054-.383-9.81"})]}),SJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 346",...e,children:[y.jsx("path",{fill:"#5382A1",d:"M82.554 267.473s-13.198 7.675 9.393 10.272c27.369 3.122 41.356 2.675 71.517-3.034 0 0 7.93 4.972 19.003 9.279-67.611 28.977-153.019-1.679-99.913-16.517M74.292 229.659s-14.803 10.958 7.805 13.296c29.236 3.016 52.324 3.263 92.276-4.43 0 0 5.526 5.602 14.215 8.666-81.747 23.904-172.798 1.885-114.296-17.532"}),y.jsx("path",{fill:"#E76F00",d:"M143.942 165.515c16.66 19.18-4.377 36.44-4.377 36.44s42.301-21.837 22.874-49.183c-18.144-25.5-32.059-38.172 43.268-81.858 0 0-118.238 29.53-61.765 94.6"}),y.jsx("path",{fill:"#5382A1",d:"M233.364 295.442s9.767 8.047-10.757 14.273c-39.026 11.823-162.432 15.393-196.714.471-12.323-5.36 10.787-12.8 18.056-14.362 7.581-1.644 11.914-1.337 11.914-1.337-13.705-9.655-88.583 18.957-38.034 27.15 137.853 22.356 251.292-10.066 215.535-26.195M88.9 190.48s-62.771 14.91-22.228 20.323c17.118 2.292 51.243 1.774 83.03-.89 25.978-2.19 52.063-6.85 52.063-6.85s-9.16 3.923-15.787 8.448c-63.744 16.765-186.886 8.966-151.435-8.183 29.981-14.492 54.358-12.848 54.358-12.848M201.506 253.422c64.8-33.672 34.839-66.03 13.927-61.67-5.126 1.066-7.411 1.99-7.411 1.99s1.903-2.98 5.537-4.27c41.37-14.545 73.187 42.897-13.355 65.647 0 .001 1.003-.895 1.302-1.697"}),y.jsx("path",{fill:"#E76F00",d:"M162.439.371s35.887 35.9-34.037 91.101c-56.071 44.282-12.786 69.53-.023 98.377-32.73-29.53-56.75-55.526-40.635-79.72C111.395 74.612 176.918 57.393 162.439.37"}),y.jsx("path",{fill:"#5382A1",d:"M95.268 344.665c62.199 3.982 157.712-2.209 159.974-31.64 0 0-4.348 11.158-51.404 20.018-53.088 9.99-118.564 8.824-157.399 2.421.001 0 7.95 6.58 48.83 9.201"})]}),EJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 249",...e,children:[y.jsx("path",{fill:"#326DE6",d:"M82.085 244.934c-5.946 0-11.561-2.642-15.36-7.432L8.92 165.657c-3.799-4.79-5.285-10.9-3.799-16.847l20.645-89.682c1.321-5.946 5.285-10.736 10.736-13.378l83.571-39.97c2.643-1.32 5.616-1.981 8.589-1.981s5.945.66 8.588 1.982l83.572 39.804c5.45 2.642 9.414 7.432 10.735 13.378l20.645 89.682c1.322 5.946 0 12.057-3.798 16.847l-57.807 71.845c-3.799 4.624-9.414 7.432-15.36 7.432z"}),y.jsx("path",{fill:"#FFF",d:"M128.495 7.928c2.313 0 4.625.495 6.772 1.486l83.572 39.804c4.294 2.147 7.597 6.111 8.588 10.736l20.645 89.682c1.156 4.79 0 9.745-3.138 13.543l-57.806 71.846c-2.973 3.798-7.598 5.945-12.387 5.945H82.085c-4.79 0-9.414-2.147-12.387-5.945l-57.806-71.846c-2.973-3.798-4.13-8.753-3.138-13.543l20.645-89.682c1.156-4.79 4.294-8.754 8.588-10.736L121.56 9.25c2.147-.826 4.624-1.321 6.936-1.321m0-7.763c-3.468 0-6.936.826-10.24 2.312l-83.571 39.97c-6.607 3.138-11.231 8.918-12.883 16.02L1.156 148.15c-1.651 7.102 0 14.369 4.625 20.15l57.806 71.845c4.46 5.615 11.231 8.753 18.333 8.753h92.655c7.102 0 13.874-3.138 18.333-8.753l57.807-71.846c4.624-5.615 6.276-13.047 4.624-20.15l-20.645-89.682c-1.651-7.102-6.276-12.882-12.882-16.02L138.57 2.476C135.432.991 131.964.165 128.495.165"}),y.jsx("path",{fill:"#FFF",d:"M212.232 142.534q-.248 0 0 0h-.165c-.165 0-.33 0-.33-.165-.33 0-.66-.165-.991-.165-1.156-.165-2.147-.33-3.138-.33-.496 0-.991 0-1.652-.166h-.165c-3.468-.33-6.276-.66-8.919-1.486-1.156-.496-1.486-1.156-1.817-1.817 0-.165-.165-.165-.165-.33l-2.147-.66a65.3 65.3 0 0 0-1.156-23.289 68 68 0 0 0-9.249-21.636l1.652-1.486v-.33c0-.826.165-1.652.825-2.478 1.982-1.817 4.46-3.303 7.433-5.12.495-.33.99-.495 1.486-.826.991-.495 1.817-.99 2.808-1.651.165-.165.495-.33.826-.66.165-.166.33-.166.33-.331 2.312-1.982 2.808-5.285 1.156-7.433-.826-1.156-2.312-1.816-3.799-1.816-1.32 0-2.477.495-3.633 1.321l-.33.33c-.33.165-.496.496-.826.661-.826.826-1.487 1.486-2.147 2.312-.33.33-.66.826-1.156 1.156-2.313 2.478-4.46 4.46-6.607 5.946q-.742.495-1.486.496c-.33 0-.661 0-.991-.166h-.33l-1.983 1.322c-2.147-2.312-4.459-4.294-6.771-6.276a65.96 65.96 0 0 0-34.519-13.709l-.165-2.147-.33-.33c-.496-.496-1.156-.991-1.322-2.147-.165-2.643.166-5.616.496-8.919v-.165c0-.496.165-1.156.33-1.652.165-.99.33-1.982.496-3.138v-1.486c0-2.973-2.313-5.45-5.12-5.45-1.322 0-2.643.66-3.634 1.651-.99.991-1.486 2.312-1.486 3.799v1.321c0 1.156.165 2.147.495 3.138.165.496.165.991.33 1.652v.165c.33 3.303.826 6.276.496 8.919-.165 1.156-.826 1.651-1.321 2.147l-.33.33-.166 2.147c-2.973.33-5.946.66-8.919 1.321-12.717 2.808-23.948 9.25-32.701 18.498l-1.652-1.156h-.33c-.33 0-.661.165-.991.165q-.743 0-1.487-.495c-2.147-1.486-4.294-3.634-6.606-6.111-.33-.33-.66-.826-1.156-1.156-.661-.826-1.322-1.487-2.148-2.312-.165-.166-.495-.33-.825-.661-.165-.165-.33-.165-.33-.33a5.77 5.77 0 0 0-3.634-1.322c-1.487 0-2.973.661-3.799 1.817-1.652 2.147-1.156 5.45 1.156 7.432.165 0 .165.166.33.166.33.165.496.495.826.66.991.66 1.817 1.156 2.808 1.652.496.165.991.495 1.487.826 2.972 1.816 5.45 3.303 7.432 5.12.826.825.826 1.651.826 2.477v.33l1.651 1.487c-.33.495-.66.826-.826 1.321-8.258 13.048-11.396 28.408-9.249 43.603l-2.147.66c0 .166-.165.166-.165.33-.33.661-.826 1.322-1.817 1.817-2.477.826-5.45 1.157-8.918 1.487h-.166c-.495 0-1.156 0-1.651.165-.991 0-1.982.165-3.138.33-.33 0-.66.166-.991.166-.165 0-.33 0-.496.165-2.973.66-4.79 3.468-4.294 6.11.496 2.313 2.643 3.8 5.285 3.8.496 0 .826 0 1.322-.166.165 0 .33 0 .33-.165.33 0 .66-.165.99-.165 1.157-.33 1.983-.66 2.974-1.156.495-.165.99-.496 1.486-.66h.165c3.138-1.157 5.946-2.148 8.589-2.478h.33c.991 0 1.652.495 2.147.826.165 0 .165.165.33.165l2.313-.33c3.964 12.221 11.561 23.122 21.636 31.05 2.312 1.816 4.624 3.303 7.102 4.79l-.991 2.146c0 .166.165.166.165.33.33.661.66 1.487.33 2.643-.99 2.478-2.477 4.955-4.294 7.763v.165c-.33.496-.66.826-.99 1.321-.661.826-1.157 1.652-1.818 2.643-.165.165-.33.495-.495.826 0 .165-.165.33-.165.33-1.321 2.808-.33 5.946 2.147 7.102q.99.496 1.982.496c1.982 0 3.964-1.322 4.955-3.139 0-.165.165-.33.165-.33.165-.33.33-.66.495-.826.496-1.156.661-1.982.991-2.973l.496-1.486c1.156-3.303 1.982-5.946 3.468-8.258.66-.991 1.487-1.156 2.147-1.487.165 0 .165 0 .33-.165l1.157-2.147c7.267 2.808 15.195 4.294 23.122 4.294 4.79 0 9.745-.495 14.37-1.651a73 73 0 0 0 8.588-2.478l.99 1.817c.166 0 .166 0 .331.165.826.165 1.486.496 2.147 1.487 1.321 2.312 2.312 5.12 3.468 8.258v.165l.496 1.486c.33.991.495 1.982.99 2.973.166.33.331.496.496.826 0 .165.166.33.166.33.99 1.982 2.972 3.139 4.954 3.139q.992 0 1.982-.496c1.156-.66 2.147-1.652 2.478-2.973.33-1.321.33-2.808-.33-4.129 0-.165-.166-.165-.166-.33-.165-.33-.33-.66-.495-.826-.496-.991-1.156-1.817-1.817-2.643-.33-.495-.66-.825-.99-1.32v-.166c-1.818-2.808-3.47-5.285-4.295-7.763-.33-1.156 0-1.816.165-2.642 0-.165.165-.165.165-.33l-.826-1.982c8.754-5.12 16.186-12.388 21.802-21.306 2.973-4.625 5.285-9.745 6.936-14.865l1.982.33c.166 0 .166-.165.33-.165.661-.33 1.157-.825 2.148-.825h.33c2.643.33 5.45 1.32 8.589 2.477h.165c.495.165.99.495 1.486.66.991.496 1.817.826 2.973 1.157.33 0 .66.165.991.165.165 0 .33 0 .495.165.496.165.826.165 1.322.165 2.477 0 4.624-1.651 5.285-3.798 0-1.982-1.817-4.625-4.79-5.45m-76.47-8.093-7.267 3.469-7.267-3.469-1.816-7.762 4.954-6.276h8.093l4.955 6.276zm43.108-17.176a52.1 52.1 0 0 1 1.156 16.68l-25.27-7.266c-2.312-.66-3.633-2.973-3.138-5.285.165-.661.496-1.322.991-1.817l19.985-18.003c2.807 4.625 4.954 9.91 6.276 15.69m-14.204-25.6-21.636 15.36c-1.817 1.156-4.295.825-5.781-.991-.495-.496-.66-1.157-.826-1.817l-1.486-26.922a50.13 50.13 0 0 1 29.729 14.37M116.769 78.12c1.817-.33 3.468-.66 5.285-.99l-1.486 26.425c-.165 2.312-1.982 4.294-4.46 4.294-.66 0-1.486-.165-1.982-.495L92.16 91.665c6.772-6.772 15.195-11.397 24.609-13.544m-32.537 23.453 19.654 17.507c1.817 1.487 1.982 4.294.496 6.111-.496.66-1.156 1.156-1.982 1.322l-25.6 7.432c-.991-11.231 1.486-22.627 7.432-32.372m-4.46 44.759 26.262-4.46c2.147-.165 4.129 1.322 4.624 3.469.165.99.165 1.817-.165 2.643l-10.075 24.278c-9.249-5.946-16.681-15.03-20.645-25.93m60.285 32.867c-3.799.826-7.598 1.321-11.562 1.321-5.78 0-11.396-.99-16.68-2.642l13.047-23.618c1.321-1.487 3.468-2.147 5.285-1.156a7 7 0 0 1 1.982 1.816l12.717 22.958c-1.486.495-3.138.826-4.79 1.321m32.206-22.957c-4.129 6.606-9.58 11.891-15.855 16.02l-10.405-24.94c-.496-1.981.33-4.128 2.312-5.12.66-.33 1.486-.495 2.312-.495l26.426 4.46c-.991 3.633-2.643 6.937-4.79 10.075"})]}),CJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 291",...e,children:[y.jsx("path",{fill:"#009639",d:"M2.054 218.187c1.32 2.347 3.227 4.108 5.575 5.428l112.962 65.137c4.695 2.787 10.416 2.787 14.964 0l112.963-65.137c4.695-2.64 7.482-7.629 7.482-13.057V80.284c0-5.428-2.787-10.416-7.482-13.056L135.555 2.09c-4.694-2.788-10.416-2.788-14.964 0L7.63 67.228C2.787 69.868 0 74.856 0 80.284v130.42c0 2.642.587 5.136 2.054 7.483"}),y.jsx("path",{fill:"#FFF",d:"M91.837 195.154a14.463 14.463 0 0 1-14.524 14.524 14.463 14.463 0 0 1-14.523-14.524V95.542c0-7.776 6.895-14.084 16.43-14.084 6.896 0 14.965 2.787 19.806 8.802l4.4 5.282 60.737 72.618V95.835a14.463 14.463 0 0 1 14.524-14.524 14.463 14.463 0 0 1 14.523 14.524v99.613c0 7.775-6.895 14.083-16.43 14.083-6.896 0-14.965-2.787-19.806-8.802l-65.137-77.754z"})]}),$Je=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 264",...e,children:[y.jsx("path",{d:"M255.008 158.086c-1.535-4.649-5.556-7.887-10.756-8.664-2.452-.366-5.26-.21-8.583.475-5.792 1.195-10.089 1.65-13.225 1.738 11.837-19.985 21.462-42.775 27.003-64.228 8.96-34.689 4.172-50.492-1.423-57.64C233.217 10.847 211.614.683 185.552.372c-13.903-.17-26.108 2.575-32.475 4.549-5.928-1.046-12.302-1.63-18.99-1.738-12.537-.2-23.614 2.533-33.079 8.15-5.24-1.772-13.65-4.27-23.362-5.864-22.842-3.75-41.252-.828-54.718 8.685C6.622 25.672-.937 45.684.461 73.634c.444 8.874 5.408 35.874 13.224 61.48 4.492 14.718 9.282 26.94 14.237 36.33 7.027 13.315 14.546 21.156 22.987 23.972 4.731 1.576 13.327 2.68 22.368-4.85 1.146 1.388 2.675 2.767 4.704 4.048 2.577 1.625 5.728 2.953 8.875 3.74 11.341 2.835 21.964 2.126 31.027-1.848.056 1.612.099 3.152.135 4.482.06 2.157.12 4.272.199 6.25.537 13.374 1.447 23.773 4.143 31.049.148.4.347 1.01.557 1.657 1.345 4.118 3.594 11.012 9.316 16.411 5.925 5.593 13.092 7.308 19.656 7.308 3.292 0 6.433-.432 9.188-1.022 9.82-2.105 20.973-5.311 29.041-16.799 7.628-10.86 11.336-27.217 12.007-52.99q.13-1.094.244-2.088l.16-1.362 1.797.158.463.031c10.002.456 22.232-1.665 29.743-5.154 5.935-2.754 24.954-12.795 20.476-26.351"}),y.jsx("path",{fill:"#336791",d:"M237.906 160.722c-29.74 6.135-31.785-3.934-31.785-3.934 31.4-46.593 44.527-105.736 33.2-120.211-30.904-39.485-84.399-20.811-85.292-20.327l-.287.052c-5.876-1.22-12.451-1.946-19.842-2.067-13.456-.22-23.664 3.528-31.41 9.402 0 0-95.43-39.314-90.991 49.444.944 18.882 27.064 142.873 58.218 105.422 11.387-13.695 22.39-25.274 22.39-25.274 5.464 3.63 12.006 5.482 18.864 4.817l.533-.452c-.166 1.7-.09 3.363.213 5.332-8.026 8.967-5.667 10.541-21.711 13.844-16.235 3.346-6.698 9.302-.471 10.86 7.549 1.887 25.013 4.561 36.813-11.958l-.47 1.885c3.144 2.519 5.352 16.383 4.982 28.952-.37 12.568-.617 21.197 1.86 27.937 2.479 6.74 4.948 21.905 26.04 17.386 17.623-3.777 26.756-13.564 28.027-29.89.901-11.606 2.942-9.89 3.07-20.267l1.637-4.912c1.887-15.733.3-20.809 11.157-18.448l2.64.232c7.99.363 18.45-1.286 24.589-4.139 13.218-6.134 21.058-16.377 8.024-13.686z"}),y.jsx("path",{fill:"#FFF",d:"M108.076 81.525c-2.68-.373-5.107-.028-6.335.902-.69.523-.904 1.129-.962 1.546-.154 1.105.62 2.327 1.096 2.957 1.346 1.784 3.312 3.01 5.258 3.28q.423.059.842.058c3.245 0 6.196-2.527 6.456-4.392.325-2.336-3.066-3.893-6.355-4.35M196.86 81.599c-.256-1.831-3.514-2.353-6.606-1.923-3.088.43-6.082 1.824-5.832 3.659.2 1.427 2.777 3.863 5.827 3.863q.387 0 .78-.054c2.036-.282 3.53-1.575 4.24-2.32 1.08-1.136 1.706-2.402 1.591-3.225"}),y.jsx("path",{fill:"#FFF",d:"M247.802 160.025c-1.134-3.429-4.784-4.532-10.848-3.28-18.005 3.716-24.453 1.142-26.57-.417 13.995-21.32 25.508-47.092 31.719-71.137 2.942-11.39 4.567-21.968 4.7-30.59.147-9.463-1.465-16.417-4.789-20.665-13.402-17.125-33.072-26.311-56.882-26.563-16.369-.184-30.199 4.005-32.88 5.183-5.646-1.404-11.801-2.266-18.502-2.376-12.288-.199-22.91 2.743-31.704 8.74-3.82-1.422-13.692-4.811-25.765-6.756-20.872-3.36-37.458-.814-49.294 7.571-14.123 10.006-20.643 27.892-19.38 53.16.425 8.501 5.269 34.653 12.913 59.698 10.062 32.964 21 51.625 32.508 55.464 1.347.449 2.9.763 4.613.763 4.198 0 9.345-1.892 14.7-8.33a530 530 0 0 1 20.261-22.926c4.524 2.428 9.494 3.784 14.577 3.92q.016.2.035.398a118 118 0 0 0-2.57 3.175c-3.522 4.471-4.255 5.402-15.592 7.736-3.225.666-11.79 2.431-11.916 8.435-.136 6.56 10.125 9.315 11.294 9.607 4.074 1.02 7.999 1.523 11.742 1.523 9.103 0 17.114-2.992 23.516-8.781-.197 23.386.778 46.43 3.586 53.451 2.3 5.748 7.918 19.795 25.664 19.794 2.604 0 5.47-.303 8.623-.979 18.521-3.97 26.564-12.156 29.675-30.203 1.665-9.645 4.522-32.676 5.866-45.03 2.836.885 6.487 1.29 10.434 1.289 8.232 0 17.731-1.749 23.688-4.514 6.692-3.108 18.768-10.734 16.578-17.36m-44.106-83.48c-.061 3.647-.563 6.958-1.095 10.414-.573 3.717-1.165 7.56-1.314 12.225-.147 4.54.42 9.26.968 13.825 1.108 9.22 2.245 18.712-2.156 28.078a37 37 0 0 1-1.95-4.009c-.547-1.326-1.735-3.456-3.38-6.404-6.399-11.476-21.384-38.35-13.713-49.316 2.285-3.264 8.084-6.62 22.64-4.813m-17.644-61.787c21.334.471 38.21 8.452 50.158 23.72 9.164 11.711-.927 64.998-30.14 110.969a171 171 0 0 0-.886-1.117l-.37-.462c7.549-12.467 6.073-24.802 4.759-35.738-.54-4.488-1.05-8.727-.92-12.709.134-4.22.692-7.84 1.232-11.34.663-4.313 1.338-8.776 1.152-14.037.139-.552.195-1.204.122-1.978-.475-5.045-6.235-20.144-17.975-33.81-6.422-7.475-15.787-15.84-28.574-21.482 5.5-1.14 13.021-2.203 21.442-2.016M66.674 175.778c-5.9 7.094-9.974 5.734-11.314 5.288-8.73-2.912-18.86-21.364-27.791-50.624-7.728-25.318-12.244-50.777-12.602-57.916-1.128-22.578 4.345-38.313 16.268-46.769 19.404-13.76 51.306-5.524 64.125-1.347-.184.182-.376.352-.558.537-21.036 21.244-20.537 57.54-20.485 59.759-.002.856.07 2.068.168 3.735.362 6.105 1.036 17.467-.764 30.334-1.672 11.957 2.014 23.66 10.111 32.109a36 36 0 0 0 2.617 2.468c-3.604 3.86-11.437 12.396-19.775 22.426m22.479-29.993c-6.526-6.81-9.49-16.282-8.133-25.99 1.9-13.592 1.199-25.43.822-31.79-.053-.89-.1-1.67-.127-2.285 3.073-2.725 17.314-10.355 27.47-8.028 4.634 1.061 7.458 4.217 8.632 9.645 6.076 28.103.804 39.816-3.432 49.229-.873 1.939-1.698 3.772-2.402 5.668l-.546 1.466c-1.382 3.706-2.668 7.152-3.465 10.424-6.938-.02-13.687-2.984-18.819-8.34m1.065 37.9c-2.026-.506-3.848-1.385-4.917-2.114.893-.42 2.482-.992 5.238-1.56 13.337-2.745 15.397-4.683 19.895-10.394 1.031-1.31 2.2-2.794 3.819-4.602l.002-.002c2.411-2.7 3.514-2.242 5.514-1.412 1.621.67 3.2 2.702 3.84 4.938.303 1.056.643 3.06-.47 4.62-9.396 13.156-23.088 12.987-32.921 10.526m69.799 64.952c-16.316 3.496-22.093-4.829-25.9-14.346-2.457-6.144-3.665-33.85-2.808-64.447.011-.407-.047-.8-.159-1.17a15.4 15.4 0 0 0-.456-2.162c-1.274-4.452-4.379-8.176-8.104-9.72-1.48-.613-4.196-1.738-7.46-.903.696-2.868 1.903-6.107 3.212-9.614l.549-1.475c.618-1.663 1.394-3.386 2.214-5.21 4.433-9.848 10.504-23.337 3.915-53.81-2.468-11.414-10.71-16.988-23.204-15.693-7.49.775-14.343 3.797-17.761 5.53-.735.372-1.407.732-2.035 1.082.954-11.5 4.558-32.992 18.04-46.59 8.489-8.56 19.794-12.788 33.568-12.56 27.14.444 44.544 14.372 54.366 25.979 8.464 10.001 13.047 20.076 14.876 25.51-13.755-1.399-23.11 1.316-27.852 8.096-10.317 14.748 5.644 43.372 13.315 57.129 1.407 2.521 2.621 4.7 3.003 5.626 2.498 6.054 5.732 10.096 8.093 13.046.724.904 1.426 1.781 1.96 2.547-4.166 1.201-11.649 3.976-10.967 17.847-.55 6.96-4.461 39.546-6.448 51.059-2.623 15.21-8.22 20.875-23.957 24.25m68.104-77.936c-4.26 1.977-11.389 3.46-18.161 3.779-7.48.35-11.288-.838-12.184-1.569-.42-8.644 2.797-9.547 6.202-10.503.535-.15 1.057-.297 1.561-.473q.469.383 1.032.756c6.012 3.968 16.735 4.396 31.874 1.271l.166-.033c-2.042 1.909-5.536 4.471-10.49 6.772"})]}),RJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 257",...e,children:y.jsx("path",{fill:"#DA4E31",d:"M128.001.667C57.311.667 0 57.971 0 128.664c0 70.69 57.311 127.998 128.001 127.998S256 199.354 256 128.664C256 57.97 198.689.667 128.001.667m0 239.56c-20.112 0-36.419-13.435-36.419-30.004h72.838c0 16.566-16.306 30.004-36.419 30.004m60.153-39.94H67.842V178.47h120.314v21.816zm-.432-33.045H68.185c-.398-.458-.804-.91-1.188-1.375-12.315-14.954-15.216-22.76-18.032-30.716-.048-.262 14.933 3.06 25.556 5.45 0 0 5.466 1.265 13.458 2.722-7.673-8.994-12.23-20.428-12.23-32.116 0-25.658 19.68-48.079 12.58-66.201 6.91.562 14.3 14.583 14.8 36.505 7.346-10.152 10.42-28.69 10.42-40.056 0-11.769 7.755-25.44 15.512-25.907-6.915 11.396 1.79 21.165 9.53 45.4 2.902 9.103 2.532 24.423 4.772 34.138.744-20.178 4.213-49.62 17.014-59.784-5.647 12.8.836 28.818 5.27 36.518 7.154 12.424 11.49 21.836 11.49 39.638 0 11.936-4.407 23.173-11.84 31.958 8.452-1.586 14.289-3.016 14.289-3.016l27.45-5.355c.002-.002-3.987 16.401-19.314 32.197"})}),zJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 228",...e,children:y.jsx("path",{fill:"#00D8FF",d:"M210.483 73.824a172 172 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621 6.238-30.281 2.16-54.676-11.769-62.708-13.355-7.7-35.196.329-57.254 19.526a171 171 0 0 0-6.375 5.848 156 156 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233 50.33 10.957 46.379 33.89 51.995 62.588a171 171 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a146 146 0 0 0 6.921 2.165 168 168 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266 13.744 7.926 36.812-.22 59.273-19.855a146 146 0 0 0 5.342-4.923 168 168 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586 13.731-7.949 18.194-32.003 12.4-61.268a145 145 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488 29.348-9.723 48.443-25.443 48.443-41.52 0-15.417-17.868-30.326-45.517-39.844m-6.365 70.984c-1.4.463-2.836.91-4.3 1.345-3.24-10.257-7.612-21.163-12.963-32.432 5.106-11 9.31-21.767 12.459-31.957 2.619.758 5.16 1.557 7.61 2.4 23.69 8.156 38.14 20.213 38.14 29.504 0 9.896-15.606 22.743-40.946 31.14m-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787-1.524 8.219-4.59 13.698-8.382 15.893-8.067 4.67-25.32-1.4-43.927-17.412a157 157 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246 12.376-1.098 24.068-2.894 34.671-5.345q.785 3.162 1.386 6.193M87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675-8.075-4.657-11.432-22.636-6.853-46.752a157 157 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994 7.084 9.967 14.501 19.128 21.976 27.15a135 135 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94M50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863-6.35-5.437-9.555-10.836-9.555-15.216 0-9.322 13.897-21.212 37.076-29.293 2.813-.98 5.757-1.905 8.812-2.773 3.204 10.42 7.406 21.315 12.477 32.332-5.137 11.18-9.399 22.249-12.634 32.792a135 135 0 0 1-6.318-1.979m12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789 8.564-4.958 27.502 2.111 47.463 19.835a144 144 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988-12.04 1.116-23.565 2.908-34.161 5.309a160 160 0 0 1-1.76-7.887m110.427 27.268a348 348 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08-2.206 7.072-4.956 14.465-8.193 22.045a381 381 0 0 0-7.365-13.322m-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322 322 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18M82.802 87.83a323 323 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152 7.304-1.634 15.093-2.97 23.209-3.984a322 322 0 0 0-7.848 12.897m8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793 2.26-7.3 5.045-14.885 8.298-22.6a321 321 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147m37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433 4.902.192 9.899.29 14.978.29 5.218 0 10.376-.117 15.453-.343-4.985 6.774-10.018 12.97-15.028 18.486m52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52-7.422 1.694-15.436 3.058-23.88 4.071a382 382 0 0 0 7.859-13.026 347 347 0 0 0 7.425-13.565m-16.898 8.101a359 359 0 0 1-12.281 19.815 329 329 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310 310 0 0 1-12.513-19.846h.001a307 307 0 0 1-10.923-20.627 310 310 0 0 1 10.89-20.637l-.001.001a307 307 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329 329 0 0 1 12.335 19.695 359 359 0 0 1 11.036 20.54 330 330 0 0 1-11 20.722m22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026q-.518 2.504-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408-7.034-10.017-14.323-19.124-21.64-27.008a161 161 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3M128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86-22.86-10.235-22.86-22.86 10.235-22.86 22.86-22.86"})}),TJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 220",...e,children:[y.jsx("path",{fill:"#912626",d:"M245.97 168.943c-13.662 7.121-84.434 36.22-99.501 44.075s-23.437 7.78-35.34 2.09c-11.902-5.69-87.216-36.112-100.783-42.597C3.566 169.271 0 166.535 0 163.951v-25.876s98.05-21.345 113.879-27.024c15.828-5.679 21.32-5.884 34.79-.95 13.472 4.936 94.018 19.468 107.331 24.344l-.006 25.51c.002 2.558-3.07 5.364-10.024 8.988"}),y.jsx("path",{fill:"#C6302B",d:"M245.965 143.22c-13.661 7.118-84.431 36.218-99.498 44.072-15.066 7.857-23.436 7.78-35.338 2.09-11.903-5.686-87.214-36.113-100.78-42.594-13.566-6.485-13.85-10.948-.524-16.166 13.326-5.22 88.224-34.605 104.055-40.284 15.828-5.677 21.319-5.884 34.789-.948 13.471 4.934 83.819 32.935 97.13 37.81 13.316 4.881 13.827 8.9.166 16.02"}),y.jsx("path",{fill:"#912626",d:"M245.97 127.074c-13.662 7.122-84.434 36.22-99.501 44.078-15.067 7.853-23.437 7.777-35.34 2.087-11.903-5.687-87.216-36.112-100.783-42.597C3.566 127.402 0 124.67 0 122.085V96.206s98.05-21.344 113.879-27.023c15.828-5.679 21.32-5.885 34.79-.95C162.142 73.168 242.688 87.697 256 92.574l-.006 25.513c.002 2.557-3.07 5.363-10.024 8.987"}),y.jsx("path",{fill:"#C6302B",d:"M245.965 101.351c-13.661 7.12-84.431 36.218-99.498 44.075-15.066 7.854-23.436 7.777-35.338 2.087-11.903-5.686-87.214-36.112-100.78-42.594-13.566-6.483-13.85-10.947-.524-16.167C23.151 83.535 98.05 54.148 113.88 48.47c15.828-5.678 21.319-5.884 34.789-.949 13.471 4.934 83.819 32.933 97.13 37.81 13.316 4.88 13.827 8.9.166 16.02"}),y.jsx("path",{fill:"#912626",d:"M245.97 83.653c-13.662 7.12-84.434 36.22-99.501 44.078-15.067 7.854-23.437 7.777-35.34 2.087-11.903-5.687-87.216-36.113-100.783-42.595C3.566 83.98 0 81.247 0 78.665v-25.88s98.05-21.343 113.879-27.021c15.828-5.68 21.32-5.884 34.79-.95C162.142 29.749 242.688 44.278 256 49.155l-.006 25.512c.002 2.555-3.07 5.361-10.024 8.986"}),y.jsx("path",{fill:"#C6302B",d:"M245.965 57.93c-13.661 7.12-84.431 36.22-99.498 44.074-15.066 7.854-23.436 7.777-35.338 2.09C99.227 98.404 23.915 67.98 10.35 61.497S-3.5 50.55 9.825 45.331C23.151 40.113 98.05 10.73 113.88 5.05c15.828-5.679 21.319-5.883 34.789-.948s83.819 32.934 97.13 37.811c13.316 4.876 13.827 8.897.166 16.017"}),y.jsx("path",{fill:"#FFF",d:"m159.283 32.757-22.01 2.285-4.927 11.856-7.958-13.23-25.415-2.284 18.964-6.839-5.69-10.498 17.755 6.944 16.738-5.48-4.524 10.855zM131.032 90.275 89.955 73.238l58.86-9.035zM74.082 39.347c17.375 0 31.46 5.46 31.46 12.194 0 6.736-14.085 12.195-31.46 12.195s-31.46-5.46-31.46-12.195c0-6.734 14.085-12.194 31.46-12.194"}),y.jsx("path",{fill:"#621B1C",d:"m185.295 35.998 34.836 13.766-34.806 13.753z"}),y.jsx("path",{fill:"#9A2928",d:"m146.755 51.243 38.54-15.245.03 27.519-3.779 1.478z"})]}),jJe=e=>y.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 258",...e,children:y.jsxs("g",{fill:"#FFA64D",children:[y.jsx("path",{d:"M13.222 183.045C30.007 165.978 244.278 4.782 247.936 8.44c2.813 2.813-156.507 219.616-173.387 236.589s-44.26 16.785-61.14-.282c-16.972-17.066-16.972-44.73-.187-61.702",opacity:.5}),y.jsx("path",{d:"M22.693 175.45c20.63-12.098 230.119-95.18 232.65-90.68 1.97 3.47-168.79 154.538-189.514 166.541-20.63 12.003-46.98 4.783-58.89-16.222-11.909-20.818-4.876-47.543 15.754-59.64",opacity:.3}),y.jsx("path",{d:"M82.051 235.276C94.054 214.46 176.387 3.47 171.98.938 168.51-1.032 18.661 171.042 6.658 191.859c-11.91 20.818-4.689 47.356 16.129 59.265C43.51 263.127 70.048 256 82.05 235.276",opacity:.3}),y.jsx("path",{d:"M32.727 171.042c23.068-6.283 216.521-30.195 217.928-25.225 1.031 3.845-172.73 103.431-195.798 109.714s-46.699-7.595-52.794-30.945 7.69-47.261 30.664-53.544",opacity:.2}),y.jsx("path",{d:"M32.727 171.042c23.068-6.283 179.387 29.07 180.7 33.946 1.032 3.844-135.595 44.167-158.664 50.45-23.068 6.282-46.699-7.596-52.794-30.946-6.001-23.255 7.783-47.167 30.758-53.45",opacity:.1}),y.jsx("path",{d:"M86.459 225.055c6.282-23.256-28.882-180.7-33.852-182.013C48.762 42.01 8.815 179.575 2.626 202.83c-6.19 23.255 7.595 47.074 30.757 53.075 23.068 6.19 46.887-7.595 53.076-30.851",opacity:.1}),y.jsx("path",{d:"M86.459 225.055C92.74 201.799 116.372 6.939 111.496 5.626 107.651 4.595 8.908 179.576 2.626 202.925-3.564 226.18 10.22 249.999 33.383 256c23.068 6.189 46.887-7.69 53.076-30.945",opacity:.2})]})}),AJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 256 256",...e,children:[y.jsx("path",{fill:"#85EA2D",d:"M127.999 249.895c-67.215 0-121.9-54.68-121.9-121.896S60.785 6.102 128 6.102c67.214 0 121.899 54.685 121.899 121.9 0 67.214-54.685 121.893-121.9 121.893"}),y.jsx("path",{fill:"#173647",d:"M127.999 12.202c63.954 0 115.797 51.842 115.797 115.797 0 63.952-51.843 115.797-115.797 115.797-63.952 0-115.797-51.845-115.797-115.797S64.047 12.202 127.999 12.202m0-12.202C57.419 0 0 57.42 0 127.999s57.42 127.998 127.999 127.998S256 198.577 256 128C256 57.419 198.578 0 127.999 0"}),y.jsx("path",{fill:"#173647",d:"M80.598 86.619c-.394 4.38.146 8.909-.146 13.338-.345 4.431-.887 8.811-1.773 13.192-1.23 6.25-5.12 10.976-10.482 14.914 10.436 6.793 11.616 17.324 12.304 28.006.345 5.76.197 11.567.788 17.276.443 4.429 2.165 5.562 6.745 5.708 1.87.048 3.786 0 5.956 0v13.683c-13.535 2.313-24.708-1.525-27.467-12.992-.887-4.184-1.478-8.467-1.673-12.798-.297-4.578.195-9.155-.148-13.732-.985-12.553-2.61-16.785-14.618-17.376v-15.602a24 24 0 0 1 2.608-.443c6.596-.345 9.4-2.364 10.828-8.86.69-3.641 1.084-7.333 1.23-11.074.494-7.136.297-14.42 1.525-21.507C67.997 68.163 74.3 63.24 84.785 62.65c2.952-.149 5.955 0 9.35 0v13.98c-1.427.1-2.658.294-3.937.294-8.515-.297-8.96 2.607-9.6 9.695m16.39 32.386h-.196c-4.923-.245-9.155 3.593-9.403 8.515-.246 4.972 3.592 9.206 8.515 9.45h.59c4.875.296 9.056-3.447 9.352-8.319v-.491c.1-4.971-3.886-9.055-8.857-9.155m30.862 0c-4.774-.148-8.763 3.593-8.909 8.318 0 .297 0 .543.051.837 0 5.365 3.641 8.812 9.155 8.812 5.414 0 8.812-3.544 8.812-9.106-.051-5.366-3.646-8.91-9.109-8.86m31.602 0c-5.02-.1-9.206 3.89-9.352 8.91a9.03 9.03 0 0 0 9.055 9.054h.1c4.528.788 9.106-3.592 9.402-8.858.243-4.874-4.186-9.106-9.205-9.106m43.363.737c-5.711-.245-8.567-2.164-9.992-7.581a55 55 0 0 1-1.624-10.582c-.395-6.596-.346-13.241-.789-19.837-1.033-15.651-12.352-21.114-28.794-18.41V76.92c2.607 0 4.626 0 6.645.049 3.495.048 6.153 1.379 6.496 5.268.345 3.543.345 7.136.69 10.73.692 7.139 1.083 14.372 2.314 21.41 1.085 5.809 5.07 10.14 10.04 13.684-8.71 5.857-11.27 14.223-11.714 23.626-.245 6.448-.394 12.944-.736 19.443-.297 5.905-2.362 7.824-8.318 7.972-1.674.05-3.298.198-5.169.297v13.93c3.495 0 6.694.196 9.892 0 9.942-.592 15.947-5.415 17.918-15.063a126 126 0 0 0 1.476-16.045c.343-4.923.297-9.894.788-14.766.737-7.63 4.232-10.78 11.862-11.27.739-.1 1.427-.246 2.118-.492v-15.604c-1.282-.149-2.17-.295-3.103-.346"})]}),DJe=e=>y.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid",viewBox:"0 0 512 123",...e,children:[y.jsx("path",{d:"M207.785 45.398c15.276 0 18.696 8.908 18.696 19.188v10.239H199.86v2.457c.102 5.693 2.15 7.945 9.399 7.945a50 50 0 0 0 14.58-2.252l1.863 9.01a51.2 51.2 0 0 1-17.528 3.03c-14.97 0-20.17-6.942-20.17-18.43V63.993c0-10.075 4.504-18.594 19.78-18.594m100.38-.02c14.97 0 19.392 5.283 19.392 17.222l-.04 31.432h-9.789l-.88-3.235a26.06 26.06 0 0 1-14.191 4.218c-8.703 0-12.43-5.98-12.43-14.19 0-9.686 4.218-13.413 13.904-13.413h11.447v-4.997c0-5.283-1.474-7.146-9.113-7.146-4.443.049-8.866.544-13.208 1.474l-1.474-9.112a62.4 62.4 0 0 1 16.382-2.253m79.35 0c16.341 0 20.744 9.01 20.744 18.798v12.041c.02 9.788-4.403 18.798-20.744 18.798-16.382 0-20.743-9.01-20.743-18.798v-12.04c0-9.789 4.402-18.799 20.743-18.799M198.017 28.832v10.874h-18.225v54.326h-12.286l-.041-54.326H149.26V28.832zm157.205-3.911c3.46-.012 6.905.45 10.239 1.372l-1.25 9.194a35 35 0 0 0-6.86-.778c-4.688 0-5.385 2.048-5.385 5.673v5.979h12.143l-.675 9.501h-11.447v38.17h-11.939v-38.17h-7.638v-9.501h7.638v-6.655c0-9.89 4.608-14.785 15.174-14.785M482.04 50.477a46.8 46.8 0 0 1 19.187-5.099c7.925 0 10.772 5.57 10.772 14.089v34.565h-11.939V60.757c0-2.54-1.085-3.81-3.809-3.81a31.6 31.6 0 0 0-12.43 4.096v32.99H471.8V60.756c0-2.54-1.085-3.81-3.808-3.81-4.376.52-8.601 1.913-12.43 4.096v32.99h-11.939V46.36h9.113l1.167 4.095a47.7 47.7 0 0 1 19.126-5.078 9.05 9.05 0 0 1 9.01 5.099m-224.863-5.099 1.229 10.976a94 94 0 0 0-12.676 6.942v30.716h-11.938V46.361h10.075l.778 5.283a53.5 53.5 0 0 1 12.532-6.266m29.201 0 1.188 10.976a94 94 0 0 0-12.635 6.942v30.716h-11.938V46.361h10.075l.778 5.283a53.5 53.5 0 0 1 12.532-6.266m151.43 0 1.188 10.976a94 94 0 0 0-12.634 6.942v30.716h-11.938V46.361h10.074l.779 5.283a53.4 53.4 0 0 1 12.532-6.266m-122.23 30.634h-8.804c-3.912 0-4.997 1.086-4.997 4.69s1.085 4.791 4.792 4.791a18.8 18.8 0 0 0 9.01-2.457zm71.938-20.457c-6.368 0-8.805 2.847-8.805 8.191v12.82c0 5.385 2.457 8.19 8.805 8.19s8.805-2.846 8.805-8.19V63.786c0-5.385-2.436-8.232-8.805-8.232m-179.628-.389c-5.877 0-7.925 3.133-7.925 7.638v2.417h15.174v-2.417c0-4.505-1.372-7.638-7.249-7.638"}),y.jsx("path",{fill:"#4040B2",d:"M74.538 79.821 108.12 60.45V21.645L74.538 41.057z"}),y.jsx("path",{fill:"#5C4EE5",d:"m37.269 21.645 33.583 19.412v38.764L37.269 60.43M0 38.784l33.583 19.392V19.392L0 0m37.269 103.473 33.583 19.392V84.08L37.269 64.688"})]});const PJe={"tech:docker":yJe,"tech:elasticsearch":vJe,"tech:electron":bJe,"tech:git":xJe,"tech:github":wJe,"tech:go":kJe,"tech:grafana":_Je,"tech:java":SJe,"tech:kubernetes":EJe,"tech:nginx":CJe,"tech:postgresql":$Je,"tech:prometheus":RJe,"tech:react":zJe,"tech:redis":TJe,"tech:spark":jJe,"tech:swagger":AJe,"tech:terraform":DJe};function MJe(e){const r=PJe[e.node.icon??""];return r?y.jsx(r,e):null}function NJe(e,r,n){let o=i=>e(i,...r);return n===void 0?o:Object.assign(o,{lazy:n,lazyArgs:r})}function Jre(e,r,n){let o=e.length-r.length;if(o===0)return e(...r);if(o===1)return NJe(e,r,n);throw Error("Wrong number of arguments")}function BJe(...e){return Jre(IJe,e)}function IJe(e,r){let n={};for(let[o,i]of Object.entries(e))n[o]=r(i,o,e);return n}function ene(...e){return Jre(z0,e)}function z0(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 OJe(e,r);if(e instanceof Map)return LJe(e,r);if(e instanceof Set)return FJe(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)||!z0(o,r[n]))return!1;return!0}function OJe(e,r){if(e.length!==r.length)return!1;for(let[n,o]of e.entries())if(!z0(o,r[n]))return!1;return!0}function LJe(e,r){if(e.size!==r.size)return!1;for(let[n,o]of e.entries())if(!r.has(n)||!z0(o,r.get(n)))return!1;return!0}function FJe(e,r){if(e.size!==r.size)return!1;let n=[...r];for(let o of e){let i=!1;for(let[a,l]of n.entries())if(z0(o,l)){i=!0,n.splice(a,1);break}if(!i)return!1}return!0}let ml=[],Fd=0;const g4=4;let m4=0;const tne=e=>{let r=[],n={get(){return n.lc||n.listen(()=>{})(),n.value},lc:0,listen(o){return n.lc=r.push(o),()=>{for(let a=Fd+g4;a(e.events=e.events||{},e.events[n+v4]||(e.events[n+v4]=o(i=>{e.events[n].reduceRight((a,l)=>(l(a),a),{shared:{},...i})})),e.events[n]=e.events[n]||[],e.events[n].push(r),()=>{let i=e.events[n],a=i.indexOf(r);i.splice(a,1),i.length||(delete e.events[n],e.events[n+v4](),delete e.events[n+v4])}),HJe=1e3,UJe=(e,r)=>qJe(e,n=>{let o=r(n);o&&e.events[y4].push(o)},VJe,n=>{let o=e.listen;e.listen=(...a)=>(!e.lc&&!e.active&&(e.active=!0,n()),o(...a));let i=e.off;return e.events[y4]=[],e.off=()=>{i(),setTimeout(()=>{if(e.active&&!e.lc){e.active=!1;for(let a of e.events[y4])a();e.events[y4]=[]}},HJe)},()=>{e.listen=o,e.off=i}}),WJe=(e,r,n)=>{Array.isArray(e)||(e=[e]);let o,i,a=()=>{if(i===m4)return;i=m4;let d=e.map(u=>u.get());if(!o||d.some((u,p)=>u!==o[p])){o=d;let u=r(...d);u&&u.then&&u.t?u.then(p=>{o===d&&l.set(p)}):(l.set(u),i=m4)}},l=tne(void 0),s=l.get;l.get=()=>(a(),s());let c=a;return UJe(l,()=>{let d=e.map(u=>u.listen(c));return a(),()=>{for(let u of d)u()}}),l};const rne=(e,r)=>WJe(e,r);function GJe(e,r,n){let o=new Set(r).add(void 0);return e.listen((i,a,l)=>{o.has(l)&&n(i,a,l)})}let Cz=(e,r)=>n=>{e.current!==n&&(e.current=n,r())};function nne(e,{keys:r,deps:n=[e,r]}={}){let o=S.useRef();o.current=e.get();let i=S.useCallback(l=>(Cz(o,l)(e.value),r?.length>0?GJe(e,r,Cz(o,l)):e.listen(Cz(o,l))),n),a=()=>o.current;return S.useSyncExternalStore(i,a,a)}const YJe=e=>{const r=rne(e,s=>Fu.create(s));function n(s){const c=e.get();if(ene(c,s))return;const d={...s,views:BJe(s.views,u=>{const p=c.views[u.id];return ene(p,u)?p:u})};e.set(d)}const o=rne(e,s=>Object.values(s.views));function i(){return nne(r)}function a(){return nne(o)}function l(s){const[c,d]=S.useState(e.value?.views[s]??null);return S.useEffect(()=>e.subscribe(u=>{d(u.views[s]??null)}),[s]),c}return{updateModel:n,$likec4model:r,useLikeC4Model:i,useLikeC4Views:a,useLikeC4View:l}},XJe=tne({_stage:"layouted",projectId:"architecture",project:{id:"architecture",title:"architecture"},specification:{tags:{internal:{color:"tomato"}},elements:{actor:{style:{shape:"person",color:"green"}},person:{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:{}},tool:{style:{}},process:{style:{}},repository:{style:{shape:"storage"}}},relationships:{},deployments:{cloud:{style:{}},environment:{style:{}},computeressource:{style:{}},paas:{style:{}},kubernetes:{style:{}},cluster:{style:{}},namespace:{style:{}}},customColors:{magenta:{elements:{fill:"#b100ff",stroke:"#9e00e4",hiContrast:"#ffffff",loContrast:"#fff2ff"},relationships:{line:"#c137fe",label:"#d064ff",labelBg:"#7a00b3"}}}},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"},idpbuilder:{style:{shape:"rectangle",icon:"tech:go"},technology:"Golang",description:{txt:"Bootstrap tool for initial platform provisioning"},title:"idpbuilder",kind:"component",id:"idpbuilder"},terraform:{style:{shape:"rectangle"},technology:"Terraform",description:{txt:"Infrastructure provisioning (IaC)"},title:"Terraform",kind:"component",id:"terraform"},edgeConnect:{style:{},description:{txt:"Provides an API and control plane to run applications on the edge"},title:"EdgeConnect Cloud",kind:"system",id:"edgeConnect"},edgeCli:{style:{},description:{txt:"Command-line client for interactive usage"},title:"EdgeConnect CLI",kind:"component",id:"edgeCli"},edgeSdk:{style:{},description:{txt:"SDK for programmatic integration"},title:"EdgeConnect SDK",kind:"component",id:"edgeSdk"},edgeTerraformProvider:{style:{},description:{txt:"Terraform provider enabling declarative provisioning"},title:"Terraform Edge provider",kind:"component",id:"edgeTerraformProvider"},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"},documentation:{style:{icon:"tech:electron"},technology:"Static Site Generator",description:{txt:"Documentation system for EDP LikeC4 platform."},title:"Documentation",kind:"system",id:"documentation"},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 +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"},runtimeCluster:{style:{},technology:"Kubernetes",description:{txt:"Target cluster where applications are deployed"},title:"Kubernetes Cluster",kind:"system",id:"runtimeCluster"},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"},documentation:{style:{icon:"tech:electron"},technology:"Static Site Generator",description:{txt:"Documentation system for EDP LikeC4 platform."},title:"Documentation",kind:"system",id:"documentation"},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"},"edgeConnect.api":{style:{opacity:20},description:{txt:"Single entry point for provisioning and lifecycle management"},title:"Edge Cloud API",kind:"container",id:"edgeConnect.api"},"edgeConnect.resources":{style:{opacity:20},description:{txt:"Managed resources such as App, AppInstance, etc."},title:"Edge Resources",kind:"container",id:"edgeConnect.resources"},"edgeConnect.controllers":{style:{opacity:20},description:{txt:"Reconciles desired state and drives deployments"},title:"Controllers / Scheduler",kind:"container",id:"edgeConnect.controllers"},"edgeConnect.runtime":{style:{opacity:20},description:{txt:"Runtime where applications actually run"},title:"Edge Clusters",kind:"container",id:"edgeConnect.runtime"},"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"},xw0pne:{title:"provides documentation for",source:{model:"documentation"},target:{model:"edp"},id:"xw0pne"},"3sz3k3":{title:"creates and maintains documentation",source:{model:"platformdeveloper"},target:{model:"documentation"},id:"3sz3k3"},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:"2567bb136f9a38fc393b5cf518bffb4ed976b0ed",bounds:{x:0,y:0,width:13187,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:2267,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:"edge",parent:null,level:0,children:[],inEdges:[],outEdges:[],deploymentRef:"edge",title:"Edge Cloud",kind:"cloud",technology:"Edge",color:"primary",shape:"rectangle",description:{txt:"Edge environments for distributed workloads."},tags:[],style:{opacity:15,size:"md"},x:450,y:150,width:340,height:180,labelBBox:{x:18,y:54,width:304,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. +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.garm":{style:{opacity:20,icon:"tech:docker"},title:"Garm Image",kind:"container",id:"edp.garm"},"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"},"runtimeCluster.runningApplication":{style:{opacity:20},description:{txt:"Deployed workload"},title:"Running Application",kind:"container",id:"runtimeCluster.runningApplication"},"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.garm.garm":{style:{icon:"tech:go"},description:{txt:"Provisions runners for Forgejo"},title:"Garm",kind:"component",id:"edp.garm.garm"},"edp.garm.providerEdgeConnect":{style:{icon:"tech:go"},description:{txt:"Acts as abstraction layer for EdgeConnect"},title:"Garm Provider for EdgeConnect",kind:"component",id:"edp.garm.providerEdgeConnect"},"edp.garm.providerKubernetes":{style:{icon:"tech:go"},description:{txt:"Acts as abstraction layer for Kubernetes"},title:"Garm Provider for Kubernetes",kind:"component",id:"edp.garm.providerKubernetes"},"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"},"runtimeCluster.runningApplication.pods":{style:{},title:"Pods",kind:"component",id:"runtimeCluster.runningApplication.pods"},"runtimeCluster.runningApplication.services":{style:{},title:"Services",kind:"component",id:"runtimeCluster.runningApplication.services"},"runtimeCluster.runningApplication.ingress":{style:{},title:"Ingress",kind:"component",id:"runtimeCluster.runningApplication.ingress"},"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"},"8fwa3r":{title:"installs",source:{model:"idpbuilder"},target:{model:"edp.argoCD"},id:"8fwa3r"},"1ai9t9i":{title:"installs",source:{model:"idpbuilder"},target:{model:"edp.forgejo"},id:"1ai9t9i"},"1lc9jrs":{title:"installs",source:{model:"idpbuilder"},target:{model:"edp.ingressNginx"},id:"1lc9jrs"},kv3vny:{title:"runs",source:{model:"platformdeveloper"},target:{model:"idpbuilder"},id:"kv3vny"},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"},h84u7y:{title:"calls",source:{model:"edgeCli"},target:{model:"edgeConnect.api"},id:"h84u7y"},"1elpzvp":{title:"calls",source:{model:"edgeSdk"},target:{model:"edgeConnect.api"},id:"1elpzvp"},"6h5xnh":{title:"provisions via",source:{model:"edgeTerraformProvider"},target:{model:"edgeConnect.api"},id:"6h5xnh"},wx4vwc:{title:"creates/updates",source:{model:"edgeConnect.api"},target:{model:"edgeConnect.resources"},id:"wx4vwc"},qufboq:{title:"reconciles",source:{model:"edgeConnect.controllers"},target:{model:"edgeConnect.resources"},id:"qufboq"},"1a9x5zg":{title:"deploys",source:{model:"edgeConnect.controllers"},target:{model:"edgeConnect.runtime"},id:"1a9x5zg"},"1pbc22f":{title:"runs workflows",source:{model:"edp.forgejoActions"},target:{model:"forgejoRunner"},id:"1pbc22f"},"1olxwwi":{title:"calls binary",source:{model:"edp.garm.garm"},target:{model:"edp.garm.providerEdgeConnect"},id:"1olxwwi"},iu7wve:{title:"calls binary",source:{model:"edp.garm.garm"},target:{model:"edp.garm.providerKubernetes"},id:"iu7wve"},"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",source:{model:"developer"},target:{model:"localbox"},id:"5hkplj"},"1pp73vj":{title:"outer loop",source:{model:"developer"},target:{model:"edp"},id:"1pp73vj"},"3rnruw":{title:"uses",source:{model:"developer"},target:{model:"edgeCli"},id:"3rnruw"},"1ks7amr":{title:"uses",source:{model:"developer"},target:{model:"edgeSdk"},id:"1ks7amr"},"1l0aei7":{title:"uses",source:{model:"developer"},target:{model:"edgeTerraformProvider"},id:"1l0aei7"},nb1ag9:{title:"manages project",source:{model:"developer"},target:{model:"edp.ui"},id:"nb1ag9"},"14tsadm":{title:"manages code",source:{model:"developer"},target:{model:"edp.forgejo"},id:"14tsadm"},"129xciy":{title:"authenticates",source:{model:"developer"},target:{model:"edp.keycloak"},id:"129xciy"},"1l7h8as":{title:"manages deployments",source:{model:"developer"},target:{model:"edp.argoCD"},id:"1l7h8as"},dol85h:{title:"monitors",source:{model:"developer"},target:{model:"edp.grafana"},id:"dol85h"},"65iq0s":{title:"create and maintain apps",source:{model:"developer"},target:{model:"edp.ui.backstage"},id:"65iq0s"},u2ppde:{title:"pushes and pull images",source:{model:"developer"},target:{model:"edp.imageregistry"},id:"u2ppde"},"1dgd663":{title:"uses API",source:{model:"developer"},target:{model:"edp.api"},id:"1dgd663"},"1k2mvqc":{title:"uses git",source:{model:"developer"},target:{model:"edp.forgejogit"},id:"1k2mvqc"},"4pplfw":{title:"operates",source:{model:"platformdeveloper"},target:{model:"edgeConnect"},id:"4pplfw"},lb4xas:{title:"review / operate",source:{model:"otherProductLifecycleRoles"},target:{model:"edp"},id:"lb4xas"},"1g2ebwc":{title:"uses your app",source:{model:"customers"},target:{model:"cloud"},id:"1g2ebwc"},vxxbwa:{title:"git push",source:{model:"developer"},target:{model:"edp.forgejogit"},id:"vxxbwa"},"1yai3r5":{title:"triggers",source:{model:"edp.forgejogit"},target:{model:"edp.forgejoActions"},id:"1yai3r5"},"21d2gk":{title:"push image",source:{model:"edp.forgejoActions"},target:{model:"edp.imageregistry"},id:"21d2gk"},yorv62:{title:"watches manifests",source:{model:"edp.forgejogit"},target:{model:"edp.argoCD"},id:"yorv62"},"1f6l7ms":{title:"deploys",source:{model:"edp.argoCD"},target:{model:"runtimeCluster"},id:"1f6l7ms"},nc44l9:{title:"app specific dependencies",source:{model:"enterprise"},target:{model:"cloud"},id:"nc44l9"},xw0pne:{title:"provides documentation for",source:{model:"documentation"},target:{model:"edp"},id:"xw0pne"},"3sz3k3":{title:"creates and maintains documentation",source:{model:"platformdeveloper"},target:{model:"documentation"},id:"3sz3k3"},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:"deploy & observe",source:{model:"edp"},target:{model:"cloud"},id:"gerdx4"},"1t93kj2":{title:"automates",source:{model:"edp"},target:{model:"edgeTerraformProvider"},id:"1t93kj2"},"96ogr7":{title:"",source:{model:"edp"},target:{model:"localbox"},id:"96ogr7"},"1mp9fps":{title:"sync",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:{provider:{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/edge/provider.c4",description:null,title:"Terraform Edge provider",id:"provider",autoLayout:{direction:"TB"},hash:"9f510e70e35a21871bc85c1a535584598e768d47",bounds:{x:0,y:0,width:1059,height:1265},nodes:[{id:"edgeProvider",parent:null,level:0,children:[],inEdges:[],outEdges:["u9omtf","r4j4sg","1xqlhup"],deploymentRef:"edgeProvider",title:"Terraform Edge provider",kind:"paas",color:"primary",shape:"rectangle",icon:"tech:terraform",description:{txt:"Unlocks the terraform ecosystem"},tags:[],style:{opacity:15,size:"md"},x:242,y:0,width:343,height:180,labelBBox:{x:46,y:63,width:282,height:48}},{id:"edgeSdk",parent:null,level:0,children:[],inEdges:["1xqlhup"],outEdges:["14pfq5a","lw6otg"],deploymentRef:"edgeSdk",title:"Edge Cloud SDK",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",icon:"tech:go",description:{txt:"Wrapper around API"},tags:[],style:{opacity:15,size:"md"},x:86,y:347,width:320,height:180,labelBBox:{x:68,y:53,width:214,height:67}},{id:"edgeProviderHost",parent:null,level:0,children:["edgeProviderHost.terralist","edgeProviderHost.edp"],inEdges:["14pfq5a","u9omtf","r4j4sg"],outEdges:[],deploymentRef:"edgeProviderHost",title:"OTC",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:478,y:276,width:466,height:648,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edgeCloud",parent:null,level:0,children:["edgeCloud.edgeApi","edgeCloud.edgeResources"],inEdges:["lw6otg"],outEdges:[],deploymentRef:"edgeCloud",title:"Edge cloud",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:8,y:623,width:420,height:634,labelBBox:{x:6,y:0,width:77,height:15}},{id:"edgeProviderHost.terralist",parent:"edgeProviderHost",level:1,children:[],inEdges:["r4j4sg"],outEdges:["c8rye7"],deploymentRef:"edgeProviderHost.terralist",title:"Terralist",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",icon:"tech:terraform",description:{txt:"Terraform provider private hosting"},tags:[],style:{opacity:15,size:"md"},x:536,y:347,width:350,height:180,labelBBox:{x:46,y:53,width:288,height:67}},{id:"edgeCloud.edgeApi",parent:"edgeCloud",level:1,children:[],inEdges:["lw6otg"],outEdges:["1toht4t"],deploymentRef:"edgeCloud.edgeApi",title:"Edge Cloud API",kind:"paas",technology:"Edge Cloud (managed)",links:[{url:"https://swagger.edge.platform.mg3.mdb.osc.live",title:"Documentation"}],color:"primary",shape:"rectangle",icon:"tech:swagger",tags:[],style:{opacity:15,size:"md"},x:58,y:694,width:320,height:180,labelBBox:{x:73,y:64,width:204,height:46}},{id:"edgeProviderHost.edp",parent:"edgeProviderHost",level:1,children:[],inEdges:["c8rye7","14pfq5a","u9omtf"],outEdges:[],deploymentRef:"edgeProviderHost.edp",title:"Forgejo for all EDP-tenants",kind:"cluster",color:"primary",shape:"rectangle",modelRef:"edp.forgejo",icon:"tech:git",tags:[],style:{opacity:15,size:"md"},description:{txt:"edp.buildth.ing"},technology:"Golang",navigateTo:"forgejo",x:528,y:694,width:365,height:180,labelBBox:{x:46,y:53,width:304,height:67}},{id:"edgeCloud.edgeResources",parent:"edgeCloud",level:1,children:[],inEdges:["1toht4t"],outEdges:[],deploymentRef:"edgeCloud.edgeResources",title:"Edge Cloud Resources",kind:"paas",technology:"Edge Cloud (managed)",color:"primary",shape:"rectangle",description:{txt:"App, AppInstance, etc."},tags:[],style:{opacity:15,size:"md"},x:58,y:1027,width:320,height:180,labelBBox:{x:55,y:53,width:210,height:67}}],edges:[{id:"1toht4t",source:"edgeCloud.edgeApi",target:"edgeCloud.edgeResources",label:"creates/destroys",points:[[218,874],[218,918],[218,971],[218,1016]],labelBBox:{x:219,y:939,width:107,height:18},parent:"edgeCloud",relations:["rr0lcz"],color:"gray",line:"dashed",head:"normal"},{id:"c8rye7",source:"edgeProviderHost.terralist",target:"edgeProviderHost.edp",label:"authenticates via",points:[[711,527],[711,575],[711,634],[711,684]],labelBBox:{x:712,y:592,width:109,height:18},parent:"edgeProviderHost",relations:["1q6ftvm"],color:"gray",line:"dashed",head:"normal"},{id:"14pfq5a",source:"edgeSdk",target:"edgeProviderHost.edp",label:"hosted on",points:[[366,527],[432,576],[515,638],[583,688]],labelBBox:{x:480,y:592,width:66,height:18},parent:null,relations:["1sm6ifh"],color:"gray",line:"dashed",head:"normal"},{id:"lw6otg",source:"edgeSdk",target:"edgeCloud.edgeApi",label:"calls",points:[[239,527],[235,575],[230,634],[226,684]],labelBBox:{x:234,y:592,width:32,height:18},parent:null,relations:["vfhcba"],color:"gray",line:"dashed",head:"normal"},{id:"u9omtf",source:"edgeProvider",target:"edgeProviderHost.edp",label:"hosted on",points:[[585,100],[709,116],[869,160],[951,276],[1016,367],[992,423],[951,527],[927,588],[880,644],[834,687]],labelBBox:{x:992,y:425,width:66,height:18},parent:null,relations:["12ssq9"],color:"gray",line:"dashed",head:"normal"},{id:"r4j4sg",source:"edgeProvider",target:"edgeProviderHost.terralist",label:"published to",points:[[490,180],[532,229],[585,289],[628,339]],labelBBox:{x:564,y:245,width:80,height:18},parent:null,relations:["1mpjz5d"],color:"gray",line:"dashed",head:"normal"},{id:"1xqlhup",source:"edgeProvider",target:"edgeSdk",label:"built using",points:[[371,180],[347,228],[318,288],[294,338]],labelBBox:{x:336,y:245,width:67,height:18},parent:null,relations:["1wlvsb5"],color:"gray",line:"dashed",head:"normal"}]},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:"09f216bdb503c31a28c16dff8a1c12da0a0c4cf1",bounds:{x:0,y:0,width:19320,height:1791},nodes:[{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:28,y:54,width:264,height:67}},{id:"edge",parent:null,level:0,children:[],inEdges:[],outEdges:[],deploymentRef:"edge",title:"Edge Cloud",kind:"cloud",technology:"Edge",color:"primary",shape:"rectangle",description:{txt:"Edge environments for distributed workloads."},tags:[],style:{opacity:15,size:"md"},x:450,y:150,width:340,height:180,labelBBox:{x:18,y:54,width:304,height:67}},{id:"edgeProvider",parent:null,level:0,children:[],inEdges:[],outEdges:["1xqlhup","u9omtf","r4j4sg"],deploymentRef:"edgeProvider",title:"Terraform Edge provider",kind:"paas",color:"primary",shape:"rectangle",icon:"tech:terraform",description:{txt:"Unlocks the terraform ecosystem"},tags:[],style:{opacity:15,size:"md"},x:920,y:150,width:343,height:180,labelBBox:{x:46,y:63,width:282,height:48}},{id:"edgeConnectEnv",parent:null,level:0,children:[],inEdges:["i6v3n"],outEdges:["1ogkmfn"],deploymentRef:"edgeConnectEnv",title:"Edge Connect",kind:"environment",technology:"Edge Connect Platform",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",icon:"tech:docker",description:{txt:"Edge infrastructure for ephemeral runner deployment"},tags:[],style:{opacity:15,size:"md"},x:5425,y:150,width:347,height:180,labelBBox:{x:46,y:45,width:286,height:85}},{id:"otc-edpFoundry",parent:null,level:0,children:["otc-edpFoundry.forgejoRunnerInfrastructure","otc-edpFoundry.cce","otc-edpFoundry.workflowSetupEDPInfrastructure","otc-edpFoundry.workflowSetupArgoCDInfrastructure"],inEdges:["c2grk6","1ean8sr","l1c2z3"],outEdges:["r3wxut","1sng0q0","e3benz","9r557q","rivecr","1lrp92n"],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:855,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:4970,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:8255,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:920,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:8689,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:8739,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:9189,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:9639,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:10089,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:10539,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:10989,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:11409,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:11459,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:11909,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:12359,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:2787,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:2837,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:3287,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:3737,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:5002,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:8287,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:927,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:5041,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:5511,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:7331,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:2317,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:7785,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:4157,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:4607,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:8255,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:905,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:1355,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:5091,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:5561,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:6011,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:6461,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:6911,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 +Optionally we will have a WebUI/API/CLI`},tags:[],style:{opacity:15,size:"md"},depth:1,x:3577,y:79,width:870,height:995,labelBBox:{x:6,y:0,width:280,height:15}},{id:"otcTenantProd",parent:null,level:0,children:["otcTenantProd.otcTenantEdpBuildthing","otcTenantProd.otcTenantObservability","otcTenantProd.otcTenantCustomerA"],inEdges:[],outEdges:["1ypat9q","1oiku86"],deploymentRef:"otcTenantProd",title:"Prod - builth.ing",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:17522,y:79,width:870,height:648,labelBBox:{x:6,y:0,width:108,height:15}},{id:"local",parent:null,level:0,children:["local.ingressNginx","local.velero","local.crossplane","local.externalSecrets","local.monitoring","local.backstage","local.argocd","local.keycloak","local.openbao","local.fibonacci","local.mailhog","local.minio","local.gitea","local.spark.sparkoperator"],inEdges:["1m1lj8s"],outEdges:["se5brg"],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:6508,y:8,width:10964,height:1449,labelBBox:{x:6,y:0,width:127,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",tags:[],style:{opacity:15,size:"md"},depth:1,x:10434,y:444,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:12058,y:444,width:384,height:265,labelBBox:{x:6,y:0,width:49,height:15}},{id:"edgeSdk",parent:null,level:0,children:[],inEdges:["1xqlhup"],outEdges:["14pfq5a","lw6otg"],deploymentRef:"edgeSdk",title:"Edge Cloud SDK",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",icon:"tech:go",description:{txt:"Wrapper around API"},tags:[],style:{opacity:15,size:"md"},x:731,y:497,width:320,height:180,labelBBox:{x:68,y:54,width:214,height:67}},{id:"otc-edpFoundry.forgejoRunnerInfrastructure",parent:"otc-edpFoundry",level:1,children:[],inEdges:["l1c2z3"],outEdges:["109g3jm","1lrp92n"],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"},technology:null,x:4055,y:150,width:342,height:180,labelBBox:{x:18,y:54,width:306,height:66}},{id:"otcTenantProd.otcTenantEdpBuildthing",parent:"otcTenantProd",level:1,children:[],inEdges:[],outEdges:["rj56uy","u7ohgi","1ypat9q","1oiku86"],deploymentRef:"otcTenantProd.otcTenantEdpBuildthing",title:"edp.builth.ing",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Primary Instance"},tags:[],style:{opacity:15,size:"md"},x:18022,y:150,width:320,height:180,labelBBox:{x:85,y:63,width:181,height:48}},{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:12982,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:13032,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:13482,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:13932,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:14382,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:14832,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:15282,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:15702,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:15752,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:16202,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:16652,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:7028,y:79,width:1320,height:1328,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:7078,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:7528,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:7978,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:10466,y:497,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:12090,y:497,width:320,height:180,labelBBox:{x:129,y:74,width:62,height:24}},{id:"edgeProviderHost",parent:null,level:0,children:["edgeProviderHost.terralist","edgeProviderHost.edp"],inEdges:["u9omtf","r4j4sg","14pfq5a"],outEdges:[],deploymentRef:"edgeProviderHost",title:"OTC",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:1123,y:426,width:466,height:648,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edgeCloud",parent:null,level:0,children:["edgeCloud.edgeApi","edgeCloud.edgeResources"],inEdges:["lw6otg"],outEdges:[],deploymentRef:"edgeCloud",title:"Edge cloud",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:653,y:773,width:420,height:634,labelBBox:{x:6,y:0,width:77,height:15}},{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:4062,y:497,width:327,height:180,labelBBox:{x:46,y:54,width:266,height:67}},{id:"otcTenantProd.otcTenantObservability",parent:"otcTenantProd",level:1,children:[],inEdges:["rj56uy"],outEdges:[],deploymentRef:"otcTenantProd.otcTenantObservability",title:"observability.builth.ing",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Observability Instance"},tags:[],style:{opacity:15,size:"md"},x:17572,y:497,width:320,height:180,labelBBox:{x:46,y:63,width:258,height:48}},{id:"otcTenantProd.otcTenantCustomerA",parent:"otcTenantProd",level:1,children:[],inEdges:["u7ohgi"],outEdges:[],deploymentRef:"otcTenantProd.otcTenantCustomerA",title:"customer-a.builth.ing",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Customer Instance"},tags:[],style:{opacity:15,size:"md"},x:18022,y:497,width:320,height:180,labelBBox:{x:51,y:63,width:248,height:48}},{id:"otcTenantNonProd",parent:null,level:0,children:["otcTenantNonProd.otcTenantDev1","otcTenantNonProd.otcTenantTestX"],inEdges:["1ypat9q","1oiku86"],outEdges:[],deploymentRef:"otcTenantNonProd",title:"Non-Prod - t09.de",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:18442,y:426,width:870,height:301,labelBBox:{x:6,y:0,width:111,height:15}},{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:8398,y:773,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:8868,y:773,width:1770,height:634,labelBBox:{x:6,y:0,width:53,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:10688,y:773,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:6558,y:79,width:420,height:995,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",tags:[],style:{opacity:15,size:"md"},depth:1,x:11158,y:791,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",tags:[],style:{opacity:15,size:"md"},depth:1,x:11608,y:791,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:"rectangle",modelRef:"edp.minio.minio",tags:[],style:{opacity:15,size:"md"},depth:1,x:12058,y:791,width:384,height:265,labelBBox:{x:6,y:0,width:86,height:15}},{id:"edgeProviderHost.terralist",parent:"edgeProviderHost",level:1,children:[],inEdges:["r4j4sg"],outEdges:["c8rye7"],deploymentRef:"edgeProviderHost.terralist",title:"Terralist",kind:"paas",technology:"Cloud Services",color:"primary",shape:"rectangle",icon:"tech:terraform",description:{txt:"Terraform provider private hosting"},tags:[],style:{opacity:15,size:"md"},x:1181,y:497,width:350,height:180,labelBBox:{x:46,y:54,width:288,height:67}},{id:"edgeCloud.edgeApi",parent:"edgeCloud",level:1,children:[],inEdges:["lw6otg"],outEdges:["1toht4t"],deploymentRef:"edgeCloud.edgeApi",title:"Edge Cloud API",kind:"paas",technology:"Edge Cloud (managed)",links:[{url:"https://swagger.edge.platform.mg3.mdb.osc.live",title:"Documentation"}],color:"primary",shape:"rectangle",icon:"tech:swagger",tags:[],style:{opacity:15,size:"md"},x:703,y:844,width:320,height:180,labelBBox:{x:73,y:65,width:204,height:45}},{id:"otc-edpFoundry.workflowSetupEDPInfrastructure",parent:"otc-edpFoundry",level:1,children:[],inEdges:["llfvob","c2grk6"],outEdges:["r3wxut","e3benz","9r557q"],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:3627,y:844,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","1ean8sr"],outEdges:["1sng0q0","rivecr"],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:4077,y:844,width:320,height:180,labelBBox:{x:55,y:63,width:210,height:48}},{id:"otcTenantNonProd.otcTenantDev1",parent:"otcTenantNonProd",level:1,children:[],inEdges:["1ypat9q"],outEdges:[],deploymentRef:"otcTenantNonProd.otcTenantDev1",title:"dev1.t09.de",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Development Instance"},tags:[],style:{opacity:15,size:"md"},x:18492,y:497,width:320,height:180,labelBBox:{x:69,y:63,width:212,height:48}},{id:"otcTenantNonProd.otcTenantTestX",parent:"otcTenantNonProd",level:1,children:[],inEdges:["1oiku86"],outEdges:[],deploymentRef:"otcTenantNonProd.otcTenantTestX",title:"test-x.t09.de",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Testing Instance"},tags:[],style:{opacity:15,size:"md"},x:18942,y:497,width:320,height:180,labelBBox:{x:89,y:63,width:172,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:8448,y:844,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:8918,y:844,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:9368,y:844,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:9818,y:844,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:10268,y:844,width:320,height:180,labelBBox:{x:90,y:74,width:140,height:24}},{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:10738,y:844,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:7528,y:844,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:7978,y:844,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:6608,y:844,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:6608,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:11190,y:844,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:11640,y:844,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:12090,y:844,width:320,height:180,labelBBox:{x:85,y:65,width:150,height:45}},{id:"edgeProviderHost.edp",parent:"edgeProviderHost",level:1,children:[],inEdges:["u9omtf","14pfq5a","c8rye7"],outEdges:[],deploymentRef:"edgeProviderHost.edp",title:"Forgejo for all EDP-tenants",kind:"cluster",color:"primary",shape:"rectangle",modelRef:"edp.forgejo",icon:"tech:git",tags:[],style:{opacity:15,size:"md"},description:{txt:"edp.buildth.ing"},technology:"Golang",navigateTo:"forgejo",x:1173,y:844,width:365,height:180,labelBBox:{x:46,y:54,width:304,height:67}},{id:"edgeCloud.edgeResources",parent:"edgeCloud",level:1,children:[],inEdges:["1toht4t"],outEdges:[],deploymentRef:"edgeCloud.edgeResources",title:"Edge Cloud Resources",kind:"paas",technology:"Edge Cloud (managed)",color:"primary",shape:"rectangle",description:{txt:"App, AppInstance, etc."},tags:[],style:{opacity:15,size:"md"},x:703,y:1177,width:320,height:180,labelBBox:{x:55,y:53,width:210,height:68}},{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","p2umm7","e3benz","126mt75"],outEdges:["b27cdb","1mbuxdd"],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:2913,y:79,width:442,height:1704,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:8448,y:1177,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:10043,y:1177,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:10738,y:1177,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:7528,y:1177,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:["126mt75"],outEdges:["fkkf8y","1mbuxdd"],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"},technology:null,x:2963,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","p2umm7"],outEdges:["pit45i","b27cdb"],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:2977,y:1177,width:327,height:180,labelBBox:{x:46,y:53,width:266,height:68}},{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:2963,y:1553,width:320,height:180,labelBBox:{x:67,y:53,width:185,height:67}},{id:"otcKubernetes",parent:null,level:0,children:["otcKubernetes.edpCluster"],inEdges:["1ogkmfn","b27cdb","1mbuxdd","9r557q","rivecr","1lrp92n","se5brg"],outEdges:["i6v3n","p2umm7","126mt75","c2grk6","1ean8sr","l1c2z3","1m1lj8s"],deploymentRef:"otcKubernetes",title:"OTC Kubernetes",kind:"environment",technology:"Kubernetes",color:"primary",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine hosting EDP platform"},tags:[],style:{opacity:15,size:"md"},depth:1,x:4224,y:1500,width:384,height:265,labelBBox:{x:6,y:0,width:106,height:15}},{id:"otcKubernetes.edpCluster",parent:"otcKubernetes",level:1,children:[],inEdges:["1ogkmfn","b27cdb","1mbuxdd","9r557q","rivecr","1lrp92n","se5brg"],outEdges:["i6v3n","p2umm7","126mt75","c2grk6","1ean8sr","l1c2z3","1m1lj8s"],deploymentRef:"otcKubernetes.edpCluster",title:"EDP Cluster",kind:"cluster",color:"primary",shape:"rectangle",description:{txt:"EDP platform cluster"},tags:[],style:{opacity:15,size:"md"},x:4256,y:1553,width:320,height:180,labelBBox:{x:89,y:63,width:142,height:48}},{id:"local.gitea",parent:"local",level:1,children:["local.gitea.forgejo","local.gitea.forgejoRunner"],inEdges:["1m1lj8s","o229dq"],outEdges:["se5brg"],deploymentRef:"local.gitea",title:"gitea",kind:"namespace",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:12492,y:79,width:440,height:995,labelBBox:{x:6,y:0,width:38,height:15}},{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:7363,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:2367,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:3737,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:3287,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:7835,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:7835,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:4189,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:4639,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:8287,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:1775,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:5091,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:6686,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:2367,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:3737,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:1825,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:1828,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:1832,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:12809,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,1992,1517.1 1992,1386 1992,1423.8 1992,1468 1992,1506.9",points:[[1992,1386],[1992,1424],[1992,1468],[1992,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,1992.4,1206.3 1995.7,330.32 1994.9,525.74 1993.2,991.45 1992.4,1195.9",points:[[1996,330],[1995,526],[1993,991],[1992,1196]],labelBBox:{x:1995,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,1828.4,1241.5 1146.9,1010.2 1186.4,1047.4 1236.7,1087.3 1290,1110.2 1318.8,1122.6 1329.3,1112.2 1360,1118.2 1517.4,1149 1692.7,1199.3 1818.7,1238.5",points:[[1147,1010],[1186,1047],[1237,1087],[1290,1110],[1319,1123],[1329,1112],[1360,1118],[1517,1149],[1693,1199],[1819,1238]],labelBBox:{x:1466,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,1869.5,1206.1 1619.9,1010.1 1658.3,1042.1 1702.3,1078.2 1743,1110.2 1781,1140 1822.9,1171.6 1861.3,1200",points:[[1620,1010],[1658,1042],[1702,1078],[1743,1110],[1781,1140],[1823,1172],[1861,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,1832.4,1523 1157.9,1010 1262.9,1108 1441.1,1267.5 1609.1,1386 1676.6,1433.6 1755,1480 1823.3,1517.9",points:[[1158,1010],[1263,1108],[1441,1268],[1609,1386],[1677,1434],[1755,1480],[1823,1518]],labelBBox:{x:1610,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,1072,830.31 1084.1,677.05 1080.6,721.08 1076.4,774.44 1072.8,819.85",points:[[1084,677],[1081,721],[1076,774],[1073,820]],labelBBox:{x:1080,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,1401.2,830.42 1204.9,677.27 1263,722.59 1333.7,777.76 1392.9,823.96",points:[[1205,677],[1263,723],[1334,778],[1393,824]],labelBBox:{x:1317,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,1091,497.56 1091,330.25 1091,378.24 1091,437.64 1091,487.15",points:[[1091,330],[1091,378],[1091,438],[1091,487]],labelBBox:{x:1092,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,5251,829.44 5251,677.05 5251,720.81 5251,773.79 5251,819.02",points:[[5251,677],[5251,721],[5251,774],[5251,819]],labelBBox:{x:5252,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,6686.3,901.97 5848.2,677.38 5879.1,696.06 5912.9,714.1 5946,727.4 6189.6,825.15 6491.1,876.43 6676,900.62",points:[[5848,677],[5879,696],[5913,714],[5946,727],[6190,825],[6491,876],[6676,901]],labelBBox:{x:6040,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,6686.1,857.88 6307.8,677.39 6336.5,694.78 6366.9,712.29 6396,727.4 6486.5,774.29 6591,819.37 6676.6,854.03",points:[[6308,677],[6336,695],[6367,712],[6396,727],[6487,774],[6591,819],[6677,854]],labelBBox:{x:6469,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,6785.6,830.31 6681.3,677.05 6711.7,721.73 6748.6,776.01 6779.8,821.85",points:[[6681,677],[6712,722],[6749,776],[6780,822]],labelBBox:{x:6741,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,6906.5,830.31 7010.7,677.05 6980.3,721.73 6943.4,776.01 6912.2,821.85",points:[[7011,677],[6980,722],[6943,776],[6912,822]],labelBBox:{x:6966,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,2527,829.44 2527,677.05 2527,720.81 2527,773.79 2527,819.02",points:[[2527,677],[2527,721],[2527,774],[2527,819]],labelBBox:{x:2528,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,3897,830.31 3897,677.05 3897,721.08 3897,774.44 3897,819.85",points:[[3897,677],[3897,721],[3897,774],[3897,820]],labelBBox:{x:3898,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,5228.1,497.56 5184.9,330.25 5197.3,378.34 5212.7,437.89 5225.5,487.46",points:[[5185,330],[5197,378],[5213,438],[5226,487]],labelBBox:{x:5208,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,6969.6,497.57 5321.9,248.67 5686.5,266.89 6569.4,320.8 6846,426.2 6886.6,441.65 6926.6,466.2 6961.3,491.48",points:[[5322,249],[5686,267],[6569,321],[6846,426],[6887,442],[6927,466],[6961,491]],labelBBox:{x:6800,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,7435.2,497.59 5322,244.07 5756.1,253.04 6947.9,289.78 7313,426.2 7353.4,441.28 7392.9,465.94 7427.1,491.45",points:[[5322,244],[5756,253],[6948,290],[7313,426],[7353,441],[7393,466],[7427,491]],labelBBox:{x:7286,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,2625.6,497.46 5002.3,279.97 4813.6,323.42 4489.7,391.47 4207,418.2 4166.9,422 2793.4,413.93 2755,426.2 2711.9,439.98 2669.8,465.12 2633.7,491.47",points:[[5002,280],[4814,323],[4490,391],[4207,418],[4167,422],[2793,414],[2755,426],[2712,440],[2670,465],[2634,491]],labelBBox:{x:4392,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,8447,496.66 8447,330.25 8447,377.96 8447,436.95 8447,486.28",points:[[8447,330],[8447,378],[8447,437],[8447,486]],labelBBox:{x:8448,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,8354.4,496.97 5321.9,249.75 5943.5,282.35 8168,400.56 8237,426.2 8276.1,440.71 8313.8,465.08 8346.3,490.49",points:[[5322,250],[5944,282],[8168,401],[8237,426],[8276,441],[8314,465],[8346,490]],labelBBox:{x:8166,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,3996,497.55 5002.2,304.14 4889.1,345.23 4732.7,395.4 4590,418.2 4539,426.36 4174.2,410.2 4125,426.2 4082,440.2 4040.1,465.32 4004.1,491.58",points:[[5002,304],[4889,345],[4733,395],[4590,418],[4539,426],[4174,410],[4125,426],[4082,440],[4040,465],[4004,492]],labelBBox:{x:4703,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,3544.5,497.4 5002.1,289.49 4850.2,332.64 4614.4,392.92 4405,418.2 4364.6,423.08 3710.7,413.59 3672,426.2 3629.6,440.02 3588.3,464.95 3552.9,491.09",points:[[5002,289],[4850,333],[4614,393],[4405,418],[4365,423],[3711,414],[3672,426],[3630,440],[3588,465],[3553,491]],labelBBox:{x:4553,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,7894.1,497.86 5321.9,241.61 5816.1,243.99 7312.9,264.7 7767,426.2 7808.9,441.09 7850.1,465.93 7885.7,491.66",points:[[5322,242],[5816,244],[7313,265],[7767,426],[7809,441],[7850,466],[7886,492]],labelBBox:{x:7733,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,4448.1,497.54 5002.1,329.85 4932.3,363.96 4848.3,399.27 4768,418.2 4726.2,428.05 4615.6,412.33 4575,426.2 4533,440.55 4491.9,465.39 4456.5,491.29",points:[[5002,330],[4932,364],[4848,399],[4768,418],[4726,428],[4616,412],[4575,426],[4533,441],[4492,465],[4456,491]],labelBBox:{x:4837,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,4892.5,497.56 5068.5,330.25 5016.9,379.35 4952.7,440.38 4899.9,490.55",points:[[5069,330],[5017,379],[4953,440],[4900,491]],labelBBox:{x:4992,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. - +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:12542,y:844,width:340,height:180,labelBBox:{x:46,y:18,width:278,height:139}},{id:"local.gitea.forgejoRunner",parent:"local.gitea",level:2,children:[],inEdges:["1m1lj8s"],outEdges:["se5brg"],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:"local.gitea.forgejoRunner",modelRef:"forgejoRunner",x:12542,y:150,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:102}},{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:17102,y:150,width:320,height:180,labelBBox:{x:76,y:65,width:198,height:45}}],edges:[{id:"1xqlhup",source:"edgeProvider",target:"edgeSdk",label:"built using",points:[[1035,330],[1021,352],[1007,374],[995,395],[977,425],[959,458],[943,489]],labelBBox:{x:996,y:395,width:67,height:18},parent:null,relations:["1wlvsb5"],color:"gray",line:"dashed",head:"normal"},{id:"u9omtf",source:"edgeProvider",target:"edgeProviderHost.edp",label:"hosted on",points:[[1264,255],[1378,274],[1522,320],[1596,426],[1673,536],[1652,606],[1596,727],[1576,770],[1543,808],[1507,838]],labelBBox:{x:1647,y:576,width:66,height:18},parent:null,relations:["12ssq9"],color:"gray",line:"dashed",head:"normal"},{id:"r4j4sg",source:"edgeProvider",target:"edgeProviderHost.terralist",label:"published to",points:[[1160,330],[1197,379],[1244,439],[1282,489]],labelBBox:{x:1225,y:395,width:80,height:18},parent:null,relations:["1mpjz5d"],color:"gray",line:"dashed",head:"normal"},{id:"14pfq5a",source:"edgeSdk",target:"edgeProviderHost.edp",label:"hosted on",points:[[1011,677],[1077,727],[1160,788],[1228,838]],labelBBox:{x:1125,y:742,width:66,height:18},parent:null,relations:["1sm6ifh"],color:"gray",line:"dashed",head:"normal"},{id:"lw6otg",source:"edgeSdk",target:"edgeCloud.edgeApi",label:"calls",points:[[884,677],[880,725],[875,785],[871,834]],labelBBox:{x:879,y:742,width:32,height:18},parent:null,relations:["vfhcba"],color:"gray",line:"dashed",head:"normal"},{id:"1ogkmfn",source:"edgeConnectEnv",target:"otcKubernetes.edpCluster",label:"[...]",points:[[5676,330],[5725,397],[5779,491],[5779,586],[5779,586],[5779,586],[5779,1268],[5779,1420],[5657,1426],[5518,1488],[5355,1561],[4853,1609],[4586,1630]],labelBBox:{x:5780,y:922,width:25,height:18},parent:null,relations:["18dtot7","1k6h7jf","15ss7lz"],color:"gray",line:"dashed",head:"normal"},{id:"i6v3n",source:"otcKubernetes.edpCluster",target:"edgeConnectEnv",label:"runs workflows",points:[[4576,1629],[4742,1611],[5004,1565],[5205,1457],[5317,1397],[5420,1395],[5420,1268],[5420,586],[5420,586],[5420,586],[5420,495],[5470,404],[5517,338]],labelBBox:{x:5421,y:923,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"pit45i",source:"otc-edp-per-tenant.cce",target:"otc-edp-per-tenant.cloudServices",label:null,points:[[3134,1357],[3132,1391],[3130,1430],[3128,1465],[3127,1490],[3126,1518],[3125,1543]],labelBBox:null,parent:"otc-edp-per-tenant",relations:["1fzhjm9","15njmlz","hks76r","1w18ve8"],color:"gray",line:"dashed",head:"normal"},{id:"b27cdb",source:"otc-edp-per-tenant.cce",target:"otcKubernetes.edpCluster",label:"register",points:[[3155,1357],[3167,1404],[3190,1457],[3232,1488],[3246,1498],[3370,1498],[3387,1500],[3691,1532],[4043,1584],[4246,1615]],labelBBox:{x:3233,y:1465,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"fkkf8y",source:"otc-edp-per-tenant.forgejoRunnerInfrastructure",target:"otc-edp-per-tenant.cce",label:"registers",points:[[3135,330],[3136,521],[3139,968],[3140,1167]],labelBBox:{x:3139,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",points:[[3627,990],[3508,1031],[3363,1082],[3350,1089],[3311,1112],[3272,1142],[3239,1170]],labelBBox:{x:3351,y:1089,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,points:[[4112,1024],[4081,1043],[4046,1062],[4012,1074],[3755,1171],[3669,1110],[3403,1177],[3374,1184],[3344,1193],[3315,1203]],labelBBox:null,parent:null,relations:["jde35l"],color:"gray",line:"dashed",head:"normal"},{id:"p2umm7",source:"otcKubernetes.edpCluster",target:"otc-edp-per-tenant.cce",label:"runs workflows",points:[[4256,1627],[4014,1603],[3567,1552],[3420,1488],[3353,1459],[3287,1409],[3237,1364]],labelBBox:{x:3421,y:1465,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"e3benz",source:"otc-edpFoundry.workflowSetupEDPInfrastructure",target:"otc-edp-per-tenant.cloudServices",label:"deploys edp to otc.paas",points:[[3627,949],[3366,976],[2865,1043],[2758,1177],[2681,1275],[2693,1351],[2758,1457],[2801,1527],[2880,1572],[2953,1599]],labelBBox:{x:2759,y:1255,width:152,height:18},parent:null,relations:["1pfc6bl"],color:"gray",line:"dashed",head:"normal"},{id:"1mbuxdd",source:"otc-edp-per-tenant.forgejoRunnerInfrastructure",target:"otcKubernetes.edpCluster",label:"register",points:[[2963,245],[2782,254],[2493,287],[2269,395],[2154,451],[2054,459],[2054,586],[2054,586],[2054,586],[2054,1268],[2054,1395],[2152,1408],[2269,1457],[2374,1501],[3333,1496],[3387,1500],[3691,1523],[4043,1578],[4246,1612]],labelBBox:{x:2055,y:923,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"126mt75",source:"otcKubernetes.edpCluster",target:"otc-edp-per-tenant.forgejoRunnerInfrastructure",label:"runs workflows",points:[[4256,1616],[4054,1584],[3696,1530],[3387,1500],[3294,1491],[3270,1493],[3177,1488],[3065,1481],[2774,1507],[2673,1457],[2486,1365],[2367,1310],[2367,1102],[2367,586],[2367,586],[2367,586],[2367,331],[2726,263],[2952,246]],labelBBox:{x:2368,y:923,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"llfvob",source:"otc-edpFoundry.cce",target:"otc-edpFoundry.workflowSetupEDPInfrastructure",label:"invokes",points:[[4113,677],[4050,727],[3972,788],[3908,838]],labelBBox:{x:4021,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",points:[[4229,677],[4230,725],[4232,785],[4234,834]],labelBBox:{x:4233,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",points:[[4226,330],[4226,378],[4226,438],[4226,487]],labelBBox:{x:4227,y:395,width:58,height:18},parent:"otc-edpFoundry",relations:["1umzqdy"],color:"gray",line:"dashed",head:"normal"},{id:"9r557q",source:"otc-edpFoundry.workflowSetupEDPInfrastructure",target:"otcKubernetes.edpCluster",label:"register",points:[[3725,1024],[3656,1136],[3565,1330],[3663,1457],[3734,1548],[4046,1600],[4246,1625]],labelBBox:{x:3664,y:1255,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"c2grk6",source:"otcKubernetes.edpCluster",target:"otc-edpFoundry.workflowSetupEDPInfrastructure",label:"runs workflows",points:[[4256,1580],[4193,1550],[4124,1509],[4071,1457],[3948,1335],[3864,1148],[3821,1034]],labelBBox:{x:4072,y:1255,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"rivecr",source:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",target:"otcKubernetes.edpCluster",label:"register",points:[[4298,1024],[4311,1045],[4324,1068],[4335,1089],[4408,1235],[4420,1428],[4420,1543]],labelBBox:{x:4419,y:1255,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"1ean8sr",source:"otcKubernetes.edpCluster",target:"otc-edpFoundry.workflowSetupArgoCDInfrastructure",label:"runs workflows",points:[[4307,1553],[4281,1526],[4256,1493],[4241,1457],[4186,1319],[4200,1143],[4217,1034]],labelBBox:{x:4242,y:1255,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"1lrp92n",source:"otc-edpFoundry.forgejoRunnerInfrastructure",target:"otcKubernetes.edpCluster",label:"register",points:[[4397,272],[4653,324],[5107,436],[5107,586],[5107,586],[5107,586],[5107,1268],[5107,1504],[4791,1592],[4586,1624]],labelBBox:{x:5108,y:923,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"l1c2z3",source:"otcKubernetes.edpCluster",target:"otc-edpFoundry.forgejoRunnerInfrastructure",label:"runs workflows",points:[[4486,1553],[4498,1533],[4509,1510],[4516,1488],[4519,1478],[4516,1475],[4516,1465],[4505,1003],[4667,837],[4455,426],[4437,392],[4411,362],[4381,337]],labelBBox:{x:4566,y:923,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"c8rye7",source:"edgeProviderHost.terralist",target:"edgeProviderHost.edp",label:"authenticates via",points:[[1356,677],[1356,725],[1356,785],[1356,834]],labelBBox:{x:1357,y:742,width:109,height:18},parent:"edgeProviderHost",relations:["1q6ftvm"],color:"gray",line:"dashed",head:"normal"},{id:"1toht4t",source:"edgeCloud.edgeApi",target:"edgeCloud.edgeResources",label:"creates/destroys",points:[[863,1024],[863,1068],[863,1121],[863,1167]],labelBBox:{x:864,y:1089,width:107,height:18},parent:"edgeCloud",relations:["rr0lcz"],color:"gray",line:"dashed",head:"normal"},{id:"rj56uy",source:"otcTenantProd.otcTenantEdpBuildthing",target:"otcTenantProd.otcTenantObservability",label:"deploys",points:[[18066,330],[18002,380],[17922,441],[17856,491]],labelBBox:{x:17972,y:395,width:52,height:18},parent:"otcTenantProd",relations:["1fxu52d"],color:"gray",line:"dashed",head:"normal"},{id:"u7ohgi",source:"otcTenantProd.otcTenantEdpBuildthing",target:"otcTenantProd.otcTenantCustomerA",label:"deploys",points:[[18182,330],[18182,378],[18182,438],[18182,487]],labelBBox:{x:18183,y:395,width:52,height:18},parent:"otcTenantProd",relations:["6gfo3g"],color:"gray",line:"dashed",head:"normal"},{id:"1ypat9q",source:"otcTenantProd.otcTenantEdpBuildthing",target:"otcTenantNonProd.otcTenantDev1",label:"deploys",points:[[18303,330],[18370,380],[18454,441],[18523,491]],labelBBox:{x:18418,y:395,width:52,height:18},parent:null,relations:["s1ie0n"],color:"gray",line:"dashed",head:"normal"},{id:"1oiku86",source:"otcTenantProd.otcTenantEdpBuildthing",target:"otcTenantNonProd.otcTenantTestX",label:"deploys",points:[[18342,301],[18507,363],[18764,460],[18933,523]],labelBBox:{x:18643,y:395,width:52,height:18},parent:null,relations:["77azfi"],color:"gray",line:"dashed",head:"normal"},{id:"1m1lj8s",source:"otcKubernetes.edpCluster",target:"local.gitea.forgejoRunner",label:"runs workflows",points:[[4576,1640],[4990,1629],[6066,1572],[6066,1268],[6066,586],[6066,586],[6066,586],[6066,443],[6191,441],[6327,395],[6381,377],[8323,382],[8380,380],[9996,349],[11952,272],[12532,248]],labelBBox:{x:6067,y:923,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"19kg5y",source:"local.backstage.backstage",target:"local.backstage.database",label:"reads/writes",points:[[8608,1024],[8608,1068],[8608,1121],[8608,1166]],labelBBox:{x:8609,y:1089,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",points:[[9205,1024],[9236,1043],[9270,1061],[9303,1074],[9547,1172],[9848,1223],[10033,1248]],labelBBox:{x:9397,y:1089,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",points:[[9665,1024],[9693,1042],[9724,1059],[9753,1074],[9844,1121],[9948,1166],[10034,1201]],labelBBox:{x:9826,y:1089,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",points:[[10038,1024],[10069,1069],[10106,1123],[10137,1169]],labelBBox:{x:10098,y:1089,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",points:[[10368,1024],[10337,1069],[10300,1123],[10269,1169]],labelBBox:{x:10323,y:1089,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",points:[[10898,1024],[10898,1068],[10898,1121],[10898,1166]],labelBBox:{x:10899,y:1089,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",points:[[7688,1024],[7688,1068],[7688,1121],[7688,1167]],labelBBox:{x:7689,y:1089,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",points:[[10543,677],[10519,697],[10491,716],[10462,727],[10345,772],[9461,762],[9336,765],[9308,766],[8862,765],[8836,773],[8793,787],[8751,812],[8715,839]],labelBBox:{x:10373,y:742,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",points:[[10575,677],[10547,726],[10513,786],[10484,836]],labelBBox:{x:10534,y:742,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",points:[[10786,594],[11175,611],[12165,662],[12474,773],[12517,789],[12559,813],[12596,839]],labelBBox:{x:12450,y:742,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",points:[[10696,677],[10734,726],[10782,786],[10821,836]],labelBBox:{x:10763,y:742,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",points:[[12250,677],[12250,725],[12250,784],[12250,833]],labelBBox:{x:12251,y:742,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",points:[[10786,600],[11103,624],[11801,686],[12024,773],[12064,789],[12104,814],[12139,839]],labelBBox:{x:11986,y:742,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",points:[[10543,677],[10519,698],[10491,716],[10462,727],[10197,827],[8182,685],[7913,773],[7871,787],[7829,812],[7794,838]],labelBBox:{x:10397,y:742,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",points:[[10543,677],[10519,698],[10491,716],[10462,727],[10244,810],[8587,701],[8366,773],[8323,787],[8281,812],[8245,839]],labelBBox:{x:10385,y:742,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",points:[[10544,677],[10520,698],[10492,716],[10462,727],[10435,738],[8382,742],[8353,742],[8202,745],[7139,726],[6996,773],[6953,787],[6911,812],[6875,839]],labelBBox:{x:8354,y:742,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",points:[[10786,632],[10890,664],[11027,712],[11140,773],[11174,792],[11208,815],[11239,838]],labelBBox:{x:11115,y:742,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",points:[[10786,599],[10980,616],[11312,660],[11574,773],[11613,790],[11652,814],[11686,839]],labelBBox:{x:11551,y:742,width:34,height:18},parent:"local",relations:["ofdedh"],color:"gray",line:"dashed",head:"normal"},{id:"se5brg",source:"local.gitea.forgejoRunner",target:"otcKubernetes.edpCluster",label:"register",points:[[12542,246],[11564,274],[6425,428],[6425,586],[6425,586],[6425,586],[6425,1268],[6425,1411],[6297,1404],[6164,1457],[5880,1571],[4968,1620],[4586,1636]],labelBBox:{x:6426,y:923,width:51,height:18},parent:null,relations:["18dtot7"],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:"1767a1203e463aa5c6283c309b8414cd4b5d1b8f",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 @@ -237,18 +234,18 @@ 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. +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",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",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",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,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,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,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,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. +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",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",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",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",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",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",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",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",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",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",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",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",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:"7a905e08830b8bdb7ac1b61e8977611bb4f29345",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. - +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 @@ -262,96 +259,112 @@ 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",modelRef:"edp.forgejo",icon:"tech:kubernetes",description:{txt:"*.t09.de"},tags:[],style:{opacity:15,size:"md"},depth:1,navigateTo:"forgejo",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",modelRef:"edp.forgejo",icon:"tech:kubernetes",description:{txt:"*.buildth.ing"},tags:[],style:{opacity:15,size:"md"},depth:1,navigateTo:"forgejo",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"}]},"components-template-documentation":{_type:"element",tags:null,links:null,viewOf:"documentation",_stage:"layouted",sourcePath:"views/documentation/d1.c4",description:{txt:"Documentation System Context View"},title:"Documentation",id:"components-template-documentation",autoLayout:{direction:"TB"},hash:"b411a2274eea9b4e4f881a62211880ca09920b61",bounds:{x:0,y:0,width:431,height:503},nodes:[{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["1kjl8ep"],title:"Technical Writer",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"md"},description:{txt:"Could be an engineer, but in this case it's the Technical Writer"},tags:[],kind:"actor",isCustomized:!0,x:32,y:0,width:320,height:180,labelBBox:{x:21,y:54,width:278,height:66}},{id:"documentation",parent:null,level:0,children:[],inEdges:["1kjl8ep"],outEdges:[],title:"Documentation",modelRef:"documentation",shape:"rectangle",color:"primary",icon:"tech:electron",style:{opacity:15,size:"md"},description:{txt:"Documentation system for EDP LikeC4 platform."},tags:[],technology:"Static Site Generator",kind:"system",x:0,y:323,width:384,height:180,labelBBox:{x:46,y:44,width:322,height:85}}],edges:[{id:"1kjl8ep",source:"platformdeveloper",target:"documentation",label:"creates and maintains documentation",dotpos:"e,192.12,322.97 192.12,179.93 192.12,221.13 192.12,270.24 192.12,312.63",points:[[192,180],[192,221],[192,270],[192,313]],labelBBox:{x:193,y:240,width:237,height:18},parent:null,relations:["3sz3k3"],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 +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",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",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",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",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",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",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",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",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",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",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",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",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,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",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",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",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,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,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,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,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",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",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:"e2904f0dec8c25765884ff1970493408959739a3",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",modelRef:"edp.forgejo",icon:"tech:kubernetes",description:{txt:"*.t09.de"},tags:[],style:{opacity:15,size:"md"},depth:1,navigateTo:"forgejo",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",modelRef:"edp.forgejo",icon:"tech:kubernetes",description:{txt:"*.buildth.ing"},tags:[],style:{opacity:15,size:"md"},depth:1,navigateTo:"forgejo",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",description:{txt:"t09.de"},tags:[],style:{opacity:15,size:"md"},technology:"Golang",icon:"tech:go",navigateTo:"forgejo",x:140,y:204,width:389,height:180,labelBBox:{x:46,y:53,width:328,height:67}},{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",tags:[],style:{opacity:15,size:"md"},description:{txt:"buildth.ing"},technology:"Golang",icon:"tech:go",navigateTo:"forgejo",x:1162,y:204,width:365,height:180,labelBBox:{x:46,y:53,width:304,height:67}},{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:171,y:514,width:328,height:180,labelBBox:{x:18,y:53,width:292,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:1181,y:514,width:328,height:180,labelBBox:{x:18,y:53,width:292,height:67}}],edges:[{id:"p747qx",source:"otc-faas.dev.cce.edp",target:"otc-faas.dev.cloudServices",label:null,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,points:[[1345,383],[1345,421],[1345,465],[1345,504]],labelBBox:null,parent:"otc-faas.prod",relations:["2shw6y"],color:"gray",line:"dashed",head:"normal"}]},otcTenants:{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/deployment/otc/otc-tenants.c4",description:null,title:"OTC tenants",id:"otcTenants",autoLayout:{direction:"TB"},hash:"add46ec8104dd3bb1ee71380040278f665c245c2",bounds:{x:0,y:0,width:1806,height:664},nodes:[{id:"otcTenantProd",parent:null,level:0,children:["otcTenantProd.otcTenantEdpBuildthing","otcTenantProd.otcTenantObservability","otcTenantProd.otcTenantCustomerA"],inEdges:[],outEdges:["1ypat9q","1oiku86"],deploymentRef:"otcTenantProd",title:"Prod - builth.ing",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:8,y:8,width:870,height:648,labelBBox:{x:6,y:0,width:108,height:15}},{id:"otcTenantProd.otcTenantEdpBuildthing",parent:"otcTenantProd",level:1,children:[],inEdges:[],outEdges:["rj56uy","u7ohgi","1ypat9q","1oiku86"],deploymentRef:"otcTenantProd.otcTenantEdpBuildthing",title:"edp.builth.ing",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Primary Instance"},tags:[],style:{opacity:15,size:"md"},x:508,y:79,width:320,height:180,labelBBox:{x:85,y:63,width:181,height:48}},{id:"otcTenantProd.otcTenantObservability",parent:"otcTenantProd",level:1,children:[],inEdges:["rj56uy"],outEdges:[],deploymentRef:"otcTenantProd.otcTenantObservability",title:"observability.builth.ing",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Observability Instance"},tags:[],style:{opacity:15,size:"md"},x:58,y:426,width:320,height:180,labelBBox:{x:46,y:63,width:258,height:48}},{id:"otcTenantProd.otcTenantCustomerA",parent:"otcTenantProd",level:1,children:[],inEdges:["u7ohgi"],outEdges:[],deploymentRef:"otcTenantProd.otcTenantCustomerA",title:"customer-a.builth.ing",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Customer Instance"},tags:[],style:{opacity:15,size:"md"},x:508,y:426,width:320,height:180,labelBBox:{x:51,y:63,width:248,height:48}},{id:"otcTenantNonProd",parent:null,level:0,children:["otcTenantNonProd.otcTenantDev1","otcTenantNonProd.otcTenantTestX"],inEdges:["1ypat9q","1oiku86"],outEdges:[],deploymentRef:"otcTenantNonProd",title:"Non-Prod - t09.de",kind:"environment",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:928,y:355,width:870,height:301,labelBBox:{x:6,y:0,width:111,height:15}},{id:"otcTenantNonProd.otcTenantDev1",parent:"otcTenantNonProd",level:1,children:[],inEdges:["1ypat9q"],outEdges:[],deploymentRef:"otcTenantNonProd.otcTenantDev1",title:"dev1.t09.de",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Development Instance"},tags:[],style:{opacity:15,size:"md"},x:978,y:426,width:320,height:180,labelBBox:{x:69,y:63,width:212,height:48}},{id:"otcTenantNonProd.otcTenantTestX",parent:"otcTenantNonProd",level:1,children:[],inEdges:["1oiku86"],outEdges:[],deploymentRef:"otcTenantNonProd.otcTenantTestX",title:"test-x.t09.de",kind:"cluster",color:"primary",shape:"rectangle",icon:"tech:git",description:{txt:"Testing Instance"},tags:[],style:{opacity:15,size:"md"},x:1428,y:426,width:320,height:180,labelBBox:{x:89,y:63,width:172,height:48}}],edges:[{id:"rj56uy",source:"otcTenantProd.otcTenantEdpBuildthing",target:"otcTenantProd.otcTenantObservability",label:"deploys",points:[[552,259],[488,308],[408,370],[342,420]],labelBBox:{x:457,y:324,width:52,height:18},parent:"otcTenantProd",relations:["1fxu52d"],color:"gray",line:"dashed",head:"normal"},{id:"u7ohgi",source:"otcTenantProd.otcTenantEdpBuildthing",target:"otcTenantProd.otcTenantCustomerA",label:"deploys",points:[[668,259],[668,307],[668,366],[668,416]],labelBBox:{x:669,y:324,width:52,height:18},parent:"otcTenantProd",relations:["6gfo3g"],color:"gray",line:"dashed",head:"normal"},{id:"1ypat9q",source:"otcTenantProd.otcTenantEdpBuildthing",target:"otcTenantNonProd.otcTenantDev1",label:"deploys",points:[[789,259],[856,308],[940,370],[1009,420]],labelBBox:{x:904,y:324,width:52,height:18},parent:null,relations:["s1ie0n"],color:"gray",line:"dashed",head:"normal"},{id:"1oiku86",source:"otcTenantProd.otcTenantEdpBuildthing",target:"otcTenantNonProd.otcTenantTestX",label:"deploys",points:[[828,196],[972,223],[1189,273],[1363,355],[1400,373],[1438,396],[1471,420]],labelBBox:{x:1347,y:324,width:52,height:18},parent:null,relations:["77azfi"],color:"gray",line:"dashed",head:"normal"}]},"components-template-documentation":{_type:"element",tags:null,links:null,viewOf:"documentation",_stage:"layouted",sourcePath:"views/documentation/components-template-documentation.c4",description:{txt:"Documentation System Context View"},title:"Documentation",id:"components-template-documentation",autoLayout:{direction:"TB"},hash:"b411a2274eea9b4e4f881a62211880ca09920b61",bounds:{x:0,y:0,width:431,height:503},nodes:[{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["1kjl8ep"],title:"Technical Writer",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"md"},description:{txt:"Could be an engineer, but in this case it's the Technical Writer"},tags:[],kind:"actor",isCustomized:!0,x:32,y:0,width:320,height:180,labelBBox:{x:21,y:54,width:278,height:66}},{id:"documentation",parent:null,level:0,children:[],inEdges:["1kjl8ep"],outEdges:[],title:"Documentation",modelRef:"documentation",shape:"rectangle",color:"primary",icon:"tech:electron",style:{opacity:15,size:"md"},description:{txt:"Documentation system for EDP LikeC4 platform."},tags:[],technology:"Static Site Generator",kind:"system",x:0,y:323,width:384,height:180,labelBBox:{x:46,y:44,width:322,height:85}}],edges:[{id:"1kjl8ep",source:"platformdeveloper",target:"documentation",label:"creates and maintains documentation",points:[[192,180],[192,221],[192,270],[192,313]],labelBBox:{x:193,y:240,width:237,height:18},parent:null,relations:["3sz3k3"],color:"gray",line:"dashed",head:"normal"}]},forgejoGarmInteraction:{_type:"dynamic",tags:null,links:null,_stage:"layouted",sourcePath:"views/dynamic/cicd/forgejo-garm.c4",description:null,title:"Forgejo <-> Garm",id:"forgejoGarmInteraction",variant:"diagram",autoLayout:{direction:"LR"},hash:"d3ebbc1ee40326db9ca9240c8d8d71315f8c5651",sequenceLayout:{actors:[{id:"edp.forgejo",x:32,y:92,width:340,height:180,ports:[{id:"step-01_source",cx:170,cy:370,height:40,type:"source",position:"right"},{id:"step-07_target",cx:170,cy:644,height:24,type:"target",position:"right"},{id:"step-08_source",cx:170,cy:737,height:40,type:"source",position:"right"},{id:"step-10_target",cx:170,cy:852,height:24,type:"target",position:"right"},{id:"step-11_target",cx:170,cy:945,height:24,type:"target",position:"right"},{id:"step-13_target",cx:170,cy:1153,height:24,type:"target",position:"right"},{id:"step-14_source",cx:170,cy:1175,height:40,type:"source",position:"right"},{id:"step-14_target",cx:170,cy:1312,height:24,type:"target",position:"right"},{id:"step-16_source",cx:170,cy:1521,height:40,type:"source",position:"right"}]},{id:"edp.garm.garm",x:436,y:92,width:325,height:180,ports:[{id:"step-01_target",cx:163,cy:370,height:24,type:"target",position:"left"},{id:"step-02_source",cx:163,cy:392,height:40,type:"source",position:"right"},{id:"step-06_target",cx:163,cy:622,height:24,type:"target",position:"right"},{id:"step-07_source",cx:163,cy:644,height:40,type:"source",position:"left"},{id:"step-08_target",cx:163,cy:737,height:24,type:"target",position:"left"},{id:"step-09_source",cx:163,cy:759,height:40,type:"source",position:"right"},{id:"step-16_target",cx:163,cy:1521,height:24,type:"target",position:"left"},{id:"step-17_source",cx:163,cy:1543,height:40,type:"source",position:"right"}]},{id:"edp.garm.providerEdgeConnect",x:821,y:92,width:409,height:180,ports:[{id:"step-02_target",cx:205,cy:392,height:24,type:"target",position:"left"},{id:"step-03_source",cx:205,cy:414,height:40,type:"source",position:"right"},{id:"step-04_source",cx:205,cy:507,height:40,type:"source",position:"right"},{id:"step-17_target",cx:205,cy:1543,height:24,type:"target",position:"left"},{id:"step-18_source",cx:205,cy:1565,height:40,type:"source",position:"right"},{id:"step-19_source",cx:205,cy:1658,height:40,type:"source",position:"right"}]},{id:"edgeConnect",x:1326,y:92,width:320,height:180,ports:[{id:"step-03_target",cx:160,cy:414,height:24,type:"target",position:"left"},{id:"step-04_target",cx:160,cy:507,height:24,type:"target",position:"left"},{id:"step-05_source",cx:160,cy:529,height:40,type:"source",position:"right"},{id:"step-18_target",cx:160,cy:1565,height:24,type:"target",position:"left"},{id:"step-19_target",cx:160,cy:1658,height:24,type:"target",position:"left"}]},{id:"forgejoRunner",x:1706,y:92,width:320,height:180,ports:[{id:"step-05_target",cx:160,cy:529,height:24,type:"target",position:"left"},{id:"step-06_source",cx:160,cy:622,height:40,type:"source",position:"left"},{id:"step-09_target",cx:160,cy:759,height:24,type:"target",position:"left"},{id:"step-10_source",cx:160,cy:852,height:40,type:"source",position:"left"},{id:"step-11_source",cx:160,cy:945,height:40,type:"source",position:"left"},{id:"step-12_source",cx:160,cy:1038,height:40,type:"source",position:"right"},{id:"step-12_target",cx:160,cy:1131,height:24,type:"target",position:"right"},{id:"step-13_source",cx:160,cy:1153,height:40,type:"source",position:"left"},{id:"step-15_source",cx:160,cy:1348,height:40,type:"source",position:"right"},{id:"step-15_target",cx:160,cy:1441,height:24,type:"target",position:"right"}]}],compounds:[{depth:1,x:0,y:0,width:1294,height:1875,id:"edp",origin:"edp"},{depth:0,x:404,y:40,width:858,height:1803,id:"edp.garm",origin:"edp.garm"}],steps:[{id:"step-01",sourceHandle:"step-01_source",targetHandle:"step-01_target",labelBBox:{width:244,height:27}},{id:"step-02",sourceHandle:"step-02_source",targetHandle:"step-02_target",labelBBox:{width:157,height:27}},{id:"step-03",sourceHandle:"step-03_source",targetHandle:"step-03_target",labelBBox:{width:172,height:27}},{id:"step-04",sourceHandle:"step-04_source",targetHandle:"step-04_target",labelBBox:{width:225,height:27}},{id:"step-05",sourceHandle:"step-05_source",targetHandle:"step-05_target",labelBBox:{width:93,height:27}},{id:"step-06",sourceHandle:"step-06_source",targetHandle:"step-06_target",labelBBox:{width:220,height:27}},{id:"step-07",sourceHandle:"step-07_source",targetHandle:"step-07_target",labelBBox:{width:220,height:27}},{id:"step-08",sourceHandle:"step-08_source",targetHandle:"step-08_target",labelBBox:{width:81,height:27}},{id:"step-09",sourceHandle:"step-09_source",targetHandle:"step-09_target",labelBBox:{width:81,height:27}},{id:"step-10",sourceHandle:"step-10_source",targetHandle:"step-10_target",labelBBox:{width:145,height:27}},{id:"step-11",sourceHandle:"step-11_source",targetHandle:"step-11_target",labelBBox:{width:108,height:27}},{id:"step-12",sourceHandle:"step-12_source",targetHandle:"step-12_target",labelBBox:{width:125,height:27}},{id:"step-13",sourceHandle:"step-13_source",targetHandle:"step-13_target",labelBBox:{width:120,height:27}},{id:"step-14",sourceHandle:"step-14_source",targetHandle:"step-14_target",labelBBox:{width:164,height:27}},{id:"step-15",sourceHandle:"step-15_source",targetHandle:"step-15_target",labelBBox:{width:113,height:27}},{id:"step-16",sourceHandle:"step-16_source",targetHandle:"step-16_target",labelBBox:{width:205,height:27}},{id:"step-17",sourceHandle:"step-17_source",targetHandle:"step-17_target",labelBBox:{width:135,height:27}},{id:"step-18",sourceHandle:"step-18_source",targetHandle:"step-18_target",labelBBox:{width:231,height:27}},{id:"step-19",sourceHandle:"step-19_source",targetHandle:"step-19_target",labelBBox:{width:177,height:27}}],parallelAreas:[],bounds:{x:0,y:0,width:2041,height:1875}},bounds:{x:0,y:0,width:2985,height:1512},nodes:[{id:"edp",parent:null,level:0,children:["edp.forgejo","edp.garm"],inEdges:["step-06","step-10","step-11","step-13"],outEdges:["step-03","step-04","step-09","step-18","step-19"],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:2,navigateTo:"edp",x:8,y:81,width:1831,height:712,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edp.forgejo",parent:"edp",level:1,children:[],inEdges:["step-07","step-10","step-11","step-13","step-14"],outEdges:["step-01","step-08","step-14","step-16"],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",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 +and security scanning`},tags:[],technology:"Golang",kind:"container",isCustomized:!0,navigateTo:"forgejo",x:48,y:553,width:340,height:180,labelBBox:{x:46,y:17,width:279,height:139}},{id:"edp.garm",parent:"edp",level:1,children:["edp.garm.garm","edp.garm.providerEdgeConnect"],inEdges:["step-01","step-06","step-08","step-16"],outEdges:["step-03","step-04","step-07","step-09","step-18","step-19"],title:"Garm Image",modelRef:"edp.garm",shape:"rectangle",color:"primary",icon:"tech:docker",style:{opacity:20,size:"md"},tags:[],kind:"container",depth:1,x:709,y:142,width:1090,height:404,labelBBox:{x:6,y:0,width:77,height:15}},{id:"edp.garm.garm",parent:"edp.garm",level:2,children:[],inEdges:["step-01","step-06","step-08","step-16"],outEdges:["step-02","step-07","step-09","step-17"],title:"Garm",modelRef:"edp.garm.garm",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"Provisions runners for Forgejo"},tags:[],kind:"component",x:749,y:316,width:325,height:180,labelBBox:{x:47,y:63,width:262,height:47}},{id:"edp.garm.providerEdgeConnect",parent:"edp.garm",level:2,children:[],inEdges:["step-02","step-17"],outEdges:["step-03","step-04","step-18","step-19"],title:"Garm Provider for EdgeConnect",modelRef:"edp.garm.providerEdgeConnect",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"Acts as abstraction layer for EdgeConnect"},tags:[],kind:"component",x:1349,y:203,width:409,height:180,labelBBox:{x:47,y:54,width:347,height:65}},{id:"edgeConnect",parent:null,level:0,children:[],inEdges:["step-03","step-04","step-18","step-19"],outEdges:["step-05"],title:"EdgeConnect Cloud",modelRef:"edgeConnect",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Provides an API and control plane to run applications on the edge"},tags:[],kind:"system",x:2135,y:169,width:320,height:180,labelBBox:{x:24,y:54,width:273,height:65}},{id:"forgejoRunner",parent:null,level:0,children:[],inEdges:["step-05","step-09","step-12","step-15"],outEdges:["step-06","step-10","step-11","step-12","step-13","step-15"],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:2665,y:810,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:101}}],edges:[{id:"step-01",source:"edp.forgejo",target:"edp.garm.garm",label:"(Webhook) A new job is pending",points:[[389,687],[482,703],[596,707],[689,664],[761,631],[818,563],[857,504]],labelBBox:{x:458,y:632,width:228,height:19},parent:"edp",relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@0"},{id:"step-02",source:"edp.garm.garm",target:"edp.garm.providerEdgeConnect",label:"Create new runner",points:[[1074,428],[1142,433],[1220,433],[1289,417],[1321,410],[1352,399],[1383,387]],labelBBox:{x:1144,y:385,width:141,height:19},parent:"edp.garm",relations:["1olxwwi"],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@1"},{id:"step-03",source:"edp.garm.providerEdgeConnect",target:"edgeConnect",label:"Create App (Runner)",points:[[1639,203],[1692,152],[1767,92],[1847,65],[1943,32],[1980,29],[2075,65],[2128,85],[2176,124],[2214,162]],labelBBox:{x:1886,y:7,width:156,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@2"},{id:"step-04",source:"edp.garm.providerEdgeConnect",target:"edgeConnect",label:"Create AppInstance (Runner)",points:[[1759,234],[1788,228],[1818,222],[1847,219],[1948,206],[1974,210],[2075,219],[2091,220],[2108,222],[2125,225]],labelBBox:{x:1859,y:178,width:209,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@3"},{id:"step-05",source:"edgeConnect",target:"forgejoRunner",label:"Deploys",points:[[2448,349],[2502,386],[2560,432],[2605,484],[2687,579],[2750,711],[2787,800]],labelBBox:{x:2524,y:372,width:77,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@4"},{id:"step-06",source:"forgejoRunner",target:"edp.garm.garm",label:"Get runner registration token",points:[[1084,448],[1101,452],[1118,455],[1134,459],[1784,591],[2007,420],[2605,706],[2657,731],[2706,772],[2745,810]],labelBBox:{x:1862,y:491,width:204,height:19},dir:"back",parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@5"},{id:"step-07",source:"edp.garm.garm",target:"edp.forgejo",label:"Get runner registration token",points:[[399,600],[488,577],[595,546],[689,510],[709,503],[730,495],[750,486]],labelBBox:{x:470,y:478,width:204,height:19},dir:"back",parent:"edp",relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@6"},{id:"step-08",source:"edp.forgejo",target:"edp.garm.garm",label:"Token",points:[[300,553],[341,514],[393,472],[449,449],[540,410],[650,399],[739,397]],labelBBox:{x:539,y:368,width:65,height:19},parent:"edp",relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@7"},{id:"step-09",source:"edp.garm.garm",target:"forgejoRunner",label:"Token",points:[[1074,487],[1094,496],[1115,504],[1134,511],[1676,699],[2346,822],[2654,873]],labelBBox:{x:1931,y:682,width:65,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@8"},{id:"step-10",source:"forgejoRunner",target:"edp.forgejo",label:"Register runner",points:[[399,713],[415,718],[432,722],[449,726],[1184,886],[1385,807],[2135,865],[2304,878],[2346,883],[2515,892],[2564,894],[2617,896],[2665,897]],labelBBox:{x:1492,y:803,width:129,height:19},dir:"back",parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@9"},{id:"step-11",source:"forgejoRunner",target:"edp.forgejo",label:"Fetch job",points:[[272,741],[371,914],[606,1253],[911,1253],[911,1253],[911,1253],[2296,1253],[2485,1253],[2658,1094],[2751,990]],labelBBox:{x:1511,y:1220,width:92,height:19},dir:"back",parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@10"},{id:"step-12",source:"forgejoRunner",target:"forgejoRunner",label:"Work on job",points:[[2802,810],[2796,753],[2804,700],[2825,700],[2845,700],[2852,747],[2849,799]],labelBBox:{x:2773,y:667,width:109,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@11"},{id:"step-13",source:"forgejoRunner",target:"edp.forgejo",label:"Send result",points:[[240,743],[268,866],[332,1075],[449,1217],[604,1404],[667,1512],[911,1512],[911,1512],[911,1512],[2296,1512],[2568,1512],[2731,1160],[2794,990]],labelBBox:{x:1505,y:1479,width:104,height:19},dir:"back",parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@12"},{id:"step-14",source:"edp.forgejo",target:"edp.forgejo",label:"Deregister Runner",points:[[157,553],[142,496],[163,443],[218,443],[271,443],[292,490],[282,542]],labelBBox:{x:147,y:410,width:148,height:19},parent:"edp",relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@13"},{id:"step-15",source:"forgejoRunner",target:"forgejoRunner",label:"Terminate",points:[[2788,810],[2763,708],[2775,590],[2825,590],[2873,590],[2886,700],[2864,800]],labelBBox:{x:2779,y:557,width:97,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@14"},{id:"step-16",source:"edp.forgejo",target:"edp.garm.garm",label:"(Webhook) A job finished",points:[[258,553],[295,479],[358,379],[449,334],[538,289],[649,304],[740,332]],labelBBox:{x:477,y:273,width:189,height:19},parent:"edp",relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@15"},{id:"step-17",source:"edp.garm.garm",target:"edp.garm.providerEdgeConnect",label:"Delete runner",points:[[1074,368],[1094,363],[1115,359],[1134,356],[1201,343],[1274,332],[1340,322]],labelBBox:{x:1155,y:298,width:119,height:19},parent:"edp.garm",relations:["1olxwwi"],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@16"},{id:"step-18",source:"edp.garm.providerEdgeConnect",target:"edgeConnect",label:"Delete AppInstance (Runner)",points:[[1759,294],[1855,294],[1971,291],[2075,284],[2091,283],[2108,282],[2125,280]],labelBBox:{x:1856,y:252,width:215,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@17"},{id:"step-19",source:"edp.garm.providerEdgeConnect",target:"edgeConnect",label:"Delete App (Runner)",points:[[1759,350],[1856,369],[1972,381],[2075,358],[2092,355],[2109,350],[2126,344]],labelBBox:{x:1883,y:326,width:161,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@18"}]},forgejoGarmArchitecture:{_type:"deployment",tags:null,links:null,_stage:"layouted",sourcePath:"views/dynamic/cicd/garm-arch.c4",description:{txt:"Deployment architecture showing GARM orchestrating ephemeral runners on Edge Connect for Forgejo Actions"},title:"Architecture of Forgejo, Garm and Edge Connect",id:"forgejoGarmArchitecture",autoLayout:{direction:"TB"},hash:"c704c24d8449d144021a9ce47b0047cf36a1a865",bounds:{x:0,y:0,width:1588,height:1521},nodes:[{id:"otcKubernetes",parent:null,level:0,children:["otcKubernetes.edpCluster"],inEdges:["ldqgs7","gly1kq","9r08on"],outEdges:["dvpbhz"],deploymentRef:"otcKubernetes",title:"OTC Kubernetes",kind:"environment",technology:"Kubernetes",color:"blue",shape:"rectangle",icon:"tech:kubernetes",description:{txt:"OTC Container Cluster Engine hosting EDP platform"},tags:[],style:{opacity:15,size:"md"},depth:3,x:8,y:8,width:1074,height:1505,labelBBox:{x:6,y:0,width:106,height:15}},{id:"otcKubernetes.edpCluster",parent:"otcKubernetes",level:1,children:["otcKubernetes.edpCluster.forgejoActions","otcKubernetes.edpCluster.edpCluster","otcKubernetes.edpCluster.forgejo"],inEdges:["ldqgs7","gly1kq","9r08on"],outEdges:["dvpbhz"],deploymentRef:"otcKubernetes.edpCluster",title:"EDP Cluster",kind:"cluster",color:"primary",shape:"rectangle",description:{txt:"EDP platform cluster"},tags:[],style:{opacity:15,size:"md"},depth:2,x:40,y:61,width:1010,height:1420,labelBBox:{x:6,y:0,width:82,height:15}},{id:"otcKubernetes.edpCluster.forgejoActions",parent:"otcKubernetes.edpCluster",level:2,children:[],inEdges:["9r08on"],outEdges:["dvpbhz"],kind:"instance",title:"Forgejo Actions",description:{txt:"CI/CD orchestration for Forgejo"},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otcKubernetes.edpCluster.forgejoActions",modelRef:"edp.forgejoActions",x:668,y:132,width:332,height:180,labelBBox:{x:46,y:54,width:270,height:67}},{id:"edgeConnectEnv",parent:null,level:0,children:["edgeConnectEnv.runnerInfrastructure"],inEdges:["dvpbhz"],outEdges:["ldqgs7","gly1kq","9r08on"],deploymentRef:"edgeConnectEnv",title:"Edge Connect",kind:"environment",technology:"Edge Connect Platform",color:"green",shape:"rectangle",modelRef:"forgejoRunner",icon:"tech:docker",description:{txt:"Edge infrastructure for ephemeral runner deployment"},tags:[],style:{opacity:15,size:"md"},depth:2,x:1132,y:408,width:448,height:351,labelBBox:{x:6,y:0,width:93,height:15}},{id:"edgeConnectEnv.runnerInfrastructure",parent:"edgeConnectEnv",level:1,children:["edgeConnectEnv.runnerInfrastructure.forgejoRunner"],inEdges:["dvpbhz"],outEdges:["ldqgs7","gly1kq","9r08on"],deploymentRef:"edgeConnectEnv.runnerInfrastructure",title:"Runner Infrastructure",kind:"computeressource",color:"primary",shape:"rectangle",modelRef:"forgejoRunner",description:{txt:"Dynamically provisioned runner instances"},tags:[],style:{opacity:15,size:"md"},depth:1,x:1164,y:461,width:384,height:266,labelBBox:{x:6,y:0,width:156,height:15}},{id:"edgeConnectEnv.runnerInfrastructure.forgejoRunner",parent:"edgeConnectEnv.runnerInfrastructure",level:2,children:[],inEdges:["dvpbhz"],outEdges:["ldqgs7","gly1kq","9r08on"],kind:"instance",title:"Forgejo Runner",description:{txt:"Ephemeral Forgejo Actions runner"},tags:[],color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"edgeConnectEnv.runnerInfrastructure.forgejoRunner",modelRef:"forgejoRunner",x:1196,y:515,width:320,height:180,labelBBox:{x:44,y:63,width:232,height:47}},{id:"otcKubernetes.edpCluster.edpCluster",parent:"otcKubernetes.edpCluster",level:2,children:["otcKubernetes.edpCluster.edpCluster.garmService","otcKubernetes.edpCluster.edpCluster.providerEdgeConnect"],inEdges:["ldqgs7"],outEdges:[],deploymentRef:"otcKubernetes.edpCluster.edpCluster",title:"GARM pod",kind:"environment",technology:"Kubernetes",color:"primary",shape:"rectangle",tags:[],style:{opacity:15,size:"md"},depth:1,x:90,y:797,width:510,height:634,labelBBox:{x:6,y:0,width:65,height:15}},{id:"otcKubernetes.edpCluster.edpCluster.garmService",parent:"otcKubernetes.edpCluster.edpCluster",level:3,children:[],inEdges:["ldqgs7"],outEdges:["9d8wuc"],kind:"instance",title:"Garm",description:{txt:"GARM - Runner lifecycle manager"},tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otcKubernetes.edpCluster.edpCluster.garmService",modelRef:"edp.garm.garm",x:168,y:869,width:352,height:180,labelBBox:{x:46,y:63,width:290,height:47}},{id:"otcKubernetes.edpCluster.forgejo",parent:"otcKubernetes.edpCluster",level:2,children:[],inEdges:["gly1kq"],outEdges:[],kind:"instance",title:"Forgejo",description:{txt:"Forgejo - Git platform with Actions"},technology:"Golang",tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:20,size:"md"},deploymentRef:"otcKubernetes.edpCluster.forgejo",modelRef:"edp.forgejo",navigateTo:"forgejo",x:650,y:869,width:350,height:180,labelBBox:{x:46,y:53,width:288,height:67}},{id:"otcKubernetes.edpCluster.edpCluster.providerEdgeConnect",parent:"otcKubernetes.edpCluster.edpCluster",level:3,children:[],inEdges:["9d8wuc"],outEdges:[],kind:"instance",title:"Garm Provider for EdgeConnect",description:{txt:"GARM Provider for Edge Connect"},tags:[],icon:"tech:go",color:"primary",shape:"rectangle",style:{opacity:15,size:"md"},deploymentRef:"otcKubernetes.edpCluster.edpCluster.providerEdgeConnect",modelRef:"edp.garm.providerEdgeConnect",x:140,y:1201,width:409,height:180,labelBBox:{x:46,y:63,width:348,height:48}}],edges:[{id:"9d8wuc",source:"otcKubernetes.edpCluster.edpCluster.garmService",target:"otcKubernetes.edpCluster.edpCluster.providerEdgeConnect",label:"calls binary",points:[[344,1048],[344,1092],[345,1146],[345,1191]],labelBBox:{x:346,y:1113,width:74,height:18},parent:"otcKubernetes.edpCluster.edpCluster",relations:["1olxwwi"],color:"gray",line:"dashed",head:"normal"},{id:"dvpbhz",source:"otcKubernetes.edpCluster.forgejoActions",target:"edgeConnectEnv.runnerInfrastructure.forgejoRunner",label:"runs workflows",points:[[1e3,292],[1063,323],[1134,362],[1192,408],[1227,436],[1260,473],[1287,507]],labelBBox:{x:1176,y:377,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"ldqgs7",source:"edgeConnectEnv.runnerInfrastructure.forgejoRunner",target:"otcKubernetes.edpCluster.edpCluster.garmService",label:"retrieves bootstrap information",points:[[1283,695],[1257,720],[1226,744],[1192,759],[1055,817],[661,741],[524,797],[489,812],[456,836],[429,861]],labelBBox:{x:1166,y:766,width:193,height:18},parent:null,relations:["15ss7lz"],color:"gray",line:"dashed",head:"normal"},{id:"gly1kq",source:"edgeConnectEnv.runnerInfrastructure.forgejoRunner",target:"otcKubernetes.edpCluster.forgejo",label:"registers with and picks up jobs",points:[[1269,695],[1245,717],[1218,740],[1192,759],[1135,799],[1069,838],[1009,870]],labelBBox:{x:1175,y:766,width:199,height:18},parent:null,relations:["1k6h7jf"],color:"gray",line:"dashed",head:"normal"},{id:"9r08on",source:"edgeConnectEnv.runnerInfrastructure.forgejoRunner",target:"otcKubernetes.edpCluster.forgejoActions",label:"register",points:[[1289,515],[1261,480],[1227,441],[1192,408],[1140,359],[1072,320],[1009,290]],labelBBox:{x:1177,y:377,width:51,height:18},parent:null,relations:["18dtot7"],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",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 +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",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",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",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",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",points:[[914,483],[1008,503],[1126,528],[1222,549]],labelBBox:{x:1015,y:473,width:148,height:19},parent:"edp",relations:["yorv62"],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@4"},{id:"step-06",source:"edp.argoCD",target:"cloud",label:"deploys application",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",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"}]},orchestration_workflow:{_type:"dynamic",tags:null,links:null,_stage:"layouted",sourcePath:"views/dynamic/orchestration/orchestration-workflow.c4",description:null,title:"Orchestration Workflow",id:"orchestration_workflow",variant:"diagram",autoLayout:{direction:"TB"},hash:"df518980b33cdcc56c4e56c7c6fe04f37b4e95bb",sequenceLayout:{actors:[{id:"developer",x:0,y:0,width:320,height:180,ports:[{id:"step-01_source",cx:160,cy:306,height:40,type:"source",position:"right"}]},{id:"edp.forgejo",x:380,y:0,width:340,height:180,ports:[{id:"step-01_target",cx:170,cy:306,height:24,type:"target",position:"left"},{id:"step-02_source",cx:170,cy:328,height:40,type:"source",position:"right"},{id:"step-03_source",cx:170,cy:421,height:40,type:"source",position:"right"}]},{id:"edp.forgejoActions",x:780,y:0,width:350,height:180,ports:[{id:"step-02_target",cx:175,cy:328,height:24,type:"target",position:"left"}]},{id:"edp.forgejogit",x:1190,y:0,width:320,height:180,ports:[{id:"step-03_target",cx:160,cy:421,height:24,type:"target",position:"left"},{id:"step-04_source",cx:160,cy:443,height:40,type:"source",position:"right"}]},{id:"edp.argoCD",x:1570,y:0,width:320,height:180,ports:[{id:"step-04_target",cx:160,cy:443,height:24,type:"target",position:"left"},{id:"step-05_source",cx:160,cy:465,height:40,type:"source",position:"right"}]},{id:"runtimeCluster",x:1950,y:0,width:320,height:180,ports:[{id:"step-05_target",cx:160,cy:465,height:24,type:"target",position:"left"},{id:"step-06_target",cx:160,cy:558,height:24,type:"target",position:"right"}]},{id:"terraform",x:2330,y:0,width:320,height:180,ports:[{id:"step-06_source",cx:160,cy:558,height:40,type:"source",position:"left"}]}],compounds:[],steps:[{id:"step-01",sourceHandle:"step-01_source",targetHandle:"step-01_target",labelBBox:{width:156,height:27}},{id:"step-02",sourceHandle:"step-02_source",targetHandle:"step-02_target",labelBBox:{width:96,height:27}},{id:"step-03",sourceHandle:"step-03_source",targetHandle:"step-03_target",labelBBox:{width:122,height:27}},{id:"step-04",sourceHandle:"step-04_source",targetHandle:"step-04_target",labelBBox:{width:114,height:27}},{id:"step-05",sourceHandle:"step-05_source",targetHandle:"step-05_target",labelBBox:{width:90,height:27}},{id:"step-06",sourceHandle:"step-06_source",targetHandle:"step-06_target",labelBBox:{width:105,height:27}}],parallelAreas:[],bounds:{x:0,y:0,width:2650,height:635}},bounds:{x:0,y:0,width:780,height:1874},nodes:[{id:"developer",parent:null,level:0,children:[],inEdges:[],outEdges:["step-01"],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:178,y:0,width:320,height:180,labelBBox:{x:53,y:63,width:214,height:48}},{id:"edp.forgejo",parent:null,level:0,children:[],inEdges:["step-01"],outEdges:["step-02","step-03"],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 +and security scanning`},tags:[],technology:"Golang",kind:"container",navigateTo:"forgejo",x:168,y:339,width:340,height:180,labelBBox:{x:46,y:17,width:278,height:139}},{id:"edp.forgejoActions",parent:null,level:0,children:[],inEdges:["step-02"],outEdges:[],title:"Forgejo Actions",modelRef:"edp.forgejoActions",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"Continuous Integration like Github Actions"},tags:[],technology:"Golang",kind:"component",x:0,y:678,width:350,height:180,labelBBox:{x:46,y:44,width:288,height:85}},{id:"edp.forgejogit",parent:null,level:0,children:[],inEdges:["step-03"],outEdges:["step-04"],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:15,size:"md"},tags:[],kind:"component",x:460,y:678,width:320,height:180,labelBBox:{x:97,y:74,width:156,height:24}},{id:"edp.argoCD",parent:null,level:0,children:[],inEdges:["step-04"],outEdges:["step-05"],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"GitOps Service"},tags:[],kind:"container",navigateTo:"argoCD",x:460,y:1016,width:320,height:180,labelBBox:{x:108,y:63,width:105,height:48}},{id:"runtimeCluster",parent:null,level:0,children:[],inEdges:["step-05","step-06"],outEdges:[],title:"Kubernetes Cluster",modelRef:"runtimeCluster",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Target cluster where applications are deployed"},tags:[],technology:"Kubernetes",kind:"system",x:460,y:1355,width:320,height:180,labelBBox:{x:35,y:44,width:250,height:86}},{id:"terraform",parent:null,level:0,children:[],inEdges:[],outEdges:["step-06"],title:"Terraform",modelRef:"terraform",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Infrastructure provisioning (IaC)"},tags:[],technology:"Terraform",kind:"component",x:460,y:1694,width:320,height:180,labelBBox:{x:53,y:53,width:214,height:67}}],edges:[{id:"step-01",source:"developer",target:"edp.forgejo",label:"defines & commits",points:[[338,180],[338,226],[338,281],[338,328]],labelBBox:{x:347,y:247,width:140,height:19},parent:null,relations:["14tsadm"],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@0"},{id:"step-02",source:"edp.forgejo",target:"edp.forgejoActions",label:"pipelines",points:[[295,519],[273,565],[245,621],[223,668]],labelBBox:{x:271,y:585,width:80,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@1"},{id:"step-03",source:"edp.forgejo",target:"edp.forgejogit",label:"git repository",points:[[413,519],[451,565],[499,622],[539,670]],labelBBox:{x:497,y:585,width:106,height:19},parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@2"},{id:"step-04",source:"edp.forgejogit",target:"edp.argoCD",label:"sync trigger",points:[[620,858],[620,903],[620,959],[620,1006]],labelBBox:{x:629,y:924,width:98,height:19},parent:null,relations:["yorv62"],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@3"},{id:"step-05",source:"edp.argoCD",target:"runtimeCluster",label:"deploys",points:[[620,1196],[620,1242],[620,1298],[620,1345]],labelBBox:{x:629,y:1263,width:74,height:19},parent:null,relations:["1f6l7ms"],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@4"},{id:"step-06",source:"terraform",target:"runtimeCluster",label:"provisions",points:[[620,1546],[620,1593],[620,1649],[620,1694]],labelBBox:{x:629,y:1602,width:89,height:19},dir:"back",parent:null,relations:[],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@5"}]},application_deployment_flow:{_type:"dynamic",tags:null,links:null,_stage:"layouted",sourcePath:"views/edp/application-deployment-flow.c4",description:null,title:"Application Deployment Flow",id:"application_deployment_flow",variant:"diagram",autoLayout:{direction:"TB"},hash:"9401c5e464791c7578a947fb92e26f302d46d9f5",sequenceLayout:{actors:[{id:"developer",x:0,y:0,width:320,height:180,ports:[{id:"step-01_source",cx:160,cy:306,height:40,type:"source",position:"right"}]},{id:"edp.forgejogit",x:380,y:0,width:320,height:180,ports:[{id:"step-01_target",cx:160,cy:306,height:24,type:"target",position:"left"},{id:"step-02_source",cx:160,cy:328,height:40,type:"source",position:"right"},{id:"step-04_source",cx:160,cy:443,height:40,type:"source",position:"right"}]},{id:"edp.forgejoActions",x:760,y:0,width:350,height:180,ports:[{id:"step-02_target",cx:175,cy:328,height:24,type:"target",position:"left"},{id:"step-03_source",cx:175,cy:350,height:40,type:"source",position:"right"}]},{id:"edp.imageregistry",x:1170,y:0,width:373,height:180,ports:[{id:"step-03_target",cx:187,cy:350,height:24,type:"target",position:"left"}]},{id:"edp.argoCD",x:1603,y:0,width:320,height:180,ports:[{id:"step-04_target",cx:160,cy:443,height:24,type:"target",position:"left"},{id:"step-05_source",cx:160,cy:465,height:40,type:"source",position:"right"}]},{id:"runtimeCluster",x:1983,y:0,width:320,height:180,ports:[{id:"step-05_target",cx:160,cy:465,height:24,type:"target",position:"left"}]}],compounds:[],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:89,height:27}},{id:"step-03",sourceHandle:"step-03_source",targetHandle:"step-03_target",labelBBox:{width:114,height:27}},{id:"step-04",sourceHandle:"step-04_source",targetHandle:"step-04_target",labelBBox:{width:157,height:27}},{id:"step-05",sourceHandle:"step-05_source",targetHandle:"step-05_target",labelBBox:{width:90,height:27}}],parallelAreas:[],bounds:{x:0,y:0,width:2303,height:542}},bounds:{x:0,y:0,width:1022,height:1196},nodes:[{id:"developer",parent:null,level:0,children:[],inEdges:[],outEdges:["step-01"],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:252,y:0,width:320,height:180,labelBBox:{x:53,y:63,width:214,height:48}},{id:"edp.forgejogit",parent:null,level:0,children:[],inEdges:["step-01"],outEdges:["step-02","step-04"],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:15,size:"md"},tags:[],kind:"component",x:252,y:339,width:320,height:180,labelBBox:{x:97,y:74,width:155,height:24}},{id:"edp.forgejoActions",parent:null,level:0,children:[],inEdges:["step-02"],outEdges:["step-03"],title:"Forgejo Actions",modelRef:"edp.forgejoActions",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"Continuous Integration like Github Actions"},tags:[],technology:"Golang",kind:"component",x:15,y:678,width:350,height:180,labelBBox:{x:46,y:44,width:288,height:85}},{id:"edp.imageregistry",parent:null,level:0,children:[],inEdges:["step-03"],outEdges:[],title:"Forgejo OCI Image Registry",modelRef:"edp.imageregistry",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"Container Image Registry"},tags:[],technology:"Golang",kind:"component",x:0,y:1016,width:373,height:180,labelBBox:{x:46,y:54,width:311,height:67}},{id:"edp.argoCD",parent:null,level:0,children:[],inEdges:["step-04"],outEdges:["step-05"],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"GitOps Service"},tags:[],kind:"container",navigateTo:"argoCD",x:481,y:678,width:320,height:180,labelBBox:{x:107,y:63,width:105,height:47}},{id:"runtimeCluster",parent:null,level:0,children:[],inEdges:["step-05"],outEdges:[],title:"Kubernetes Cluster",modelRef:"runtimeCluster",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Target cluster where applications are deployed"},tags:[],technology:"Kubernetes",kind:"system",x:484,y:1016,width:320,height:180,labelBBox:{x:35,y:45,width:250,height:85}},{id:"edp.forgejo",parent:null,level:0,children:[],inEdges:[],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:0,y:0,width:6408,height:1862},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:5888,y:192,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:8,y:8,width:5840,height:1846,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:48,y:69,width:2580,height:935,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:1358,y:572,width:1230,height:392,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:88,y:130,width:1230,height:834,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:3308,y:572,width:600,height:1242,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:2668,y:130,width:600,height:834,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:3948,y:572,width:1860,height:831,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:1398,y:634,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:2028,y:634,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:128,y:192,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:128,y:634,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:758,y:634,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:3348,y:1073,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:3348,y:634,width:520,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:3348,y:1484,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:2708,y:192,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:2708,y:634,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:5248,y:634,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:3988,y:634,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:4618,y:634,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:3988,y:1073,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:[[5888,380],[5537,435],[4891,529],[4336,564],[4303,567],[2004,563],[1973,572],[1931,585],[1888,605],[1850,629]],labelBBox:{x:4585,y:541,width:161,height:18},parent:null,relations:["1woleh6"],color:"gray",line:"dashed",head:"normal"},{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:[[5888,397],[5631,453],[5226,532],[4870,564],[4839,567],[2671,564],[2641,572],[2594,585],[2548,606],[2504,629]],labelBBox:{x:5046,y:541,width:60,height:18},parent:null,relations:["1l9a3pd"],color:"gray",line:"dashed",head:"normal"},{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:[[5888,369],[5436,421],[4473,526],[3656,564],[3624,566],[1362,563],[1331,572],[1289,585],[1247,605],[1209,628]],labelBBox:{x:3997,y:541,width:52,height:18},parent:null,relations:["1uzzn9j"],color:"gray",line:"dashed",head:"normal"},{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:[[5888,438],[5750,487],[5575,540],[5414,564],[5373,571],[3961,560],[3921,572],[3879,585],[3837,605],[3799,628]],labelBBox:{x:5518,y:541,width:151,height:18},parent:null,relations:["177bm2y"],color:"gray",line:"dashed",head:"normal"},{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:[[5888,415],[5694,469],[5420,536],[5175,564],[5123,571],[3331,557],[3281,572],[3239,585],[3197,605],[3159,628]],labelBBox:{x:5310,y:541,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,5717.2,633.79 5938.9,481.38 5870.6,528.36 5794.5,580.63 5725.6,628.03",points:[[5939,481],[5871,528],[5795,581],[5726,628]],labelBBox:{x:5848,y:541,width:87,height:18},parent:null,relations:["jpl8ll"],color:"gray",line:"dashed",head:"normal"}]},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:0,y:0,width:846,height:1457},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:8,y:8,width:830,height:1441,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:198,y:608,width:600,height:801,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:238,y:669,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:238,y:1079,width:520,height:290,labelBBox:{x:75,y:109,width:369,height:63}}],edges:[]},"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:"55fcafa716faf1d0e234f3e0411868055c01907e",bounds:{x:0,y:0,width:3419,height:1756},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:702,y:280,width:333,height:180,labelBBox:{x:19,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:1257,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 +and security scanning`},tags:[],technology:"Golang",kind:"container",navigateTo:"forgejo",x:682,y:0,width:340,height:180,labelBBox:{x:45,y:17,width:279,height:139}}],edges:[{id:"step-01",source:"developer",target:"edp.forgejogit",label:"git push",points:[[412,180],[412,226],[412,281],[412,328]],labelBBox:{x:421,y:247,width:75,height:19},parent:null,relations:["1k2mvqc","vxxbwa"],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@0"},{id:"step-02",source:"edp.forgejogit",target:"edp.forgejoActions",label:"triggers",points:[[353,519],[322,565],[285,622],[254,669]],labelBBox:{x:316,y:585,width:73,height:19},parent:null,relations:["1yai3r5"],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@1"},{id:"step-03",source:"edp.forgejoActions",target:"edp.imageregistry",label:"push image",points:[[189,858],[188,903],[188,959],[187,1006]],labelBBox:{x:197,y:924,width:98,height:19},parent:null,relations:["21d2gk"],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@2"},{id:"step-04",source:"edp.forgejogit",target:"edp.argoCD",label:"watches manifests",points:[[472,519],[504,565],[542,622],[574,669]],labelBBox:{x:542,y:585,width:141,height:19},parent:null,relations:["yorv62"],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@3"},{id:"step-05",source:"edp.argoCD",target:"runtimeCluster",label:"deploys",points:[[641,858],[642,903],[642,959],[643,1006]],labelBBox:{x:651,y:924,width:74,height:19},parent:null,relations:["1f6l7ms"],color:"gray",line:"dashed",head:"normal",tags:[],astPath:"/steps@4"}]},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:"61cc384ce5746ebd89897cb187c94a7d651e3960",bounds:{x:0,y:0,width:5177,height:1588},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:15,y:1360,width:320,height:180,labelBBox:{x:23,y:36,width:274,height:102}},{id:"idpbuilder",parent:null,level:0,children:[],inEdges:[],outEdges:["1dvclx1","hjkafp"],title:"idpbuilder",modelRef:"idpbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:25,size:"md"},description:{txt:"Bootstrap tool for initial platform provisioning"},tags:[],technology:"Golang",kind:"component",x:4411,y:69,width:335,height:180,labelBBox:{x:47,y:44,width:273,height:86}},{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:4857,y:69,width:320,height:180,labelBBox:{x:53,y:63,width:214,height:48}},{id:"edp",parent:null,level:0,children:["edp.argoCD","edp.forgejo","edp.api","edp.ui","edp.grafana","edp.keycloak","edp.forgejogit","edp.mailhog","edp.minio","edp.monitoring","edp.openbao","edp.testApp","edp.garm","edp.application","edp.loki","edp.prometheus","edp.forgejoActions","edp.imageregistry"],inEdges:["1cy1y20","1dvclx1","hjkafp","1y3lcyj","1ttqc1r","170qzun","1bt83vj","1nv0w41","1agven9","3nxrq7","bfgapq"],outEdges:["1e6lbxb","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:375,y:8,width:3996,height:1572,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edp.argoCD",parent:"edp",level:1,children:[],inEdges:["1dvclx1","1ttqc1r","1qfsohc"],outEdges:["f6xyb4","1e6lbxb"],title:"ArgoCD",modelRef:"edp.argoCD",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"GitOps Service"},tags:[],kind:"container",navigateTo:"argoCD",x:1815,y:392,width:320,height:180,labelBBox:{x:108,y:63,width:105,height:48}},{id:"edp.forgejo",parent:"edp",level:1,children:[],inEdges:["hjkafp","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:2245,y:392,width:340,height:180,labelBBox:{x:46,y:17,width:278,height:139}},{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:3581,y:392,width:320,height:180,labelBBox:{x:62,y:63,width:226,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:4011,y:392,width:320,height:180,labelBBox:{x:102,y:63,width:116,height:48}},{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:2695,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:3151,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:["1qfsohc","on1qgt"],title:"ForgejoGit",modelRef:"edp.forgejogit",shape:"rectangle",color:"primary",icon:"tech:git",style:{opacity:25,size:"md"},tags:[],kind:"component",x:1815,y:715,width:320,height:180,labelBBox:{x:97,y:74,width:156,height:24}},{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:415,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:845,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:1385,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:415,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:845,y:392,width:320,height:180,labelBBox:{x:50,y:63,width:220,height:48}},{id:"edp.garm",parent:"edp",level:1,children:[],inEdges:[],outEdges:[],title:"Garm Image",modelRef:"edp.garm",shape:"rectangle",color:"primary",icon:"tech:docker",style:{opacity:25,size:"md"},tags:[],kind:"container",x:1385,y:392,width:320,height:180,labelBBox:{x:89,y:74,width:173,height:24}},{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:430,y:715,width:320,height:180,labelBBox:{x:73,y:53,width:175,height:67}},{id:"runtimeCluster",parent:null,level:0,children:[],inEdges:["1e6lbxb"],outEdges:[],title:"Kubernetes Cluster",modelRef:"runtimeCluster",shape:"rectangle",color:"primary",style:{opacity:25,size:"md"},description:{txt:"Target cluster where applications are deployed"},tags:[],technology:"Kubernetes",kind:"system",x:0,y:715,width:320,height:180,labelBBox:{x:35,y:44,width:250,height:85}},{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:2525,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:2955,y:715,width:320,height:180,labelBBox:{x:46,y:63,width:258,height:47}},{id:"edp.forgejoActions",parent:"edp",level:1,children:[],inEdges:["1cy1y20","on1qgt"],outEdges:["17h4y09","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:1800,y:1038,width:350,height:180,labelBBox:{x:46,y:44,width:288,height:85}},{id:"edp.imageregistry",parent:"edp",level:1,children:[],inEdges:["1nv0w41","17h4y09"],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:1788,y:1360,width:373,height:180,labelBBox:{x:47,y:54,width:311,height:67}}],edges:[{id:"1cy1y20",source:"forgejoRunner",target:"edp.forgejoActions",label:"register",points:[[335,1365],[339,1363],[344,1362],[348,1360],[547,1298],[607,1329],[813,1300],[1159,1253],[1561,1192],[1790,1157]],labelBBox:{x:972,y:1277,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"1dvclx1",source:"idpbuilder",target:"edp.argoCD",label:"installs",points:[[4412,245],[4407,247],[4403,248],[4398,249],[3981,353],[2889,240],[2465,309],[2355,327],[2237,368],[2145,405]],labelBBox:{x:2466,y:309,width:47,height:18},parent:null,relations:["8fwa3r"],color:"gray",line:"dashed",head:"normal"},{id:"hjkafp",source:"idpbuilder",target:"edp.forgejo",label:"installs",points:[[4412,245],[4407,247],[4403,248],[4398,249],[4202,298],[2765,227],[2580,309],[2543,326],[2510,355],[2484,384]],labelBBox:{x:2581,y:309,width:47,height:18},parent:null,relations:["1ai9t9i"],color:"gray",line:"dashed",head:"normal"},{id:"1y3lcyj",source:"developer",target:"edp.api",label:"uses API",points:[[4857,232],[4839,238],[4820,244],[4802,249],[4606,302],[4550,275],[4350,309],[4174,339],[4127,339],[3956,392],[3941,397],[3926,402],[3910,407]],labelBBox:{x:4351,y:309,width:60,height:18},parent:null,relations:["1dgd663"],color:"gray",line:"dashed",head:"normal"},{id:"1ttqc1r",source:"developer",target:"edp.argoCD",label:"manages deployments",points:[[4857,234],[4839,240],[4820,245],[4802,249],[4368,342],[3248,270],[2806,309],[2737,315],[2721,322],[2652,332],[2447,360],[2390,339],[2190,392],[2175,396],[2160,401],[2145,406]],labelBBox:{x:2807,y:309,width:145,height:18},parent:null,relations:["1l7h8as"],color:"gray",line:"dashed",head:"normal"},{id:"170qzun",source:"developer",target:"edp.ui",label:"manages project",points:[[4857,230],[4839,237],[4820,244],[4802,249],[4669,289],[4626,263],[4495,309],[4437,330],[4377,359],[4325,387]],labelBBox:{x:4496,y:309,width:108,height:18},parent:null,relations:["nb1ag9","65iq0s"],color:"gray",line:"dashed",head:"normal"},{id:"1bt83vj",source:"developer",target:"edp.forgejo",label:"manages code",points:[[4857,233],[4839,240],[4820,245],[4802,249],[4482,320],[3654,283],[3327,309],[3021,334],[2938,316],[2640,392],[2625,396],[2610,400],[2595,405]],labelBBox:{x:3328,y:309,width:96,height:18},parent:null,relations:["14tsadm"],color:"gray",line:"dashed",head:"normal"},{id:"1nv0w41",source:"developer",target:"edp.imageregistry",label:"pushes and pull images",points:[[4987,249],[4969,313],[4948,401],[4948,481],[4948,481],[4948,481],[4948,1129],[4948,1409],[2835,1445],[2172,1449]],labelBBox:{x:4949,y:793,width:151,height:18},parent:null,relations:["u2ppde"],color:"gray",line:"dashed",head:"normal"},{id:"1agven9",source:"developer",target:"edp.forgejogit",label:"[...]",points:[[4917,249],[4799,348],[4593,502],[4386,572],[3577,846],[3317,607],[2470,715],[2361,729],[2240,750],[2145,769]],labelBBox:{x:4728,y:469,width:25,height:18},parent:null,relations:["1k2mvqc","vxxbwa"],color:"gray",line:"dashed",head:"normal"},{id:"3nxrq7",source:"developer",target:"edp.grafana",label:"monitors",points:[[4857,233],[4839,239],[4820,245],[4802,249],[4354,352],[4227,268],[3769,309],[3469,336],[3388,318],[3096,392],[3081,396],[3065,400],[3050,405]],labelBBox:{x:3770,y:309,width:58,height:18},parent:null,relations:["dol85h"],color:"gray",line:"dashed",head:"normal"},{id:"bfgapq",source:"developer",target:"edp.keycloak",label:"authenticates",points:[[4857,233],[4839,239],[4820,245],[4802,249],[4496,324],[4409,273],[4096,309],[3842,338],[3773,324],[3526,392],[3511,396],[3496,401],[3480,406]],labelBBox:{x:4097,y:309,width:87,height:18},parent:null,relations:["129xciy"],color:"gray",line:"dashed",head:"normal"},{id:"f6xyb4",source:"edp.argoCD",target:"edp.forgejogit",label:"Syncs git repo",points:[[1883,572],[1869,590],[1856,611],[1848,632],[1839,658],[1846,683],[1860,706]],labelBBox:{x:1849,y:632,width:93,height:18},parent:"edp",relations:["6mupa0"],color:"gray",line:"dashed",head:"normal"},{id:"1qfsohc",source:"edp.forgejogit",target:"edp.argoCD",label:"watches manifests",points:[[1975,715],[1975,674],[1975,625],[1975,582]],labelBBox:{x:1976,y:632,width:119,height:18},parent:"edp",relations:["yorv62"],color:"gray",line:"dashed",head:"normal"},{id:"17h4y09",source:"edp.forgejoActions",target:"edp.imageregistry",label:"push image",points:[[1975,1218],[1975,1259],[1975,1308],[1975,1350]],labelBBox:{x:1976,y:1277,width:76,height:18},parent:"edp",relations:["21d2gk"],color:"gray",line:"dashed",head:"normal"},{id:"on1qgt",source:"edp.forgejogit",target:"edp.forgejoActions",label:"triggers",points:[[1975,895],[1975,936],[1975,985],[1975,1027]],labelBBox:{x:1976,y:954,width:51,height:18},parent:"edp",relations:["1yai3r5"],color:"gray",line:"dashed",head:"normal"},{id:"1tfxhhz",source:"edp.grafana",target:"edp.loki",label:"get logs",points:[[2817,572],[2794,614],[2765,663],[2741,706]],labelBBox:{x:2783,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",points:[[2937,572],[2969,614],[3007,664],[3040,707]],labelBBox:{x:3e3,y:632,width:138,height:18},parent:"edp",relations:["13uvtiq"],color:"gray",line:"dashed",head:"normal"},{id:"1e6lbxb",source:"edp.argoCD",target:"runtimeCluster",label:"deploys",points:[[1815,555],[1797,562],[1778,567],[1760,572],[1148,726],[956,546],[348,715],[342,717],[336,718],[330,720]],labelBBox:{x:1409,y:632,width:52,height:18},parent:null,relations:["1f6l7ms"],color:"gray",line:"dashed",head:"normal"},{id:"stl3mw",source:"edp.forgejoActions",target:"forgejoRunner",label:"runs workflows",points:[[1800,1142],[1552,1162],[1082,1207],[687,1278],[535,1305],[494,1306],[348,1360],[347,1361],[346,1361],[344,1362]],labelBBox:{x:688,y:1277,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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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",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:"7440ad8a1e185be7bca7133b9432ab2276b005cf",bounds:{x:0,y:0,width:6408,height:1862},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:5888,y:192,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:8,y:8,width:5840,height:1846,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:48,y:69,width:2580,height:935,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:1358,y:572,width:1230,height:392,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:88,y:130,width:1230,height:834,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:3308,y:572,width:600,height:1242,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:2668,y:130,width:600,height:834,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:3948,y:572,width:1860,height:831,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:1398,y:634,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:2028,y:634,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:128,y:192,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:128,y:634,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:758,y:634,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:3348,y:1073,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:3348,y:634,width:520,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:3348,y:1484,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:2708,y:192,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:2708,y:634,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:5248,y:634,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:3988,y:634,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:4618,y:634,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:3988,y:1073,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",points:[[5888,380],[5535,435],[4884,529],[4324,564],[4291,566],[2004,563],[1973,572],[1931,585],[1888,605],[1850,629]],labelBBox:{x:4574,y:541,width:161,height:18},parent:null,relations:["65iq0s"],color:"gray",line:"dashed",head:"normal"},{id:"1y3lcyj",source:"developer",target:"edp.api",label:"uses API",points:[[5888,397],[5630,453],[5222,532],[4864,564],[4833,567],[2671,564],[2641,572],[2594,585],[2548,606],[2504,629]],labelBBox:{x:5041,y:541,width:60,height:18},parent:null,relations:["1dgd663"],color:"gray",line:"dashed",head:"normal"},{id:"1agven9",source:"developer",target:"edp.forgejogit",label:"[...]",points:[[5888,369],[5436,421],[4473,526],[3657,564],[3625,566],[1362,563],[1331,572],[1289,585],[1247,605],[1209,628]],labelBBox:{x:3998,y:540,width:25,height:18},parent:null,relations:["1k2mvqc","vxxbwa"],color:"gray",line:"dashed",head:"normal"},{id:"1nv0w41",source:"developer",target:"edp.imageregistry",label:"pushes and pull images",points:[[5888,438],[5750,487],[5575,540],[5413,564],[5372,571],[3961,560],[3921,572],[3879,585],[3837,605],[3799,628]],labelBBox:{x:5517,y:541,width:151,height:18},parent:null,relations:["u2ppde"],color:"gray",line:"dashed",head:"normal"},{id:"3nxrq7",source:"developer",target:"edp.grafana",label:"monitors",points:[[5888,415],[5693,469],[5418,536],[5172,564],[5120,571],[3331,557],[3281,572],[3239,585],[3197,605],[3159,628]],labelBBox:{x:5308,y:541,width:58,height:18},parent:null,relations:["dol85h"],color:"gray",line:"dashed",head:"normal"},{id:"bfgapq",source:"developer",target:"edp.keycloak",label:"authenticates",points:[[5939,481],[5871,528],[5795,581],[5726,628]],labelBBox:{x:5848,y:541,width:87,height:18},parent:null,relations:["129xciy"],color:"gray",line:"dashed",head:"normal"}]},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:0,y:0,width:846,height:1457},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:8,y:8,width:830,height:1441,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:198,y:608,width:600,height:801,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:238,y:669,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:238,y:1079,width:520,height:290,labelBBox:{x:75,y:109,width:369,height:63}}],edges:[]},platform_orchestration_flow:{_type:"element",tags:null,links:null,viewOf:"edp",_stage:"layouted",sourcePath:"views/edp/platform-orchestration-flow.c4",description:null,title:"Platform Orchestration Flow",id:"platform_orchestration_flow",autoLayout:{direction:"TB"},hash:"14eb082fcf4b1c9a9d95bd8ba1840f10c233d072",bounds:{x:0,y:0,width:1296,height:861},nodes:[{id:"idpbuilder",parent:null,level:0,children:[],inEdges:[],outEdges:["1dvclx1","hjkafp"],title:"idpbuilder",modelRef:"idpbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"Bootstrap tool for initial platform provisioning"},tags:[],technology:"Golang",kind:"component",x:260,y:0,width:335,height:180,labelBBox:{x:47,y:44,width:273,height:85}},{id:"edp",parent:null,level:0,children:["edp.argoCD","edp.forgejo","edp.keycloak","edp.monitoring"],inEdges:["1dvclx1","hjkafp"],outEdges:[],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:8,y:271,width:1280,height:582,labelBBox:{x:6,y:0,width:27,height:15}},{id:"edp.argoCD",parent:"edp",level:1,children:[],inEdges:["1dvclx1"],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:48,y:332,width:320,height:180,labelBBox:{x:108,y:63,width:105,height:48}},{id:"edp.forgejo",parent:"edp",level:1,children:[],inEdges:["hjkafp"],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:478,y:332,width:340,height:180,labelBBox:{x:46,y:17,width:278,height:139}},{id:"edp.keycloak",parent:"edp",level:1,children:[],inEdges:[],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:928,y:332,width:320,height:180,labelBBox:{x:39,y:63,width:242,height:48}},{id:"edp.monitoring",parent:"edp",level:1,children:[],inEdges:[],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:928,y:633,width:320,height:180,labelBBox:{x:21,y:54,width:278,height:66}}],edges:[{id:"1dvclx1",source:"idpbuilder",target:"edp.argoCD",label:"installs",points:[[369,180],[339,224],[303,278],[273,324]],labelBBox:{x:326,y:240,width:47,height:18},parent:null,relations:["8fwa3r"],color:"gray",line:"dashed",head:"normal"},{id:"hjkafp",source:"idpbuilder",target:"edp.forgejo",label:"installs",points:[[487,180],[517,224],[553,278],[583,324]],labelBBox:{x:539,y:240,width:47,height:18},parent:null,relations:["1ai9t9i"],color:"gray",line:"dashed",head:"normal"}]},"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:"LR",nodeSep:140,rankSep:180},hash:"273e521fc8ecb88776ebeada66d26bce21c3c2e5",bounds:{x:0,y:0,width:1297,height:857},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:853,height:841,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:373,y:459,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:373,y:69,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:"EdgeConnect Cloud",modelRef:"cloud",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Cloud environments"},tags:[],technology:"IaaS/PaaS",kind:"system",depth:1,isCustomized:!0,x:905,y:122,width:384,height:265,labelBBox:{x:6,y:0,width:132,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:937,y:175,width:320,height:180,labelBBox:{x:73,y:53,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:"xs",textSize:"sm"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:63,y:530,width:180,height:100,labelBBox:{x:51,y:37,width:77,height:20}},{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:"xs",textSize:"sm"},description:{txt:"Coworking roles in the outer loop"},tags:[],kind:"actor",x:48,y:215,width:209,height:100,labelBBox:{x:6,y:37,width:197,height:20}},{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:405,y:512,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:437,y:565,width:320,height:180,labelBBox:{x:73,y:53,width:175,height:67}},{id:"edp",parent:"@gr3",level:1,children:["edp.application"],inEdges:["1okgiq5","1wupl5x","1uo6k6b"],outEdges:["17brhnu","6szgsj"],title:"EDP",modelRef:"edp",shape:"rectangle",color:"magenta",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",depth:1,navigateTo:"edp",x:405,y:122,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:437,y:175,width:320,height:180,labelBBox:{x:73,y:53,width:175,height:67}}],edges:[{id:"zjg544",source:"developer",target:"localbox",label:"inner loop",points:[[242,595],[286,602],[341,612],[395,621]],labelBBox:{x:257,y:608,width:65,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop",points:[[224,530],[276,493],[349,441],[416,393]],labelBBox:{x:257,y:458,width:66,height:18},parent:"@gr1",relations:["1pp73vj","nb1ag9","14tsadm","129xciy","1l7h8as","dol85h","65iq0s","u2ppde","1dgd663","1k2mvqc","vxxbwa"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"review / operate",points:[[257,265],[298,265],[347,265],[395,265]],labelBBox:{x:332,y:265,width:104,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"sync",points:[[597,512],[597,474],[597,436],[597,397]],labelBBox:{x:563,y:449,width:33,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploy & observe",points:[[789,265],[824,265],[860,265],[895,265]],labelBBox:{x:848,y:253,width:112,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,points:[[597,387],[597,425],[597,463],[597,502]],labelBBox:null,parent:"@gr1",relations:["96ogr7"],color:"gray",line:"dashed",head:"normal"}]},"edgeconnect-context":{_type:"element",tags:null,links:null,_stage:"layouted",sourcePath:"views/high-level-concept/edgeconnect-context.c4",description:null,title:"EdgeConnect Context",id:"edgeconnect-context",autoLayout:{direction:"LR",nodeSep:140,rankSep:180},hash:"0da428d75abcb0d77c2e60e7bb97a2c635e491fb",bounds:{x:0,y:0,width:2626,height:1201},nodes:[{id:"developer",parent:null,level:0,children:[],inEdges:[],outEdges:["1okgiq5","1yfrmvt","1yfr9mr","162qbqw"],title:"Developer",modelRef:"developer",shape:"person",color:"green",style:{opacity:15,size:"xs",textSize:"sm"},description:{txt:"The regular user of the platform"},tags:[],kind:"actor",x:0,y:293,width:180,height:100,labelBBox:{x:52,y:37,width:77,height:20}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["vyep7i"],title:"Platform / Cloud Operator",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"xs",textSize:"sm"},description:{txt:"The EDP engineer"},tags:[],kind:"actor",isCustomized:!0,x:1087,y:1101,width:198,height:100,labelBBox:{x:6,y:37,width:186,height:20}},{id:"edp",parent:null,level:0,children:[],inEdges:["1okgiq5"],outEdges:["1ivh6bj"],title:"EDP / CI Automation",modelRef:"edp",shape:"rectangle",color:"magenta",icon:"tech:kubernetes",style:{opacity:15,size:"md"},description:{txt:"EDP Edge Development Platform"},tags:[],technology:"Kubernetes",kind:"system",isCustomized:!0,navigateTo:"edp",x:429,y:623,width:346,height:180,labelBBox:{x:45,y:53,width:285,height:67}},{id:"edgeCli",parent:null,level:0,children:[],inEdges:["1yfrmvt"],outEdges:["1vb6n5w"],title:"EdgeConnect CLI",modelRef:"edgeCli",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Command-line client for interactive usage"},tags:[],kind:"component",x:442,y:0,width:320,height:180,labelBBox:{x:20,y:63,width:280,height:48}},{id:"edgeSdk",parent:null,level:0,children:[],inEdges:["1yfr9mr"],outEdges:["1tutg7y"],title:"EdgeConnect SDK",modelRef:"edgeSdk",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"SDK for programmatic integration"},tags:[],kind:"component",x:442,y:943,width:320,height:180,labelBBox:{x:46,y:63,width:227,height:48}},{id:"edgeTerraformProvider",parent:null,level:0,children:[],inEdges:["162qbqw","1ivh6bj"],outEdges:["1vakg11"],title:"Terraform Edge provider",modelRef:"edgeTerraformProvider",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Terraform provider enabling declarative provisioning"},tags:[],kind:"component",x:1026,y:478,width:320,height:180,labelBBox:{x:28,y:54,width:266,height:66}},{id:"edgeConnect",parent:null,level:0,children:["edgeConnect.api","edgeConnect.controllers","edgeConnect.resources","edgeConnect.runtime"],inEdges:["vyep7i","1vb6n5w","1tutg7y","1vakg11"],outEdges:[],title:"EdgeConnect Cloud",modelRef:"edgeConnect",shape:"rectangle",color:"magenta",style:{opacity:15,size:"md"},description:{txt:"Provides an API and control plane to run applications on the edge"},tags:[],kind:"system",depth:1,x:1577,y:233,width:1041,height:651,labelBBox:{x:6,y:0,width:132,height:15}},{id:"edgeConnect.api",parent:"edgeConnect",level:1,children:[],inEdges:["1vb6n5w","1tutg7y","1vakg11"],outEdges:["17py4dn"],title:"Edge Cloud API",modelRef:"edgeConnect.api",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Single entry point for provisioning and lifecycle management"},tags:[],kind:"container",x:1617,y:614,width:320,height:180,labelBBox:{x:33,y:54,width:255,height:66}},{id:"edgeConnect.controllers",parent:"edgeConnect",level:1,children:[],inEdges:[],outEdges:["1fx2ku4","16qtg61"],title:"Controllers / Scheduler",modelRef:"edgeConnect.controllers",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Reconciles desired state and drives deployments"},tags:[],kind:"container",x:1617,y:294,width:320,height:180,labelBBox:{x:40,y:54,width:241,height:66}},{id:"edgeConnect.resources",parent:"edgeConnect",level:1,children:[],inEdges:["17py4dn","1fx2ku4"],outEdges:[],title:"Edge Resources",modelRef:"edgeConnect.resources",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Managed resources such as App, AppInstance, etc."},tags:[],kind:"container",x:2223,y:614,width:355,height:180,labelBBox:{x:18,y:54,width:319,height:66}},{id:"edgeConnect.runtime",parent:"edgeConnect",level:1,children:[],inEdges:["16qtg61"],outEdges:[],title:"Edge Clusters",modelRef:"edgeConnect.runtime",shape:"rectangle",color:"primary",style:{opacity:20,size:"md"},description:{txt:"Runtime where applications actually run"},tags:[],kind:"container",x:2241,y:294,width:320,height:180,labelBBox:{x:25,y:63,width:269,height:48}}],edges:[{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop",points:[[160,393],[239,450],[370,545],[469,617]],labelBBox:{x:271,y:450,width:66,height:18},parent:null,relations:["1pp73vj","nb1ag9","14tsadm","129xciy","1l7h8as","dol85h","65iq0s","u2ppde","1dgd663","1k2mvqc","vxxbwa"],color:"gray",line:"dashed",head:"normal"},{id:"1yfrmvt",source:"developer",target:"edgeCli",label:"uses",points:[[180,298],[208,284],[241,268],[270,253],[323,227],[381,198],[433,172]],labelBBox:{x:287,y:198,width:34,height:18},parent:null,relations:["3rnruw"],color:"gray",line:"dashed",head:"normal"},{id:"1yfr9mr",source:"developer",target:"edgeSdk",label:"uses",points:[[117,393],[169,490],[293,711],[428,873],[446,895],[467,916],[488,936]],labelBBox:{x:287,y:641,width:34,height:18},parent:null,relations:["1ks7amr"],color:"gray",line:"dashed",head:"normal"},{id:"162qbqw",source:"developer",target:"edgeTerraformProvider",label:"uses",points:[[180,361],[362,399],[781,485],[1017,533]],labelBBox:{x:585,y:392,width:34,height:18},parent:null,relations:["1l0aei7"],color:"gray",line:"dashed",head:"normal"},{id:"1ivh6bj",source:"edp",target:"edgeTerraformProvider",label:"automates",points:[[775,670],[851,651],[941,629],[1016,610]],labelBBox:{x:866,y:609,width:69,height:18},parent:null,relations:["1t93kj2"],color:"gray",line:"dashed",head:"normal"},{id:"1vb6n5w",source:"edgeCli",target:"edgeConnect.api",label:"calls",points:[[761,147],[915,205],[1152,301],[1346,408],[1454,467],[1568,546],[1651,608]],labelBBox:{x:1170,y:235,width:32,height:18},parent:null,relations:["h84u7y"],color:"gray",line:"dashed",head:"normal"},{id:"1tutg7y",source:"edgeSdk",target:"edgeConnect.api",label:"calls",points:[[762,988],[983,926],[1381,815],[1607,751]],labelBBox:{x:1170,y:802,width:32,height:18},parent:null,relations:["1elpzvp"],color:"gray",line:"dashed",head:"normal"},{id:"1vakg11",source:"edgeTerraformProvider",target:"edgeConnect.api",label:"provisions via",points:[[1346,605],[1427,623],[1525,646],[1607,665]],labelBBox:{x:1437,y:605,width:89,height:18},parent:null,relations:["6h5xnh"],color:"gray",line:"dashed",head:"normal"},{id:"17py4dn",source:"edgeConnect.api",target:"edgeConnect.resources",label:"creates/updates",points:[[1937,713],[1967,715],[1998,716],[2027,717],[2088,718],[2153,717],[2213,715]],labelBBox:{x:2028,y:694,width:104,height:18},parent:"edgeConnect",relations:["wx4vwc"],color:"gray",line:"dashed",head:"normal"},{id:"1fx2ku4",source:"edgeConnect.controllers",target:"edgeConnect.resources",label:"reconciles",points:[[1937,466],[2022,510],[2127,564],[2216,609]],labelBBox:{x:2047,y:492,width:67,height:18},parent:"edgeConnect",relations:["qufboq"],color:"gray",line:"dashed",head:"normal"},{id:"16qtg61",source:"edgeConnect.controllers",target:"edgeConnect.runtime",label:"deploys",points:[[1937,384],[2027,384],[2139,384],[2230,384]],labelBBox:{x:2054,y:361,width:52,height:18},parent:"edgeConnect",relations:["1a9x5zg"],color:"gray",line:"dashed",head:"normal"},{id:"vyep7i",source:"platformdeveloper",target:"edgeConnect",label:"operates",points:[[1270,1101],[1341,1058],[1443,992],[1527,927],[1542,915],[1557,903],[1573,891]],labelBBox:{x:1370,y:998,width:58,height:18},parent:null,relations:["4pplfw"],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:"b38716b0a8652d3a87edbd32cc5d99cc254dbcdc",bounds:{x:0,y:0,width:3368,height:2923},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:16,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:734,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:1288,y:280,width:320,height:180,labelBBox:{x:72,y:63,width:177,height:48}},{id:"terraform",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Terraform",modelRef:"terraform",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Infrastructure provisioning (IaC)"},tags:[],technology:"Terraform",kind:"component",x:1862,y:280,width:320,height:180,labelBBox:{x:52,y:53,width:214,height:67}},{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:1888,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. +discover the expected and uncover the unexpected.`},tags:[],technology:"Elasticsearch",kind:"container",x:0,y:0,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:741,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:692,y:0,width:354,height:180,labelBBox:{x:46,y:17,width:293,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:1237,y:0,width:359,height:180,labelBBox:{x:46,y:26,width:298,height:121}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["mox1r9","1kjl8ep","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:1286,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:2508,y:405,width:320,height:180,labelBBox:{x:56,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:2508,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:709,y:1073,width:320,height:180,labelBBox:{x:74,y:53,width:203,height:67}},{id:"documentation",parent:null,level:0,children:[],inEdges:["1kjl8ep"],outEdges:["14bjpe1"],title:"Documentation",modelRef:"documentation",shape:"rectangle",color:"primary",icon:"tech:electron",style:{opacity:15,size:"md"},description:{txt:"Documentation system for EDP LikeC4 platform."},tags:[],technology:"Static Site Generator",kind:"system",navigateTo:"components-template-documentation",x:677,y:1576,width:384,height:180,labelBBox:{x:46,y:44,width:323,height:85}},{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:1256,y:1286,width:321,height:180,labelBBox:{x:46,y:35,width:260,height:103}},{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["developer","otherProductLifecycleRoles","@gr2","@gr3"],inEdges:["1lyfj4n","14bjpe1","109bf6k"],outEdges:["1tbee2v","5mpoyf","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:1189,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:1257,y:664,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:1229,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:1881,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:1913,y:614,width:320,height:180,labelBBox:{x:64,y:53,width:191,height:67}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Devops outer-loop",color:"gray",shape:"rectangle",children:["edp"],inEdges:["1lyfj4n","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:1867,y:941,width:411,height:265,labelBBox:{x:6,y:0,width:126,height:15}},{id:"edp",parent:"@gr3",level:1,children:[],inEdges:["1lyfj4n","14bjpe1","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:1900,y:994,width:346,height:180,labelBBox:{x:45,y:53,width:285,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:2508,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:3099,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,1256.3,1313.7 1029.3,1225 1097.5,1251.7 1177.3,1282.8 1246.6,1309.9",points:[[1029,1225],[1098,1252],[1177,1283],[1247,1310]],labelBBox:{x:1113,y:1237,width:66,height:18},parent:null,relations:["1oxlsu0"],color:"gray",line:"dashed",head:"normal"},{id:"mox1r9",source:"platformdeveloper",target:"edfbuilder",label:"runs",dotpos:"e,709.48,1205.9 329.16,1319.5 349.13,1312.8 369.32,1306.1 388.65,1300 491.24,1267.5 607.25,1234.3 699.49,1208.7",points:[[329,1320],[349,1313],[369,1306],[389,1300],[491,1268],[607,1234],[699,1209]],labelBBox:{x:492,y:1207,width:31,height:18},parent:null,relations:["s1l7g7"],color:"gray",line:"dashed",head:"normal"},{id:"1kjl8ep",source:"platformdeveloper",target:"documentation",label:"creates and maintains documentation",dotpos:"e,677.63,1592.3 329.14,1448.9 349.11,1457.8 369.31,1466.6 388.65,1474.8 479.82,1513.6 581.66,1554.5 667.99,1588.5",points:[[329,1449],[349,1458],[369,1467],[389,1475],[480,1514],[582,1554],[668,1588]],labelBBox:{x:390,y:1452,width:237,height:18},parent:null,relations:["3sz3k3"],color:"gray",line:"dashed",head:"normal"},{id:"x7to90",source:"platformdeveloper",target:"edf",label:"develops EDP and EDF",dotpos:"e,1256.3,1376 329.03,1376 564.44,1376 1004.3,1376 1246,1376",points:[[329,1376],[564,1376],[1004,1376],[1246,1376]],labelBBox:{x:794,y:1353,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,3099.1,699.44 2828,570.59 2909,609.07 3007.4,655.86 3089.7,694.95",points:[[2828,571],[2909,609],[3007,656],[3090,695]],labelBBox:{x:2918,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,3099.1,775 2828,775 2908.7,775 3006.6,775 3088.7,775",points:[[2828,775],[2909,775],[3007,775],[3089,775]],labelBBox:{x:2879,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,1912.7,716.15 1576.6,741.86 1675.2,734.32 1801.9,724.63 1902.5,716.94",points:[[1577,742],[1675,734],[1802,725],[1902,717]],labelBBox:{x:1671,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,2508.1,755.99 2232.2,722.98 2314.2,732.79 2414.3,744.76 2497.8,754.75",points:[[2232,723],[2314,733],[2414,745],[2498,755]],labelBBox:{x:2327,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,2186.1,1173.8 2508.3,1279.9 2449.7,1276.5 2383.5,1267.7 2325.9,1247.8 2280,1232 2234.2,1206.1 2194.5,1179.5",points:[[2508,1280],[2450,1276],[2384,1268],[2326,1248],[2280,1232],[2234,1206],[2194,1179]],labelBBox:{x:2367,y:1225,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"14bjpe1",source:"documentation",target:"edp",label:"provides documentation for",dotpos:"e,2012.6,1173.9 1061.2,1655.9 1213.3,1642.4 1429.2,1611.2 1604.9,1538.8 1780.7,1466.3 1926.9,1292.9 2006.5,1182.4",points:[[1061,1656],[1213,1642],[1429,1611],[1605,1539],[1781,1466],[1927,1293],[2006,1182]],labelBBox:{x:1331,y:1516,width:173,height:18},parent:null,relations:["xw0pne"],color:"gray",line:"dashed",head:"normal"},{id:"109bf6k",source:"edf",target:"edp",label:"builds many",dotpos:"e,1993.5,1173.7 1577.6,1365 1658.8,1354.4 1757,1333.9 1837.5,1293.8 1892.9,1266.2 1945.2,1221.9 1986.2,1181",points:[[1578,1365],[1659,1354],[1757,1334],[1838,1294],[1893,1266],[1945,1222],[1986,1181]],labelBBox:{x:1707,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,1899.2,997 1576.6,834.09 1671.2,881.87 1791.7,942.7 1890.1,992.38",points:[[1577,834],[1671,882],[1792,943],[1890,992]],labelBBox:{x:1671,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,1899.4,1084 1604.8,1084 1694,1084 1800.3,1084 1889,1084",points:[[1605,1084],[1694,1084],[1800,1084],[1889,1084]],labelBBox:{x:1656,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,2072.6,994.43 2072.6,793.96 2072.6,851.06 2072.6,925.03 2072.6,983.98",points:[[2073,794],[2073,851],[2073,925],[2073,984]],labelBBox:{x:1956,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,2508,1221 2245.8,1136.2 2312.3,1156.8 2388.8,1181 2458,1204 2471.1,1208.4 2484.6,1212.9 2498.1,1217.6",points:[[2246,1136],[2312,1157],[2389,1181],[2458,1204],[2471,1208],[2485,1213],[2498,1218]],labelBBox:{x:2344,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,3099.2,842.58 2245.6,1059.2 2399.8,1035 2631.3,993.65 2828,937.8 2915.9,912.84 3011.2,877.65 3089.7,846.37",points:[[2246,1059],[2400,1035],[2631,994],[2828,938],[2916,913],[3011,878],[3090,846]],labelBBox:{x:2598,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,2508.1,846.44 2221.8,994.11 2255.7,974.39 2291.8,954.02 2325.9,936 2381.5,906.68 2443.3,876.73 2498.8,850.74",points:[[2222,994],[2256,974],[2292,954],[2326,936],[2381,907],[2443,877],[2499,851]],labelBBox:{x:2359,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,2072.6,793.84 2072.6,994.2 2072.6,930.8 2072.6,867.41 2072.6,804.01",points:[[2073,994],[2073,931],[2073,867],[2073,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:"b276e3437a81a3511683487fe741e5425e3087a3",bounds:{x:0,y:0,width:4464,height:2361},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:859,y:390,width:520,height:290,labelBBox:{x:52,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:1557,y:390,width:520,height:290,labelBBox:{x:137,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 +and correctness.`},tags:[],technology:"PostgreSQL",kind:"container",x:1271,y:0,width:354,height:180,labelBBox:{x:46,y:17,width:293,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:1842,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","1tdgkqn","vyep7i","1kjl8ep","x7to90"],title:"Platform Developer",modelRef:"platformdeveloper",shape:"person",color:"gray",style:{opacity:15,size:"md"},description:{txt:"The EDP engineer"},tags:[],kind:"actor",x:25,y:1053,width:320,height:180,labelBBox:{x:72,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:2457,y:1866,width:320,height:180,labelBBox:{x:56,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:2457,y:1306,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:741,y:1343,width:320,height:180,labelBBox:{x:74,y:53,width:202,height:67}},{id:"idpbuilder",parent:null,level:0,children:[],inEdges:["1tdgkqn"],outEdges:["1v8vv2f"],title:"idpbuilder",modelRef:"idpbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"md"},description:{txt:"Bootstrap tool for initial platform provisioning"},tags:[],technology:"Golang",kind:"component",x:733,y:560,width:335,height:180,labelBBox:{x:47,y:44,width:272,height:85}},{id:"documentation",parent:null,level:0,children:[],inEdges:["1kjl8ep"],outEdges:["14bjpe1"],title:"Documentation",modelRef:"documentation",shape:"rectangle",color:"primary",icon:"tech:electron",style:{opacity:15,size:"md"},description:{txt:"Documentation system for EDP LikeC4 platform."},tags:[],technology:"Static Site Generator",kind:"system",navigateTo:"components-template-documentation",x:709,y:840,width:384,height:180,labelBBox:{x:46,y:44,width:322,height:85}},{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:1287,y:1073,width:321,height:180,labelBBox:{x:47,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","1v8vv2f","14bjpe1","109bf6k"],outEdges:["1yfrmvt","1yfr9mr","162qbqw","1tbee2v","5mpoyf","1ivh6bj","gl7qul","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:1221,y:1293,width:1046,height:746,labelBBox:{x:6,y:0,width:114,height:15}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1yfrmvt","1yfr9mr","162qbqw","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:1288,y:1787,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:1260,y:1407,width:375,height:180,labelBBox:{x:19,y:63,width:340,height:48}},{id:"edgeCli",parent:null,level:0,children:[],inEdges:["1yfrmvt"],outEdges:["fyb6c2"],title:"EdgeConnect CLI",modelRef:"edgeCli",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Command-line client for interactive usage"},tags:[],kind:"component",x:1862,y:2079,width:320,height:180,labelBBox:{x:20,y:63,width:280,height:48}},{id:"edgeSdk",parent:null,level:0,children:[],inEdges:["1yfr9mr"],outEdges:["1jfbsco"],title:"EdgeConnect SDK",modelRef:"edgeSdk",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"SDK for programmatic integration"},tags:[],kind:"component",x:1862,y:2582,width:320,height:180,labelBBox:{x:46,y:63,width:227,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:1830,y:1734,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:1862,y:1787,width:320,height:180,labelBBox:{x:64,y:53,width:191,height:67}},{id:"@gr3",parent:"@gr1",kind:"@group",title:"Devops outer-loop",color:"gray",shape:"rectangle",children:["edp"],inEdges:["1lyfj4n","1v8vv2f","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","1ivh6bj","gl7qul","17brhnu","35ru8e","6szgsj"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:1816,y:1354,width:411,height:265,labelBBox:{x:6,y:0,width:126,height:15}},{id:"edp",parent:"@gr3",level:1,children:[],inEdges:["1lyfj4n","1v8vv2f","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","1ivh6bj","gl7qul","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:1849,y:1407,width:346,height:180,labelBBox:{x:45,y:53,width:285,height:67}},{id:"edgeTerraformProvider",parent:null,level:0,children:[],inEdges:["162qbqw","1ivh6bj"],outEdges:["e75f7"],title:"Terraform Edge provider",modelRef:"edgeTerraformProvider",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Terraform provider enabling declarative provisioning"},tags:[],kind:"component",x:2457,y:2369,width:320,height:180,labelBBox:{x:27,y:54,width:266,height:66}},{id:"runtimeCluster",parent:null,level:0,children:[],inEdges:["gl7qul"],outEdges:[],title:"Kubernetes Cluster",modelRef:"runtimeCluster",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Target cluster where applications are deployed"},tags:[],technology:"Kubernetes",kind:"system",x:2457,y:1586,width:320,height:180,labelBBox:{x:35,y:44,width:250,height:85}},{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:2457,y:803,width:320,height:180,labelBBox:{x:18,y:63,width:283,height:48}},{id:"edgeConnect",parent:null,level:0,children:[],inEdges:["fyb6c2","1jfbsco","e75f7","vyep7i"],outEdges:[],title:"EdgeConnect Cloud",modelRef:"edgeConnect",shape:"rectangle",color:"primary",style:{opacity:15,size:"md"},description:{txt:"Provides an API and control plane to run applications on the edge"},tags:[],kind:"system",x:3048,y:2503,width:320,height:180,labelBBox:{x:23,y:54,width:273,height:66}},{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:3048,y:1016,width:320,height:180,labelBBox:{x:91,y:53,width:137,height:67}}],edges:[{id:"lnq8uj",source:"edfbuilder",target:"edf",label:"boots one",points:[[1061,1349],[1112,1323],[1168,1294],[1221,1268],[1239,1259],[1259,1249],[1278,1240]],labelBBox:{x:1144,y:1253,width:66,height:18},parent:null,relations:["1oxlsu0"],color:"gray",line:"dashed",head:"normal"},{id:"mox1r9",source:"platformdeveloper",target:"edfbuilder",label:"runs",points:[[345,1211],[370,1221],[396,1232],[420,1242],[523,1284],[639,1330],[731,1367]],labelBBox:{x:524,y:1219,width:31,height:18},parent:null,relations:["s1l7g7"],color:"gray",line:"dashed",head:"normal"},{id:"1tdgkqn",source:"platformdeveloper",target:"idpbuilder",label:"runs",points:[[289,1053],[329,1020],[376,982],[420,950],[522,877],[642,802],[736,745]],labelBBox:{x:524,y:773,width:31,height:18},parent:null,relations:["kv3vny"],color:"gray",line:"dashed",head:"normal"},{id:"fyb6c2",source:"edgeCli",target:"edgeConnect",label:"calls",points:[[2181,2183],[2337,2201],[2580,2240],[2777,2319],[2888,2364],[3002,2437],[3084,2497]],labelBBox:{x:2601,y:2205,width:32,height:18},parent:null,relations:["h84u7y"],color:"gray",line:"dashed",head:"normal"},{id:"1jfbsco",source:"edgeSdk",target:"edgeConnect",label:"calls",points:[[2181,2661],[2334,2651],[2571,2636],[2777,2622],[2863,2616],[2959,2610],[3038,2604]],labelBBox:{x:2601,y:2599,width:32,height:18},parent:null,relations:["1elpzvp"],color:"gray",line:"dashed",head:"normal"},{id:"e75f7",source:"edgeTerraformProvider",target:"edgeConnect",label:"provisions via",points:[[2777,2495],[2858,2514],[2956,2536],[3038,2555]],labelBBox:{x:2868,y:2487,width:89,height:18},parent:null,relations:["6h5xnh"],color:"gray",line:"dashed",head:"normal"},{id:"vyep7i",source:"platformdeveloper",target:"edgeConnect",label:"operates",points:[[202,1233],[267,1594],[532,2923],[900,2923],[900,2923],[900,2923],[2618,2923],[2811,2923],[2999,2787],[3109,2690]],labelBBox:{x:1710,y:2900,width:58,height:18},parent:null,relations:["4pplfw"],color:"gray",line:"dashed",head:"normal"},{id:"1kjl8ep",source:"platformdeveloper",target:"documentation",label:"creates and maintains documentation",points:[[345,1091],[370,1083],[396,1074],[420,1067],[511,1039],[613,1010],[699,986]],labelBBox:{x:421,y:975,width:237,height:18},parent:null,relations:["3sz3k3"],color:"gray",line:"dashed",head:"normal"},{id:"x7to90",source:"platformdeveloper",target:"edf",label:"develops EDP and EDF",points:[[345,1146],[583,1149],[1032,1156],[1277,1160]],labelBBox:{x:825,y:1128,width:152,height:18},parent:null,relations:["v8v12"],color:"gray",line:"dashed",head:"normal"},{id:"8fboq4",source:"customers",target:"cloud",label:"uses your app",points:[[2729,1866],[2746,1850],[2763,1833],[2777,1816],[2943,1618],[3088,1348],[3159,1205]],labelBBox:{x:2867,y:1477,width:92,height:18},parent:null,relations:["1g2ebwc"],color:"gray",line:"dashed",head:"normal"},{id:"iwd51q",source:"enterprise",target:"cloud",label:"app specific dependencies",points:[[2777,950],[2845,975],[2925,1004],[2998,1030],[3011,1035],[3025,1040],[3039,1045]],labelBBox:{x:2828,y:947,width:169,height:18},parent:null,relations:["nc44l9"],color:"gray",line:"dashed",head:"normal"},{id:"1yfrmvt",source:"developer",target:"edgeCli",label:"uses",points:[[1608,1958],[1684,1997],[1775,2044],[1852,2083]],labelBBox:{x:1722,y:1982,width:34,height:18},parent:null,relations:["3rnruw"],color:"gray",line:"dashed",head:"normal"},{id:"1yfr9mr",source:"developer",target:"edgeSdk",label:"uses",points:[[1465,1967],[1491,2094],[1555,2328],[1686,2481],[1731,2533],[1794,2574],[1853,2604]],labelBBox:{x:1722,y:2458,width:34,height:18},parent:null,relations:["1ks7amr"],color:"gray",line:"dashed",head:"normal"},{id:"162qbqw",source:"developer",target:"edgeTerraformProvider",label:"uses",points:[[1495,1967],[1554,2073],[1667,2245],[1816,2332],[2012,2445],[2277,2466],[2447,2466]],labelBBox:{x:2005,y:2309,width:34,height:18},parent:null,relations:["1l0aei7"],color:"gray",line:"dashed",head:"normal"},{id:"zjg544",source:"developer",target:"localbox",label:"inner loop",points:[[1608,1877],[1684,1877],[1774,1877],[1851,1877]],labelBBox:{x:1706,y:1854,width:65,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1tbee2v",source:"localbox",target:"enterprise",label:"company integration",points:[[2152,1787],[2197,1749],[2242,1700],[2267,1644],[2279,1618],[2267,1412],[2275,1384],[2319,1224],[2358,1191],[2457,1058],[2474,1035],[2494,1012],[2514,990]],labelBBox:{x:2276,y:1105,width:130,height:18},parent:null,relations:["1abvxlh"],color:"gray",line:"dashed",head:"normal"},{id:"1lyfj4n",source:"forgejoRunner",target:"edp",label:"register",points:[[2457,1423],[2379,1436],[2285,1452],[2205,1466]],labelBBox:{x:2316,y:1409,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"1v8vv2f",source:"idpbuilder",target:"edp",label:"installs",points:[[1068,676],[1224,706],[1457,765],[1636,871],[1835,989],[1945,1253],[1992,1397]],labelBBox:{x:1425,y:689,width:47,height:18},parent:null,relations:["8fwa3r","1ai9t9i","1lc9jrs"],color:"gray",line:"dashed",head:"normal"},{id:"14bjpe1",source:"documentation",target:"edp",label:"provides documentation for",points:[[1093,916],[1248,914],[1469,930],[1636,1023],[1792,1110],[1909,1287],[1971,1399]],labelBBox:{x:1362,y:896,width:173,height:18},parent:null,relations:["xw0pne"],color:"gray",line:"dashed",head:"normal"},{id:"109bf6k",source:"edf",target:"edp",label:"builds many",points:[[1609,1252],[1618,1258],[1627,1263],[1636,1268],[1711,1311],[1794,1360],[1863,1402]],labelBBox:{x:1700,y:1275,width:79,height:18},parent:null,relations:["wsm3kf"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop",points:[[1584,1787],[1672,1729],[1787,1652],[1877,1593]],labelBBox:{x:1706,y:1630,width:66,height:18},parent:"@gr1",relations:["1pp73vj","nb1ag9","14tsadm","129xciy","1l7h8as","dol85h","65iq0s","u2ppde","1dgd663","1k2mvqc","vxxbwa"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"review / operate",points:[[1636,1497],[1701,1497],[1774,1497],[1838,1497]],labelBBox:{x:1687,y:1474,width:104,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"sync",points:[[2022,1787],[2022,1730],[2022,1656],[2022,1597]],labelBBox:{x:1991,y:1675,width:33,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"5mpoyf",source:"edp",target:"forgejoRunner",label:"runs workflows",points:[[2195,1517],[2262,1520],[2339,1518],[2407,1502],[2420,1499],[2434,1494],[2447,1489]],labelBBox:{x:2293,y:1479,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"1ivh6bj",source:"edp",target:"edgeTerraformProvider",label:"automates",points:[[2152,1587],[2193,1621],[2236,1663],[2267,1709],[2418,1937],[2316,2060],[2457,2294],[2471,2318],[2489,2341],[2508,2362]],labelBBox:{x:2306,y:1699,width:69,height:18},parent:null,relations:["1t93kj2"],color:"gray",line:"dashed",head:"normal"},{id:"gl7qul",source:"edp",target:"runtimeCluster",label:"deploys",points:[[2195,1549],[2274,1573],[2368,1601],[2447,1625]],labelBBox:{x:2315,y:1550,width:52,height:18},parent:null,relations:["1f6l7ms"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploy & observe",points:[[2062,1407],[2103,1327],[2175,1215],[2275,1161],[2515,1032],[2842,1049],[3038,1075]],labelBBox:{x:2561,y:1034,width:112,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"35ru8e",source:"edp",target:"enterprise",label:"integrates",points:[[2050,1407],[2086,1304],[2159,1134],[2275,1030],[2324,987],[2388,956],[2447,935]],labelBBox:{x:2308,y:929,width:65,height:18},parent:null,relations:["615gvx"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,points:[[2022,1587],[2022,1650],[2022,1714],[2022,1777]],labelBBox:null,parent:"@gr1",relations:["96ogr7"],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:"3ba54ee560da6b05535f9deb06b6e39effb810ef",bounds:{x:0,y:0,width:4387,height:3828},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:859,y:390,width:520,height:290,labelBBox:{x:52,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:1557,y:390,width:520,height:290,labelBBox:{x:137,y:109,width:247,height:63}},{id:"terraform",parent:null,level:0,children:[],inEdges:[],outEdges:[],title:"Terraform",modelRef:"terraform",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Infrastructure provisioning (IaC)"},tags:[],technology:"Terraform",kind:"component",x:2294,y:390,width:520,height:290,labelBBox:{x:111,y:96,width:298,height:89}},{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:2371,y:390,width:520,height:290,labelBBox:{x:72,y:46,width:406,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. +discover the expected and uncover the unexpected.`},tags:[],technology:"Elasticsearch",kind:"container",x:0,y:0,width:520,height:290,labelBBox:{x:72,y:46,width:406,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:859,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:859,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:1557,y:0,width:520,height:290,labelBBox:{x:80,y:58,width:391,height:165}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["mox1r9","1kjl8ep","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:1726,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:3153,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:3153,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:859,y:1458,width:520,height:290,labelBBox:{x:145,y:96,width:259,height:89}},{id:"documentation",parent:null,level:0,children:[],inEdges:["1kjl8ep"],outEdges:["14bjpe1"],title:"Documentation",modelRef:"documentation",shape:"rectangle",color:"primary",icon:"tech:electron",style:{opacity:15,size:"xl"},description:{txt:"Documentation system for EDP LikeC4 platform."},tags:[],technology:"Static Site Generator",kind:"system",navigateTo:"components-template-documentation",x:859,y:2071,width:520,height:290,labelBBox:{x:62,y:83,width:426,height:115}},{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:1557,y:1726,width:520,height:290,labelBBox:{x:106,y:71,width:339,height:139}},{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["developer","otherProductLifecycleRoles","@gr2","@gr3"],inEdges:["1lyfj4n","14bjpe1","109bf6k"],outEdges:["1tbee2v","5mpoyf","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:1506,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:1557,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:1546,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:2339,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:2371,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","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","17brhnu","35ru8e","6szgsj"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:2339,y:1271,width:584,height:375,labelBBox:{x:6,y:0,width:126,height:15}},{id:"edp",parent:"@gr3",level:1,children:[],inEdges:["1lyfj4n","14bjpe1","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:2371,y:1324,width:520,height:290,labelBBox:{x:88,y:96,width:374,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:3153,y:850,width:520,height:290,labelBBox:{x:63,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:3944,y:850,width:520,height:290,labelBBox:{x:165,y:96,width:191,height:89}}],edges:[{id:"lnq8uj",source:"edfbuilder",target:"edf",label:"boots one",dotpos:"e,1557.5,1771.4 1378.6,1702.6 1433.9,1723.9 1492.3,1746.4 1547.9,1767.7",points:[[1379,1703],[1434,1724],[1492,1746],[1548,1768]],labelBBox:{x:1430,y:1702,width:66,height:18},parent:null,relations:["1oxlsu0"],color:"gray",line:"dashed",head:"normal"},{id:"mox1r9",source:"platformdeveloper",target:"edfbuilder",label:"runs",dotpos:"e,858.95,1684 519.82,1790.1 623.96,1757.5 744.04,1719.9 849.15,1687",points:[[520,1790],[624,1757],[744,1720],[849,1687]],labelBBox:{x:674,y:1682,width:31,height:18},parent:null,relations:["s1l7g7"],color:"gray",line:"dashed",head:"normal"},{id:"1kjl8ep",source:"platformdeveloper",target:"documentation",label:"creates and maintains documentation",dotpos:"e,858.95,2111.8 519.82,1975.2 624.07,2017.2 744.29,2065.6 849.47,2108",points:[[520,1975],[624,2017],[744,2066],[849,2108]],labelBBox:{x:571,y:1979,width:237,height:18},parent:null,relations:["3sz3k3"],color:"gray",line:"dashed",head:"normal"},{id:"x7to90",source:"platformdeveloper",target:"edf",label:"develops EDP and EDF",dotpos:"e,1557.6,1871 520.04,1871 804.49,1871 1259.1,1871 1547.4,1871",points:[[520,1871],[804,1871],[1259,1871],[1547,1871]],labelBBox:{x:1043,y:1848,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,3944.2,867.02 3673,732.98 3757,774.49 3850.4,820.62 3935,862.47",points:[[3673,733],[3757,774],[3850,821],[3935,862]],labelBBox:{x:3763,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,3944.2,995.01 3673,995.01 3756.6,995.01 3849.4,995.01 3933.7,995.01",points:[[3673,995],[3757,995],[3849,995],[3934,995]],labelBBox:{x:3724,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,2371.2,994.95 2077.1,1013.1 2167.7,1007.5 2269.5,1001.2 2360.9,995.58",points:[[2077,1013],[2168,1007],[2270,1001],[2361,996]],labelBBox:{x:2155,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,3153.3,989.7 2891,984.32 2971.9,985.98 3061.3,987.81 3142.9,989.49",points:[[2891,984],[2972,986],[3061,988],[3143,989]],labelBBox:{x:2972,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,2890.8,1595.3 3153.2,1633.4 3092.9,1633.9 3029.3,1630 2971,1617.8 2947.7,1612.9 2924,1606.3 2900.5,1598.6",points:[[3153,1633],[3093,1634],[3029,1630],[2971,1618],[2948,1613],[2924,1606],[2900,1599]],labelBBox:{x:3012,y:1595,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"14bjpe1",source:"documentation",target:"edp",label:"provides documentation for",dotpos:"e,2547.7,1613.9 1378.7,2229.9 1582.8,2229.9 1868.5,2205.1 2088.3,2088.8 2289.3,1982.5 2449.7,1769 2542.3,1622.5",points:[[1379,2230],[1583,2230],[1869,2205],[2088,2089],[2289,1983],[2450,1769],[2542,1623]],labelBBox:{x:1731,y:2066,width:173,height:18},parent:null,relations:["xw0pne"],color:"gray",line:"dashed",head:"normal"},{id:"109bf6k",source:"edf",target:"edp",label:"builds many",dotpos:"e,2487.8,1613.8 2077.2,1823.6 2158.1,1802.7 2245.8,1773.6 2321,1733.8 2377.3,1703.9 2432.3,1662.2 2479.9,1620.8",points:[[2077,1824],[2158,1803],[2246,1774],[2321,1734],[2377,1704],[2432,1662],[2480,1621]],labelBBox:{x:2190,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,2371.2,1328.7 2077.1,1169.3 2168,1218.6 2270.4,1274 2362,1323.7",points:[[2077,1169],[2168,1219],[2270,1274],[2362,1324]],labelBBox:{x:2154,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,2371.1,1469 2088.3,1469 2175.9,1469 2273.1,1469 2360.7,1469",points:[[2088,1469],[2176,1469],[2273,1469],[2361,1469]],labelBBox:{x:2139,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,2631,1324.3 2631,1123.8 2631,1183.6 2631,1253 2631,1313.8",points:[[2631,1124],[2631,1184],[2631,1253],[2631,1314]],labelBBox:{x:2515,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,3153.3,1561.9 2891,1515.1 2972,1529.6 3061.7,1545.6 3143.4,1560.1",points:[[2891,1515],[2972,1530],[3062,1546],[3143,1560]],labelBBox:{x:2989,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,3944.2,1110.4 2890.9,1416.5 3103.4,1370.8 3410.9,1298.4 3673.2,1212.8 3759.6,1184.6 3851.8,1148.8 3934.7,1114.4",points:[[2891,1417],[3103,1371],[3411,1298],[3673,1213],[3760,1185],[3852,1149],[3935,1114]],labelBBox:{x:3343,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,3153.3,1111.3 2808.6,1324.3 2859.6,1285.4 2916.3,1244.8 2971,1211 3025.4,1177.4 3085.8,1145 3144,1115.9",points:[[2809,1324],[2860,1285],[2916,1245],[2971,1211],[3025,1177],[3086,1145],[3144,1116]],labelBBox:{x:3004,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,2631,1123.9 2631,1324 2631,1260.7 2631,1197.4 2631,1134",points:[[2631,1324],[2631,1261],[2631,1197],[2631,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"},edge:{style:{},kind:"cloud",description:{txt:"Edge environments for distributed workloads."},technology:"Edge",title:"Edge Cloud",id:"edge"},"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. +and correctness.`},tags:[],technology:"PostgreSQL",kind:"container",x:1557,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:2294,y:0,width:520,height:290,labelBBox:{x:79,y:58,width:392,height:165}},{id:"platformdeveloper",parent:null,level:0,children:[],inEdges:[],outEdges:["mox1r9","1tdgkqn","vyep7i","1kjl8ep","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:1438,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:3076,y:2534,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:3076,y:1754,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:859,y:1783,width:520,height:290,labelBBox:{x:145,y:96,width:259,height:89}},{id:"idpbuilder",parent:null,level:0,children:[],inEdges:["1tdgkqn"],outEdges:["1v8vv2f"],title:"idpbuilder",modelRef:"idpbuilder",shape:"rectangle",color:"primary",icon:"tech:go",style:{opacity:15,size:"xl"},description:{txt:"Bootstrap tool for initial platform provisioning"},tags:[],technology:"Golang",kind:"component",x:859,y:780,width:520,height:290,labelBBox:{x:96,y:83,width:357,height:115}},{id:"documentation",parent:null,level:0,children:[],inEdges:["1kjl8ep"],outEdges:["14bjpe1"],title:"Documentation",modelRef:"documentation",shape:"rectangle",color:"primary",icon:"tech:electron",style:{opacity:15,size:"xl"},description:{txt:"Documentation system for EDP LikeC4 platform."},tags:[],technology:"Static Site Generator",kind:"system",navigateTo:"components-template-documentation",x:859,y:1170,width:520,height:290,labelBBox:{x:62,y:83,width:426,height:115}},{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:1557,y:1438,width:520,height:290,labelBBox:{x:106,y:71,width:339,height:139}},{id:"@gr1",parent:null,kind:"@group",title:"developer-scope",color:"green",shape:"rectangle",children:["developer","otherProductLifecycleRoles","@gr2","@gr3"],inEdges:["1lyfj4n","1v8vv2f","14bjpe1","109bf6k"],outEdges:["1yfrmvt","1yfr9mr","162qbqw","1tbee2v","5mpoyf","1ivh6bj","gl7qul","17brhnu","35ru8e"],level:0,depth:2,tags:[],style:{border:"none",opacity:20},x:1506,y:1768,width:1380,height:966,labelBBox:{x:6,y:0,width:114,height:15}},{id:"developer",parent:"@gr1",level:1,children:[],inEdges:[],outEdges:["1yfrmvt","1yfr9mr","162qbqw","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:1557,y:2372,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:1546,y:1882,width:542,height:290,labelBBox:{x:34,y:109,width:474,height:63}},{id:"edgeCli",parent:null,level:0,children:[],inEdges:["1yfrmvt"],outEdges:["fyb6c2"],title:"EdgeConnect CLI",modelRef:"edgeCli",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Command-line client for interactive usage"},tags:[],kind:"component",x:2294,y:2774,width:520,height:290,labelBBox:{x:65,y:109,width:390,height:63}},{id:"edgeSdk",parent:null,level:0,children:[],inEdges:["1yfr9mr"],outEdges:["1jfbsco"],title:"EdgeConnect SDK",modelRef:"edgeSdk",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"SDK for programmatic integration"},tags:[],kind:"component",x:2294,y:3387,width:520,height:290,labelBBox:{x:102,y:109,width:316,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:2262,y:2319,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:2294,y:2372,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","1v8vv2f","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","1ivh6bj","gl7qul","17brhnu","35ru8e","6szgsj"],level:0,depth:1,tags:[],style:{border:"none",opacity:30},x:2262,y:1829,width:584,height:375,labelBBox:{x:6,y:0,width:126,height:15}},{id:"edp",parent:"@gr3",level:1,children:[],inEdges:["1lyfj4n","1v8vv2f","14bjpe1","109bf6k","1okgiq5","1wupl5x","1uo6k6b"],outEdges:["5mpoyf","1ivh6bj","gl7qul","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:2294,y:1882,width:520,height:290,labelBBox:{x:88,y:96,width:374,height:89}},{id:"edgeTerraformProvider",parent:null,level:0,children:[],inEdges:["162qbqw","1ivh6bj"],outEdges:["e75f7"],title:"Terraform Edge provider",modelRef:"edgeTerraformProvider",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Terraform provider enabling declarative provisioning"},tags:[],kind:"component",x:3076,y:3147,width:520,height:290,labelBBox:{x:75,y:96,width:371,height:89}},{id:"runtimeCluster",parent:null,level:0,children:[],inEdges:["gl7qul"],outEdges:[],title:"Kubernetes Cluster",modelRef:"runtimeCluster",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Target cluster where applications are deployed"},tags:[],technology:"Kubernetes",kind:"system",x:3076,y:2144,width:520,height:290,labelBBox:{x:86,y:83,width:348,height:115}},{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:3076,y:1141,width:520,height:290,labelBBox:{x:62,y:109,width:395,height:63}},{id:"edgeConnect",parent:null,level:0,children:[],inEdges:["fyb6c2","1jfbsco","e75f7","vyep7i"],outEdges:[],title:"EdgeConnect Cloud",modelRef:"edgeConnect",shape:"rectangle",color:"primary",style:{opacity:15,size:"xl"},description:{txt:"Provides an API and control plane to run applications on the edge"},tags:[],kind:"system",x:3867,y:3337,width:520,height:290,labelBBox:{x:70,y:96,width:381,height:89}},{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:3867,y:1409,width:520,height:290,labelBBox:{x:165,y:96,width:191,height:89}}],edges:[{id:"lnq8uj",source:"edfbuilder",target:"edf",label:"boots one",points:[[1379,1800],[1434,1772],[1493,1743],[1548,1716]],labelBBox:{x:1430,y:1722,width:66,height:18},parent:null,relations:["1oxlsu0"],color:"gray",line:"dashed",head:"normal"},{id:"mox1r9",source:"platformdeveloper",target:"edfbuilder",label:"runs",points:[[520,1687],[624,1729],[744,1778],[849,1820]],labelBBox:{x:674,y:1691,width:31,height:18},parent:null,relations:["s1l7g7"],color:"gray",line:"dashed",head:"normal"},{id:"1tdgkqn",source:"platformdeveloper",target:"idpbuilder",label:"runs",points:[[447,1438],[564,1347],[720,1226],[859,1120],[877,1106],[897,1091],[916,1076]],labelBBox:{x:674,y:1147,width:31,height:18},parent:null,relations:["kv3vny"],color:"gray",line:"dashed",head:"normal"},{id:"fyb6c2",source:"edgeCli",target:"edgeConnect",label:"calls",points:[[2814,2930],[3030,2948],[3343,2990],[3596,3097],[3730,3153],[3861,3249],[3960,3331]],labelBBox:{x:3320,y:2939,width:32,height:18},parent:null,relations:["h84u7y"],color:"gray",line:"dashed",head:"normal"},{id:"1jfbsco",source:"edgeSdk",target:"edgeConnect",label:"calls",points:[[2814,3529],[3025,3526],[3330,3520],[3596,3510],[3681,3507],[3773,3502],[3857,3498]],labelBBox:{x:3320,y:3487,width:32,height:18},parent:null,relations:["1elpzvp"],color:"gray",line:"dashed",head:"normal"},{id:"e75f7",source:"edgeTerraformProvider",target:"edgeConnect",label:"provisions via",points:[[3596,3354],[3680,3375],[3773,3397],[3857,3417]],labelBBox:{x:3687,y:3347,width:89,height:18},parent:null,relations:["6h5xnh"],color:"gray",line:"dashed",head:"normal"},{id:"vyep7i",source:"platformdeveloper",target:"edgeConnect",label:"operates",points:[[284,1728],[366,2224],[666,3828],[1118,3828],[1118,3828],[1118,3828],[3337,3828],[3545,3828],[3761,3726],[3913,3632]],labelBBox:{x:2162,y:3805,width:58,height:18},parent:null,relations:["4pplfw"],color:"gray",line:"dashed",head:"normal"},{id:"1kjl8ep",source:"platformdeveloper",target:"documentation",label:"creates and maintains documentation",points:[[520,1502],[624,1469],[744,1432],[849,1399]],labelBBox:{x:571,y:1394,width:237,height:18},parent:null,relations:["3sz3k3"],color:"gray",line:"dashed",head:"normal"},{id:"x7to90",source:"platformdeveloper",target:"edf",label:"develops EDP and EDF",points:[[520,1583],[804,1583],[1259,1583],[1547,1583]],labelBBox:{x:1043,y:1560,width:152,height:18},parent:null,relations:["v8v12"],color:"gray",line:"dashed",head:"normal"},{id:"8fboq4",source:"customers",target:"cloud",label:"uses your app",points:[[3546,2534],[3564,2518],[3581,2501],[3596,2484],[3808,2243],[3976,1904],[4062,1708]],labelBBox:{x:3686,y:2177,width:92,height:18},parent:null,relations:["1g2ebwc"],color:"gray",line:"dashed",head:"normal"},{id:"iwd51q",source:"enterprise",target:"cloud",label:"app specific dependencies",points:[[3596,1374],[3680,1402],[3773,1434],[3857,1463]],labelBBox:{x:3647,y:1373,width:169,height:18},parent:null,relations:["nc44l9"],color:"gray",line:"dashed",head:"normal"},{id:"1yfrmvt",source:"developer",target:"edgeCli",label:"uses",points:[[2077,2659],[2145,2696],[2217,2735],[2285,2772]],labelBBox:{x:2174,y:2671,width:34,height:18},parent:null,relations:["3rnruw"],color:"gray",line:"dashed",head:"normal"},{id:"1yfr9mr",source:"developer",target:"edgeSdk",label:"uses",points:[[1849,2662],[1891,2828],[1979,3102],[2138,3286],[2179,3333],[2232,3374],[2285,3408]],labelBBox:{x:2174,y:3263,width:34,height:18},parent:null,relations:["1ks7amr"],color:"gray",line:"dashed",head:"normal"},{id:"162qbqw",source:"developer",target:"edgeTerraformProvider",label:"uses",points:[[1880,2662],[1950,2807],[2079,3026],[2262,3137],[2505,3285],[2836,3312],[3066,3310]],labelBBox:{x:2537,y:3114,width:34,height:18},parent:null,relations:["1l0aei7"],color:"gray",line:"dashed",head:"normal"},{id:"zjg544",source:"developer",target:"localbox",label:"inner loop",points:[[2077,2517],[2144,2517],[2216,2517],[2284,2517]],labelBBox:{x:2158,y:2494,width:65,height:18},parent:"@gr1",relations:["5hkplj"],color:"gray",line:"dashed",head:"normal"},{id:"1tbee2v",source:"localbox",target:"enterprise",label:"company integration",points:[[2775,2372],[2819,2331],[2860,2283],[2886,2229],[2901,2196],[2886,1939],[2894,1904],[2938,1714],[2959,1661],[3076,1506],[3094,1482],[3115,1459],[3137,1438]],labelBBox:{x:2895,y:1558,width:130,height:18},parent:null,relations:["1abvxlh"],color:"gray",line:"dashed",head:"normal"},{id:"1lyfj4n",source:"forgejoRunner",target:"edp",label:"register",points:[[3076,1941],[2995,1955],[2906,1969],[2824,1983]],labelBBox:{x:2935,y:1928,width:51,height:18},parent:null,relations:["18dtot7"],color:"gray",line:"dashed",head:"normal"},{id:"1v8vv2f",source:"idpbuilder",target:"edp",label:"installs",points:[[1379,967],[1583,1009],[1869,1087],[2088,1223],[2324,1370],[2453,1683],[2512,1872]],labelBBox:{x:1794,y:974,width:47,height:18},parent:null,relations:["8fwa3r","1ai9t9i","1lc9jrs"],color:"gray",line:"dashed",head:"normal"},{id:"14bjpe1",source:"documentation",target:"edp",label:"provides documentation for",points:[[1379,1278],[1584,1261],[1872,1267],[2088,1388],[2281,1496],[2415,1721],[2488,1873]],labelBBox:{x:1731,y:1248,width:173,height:18},parent:null,relations:["xw0pne"],color:"gray",line:"dashed",head:"normal"},{id:"109bf6k",source:"edf",target:"edp",label:"builds many",points:[[2063,1728],[2072,1733],[2080,1738],[2088,1743],[2160,1786],[2238,1833],[2309,1877]],labelBBox:{x:2152,y:1750,width:79,height:18},parent:null,relations:["wsm3kf"],color:"gray",line:"dashed",head:"normal"},{id:"1okgiq5",source:"developer",target:"edp",label:"outer loop",points:[[2035,2372],[2127,2311],[2234,2240],[2327,2178]],labelBBox:{x:2158,y:2219,width:66,height:18},parent:"@gr1",relations:["1pp73vj","nb1ag9","14tsadm","129xciy","1l7h8as","dol85h","65iq0s","u2ppde","1dgd663","1k2mvqc","vxxbwa"],color:"gray",line:"dashed",head:"normal"},{id:"1wupl5x",source:"otherProductLifecycleRoles",target:"edp",label:"review / operate",points:[[2088,2027],[2152,2027],[2220,2027],[2284,2027]],labelBBox:{x:2139,y:2004,width:104,height:18},parent:"@gr1",relations:["lb4xas"],color:"gray",line:"dashed",head:"normal"},{id:"1uo6k6b",source:"localbox",target:"edp",label:"sync",points:[[2554,2372],[2554,2313],[2554,2243],[2554,2182]],labelBBox:{x:2523,y:2260,width:33,height:18},parent:"@gr1",relations:["1mp9fps"],color:"gray",line:"dashed",head:"normal"},{id:"5mpoyf",source:"edp",target:"forgejoRunner",label:"runs workflows",points:[[2814,2039],[2883,2038],[2958,2032],[3026,2019],[3039,2016],[3053,2013],[3066,2010]],labelBBox:{x:2912,y:1996,width:97,height:18},parent:null,relations:["1pbc22f"],color:"gray",line:"dashed",head:"normal"},{id:"1ivh6bj",source:"edp",target:"edgeTerraformProvider",label:"automates",points:[[2777,2172],[2818,2208],[2857,2249],[2886,2294],[3077,2594],[2889,2769],[3076,3072],[3091,3096],[3109,3119],[3129,3140]],labelBBox:{x:2925,y:2289,width:69,height:18},parent:null,relations:["1t93kj2"],color:"gray",line:"dashed",head:"normal"},{id:"gl7qul",source:"edp",target:"runtimeCluster",label:"deploys",points:[[2814,2114],[2895,2141],[2985,2171],[3066,2199]],labelBBox:{x:2934,y:2119,width:52,height:18},parent:null,relations:["1f6l7ms"],color:"gray",line:"dashed",head:"normal"},{id:"17brhnu",source:"edp",target:"cloud",label:"deploy & observe",points:[[2630,1882],[2688,1786],[2778,1668],[2894,1609],[3056,1527],[3546,1530],[3857,1541]],labelBBox:{x:3280,y:1512,width:112,height:18},parent:null,relations:["gerdx4"],color:"gray",line:"dashed",head:"normal"},{id:"35ru8e",source:"edp",target:"enterprise",label:"integrates",points:[[2614,1882],[2671,1760],[2766,1589],[2894,1478],[2944,1435],[3006,1399],[3067,1372]],labelBBox:{x:2927,y:1369,width:65,height:18},parent:null,relations:["615gvx"],color:"gray",line:"dashed",head:"normal"},{id:"6szgsj",source:"edp",target:"localbox",label:null,points:[[2554,2172],[2554,2235],[2554,2299],[2554,2362]],labelBBox:null,parent:"@gr1",relations:["96ogr7"],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"},edge:{style:{},kind:"cloud",description:{txt:"Edge environments for distributed workloads."},technology:"Edge",title:"Edge Cloud",id:"edge"},"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"},"edge.edge-dev":{style:{},kind:"environment",description:{txt:"Edge development environment"},technology:"Edge",title:"Edge Dev",id:"edge.edge-dev"},"edge.edge-prod":{style:{},kind:"environment",description:{txt:"Edge production environment"},technology:"Edge",title:"Edge Prod",id:"edge.edge-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:knt}=xnt(wnt);function _nt({children:e}){const r=knt();return y.jsx(yrt,{likec4model:r,children:e})}function Ent(e){return y.jsx(_nt,{children:y.jsx(qrt,{renderIcon:snt,...e})})}var IR={exports:{}},rb={},OR={exports:{}},jR={};var qne;function Snt(){return qne||(qne=1,(function(e){function r(I,H){var q=I.length;I.push(H);e:for(;0>>1,W=I[Z];if(0>>1;Za(j,q))Ya(Q,j)?(I[Z]=Q,I[Y]=q,Z=Y):(I[Z]=j,I[K]=q,Z=K);else if(Ya(Q,q))I[Z]=Q,I[Y]=q,Z=Y;else break e}}return H}function a(I,H){var q=I.sortIndex-H.sortIndex;return q!==0?q:I.id-H.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 s=Date,l=s.now();e.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,h=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 H=n(u);H!==null;){if(H.callback===null)o(u);else if(H.startTime<=I)o(u),H.sortIndex=H.expirationTime,r(c,H);else break;H=n(u)}}function A(I){if(x=!1,T(I),!b)if(n(c)!==null)b=!0,R||(R=!0,L());else{var H=n(u);H!==null&&V(A,H.startTime-I)}}var R=!1,D=-1,N=5,M=-1;function O(){return w?!0:!(e.unstable_now()-MI&&O());){var Z=h.callback;if(typeof Z=="function"){h.callback=null,f=h.priorityLevel;var W=Z(h.expirationTime<=I);if(I=e.unstable_now(),typeof W=="function"){h.callback=W,T(I),H=!0;break t}h===n(c)&&o(c),T(I)}else o(c);h=n(c)}if(h!==null)H=!0;else{var G=n(u);G!==null&&V(A,G.startTime-I),H=!1}}break e}finally{h=null,f=q,g=!1}H=void 0}}finally{H?L():R=!1}}}var L;if(typeof _=="function")L=function(){_(F)};else if(typeof MessageChannel<"u"){var U=new MessageChannel,P=U.port2;U.port1.onmessage=F,L=function(){P.postMessage(null)}}else L=function(){k(F,0)};function V(I,H){D=k(function(){I(e.unstable_now())},H)}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||125Z?(I.sortIndex=q,r(u,I),n(c)===null&&I===n(u)&&(x?(C(D),D=-1):x=!0,V(A,q-Z))):(I.sortIndex=W,r(c,I),b||g||(b=!0,R||(R=!0,L()))),I},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(I){var H=f;return function(){var q=f;f=H;try{return I.apply(this,arguments)}finally{f=q}}}})(jR)),jR}var Une;function Cnt(){return Une||(Une=1,OR.exports=Snt()),OR.exports}var Wne;function Tnt(){if(Wne)return rb;Wne=1;var e=Cnt(),r=h6(),n=Kz();function o(p){var m="https://react.dev/errors/"+p;if(1W||(p.current=Z[W],Z[W]=null,W--)}function j(p,m){W++,Z[W]=p.current,p.current=m}var Y=G(null),Q=G(null),J=G(null),ie=G(null);function ne(p,m){switch(j(J,m),j(Q,p),j(Y,null),m.nodeType){case 9:case 11:p=(p=m.documentElement)&&(p=p.namespaceURI)?Gge(p):0;break;default:if(p=m.tagName,m=m.namespaceURI)m=Gge(m),p=Xge(m,p);else switch(p){case"svg":p=1;break;case"math":p=2;break;default:p=0}}K(Y),j(Y,p)}function re(){K(Y),K(Q),K(J)}function ge(p){p.memoizedState!==null&&j(ie,p);var m=Y.current,v=Xge(m,p.type);m!==v&&(j(Q,p),j(Y,v))}function De(p){Q.current===p&&(K(Y),K(Q)),ie.current===p&&(K(ie),jv._currentValue=q)}var he,me;function Te(p){if(he===void 0)try{throw Error()}catch(v){var m=v.stack.trim().match(/\n( *(at )?)/);he=m&&m[1]||"",me=-1)":-1$||pe[S]!==we[$]){var Ne=` -`+pe[S].replace(" at new "," at ");return p.displayName&&Ne.includes("")&&(Ne=Ne.replace("",p.displayName)),Ne}while(1<=S&&0<=$);break}}}finally{Ie=!1,Error.prepareStackTrace=v}return(v=p?p.displayName||p.name:"")?Te(v):""}function rt(p,m){switch(p.tag){case 26:case 27:case 5:return Te(p.type);case 16:return Te("Lazy");case 13:return p.child!==m&&m!==null?Te("Suspense Fallback"):Te("Suspense");case 19:return Te("SuspenseList");case 0:case 15:return Ze(p.type,!1);case 11:return Ze(p.type.render,!1);case 1:return Ze(p.type,!0);case 31:return Te("Activity");default:return""}}function Rt(p){try{var m="",v=null;do m+=rt(p,v),v=p,p=p.return;while(p);return m}catch(S){return` -Error generating stack: `+S.message+` -`+S.stack}}var Qe=Object.prototype.hasOwnProperty,Pt=e.unstable_scheduleCallback,Ke=e.unstable_cancelCallback,Ge=e.unstable_shouldYield,ct=e.unstable_requestPaint,ut=e.unstable_now,Ir=e.unstable_getCurrentPriorityLevel,Ee=e.unstable_ImmediatePriority,Se=e.unstable_UserBlockingPriority,it=e.unstable_NormalPriority,xt=e.unstable_LowPriority,zt=e.unstable_IdlePriority,Fr=e.log,It=e.unstable_setDisableYieldValue,vr=null,fr=null;function un(p){if(typeof Fr=="function"&&It(p),fr&&typeof fr.setStrictMode=="function")try{fr.setStrictMode(vr,p)}catch{}}var ir=Math.clz32?Math.clz32:ea,vn=Math.log,xr=Math.LN2;function ea(p){return p>>>=0,p===0?32:31-(vn(p)/xr|0)|0}var xa=256,Gs=262144,Vo=4194304;function wa(p){var m=p&42;if(m!==0)return m;switch(p&-p){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:return p&261888;case 262144:case 524288:case 1048576:case 2097152:return p&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return p&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return p}}function Xs(p,m,v){var S=p.pendingLanes;if(S===0)return 0;var $=0,z=p.suspendedLanes,X=p.pingedLanes;p=p.warmLanes;var oe=S&134217727;return oe!==0?(S=oe&~z,S!==0?$=wa(S):(X&=oe,X!==0?$=wa(X):v||(v=oe&~p,v!==0&&($=wa(v))))):(oe=S&~z,oe!==0?$=wa(oe):X!==0?$=wa(X):v||(v=S&~p,v!==0&&($=wa(v)))),$===0?0:m!==0&&m!==$&&(m&z)===0&&(z=$&-$,v=m&-m,z>=v||z===32&&(v&4194048)!==0)?m:$}function fo(p,m){return(p.pendingLanes&~(p.suspendedLanes&~p.pingedLanes)&m)===0}function Ol(p,m){switch(p){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 jl(){var p=Vo;return Vo<<=1,(Vo&62914560)===0&&(Vo=4194304),p}function Bc(p){for(var m=[],v=0;31>v;v++)m.push(p);return m}function Ks(p,m){p.pendingLanes|=m,m!==268435456&&(p.suspendedLanes=0,p.pingedLanes=0,p.warmLanes=0)}function Rh(p,m,v,S,$,z){var X=p.pendingLanes;p.pendingLanes=v,p.suspendedLanes=0,p.pingedLanes=0,p.warmLanes=0,p.expiredLanes&=v,p.entangledLanes&=v,p.errorRecoveryDisabledLanes&=v,p.shellSuspendCounter=0;var oe=p.entanglements,pe=p.expirationTimes,we=p.hiddenUpdates;for(v=X&~v;0"u")return null;try{return p.activeElement||p.body}catch{return p.body}}var pd=/[\n"\\]/g;function ee(p){return p.replace(pd,function(m){return"\\"+m.charCodeAt(0).toString(16)+" "})}function te(p,m,v,S,$,z,X,oe){p.name="",X!=null&&typeof X!="function"&&typeof X!="symbol"&&typeof X!="boolean"?p.type=X:p.removeAttribute("type"),m!=null?X==="number"?(m===0&&p.value===""||p.value!=m)&&(p.value=""+nn(m)):p.value!==""+nn(m)&&(p.value=""+nn(m)):X!=="submit"&&X!=="reset"||p.removeAttribute("value"),m!=null?le(p,X,nn(m)):v!=null?le(p,X,nn(v)):S!=null&&p.removeAttribute("value"),$==null&&z!=null&&(p.defaultChecked=!!z),$!=null&&(p.checked=$&&typeof $!="function"&&typeof $!="symbol"),oe!=null&&typeof oe!="function"&&typeof oe!="symbol"&&typeof oe!="boolean"?p.name=""+nn(oe):p.removeAttribute("name")}function ae(p,m,v,S,$,z,X,oe){if(z!=null&&typeof z!="function"&&typeof z!="symbol"&&typeof z!="boolean"&&(p.type=z),m!=null||v!=null){if(!(z!=="submit"&&z!=="reset"||m!=null)){Fi(p);return}v=v!=null?""+nn(v):"",m=m!=null?""+nn(m):v,oe||m===p.value||(p.value=m),p.defaultValue=m}S=S??$,S=typeof S!="function"&&typeof S!="symbol"&&!!S,p.checked=oe?p.checked:!!S,p.defaultChecked=!!S,X!=null&&typeof X!="function"&&typeof X!="symbol"&&typeof X!="boolean"&&(p.name=X),Fi(p)}function le(p,m,v){m==="number"&&Ul(p.ownerDocument)===p||p.defaultValue===""+v||(p.defaultValue=""+v)}function ue(p,m,v,S){if(p=p.options,m){m={};for(var $=0;$"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),HM=!1;if(Uc)try{var rv={};Object.defineProperty(rv,"passive",{get:function(){HM=!0}}),window.addEventListener("test",rv,rv),window.removeEventListener("test",rv,rv)}catch{HM=!1}var fd=null,VM=null,r_=null;function Xhe(){if(r_)return r_;var p,m=VM,v=m.length,S,$="value"in fd?fd.value:fd.textContent,z=$.length;for(p=0;p=av),tfe=" ",rfe=!1;function nfe(p,m){switch(p){case"keyup":return hwt.indexOf(m.keyCode)!==-1;case"keydown":return m.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ofe(p){return p=p.detail,typeof p=="object"&&"data"in p?p.data:null}var Og=!1;function mwt(p,m){switch(p){case"compositionend":return ofe(m);case"keypress":return m.which!==32?null:(rfe=!0,tfe);case"textInput":return p=m.data,p===tfe&&rfe?null:p;default:return null}}function gwt(p,m){if(Og)return p==="compositionend"||!GM&&nfe(p,m)?(p=Xhe(),r_=VM=fd=null,Og=!1,p):null;switch(p){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-p};p=S}e:{for(;v;){if(v.nextSibling){v=v.nextSibling;break e}v=v.parentNode}v=void 0}v=pfe(v)}}function ffe(p,m){return p&&m?p===m?!0:p&&p.nodeType===3?!1:m&&m.nodeType===3?ffe(p,m.parentNode):"contains"in p?p.contains(m):p.compareDocumentPosition?!!(p.compareDocumentPosition(m)&16):!1:!1}function mfe(p){p=p!=null&&p.ownerDocument!=null&&p.ownerDocument.defaultView!=null?p.ownerDocument.defaultView:window;for(var m=Ul(p.document);m instanceof p.HTMLIFrameElement;){try{var v=typeof m.contentWindow.location.href=="string"}catch{v=!1}if(v)p=m.contentWindow;else break;m=Ul(p.document)}return m}function ZM(p){var m=p&&p.nodeName&&p.nodeName.toLowerCase();return m&&(m==="input"&&(p.type==="text"||p.type==="search"||p.type==="tel"||p.type==="url"||p.type==="password")||m==="textarea"||p.contentEditable==="true")}var Ewt=Uc&&"documentMode"in document&&11>=document.documentMode,jg=null,QM=null,cv=null,JM=!1;function gfe(p,m,v){var S=v.window===v?v.document:v.nodeType===9?v:v.ownerDocument;JM||jg==null||jg!==Ul(S)||(S=jg,"selectionStart"in S&&ZM(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}),cv&&lv(cv,S)||(cv=S,S=X_(QM,"onSelect"),0>=X,$-=X,Wl=1<<32-ir(m)+$|v<<$|S,Yl=z+p}else Wl=1<Wt?(nr=pt,pt=null):nr=pt.sibling;var gr=ke(ye,pt,xe[Wt],$e);if(gr===null){pt===null&&(pt=nr);break}p&&pt&&gr.alternate===null&&m(ye,pt),fe=z(gr,fe,Wt),mr===null?yt=gr:mr.sibling=gr,mr=gr,pt=nr}if(Wt===xe.length)return v(ye,pt),sr&&Yc(ye,Wt),yt;if(pt===null){for(;WtWt?(nr=pt,pt=null):nr=pt.sibling;var Id=ke(ye,pt,gr.value,$e);if(Id===null){pt===null&&(pt=nr);break}p&&pt&&Id.alternate===null&&m(ye,pt),fe=z(Id,fe,Wt),mr===null?yt=Id:mr.sibling=Id,mr=Id,pt=nr}if(gr.done)return v(ye,pt),sr&&Yc(ye,Wt),yt;if(pt===null){for(;!gr.done;Wt++,gr=xe.next())gr=Pe(ye,gr.value,$e),gr!==null&&(fe=z(gr,fe,Wt),mr===null?yt=gr:mr.sibling=gr,mr=gr);return sr&&Yc(ye,Wt),yt}for(pt=S(pt);!gr.done;Wt++,gr=xe.next())gr=Ce(pt,ye,Wt,gr.value,$e),gr!==null&&(p&&gr.alternate!==null&&pt.delete(gr.key===null?Wt:gr.key),fe=z(gr,fe,Wt),mr===null?yt=gr:mr.sibling=gr,mr=gr);return p&&pt.forEach(function(q4t){return m(ye,q4t)}),sr&&Yc(ye,Wt),yt}function Mr(ye,fe,xe,$e){if(typeof xe=="object"&&xe!==null&&xe.type===x&&xe.key===null&&(xe=xe.props.children),typeof xe=="object"&&xe!==null){switch(xe.$$typeof){case g:e:{for(var yt=xe.key;fe!==null;){if(fe.key===yt){if(yt=xe.type,yt===x){if(fe.tag===7){v(ye,fe.sibling),$e=$(fe,xe.props.children),$e.return=ye,ye=$e;break e}}else if(fe.elementType===yt||typeof yt=="object"&&yt!==null&&yt.$$typeof===N&&Vh(yt)===fe.type){v(ye,fe.sibling),$e=$(fe,xe.props),mv($e,xe),$e.return=ye,ye=$e;break e}v(ye,fe);break}else m(ye,fe);fe=fe.sibling}xe.type===x?($e=jh(xe.props.children,ye.mode,$e,xe.key),$e.return=ye,ye=$e):($e=p_(xe.type,xe.key,xe.props,null,ye.mode,$e),mv($e,xe),$e.return=ye,ye=$e)}return X(ye);case b:e:{for(yt=xe.key;fe!==null;){if(fe.key===yt)if(fe.tag===4&&fe.stateNode.containerInfo===xe.containerInfo&&fe.stateNode.implementation===xe.implementation){v(ye,fe.sibling),$e=$(fe,xe.children||[]),$e.return=ye,ye=$e;break e}else{v(ye,fe);break}else m(ye,fe);fe=fe.sibling}$e=iP(xe,ye.mode,$e),$e.return=ye,ye=$e}return X(ye);case N:return xe=Vh(xe),Mr(ye,fe,xe,$e)}if(V(xe))return st(ye,fe,xe,$e);if(L(xe)){if(yt=L(xe),typeof yt!="function")throw Error(o(150));return xe=yt.call(xe),At(ye,fe,xe,$e)}if(typeof xe.then=="function")return Mr(ye,fe,v_(xe),$e);if(xe.$$typeof===_)return Mr(ye,fe,m_(ye,xe),$e);x_(ye,xe)}return typeof xe=="string"&&xe!==""||typeof xe=="number"||typeof xe=="bigint"?(xe=""+xe,fe!==null&&fe.tag===6?(v(ye,fe.sibling),$e=$(fe,xe),$e.return=ye,ye=$e):(v(ye,fe),$e=aP(xe,ye.mode,$e),$e.return=ye,ye=$e),X(ye)):v(ye,fe)}return function(ye,fe,xe,$e){try{fv=0;var yt=Mr(ye,fe,xe,$e);return Xg=null,yt}catch(pt){if(pt===Gg||pt===y_)throw pt;var mr=ti(29,pt,null,ye.mode);return mr.lanes=$e,mr.return=ye,mr}finally{}}}var Uh=Lfe(!0),Bfe=Lfe(!1),vd=!1;function bP(p){p.updateQueue={baseState:p.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function vP(p,m){p=p.updateQueue,m.updateQueue===p&&(m.updateQueue={baseState:p.baseState,firstBaseUpdate:p.firstBaseUpdate,lastBaseUpdate:p.lastBaseUpdate,shared:p.shared,callbacks:null})}function xd(p){return{lane:p,tag:0,payload:null,callback:null,next:null}}function wd(p,m,v){var S=p.updateQueue;if(S===null)return null;if(S=S.shared,(wr&2)!==0){var $=S.pending;return $===null?m.next=m:(m.next=$.next,$.next=m),S.pending=m,m=d_(p),_fe(p,null,v),m}return u_(p,S,m,v),d_(p)}function gv(p,m,v){if(m=m.updateQueue,m!==null&&(m=m.shared,(v&4194048)!==0)){var S=m.lanes;S&=p.pendingLanes,v|=S,m.lanes=v,id(p,v)}}function xP(p,m){var v=p.updateQueue,S=p.alternate;if(S!==null&&(S=S.updateQueue,v===S)){var $=null,z=null;if(v=v.firstBaseUpdate,v!==null){do{var X={lane:v.lane,tag:v.tag,payload:v.payload,callback:null,next:null};z===null?$=z=X:z=z.next=X,v=v.next}while(v!==null);z===null?$=z=m:z=z.next=m}else $=z=m;v={baseState:S.baseState,firstBaseUpdate:$,lastBaseUpdate:z,shared:S.shared,callbacks:S.callbacks},p.updateQueue=v;return}p=v.lastBaseUpdate,p===null?v.firstBaseUpdate=m:p.next=m,v.lastBaseUpdate=m}var wP=!1;function yv(){if(wP){var p=Yg;if(p!==null)throw p}}function bv(p,m,v,S){wP=!1;var $=p.updateQueue;vd=!1;var z=$.firstBaseUpdate,X=$.lastBaseUpdate,oe=$.shared.pending;if(oe!==null){$.shared.pending=null;var pe=oe,we=pe.next;pe.next=null,X===null?z=we:X.next=we,X=pe;var Ne=p.alternate;Ne!==null&&(Ne=Ne.updateQueue,oe=Ne.lastBaseUpdate,oe!==X&&(oe===null?Ne.firstBaseUpdate=we:oe.next=we,Ne.lastBaseUpdate=pe))}if(z!==null){var Pe=$.baseState;X=0,Ne=we=pe=null,oe=z;do{var ke=oe.lane&-536870913,Ce=ke!==oe.lane;if(Ce?(rr&ke)===ke:(S&ke)===ke){ke!==0&&ke===Wg&&(wP=!0),Ne!==null&&(Ne=Ne.next={lane:0,tag:oe.tag,payload:oe.payload,callback:null,next:null});e:{var st=p,At=oe;ke=m;var Mr=v;switch(At.tag){case 1:if(st=At.payload,typeof st=="function"){Pe=st.call(Mr,Pe,ke);break e}Pe=st;break e;case 3:st.flags=st.flags&-65537|128;case 0:if(st=At.payload,ke=typeof st=="function"?st.call(Mr,Pe,ke):st,ke==null)break e;Pe=h({},Pe,ke);break e;case 2:vd=!0}}ke=oe.callback,ke!==null&&(p.flags|=64,Ce&&(p.flags|=8192),Ce=$.callbacks,Ce===null?$.callbacks=[ke]:Ce.push(ke))}else Ce={lane:ke,tag:oe.tag,payload:oe.payload,callback:oe.callback,next:null},Ne===null?(we=Ne=Ce,pe=Pe):Ne=Ne.next=Ce,X|=ke;if(oe=oe.next,oe===null){if(oe=$.shared.pending,oe===null)break;Ce=oe,oe=Ce.next,Ce.next=null,$.lastBaseUpdate=Ce,$.shared.pending=null}}while(!0);Ne===null&&(pe=Pe),$.baseState=pe,$.firstBaseUpdate=we,$.lastBaseUpdate=Ne,z===null&&($.shared.lanes=0),Cd|=X,p.lanes=X,p.memoizedState=Pe}}function Ffe(p,m){if(typeof p!="function")throw Error(o(191,p));p.call(m)}function Hfe(p,m){var v=p.callbacks;if(v!==null)for(p.callbacks=null,p=0;pz?z:8;var X=I.T,oe={};I.T=oe,BP(p,!1,m,v);try{var pe=$(),we=I.S;if(we!==null&&we(oe,pe),pe!==null&&typeof pe=="object"&&typeof pe.then=="function"){var Ne=Mwt(pe,S);wv(p,m,Ne,ii(p))}else wv(p,m,S,ii(p))}catch(Pe){wv(p,m,{then:function(){},status:"rejected",reason:Pe},ii())}finally{H.p=z,X!==null&&oe.types!==null&&(X.types=oe.types),I.T=X}}function Lwt(){}function jP(p,m,v,S){if(p.tag!==5)throw Error(o(476));var $=xme(p).queue;vme(p,$,m,q,v===null?Lwt:function(){return wme(p),v(S)})}function xme(p){var m=p.memoizedState;if(m!==null)return m;m={memoizedState:q,baseState:q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zc,lastRenderedState:q},next:null};var v={};return m.next={memoizedState:v,baseState:v,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Zc,lastRenderedState:v},next:null},p.memoizedState=m,p=p.alternate,p!==null&&(p.memoizedState=m),m}function wme(p){var m=xme(p);m.next===null&&(m=p.alternate.memoizedState),wv(p,m.next.queue,{},ii())}function LP(){return To(jv)}function kme(){return Rn().memoizedState}function _me(){return Rn().memoizedState}function Bwt(p){for(var m=p.return;m!==null;){switch(m.tag){case 24:case 3:var v=ii();p=xd(v);var S=wd(m,p,v);S!==null&&(Aa(S,m,v),gv(S,m,v)),m={cache:fP()},p.payload=m;return}m=m.return}}function Fwt(p,m,v){var S=ii();v={lane:S,revertLane:0,gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null},N_(p)?Sme(m,v):(v=nP(p,m,v,S),v!==null&&(Aa(v,p,S),Cme(v,m,S)))}function Eme(p,m,v){var S=ii();wv(p,m,v,S)}function wv(p,m,v,S){var $={lane:S,revertLane:0,gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null};if(N_(p))Sme(m,$);else{var z=p.alternate;if(p.lanes===0&&(z===null||z.lanes===0)&&(z=m.lastRenderedReducer,z!==null))try{var X=m.lastRenderedState,oe=z(X,v);if($.hasEagerState=!0,$.eagerState=oe,ei(oe,X))return u_(p,m,$,0),Or===null&&c_(),!1}catch{}finally{}if(v=nP(p,m,$,S),v!==null)return Aa(v,p,S),Cme(v,m,S),!0}return!1}function BP(p,m,v,S){if(S={lane:2,revertLane:bz(),gesture:null,action:S,hasEagerState:!1,eagerState:null,next:null},N_(p)){if(m)throw Error(o(479))}else m=nP(p,v,S,2),m!==null&&Aa(m,p,2)}function N_(p){var m=p.alternate;return p===Ut||m!==null&&m===Ut}function Sme(p,m){Zg=__=!0;var v=p.pending;v===null?m.next=m:(m.next=v.next,v.next=m),p.pending=m}function Cme(p,m,v){if((v&4194048)!==0){var S=m.lanes;S&=p.pendingLanes,v|=S,m.lanes=v,id(p,v)}}var kv={readContext:To,use:C_,useCallback:xn,useContext:xn,useEffect:xn,useImperativeHandle:xn,useLayoutEffect:xn,useInsertionEffect:xn,useMemo:xn,useReducer:xn,useRef:xn,useState:xn,useDebugValue:xn,useDeferredValue:xn,useTransition:xn,useSyncExternalStore:xn,useId:xn,useHostTransitionStatus:xn,useFormState:xn,useActionState:xn,useOptimistic:xn,useMemoCache:xn,useCacheRefresh:xn};kv.useEffectEvent=xn;var Tme={readContext:To,use:C_,useCallback:function(p,m){return na().memoizedState=[p,m===void 0?null:m],p},useContext:To,useEffect:ume,useImperativeHandle:function(p,m,v){v=v!=null?v.concat([p]):null,A_(4194308,4,fme.bind(null,m,p),v)},useLayoutEffect:function(p,m){return A_(4194308,4,p,m)},useInsertionEffect:function(p,m){A_(4,2,p,m)},useMemo:function(p,m){var v=na();m=m===void 0?null:m;var S=p();if(Wh){un(!0);try{p()}finally{un(!1)}}return v.memoizedState=[S,m],S},useReducer:function(p,m,v){var S=na();if(v!==void 0){var $=v(m);if(Wh){un(!0);try{v(m)}finally{un(!1)}}}else $=m;return S.memoizedState=S.baseState=$,p={pending:null,lanes:0,dispatch:null,lastRenderedReducer:p,lastRenderedState:$},S.queue=p,p=p.dispatch=Fwt.bind(null,Ut,p),[S.memoizedState,p]},useRef:function(p){var m=na();return p={current:p},m.memoizedState=p},useState:function(p){p=MP(p);var m=p.queue,v=Eme.bind(null,Ut,m);return m.dispatch=v,[p.memoizedState,v]},useDebugValue:IP,useDeferredValue:function(p,m){var v=na();return OP(v,p,m)},useTransition:function(){var p=MP(!1);return p=vme.bind(null,Ut,p.queue,!0,!1),na().memoizedState=p,[!1,p]},useSyncExternalStore:function(p,m,v){var S=Ut,$=na();if(sr){if(v===void 0)throw Error(o(407));v=v()}else{if(v=m(),Or===null)throw Error(o(349));(rr&127)!==0||Gfe(S,m,v)}$.memoizedState=v;var z={value:v,getSnapshot:m};return $.queue=z,ume(Kfe.bind(null,S,z,p),[p]),S.flags|=2048,Jg(9,{destroy:void 0},Xfe.bind(null,S,z,v,m),null),v},useId:function(){var p=na(),m=Or.identifierPrefix;if(sr){var v=Yl,S=Wl;v=(S&~(1<<32-ir(S)-1)).toString(32)+v,m="_"+m+"R_"+v,v=E_++,0<\/script>",z=z.removeChild(z.firstChild);break;case"select":z=typeof S.is=="string"?X.createElement("select",{is:S.is}):X.createElement("select"),S.multiple?z.multiple=!0:S.size&&(z.size=S.size);break;default:z=typeof S.is=="string"?X.createElement($,{is:S.is}):X.createElement($)}}z[Wr]=m,z[Vn]=S;e:for(X=m.child;X!==null;){if(X.tag===5||X.tag===6)z.appendChild(X.stateNode);else if(X.tag!==4&&X.tag!==27&&X.child!==null){X.child.return=X,X=X.child;continue}if(X===m)break e;for(;X.sibling===null;){if(X.return===null||X.return===m)break e;X=X.return}X.sibling.return=X.return,X=X.sibling}m.stateNode=z;e:switch(Ro(z,$,S),$){case"button":case"input":case"select":case"textarea":S=!!S.autoFocus;break e;case"img":S=!0;break e;default:S=!1}S&&Jc(m)}}return Gr(m),ez(m,m.type,p===null?null:p.memoizedProps,m.pendingProps,v),null;case 6:if(p&&m.stateNode!=null)p.memoizedProps!==S&&Jc(m);else{if(typeof S!="string"&&m.stateNode===null)throw Error(o(166));if(p=J.current,qg(m)){if(p=m.stateNode,v=m.memoizedProps,S=null,$=Co,$!==null)switch($.tag){case 27:case 5:S=$.memoizedProps}p[Wr]=m,p=!!(p.nodeValue===v||S!==null&&S.suppressHydrationWarning===!0||Wge(p.nodeValue,v)),p||yd(m,!0)}else p=K_(p).createTextNode(S),p[Wr]=m,m.stateNode=p}return Gr(m),null;case 31:if(v=m.memoizedState,p===null||p.memoizedState!==null){if(S=qg(m),v!==null){if(p===null){if(!S)throw Error(o(318));if(p=m.memoizedState,p=p!==null?p.dehydrated:null,!p)throw Error(o(557));p[Wr]=m}else Lh(),(m.flags&128)===0&&(m.memoizedState=null),m.flags|=4;Gr(m),p=!1}else v=uP(),p!==null&&p.memoizedState!==null&&(p.memoizedState.hydrationErrors=v),p=!0;if(!p)return m.flags&256?(ni(m),m):(ni(m),null);if((m.flags&128)!==0)throw Error(o(558))}return Gr(m),null;case 13:if(S=m.memoizedState,p===null||p.memoizedState!==null&&p.memoizedState.dehydrated!==null){if($=qg(m),S!==null&&S.dehydrated!==null){if(p===null){if(!$)throw Error(o(318));if($=m.memoizedState,$=$!==null?$.dehydrated:null,!$)throw Error(o(317));$[Wr]=m}else Lh(),(m.flags&128)===0&&(m.memoizedState=null),m.flags|=4;Gr(m),$=!1}else $=uP(),p!==null&&p.memoizedState!==null&&(p.memoizedState.hydrationErrors=$),$=!0;if(!$)return m.flags&256?(ni(m),m):(ni(m),null)}return ni(m),(m.flags&128)!==0?(m.lanes=v,m):(v=S!==null,p=p!==null&&p.memoizedState!==null,v&&(S=m.child,$=null,S.alternate!==null&&S.alternate.memoizedState!==null&&S.alternate.memoizedState.cachePool!==null&&($=S.alternate.memoizedState.cachePool.pool),z=null,S.memoizedState!==null&&S.memoizedState.cachePool!==null&&(z=S.memoizedState.cachePool.pool),z!==$&&(S.flags|=2048)),v!==p&&v&&(m.child.flags|=8192),z_(m,m.updateQueue),Gr(m),null);case 4:return re(),p===null&&kz(m.stateNode.containerInfo),Gr(m),null;case 10:return Xc(m.type),Gr(m),null;case 19:if(K(An),S=m.memoizedState,S===null)return Gr(m),null;if($=(m.flags&128)!==0,z=S.rendering,z===null)if($)Ev(S,!1);else{if(wn!==0||p!==null&&(p.flags&128)!==0)for(p=m.child;p!==null;){if(z=k_(p),z!==null){for(m.flags|=128,Ev(S,!1),p=z.updateQueue,m.updateQueue=p,z_(m,p),m.subtreeFlags=0,p=v,v=m.child;v!==null;)Efe(v,p),v=v.sibling;return j(An,An.current&1|2),sr&&Yc(m,S.treeForkCount),m.child}p=p.sibling}S.tail!==null&&ut()>B_&&(m.flags|=128,$=!0,Ev(S,!1),m.lanes=4194304)}else{if(!$)if(p=k_(z),p!==null){if(m.flags|=128,$=!0,p=p.updateQueue,m.updateQueue=p,z_(m,p),Ev(S,!0),S.tail===null&&S.tailMode==="hidden"&&!z.alternate&&!sr)return Gr(m),null}else 2*ut()-S.renderingStartTime>B_&&v!==536870912&&(m.flags|=128,$=!0,Ev(S,!1),m.lanes=4194304);S.isBackwards?(z.sibling=m.child,m.child=z):(p=S.last,p!==null?p.sibling=z:m.child=z,S.last=z)}return S.tail!==null?(p=S.tail,S.rendering=p,S.tail=p.sibling,S.renderingStartTime=ut(),p.sibling=null,v=An.current,j(An,$?v&1|2:v&1),sr&&Yc(m,S.treeForkCount),p):(Gr(m),null);case 22:case 23:return ni(m),_P(),S=m.memoizedState!==null,p!==null?p.memoizedState!==null!==S&&(m.flags|=8192):S&&(m.flags|=8192),S?(v&536870912)!==0&&(m.flags&128)===0&&(Gr(m),m.subtreeFlags&6&&(m.flags|=8192)):Gr(m),v=m.updateQueue,v!==null&&z_(m,v.retryQueue),v=null,p!==null&&p.memoizedState!==null&&p.memoizedState.cachePool!==null&&(v=p.memoizedState.cachePool.pool),S=null,m.memoizedState!==null&&m.memoizedState.cachePool!==null&&(S=m.memoizedState.cachePool.pool),S!==v&&(m.flags|=2048),p!==null&&K(Hh),null;case 24:return v=null,p!==null&&(v=p.memoizedState.cache),m.memoizedState.cache!==v&&(m.flags|=2048),Xc(qn),Gr(m),null;case 25:return null;case 30:return null}throw Error(o(156,m.tag))}function Wwt(p,m){switch(lP(m),m.tag){case 1:return p=m.flags,p&65536?(m.flags=p&-65537|128,m):null;case 3:return Xc(qn),re(),p=m.flags,(p&65536)!==0&&(p&128)===0?(m.flags=p&-65537|128,m):null;case 26:case 27:case 5:return De(m),null;case 31:if(m.memoizedState!==null){if(ni(m),m.alternate===null)throw Error(o(340));Lh()}return p=m.flags,p&65536?(m.flags=p&-65537|128,m):null;case 13:if(ni(m),p=m.memoizedState,p!==null&&p.dehydrated!==null){if(m.alternate===null)throw Error(o(340));Lh()}return p=m.flags,p&65536?(m.flags=p&-65537|128,m):null;case 19:return K(An),null;case 4:return re(),null;case 10:return Xc(m.type),null;case 22:case 23:return ni(m),_P(),p!==null&&K(Hh),p=m.flags,p&65536?(m.flags=p&-65537|128,m):null;case 24:return Xc(qn),null;case 25:return null;default:return null}}function Zme(p,m){switch(lP(m),m.tag){case 3:Xc(qn),re();break;case 26:case 27:case 5:De(m);break;case 4:re();break;case 31:m.memoizedState!==null&&ni(m);break;case 13:ni(m);break;case 19:K(An);break;case 10:Xc(m.type);break;case 22:case 23:ni(m),_P(),p!==null&&K(Hh);break;case 24:Xc(qn)}}function Sv(p,m){try{var v=m.updateQueue,S=v!==null?v.lastEffect:null;if(S!==null){var $=S.next;v=$;do{if((v.tag&p)===p){S=void 0;var z=v.create,X=v.inst;S=z(),X.destroy=S}v=v.next}while(v!==$)}}catch(oe){Cr(m,m.return,oe)}}function Ed(p,m,v){try{var S=m.updateQueue,$=S!==null?S.lastEffect:null;if($!==null){var z=$.next;S=z;do{if((S.tag&p)===p){var X=S.inst,oe=X.destroy;if(oe!==void 0){X.destroy=void 0,$=m;var pe=v,we=oe;try{we()}catch(Ne){Cr($,pe,Ne)}}}S=S.next}while(S!==z)}}catch(Ne){Cr(m,m.return,Ne)}}function Qme(p){var m=p.updateQueue;if(m!==null){var v=p.stateNode;try{Hfe(m,v)}catch(S){Cr(p,p.return,S)}}}function Jme(p,m,v){v.props=Yh(p.type,p.memoizedProps),v.state=p.memoizedState;try{v.componentWillUnmount()}catch(S){Cr(p,m,S)}}function Cv(p,m){try{var v=p.ref;if(v!==null){switch(p.tag){case 26:case 27:case 5:var S=p.stateNode;break;case 30:S=p.stateNode;break;default:S=p.stateNode}typeof v=="function"?p.refCleanup=v(S):v.current=S}}catch($){Cr(p,m,$)}}function Gl(p,m){var v=p.ref,S=p.refCleanup;if(v!==null)if(typeof S=="function")try{S()}catch($){Cr(p,m,$)}finally{p.refCleanup=null,p=p.alternate,p!=null&&(p.refCleanup=null)}else if(typeof v=="function")try{v(null)}catch($){Cr(p,m,$)}else v.current=null}function ege(p){var m=p.type,v=p.memoizedProps,S=p.stateNode;try{e:switch(m){case"button":case"input":case"select":case"textarea":v.autoFocus&&S.focus();break e;case"img":v.src?S.src=v.src:v.srcSet&&(S.srcset=v.srcSet)}}catch($){Cr(p,p.return,$)}}function tz(p,m,v){try{var S=p.stateNode;f4t(S,p.type,v,m),S[Vn]=m}catch($){Cr(p,p.return,$)}}function tge(p){return p.tag===5||p.tag===3||p.tag===26||p.tag===27&&Dd(p.type)||p.tag===4}function rz(p){e:for(;;){for(;p.sibling===null;){if(p.return===null||tge(p.return))return null;p=p.return}for(p.sibling.return=p.return,p=p.sibling;p.tag!==5&&p.tag!==6&&p.tag!==18;){if(p.tag===27&&Dd(p.type)||p.flags&2||p.child===null||p.tag===4)continue e;p.child.return=p,p=p.child}if(!(p.flags&2))return p.stateNode}}function nz(p,m,v){var S=p.tag;if(S===5||S===6)p=p.stateNode,m?(v.nodeType===9?v.body:v.nodeName==="HTML"?v.ownerDocument.body:v).insertBefore(p,m):(m=v.nodeType===9?v.body:v.nodeName==="HTML"?v.ownerDocument.body:v,m.appendChild(p),v=v._reactRootContainer,v!=null||m.onclick!==null||(m.onclick=Gt));else if(S!==4&&(S===27&&Dd(p.type)&&(v=p.stateNode,m=null),p=p.child,p!==null))for(nz(p,m,v),p=p.sibling;p!==null;)nz(p,m,v),p=p.sibling}function I_(p,m,v){var S=p.tag;if(S===5||S===6)p=p.stateNode,m?v.insertBefore(p,m):v.appendChild(p);else if(S!==4&&(S===27&&Dd(p.type)&&(v=p.stateNode),p=p.child,p!==null))for(I_(p,m,v),p=p.sibling;p!==null;)I_(p,m,v),p=p.sibling}function rge(p){var m=p.stateNode,v=p.memoizedProps;try{for(var S=p.type,$=m.attributes;$.length;)m.removeAttributeNode($[0]);Ro(m,S,v),m[Wr]=p,m[Vn]=v}catch(z){Cr(p,p.return,z)}}var eu=!1,Yn=!1,oz=!1,nge=typeof WeakSet=="function"?WeakSet:Set,mo=null;function Ywt(p,m){if(p=p.containerInfo,Sz=n6,p=mfe(p),ZM(p)){if("selectionStart"in p)var v={start:p.selectionStart,end:p.selectionEnd};else e:{v=(v=p.ownerDocument)&&v.defaultView||window;var S=v.getSelection&&v.getSelection();if(S&&S.rangeCount!==0){v=S.anchorNode;var $=S.anchorOffset,z=S.focusNode;S=S.focusOffset;try{v.nodeType,z.nodeType}catch{v=null;break e}var X=0,oe=-1,pe=-1,we=0,Ne=0,Pe=p,ke=null;t:for(;;){for(var Ce;Pe!==v||$!==0&&Pe.nodeType!==3||(oe=X+$),Pe!==z||S!==0&&Pe.nodeType!==3||(pe=X+S),Pe.nodeType===3&&(X+=Pe.nodeValue.length),(Ce=Pe.firstChild)!==null;)ke=Pe,Pe=Ce;for(;;){if(Pe===p)break t;if(ke===v&&++we===$&&(oe=X),ke===z&&++Ne===S&&(pe=X),(Ce=Pe.nextSibling)!==null)break;Pe=ke,ke=Pe.parentNode}Pe=Ce}v=oe===-1||pe===-1?null:{start:oe,end:pe}}else v=null}v=v||{start:0,end:0}}else v=null;for(Cz={focusedElem:p,selectionRange:v},n6=!1,mo=m;mo!==null;)if(m=mo,p=m.child,(m.subtreeFlags&1028)!==0&&p!==null)p.return=m,mo=p;else for(;mo!==null;){switch(m=mo,z=m.alternate,p=m.flags,m.tag){case 0:if((p&4)!==0&&(p=m.updateQueue,p=p!==null?p.events:null,p!==null))for(v=0;v title"))),Ro(z,S,v),z[Wr]=p,rn(z),S=z;break e;case"link":var X=c1e("link","href",$).get(S+(v.href||""));if(X){for(var oe=0;oeMr&&(X=Mr,Mr=At,At=X);var ye=hfe(oe,At),fe=hfe(oe,Mr);if(ye&&fe&&(Ce.rangeCount!==1||Ce.anchorNode!==ye.node||Ce.anchorOffset!==ye.offset||Ce.focusNode!==fe.node||Ce.focusOffset!==fe.offset)){var xe=Pe.createRange();xe.setStart(ye.node,ye.offset),Ce.removeAllRanges(),At>Mr?(Ce.addRange(xe),Ce.extend(fe.node,fe.offset)):(xe.setEnd(fe.node,fe.offset),Ce.addRange(xe))}}}}for(Pe=[],Ce=oe;Ce=Ce.parentNode;)Ce.nodeType===1&&Pe.push({element:Ce,left:Ce.scrollLeft,top:Ce.scrollTop});for(typeof oe.focus=="function"&&oe.focus(),oe=0;oev?32:v,I.T=null,v=dz,dz=null;var z=Ad,X=au;if(eo=0,o1=Ad=null,au=0,(wr&6)!==0)throw Error(o(331));var oe=wr;if(wr|=4,fge(z.current),dge(z,z.current,X,v),wr=oe,$v(0,!1),fr&&typeof fr.onPostCommitFiberRoot=="function")try{fr.onPostCommitFiberRoot(vr,z)}catch{}return!0}finally{H.p=$,I.T=S,$ge(p,m)}}function Pge(p,m,v){m=Vi(v,m),m=qP(p.stateNode,m,2),p=wd(p,m,2),p!==null&&(Ks(p,2),Xl(p))}function Cr(p,m,v){if(p.tag===3)Pge(p,p,v);else for(;m!==null;){if(m.tag===3){Pge(m,p,v);break}else if(m.tag===1){var S=m.stateNode;if(typeof m.type.getDerivedStateFromError=="function"||typeof S.componentDidCatch=="function"&&(Td===null||!Td.has(S))){p=Vi(v,p),v=zme(2),S=wd(m,v,2),S!==null&&(Ime(v,S,m,p),Ks(S,2),Xl(S));break}}m=m.return}}function mz(p,m,v){var S=p.pingCache;if(S===null){S=p.pingCache=new Kwt;var $=new Set;S.set(m,$)}else $=S.get(m),$===void 0&&($=new Set,S.set(m,$));$.has(v)||(sz=!0,$.add(v),p=t4t.bind(null,p,m,v),m.then(p,p))}function t4t(p,m,v){var S=p.pingCache;S!==null&&S.delete(m),p.pingedLanes|=p.suspendedLanes&v,p.warmLanes&=~v,Or===p&&(rr&v)===v&&(wn===4||wn===3&&(rr&62914560)===rr&&300>ut()-L_?(wr&2)===0&&a1(p,0):lz|=v,n1===rr&&(n1=0)),Xl(p)}function zge(p,m){m===0&&(m=jl()),p=Oh(p,m),p!==null&&(Ks(p,m),Xl(p))}function r4t(p){var m=p.memoizedState,v=0;m!==null&&(v=m.retryLane),zge(p,v)}function n4t(p,m){var v=0;switch(p.tag){case 31:case 13:var S=p.stateNode,$=p.memoizedState;$!==null&&(v=$.retryLane);break;case 19:S=p.stateNode;break;case 22:S=p.stateNode._retryCache;break;default:throw Error(o(314))}S!==null&&S.delete(m),zge(p,v)}function o4t(p,m){return Pt(p,m)}var W_=null,s1=null,gz=!1,Y_=!1,yz=!1,Nd=0;function Xl(p){p!==s1&&p.next===null&&(s1===null?W_=s1=p:s1=s1.next=p),Y_=!0,gz||(gz=!0,i4t())}function $v(p,m){if(!yz&&Y_){yz=!0;do for(var v=!1,S=W_;S!==null;){if(p!==0){var $=S.pendingLanes;if($===0)var z=0;else{var X=S.suspendedLanes,oe=S.pingedLanes;z=(1<<31-ir(42|p)+1)-1,z&=$&~(X&~oe),z=z&201326741?z&201326741|1:z?z|2:0}z!==0&&(v=!0,Lge(S,z))}else z=rr,z=Xs(S,S===Or?z:0,S.cancelPendingCommit!==null||S.timeoutHandle!==-1),(z&3)===0||fo(S,z)||(v=!0,Lge(S,z));S=S.next}while(v);yz=!1}}function a4t(){Ige()}function Ige(){Y_=gz=!1;var p=0;Nd!==0&&g4t()&&(p=Nd);for(var m=ut(),v=null,S=W_;S!==null;){var $=S.next,z=Oge(S,m);z===0?(S.next=null,v===null?W_=$:v.next=$,$===null&&(s1=v)):(v=S,(p!==0||(z&3)!==0)&&(Y_=!0)),S=$}eo!==0&&eo!==5||$v(p),Nd!==0&&(Nd=0)}function Oge(p,m){for(var v=p.suspendedLanes,S=p.pingedLanes,$=p.expirationTimes,z=p.pendingLanes&-62914561;0oe)break;var Ne=pe.transferSize,Pe=pe.initiatorType;Ne&&Yge(Pe)&&(pe=pe.responseEnd,X+=Ne*(pe"u"?null:document;function a1e(p,m,v){var S=l1;if(S&&typeof m=="string"&&m){var $=ee(m);$='link[rel="'+p+'"][href="'+$+'"]',typeof v=="string"&&($+='[crossorigin="'+v+'"]'),o1e.has($)||(o1e.add($),p={rel:p,crossOrigin:v,href:m},S.querySelector($)===null&&(m=S.createElement("link"),Ro(m,"link",p),rn(m),S.head.appendChild(m)))}}function S4t(p){iu.D(p),a1e("dns-prefetch",p,null)}function C4t(p,m){iu.C(p,m),a1e("preconnect",p,m)}function T4t(p,m,v){iu.L(p,m,v);var S=l1;if(S&&p&&m){var $='link[rel="preload"][as="'+ee(m)+'"]';m==="image"&&v&&v.imageSrcSet?($+='[imagesrcset="'+ee(v.imageSrcSet)+'"]',typeof v.imageSizes=="string"&&($+='[imagesizes="'+ee(v.imageSizes)+'"]')):$+='[href="'+ee(p)+'"]';var z=$;switch(m){case"style":z=c1(p);break;case"script":z=u1(p)}Xi.has(z)||(p=h({rel:"preload",href:m==="image"&&v&&v.imageSrcSet?void 0:p,as:m},v),Xi.set(z,p),S.querySelector($)!==null||m==="style"&&S.querySelector(Iv(z))||m==="script"&&S.querySelector(Ov(z))||(m=S.createElement("link"),Ro(m,"link",p),rn(m),S.head.appendChild(m)))}}function A4t(p,m){iu.m(p,m);var v=l1;if(v&&p){var S=m&&typeof m.as=="string"?m.as:"script",$='link[rel="modulepreload"][as="'+ee(S)+'"][href="'+ee(p)+'"]',z=$;switch(S){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":z=u1(p)}if(!Xi.has(z)&&(p=h({rel:"modulepreload",href:p},m),Xi.set(z,p),v.querySelector($)===null)){switch(S){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(v.querySelector(Ov(z)))return}S=v.createElement("link"),Ro(S,"link",p),rn(S),v.head.appendChild(S)}}}function R4t(p,m,v){iu.S(p,m,v);var S=l1;if(S&&p){var $=So(S).hoistableStyles,z=c1(p);m=m||"default";var X=$.get(z);if(!X){var oe={loading:0,preload:null};if(X=S.querySelector(Iv(z)))oe.loading=5;else{p=h({rel:"stylesheet",href:p,"data-precedence":m},v),(v=Xi.get(z))&&Mz(p,v);var pe=X=S.createElement("link");rn(pe),Ro(pe,"link",p),pe._p=new Promise(function(we,Ne){pe.onload=we,pe.onerror=Ne}),pe.addEventListener("load",function(){oe.loading|=1}),pe.addEventListener("error",function(){oe.loading|=2}),oe.loading|=4,Q_(X,m,S)}X={type:"stylesheet",instance:X,count:1,state:oe},$.set(z,X)}}}function N4t(p,m){iu.X(p,m);var v=l1;if(v&&p){var S=So(v).hoistableScripts,$=u1(p),z=S.get($);z||(z=v.querySelector(Ov($)),z||(p=h({src:p,async:!0},m),(m=Xi.get($))&&Pz(p,m),z=v.createElement("script"),rn(z),Ro(z,"link",p),v.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},S.set($,z))}}function D4t(p,m){iu.M(p,m);var v=l1;if(v&&p){var S=So(v).hoistableScripts,$=u1(p),z=S.get($);z||(z=v.querySelector(Ov($)),z||(p=h({src:p,async:!0,type:"module"},m),(m=Xi.get($))&&Pz(p,m),z=v.createElement("script"),rn(z),Ro(z,"link",p),v.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},S.set($,z))}}function i1e(p,m,v,S){var $=($=J.current)?Z_($):null;if(!$)throw Error(o(446));switch(p){case"meta":case"title":return null;case"style":return typeof v.precedence=="string"&&typeof v.href=="string"?(m=c1(v.href),v=So($).hoistableStyles,S=v.get(m),S||(S={type:"style",instance:null,count:0,state:null},v.set(m,S)),S):{type:"void",instance:null,count:0,state:null};case"link":if(v.rel==="stylesheet"&&typeof v.href=="string"&&typeof v.precedence=="string"){p=c1(v.href);var z=So($).hoistableStyles,X=z.get(p);if(X||($=$.ownerDocument||$,X={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},z.set(p,X),(z=$.querySelector(Iv(p)))&&!z._p&&(X.instance=z,X.state.loading=5),Xi.has(p)||(v={rel:"preload",as:"style",href:v.href,crossOrigin:v.crossOrigin,integrity:v.integrity,media:v.media,hrefLang:v.hrefLang,referrerPolicy:v.referrerPolicy},Xi.set(p,v),z||$4t($,p,v,X.state))),m&&S===null)throw Error(o(528,""));return X}if(m&&S!==null)throw Error(o(529,""));return null;case"script":return m=v.async,v=v.src,typeof v=="string"&&m&&typeof m!="function"&&typeof m!="symbol"?(m=u1(v),v=So($).hoistableScripts,S=v.get(m),S||(S={type:"script",instance:null,count:0,state:null},v.set(m,S)),S):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,p))}}function c1(p){return'href="'+ee(p)+'"'}function Iv(p){return'link[rel="stylesheet"]['+p+"]"}function s1e(p){return h({},p,{"data-precedence":p.precedence,precedence:null})}function $4t(p,m,v,S){p.querySelector('link[rel="preload"][as="style"]['+m+"]")?S.loading=1:(m=p.createElement("link"),S.preload=m,m.addEventListener("load",function(){return S.loading|=1}),m.addEventListener("error",function(){return S.loading|=2}),Ro(m,"link",v),rn(m),p.head.appendChild(m))}function u1(p){return'[src="'+ee(p)+'"]'}function Ov(p){return"script[async]"+p}function l1e(p,m,v){if(m.count++,m.instance===null)switch(m.type){case"style":var S=p.querySelector('style[data-href~="'+ee(v.href)+'"]');if(S)return m.instance=S,rn(S),S;var $=h({},v,{"data-href":v.href,"data-precedence":v.precedence,href:null,precedence:null});return S=(p.ownerDocument||p).createElement("style"),rn(S),Ro(S,"style",$),Q_(S,v.precedence,p),m.instance=S;case"stylesheet":$=c1(v.href);var z=p.querySelector(Iv($));if(z)return m.state.loading|=4,m.instance=z,rn(z),z;S=s1e(v),($=Xi.get($))&&Mz(S,$),z=(p.ownerDocument||p).createElement("link"),rn(z);var X=z;return X._p=new Promise(function(oe,pe){X.onload=oe,X.onerror=pe}),Ro(z,"link",S),m.state.loading|=4,Q_(z,v.precedence,p),m.instance=z;case"script":return z=u1(v.src),($=p.querySelector(Ov(z)))?(m.instance=$,rn($),$):(S=v,($=Xi.get(z))&&(S=h({},v),Pz(S,$)),p=p.ownerDocument||p,$=p.createElement("script"),rn($),Ro($,"link",S),p.head.appendChild($),m.instance=$);case"void":return null;default:throw Error(o(443,m.type))}else m.type==="stylesheet"&&(m.state.loading&4)===0&&(S=m.instance,m.state.loading|=4,Q_(S,v.precedence,p));return m.instance}function Q_(p,m,v){for(var S=v.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),$=S.length?S[S.length-1]:null,z=$,X=0;X title"):null)}function M4t(p,m,v){if(v===1||m.itemProp!=null)return!1;switch(p){case"meta":case"title":return!0;case"style":if(typeof m.precedence!="string"||typeof m.href!="string"||m.href==="")break;return!0;case"link":if(typeof m.rel!="string"||typeof m.href!="string"||m.href===""||m.onLoad||m.onError)break;switch(m.rel){case"stylesheet":return p=m.disabled,typeof m.precedence=="string"&&p==null;default:return!0}case"script":if(m.async&&typeof m.async!="function"&&typeof m.async!="symbol"&&!m.onLoad&&!m.onError&&m.src&&typeof m.src=="string")return!0}return!1}function d1e(p){return!(p.type==="stylesheet"&&(p.state.loading&3)===0)}function P4t(p,m,v,S){if(v.type==="stylesheet"&&(typeof S.media!="string"||matchMedia(S.media).matches!==!1)&&(v.state.loading&4)===0){if(v.instance===null){var $=c1(S.href),z=m.querySelector(Iv($));if(z){m=z._p,m!==null&&typeof m=="object"&&typeof m.then=="function"&&(p.count++,p=e6.bind(p),m.then(p,p)),v.state.loading|=4,v.instance=z,rn(z);return}z=m.ownerDocument||m,S=s1e(S),($=Xi.get($))&&Mz(S,$),z=z.createElement("link"),rn(z);var X=z;X._p=new Promise(function(oe,pe){X.onload=oe,X.onerror=pe}),Ro(z,"link",S),v.instance=z}p.stylesheets===null&&(p.stylesheets=new Map),p.stylesheets.set(v,m),(m=v.state.preload)&&(v.state.loading&3)===0&&(p.count++,v=e6.bind(p),m.addEventListener("load",v),m.addEventListener("error",v))}}var zz=0;function z4t(p,m){return p.stylesheets&&p.count===0&&r6(p,p.stylesheets),0zz?50:800)+m);return p.unsuspend=v,function(){p.unsuspend=null,clearTimeout(S),clearTimeout($)}}:null}function e6(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)r6(this,this.stylesheets);else if(this.unsuspend){var p=this.unsuspend;this.unsuspend=null,p()}}}var t6=null;function r6(p,m){p.stylesheets=null,p.unsuspend!==null&&(p.count++,t6=new Map,m.forEach(I4t,p),t6=null,e6.call(p))}function I4t(p,m){if(!(m.state.loading&4)){var v=t6.get(p);if(v)var S=v.get(null);else{v=new Map,t6.set(p,v);for(var $=p.querySelectorAll("link[data-precedence],style[data-precedence]"),z=0;z<$.length;z++){var X=$[z];(X.nodeName==="LINK"||X.getAttribute("media")!=="not all")&&(v.set(X.dataset.precedence,X),S=X)}S&&v.set(null,S)}$=m.instance,X=$.getAttribute("data-precedence"),z=v.get(X)||S,z===S&&v.set(null,$),v.set(X,$),this.count++,S=e6.bind(this),$.addEventListener("load",S),$.addEventListener("error",S),z?z.parentNode.insertBefore($,z.nextSibling):(p=p.nodeType===9?p.head:p,p.insertBefore($,p.firstChild)),m.state.loading|=4}}var jv={$$typeof:_,Provider:null,Consumer:null,_currentValue:q,_currentValue2:q,_threadCount:0};function O4t(p,m,v,S,$,z,X,oe,pe){this.tag=1,this.containerInfo=p,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Bc(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Bc(0),this.hiddenUpdates=Bc(null),this.identifierPrefix=S,this.onUncaughtError=$,this.onCaughtError=z,this.onRecoverableError=X,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=pe,this.incompleteTransitions=new Map}function p1e(p,m,v,S,$,z,X,oe,pe,we,Ne,Pe){return p=new O4t(p,m,v,X,pe,we,Ne,Pe,oe),m=1,z===!0&&(m|=24),z=ti(3,null,null,m),p.current=z,z.stateNode=p,m=fP(),m.refCount++,p.pooledCache=m,m.refCount++,z.memoizedState={element:S,isDehydrated:v,cache:m},bP(z),p}function h1e(p){return p?(p=Fg,p):Fg}function f1e(p,m,v,S,$,z){$=h1e($),S.context===null?S.context=$:S.pendingContext=$,S=xd(m),S.payload={element:v},z=z===void 0?null:z,z!==null&&(S.callback=z),v=wd(p,S,m),v!==null&&(Aa(v,p,m),gv(v,p,m))}function m1e(p,m){if(p=p.memoizedState,p!==null&&p.dehydrated!==null){var v=p.retryLane;p.retryLane=v!==0&&v"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(r){console.error(r)}}return e(),IR.exports=Tnt(),IR.exports}var Rnt=Ant();const Nnt={View:"likec4-view"};let LR="/";LR.endsWith("/")||(LR=LR+"/");var El=function(){return El=Object.assign||function(e){for(var r,n=1,o=arguments.length;n"u")return Ynt;var r=Gnt(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])}},Knt=Qne(),eg="data-scroll-locked",Znt=function(e,r,n,o){var a=e.left,i=e.top,s=e.right,l=e.gap;return n===void 0&&(n="margin"),` - .`.concat($nt,` { +Optionally we will have a WebUI/API/CLI`},technology:"OTC",title:"OTC EDP Foundry Central Service clusters",id:"otc-edpFoundry"},edgeProvider:{style:{icon:"tech:terraform"},kind:"paas",description:{txt:"Unlocks the terraform ecosystem"},title:"Terraform Edge provider",id:"edgeProvider"},edgeProviderHost:{style:{},kind:"environment",title:"OTC",id:"edgeProviderHost"},edgeSdk:{style:{icon:"tech:go"},kind:"paas",description:{txt:"Wrapper around API"},technology:"Cloud Services",title:"Edge Cloud SDK",id:"edgeSdk"},edgeCloud:{style:{},kind:"environment",title:"Edge cloud",id:"edgeCloud"},otcTenantProd:{style:{},kind:"environment",title:"Prod - builth.ing",id:"otcTenantProd"},otcTenantNonProd:{style:{},kind:"environment",title:"Non-Prod - t09.de",id:"otcTenantNonProd"},otcKubernetes:{style:{icon:"tech:kubernetes"},kind:"environment",description:{txt:"OTC Container Cluster Engine hosting EDP platform"},technology:"Kubernetes",title:"OTC Kubernetes",id:"otcKubernetes"},edgeConnectEnv:{style:{icon:"tech:docker"},kind:"environment",description:{txt:"Edge infrastructure for ephemeral runner deployment"},technology:"Edge Connect Platform",title:"Edge Connect",id:"edgeConnectEnv"},"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"},"edge.edge-dev":{style:{},kind:"environment",description:{txt:"Edge development environment"},technology:"Edge",title:"Edge Dev",id:"edge.edge-dev"},"edge.edge-prod":{style:{},kind:"environment",description:{txt:"Edge production environment"},technology:"Edge",title:"Edge Prod",id:"edge.edge-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"},"edgeProviderHost.edp":{style:{icon:"tech:git"},kind:"cluster",title:"Forgejo for all EDP-tenants",id:"edgeProviderHost.edp"},"edgeProviderHost.terralist":{style:{icon:"tech:terraform"},kind:"paas",description:{txt:"Terraform provider private hosting"},technology:"Cloud Services",title:"Terralist",id:"edgeProviderHost.terralist"},"edgeCloud.edgeApi":{style:{icon:"tech:swagger"},kind:"paas",technology:"Edge Cloud (managed)",links:[{url:"https://swagger.edge.platform.mg3.mdb.osc.live",title:"Documentation"}],title:"Edge Cloud API",id:"edgeCloud.edgeApi"},"edgeCloud.edgeResources":{style:{},kind:"paas",description:{txt:"App, AppInstance, etc."},technology:"Edge Cloud (managed)",title:"Edge Cloud Resources",id:"edgeCloud.edgeResources"},"otcTenantProd.otcTenantEdpBuildthing":{style:{icon:"tech:git"},kind:"cluster",description:{txt:"Primary Instance"},title:"edp.builth.ing",id:"otcTenantProd.otcTenantEdpBuildthing"},"otcTenantProd.otcTenantObservability":{style:{icon:"tech:git"},kind:"cluster",description:{txt:"Observability Instance"},title:"observability.builth.ing",id:"otcTenantProd.otcTenantObservability"},"otcTenantProd.otcTenantCustomerA":{style:{icon:"tech:git"},kind:"cluster",description:{txt:"Customer Instance"},title:"customer-a.builth.ing",id:"otcTenantProd.otcTenantCustomerA"},"otcTenantNonProd.otcTenantDev1":{style:{icon:"tech:git"},kind:"cluster",description:{txt:"Development Instance"},title:"dev1.t09.de",id:"otcTenantNonProd.otcTenantDev1"},"otcTenantNonProd.otcTenantTestX":{style:{icon:"tech:git"},kind:"cluster",description:{txt:"Testing Instance"},title:"test-x.t09.de",id:"otcTenantNonProd.otcTenantTestX"},"otcKubernetes.edpCluster":{style:{},kind:"cluster",description:{txt:"EDP platform cluster"},title:"EDP Cluster",id:"otcKubernetes.edpCluster"},"edgeConnectEnv.runnerInfrastructure":{style:{},kind:"computeressource",description:{txt:"Dynamically provisioned runner instances"},title:"Runner Infrastructure",id:"edgeConnectEnv.runnerInfrastructure"},"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:{}},"edgeProviderHost.edp.forgejo":{id:"edgeProviderHost.edp.forgejo",element:"edp.forgejo",title:"Forgejo for all EDP-tenants",description:{txt:"edp.buildth.ing"},style:{}},"otcKubernetes.edpCluster.forgejo":{id:"otcKubernetes.edpCluster.forgejo",element:"edp.forgejo",description:{txt:"Forgejo - Git platform with Actions"},style:{}},"otcKubernetes.edpCluster.forgejoActions":{id:"otcKubernetes.edpCluster.forgejoActions",element:"edp.forgejoActions",description:{txt:"CI/CD orchestration for Forgejo"},style:{}},"otcKubernetes.edpCluster.garmContainer":{id:"otcKubernetes.edpCluster.garmContainer",element:"edp.garm",description:{txt:"GARM container with runner orchestration"},style:{}},"otcKubernetes.edpCluster.edpCluster":{style:{},kind:"environment",technology:"Kubernetes",title:"GARM pod",id:"otcKubernetes.edpCluster.edpCluster"},"edgeConnectEnv.runnerInfrastructure.forgejoRunner":{id:"edgeConnectEnv.runnerInfrastructure.forgejoRunner",element:"forgejoRunner",description:{txt:"Ephemeral Forgejo Actions runner"},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-edp-per-tenant.cce.edp.garm":{id:"otc-edp-per-tenant.cce.edp.garm",element:"edp.garm",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:{}},"otcKubernetes.edpCluster.edpCluster.garmService":{id:"otcKubernetes.edpCluster.edpCluster.garmService",element:"edp.garm.garm",description:{txt:"GARM - Runner lifecycle manager"},style:{}},"otcKubernetes.edpCluster.edpCluster.providerEdgeConnect":{id:"otcKubernetes.edpCluster.edpCluster.providerEdgeConnect",element:"edp.garm.providerEdgeConnect",description:{txt:"GARM Provider for Edge Connect"},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"},"1wlvsb5":{title:"built using",source:{deployment:"edgeProvider"},target:{deployment:"edgeSdk"},id:"1wlvsb5"},"1mpjz5d":{title:"published to",source:{deployment:"edgeProvider"},target:{deployment:"edgeProviderHost.terralist"},id:"1mpjz5d"},"12ssq9":{title:"hosted on",source:{deployment:"edgeProvider"},target:{deployment:"edgeProviderHost.edp"},id:"12ssq9"},vfhcba:{title:"calls",source:{deployment:"edgeSdk"},target:{deployment:"edgeCloud.edgeApi"},id:"vfhcba"},"1sm6ifh":{title:"hosted on",source:{deployment:"edgeSdk"},target:{deployment:"edgeProviderHost.edp"},id:"1sm6ifh"},"1q6ftvm":{title:"authenticates via",source:{deployment:"edgeProviderHost.terralist"},target:{deployment:"edgeProviderHost.edp"},id:"1q6ftvm"},rr0lcz:{title:"creates/destroys",source:{deployment:"edgeCloud.edgeApi"},target:{deployment:"edgeCloud.edgeResources"},id:"rr0lcz"},"1fxu52d":{title:"deploys",source:{deployment:"otcTenantProd.otcTenantEdpBuildthing"},target:{deployment:"otcTenantProd.otcTenantObservability"},id:"1fxu52d"},"6gfo3g":{title:"deploys",source:{deployment:"otcTenantProd.otcTenantEdpBuildthing"},target:{deployment:"otcTenantProd.otcTenantCustomerA"},id:"6gfo3g"},s1ie0n:{title:"deploys",source:{deployment:"otcTenantProd.otcTenantEdpBuildthing"},target:{deployment:"otcTenantNonProd.otcTenantDev1"},id:"s1ie0n"},"77azfi":{title:"deploys",source:{deployment:"otcTenantProd.otcTenantEdpBuildthing"},target:{deployment:"otcTenantNonProd.otcTenantTestX"},id:"77azfi"},"1k6h7jf":{title:"registers with and picks up jobs",source:{deployment:"edgeConnectEnv.runnerInfrastructure.forgejoRunner"},target:{deployment:"otcKubernetes.edpCluster.forgejo"},id:"1k6h7jf"},"15ss7lz":{title:"retrieves bootstrap information",source:{deployment:"edgeConnectEnv.runnerInfrastructure.forgejoRunner"},target:{deployment:"otcKubernetes.edpCluster.edpCluster.garmService"},id:"15ss7lz"}}},imports:{}}),{useLikeC4Model:KJe}=YJe(XJe);function ZJe({children:e}){const r=KJe();return y.jsx(YQe,{likec4model:r,children:e})}function QJe(e){return y.jsx(ZJe,{children:y.jsx(mJe,{renderIcon:MJe,...e})})}var $z={exports:{}},T0={},Rz={exports:{}},zz={};var one;function JJe(){return one||(one=1,(function(e){function r(B,F){var q=B.length;B.push(F);e:for(;0>>1,U=B[G];if(0>>1;Gi(O,q))Wi(Z,O)?(B[G]=Z,B[W]=q,G=W):(B[G]=O,B[K]=q,G=K);else if(Wi(Z,q))B[G]=Z,B[W]=q,G=W;else break e}}return F}function i(B,F){var q=B.sortIndex-F.sortIndex;return q!==0?q:B.id-F.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var l=Date,s=l.now();e.unstable_now=function(){return l.now()-s}}var c=[],d=[],u=1,p=null,f=3,m=!1,v=!1,w=!1,x=!1,k=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate<"u"?setImmediate:null;function $(B){for(var F=n(d);F!==null;){if(F.callback===null)o(d);else if(F.startTime<=B)o(d),F.sortIndex=F.expirationTime,r(c,F);else break;F=n(d)}}function R(B){if(w=!1,$(B),!v)if(n(c)!==null)v=!0,T||(T=!0,L());else{var F=n(d);F!==null&&V(R,F.startTime-B)}}var T=!1,A=-1,z=5,j=-1;function I(){return x?!0:!(e.unstable_now()-jB&&I());){var G=p.callback;if(typeof G=="function"){p.callback=null,f=p.priorityLevel;var U=G(p.expirationTime<=B);if(B=e.unstable_now(),typeof U=="function"){p.callback=U,$(B),F=!0;break t}p===n(c)&&o(c),$(B)}else o(c);p=n(c)}if(p!==null)F=!0;else{var Y=n(d);Y!==null&&V(R,Y.startTime-B),F=!1}}break e}finally{p=null,f=q,m=!1}F=void 0}}finally{F?L():T=!1}}}var L;if(typeof _=="function")L=function(){_(N)};else if(typeof MessageChannel<"u"){var H=new MessageChannel,P=H.port2;H.port1.onmessage=N,L=function(){P.postMessage(null)}}else L=function(){k(N,0)};function V(B,F){A=k(function(){B(e.unstable_now())},F)}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(B){B.callback=null},e.unstable_forceFrameRate=function(B){0>B||125G?(B.sortIndex=q,r(d,B),n(c)===null&&B===n(d)&&(w?(C(A),A=-1):w=!0,V(R,q-G))):(B.sortIndex=U,r(c,B),v||m||(v=!0,T||(T=!0,L()))),B},e.unstable_shouldYield=I,e.unstable_wrapCallback=function(B){var F=f;return function(){var q=f;f=F;try{return B.apply(this,arguments)}finally{f=q}}}})(zz)),zz}var ine;function eet(){return ine||(ine=1,Rz.exports=JJe()),Rz.exports}var ane;function tet(){if(ane)return T0;ane=1;var e=eet(),r=Z6(),n=GM();function o(h){var g="https://react.dev/errors/"+h;if(1U||(h.current=G[U],G[U]=null,U--)}function O(h,g){U++,G[U]=h.current,h.current=g}var W=Y(null),Z=Y(null),Q=Y(null),ie=Y(null);function te(h,g){switch(O(Q,g),O(Z,h),O(W,null),g.nodeType){case 9:case 11:h=(h=g.documentElement)&&(h=h.namespaceURI)?cme(h):0;break;default:if(h=g.tagName,g=g.namespaceURI)g=cme(g),h=dme(g,h);else switch(h){case"svg":h=1;break;case"math":h=2;break;default:h=0}}K(W),O(W,h)}function re(){K(W),K(Z),K(Q)}function ue(h){h.memoizedState!==null&&O(ie,h);var g=W.current,b=dme(g,h.type);g!==b&&(O(Z,h),O(W,b))}function _e(h){Z.current===h&&(K(W),K(Z)),ie.current===h&&(K(ie),pb._currentValue=q)}var ce,pe;function xe(h){if(ce===void 0)try{throw Error()}catch(b){var g=b.stack.trim().match(/\n( *(at )?)/);ce=g&&g[1]||"",pe=-1)":-1D||se[E]!==me[D]){var Ee=` +`+se[E].replace(" at new "," at ");return h.displayName&&Ee.includes("")&&(Ee=Ee.replace("",h.displayName)),Ee}while(1<=E&&0<=D);break}}}finally{je=!1,Error.prepareStackTrace=b}return(b=h?h.displayName||h.name:"")?xe(b):""}function Je(h,g){switch(h.tag){case 26:case 27:case 5:return xe(h.type);case 16:return xe("Lazy");case 13:return h.child!==g&&g!==null?xe("Suspense Fallback"):xe("Suspense");case 19:return xe("SuspenseList");case 0:case 15:return Be(h.type,!1);case 11:return Be(h.type.render,!1);case 1:return Be(h.type,!0);case 31:return xe("Activity");default:return""}}function st(h){try{var g="",b=null;do g+=Je(h,b),b=h,h=h.return;while(h);return g}catch(E){return` +Error generating stack: `+E.message+` +`+E.stack}}var Le=Object.prototype.hasOwnProperty,St=e.unstable_scheduleCallback,Ve=e.unstable_cancelCallback,qe=e.unstable_shouldYield,Xe=e.unstable_requestPaint,It=e.unstable_now,Et=e.unstable_getCurrentPriorityLevel,be=e.unstable_ImmediatePriority,ke=e.unstable_UserBlockingPriority,Ye=e.unstable_NormalPriority,yt=e.unstable_LowPriority,xt=e.unstable_IdlePriority,Tr=e.log,er=e.unstable_setDisableYieldValue,qt=null,Ht=null;function Kr(h){if(typeof Tr=="function"&&er(h),Ht&&typeof Ht.setStrictMode=="function")try{Ht.setStrictMode(qt,h)}catch{}}var Gt=Math.clz32?Math.clz32:fn,ln=Math.log,Wn=Math.LN2;function fn(h){return h>>>=0,h===0?32:31-(ln(h)/Wn|0)|0}var oo=256,Yo=262144,jo=4194304;function ui(h){var g=h&42;if(g!==0)return g;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:return h&261888;case 262144:case 524288:case 1048576:case 2097152:return h&3932160;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 Dl(h,g,b){var E=h.pendingLanes;if(E===0)return 0;var D=0,M=h.suspendedLanes,X=h.pingedLanes;h=h.warmLanes;var ne=E&134217727;return ne!==0?(E=ne&~M,E!==0?D=ui(E):(X&=ne,X!==0?D=ui(X):b||(b=ne&~h,b!==0&&(D=ui(b))))):(ne=E&~M,ne!==0?D=ui(ne):X!==0?D=ui(X):b||(b=E&~h,b!==0&&(D=ui(b)))),D===0?0:g!==0&&g!==D&&(g&M)===0&&(M=D&-D,b=g&-g,M>=b||M===32&&(b&4194048)!==0)?g:D}function Ao(h,g){return(h.pendingLanes&~(h.suspendedLanes&~h.pingedLanes)&g)===0}function xs(h,g){switch(h){case 1:case 2:case 4:case 8:case 64:return g+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 g+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 ws(){var h=jo;return jo<<=1,(jo&62914560)===0&&(jo=4194304),h}function zc(h){for(var g=[],b=0;31>b;b++)g.push(h);return g}function Pl(h,g){h.pendingLanes|=g,g!==268435456&&(h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0)}function lh(h,g,b,E,D,M){var X=h.pendingLanes;h.pendingLanes=b,h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0,h.expiredLanes&=b,h.entangledLanes&=b,h.errorRecoveryDisabledLanes&=b,h.shellSuspendCounter=0;var ne=h.entanglements,se=h.expirationTimes,me=h.hiddenUpdates;for(b=X&~b;0"u")return null;try{return h.activeElement||h.body}catch{return h.body}}var lu=/[\n"\\]/g;function J(h){return h.replace(lu,function(g){return"\\"+g.charCodeAt(0).toString(16)+" "})}function ee(h,g,b,E,D,M,X,ne){h.name="",X!=null&&typeof X!="function"&&typeof X!="symbol"&&typeof X!="boolean"?h.type=X:h.removeAttribute("type"),g!=null?X==="number"?(g===0&&h.value===""||h.value!=g)&&(h.value=""+Gr(g)):h.value!==""+Gr(g)&&(h.value=""+Gr(g)):X!=="submit"&&X!=="reset"||h.removeAttribute("value"),g!=null?ae(h,X,Gr(g)):b!=null?ae(h,X,Gr(b)):E!=null&&h.removeAttribute("value"),D==null&&M!=null&&(h.defaultChecked=!!M),D!=null&&(h.checked=D&&typeof D!="function"&&typeof D!="symbol"),ne!=null&&typeof ne!="function"&&typeof ne!="symbol"&&typeof ne!="boolean"?h.name=""+Gr(ne):h.removeAttribute("name")}function oe(h,g,b,E,D,M,X,ne){if(M!=null&&typeof M!="function"&&typeof M!="symbol"&&typeof M!="boolean"&&(h.type=M),g!=null||b!=null){if(!(M!=="submit"&&M!=="reset"||g!=null)){Aa(h);return}b=b!=null?""+Gr(b):"",g=g!=null?""+Gr(g):b,ne||g===h.value||(h.value=g),h.defaultValue=g}E=E??D,E=typeof E!="function"&&typeof E!="symbol"&&!!E,h.checked=ne?h.checked:!!E,h.defaultChecked=!!E,X!=null&&typeof X!="function"&&typeof X!="symbol"&&typeof X!="boolean"&&(h.name=X),Aa(h)}function ae(h,g,b){g==="number"&&Da(h.ownerDocument)===h||h.defaultValue===""+b||(h.defaultValue=""+b)}function le(h,g,b,E){if(h=h.options,g){g={};for(var D=0;D"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),OD=!1;if(Pc)try{var Tv={};Object.defineProperty(Tv,"passive",{get:function(){OD=!0}}),window.addEventListener("test",Tv,Tv),window.removeEventListener("test",Tv,Tv)}catch{OD=!1}var cu=null,LD=null,Lk=null;function dhe(){if(Lk)return Lk;var h,g=LD,b=g.length,E,D="value"in cu?cu.value:cu.textContent,M=D.length;for(h=0;h=Dv),mhe=" ",yhe=!1;function vhe(h,g){switch(h){case"keyup":return Kbt.indexOf(g.keyCode)!==-1;case"keydown":return g.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function bhe(h){return h=h.detail,typeof h=="object"&&"data"in h?h.data:null}var xm=!1;function Qbt(h,g){switch(h){case"compositionend":return bhe(g);case"keypress":return g.which!==32?null:(yhe=!0,mhe);case"textInput":return h=g.data,h===mhe&&yhe?null:h;default:return null}}function Jbt(h,g){if(xm)return h==="compositionend"||!UD&&vhe(h,g)?(h=dhe(),Lk=LD=cu=null,xm=!1,h):null;switch(h){case"paste":return null;case"keypress":if(!(g.ctrlKey||g.altKey||g.metaKey)||g.ctrlKey&&g.altKey){if(g.char&&1=g)return{node:b,offset:g-h};h=E}e:{for(;b;){if(b.nextSibling){b=b.nextSibling;break e}b=b.parentNode}b=void 0}b=$he(b)}}function zhe(h,g){return h&&g?h===g?!0:h&&h.nodeType===3?!1:g&&g.nodeType===3?zhe(h,g.parentNode):"contains"in h?h.contains(g):h.compareDocumentPosition?!!(h.compareDocumentPosition(g)&16):!1:!1}function The(h){h=h!=null&&h.ownerDocument!=null&&h.ownerDocument.defaultView!=null?h.ownerDocument.defaultView:window;for(var g=Da(h.document);g instanceof h.HTMLIFrameElement;){try{var b=typeof g.contentWindow.location.href=="string"}catch{b=!1}if(b)h=g.contentWindow;else break;g=Da(h.document)}return g}function YD(h){var g=h&&h.nodeName&&h.nodeName.toLowerCase();return g&&(g==="input"&&(h.type==="text"||h.type==="search"||h.type==="tel"||h.type==="url"||h.type==="password")||g==="textarea"||h.contentEditable==="true")}var lxt=Pc&&"documentMode"in document&&11>=document.documentMode,wm=null,XD=null,Bv=null,KD=!1;function jhe(h,g,b){var E=b.window===b?b.document:b.nodeType===9?b:b.ownerDocument;KD||wm==null||wm!==Da(E)||(E=wm,"selectionStart"in E&&YD(E)?E={start:E.selectionStart,end:E.selectionEnd}:(E=(E.ownerDocument&&E.ownerDocument.defaultView||window).getSelection(),E={anchorNode:E.anchorNode,anchorOffset:E.anchorOffset,focusNode:E.focusNode,focusOffset:E.focusOffset}),Bv&&Nv(Bv,E)||(Bv=E,E=D6(XD,"onSelect"),0>=X,D-=X,Rs=1<<32-Gt(g)+D|b<Nt?(Xt=nt,nt=null):Xt=nt.sibling;var ir=ye(he,nt,ge[Nt],Ce);if(ir===null){nt===null&&(nt=Xt);break}h&&nt&&ir.alternate===null&&g(he,nt),de=M(ir,de,Nt),or===null?ct=ir:or.sibling=ir,or=ir,nt=Xt}if(Nt===ge.length)return b(he,nt),Kt&&Nc(he,Nt),ct;if(nt===null){for(;NtNt?(Xt=nt,nt=null):Xt=nt.sibling;var ju=ye(he,nt,ir.value,Ce);if(ju===null){nt===null&&(nt=Xt);break}h&&nt&&ju.alternate===null&&g(he,nt),de=M(ju,de,Nt),or===null?ct=ju:or.sibling=ju,or=ju,nt=Xt}if(ir.done)return b(he,nt),Kt&&Nc(he,Nt),ct;if(nt===null){for(;!ir.done;Nt++,ir=ge.next())ir=Re(he,ir.value,Ce),ir!==null&&(de=M(ir,de,Nt),or===null?ct=ir:or.sibling=ir,or=ir);return Kt&&Nc(he,Nt),ct}for(nt=E(nt);!ir.done;Nt++,ir=ge.next())ir=we(nt,he,Nt,ir.value,Ce),ir!==null&&(h&&ir.alternate!==null&&nt.delete(ir.key===null?Nt:ir.key),de=M(ir,de,Nt),or===null?ct=ir:or.sibling=ir,or=ir);return h&&nt.forEach(function($wt){return g(he,$wt)}),Kt&&Nc(he,Nt),ct}function _r(he,de,ge,Ce){if(typeof ge=="object"&&ge!==null&&ge.type===w&&ge.key===null&&(ge=ge.props.children),typeof ge=="object"&&ge!==null){switch(ge.$$typeof){case m:e:{for(var ct=ge.key;de!==null;){if(de.key===ct){if(ct=ge.type,ct===w){if(de.tag===7){b(he,de.sibling),Ce=D(de,ge.props.children),Ce.return=he,he=Ce;break e}}else if(de.elementType===ct||typeof ct=="object"&&ct!==null&&ct.$$typeof===z&&wh(ct)===de.type){b(he,de.sibling),Ce=D(de,ge.props),qv(Ce,ge),Ce.return=he,he=Ce;break e}b(he,de);break}else g(he,de);de=de.sibling}ge.type===w?(Ce=mh(ge.props.children,he.mode,Ce,ge.key),Ce.return=he,he=Ce):(Ce=Kk(ge.type,ge.key,ge.props,null,he.mode,Ce),qv(Ce,ge),Ce.return=he,he=Ce)}return X(he);case v:e:{for(ct=ge.key;de!==null;){if(de.key===ct)if(de.tag===4&&de.stateNode.containerInfo===ge.containerInfo&&de.stateNode.implementation===ge.implementation){b(he,de.sibling),Ce=D(de,ge.children||[]),Ce.return=he,he=Ce;break e}else{b(he,de);break}else g(he,de);de=de.sibling}Ce=nP(ge,he.mode,Ce),Ce.return=he,he=Ce}return X(he);case z:return ge=wh(ge),_r(he,de,ge,Ce)}if(V(ge))return et(he,de,ge,Ce);if(L(ge)){if(ct=L(ge),typeof ct!="function")throw Error(o(150));return ge=ct.call(ge),bt(he,de,ge,Ce)}if(typeof ge.then=="function")return _r(he,de,n6(ge),Ce);if(ge.$$typeof===_)return _r(he,de,Jk(he,ge),Ce);o6(he,ge)}return typeof ge=="string"&&ge!==""||typeof ge=="number"||typeof ge=="bigint"?(ge=""+ge,de!==null&&de.tag===6?(b(he,de.sibling),Ce=D(de,ge),Ce.return=he,he=Ce):(b(he,de),Ce=rP(ge,he.mode,Ce),Ce.return=he,he=Ce),X(he)):b(he,de)}return function(he,de,ge,Ce){try{Vv=0;var ct=_r(he,de,ge,Ce);return Am=null,ct}catch(nt){if(nt===jm||nt===t6)throw nt;var or=Hi(29,nt,null,he.mode);return or.lanes=Ce,or.return=he,or}}}var _h=efe(!0),tfe=efe(!1),fu=!1;function gP(h){h.updateQueue={baseState:h.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function mP(h,g){h=h.updateQueue,g.updateQueue===h&&(g.updateQueue={baseState:h.baseState,firstBaseUpdate:h.firstBaseUpdate,lastBaseUpdate:h.lastBaseUpdate,shared:h.shared,callbacks:null})}function gu(h){return{lane:h,tag:0,payload:null,callback:null,next:null}}function mu(h,g,b){var E=h.updateQueue;if(E===null)return null;if(E=E.shared,(cr&2)!==0){var D=E.pending;return D===null?g.next=g:(g.next=D.next,D.next=g),E.pending=g,g=Xk(h),Ihe(h,null,b),g}return Yk(h,E,g,b),Xk(h)}function Hv(h,g,b){if(g=g.updateQueue,g!==null&&(g=g.shared,(b&4194048)!==0)){var E=g.lanes;E&=h.pendingLanes,b|=E,g.lanes=b,tu(h,b)}}function yP(h,g){var b=h.updateQueue,E=h.alternate;if(E!==null&&(E=E.updateQueue,b===E)){var D=null,M=null;if(b=b.firstBaseUpdate,b!==null){do{var X={lane:b.lane,tag:b.tag,payload:b.payload,callback:null,next:null};M===null?D=M=X:M=M.next=X,b=b.next}while(b!==null);M===null?D=M=g:M=M.next=g}else D=M=g;b={baseState:E.baseState,firstBaseUpdate:D,lastBaseUpdate:M,shared:E.shared,callbacks:E.callbacks},h.updateQueue=b;return}h=b.lastBaseUpdate,h===null?b.firstBaseUpdate=g:h.next=g,b.lastBaseUpdate=g}var vP=!1;function Uv(){if(vP){var h=Tm;if(h!==null)throw h}}function Wv(h,g,b,E){vP=!1;var D=h.updateQueue;fu=!1;var M=D.firstBaseUpdate,X=D.lastBaseUpdate,ne=D.shared.pending;if(ne!==null){D.shared.pending=null;var se=ne,me=se.next;se.next=null,X===null?M=me:X.next=me,X=se;var Ee=h.alternate;Ee!==null&&(Ee=Ee.updateQueue,ne=Ee.lastBaseUpdate,ne!==X&&(ne===null?Ee.firstBaseUpdate=me:ne.next=me,Ee.lastBaseUpdate=se))}if(M!==null){var Re=D.baseState;X=0,Ee=me=se=null,ne=M;do{var ye=ne.lane&-536870913,we=ye!==ne.lane;if(we?(Yt&ye)===ye:(E&ye)===ye){ye!==0&&ye===zm&&(vP=!0),Ee!==null&&(Ee=Ee.next={lane:0,tag:ne.tag,payload:ne.payload,callback:null,next:null});e:{var et=h,bt=ne;ye=g;var _r=b;switch(bt.tag){case 1:if(et=bt.payload,typeof et=="function"){Re=et.call(_r,Re,ye);break e}Re=et;break e;case 3:et.flags=et.flags&-65537|128;case 0:if(et=bt.payload,ye=typeof et=="function"?et.call(_r,Re,ye):et,ye==null)break e;Re=p({},Re,ye);break e;case 2:fu=!0}}ye=ne.callback,ye!==null&&(h.flags|=64,we&&(h.flags|=8192),we=D.callbacks,we===null?D.callbacks=[ye]:we.push(ye))}else we={lane:ye,tag:ne.tag,payload:ne.payload,callback:ne.callback,next:null},Ee===null?(me=Ee=we,se=Re):Ee=Ee.next=we,X|=ye;if(ne=ne.next,ne===null){if(ne=D.shared.pending,ne===null)break;we=ne,ne=we.next,we.next=null,D.lastBaseUpdate=we,D.shared.pending=null}}while(!0);Ee===null&&(se=Re),D.baseState=se,D.firstBaseUpdate=me,D.lastBaseUpdate=Ee,M===null&&(D.shared.lanes=0),wu|=X,h.lanes=X,h.memoizedState=Re}}function rfe(h,g){if(typeof h!="function")throw Error(o(191,h));h.call(g)}function nfe(h,g){var b=h.callbacks;if(b!==null)for(h.callbacks=null,h=0;hM?M:8;var X=B.T,ne={};B.T=ne,BP(h,!1,g,b);try{var se=D(),me=B.S;if(me!==null&&me(ne,se),se!==null&&typeof se=="object"&&typeof se.then=="function"){var Ee=mxt(se,E);Xv(h,g,Ee,Xi(h))}else Xv(h,g,E,Xi(h))}catch(Re){Xv(h,g,{then:function(){},status:"rejected",reason:Re},Xi())}finally{F.p=M,X!==null&&ne.types!==null&&(X.types=ne.types),B.T=X}}function kxt(){}function MP(h,g,b,E){if(h.tag!==5)throw Error(o(476));var D=Mfe(h).queue;Pfe(h,D,g,q,b===null?kxt:function(){return Nfe(h),b(E)})}function Mfe(h){var g=h.memoizedState;if(g!==null)return g;g={memoizedState:q,baseState:q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lc,lastRenderedState:q},next:null};var b={};return g.next={memoizedState:b,baseState:b,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Lc,lastRenderedState:b},next:null},h.memoizedState=g,h=h.alternate,h!==null&&(h.memoizedState=g),g}function Nfe(h){var g=Mfe(h);g.next===null&&(g=h.alternate.memoizedState),Xv(h,g.next.queue,{},Xi())}function NP(){return go(pb)}function Bfe(){return mn().memoizedState}function Ife(){return mn().memoizedState}function _xt(h){for(var g=h.return;g!==null;){switch(g.tag){case 24:case 3:var b=Xi();h=gu(b);var E=mu(g,h,b);E!==null&&(vi(E,g,b),Hv(E,g,b)),g={cache:uP()},h.payload=g;return}g=g.return}}function Sxt(h,g,b){var E=Xi();b={lane:E,revertLane:0,gesture:null,action:b,hasEagerState:!1,eagerState:null,next:null},f6(h)?Lfe(g,b):(b=eP(h,g,b,E),b!==null&&(vi(b,h,E),Ffe(b,g,E)))}function Ofe(h,g,b){var E=Xi();Xv(h,g,b,E)}function Xv(h,g,b,E){var D={lane:E,revertLane:0,gesture:null,action:b,hasEagerState:!1,eagerState:null,next:null};if(f6(h))Lfe(g,D);else{var M=h.alternate;if(h.lanes===0&&(M===null||M.lanes===0)&&(M=g.lastRenderedReducer,M!==null))try{var X=g.lastRenderedState,ne=M(X,b);if(D.hasEagerState=!0,D.eagerState=ne,qi(ne,X))return Yk(h,g,D,0),Er===null&&Gk(),!1}catch{}if(b=eP(h,g,D,E),b!==null)return vi(b,h,E),Ffe(b,g,E),!0}return!1}function BP(h,g,b,E){if(E={lane:2,revertLane:gM(),gesture:null,action:E,hasEagerState:!1,eagerState:null,next:null},f6(h)){if(g)throw Error(o(479))}else g=eP(h,b,E,2),g!==null&&vi(g,h,2)}function f6(h){var g=h.alternate;return h===Pt||g!==null&&g===Pt}function Lfe(h,g){Pm=l6=!0;var b=h.pending;b===null?g.next=g:(g.next=b.next,b.next=g),h.pending=g}function Ffe(h,g,b){if((b&4194048)!==0){var E=g.lanes;E&=h.pendingLanes,b|=E,g.lanes=b,tu(h,b)}}var Kv={readContext:go,use:d6,useCallback:sn,useContext:sn,useEffect:sn,useImperativeHandle:sn,useLayoutEffect:sn,useInsertionEffect:sn,useMemo:sn,useReducer:sn,useRef:sn,useState:sn,useDebugValue:sn,useDeferredValue:sn,useTransition:sn,useSyncExternalStore:sn,useId:sn,useHostTransitionStatus:sn,useFormState:sn,useActionState:sn,useOptimistic:sn,useMemoCache:sn,useCacheRefresh:sn};Kv.useEffectEvent=sn;var Vfe={readContext:go,use:d6,useCallback:function(h,g){return Zo().memoizedState=[h,g===void 0?null:g],h},useContext:go,useEffect:Efe,useImperativeHandle:function(h,g,b){b=b!=null?b.concat([h]):null,p6(4194308,4,zfe.bind(null,g,h),b)},useLayoutEffect:function(h,g){return p6(4194308,4,h,g)},useInsertionEffect:function(h,g){p6(4,2,h,g)},useMemo:function(h,g){var b=Zo();g=g===void 0?null:g;var E=h();if(Sh){Kr(!0);try{h()}finally{Kr(!1)}}return b.memoizedState=[E,g],E},useReducer:function(h,g,b){var E=Zo();if(b!==void 0){var D=b(g);if(Sh){Kr(!0);try{b(g)}finally{Kr(!1)}}}else D=g;return E.memoizedState=E.baseState=D,h={pending:null,lanes:0,dispatch:null,lastRenderedReducer:h,lastRenderedState:D},E.queue=h,h=h.dispatch=Sxt.bind(null,Pt,h),[E.memoizedState,h]},useRef:function(h){var g=Zo();return h={current:h},g.memoizedState=h},useState:function(h){h=TP(h);var g=h.queue,b=Ofe.bind(null,Pt,g);return g.dispatch=b,[h.memoizedState,b]},useDebugValue:DP,useDeferredValue:function(h,g){var b=Zo();return PP(b,h,g)},useTransition:function(){var h=TP(!1);return h=Pfe.bind(null,Pt,h.queue,!0,!1),Zo().memoizedState=h,[!1,h]},useSyncExternalStore:function(h,g,b){var E=Pt,D=Zo();if(Kt){if(b===void 0)throw Error(o(407));b=b()}else{if(b=g(),Er===null)throw Error(o(349));(Yt&127)!==0||cfe(E,g,b)}D.memoizedState=b;var M={value:b,getSnapshot:g};return D.queue=M,Efe(ufe.bind(null,E,M,h),[h]),E.flags|=2048,Nm(9,{destroy:void 0},dfe.bind(null,E,M,b,g),null),b},useId:function(){var h=Zo(),g=Er.identifierPrefix;if(Kt){var b=zs,E=Rs;b=(E&~(1<<32-Gt(E)-1)).toString(32)+b,g="_"+g+"R_"+b,b=s6++,0<\/script>",M=M.removeChild(M.firstChild);break;case"select":M=typeof E.is=="string"?X.createElement("select",{is:E.is}):X.createElement("select"),E.multiple?M.multiple=!0:E.size&&(M.size=E.size);break;default:M=typeof E.is=="string"?X.createElement(D,{is:E.is}):X.createElement(D)}}M[Mr]=g,M[Pn]=E;e:for(X=g.child;X!==null;){if(X.tag===5||X.tag===6)M.appendChild(X.stateNode);else if(X.tag!==4&&X.tag!==27&&X.child!==null){X.child.return=X,X=X.child;continue}if(X===g)break e;for(;X.sibling===null;){if(X.return===null||X.return===g)break e;X=X.return}X.sibling.return=X.return,X=X.sibling}g.stateNode=M;e:switch(yo(M,D,E),D){case"button":case"input":case"select":case"textarea":E=!!E.autoFocus;break e;case"img":E=!0;break e;default:E=!1}E&&Vc(g)}}return Br(g),ZP(g,g.type,h===null?null:h.memoizedProps,g.pendingProps,b),null;case 6:if(h&&g.stateNode!=null)h.memoizedProps!==E&&Vc(g);else{if(typeof E!="string"&&g.stateNode===null)throw Error(o(166));if(h=Q.current,$m(g)){if(h=g.stateNode,b=g.memoizedProps,E=null,D=fo,D!==null)switch(D.tag){case 27:case 5:E=D.memoizedProps}h[Mr]=g,h=!!(h.nodeValue===b||E!==null&&E.suppressHydrationWarning===!0||lme(h.nodeValue,b)),h||pu(g,!0)}else h=P6(h).createTextNode(E),h[Mr]=g,g.stateNode=h}return Br(g),null;case 31:if(b=g.memoizedState,h===null||h.memoizedState!==null){if(E=$m(g),b!==null){if(h===null){if(!E)throw Error(o(318));if(h=g.memoizedState,h=h!==null?h.dehydrated:null,!h)throw Error(o(557));h[Mr]=g}else yh(),(g.flags&128)===0&&(g.memoizedState=null),g.flags|=4;Br(g),h=!1}else b=lP(),h!==null&&h.memoizedState!==null&&(h.memoizedState.hydrationErrors=b),h=!0;if(!h)return g.flags&256?(Wi(g),g):(Wi(g),null);if((g.flags&128)!==0)throw Error(o(558))}return Br(g),null;case 13:if(E=g.memoizedState,h===null||h.memoizedState!==null&&h.memoizedState.dehydrated!==null){if(D=$m(g),E!==null&&E.dehydrated!==null){if(h===null){if(!D)throw Error(o(318));if(D=g.memoizedState,D=D!==null?D.dehydrated:null,!D)throw Error(o(317));D[Mr]=g}else yh(),(g.flags&128)===0&&(g.memoizedState=null),g.flags|=4;Br(g),D=!1}else D=lP(),h!==null&&h.memoizedState!==null&&(h.memoizedState.hydrationErrors=D),D=!0;if(!D)return g.flags&256?(Wi(g),g):(Wi(g),null)}return Wi(g),(g.flags&128)!==0?(g.lanes=b,g):(b=E!==null,h=h!==null&&h.memoizedState!==null,b&&(E=g.child,D=null,E.alternate!==null&&E.alternate.memoizedState!==null&&E.alternate.memoizedState.cachePool!==null&&(D=E.alternate.memoizedState.cachePool.pool),M=null,E.memoizedState!==null&&E.memoizedState.cachePool!==null&&(M=E.memoizedState.cachePool.pool),M!==D&&(E.flags|=2048)),b!==h&&b&&(g.child.flags|=8192),b6(g,g.updateQueue),Br(g),null);case 4:return re(),h===null&&bM(g.stateNode.containerInfo),Br(g),null;case 10:return Ic(g.type),Br(g),null;case 19:if(K(gn),E=g.memoizedState,E===null)return Br(g),null;if(D=(g.flags&128)!==0,M=E.rendering,M===null)if(D)Qv(E,!1);else{if(cn!==0||h!==null&&(h.flags&128)!==0)for(h=g.child;h!==null;){if(M=a6(h),M!==null){for(g.flags|=128,Qv(E,!1),h=M.updateQueue,g.updateQueue=h,b6(g,h),g.subtreeFlags=0,h=b,b=g.child;b!==null;)Ohe(b,h),b=b.sibling;return O(gn,gn.current&1|2),Kt&&Nc(g,E.treeForkCount),g.child}h=h.sibling}E.tail!==null&&It()>S6&&(g.flags|=128,D=!0,Qv(E,!1),g.lanes=4194304)}else{if(!D)if(h=a6(M),h!==null){if(g.flags|=128,D=!0,h=h.updateQueue,g.updateQueue=h,b6(g,h),Qv(E,!0),E.tail===null&&E.tailMode==="hidden"&&!M.alternate&&!Kt)return Br(g),null}else 2*It()-E.renderingStartTime>S6&&b!==536870912&&(g.flags|=128,D=!0,Qv(E,!1),g.lanes=4194304);E.isBackwards?(M.sibling=g.child,g.child=M):(h=E.last,h!==null?h.sibling=M:g.child=M,E.last=M)}return E.tail!==null?(h=E.tail,E.rendering=h,E.tail=h.sibling,E.renderingStartTime=It(),h.sibling=null,b=gn.current,O(gn,D?b&1|2:b&1),Kt&&Nc(g,E.treeForkCount),h):(Br(g),null);case 22:case 23:return Wi(g),xP(),E=g.memoizedState!==null,h!==null?h.memoizedState!==null!==E&&(g.flags|=8192):E&&(g.flags|=8192),E?(b&536870912)!==0&&(g.flags&128)===0&&(Br(g),g.subtreeFlags&6&&(g.flags|=8192)):Br(g),b=g.updateQueue,b!==null&&b6(g,b.retryQueue),b=null,h!==null&&h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(b=h.memoizedState.cachePool.pool),E=null,g.memoizedState!==null&&g.memoizedState.cachePool!==null&&(E=g.memoizedState.cachePool.pool),E!==b&&(g.flags|=2048),h!==null&&K(xh),null;case 24:return b=null,h!==null&&(b=h.memoizedState.cache),g.memoizedState.cache!==b&&(g.flags|=2048),Ic(Mn),Br(g),null;case 25:return null;case 30:return null}throw Error(o(156,g.tag))}function zxt(h,g){switch(iP(g),g.tag){case 1:return h=g.flags,h&65536?(g.flags=h&-65537|128,g):null;case 3:return Ic(Mn),re(),h=g.flags,(h&65536)!==0&&(h&128)===0?(g.flags=h&-65537|128,g):null;case 26:case 27:case 5:return _e(g),null;case 31:if(g.memoizedState!==null){if(Wi(g),g.alternate===null)throw Error(o(340));yh()}return h=g.flags,h&65536?(g.flags=h&-65537|128,g):null;case 13:if(Wi(g),h=g.memoizedState,h!==null&&h.dehydrated!==null){if(g.alternate===null)throw Error(o(340));yh()}return h=g.flags,h&65536?(g.flags=h&-65537|128,g):null;case 19:return K(gn),null;case 4:return re(),null;case 10:return Ic(g.type),null;case 22:case 23:return Wi(g),xP(),h!==null&&K(xh),h=g.flags,h&65536?(g.flags=h&-65537|128,g):null;case 24:return Ic(Mn),null;case 25:return null;default:return null}}function pge(h,g){switch(iP(g),g.tag){case 3:Ic(Mn),re();break;case 26:case 27:case 5:_e(g);break;case 4:re();break;case 31:g.memoizedState!==null&&Wi(g);break;case 13:Wi(g);break;case 19:K(gn);break;case 10:Ic(g.type);break;case 22:case 23:Wi(g),xP(),h!==null&&K(xh);break;case 24:Ic(Mn)}}function Jv(h,g){try{var b=g.updateQueue,E=b!==null?b.lastEffect:null;if(E!==null){var D=E.next;b=D;do{if((b.tag&h)===h){E=void 0;var M=b.create,X=b.inst;E=M(),X.destroy=E}b=b.next}while(b!==D)}}catch(ne){mr(g,g.return,ne)}}function bu(h,g,b){try{var E=g.updateQueue,D=E!==null?E.lastEffect:null;if(D!==null){var M=D.next;E=M;do{if((E.tag&h)===h){var X=E.inst,ne=X.destroy;if(ne!==void 0){X.destroy=void 0,D=g;var se=b,me=ne;try{me()}catch(Ee){mr(D,se,Ee)}}}E=E.next}while(E!==M)}}catch(Ee){mr(g,g.return,Ee)}}function hge(h){var g=h.updateQueue;if(g!==null){var b=h.stateNode;try{nfe(g,b)}catch(E){mr(h,h.return,E)}}}function fge(h,g,b){b.props=Eh(h.type,h.memoizedProps),b.state=h.memoizedState;try{b.componentWillUnmount()}catch(E){mr(h,g,E)}}function eb(h,g){try{var b=h.ref;if(b!==null){switch(h.tag){case 26:case 27:case 5:var E=h.stateNode;break;case 30:E=h.stateNode;break;default:E=h.stateNode}typeof b=="function"?h.refCleanup=b(E):b.current=E}}catch(D){mr(h,g,D)}}function Ts(h,g){var b=h.ref,E=h.refCleanup;if(b!==null)if(typeof E=="function")try{E()}catch(D){mr(h,g,D)}finally{h.refCleanup=null,h=h.alternate,h!=null&&(h.refCleanup=null)}else if(typeof b=="function")try{b(null)}catch(D){mr(h,g,D)}else b.current=null}function gge(h){var g=h.type,b=h.memoizedProps,E=h.stateNode;try{e:switch(g){case"button":case"input":case"select":case"textarea":b.autoFocus&&E.focus();break e;case"img":b.src?E.src=b.src:b.srcSet&&(E.srcset=b.srcSet)}}catch(D){mr(h,h.return,D)}}function QP(h,g,b){try{var E=h.stateNode;Zxt(E,h.type,b,g),E[Pn]=g}catch(D){mr(h,h.return,D)}}function mge(h){return h.tag===5||h.tag===3||h.tag===26||h.tag===27&&Cu(h.type)||h.tag===4}function JP(h){e:for(;;){for(;h.sibling===null;){if(h.return===null||mge(h.return))return null;h=h.return}for(h.sibling.return=h.return,h=h.sibling;h.tag!==5&&h.tag!==6&&h.tag!==18;){if(h.tag===27&&Cu(h.type)||h.flags&2||h.child===null||h.tag===4)continue e;h.child.return=h,h=h.child}if(!(h.flags&2))return h.stateNode}}function eM(h,g,b){var E=h.tag;if(E===5||E===6)h=h.stateNode,g?(b.nodeType===9?b.body:b.nodeName==="HTML"?b.ownerDocument.body:b).insertBefore(h,g):(g=b.nodeType===9?b.body:b.nodeName==="HTML"?b.ownerDocument.body:b,g.appendChild(h),b=b._reactRootContainer,b!=null||g.onclick!==null||(g.onclick=Lt));else if(E!==4&&(E===27&&Cu(h.type)&&(b=h.stateNode,g=null),h=h.child,h!==null))for(eM(h,g,b),h=h.sibling;h!==null;)eM(h,g,b),h=h.sibling}function x6(h,g,b){var E=h.tag;if(E===5||E===6)h=h.stateNode,g?b.insertBefore(h,g):b.appendChild(h);else if(E!==4&&(E===27&&Cu(h.type)&&(b=h.stateNode),h=h.child,h!==null))for(x6(h,g,b),h=h.sibling;h!==null;)x6(h,g,b),h=h.sibling}function yge(h){var g=h.stateNode,b=h.memoizedProps;try{for(var E=h.type,D=g.attributes;D.length;)g.removeAttributeNode(D[0]);yo(g,E,b),g[Mr]=h,g[Pn]=b}catch(M){mr(h,h.return,M)}}var qc=!1,In=!1,tM=!1,vge=typeof WeakSet=="function"?WeakSet:Set,io=null;function Txt(h,g){if(h=h.containerInfo,kM=F6,h=The(h),YD(h)){if("selectionStart"in h)var b={start:h.selectionStart,end:h.selectionEnd};else e:{b=(b=h.ownerDocument)&&b.defaultView||window;var E=b.getSelection&&b.getSelection();if(E&&E.rangeCount!==0){b=E.anchorNode;var D=E.anchorOffset,M=E.focusNode;E=E.focusOffset;try{b.nodeType,M.nodeType}catch{b=null;break e}var X=0,ne=-1,se=-1,me=0,Ee=0,Re=h,ye=null;t:for(;;){for(var we;Re!==b||D!==0&&Re.nodeType!==3||(ne=X+D),Re!==M||E!==0&&Re.nodeType!==3||(se=X+E),Re.nodeType===3&&(X+=Re.nodeValue.length),(we=Re.firstChild)!==null;)ye=Re,Re=we;for(;;){if(Re===h)break t;if(ye===b&&++me===D&&(ne=X),ye===M&&++Ee===E&&(se=X),(we=Re.nextSibling)!==null)break;Re=ye,ye=Re.parentNode}Re=we}b=ne===-1||se===-1?null:{start:ne,end:se}}else b=null}b=b||{start:0,end:0}}else b=null;for(_M={focusedElem:h,selectionRange:b},F6=!1,io=g;io!==null;)if(g=io,h=g.child,(g.subtreeFlags&1028)!==0&&h!==null)h.return=g,io=h;else for(;io!==null;){switch(g=io,M=g.alternate,h=g.flags,g.tag){case 0:if((h&4)!==0&&(h=g.updateQueue,h=h!==null?h.events:null,h!==null))for(b=0;b title"))),yo(M,E,b),M[Mr]=h,Wr(M),E=M;break e;case"link":var X=Sme("link","href",D).get(E+(b.href||""));if(X){for(var ne=0;ne_r&&(X=_r,_r=bt,bt=X);var he=Rhe(ne,bt),de=Rhe(ne,_r);if(he&&de&&(we.rangeCount!==1||we.anchorNode!==he.node||we.anchorOffset!==he.offset||we.focusNode!==de.node||we.focusOffset!==de.offset)){var ge=Re.createRange();ge.setStart(he.node,he.offset),we.removeAllRanges(),bt>_r?(we.addRange(ge),we.extend(de.node,de.offset)):(ge.setEnd(de.node,de.offset),we.addRange(ge))}}}}for(Re=[],we=ne;we=we.parentNode;)we.nodeType===1&&Re.push({element:we,left:we.scrollLeft,top:we.scrollTop});for(typeof ne.focus=="function"&&ne.focus(),ne=0;neb?32:b,B.T=null,b=sM,sM=null;var M=_u,X=Yc;if(Gn=0,Fm=_u=null,Yc=0,(cr&6)!==0)throw Error(o(331));var ne=cr;if(cr|=4,zge(M.current),Cge(M,M.current,X,b),cr=ne,ab(0,!1),Ht&&typeof Ht.onPostCommitFiberRoot=="function")try{Ht.onPostCommitFiberRoot(qt,M)}catch{}return!0}finally{F.p=D,B.T=E,Gge(h,g)}}function Xge(h,g,b){g=Ma(b,g),g=FP(h.stateNode,g,2),h=mu(h,g,2),h!==null&&(Pl(h,2),js(h))}function mr(h,g,b){if(h.tag===3)Xge(h,h,b);else for(;g!==null;){if(g.tag===3){Xge(g,h,b);break}else if(g.tag===1){var E=g.stateNode;if(typeof g.type.getDerivedStateFromError=="function"||typeof E.componentDidCatch=="function"&&(ku===null||!ku.has(E))){h=Ma(b,h),b=Kfe(2),E=mu(g,b,2),E!==null&&(Zfe(b,E,g,h),Pl(E,2),js(E));break}}g=g.return}}function pM(h,g,b){var E=h.pingCache;if(E===null){E=h.pingCache=new Dxt;var D=new Set;E.set(g,D)}else D=E.get(g),D===void 0&&(D=new Set,E.set(g,D));D.has(b)||(oM=!0,D.add(b),h=Ixt.bind(null,h,g,b),g.then(h,h))}function Ixt(h,g,b){var E=h.pingCache;E!==null&&E.delete(g),h.pingedLanes|=h.suspendedLanes&b,h.warmLanes&=~b,Er===h&&(Yt&b)===b&&(cn===4||cn===3&&(Yt&62914560)===Yt&&300>It()-_6?(cr&2)===0&&Vm(h,0):iM|=b,Lm===Yt&&(Lm=0)),js(h)}function Kge(h,g){g===0&&(g=ws()),h=gh(h,g),h!==null&&(Pl(h,g),js(h))}function Oxt(h){var g=h.memoizedState,b=0;g!==null&&(b=g.retryLane),Kge(h,b)}function Lxt(h,g){var b=0;switch(h.tag){case 31:case 13:var E=h.stateNode,D=h.memoizedState;D!==null&&(b=D.retryLane);break;case 19:E=h.stateNode;break;case 22:E=h.stateNode._retryCache;break;default:throw Error(o(314))}E!==null&&E.delete(g),Kge(h,b)}function Fxt(h,g){return St(h,g)}var T6=null,Hm=null,hM=!1,j6=!1,fM=!1,Eu=0;function js(h){h!==Hm&&h.next===null&&(Hm===null?T6=Hm=h:Hm=Hm.next=h),j6=!0,hM||(hM=!0,qxt())}function ab(h,g){if(!fM&&j6){fM=!0;do for(var b=!1,E=T6;E!==null;){if(h!==0){var D=E.pendingLanes;if(D===0)var M=0;else{var X=E.suspendedLanes,ne=E.pingedLanes;M=(1<<31-Gt(42|h)+1)-1,M&=D&~(X&~ne),M=M&201326741?M&201326741|1:M?M|2:0}M!==0&&(b=!0,eme(E,M))}else M=Yt,M=Dl(E,E===Er?M:0,E.cancelPendingCommit!==null||E.timeoutHandle!==-1),(M&3)===0||Ao(E,M)||(b=!0,eme(E,M));E=E.next}while(b);fM=!1}}function Vxt(){Zge()}function Zge(){j6=hM=!1;var h=0;Eu!==0&&Jxt()&&(h=Eu);for(var g=It(),b=null,E=T6;E!==null;){var D=E.next,M=Qge(E,g);M===0?(E.next=null,b===null?T6=D:b.next=D,D===null&&(Hm=b)):(b=E,(h!==0||(M&3)!==0)&&(j6=!0)),E=D}Gn!==0&&Gn!==5||ab(h),Eu!==0&&(Eu=0)}function Qge(h,g){for(var b=h.suspendedLanes,E=h.pingedLanes,D=h.expirationTimes,M=h.pendingLanes&-62914561;0ne)break;var Ee=se.transferSize,Re=se.initiatorType;Ee&&sme(Re)&&(se=se.responseEnd,X+=Ee*(se"u"?null:document;function xme(h,g,b){var E=Um;if(E&&typeof g=="string"&&g){var D=J(g);D='link[rel="'+h+'"][href="'+D+'"]',typeof b=="string"&&(D+='[crossorigin="'+b+'"]'),bme.has(D)||(bme.add(D),h={rel:h,crossOrigin:b,href:g},E.querySelector(D)===null&&(g=E.createElement("link"),yo(g,"link",h),Wr(g),E.head.appendChild(g)))}}function swt(h){Xc.D(h),xme("dns-prefetch",h,null)}function cwt(h,g){Xc.C(h,g),xme("preconnect",h,g)}function dwt(h,g,b){Xc.L(h,g,b);var E=Um;if(E&&h&&g){var D='link[rel="preload"][as="'+J(g)+'"]';g==="image"&&b&&b.imageSrcSet?(D+='[imagesrcset="'+J(b.imageSrcSet)+'"]',typeof b.imageSizes=="string"&&(D+='[imagesizes="'+J(b.imageSizes)+'"]')):D+='[href="'+J(h)+'"]';var M=D;switch(g){case"style":M=Wm(h);break;case"script":M=Gm(h)}Fa.has(M)||(h=p({rel:"preload",href:g==="image"&&b&&b.imageSrcSet?void 0:h,as:g},b),Fa.set(M,h),E.querySelector(D)!==null||g==="style"&&E.querySelector(db(M))||g==="script"&&E.querySelector(ub(M))||(g=E.createElement("link"),yo(g,"link",h),Wr(g),E.head.appendChild(g)))}}function uwt(h,g){Xc.m(h,g);var b=Um;if(b&&h){var E=g&&typeof g.as=="string"?g.as:"script",D='link[rel="modulepreload"][as="'+J(E)+'"][href="'+J(h)+'"]',M=D;switch(E){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":M=Gm(h)}if(!Fa.has(M)&&(h=p({rel:"modulepreload",href:h},g),Fa.set(M,h),b.querySelector(D)===null)){switch(E){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(b.querySelector(ub(M)))return}E=b.createElement("link"),yo(E,"link",h),Wr(E),b.head.appendChild(E)}}}function pwt(h,g,b){Xc.S(h,g,b);var E=Um;if(E&&h){var D=ho(E).hoistableStyles,M=Wm(h);g=g||"default";var X=D.get(M);if(!X){var ne={loading:0,preload:null};if(X=E.querySelector(db(M)))ne.loading=5;else{h=p({rel:"stylesheet",href:h,"data-precedence":g},b),(b=Fa.get(M))&&TM(h,b);var se=X=E.createElement("link");Wr(se),yo(se,"link",h),se._p=new Promise(function(me,Ee){se.onload=me,se.onerror=Ee}),se.addEventListener("load",function(){ne.loading|=1}),se.addEventListener("error",function(){ne.loading|=2}),ne.loading|=4,N6(X,g,E)}X={type:"stylesheet",instance:X,count:1,state:ne},D.set(M,X)}}}function hwt(h,g){Xc.X(h,g);var b=Um;if(b&&h){var E=ho(b).hoistableScripts,D=Gm(h),M=E.get(D);M||(M=b.querySelector(ub(D)),M||(h=p({src:h,async:!0},g),(g=Fa.get(D))&&jM(h,g),M=b.createElement("script"),Wr(M),yo(M,"link",h),b.head.appendChild(M)),M={type:"script",instance:M,count:1,state:null},E.set(D,M))}}function fwt(h,g){Xc.M(h,g);var b=Um;if(b&&h){var E=ho(b).hoistableScripts,D=Gm(h),M=E.get(D);M||(M=b.querySelector(ub(D)),M||(h=p({src:h,async:!0,type:"module"},g),(g=Fa.get(D))&&jM(h,g),M=b.createElement("script"),Wr(M),yo(M,"link",h),b.head.appendChild(M)),M={type:"script",instance:M,count:1,state:null},E.set(D,M))}}function wme(h,g,b,E){var D=(D=Q.current)?M6(D):null;if(!D)throw Error(o(446));switch(h){case"meta":case"title":return null;case"style":return typeof b.precedence=="string"&&typeof b.href=="string"?(g=Wm(b.href),b=ho(D).hoistableStyles,E=b.get(g),E||(E={type:"style",instance:null,count:0,state:null},b.set(g,E)),E):{type:"void",instance:null,count:0,state:null};case"link":if(b.rel==="stylesheet"&&typeof b.href=="string"&&typeof b.precedence=="string"){h=Wm(b.href);var M=ho(D).hoistableStyles,X=M.get(h);if(X||(D=D.ownerDocument||D,X={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},M.set(h,X),(M=D.querySelector(db(h)))&&!M._p&&(X.instance=M,X.state.loading=5),Fa.has(h)||(b={rel:"preload",as:"style",href:b.href,crossOrigin:b.crossOrigin,integrity:b.integrity,media:b.media,hrefLang:b.hrefLang,referrerPolicy:b.referrerPolicy},Fa.set(h,b),M||gwt(D,h,b,X.state))),g&&E===null)throw Error(o(528,""));return X}if(g&&E!==null)throw Error(o(529,""));return null;case"script":return g=b.async,b=b.src,typeof b=="string"&&g&&typeof g!="function"&&typeof g!="symbol"?(g=Gm(b),b=ho(D).hoistableScripts,E=b.get(g),E||(E={type:"script",instance:null,count:0,state:null},b.set(g,E)),E):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,h))}}function Wm(h){return'href="'+J(h)+'"'}function db(h){return'link[rel="stylesheet"]['+h+"]"}function kme(h){return p({},h,{"data-precedence":h.precedence,precedence:null})}function gwt(h,g,b,E){h.querySelector('link[rel="preload"][as="style"]['+g+"]")?E.loading=1:(g=h.createElement("link"),E.preload=g,g.addEventListener("load",function(){return E.loading|=1}),g.addEventListener("error",function(){return E.loading|=2}),yo(g,"link",b),Wr(g),h.head.appendChild(g))}function Gm(h){return'[src="'+J(h)+'"]'}function ub(h){return"script[async]"+h}function _me(h,g,b){if(g.count++,g.instance===null)switch(g.type){case"style":var E=h.querySelector('style[data-href~="'+J(b.href)+'"]');if(E)return g.instance=E,Wr(E),E;var D=p({},b,{"data-href":b.href,"data-precedence":b.precedence,href:null,precedence:null});return E=(h.ownerDocument||h).createElement("style"),Wr(E),yo(E,"style",D),N6(E,b.precedence,h),g.instance=E;case"stylesheet":D=Wm(b.href);var M=h.querySelector(db(D));if(M)return g.state.loading|=4,g.instance=M,Wr(M),M;E=kme(b),(D=Fa.get(D))&&TM(E,D),M=(h.ownerDocument||h).createElement("link"),Wr(M);var X=M;return X._p=new Promise(function(ne,se){X.onload=ne,X.onerror=se}),yo(M,"link",E),g.state.loading|=4,N6(M,b.precedence,h),g.instance=M;case"script":return M=Gm(b.src),(D=h.querySelector(ub(M)))?(g.instance=D,Wr(D),D):(E=b,(D=Fa.get(M))&&(E=p({},b),jM(E,D)),h=h.ownerDocument||h,D=h.createElement("script"),Wr(D),yo(D,"link",E),h.head.appendChild(D),g.instance=D);case"void":return null;default:throw Error(o(443,g.type))}else g.type==="stylesheet"&&(g.state.loading&4)===0&&(E=g.instance,g.state.loading|=4,N6(E,b.precedence,h));return g.instance}function N6(h,g,b){for(var E=b.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),D=E.length?E[E.length-1]:null,M=D,X=0;X title"):null)}function mwt(h,g,b){if(b===1||g.itemProp!=null)return!1;switch(h){case"meta":case"title":return!0;case"style":if(typeof g.precedence!="string"||typeof g.href!="string"||g.href==="")break;return!0;case"link":if(typeof g.rel!="string"||typeof g.href!="string"||g.href===""||g.onLoad||g.onError)break;switch(g.rel){case"stylesheet":return h=g.disabled,typeof g.precedence=="string"&&h==null;default:return!0}case"script":if(g.async&&typeof g.async!="function"&&typeof g.async!="symbol"&&!g.onLoad&&!g.onError&&g.src&&typeof g.src=="string")return!0}return!1}function Cme(h){return!(h.type==="stylesheet"&&(h.state.loading&3)===0)}function ywt(h,g,b,E){if(b.type==="stylesheet"&&(typeof E.media!="string"||matchMedia(E.media).matches!==!1)&&(b.state.loading&4)===0){if(b.instance===null){var D=Wm(E.href),M=g.querySelector(db(D));if(M){g=M._p,g!==null&&typeof g=="object"&&typeof g.then=="function"&&(h.count++,h=I6.bind(h),g.then(h,h)),b.state.loading|=4,b.instance=M,Wr(M);return}M=g.ownerDocument||g,E=kme(E),(D=Fa.get(D))&&TM(E,D),M=M.createElement("link"),Wr(M);var X=M;X._p=new Promise(function(ne,se){X.onload=ne,X.onerror=se}),yo(M,"link",E),b.instance=M}h.stylesheets===null&&(h.stylesheets=new Map),h.stylesheets.set(b,g),(g=b.state.preload)&&(b.state.loading&3)===0&&(h.count++,b=I6.bind(h),g.addEventListener("load",b),g.addEventListener("error",b))}}var AM=0;function vwt(h,g){return h.stylesheets&&h.count===0&&L6(h,h.stylesheets),0AM?50:800)+g);return h.unsuspend=b,function(){h.unsuspend=null,clearTimeout(E),clearTimeout(D)}}:null}function I6(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)L6(this,this.stylesheets);else if(this.unsuspend){var h=this.unsuspend;this.unsuspend=null,h()}}}var O6=null;function L6(h,g){h.stylesheets=null,h.unsuspend!==null&&(h.count++,O6=new Map,g.forEach(bwt,h),O6=null,I6.call(h))}function bwt(h,g){if(!(g.state.loading&4)){var b=O6.get(h);if(b)var E=b.get(null);else{b=new Map,O6.set(h,b);for(var D=h.querySelectorAll("link[data-precedence],style[data-precedence]"),M=0;M"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(r){console.error(r)}}return e(),$z.exports=tet(),$z.exports}var net=ret();const oet={View:"likec4-view"};let Tz="/";Tz.endsWith("/")||(Tz=Tz+"/");var ls=function(){return ls=Object.assign||function(e){for(var r,n=1,o=arguments.length;n"u")return ket;var r=_et(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])}},Cet=pne(),Pg="data-scroll-locked",$et=function(e,r,n,o){var i=e.left,a=e.top,l=e.right,s=e.gap;return n===void 0&&(n="margin"),` + .`.concat(aet,` { overflow: hidden `).concat(o,`; - padding-right: `).concat(l,"px ").concat(o,`; + padding-right: `).concat(s,"px ").concat(o,`; } - body[`).concat(eg,`] { + body[`).concat(Pg,`] { 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(s,`px; + padding-left: `.concat(i,`px; + padding-top: `).concat(a,`px; + padding-right: `).concat(l,`px; margin-left:0; margin-top:0; - margin-right: `).concat(l,"px ").concat(o,`; - `),n==="padding"&&"padding-right: ".concat(l,"px ").concat(o,";")].filter(Boolean).join(""),` + margin-right: `).concat(s,"px ").concat(o,`; + `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(o,";")].filter(Boolean).join(""),` } - .`).concat(U4,` { - right: `).concat(l,"px ").concat(o,`; + .`).concat(b4,` { + right: `).concat(s,"px ").concat(o,`; } - .`).concat(W4,` { - margin-right: `).concat(l,"px ").concat(o,`; + .`).concat(x4,` { + margin-right: `).concat(s,"px ").concat(o,`; } - .`).concat(U4," .").concat(U4,` { + .`).concat(b4," .").concat(b4,` { right: 0 `).concat(o,`; } - .`).concat(W4," .").concat(W4,` { + .`).concat(x4," .").concat(x4,` { margin-right: 0 `).concat(o,`; } - body[`).concat(eg,`] { - `).concat(Mnt,": ").concat(l,`px; + body[`).concat(Pg,`] { + `).concat(set,": ").concat(s,`px; } -`)},Jne=function(){var e=parseInt(document.body.getAttribute(eg)||"0",10);return isFinite(e)?e:0},Qnt=function(){E.useEffect(function(){return document.body.setAttribute(eg,(Jne()+1).toString()),function(){var e=Jne()-1;e<=0?document.body.removeAttribute(eg):document.body.setAttribute(eg,e.toString())}},[])},Jnt=function(e){var r=e.noRelative,n=e.noImportant,o=e.gapMode,a=o===void 0?"margin":o;Qnt();var i=E.useMemo(function(){return Xnt(a)},[a]);return E.createElement(Knt,{styles:Znt(i,!r,a,n?"":"!important")})},VR=!1;if(typeof window<"u")try{var G4=Object.defineProperty({},"passive",{get:function(){return VR=!0,!0}});window.addEventListener("test",G4,G4),window.removeEventListener("test",G4,G4)}catch{VR=!1}var tg=VR?{passive:!1}:!1,eot=function(e){return e.tagName==="TEXTAREA"},eoe=function(e,r){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[r]!=="hidden"&&!(n.overflowY===n.overflowX&&!eot(e)&&n[r]==="visible")},tot=function(e){return eoe(e,"overflowY")},rot=function(e){return eoe(e,"overflowX")},toe=function(e,r){var n=r.ownerDocument,o=r;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var a=roe(e,o);if(a){var i=noe(e,o),s=i[1],l=i[2];if(s>l)return!0}o=o.parentNode}while(o&&o!==n.body);return!1},not=function(e){var r=e.scrollTop,n=e.scrollHeight,o=e.clientHeight;return[r,n,o]},oot=function(e){var r=e.scrollLeft,n=e.scrollWidth,o=e.clientWidth;return[r,n,o]},roe=function(e,r){return e==="v"?tot(r):rot(r)},noe=function(e,r){return e==="v"?not(r):oot(r)},aot=function(e,r){return e==="h"&&r==="rtl"?-1:1},iot=function(e,r,n,o,a){var i=aot(e,window.getComputedStyle(r).direction),s=i*o,l=n.target,c=r.contains(l),u=!1,d=s>0,h=0,f=0;do{if(!l)break;var g=noe(e,l),b=g[0],x=g[1],w=g[2],k=x-w-i*b;(b||k)&&roe(e,l)&&(h+=k,f+=b);var C=l.parentNode;l=C&&C.nodeType===Node.DOCUMENT_FRAGMENT_NODE?C.host:C}while(!c&&l!==document.body||c&&(r.contains(l)||r===l));return(d&&Math.abs(h)<1||!d&&Math.abs(f)<1)&&(u=!0),u},X4=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},ooe=function(e){return[e.deltaX,e.deltaY]},aoe=function(e){return e&&"current"in e?e.current:e},sot=function(e,r){return e[0]===r[0]&&e[1]===r[1]},lot=function(e){return` +`)},hne=function(){var e=parseInt(document.body.getAttribute(Pg)||"0",10);return isFinite(e)?e:0},Ret=function(){S.useEffect(function(){return document.body.setAttribute(Pg,(hne()+1).toString()),function(){var e=hne()-1;e<=0?document.body.removeAttribute(Pg):document.body.setAttribute(Pg,e.toString())}},[])},zet=function(e){var r=e.noRelative,n=e.noImportant,o=e.gapMode,i=o===void 0?"margin":o;Ret();var a=S.useMemo(function(){return Eet(i)},[i]);return S.createElement(Cet,{styles:$et(a,!r,i,n?"":"!important")})},Pz=!1;if(typeof window<"u")try{var k4=Object.defineProperty({},"passive",{get:function(){return Pz=!0,!0}});window.addEventListener("test",k4,k4),window.removeEventListener("test",k4,k4)}catch{Pz=!1}var Mg=Pz?{passive:!1}:!1,Tet=function(e){return e.tagName==="TEXTAREA"},fne=function(e,r){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[r]!=="hidden"&&!(n.overflowY===n.overflowX&&!Tet(e)&&n[r]==="visible")},jet=function(e){return fne(e,"overflowY")},Aet=function(e){return fne(e,"overflowX")},gne=function(e,r){var n=r.ownerDocument,o=r;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var i=mne(e,o);if(i){var a=yne(e,o),l=a[1],s=a[2];if(l>s)return!0}o=o.parentNode}while(o&&o!==n.body);return!1},Det=function(e){var r=e.scrollTop,n=e.scrollHeight,o=e.clientHeight;return[r,n,o]},Pet=function(e){var r=e.scrollLeft,n=e.scrollWidth,o=e.clientWidth;return[r,n,o]},mne=function(e,r){return e==="v"?jet(r):Aet(r)},yne=function(e,r){return e==="v"?Det(r):Pet(r)},Met=function(e,r){return e==="h"&&r==="rtl"?-1:1},Net=function(e,r,n,o,i){var a=Met(e,window.getComputedStyle(r).direction),l=a*o,s=n.target,c=r.contains(s),d=!1,u=l>0,p=0,f=0;do{if(!s)break;var m=yne(e,s),v=m[0],w=m[1],x=m[2],k=w-x-a*v;(v||k)&&mne(e,s)&&(p+=k,f+=v);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(u&&Math.abs(p)<1||!u&&Math.abs(f)<1)&&(d=!0),d},_4=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},vne=function(e){return[e.deltaX,e.deltaY]},bne=function(e){return e&&"current"in e?e.current:e},Bet=function(e,r){return e[0]===r[0]&&e[1]===r[1]},Iet=function(e){return` .block-interactivity-`.concat(e,` {pointer-events: none;} .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},cot=0,rg=[];function uot(e){var r=E.useRef([]),n=E.useRef([0,0]),o=E.useRef(),a=E.useState(cot++)[0],i=E.useState(Qne)[0],s=E.useRef(e);E.useEffect(function(){s.current=e},[e]),E.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var x=Dnt([e.lockRef.current],(e.shards||[]).map(aoe)).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 l=E.useCallback(function(x,w){if("touches"in x&&x.touches.length===2||x.type==="wheel"&&x.ctrlKey)return!s.current.allowPinchZoom;var k=X4(x),C=n.current,_="deltaX"in x?x.deltaX:C[0]-k[0],T="deltaY"in x?x.deltaY:C[1]-k[1],A,R=x.target,D=Math.abs(_)>Math.abs(T)?"h":"v";if("touches"in x&&D==="h"&&R.type==="range")return!1;var N=toe(D,R);if(!N)return!0;if(N?A=D:(A=D==="v"?"h":"v",N=toe(D,R)),!N)return!1;if(!o.current&&"changedTouches"in x&&(_||T)&&(o.current=A),!A)return!0;var M=o.current||A;return iot(M,w,x,M==="h"?_:T)},[]),c=E.useCallback(function(x){var w=x;if(!(!rg.length||rg[rg.length-1]!==i)){var k="deltaY"in w?ooe(w):X4(w),C=r.current.filter(function(A){return A.name===w.type&&(A.target===w.target||w.target===A.shadowParent)&&sot(A.delta,k)})[0];if(C&&C.should){w.cancelable&&w.preventDefault();return}if(!C){var _=(s.current.shards||[]).map(aoe).filter(Boolean).filter(function(A){return A.contains(w.target)}),T=_.length>0?l(w,_[0]):!s.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:dot(k)};r.current.push(_),setTimeout(function(){r.current=r.current.filter(function(T){return T!==_})},1)},[]),d=E.useCallback(function(x){n.current=X4(x),o.current=void 0},[]),h=E.useCallback(function(x){u(x.type,ooe(x),x.target,l(x,e.lockRef.current))},[]),f=E.useCallback(function(x){u(x.type,X4(x),x.target,l(x,e.lockRef.current))},[]);E.useEffect(function(){return rg.push(i),e.setCallbacks({onScrollCapture:h,onWheelCapture:h,onTouchMoveCapture:f}),document.addEventListener("wheel",c,tg),document.addEventListener("touchmove",c,tg),document.addEventListener("touchstart",d,tg),function(){rg=rg.filter(function(x){return x!==i}),document.removeEventListener("wheel",c,tg),document.removeEventListener("touchmove",c,tg),document.removeEventListener("touchstart",d,tg)}},[]);var g=e.removeScrollBar,b=e.inert;return E.createElement(E.Fragment,null,b?E.createElement(i,{styles:lot(a)}):null,g?E.createElement(Jnt,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function dot(e){for(var r=null;e!==null;)e instanceof ShadowRoot&&(r=e.host,e=e.host),e=e.parentNode;return r}const pot=Bnt(Zne,uot);var ioe=E.forwardRef(function(e,r){return E.createElement(Y4,El({},e,{ref:r,sideCar:pot}))});ioe.classNames=Y4.classNames;function Bo(e){return Object.keys(e)}function hot(e){return e.replace(/[A-Z]/g,r=>`-${r.toLowerCase()}`)}function fot(e){return typeof e!="string"||!e.includes("var(--mantine-scale)")?e:e.match(/^calc\((.*?)\)$/)?.[1].split("*")[0].trim()}function K4(e){const r=fot(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 soe(e){return e==="0rem"?"0rem":`calc(${e} * var(--mantine-scale))`}function loe(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?soe(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?soe(i):i}}return o}return n}const qe=loe("rem",{shouldScale:!0});loe("em");function Zu(e){return Object.keys(e).reduce((r,n)=>(e[n]!==void 0&&(r[n]=e[n]),r),{})}function coe(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 Ds(e){return Array.isArray(e)||e===null?!1:typeof e=="object"?e.type!==E.Fragment:!1}function qa(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 ng(e=null){const r=E.createContext(e);return[({children:n,value:o})=>y.jsx(r.Provider,{value:o,children:n}),()=>E.useContext(r)]}function uoe(e,r){return n=>{if(typeof n!="string"||n.trim().length===0)throw new Error(r);return`${e}-${n}`}}function nb(e,r){let n=e;for(;(n=n.parentElement)&&!n.matches(r););return n}function mot(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 got(e,r,n){for(let o=e+1;o{n?.(l);const c=Array.from(nb(l.currentTarget,e)?.querySelectorAll(r)||[]).filter(b=>yot(l.currentTarget,b,e)),u=c.findIndex(b=>l.currentTarget===b),d=got(u,c,o),h=mot(u,c,o),f=i==="rtl"?h:d,g=i==="rtl"?d:h;switch(l.key){case"ArrowRight":{s==="horizontal"&&(l.stopPropagation(),l.preventDefault(),c[f].focus(),a&&c[f].click());break}case"ArrowLeft":{s==="horizontal"&&(l.stopPropagation(),l.preventDefault(),c[g].focus(),a&&c[g].click());break}case"ArrowUp":{s==="vertical"&&(l.stopPropagation(),l.preventDefault(),c[h].focus(),a&&c[h].click());break}case"ArrowDown":{s==="vertical"&&(l.stopPropagation(),l.preventDefault(),c[d].focus(),a&&c[d].click());break}case"Home":{l.stopPropagation(),l.preventDefault(),!c[0].disabled&&c[0].focus();break}case"End":{l.stopPropagation(),l.preventDefault();const b=c.length-1;!c[b].disabled&&c[b].focus();break}}}}const bot={app:100,modal:200,popover:300,overlay:400,max:9999};function $s(e){return bot[e]}const vot=()=>{};function xot(e,r={active:!0}){return typeof e!="function"||!r.active?r.onKeyDown||vot:n=>{n.key==="Escape"&&(e(n),r.onTrigger?.())}}function ur(e,r="size",n=!0){if(e!==void 0)return coe(e)?n?qe(e):e:`var(--${r}-${e})`}function po(e){return ur(e,"mantine-spacing")}function Tn(e){return e===void 0?"var(--mantine-radius-default)":ur(e,"mantine-radius")}function Fo(e){return ur(e,"mantine-font-size")}function wot(e){return ur(e,"mantine-line-height",!1)}function UR(e){if(e)return ur(e,"mantine-shadow",!1)}function Ln(e,r){return n=>{e?.(n),r?.(n)}}function kot(e,r){return e in r?K4(r[e]):K4(e)}function WR(e,r){const n=e.map(o=>({value:o,px:kot(o,r)}));return n.sort((o,a)=>o.px-a.px),n}function Ms(e){return typeof e=="object"&&e!==null?"base"in e?e.base:void 0:e}function og(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 YR(e="mantine-"){return`${e}${Math.random().toString(36).slice(2,11)}`}function _ot(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 Z4(e,r){const{delay:n,flushOnUnmount:o,leading:a}=typeof r=="number"?{delay:r,flushOnUnmount:!1,leading:!1}:r,i=eh(e),s=E.useRef(0),l=E.useMemo(()=>{const c=Object.assign((...u)=>{window.clearTimeout(s.current);const d=c._isFirstCall;c._isFirstCall=!1;function h(){window.clearTimeout(s.current),s.current=0,c._isFirstCall=!0}if(a&&d){i(...u);const b=()=>{h()},x=()=>{s.current!==0&&(h(),i(...u))},w=()=>{h()};c.flush=x,c.cancel=w,s.current=window.setTimeout(b,n);return}if(a&&!d){const b=()=>{s.current!==0&&(h(),i(...u))},x=()=>{h()};c.flush=b,c.cancel=x;const w=()=>{h()};s.current=window.setTimeout(w,n);return}const f=()=>{s.current!==0&&(h(),i(...u))},g=()=>{h()};c.flush=f,c.cancel=g,s.current=window.setTimeout(f,n)},{flush:()=>{},cancel:()=>{},_isFirstCall:!0});return c},[i,n,a]);return E.useEffect(()=>()=>{o?l.flush():l.cancel()},[l,o]),l}const Eot=["mousedown","touchstart"];function doe(e,r,n){const o=E.useRef(null),a=r||Eot;return E.useEffect(()=>{const i=s=>{const{target:l}=s??{};if(Array.isArray(n)){const c=!document.body.contains(l)&&l?.tagName!=="HTML";n.every(u=>!!u&&!s.composedPath().includes(u))&&!c&&e(s)}else o.current&&!o.current.contains(l)&&e(s)};return a.forEach(s=>document.addEventListener(s,i)),()=>{a.forEach(s=>document.removeEventListener(s,i))}},[o,e,n]),o}function Sot(e,r){try{return e.addEventListener("change",r),()=>e.removeEventListener("change",r)}catch{return e.addListener(r),()=>e.removeListener(r)}}function Cot(e,r){return typeof window<"u"&&"matchMedia"in window?window.matchMedia(e).matches:!1}function Tot(e,r,{getInitialValueInEffect:n}={getInitialValueInEffect:!0}){const[o,a]=E.useState(n?r:Cot(e));return E.useEffect(()=>{try{const i=window.matchMedia(e);return a(i.matches),Sot(i,s=>a(s.matches))}catch{return}},[e]),o||!1}const GR=typeof document<"u"?E.useLayoutEffect:E.useEffect;function th(e,r){const n=E.useRef(!1);E.useEffect(()=>()=>{n.current=!1},[]),E.useEffect(()=>{if(n.current)return e();n.current=!0},r)}function poe({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 th(()=>{let a=-1;const i=s=>{s.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 Aot=/input|select|textarea|button|object/,hoe="a, input, select, textarea, button, object, [tabindex]";function Rot(e){return e.style.display==="none"}function Not(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(Rot(r))return!1;r=r.parentNode}return!0}function foe(e){let r=e.getAttribute("tabindex");return r===null&&(r=void 0),parseInt(r,10)}function XR(e){const r=e.nodeName.toLowerCase(),n=!Number.isNaN(foe(e));return(Aot.test(r)&&!e.disabled||e instanceof HTMLAnchorElement&&e.href||n)&&Not(e)}function moe(e){const r=foe(e);return(Number.isNaN(r)||r>=0)&&XR(e)}function Dot(e){return Array.from(e.querySelectorAll(hoe)).filter(moe)}function $ot(e,r){const n=Dot(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 s=a.activeElement;if(s.tagName==="INPUT"&&s.getAttribute("type")==="radio"&&(i=n.filter(c=>c.getAttribute("type")==="radio"&&c.getAttribute("name")===s.getAttribute("name")).includes(o)),!i)return;r.preventDefault();const l=n[r.shiftKey?n.length-1:0];l&&l.focus()}function Mot(e=!0){const r=E.useRef(null),n=a=>{let i=a.querySelector("[data-autofocus]");if(!i){const s=Array.from(a.querySelectorAll(hoe));i=s.find(moe)||s.find(XR)||null,!i&&XR(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&&$ot(r.current,i)};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[e]),o}const Pot=dn.useId||(()=>{});function zot(){const e=Pot();return e?`mantine-${e.replace(/:/g,"")}`:""}function Ps(e){const r=zot(),[n,o]=E.useState(r);return GR(()=>{o(YR())},[]),typeof e=="string"?e:typeof window>"u"?r:n}function Iot(e,r,n){E.useEffect(()=>(window.addEventListener(e,r,n),()=>window.removeEventListener(e,r,n)),[e,r])}function KR(e,r){if(typeof e=="function")return e(r);typeof e=="object"&&e!==null&&"current"in e&&(e.current=r)}function goe(...e){const r=new Map;return n=>{if(e.forEach(o=>{const a=KR(o,n);a&&r.set(o,a)}),r.size>0)return()=>{e.forEach(o=>{const a=r.get(o);a&&typeof a=="function"?a():KR(o,null)}),r.clear()}}}function yn(...e){return E.useCallback(goe(...e),e)}function Oot(e,r,n="ltr"){const o=E.useRef(!1),a=E.useRef(!1),i=E.useRef(0),[s,l]=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 A=u.getBoundingClientRect();if(A.width&&A.height){const R=og((_-A.left)/A.width,0,1);e({x:n==="ltr"?R:1-R,y:og((T-A.top)/A.height,0,1)})}}})},h=()=>{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(),l(!0),h())},b=()=>{a.current&&o.current&&(a.current=!1,l(!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:s}}function Qu({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,(l,...c)=>{i(l),o?.(l,...c)},!1]}function ZR(e,r){return Tot("(prefers-reduced-motion: reduce)",e,r)}function jot(e,r){if(!e||!r)return!1;if(e===r)return!0;if(e.length!==r.length)return!1;for(let n=0;n{o(l=>l||(r.onOpen?.(),!0))},[r.onOpen]),i=E.useCallback(()=>{o(l=>l&&(r.onClose?.(),!1))},[r.onClose]),s=E.useCallback(()=>{n?i():a()},[i,a,n]);return[n,{open:a,close:i,toggle:s}]}function Hot(e,r,n={autoInvoke:!1}){const o=E.useRef(null),a=E.useCallback((...s)=>{o.current||(o.current=window.setTimeout(()=>{e(s),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 Vot(e){const r=E.useRef(void 0);return E.useEffect(()=>{r.current=e},[e]),r.current}function qot(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 Uot(){const[e,r]=E.useState(!1);return E.useEffect(()=>r(!0),[]),e}function Wot(){return typeof process<"u"&&process.env?"production":"development"}function yoe(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 boe(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]=ho(r[o],a):r[o]=a})}),r}function J4({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||Yot);return Got(a)}function ek({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 Xot=E.createContext(null);function rh(){const e=E.useContext(Xot);if(!e)throw new Error("[@mantine/core] MantineProvider was not found in tree");return e}function Kot(){return rh().classNamesPrefix}function Zot(){return rh().getStyleNonce}function Qot(){return rh().withStaticClasses}function Jot(){return rh().headless}function eat(){return rh().stylesTransform?.sx}function tat(){return rh().stylesTransform?.styles}function tk(){return rh().env||"default"}function rat(e){return/^#?([0-9A-F]{3}){1,2}([0-9A-F]{2})?$/i.test(e)}function nat(e){let r=e.replace("#","");if(r.length===3){const s=r.split("");r=[s[0],s[0],s[1],s[1],s[2],s[2]].join("")}if(r.length===8){const s=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:s}}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 oat(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 aat(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,s=n[5]?parseFloat(n[5]):void 0,l=(1-Math.abs(2*i-1))*a,c=o/60,u=l*(1-Math.abs(c%2-1)),d=i-l/2;let h,f,g;return c>=0&&c<1?(h=l,f=u,g=0):c>=1&&c<2?(h=u,f=l,g=0):c>=2&&c<3?(h=0,f=l,g=u):c>=3&&c<4?(h=0,f=u,g=l):c>=4&&c<5?(h=u,f=0,g=l):(h=l,f=0,g=u),{r:Math.round((h+d)*255),g:Math.round((f+d)*255),b:Math.round((g+d)*255),a:s||1}}function xoe(e){return rat(e)?nat(e):e.startsWith("rgb")?oat(e):e.startsWith("hsl")?aat(e):{r:0,g:0,b:0,a:1}}function ob(e,r){return typeof e.primaryShade=="number"?e.primaryShade:r==="dark"?e.primaryShade.dark:e.primaryShade.light}function QR(e){return e<=.03928?e/12.92:((e+.055)/1.055)**2.4}function iat(e){const r=e.match(/oklch\((.*?)%\s/);return r?parseFloat(r[1]):null}function sat(e){if(e.startsWith("oklch("))return(iat(e)||0)/100;const{r,g:n,b:o}=xoe(e),a=r/255,i=n/255,s=o/255,l=QR(a),c=QR(i),u=QR(s);return .2126*l+.7152*c+.0722*u}function ab(e,r=.179){return e.startsWith("var(")?!1:sat(e)>r}function nh({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:ab(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:ab(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:ab(e==="white"?r.white:r.black,r.luminanceThreshold),variable:`--mantine-color-${e}`};const[o,a]=e.split("."),i=a?Number(a):void 0,s=o in r.colors;if(s){const l=i!==void 0?r.colors[o][i]:r.colors[o][ob(r,n||"light")];return{color:o,value:l,shade:i,isThemeColor:s,isLight:ab(l,r.luminanceThreshold),variable:a?`--mantine-color-${o}-${i}`:`--mantine-color-${o}-filled`}}return{color:e,value:e,isThemeColor:s,isLight:ab(e,r.luminanceThreshold),shade:i,variable:void 0}}function Jo(e,r){const n=nh({color:e||r.primaryColor,theme:r});return n.variable?`var(${n.variable})`:e}function lat(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 woe(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}=xoe(e);return`rgba(${n}, ${o}, ${a}, ${r})`}const ag=woe,cat={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"]},koe="-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji",uat={scale:1,fontSmoothing:!0,white:"#fff",black:"#000",colors:cat,primaryShade:{light:6,dark:8},primaryColor:"blue",autoContrast:!1,luminanceThreshold:.3,fontFamily:koe,fontFamilyMonospace:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace",cursorType:"default",defaultRadius:"sm",headings:{fontFamily:koe,fontWeight:"700",textWrap:"wrap",sizes:{h1:{fontSize:qe(34),lineHeight:"1.3"},h2:{fontSize:qe(26),lineHeight:"1.35"},h3:{fontSize:qe(22),lineHeight:"1.4"},h4:{fontSize:qe(18),lineHeight:"1.45"},h5:{fontSize:qe(16),lineHeight:"1.5"},h6:{fontSize:qe(14),lineHeight:"1.5"}}},fontSizes:{xs:qe(12),sm:qe(14),md:qe(16),lg:qe(18),xl:qe(20)},lineHeights:{xs:"1.4",sm:"1.45",md:"1.55",lg:"1.6",xl:"1.65"},radius:{xs:qe(2),sm:qe(4),md:qe(8),lg:qe(16),xl:qe(32)},spacing:{xs:qe(10),sm:qe(12),md:qe(16),lg:qe(20),xl:qe(32)},breakpoints:{xs:"36em",sm:"48em",md:"62em",lg:"75em",xl:"88em"},shadows:{xs:`0 ${qe(1)} ${qe(3)} rgba(0, 0, 0, 0.05), 0 ${qe(1)} ${qe(2)} rgba(0, 0, 0, 0.1)`,sm:`0 ${qe(1)} ${qe(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${qe(10)} ${qe(15)} ${qe(-5)}, rgba(0, 0, 0, 0.04) 0 ${qe(7)} ${qe(7)} ${qe(-5)}`,md:`0 ${qe(1)} ${qe(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${qe(20)} ${qe(25)} ${qe(-5)}, rgba(0, 0, 0, 0.04) 0 ${qe(10)} ${qe(10)} ${qe(-5)}`,lg:`0 ${qe(1)} ${qe(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${qe(28)} ${qe(23)} ${qe(-7)}, rgba(0, 0, 0, 0.04) 0 ${qe(12)} ${qe(12)} ${qe(-7)}`,xl:`0 ${qe(1)} ${qe(3)} rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.05) 0 ${qe(36)} ${qe(28)} ${qe(-7)}, rgba(0, 0, 0, 0.04) 0 ${qe(17)} ${qe(17)} ${qe(-7)}`}},dat=E.createContext(null);function _o(){const e=E.useContext(dat);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 JR({color:e,theme:r,autoContrast:n}){return(typeof n=="boolean"?n:r.autoContrast)&&nh({color:e||r.primaryColor,theme:r}).isLight?"var(--mantine-color-black)":"var(--mantine-color-white)"}function _oe(e,r){return JR({color:e.colors[e.primaryColor][ob(e,r)],theme:e,autoContrast:null})}function rk({theme:e,color:r,colorScheme:n,name:o=r,withColorValues:a=!0}){if(!e.colors[r])return{};if(n==="light"){const l=ob(e,"light"),c={[`--mantine-color-${o}-text`]:`var(--mantine-color-${o}-filled)`,[`--mantine-color-${o}-filled`]:`var(--mantine-color-${o}-${l})`,[`--mantine-color-${o}-filled-hover`]:`var(--mantine-color-${o}-${l===9?8:l+1})`,[`--mantine-color-${o}-light`]:ag(e.colors[r][l],.1),[`--mantine-color-${o}-light-hover`]:ag(e.colors[r][l],.12),[`--mantine-color-${o}-light-color`]:`var(--mantine-color-${o}-${l})`,[`--mantine-color-${o}-outline`]:`var(--mantine-color-${o}-${l})`,[`--mantine-color-${o}-outline-hover`]:ag(e.colors[r][l],.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=ob(e,"dark"),s={[`--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`]:ag(e.colors[r][Math.max(0,i-2)],.15),[`--mantine-color-${o}-light-hover`]:ag(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`]:ag(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],...s}:s}function pat(e){return!!e&&typeof e=="object"&&"mantine-virtual-color"in e}function ig(e,r,n){Bo(r).forEach(o=>Object.assign(e,{[`--mantine-${n}-${o}`]:r[o]}))}(e=>{const r=ob(e,"light"),n=e.defaultRadius in e.radius?e.radius[e.defaultRadius]:qe(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":_oe(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":_oe(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)"}};ig(o.variables,e.breakpoints,"breakpoint"),ig(o.variables,e.spacing,"spacing"),ig(o.variables,e.fontSizes,"font-size"),ig(o.variables,e.lineHeights,"line-height"),ig(o.variables,e.shadows,"shadow"),ig(o.variables,e.radius,"radius"),e.colors[e.primaryColor].forEach((i,s)=>{o.variables[`--mantine-primary-color-${s}`]=`var(--mantine-color-${e.primaryColor}-${s})`}),Bo(e.colors).forEach(i=>{const s=e.colors[i];if(pat(s)){Object.assign(o.light,rk({theme:e,name:s.name,color:s.light,colorScheme:"light",withColorValues:!0})),Object.assign(o.dark,rk({theme:e,name:s.name,color:s.dark,colorScheme:"dark",withColorValues:!0}));return}s.forEach((l,c)=>{o.variables[`--mantine-color-${i}-${c}`]=l}),Object.assign(o.light,rk({theme:e,color:i,colorScheme:"light",withColorValues:!1})),Object.assign(o.dark,rk({theme:e,color:i,colorScheme:"dark",withColorValues:!1}))});const a=e.headings.sizes;return Bo(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})(uat);function eN({classNames:e,styles:r,props:n,stylesCtx:o}){const a=_o();return{resolvedClassNames:J4({theme:a,classNames:e,props:n,stylesCtx:o||void 0}),resolvedStyles:ek({theme:a,styles:r,props:n,stylesCtx:o||void 0})}}const hat={always:"mantine-focus-always",auto:"mantine-focus-auto",never:"mantine-focus-never"};function fat({theme:e,options:r,unstyled:n}){return ho(r?.focusable&&!n&&(e.focusClassName||hat[e.focusRing]),r?.active&&!n&&e.activeClassName)}function mat({selector:e,stylesCtx:r,options:n,props:o,theme:a}){return J4({theme:a,classNames:n?.classNames,props:n?.props||o,stylesCtx:r})[e]}function Eoe({selector:e,stylesCtx:r,theme:n,classNames:o,props:a}){return J4({theme:n,classNames:o,props:a,stylesCtx:r})[e]}function gat({rootSelector:e,selector:r,className:n}){return e===r?n:void 0}function yat({selector:e,classes:r,unstyled:n}){return n?void 0:r[e]}function bat({themeName:e,classNamesPrefix:r,selector:n,withStaticClass:o}){return o===!1?[]:e.map(a=>`${r}-${a}-${n}`)}function vat({themeName:e,theme:r,selector:n,props:o,stylesCtx:a}){return e.map(i=>J4({theme:r,classNames:r.components[i]?.classNames,props:o,stylesCtx:a})?.[n])}function xat({options:e,classes:r,selector:n,unstyled:o}){return e?.variant&&!o?r[`${n}--${e.variant}`]:void 0}function wat({theme:e,options:r,themeName:n,selector:o,classNamesPrefix:a,classNames:i,classes:s,unstyled:l,className:c,rootSelector:u,props:d,stylesCtx:h,withStaticClasses:f,headless:g,transformedStyles:b}){return ho(fat({theme:e,options:r,unstyled:l||g}),vat({theme:e,themeName:n,selector:o,props:d,stylesCtx:h}),xat({options:r,classes:s,selector:o,unstyled:l}),Eoe({selector:o,stylesCtx:h,theme:e,classNames:i,props:d}),Eoe({selector:o,stylesCtx:h,theme:e,classNames:b,props:d}),mat({selector:o,stylesCtx:h,options:r,props:d,theme:e}),gat({rootSelector:u,selector:o,className:c}),yat({selector:o,classes:s,unstyled:l||g}),f&&!g&&bat({themeName:n,classNamesPrefix:a,selector:o,withStaticClass:r?.withStaticClass}),r?.className)}function kat({theme:e,themeName:r,props:n,stylesCtx:o,selector:a}){return r.map(i=>ek({theme:e,styles:e.components[i]?.styles,props:n,stylesCtx:o})[a]).reduce((i,s)=>({...i,...s}),{})}function tN({style:e,theme:r}){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,...tN({style:o,theme:r})}),{}):typeof e=="function"?e(r):e??{}}function _at(e){return e.reduce((r,n)=>(n&&Object.keys(n).forEach(o=>{r[o]={...r[o],...Zu(n[o])}}),r),{})}function Eat({vars:e,varsResolver:r,theme:n,props:o,stylesCtx:a,selector:i,themeName:s,headless:l}){return _at([l?{}:r?.(n,o,a),...s.map(c=>n.components?.[c]?.vars?.(n,o,a)),e?.(n,o,a)])?.[i]}function Sat({theme:e,themeName:r,selector:n,options:o,props:a,stylesCtx:i,rootSelector:s,styles:l,style:c,vars:u,varsResolver:d,headless:h,withStylesTransform:f}){return{...!f&&kat({theme:e,themeName:r,props:a,stylesCtx:i,selector:n}),...!f&&ek({theme:e,styles:l,props:a,stylesCtx:i})[n],...!f&&ek({theme:e,styles:o?.styles,props:o?.props||a,stylesCtx:i})[n],...Eat({theme:e,props:a,stylesCtx:i,vars:u,varsResolver:d,selector:n,themeName:r,headless:h}),...s===n?tN({style:c,theme:e}):null,...tN({style:o?.style,theme:e})}}function Cat({props:e,stylesCtx:r,themeName:n}){const o=_o(),a=tat()?.();return{getTransformedStyles:i=>a?[...i.map(s=>a(s,{props:e,theme:o,ctx:r})),...n.map(s=>a(o.components[s]?.styles,{props:e,theme:o,ctx:r}))].filter(Boolean):[],withStylesTransform:!!a}}function vt({name:e,classes:r,props:n,stylesCtx:o,className:a,style:i,rootSelector:s="root",unstyled:l,classNames:c,styles:u,vars:d,varsResolver:h,attributes:f}){const g=_o(),b=Kot(),x=Qot(),w=Jot(),k=(Array.isArray(e)?e:[e]).filter(T=>T),{withStylesTransform:C,getTransformedStyles:_}=Cat({props:n,stylesCtx:o,themeName:k});return(T,A)=>({className:wat({theme:g,options:A,themeName:k,selector:T,classNamesPrefix:b,classNames:c,classes:r,unstyled:l,className:a,rootSelector:s,props:n,stylesCtx:o,withStaticClasses:x,headless:w,transformedStyles:_([A?.styles,u])}),style:Sat({theme:g,themeName:k,selector:T,options:A,props:n,stylesCtx:o,rootSelector:s,styles:u,style:i,vars:d,varsResolver:h,headless:w,withStylesTransform:C}),...f?.[T]})}function Tat(e,r){return typeof e=="boolean"?e:r.autoContrast}function ze(e,r,n){const o=_o(),a=o.components[e]?.defaultProps,i=typeof a=="function"?a(o):a;return{...r,...i,...Zu(n)}}function rN(e){return Bo(e).reduce((r,n)=>e[n]!==void 0?`${r}${hot(n)}:${e[n]};`:r,"").trim()}function Aat({selector:e,styles:r,media:n,container:o}){const a=r?rN(r):"",i=Array.isArray(n)?n.map(l=>`@media${l.query}{${e}{${rN(l.styles)}}}`):[],s=Array.isArray(o)?o.map(l=>`@container ${l.query}{${e}{${rN(l.styles)}}}`):[];return`${a?`${e}{${a}}`:""}${i.join("")}${s.join("")}`.trim()}function sg(e){const r=Zot();return y.jsx("style",{"data-mantine-styles":"inline",nonce:r?.(),dangerouslySetInnerHTML:{__html:Aat(e)}})}function nN(e){const{m:r,mx:n,my:o,mt:a,mb:i,ml:s,mr:l,me:c,ms:u,p:d,px:h,py:f,pt:g,pb:b,pl:x,pr:w,pe:k,ps:C,bd:_,bdrs:T,bg:A,c:R,opacity:D,ff:N,fz:M,fw:O,lts:F,ta:L,lh:U,fs:P,tt:V,td:I,w:H,miw:q,maw:Z,h:W,mih:G,mah:K,bgsz:j,bgp:Y,bgr:Q,bga:J,pos:ie,top:ne,left:re,bottom:ge,right:De,inset:he,display:me,flex:Te,hiddenFrom:Ie,visibleFrom:Ze,lightHidden:rt,darkHidden:Rt,sx:Qe,...Pt}=e;return{styleProps:Zu({m:r,mx:n,my:o,mt:a,mb:i,ml:s,mr:l,me:c,ms:u,p:d,px:h,py:f,pt:g,pb:b,pl:x,pr:w,pe:k,ps:C,bd:_,bg:A,c:R,opacity:D,ff:N,fz:M,fw:O,lts:F,ta:L,lh:U,fs:P,tt:V,td:I,w:H,miw:q,maw:Z,h:W,mih:G,mah:K,bgsz:j,bgp:Y,bgr:Q,bga:J,pos:ie,top:ne,left:re,bottom:ge,right:De,inset:he,display:me,flex:Te,bdrs:T,hiddenFrom:Ie,visibleFrom:Ze,lightHidden:rt,darkHidden:Rt,sx:Qe}),rest:Pt}}const Rat={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 oN(e,r){const n=nh({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 Nat(e,r){const n=nh({color:e,theme:r});return n.isThemeColor&&n.shade===void 0?`var(--mantine-color-${n.color}-text)`:oN(e,r)}function Dat(e,r){if(typeof e=="number")return qe(e);if(typeof e=="string"){const[n,o,...a]=e.split(" ").filter(s=>s.trim()!=="");let i=`${qe(n)}`;return o&&(i+=` ${o}`),a.length>0&&(i+=` ${oN(a.join(" "),r)}`),i.trim()}return e}const Soe={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 $at(e){return typeof e=="string"&&e in Soe?Soe[e]:e}const Mat=["h1","h2","h3","h4","h5","h6"];function Pat(e,r){return typeof e=="string"&&e in r.fontSizes?`var(--mantine-font-size-${e})`:typeof e=="string"&&Mat.includes(e)?`var(--mantine-${e}-font-size)`:typeof e=="number"||typeof e=="string"?qe(e):e}function zat(e){return e}const Iat=["h1","h2","h3","h4","h5","h6"];function Oat(e,r){return typeof e=="string"&&e in r.lineHeights?`var(--mantine-line-height-${e})`:typeof e=="string"&&Iat.includes(e)?`var(--mantine-${e}-line-height)`:e}function jat(e,r){return typeof e=="string"&&e in r.radius?`var(--mantine-radius-${e})`:typeof e=="number"||typeof e=="string"?qe(e):e}function Lat(e){return typeof e=="number"?qe(e):e}function Bat(e,r){if(typeof e=="number")return qe(e);if(typeof e=="string"){const n=e.replace("-","");if(!(n in r.spacing))return qe(e);const o=`--mantine-spacing-${n}`;return e.startsWith("-")?`calc(var(${o}) * -1)`:`var(${o})`}return e}const aN={color:oN,textColor:Nat,fontSize:Pat,spacing:Bat,radius:jat,identity:zat,size:Lat,lineHeight:Oat,fontFamily:$at,border:Dat};function Coe(e){return e.replace("(min-width: ","").replace("em)","")}function Fat({media:e,...r}){const n=Object.keys(e).sort((o,a)=>Number(Coe(o))-Number(Coe(a))).map(o=>({query:o,styles:e[o]}));return{...r,media:n}}function Hat(e){if(typeof e!="object"||e===null)return!1;const r=Object.keys(e);return!(r.length===1&&r[0]==="base")}function Vat(e){return typeof e=="object"&&e!==null?"base"in e?e.base:void 0:e}function qat(e){return typeof e=="object"&&e!==null?Bo(e).filter(r=>r!=="base"):[]}function Uat(e,r){return typeof e=="object"&&e!==null&&r in e?e[r]:e}function Toe({styleProps:e,data:r,theme:n}){return Fat(Bo(e).reduce((o,a)=>{if(a==="hiddenFrom"||a==="visibleFrom"||a==="sx")return o;const i=r[a],s=Array.isArray(i.property)?i.property:[i.property],l=Vat(e[a]);if(!Hat(e[a]))return s.forEach(u=>{o.inlineStyles[u]=aN[i.type](l,n)}),o;o.hasResponsiveStyles=!0;const c=qat(e[a]);return s.forEach(u=>{l!=null&&(o.styles[u]=aN[i.type](l,n)),c.forEach(d=>{const h=`(min-width: ${n.breakpoints[d]})`;o.media[h]={...o.media[h],[u]:aN[i.type](Uat(e[a],d),n)}})}),o},{hasResponsiveStyles:!1,styles:{},inlineStyles:{},media:{}}))}function ib(){return`__m__-${E.useId().replace(/[:«»]/g,"")}`}function iN(e,r){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,...iN(o,r)}),{}):typeof e=="function"?e(r):e??{}}function Aoe(e){return e.startsWith("data-")?e:`data-${e}`}function Wat(e){return Object.keys(e).reduce((r,n)=>{const o=e[n];return o===void 0||o===""||o===!1||o===null||(r[Aoe(n)]=e[n]),r},{})}function Roe(e){return e?typeof e=="string"?{[Aoe(e)]:!0}:Array.isArray(e)?[...e].reduce((r,n)=>({...r,...Roe(n)}),{}):Wat(e):null}function sN(e,r){return Array.isArray(e)?[...e].reduce((n,o)=>({...n,...sN(o,r)}),{}):typeof e=="function"?e(r):e??{}}function Yat({theme:e,style:r,vars:n,styleProps:o}){const a=sN(r,e),i=sN(n,e);return{...a,...i,...o}}const Noe=E.forwardRef(({component:e,style:r,__vars:n,className:o,variant:a,mod:i,size:s,hiddenFrom:l,visibleFrom:c,lightHidden:u,darkHidden:d,renderRoot:h,__size:f,...g},b)=>{const x=_o(),w=e||"div",{styleProps:k,rest:C}=nN(g),_=eat()?.()?.(k.sx),T=ib(),A=Toe({styleProps:k,theme:x,data:Rat}),R={ref:b,style:Yat({theme:x,style:r,vars:n,styleProps:A.inlineStyles}),className:ho(o,_,{[T]:A.hasResponsiveStyles,"mantine-light-hidden":u,"mantine-dark-hidden":d,[`mantine-hidden-from-${l}`]:l,[`mantine-visible-from-${c}`]:c}),"data-variant":a,"data-size":coe(s)?void 0:s||void 0,size:f,...Roe(i),...C};return y.jsxs(y.Fragment,{children:[A.hasResponsiveStyles&&y.jsx(sg,{selector:`.${T}`,styles:A.styles,media:A.media}),typeof h=="function"?h(R):y.jsx(w,{...R})]})});Noe.displayName="@mantine/core/Box";const Le=Noe;function Doe(e){return e}function Je(e){const r=E.forwardRef(e);return r.extend=Doe,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 Jn(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=Doe,r}const Gat=E.createContext({dir:"ltr",toggleDirection:()=>{},setDirection:()=>{}});function Rc(){return E.useContext(Gat)}function Xat(e){if(!e||typeof e=="string")return 0;const r=e/36;return Math.round((4+15*r**.25+r/5)*10)}function lN(e){return e?.current?e.current.scrollHeight:"auto"}const nk=typeof window<"u"&&window.requestAnimationFrame,$oe=0,Kat=e=>({height:0,overflow:"hidden",...e?{}:{display:"none"}});function Zat({transitionDuration:e,transitionTimingFunction:r="ease",onTransitionEnd:n=()=>{},opened:o,keepMounted:a=!1}){const i=E.useRef(null),s=Kat(a),[l,c]=E.useState(o?{}:s),u=b=>{Ki.flushSync(()=>c(b))},d=b=>{u(x=>({...x,...b}))};function h(b){const x=e||Xat(b);return{transition:`height ${x}ms ${r}, opacity ${x}ms ${r}`}}th(()=>{typeof nk=="function"&&nk(o?()=>{d({willChange:"height",display:"block",overflow:"hidden"}),nk(()=>{const b=lN(i);d({...h(b),height:b})})}:()=>{const b=lN(i);d({...h(b),willChange:"height",height:b}),nk(()=>d({height:$oe,overflow:"hidden"}))})},[o]);const f=b=>{if(!(b.target!==i.current||b.propertyName!=="height"))if(o){const x=lN(i);x===l.height?u({}):d({height:x}),n()}else l.height===$oe&&(u(s),n())};function g({style:b={},refKey:x="ref",...w}={}){const k=w[x],C={"aria-hidden":!o,...w,[x]:goe(i,k),onTransitionEnd:f,style:{boxSizing:"border-box",...b,...l}};return dn.version.startsWith("18")?o||(C.inert=""):C.inert=!o,C}return g}const Qat={transitionDuration:200,transitionTimingFunction:"ease",animateOpacity:!0},Moe=Je((e,r)=>{const{children:n,in:o,transitionDuration:a,transitionTimingFunction:i,style:s,onTransitionEnd:l,animateOpacity:c,keepMounted:u,...d}=ze("Collapse",Qat,e),h=_o(),f=ZR(),g=h.respectReducedMotion&&f?0:a,b=Zat({opened:o,transitionDuration:g,transitionTimingFunction:i,onTransitionEnd:l,keepMounted:u});return g===0?o?y.jsx(Le,{...d,children:n}):null:y.jsx(Le,{...b({style:{opacity:o||!c?1:0,transition:c?`opacity ${g}ms ${i}`:"none",...iN(s,h)},ref:r,...d}),children:n})});Moe.displayName="@mantine/core/Collapse";function ok(){return typeof window<"u"}function lg(e){return Poe(e)?(e.nodeName||"").toLowerCase():"#document"}function ga(e){var r;return(e==null||(r=e.ownerDocument)==null?void 0:r.defaultView)||window}function Sl(e){var r;return(r=(Poe(e)?e.ownerDocument:e.document)||window.document)==null?void 0:r.documentElement}function Poe(e){return ok()?e instanceof Node||e instanceof ga(e).Node:!1}function Ur(e){return ok()?e instanceof Element||e instanceof ga(e).Element:!1}function Ua(e){return ok()?e instanceof HTMLElement||e instanceof ga(e).HTMLElement:!1}function cN(e){return!ok()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof ga(e).ShadowRoot}const Jat=new Set(["inline","contents"]);function sb(e){const{overflow:r,overflowX:n,overflowY:o,display:a}=$i(e);return/auto|scroll|overlay|hidden|clip/.test(r+o+n)&&!Jat.has(a)}const eit=new Set(["table","td","th"]);function tit(e){return eit.has(lg(e))}const rit=[":popover-open",":modal"];function ak(e){return rit.some(r=>{try{return e.matches(r)}catch{return!1}})}const nit=["transform","translate","scale","rotate","perspective"],oit=["transform","translate","scale","rotate","perspective","filter"],ait=["paint","layout","strict","content"];function uN(e){const r=ik(),n=Ur(e)?$i(e):e;return nit.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)||oit.some(o=>(n.willChange||"").includes(o))||ait.some(o=>(n.contain||"").includes(o))}function iit(e){let r=Dc(e);for(;Ua(r)&&!Nc(r);){if(uN(r))return r;if(ak(r))return null;r=Dc(r)}return null}function ik(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const sit=new Set(["html","body","#document"]);function Nc(e){return sit.has(lg(e))}function $i(e){return ga(e).getComputedStyle(e)}function sk(e){return Ur(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Dc(e){if(lg(e)==="html")return e;const r=e.assignedSlot||e.parentNode||cN(e)&&e.host||Sl(e);return cN(r)?r.host:r}function zoe(e){const r=Dc(e);return Nc(r)?e.ownerDocument?e.ownerDocument.body:e.body:Ua(r)&&sb(r)?r:zoe(r)}function $c(e,r,n){var o;r===void 0&&(r=[]),n===void 0&&(n=!0);const a=zoe(e),i=a===((o=e.ownerDocument)==null?void 0:o.body),s=ga(a);if(i){const l=dN(s);return r.concat(s,s.visualViewport||[],sb(a)?a:[],l&&n?$c(l):[])}return r.concat(a,$c(a,[],n))}function dN(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}const lit=["top","right","bottom","left"],zs=Math.min,Ho=Math.max,lk=Math.round,ck=Math.floor,Cl=e=>({x:e,y:e}),cit={left:"right",right:"left",bottom:"top",top:"bottom"},uit={start:"end",end:"start"};function pN(e,r,n){return Ho(e,zs(r,n))}function Tl(e,r){return typeof e=="function"?e(r):e}function Is(e){return e.split("-")[0]}function cg(e){return e.split("-")[1]}function hN(e){return e==="x"?"y":"x"}function fN(e){return e==="y"?"height":"width"}const dit=new Set(["top","bottom"]);function Os(e){return dit.has(Is(e))?"y":"x"}function mN(e){return hN(Os(e))}function pit(e,r,n){n===void 0&&(n=!1);const o=cg(e),a=mN(e),i=fN(a);let s=a==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return r.reference[i]>r.floating[i]&&(s=uk(s)),[s,uk(s)]}function hit(e){const r=uk(e);return[gN(e),r,gN(r)]}function gN(e){return e.replace(/start|end/g,r=>uit[r])}const Ioe=["left","right"],Ooe=["right","left"],fit=["top","bottom"],mit=["bottom","top"];function git(e,r,n){switch(e){case"top":case"bottom":return n?r?Ooe:Ioe:r?Ioe:Ooe;case"left":case"right":return r?fit:mit;default:return[]}}function yit(e,r,n,o){const a=cg(e);let i=git(Is(e),n==="start",o);return a&&(i=i.map(s=>s+"-"+a),r&&(i=i.concat(i.map(gN)))),i}function uk(e){return e.replace(/left|right|bottom|top/g,r=>cit[r])}function bit(e){return{top:0,right:0,bottom:0,left:0,...e}}function yN(e){return typeof e!="number"?bit(e):{top:e,right:e,bottom:e,left:e}}function ug(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 vit(){const e=navigator.userAgentData;return e!=null&&e.platform?e.platform:navigator.platform}function xit(){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 wit(){return/apple/i.test(navigator.vendor)}function kit(){return vit().toLowerCase().startsWith("mac")&&!navigator.maxTouchPoints}function _it(){return xit().includes("jsdom/")}const joe="data-floating-ui-focusable",Eit="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";function Loe(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 lb(e,r){if(!e||!r)return!1;const n=r.getRootNode==null?void 0:r.getRootNode();if(e.contains(r))return!0;if(n&&cN(n)){let o=r;for(;o;){if(e===o)return!0;o=o.parentNode||o.host}}return!1}function dg(e){return"composedPath"in e?e.composedPath()[0]:e.target}function bN(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 Sit(e){return e.matches("html,body")}function oh(e){return e?.ownerDocument||document}function Cit(e){return Ua(e)&&e.matches(Eit)}function Tit(e){if(!e||_it())return!0;try{return e.matches(":focus-visible")}catch{return!0}}function Ait(e){return e?e.hasAttribute(joe)?e:e.querySelector("["+joe+"]")||e:null}function dk(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,...dk(e,o.id,n)])}function Rit(e){return"nativeEvent"in e}function vN(e,r){const n=["mouse","pen"];return n.push("",void 0),n.includes(e)}var Nit=typeof document<"u",Dit=function(){},Al=Nit?E.useLayoutEffect:Dit;const $it={...Hv};function pk(e){const r=E.useRef(e);return Al(()=>{r.current=e}),r}const Mit=$it.useInsertionEffect,Pit=Mit||(e=>e());function Rl(e){const r=E.useRef(()=>{});return Pit(()=>{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:s}=n,l=i.filter(Boolean),c=await(s.isRTL==null?void 0:s.isRTL(r));let u=await s.getElementRects({reference:e,floating:r,strategy:a}),{x:d,y:h}=Boe(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:s,elements:l,middlewareData:c}=r,{element:u,padding:d=0}=Tl(e,r)||{};if(u==null)return{};const h=yN(d),f={x:n,y:o},g=mN(a),b=fN(g),x=await s.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],A=f[g]-i.reference[g],R=await(s.getOffsetParent==null?void 0:s.getOffsetParent(u));let D=R?R[_]:0;(!D||!await(s.isElement==null?void 0:s.isElement(R)))&&(D=l.floating[_]||i.floating[b]);const N=T/2-A/2,M=D/2-x[b]/2-1,O=zs(h[k],M),F=zs(h[C],M),L=O,U=D-x[b]-F,P=D/2-x[b]/2+N,V=pN(L,P,U),I=!c.arrow&&cg(a)!=null&&P!==V&&i.reference[b]/2-(PP<=0)){var F,L;const P=(((F=i.flip)==null?void 0:F.index)||0)+1,V=D[P];if(V&&(!(h==="alignment"&&C!==Os(V))||O.every(H=>Os(H.placement)===C?H.overflows[0]>0:!0)))return{data:{index:P,overflows:O},reset:{placement:V}};let I=(L=O.filter(H=>H.overflows[0]<=0).sort((H,q)=>H.overflows[1]-q.overflows[1])[0])==null?void 0:L.placement;if(!I)switch(g){case"bestFit":{var U;const H=(U=O.filter(q=>{if(R){const Z=Os(q.placement);return Z===C||Z==="y"}return!0}).map(q=>[q.placement,q.overflows.filter(Z=>Z>0).reduce((Z,W)=>Z+W,0)]).sort((q,Z)=>q[1]-Z[1])[0])==null?void 0:U[0];H&&(I=H);break}case"initialPlacement":I=l;break}if(a!==I)return{reset:{placement:I}}}return{}}}};function Foe(e,r){return{top:e.top-r.height,right:e.right-r.width,bottom:e.bottom-r.height,left:e.left-r.width}}function Hoe(e){return lit.some(r=>e[r]>=0)}const jit=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 cb(r,{...a,elementContext:"reference"}),s=Foe(i,n.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:Hoe(s)}}}case"escaped":{const i=await cb(r,{...a,altBoundary:!0}),s=Foe(i,n.floating);return{data:{escapedOffsets:s,escaped:Hoe(s)}}}default:return{}}}}};function Voe(e){const r=zs(...e.map(i=>i.left)),n=zs(...e.map(i=>i.top)),o=Ho(...e.map(i=>i.right)),a=Ho(...e.map(i=>i.bottom));return{x:r,y:n,width:o-r,height:a-n}}function Lit(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=>ug(Voe(a)))}const Bit=function(e){return e===void 0&&(e={}),{name:"inline",options:e,async fn(r){const{placement:n,elements:o,rects:a,platform:i,strategy:s}=r,{padding:l=2,x:c,y:u}=Tl(e,r),d=Array.from(await(i.getClientRects==null?void 0:i.getClientRects(o.reference))||[]),h=Lit(d),f=ug(Voe(d)),g=yN(l);function b(){if(h.length===2&&h[0].left>h[1].right&&c!=null&&u!=null)return h.find(w=>c>w.left-g.left&&cw.top-g.top&&u=2){if(Os(n)==="y"){const O=h[0],F=h[h.length-1],L=Is(n)==="top",U=O.top,P=F.bottom,V=L?O.left:F.left,I=L?O.right:F.right,H=I-V,q=P-U;return{top:U,bottom:P,left:V,right:I,width:H,height:q,x:V,y:U}}const w=Is(n)==="left",k=Ho(...h.map(O=>O.right)),C=zs(...h.map(O=>O.left)),_=h.filter(O=>w?O.left===C:O.right===k),T=_[0].top,A=_[_.length-1].bottom,R=C,D=k,N=D-R,M=A-T;return{top:T,bottom:A,left:R,right:D,width:N,height:M,x:R,y:T}}return f}const x=await i.getElementRects({reference:{getBoundingClientRect:b},floating:o.floating,strategy:s});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}}:{}}}},qoe=new Set(["left","top"]);async function Fit(e,r){const{placement:n,platform:o,elements:a}=e,i=await(o.isRTL==null?void 0:o.isRTL(a.floating)),s=Is(n),l=cg(n),c=Os(n)==="y",u=qoe.has(s)?-1:1,d=i&&c?-1:1,h=Tl(r,e);let{mainAxis:f,crossAxis:g,alignmentAxis:b}=typeof h=="number"?{mainAxis:h,crossAxis:0,alignmentAxis:null}:{mainAxis:h.mainAxis||0,crossAxis:h.crossAxis||0,alignmentAxis:h.alignmentAxis};return l&&typeof b=="number"&&(g=l==="end"?b*-1:b),c?{x:g*d,y:f*u}:{x:f*u,y:g*d}}const Hit=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(r){var n,o;const{x:a,y:i,placement:s,middlewareData:l}=r,c=await Fit(r,e);return s===((n=l.offset)==null?void 0:n.placement)&&(o=l.arrow)!=null&&o.alignmentOffset?{}:{x:a+c.x,y:i+c.y,data:{...c,placement:s}}}}},Vit=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:s=!1,limiter:l={fn:w=>{let{x:k,y:C}=w;return{x:k,y:C}}},...c}=Tl(e,r),u={x:n,y:o},d=await cb(r,c),h=Os(Is(a)),f=hN(h);let g=u[f],b=u[h];if(i){const w=f==="y"?"top":"left",k=f==="y"?"bottom":"right",C=g+d[w],_=g-d[k];g=pN(C,g,_)}if(s){const w=h==="y"?"top":"left",k=h==="y"?"bottom":"right",C=b+d[w],_=b-d[k];b=pN(C,b,_)}const x=l.fn({...r,[f]:g,[h]:b});return{...x,data:{x:x.x-n,y:x.y-o,enabled:{[f]:i,[h]:s}}}}}},qit=function(e){return e===void 0&&(e={}),{options:e,fn(r){const{x:n,y:o,placement:a,rects:i,middlewareData:s}=r,{offset:l=0,mainAxis:c=!0,crossAxis:u=!0}=Tl(e,r),d={x:n,y:o},h=Os(a),f=hN(h);let g=d[f],b=d[h];const x=Tl(l,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,A=i.reference[f]+i.reference[_]-w.mainAxis;gA&&(g=A)}if(u){var k,C;const _=f==="y"?"width":"height",T=qoe.has(Is(a)),A=i.reference[h]-i.floating[_]+(T&&((k=s.offset)==null?void 0:k[h])||0)+(T?0:w.crossAxis),R=i.reference[h]+i.reference[_]+(T?0:((C=s.offset)==null?void 0:C[h])||0)-(T?w.crossAxis:0);bR&&(b=R)}return{[f]:g,[h]:b}}}},Uit=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(r){var n,o;const{placement:a,rects:i,platform:s,elements:l}=r,{apply:c=()=>{},...u}=Tl(e,r),d=await cb(r,u),h=Is(a),f=cg(a),g=Os(a)==="y",{width:b,height:x}=i.floating;let w,k;h==="top"||h==="bottom"?(w=h,k=f===(await(s.isRTL==null?void 0:s.isRTL(l.floating))?"start":"end")?"left":"right"):(k=h,w=f==="end"?"top":"bottom");const C=x-d.top-d.bottom,_=b-d.left-d.right,T=zs(x-d[w],C),A=zs(b-d[k],_),R=!r.middlewareData.shift;let D=T,N=A;if((n=r.middlewareData.shift)!=null&&n.enabled.x&&(N=_),(o=r.middlewareData.shift)!=null&&o.enabled.y&&(D=C),R&&!f){const O=Ho(d.left,0),F=Ho(d.right,0),L=Ho(d.top,0),U=Ho(d.bottom,0);g?N=b-2*(O!==0||F!==0?O+F:Ho(d.left,d.right)):D=x-2*(L!==0||U!==0?L+U:Ho(d.top,d.bottom))}await c({...r,availableWidth:N,availableHeight:D});const M=await s.getDimensions(l.floating);return b!==M.width||x!==M.height?{reset:{rects:!0}}:{}}}};function Uoe(e){const r=$i(e);let n=parseFloat(r.width)||0,o=parseFloat(r.height)||0;const a=Ua(e),i=a?e.offsetWidth:n,s=a?e.offsetHeight:o,l=lk(n)!==i||lk(o)!==s;return l&&(n=i,o=s),{width:n,height:o,$:l}}function xN(e){return Ur(e)?e:e.contextElement}function pg(e){const r=xN(e);if(!Ua(r))return Cl(1);const n=r.getBoundingClientRect(),{width:o,height:a,$:i}=Uoe(r);let s=(i?lk(n.width):n.width)/o,l=(i?lk(n.height):n.height)/a;return(!s||!Number.isFinite(s))&&(s=1),(!l||!Number.isFinite(l))&&(l=1),{x:s,y:l}}const Wit=Cl(0);function Woe(e){const r=ga(e);return!ik()||!r.visualViewport?Wit:{x:r.visualViewport.offsetLeft,y:r.visualViewport.offsetTop}}function Yit(e,r,n){return r===void 0&&(r=!1),!n||r&&n!==ga(e)?!1:r}function ah(e,r,n,o){r===void 0&&(r=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),i=xN(e);let s=Cl(1);r&&(o?Ur(o)&&(s=pg(o)):s=pg(e));const l=Yit(i,n,o)?Woe(i):Cl(0);let c=(a.left+l.x)/s.x,u=(a.top+l.y)/s.y,d=a.width/s.x,h=a.height/s.y;if(i){const f=ga(i),g=o&&Ur(o)?ga(o):o;let b=f,x=dN(b);for(;x&&o&&g!==b;){const w=pg(x),k=x.getBoundingClientRect(),C=$i(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,h*=w.y,c+=_,u+=T,b=ga(x),x=dN(b)}}return ug({width:d,height:h,x:c,y:u})}function hk(e,r){const n=sk(e).scrollLeft;return r?r.left+n:ah(Sl(e)).left+n}function Yoe(e,r){const n=e.getBoundingClientRect(),o=n.left+r.scrollLeft-hk(e,n),a=n.top+r.scrollTop;return{x:o,y:a}}function Git(e){let{elements:r,rect:n,offsetParent:o,strategy:a}=e;const i=a==="fixed",s=Sl(o),l=r?ak(r.floating):!1;if(o===s||l&&i)return n;let c={scrollLeft:0,scrollTop:0},u=Cl(1);const d=Cl(0),h=Ua(o);if((h||!h&&!i)&&((lg(o)!=="body"||sb(s))&&(c=sk(o)),Ua(o))){const g=ah(o);u=pg(o),d.x=g.x+o.clientLeft,d.y=g.y+o.clientTop}const f=s&&!h&&!i?Yoe(s,c):Cl(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 Xit(e){return Array.from(e.getClientRects())}function Kit(e){const r=Sl(e),n=sk(e),o=e.ownerDocument.body,a=Ho(r.scrollWidth,r.clientWidth,o.scrollWidth,o.clientWidth),i=Ho(r.scrollHeight,r.clientHeight,o.scrollHeight,o.clientHeight);let s=-n.scrollLeft+hk(e);const l=-n.scrollTop;return $i(o).direction==="rtl"&&(s+=Ho(r.clientWidth,o.clientWidth)-a),{width:a,height:i,x:s,y:l}}const Goe=25;function Zit(e,r){const n=ga(e),o=Sl(e),a=n.visualViewport;let i=o.clientWidth,s=o.clientHeight,l=0,c=0;if(a){i=a.width,s=a.height;const d=ik();(!d||d&&r==="fixed")&&(l=a.offsetLeft,c=a.offsetTop)}const u=hk(o);if(u<=0){const d=o.ownerDocument,h=d.body,f=getComputedStyle(h),g=d.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,b=Math.abs(o.clientWidth-h.clientWidth-g);b<=Goe&&(i-=b)}else u<=Goe&&(i+=u);return{width:i,height:s,x:l,y:c}}const Qit=new Set(["absolute","fixed"]);function Jit(e,r){const n=ah(e,!0,r==="fixed"),o=n.top+e.clientTop,a=n.left+e.clientLeft,i=Ua(e)?pg(e):Cl(1),s=e.clientWidth*i.x,l=e.clientHeight*i.y,c=a*i.x,u=o*i.y;return{width:s,height:l,x:c,y:u}}function Xoe(e,r,n){let o;if(r==="viewport")o=Zit(e,n);else if(r==="document")o=Kit(Sl(e));else if(Ur(r))o=Jit(r,n);else{const a=Woe(e);o={x:r.x-a.x,y:r.y-a.y,width:r.width,height:r.height}}return ug(o)}function Koe(e,r){const n=Dc(e);return n===r||!Ur(n)||Nc(n)?!1:$i(n).position==="fixed"||Koe(n,r)}function est(e,r){const n=r.get(e);if(n)return n;let o=$c(e,[],!1).filter(l=>Ur(l)&&lg(l)!=="body"),a=null;const i=$i(e).position==="fixed";let s=i?Dc(e):e;for(;Ur(s)&&!Nc(s);){const l=$i(s),c=uN(s);!c&&l.position==="fixed"&&(a=null),(i?!c&&!a:!c&&l.position==="static"&&a&&Qit.has(a.position)||sb(s)&&!c&&Koe(e,s))?o=o.filter(u=>u!==s):a=l,s=Dc(s)}return r.set(e,o),o}function tst(e){let{element:r,boundary:n,rootBoundary:o,strategy:a}=e;const i=[...n==="clippingAncestors"?ak(r)?[]:est(r,this._c):[].concat(n),o],s=i[0],l=i.reduce((c,u)=>{const d=Xoe(r,u,a);return c.top=Ho(d.top,c.top),c.right=zs(d.right,c.right),c.bottom=zs(d.bottom,c.bottom),c.left=Ho(d.left,c.left),c},Xoe(r,s,a));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function rst(e){const{width:r,height:n}=Uoe(e);return{width:r,height:n}}function nst(e,r,n){const o=Ua(r),a=Sl(r),i=n==="fixed",s=ah(e,!0,i,r);let l={scrollLeft:0,scrollTop:0};const c=Cl(0);function u(){c.x=hk(a)}if(o||!o&&!i)if((lg(r)!=="body"||sb(a))&&(l=sk(r)),o){const g=ah(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?Yoe(a,l):Cl(0),h=s.left+l.scrollLeft-c.x-d.x,f=s.top+l.scrollTop-c.y-d.y;return{x:h,y:f,width:s.width,height:s.height}}function wN(e){return $i(e).position==="static"}function Zoe(e,r){if(!Ua(e)||$i(e).position==="fixed")return null;if(r)return r(e);let n=e.offsetParent;return Sl(e)===n&&(n=n.ownerDocument.body),n}function Qoe(e,r){const n=ga(e);if(ak(e))return n;if(!Ua(e)){let a=Dc(e);for(;a&&!Nc(a);){if(Ur(a)&&!wN(a))return a;a=Dc(a)}return n}let o=Zoe(e,r);for(;o&&tit(o)&&wN(o);)o=Zoe(o,r);return o&&Nc(o)&&wN(o)&&!uN(o)?n:o||iit(e)||n}const ost=async function(e){const r=this.getOffsetParent||Qoe,n=this.getDimensions,o=await n(e.floating);return{reference:nst(e.reference,await r(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function ast(e){return $i(e).direction==="rtl"}const ist={convertOffsetParentRelativeRectToViewportRelativeRect:Git,getDocumentElement:Sl,getClippingRect:tst,getOffsetParent:Qoe,getElementRects:ost,getClientRects:Xit,getDimensions:rst,getScale:pg,isElement:Ur,isRTL:ast};function Joe(e,r){return e.x===r.x&&e.y===r.y&&e.width===r.width&&e.height===r.height}function sst(e,r){let n=null,o;const a=Sl(e);function i(){var l;clearTimeout(o),(l=n)==null||l.disconnect(),n=null}function s(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),i();const u=e.getBoundingClientRect(),{left:d,top:h,width:f,height:g}=u;if(l||r(),!f||!g)return;const b=ck(h),x=ck(a.clientWidth-(d+f)),w=ck(a.clientHeight-(h+g)),k=ck(d),C={rootMargin:-b+"px "+-x+"px "+-w+"px "+-k+"px",threshold:Ho(0,zs(1,c))||1};let _=!0;function T(A){const R=A[0].intersectionRatio;if(R!==c){if(!_)return s();R?s(!1,R):o=setTimeout(()=>{s(!1,1e-7)},1e3)}R===1&&!Joe(u,e.getBoundingClientRect())&&s(),_=!1}try{n=new IntersectionObserver(T,{...C,root:a.ownerDocument})}catch{n=new IntersectionObserver(T,C)}n.observe(e)}return s(!0),i}function kN(e,r,n,o){o===void 0&&(o={});const{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=o,u=xN(e),d=a||i?[...u?$c(u):[],...$c(r)]:[];d.forEach(k=>{a&&k.addEventListener("scroll",n,{passive:!0}),i&&k.addEventListener("resize",n)});const h=u&&l?sst(u,n):null;let f=-1,g=null;s&&(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?ah(e):null;c&&w();function w(){const k=ah(e);x&&!Joe(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)}),h?.(),(k=g)==null||k.disconnect(),g=null,c&&cancelAnimationFrame(b)}}const lst=Hit,cst=Vit,ust=Oit,dst=Uit,pst=jit,eae=Iit,hst=Bit,fst=qit,mst=(e,r,n)=>{const o=new Map,a={platform:ist,...n},i={...a.platform,_c:o};return zit(e,r,{...a,platform:i})};var gst=typeof document<"u",yst=function(){},fk=gst?E.useLayoutEffect:yst;function mk(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(!mk(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)&&!mk(e[i],r[i]))return!1}return!0}return e!==e&&r!==r}function tae(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function rae(e,r){const n=tae(e);return Math.round(r*n)/n}function _N(e){const r=E.useRef(e);return fk(()=>{r.current=e}),r}function bst(e){e===void 0&&(e={});const{placement:r="bottom",strategy:n="absolute",middleware:o=[],platform:a,elements:{reference:i,floating:s}={},transform:l=!0,whileElementsMounted:c,open:u}=e,[d,h]=E.useState({x:0,y:0,strategy:n,placement:r,middlewareData:{},isPositioned:!1}),[f,g]=E.useState(o);mk(f,o)||g(o);const[b,x]=E.useState(null),[w,k]=E.useState(null),C=E.useCallback(q=>{q!==R.current&&(R.current=q,x(q))},[]),_=E.useCallback(q=>{q!==D.current&&(D.current=q,k(q))},[]),T=i||b,A=s||w,R=E.useRef(null),D=E.useRef(null),N=E.useRef(d),M=c!=null,O=_N(c),F=_N(a),L=_N(u),U=E.useCallback(()=>{if(!R.current||!D.current)return;const q={placement:r,strategy:n,middleware:f};F.current&&(q.platform=F.current),mst(R.current,D.current,q).then(Z=>{const W={...Z,isPositioned:L.current!==!1};P.current&&!mk(N.current,W)&&(N.current=W,Ki.flushSync(()=>{h(W)}))})},[f,r,n,F,L]);fk(()=>{u===!1&&N.current.isPositioned&&(N.current.isPositioned=!1,h(q=>({...q,isPositioned:!1})))},[u]);const P=E.useRef(!1);fk(()=>(P.current=!0,()=>{P.current=!1}),[]),fk(()=>{if(T&&(R.current=T),A&&(D.current=A),T&&A){if(O.current)return O.current(T,A,U);U()}},[T,A,U,O,M]);const V=E.useMemo(()=>({reference:R,floating:D,setReference:C,setFloating:_}),[C,_]),I=E.useMemo(()=>({reference:T,floating:A}),[T,A]),H=E.useMemo(()=>{const q={position:n,left:0,top:0};if(!I.floating)return q;const Z=rae(I.floating,d.x),W=rae(I.floating,d.y);return l?{...q,transform:"translate("+Z+"px, "+W+"px)",...tae(I.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:Z,top:W}},[n,l,I.floating,d.x,d.y]);return E.useMemo(()=>({...d,update:U,refs:V,elements:I,floatingStyles:H}),[d,U,V,I,H])}const vst=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?eae({element:o.current,padding:a}).fn(n):{}:o?eae({element:o,padding:a}).fn(n):{}}}},nae=(e,r)=>({...lst(e),options:[e,r]}),EN=(e,r)=>({...cst(e),options:[e,r]}),oae=(e,r)=>({...fst(e),options:[e,r]}),gk=(e,r)=>({...ust(e),options:[e,r]}),xst=(e,r)=>({...dst(e),options:[e,r]}),wst=(e,r)=>({...pst(e),options:[e,r]}),ub=(e,r)=>({...hst(e),options:[e,r]}),aae=(e,r)=>({...vst(e),options:[e,r]});function iae(e){const r=E.useRef(void 0),n=E.useCallback(o=>{const a=e.map(i=>{if(i!=null){if(typeof i=="function"){const s=i,l=s(o);return typeof l=="function"?l:()=>{s(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 kst="data-floating-ui-focusable",sae="active",lae="selected",_st={...Hv};let cae=!1,Est=0;const uae=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+Est++;function Sst(){const[e,r]=E.useState(()=>cae?uae():void 0);return Al(()=>{e==null&&r(uae())},[]),E.useEffect(()=>{cae=!0},[]),e}const Cst=_st.useId,dae=Cst||Sst;function Tst(){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 Ast=E.createContext(null),Rst=E.createContext(null),SN=()=>{var e;return((e=E.useContext(Ast))==null?void 0:e.id)||null},CN=()=>E.useContext(Rst);function TN(e){return"data-floating-ui-"+e}function Mi(e){e.current!==-1&&(clearTimeout(e.current),e.current=-1)}const pae=TN("safe-polygon");function yk(e,r,n){if(n&&!vN(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 AN(e){return typeof e=="function"?e():e}function Nst(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,dataRef:a,events:i,elements:s}=e,{enabled:l=!0,delay:c=0,handleClose:u=null,mouseOnly:d=!1,restMs:h=0,move:f=!0}=r,g=CN(),b=SN(),x=pk(u),w=pk(c),k=pk(n),C=pk(h),_=E.useRef(),T=E.useRef(-1),A=E.useRef(),R=E.useRef(-1),D=E.useRef(!0),N=E.useRef(!1),M=E.useRef(()=>{}),O=E.useRef(!1),F=Rl(()=>{var H;const q=(H=a.current.openEvent)==null?void 0:H.type;return q?.includes("mouse")&&q!=="mousedown"});E.useEffect(()=>{if(!l)return;function H(q){let{open:Z}=q;Z||(Mi(T),Mi(R),D.current=!0,O.current=!1)}return i.on("openchange",H),()=>{i.off("openchange",H)}},[l,i]),E.useEffect(()=>{if(!l||!x.current||!n)return;function H(Z){F()&&o(!1,Z,"hover")}const q=oh(s.floating).documentElement;return q.addEventListener("mouseleave",H),()=>{q.removeEventListener("mouseleave",H)}},[s.floating,n,o,l,x,F]);const L=E.useCallback(function(H,q,Z){q===void 0&&(q=!0),Z===void 0&&(Z="hover");const W=yk(w.current,"close",_.current);W&&!A.current?(Mi(T),T.current=window.setTimeout(()=>o(!1,H,Z),W)):q&&(Mi(T),o(!1,H,Z))},[w,o]),U=Rl(()=>{M.current(),A.current=void 0}),P=Rl(()=>{if(N.current){const H=oh(s.floating).body;H.style.pointerEvents="",H.removeAttribute(pae),N.current=!1}}),V=Rl(()=>a.current.openEvent?["click","mousedown"].includes(a.current.openEvent.type):!1);E.useEffect(()=>{if(!l)return;function H(K){if(Mi(T),D.current=!1,d&&!vN(_.current)||AN(C.current)>0&&!yk(w.current,"open"))return;const j=yk(w.current,"open",_.current);j?T.current=window.setTimeout(()=>{k.current||o(!0,K,"hover")},j):n||o(!0,K,"hover")}function q(K){if(V()){P();return}M.current();const j=oh(s.floating);if(Mi(R),O.current=!1,x.current&&a.current.floatingContext){n||Mi(T),A.current=x.current({...a.current.floatingContext,tree:g,x:K.clientX,y:K.clientY,onClose(){P(),U(),V()||L(K,!0,"safe-polygon")}});const Y=A.current;j.addEventListener("mousemove",Y),M.current=()=>{j.removeEventListener("mousemove",Y)};return}(_.current!=="touch"||!lb(s.floating,K.relatedTarget))&&L(K)}function Z(K){V()||a.current.floatingContext&&(x.current==null||x.current({...a.current.floatingContext,tree:g,x:K.clientX,y:K.clientY,onClose(){P(),U(),V()||L(K)}})(K))}function W(){Mi(T)}function G(K){V()||L(K,!1)}if(Ur(s.domReference)){const K=s.domReference,j=s.floating;return n&&K.addEventListener("mouseleave",Z),f&&K.addEventListener("mousemove",H,{once:!0}),K.addEventListener("mouseenter",H),K.addEventListener("mouseleave",q),j&&(j.addEventListener("mouseleave",Z),j.addEventListener("mouseenter",W),j.addEventListener("mouseleave",G)),()=>{n&&K.removeEventListener("mouseleave",Z),f&&K.removeEventListener("mousemove",H),K.removeEventListener("mouseenter",H),K.removeEventListener("mouseleave",q),j&&(j.removeEventListener("mouseleave",Z),j.removeEventListener("mouseenter",W),j.removeEventListener("mouseleave",G))}}},[s,l,e,d,f,L,U,P,o,n,k,g,w,x,a,V,C]),Al(()=>{var H;if(l&&n&&(H=x.current)!=null&&(H=H.__options)!=null&&H.blockPointerEvents&&F()){N.current=!0;const Z=s.floating;if(Ur(s.domReference)&&Z){var q;const W=oh(s.floating).body;W.setAttribute(pae,"");const G=s.domReference,K=g==null||(q=g.nodesRef.current.find(j=>j.id===b))==null||(q=q.context)==null?void 0:q.elements.floating;return K&&(K.style.pointerEvents=""),W.style.pointerEvents="none",G.style.pointerEvents="auto",Z.style.pointerEvents="auto",()=>{W.style.pointerEvents="",G.style.pointerEvents="",Z.style.pointerEvents=""}}}},[l,n,b,s,g,x,F]),Al(()=>{n||(_.current=void 0,O.current=!1,U(),P())},[n,U,P]),E.useEffect(()=>()=>{U(),Mi(T),Mi(R),P()},[l,s.domReference,U,P]);const I=E.useMemo(()=>{function H(q){_.current=q.pointerType}return{onPointerDown:H,onPointerEnter:H,onMouseMove(q){const{nativeEvent:Z}=q;function W(){!D.current&&!k.current&&o(!0,Z,"hover")}d&&!vN(_.current)||n||AN(C.current)===0||O.current&&q.movementX**2+q.movementY**2<2||(Mi(R),_.current==="touch"?W():(O.current=!0,R.current=window.setTimeout(W,AN(C.current))))}}},[d,o,n,k,C]);return E.useMemo(()=>l?{reference:I}:{},[l,I])}const RN=()=>{},hae=E.createContext({delay:0,initialDelay:0,timeoutMs:0,currentId:null,setCurrentId:RN,setState:RN,isInstantPhase:!1}),Dst=()=>E.useContext(hae);function fae(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}),s=E.useRef(null),l=E.useCallback(c=>{i({currentId:c})},[]);return Al(()=>{a.currentId?s.current===null?s.current=a.currentId:a.isInstantPhase||i({isInstantPhase:!0}):(a.isInstantPhase&&i({isInstantPhase:!1}),s.current=null)},[a.currentId,a.isInstantPhase]),y.jsx(hae.Provider,{value:E.useMemo(()=>({...a,setState:i,setCurrentId:l}),[a,l]),children:r})}function $st(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,floatingId:a}=e,{id:i,enabled:s=!0}=r,l=i??a,c=Dst(),{currentId:u,setCurrentId:d,initialDelay:h,setState:f,timeoutMs:g}=c;return Al(()=>{s&&u&&(f({delay:{open:1,close:yk(h,"close")}}),u!==l&&o(!1))},[s,l,o,f,u,h]),Al(()=>{function b(){o(!1),f({delay:h,currentId:null})}if(s&&u&&!n&&u===l){if(g){const x=window.setTimeout(b,g);return()=>{clearTimeout(x)}}b()}},[s,n,f,u,l,o,h,g]),Al(()=>{s&&(d===RN||!n||d(l))},[s,n,d,l]),c}const Mst={pointerdown:"onPointerDown",mousedown:"onMouseDown",click:"onClick"},Pst={pointerdown:"onPointerDownCapture",mousedown:"onMouseDownCapture",click:"onClickCapture"},mae=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 zst(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,elements:a,dataRef:i}=e,{enabled:s=!0,escapeKey:l=!0,outsidePress:c=!0,outsidePressEvent:u="pointerdown",referencePress:d=!1,referencePressEvent:h="pointerdown",ancestorScroll:f=!1,bubbles:g,capture:b}=r,x=CN(),w=Rl(typeof c=="function"?c:()=>!1),k=typeof c=="function"?w:c,C=E.useRef(!1),{escapeKey:_,outsidePress:T}=mae(g),{escapeKey:A,outsidePress:R}=mae(b),D=E.useRef(!1),N=Rl(P=>{var V;if(!n||!s||!l||P.key!=="Escape"||D.current)return;const I=(V=i.current.floatingContext)==null?void 0:V.nodeId,H=x?dk(x.nodesRef.current,I):[];if(!_&&(P.stopPropagation(),H.length>0)){let q=!0;if(H.forEach(Z=>{var W;if((W=Z.context)!=null&&W.open&&!Z.context.dataRef.current.__escapeKeyBubbles){q=!1;return}}),!q)return}o(!1,Rit(P)?P.nativeEvent:P,"escape-key")}),M=Rl(P=>{var V;const I=()=>{var H;N(P),(H=dg(P))==null||H.removeEventListener("keydown",I)};(V=dg(P))==null||V.addEventListener("keydown",I)}),O=Rl(P=>{var V;const I=i.current.insideReactTree;i.current.insideReactTree=!1;const H=C.current;if(C.current=!1,u==="click"&&H||I||typeof k=="function"&&!k(P))return;const q=dg(P),Z="["+TN("inert")+"]",W=oh(a.floating).querySelectorAll(Z);let G=Ur(q)?q:null;for(;G&&!Nc(G);){const Q=Dc(G);if(Nc(Q)||!Ur(Q))break;G=Q}if(W.length&&Ur(q)&&!Sit(q)&&!lb(q,a.floating)&&Array.from(W).every(Q=>!lb(G,Q)))return;if(Ua(q)&&U){const Q=Nc(q),J=$i(q),ie=/auto|scroll/,ne=Q||ie.test(J.overflowX),re=Q||ie.test(J.overflowY),ge=ne&&q.clientWidth>0&&q.scrollWidth>q.clientWidth,De=re&&q.clientHeight>0&&q.scrollHeight>q.clientHeight,he=J.direction==="rtl",me=De&&(he?P.offsetX<=q.offsetWidth-q.clientWidth:P.offsetX>q.clientWidth),Te=ge&&P.offsetY>q.clientHeight;if(me||Te)return}const K=(V=i.current.floatingContext)==null?void 0:V.nodeId,j=x&&dk(x.nodesRef.current,K).some(Q=>{var J;return bN(P,(J=Q.context)==null?void 0:J.elements.floating)});if(bN(P,a.floating)||bN(P,a.domReference)||j)return;const Y=x?dk(x.nodesRef.current,K):[];if(Y.length>0){let Q=!0;if(Y.forEach(J=>{var ie;if((ie=J.context)!=null&&ie.open&&!J.context.dataRef.current.__outsidePressBubbles){Q=!1;return}}),!Q)return}o(!1,P,"outside-press")}),F=Rl(P=>{var V;const I=()=>{var H;O(P),(H=dg(P))==null||H.removeEventListener(u,I)};(V=dg(P))==null||V.addEventListener(u,I)});E.useEffect(()=>{if(!n||!s)return;i.current.__escapeKeyBubbles=_,i.current.__outsidePressBubbles=T;let P=-1;function V(W){o(!1,W,"ancestor-scroll")}function I(){window.clearTimeout(P),D.current=!0}function H(){P=window.setTimeout(()=>{D.current=!1},ik()?5:0)}const q=oh(a.floating);l&&(q.addEventListener("keydown",A?M:N,A),q.addEventListener("compositionstart",I),q.addEventListener("compositionend",H)),k&&q.addEventListener(u,R?F:O,R);let Z=[];return f&&(Ur(a.domReference)&&(Z=$c(a.domReference)),Ur(a.floating)&&(Z=Z.concat($c(a.floating))),!Ur(a.reference)&&a.reference&&a.reference.contextElement&&(Z=Z.concat($c(a.reference.contextElement)))),Z=Z.filter(W=>{var G;return W!==((G=q.defaultView)==null?void 0:G.visualViewport)}),Z.forEach(W=>{W.addEventListener("scroll",V,{passive:!0})}),()=>{l&&(q.removeEventListener("keydown",A?M:N,A),q.removeEventListener("compositionstart",I),q.removeEventListener("compositionend",H)),k&&q.removeEventListener(u,R?F:O,R),Z.forEach(W=>{W.removeEventListener("scroll",V)}),window.clearTimeout(P)}},[i,a,l,k,u,n,o,f,s,_,T,N,A,M,O,R,F]),E.useEffect(()=>{i.current.insideReactTree=!1},[i,k,u]);const L=E.useMemo(()=>({onKeyDown:N,...d&&{[Mst[h]]:P=>{o(!1,P.nativeEvent,"reference-press")},...h!=="click"&&{onClick(P){o(!1,P.nativeEvent,"reference-press")}}}}),[N,o,d,h]),U=E.useMemo(()=>({onKeyDown:N,onMouseDown(){C.current=!0},onMouseUp(){C.current=!0},[Pst[u]]:()=>{i.current.insideReactTree=!0}}),[N,u,i]);return E.useMemo(()=>s?{reference:L,floating:U}:{},[s,L,U])}function Ist(e){const{open:r=!1,onOpenChange:n,elements:o}=e,a=dae(),i=E.useRef({}),[s]=E.useState(()=>Tst()),l=SN()!=null,[c,u]=E.useState(o.reference),d=Rl((g,b,x)=>{i.current.openEvent=g?b:void 0,s.emit("openchange",{open:g,event:b,reason:x,nested:l}),n?.(g,b,x)}),h=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:s,floatingId:a,refs:h}),[r,d,f,s,a,h])}function NN(e){e===void 0&&(e={});const{nodeId:r}=e,n=Ist({...e,elements:{reference:null,floating:null,...e.elements}}),o=e.rootContext||n,a=o.elements,[i,s]=E.useState(null),[l,c]=E.useState(null),u=a?.domReference||i,d=E.useRef(null),h=CN();Al(()=>{u&&(d.current=u)},[u]);const f=bst({...e,elements:{...a,...l&&{reference:l}}}),g=E.useCallback(C=>{const _=Ur(C)?{getBoundingClientRect:()=>C.getBoundingClientRect(),getClientRects:()=>C.getClientRects(),contextElement:C}:C;c(_),f.refs.setReference(_)},[f.refs]),b=E.useCallback(C=>{(Ur(C)||C===null)&&(d.current=C,s(C)),(Ur(f.refs.reference.current)||f.refs.reference.current===null||C!==null&&!Ur(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 Al(()=>{o.dataRef.current.floatingContext=k;const C=h?.nodesRef.current.find(_=>_.id===r);C&&(C.context=k)}),E.useMemo(()=>({...f,context:k,refs:x,elements:w}),[f,x,w,k])}function DN(){return kit()&&wit()}function Ost(e,r){r===void 0&&(r={});const{open:n,onOpenChange:o,events:a,dataRef:i,elements:s}=e,{enabled:l=!0,visibleOnly:c=!0}=r,u=E.useRef(!1),d=E.useRef(-1),h=E.useRef(!0);E.useEffect(()=>{if(!l)return;const g=ga(s.domReference);function b(){!n&&Ua(s.domReference)&&s.domReference===Loe(oh(s.domReference))&&(u.current=!0)}function x(){h.current=!0}function w(){h.current=!1}return g.addEventListener("blur",b),DN()&&(g.addEventListener("keydown",x,!0),g.addEventListener("pointerdown",w,!0)),()=>{g.removeEventListener("blur",b),DN()&&(g.removeEventListener("keydown",x,!0),g.removeEventListener("pointerdown",w,!0))}},[s.domReference,n,l]),E.useEffect(()=>{if(!l)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,l]),E.useEffect(()=>()=>{Mi(d)},[]);const f=E.useMemo(()=>({onMouseLeave(){u.current=!1},onFocus(g){if(u.current)return;const b=dg(g.nativeEvent);if(c&&Ur(b)){if(DN()&&!g.relatedTarget){if(!h.current&&!Cit(b))return}else if(!Tit(b))return}o(!0,g.nativeEvent,"focus")},onBlur(g){u.current=!1;const b=g.relatedTarget,x=g.nativeEvent,w=Ur(b)&&b.hasAttribute(TN("focus-guard"))&&b.getAttribute("data-type")==="outside";d.current=window.setTimeout(()=>{var k;const C=Loe(s.domReference?s.domReference.ownerDocument:document);!b&&C===s.domReference||lb((k=i.current.floatingContext)==null?void 0:k.refs.floating.current,C)||lb(s.domReference,C)||w||o(!1,x,"focus")})}}),[i,s.domReference,o,c]);return E.useMemo(()=>l?{reference:f}:{},[l,f])}function $N(e,r,n){const o=new Map,a=n==="item";let i=e;if(a&&e){const{[sae]:s,[lae]:l,...c}=e;i=c}return{...n==="floating"&&{tabIndex:-1,[kst]:""},...i,...r.map(s=>{const l=s?s[n]:null;return typeof l=="function"?e?l(e):null:l}).concat(e).reduce((s,l)=>(l&&Object.entries(l).forEach(c=>{let[u,d]=c;if(!(a&&[sae,lae].includes(u)))if(u.indexOf("on")===0){if(o.has(u)||o.set(u,[]),typeof d=="function"){var h;(h=o.get(u))==null||h.push(d),s[u]=function(){for(var f,g=arguments.length,b=new Array(g),x=0;xw(...b)).find(w=>w!==void 0)}}}else s[u]=d}),s),{})}}function jst(e){e===void 0&&(e=[]);const r=e.map(l=>l?.reference),n=e.map(l=>l?.floating),o=e.map(l=>l?.item),a=E.useCallback(l=>$N(l,e,"reference"),r),i=E.useCallback(l=>$N(l,e,"floating"),n),s=E.useCallback(l=>$N(l,e,"item"),o);return E.useMemo(()=>({getReferenceProps:a,getFloatingProps:i,getItemProps:s}),[a,i,s])}const Lst=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);function Bst(e,r){var n,o;r===void 0&&(r={});const{open:a,elements:i,floatingId:s}=e,{enabled:l=!0,role:c="dialog"}=r,u=dae(),d=((n=i.domReference)==null?void 0:n.id)||u,h=E.useMemo(()=>{var k;return((k=Ait(i.floating))==null?void 0:k.id)||s},[i.floating,s]),f=(o=Lst.get(c))!=null?o:c,g=SN()!=null,b=E.useMemo(()=>f==="tooltip"||c==="label"?{["aria-"+(c==="label"?"labelledby":"describedby")]:a?h:void 0}:{"aria-expanded":a?"true":"false","aria-haspopup":f==="alertdialog"?"dialog":f,"aria-controls":a?h: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,h,g,a,d,c]),x=E.useMemo(()=>{const k={id:h,...f&&{role:f}};return f==="tooltip"||c==="label"?k:{...k,...f==="menu"&&{"aria-labelledby":d}}},[f,h,d,c]),w=E.useCallback(k=>{let{active:C,selected:_}=k;const T={role:"option",...C&&{id:h+"-fui-option"}};switch(c){case"select":case"combobox":return{...T,"aria-selected":_}}return{}},[h,c]);return E.useMemo(()=>l?{reference:b,floating:x,item:w}:{},[l,b,x,w])}const[Fst,Pi]=qa("ScrollArea.Root component was not found in tree");function hg(e,r){const n=eh(r);GR(()=>{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 Hst=E.forwardRef((e,r)=>{const{style:n,...o}=e,a=Pi(),[i,s]=E.useState(0),[l,c]=E.useState(0),u=!!(i&&l);return hg(a.scrollbarX,()=>{const d=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(d),c(d)}),hg(a.scrollbarY,()=>{const d=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(d),s(d)}),u?y.jsx("div",{...o,ref:r,style:{...n,width:i,height:l}}):null}),Vst=E.forwardRef((e,r)=>{const n=Pi(),o=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&o?y.jsx(Hst,{...e,ref:r}):null}),qst={scrollHideDelay:1e3,type:"hover"},gae=E.forwardRef((e,r)=>{const{type:n,scrollHideDelay:o,scrollbars:a,getStyles:i,...s}=ze("ScrollAreaRoot",qst,e),[l,c]=E.useState(null),[u,d]=E.useState(null),[h,f]=E.useState(null),[g,b]=E.useState(null),[x,w]=E.useState(null),[k,C]=E.useState(0),[_,T]=E.useState(0),[A,R]=E.useState(!1),[D,N]=E.useState(!1),M=yn(r,O=>c(O));return y.jsx(Fst,{value:{type:n,scrollHideDelay:o,scrollArea:l,viewport:u,onViewportChange:d,content:h,onContentChange:f,scrollbarX:g,onScrollbarXChange:b,scrollbarXEnabled:A,onScrollbarXEnabledChange:R,scrollbarY:x,onScrollbarYChange:w,scrollbarYEnabled:D,onScrollbarYEnabledChange:N,onCornerWidthChange:C,onCornerHeightChange:T,getStyles:i},children:y.jsx(Le,{...s,ref:M,__vars:{"--sa-corner-width":a!=="xy"?"0px":`${k}px`,"--sa-corner-height":a!=="xy"?"0px":`${_}px`}})})});gae.displayName="@mantine/core/ScrollAreaRoot";function yae(e,r){const n=e/r;return Number.isNaN(n)?0:n}function bk(e){const r=yae(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,o=(e.scrollbar.size-n)*r;return Math.max(o,18)}function bae(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 Ust(e,[r,n]){return Math.min(n,Math.max(r,e))}function vae(e,r,n="ltr"){const o=bk(r),a=r.scrollbar.paddingStart+r.scrollbar.paddingEnd,i=r.scrollbar.size-a,s=r.content-r.viewport,l=i-o,c=n==="ltr"?[0,s]:[s*-1,0],u=Ust(e,c);return bae([0,s],[0,l])(u)}function Wst(e,r,n,o="ltr"){const a=bk(n),i=a/2,s=r||i,l=a-s,c=n.scrollbar.paddingStart+s,u=n.scrollbar.size-n.scrollbar.paddingEnd-l,d=n.content-n.viewport,h=o==="ltr"?[0,d]:[d*-1,0];return bae([c,u],h)(e)}function xae(e,r){return e>0&&e{e?.(o),(n===!1||!o.defaultPrevented)&&r?.(o)}}const[Yst,wae]=qa("ScrollAreaScrollbar was not found in tree"),kae=E.forwardRef((e,r)=>{const{sizes:n,hasThumb:o,onThumbChange:a,onThumbPointerUp:i,onThumbPointerDown:s,onThumbPositionChange:l,onDragScroll:c,onWheelScroll:u,onResize:d,...h}=e,f=Pi(),[g,b]=E.useState(null),x=yn(r,N=>b(N)),w=E.useRef(null),k=E.useRef(""),{viewport:C}=f,_=n.content-n.viewport,T=eh(u),A=eh(l),R=Z4(d,10),D=N=>{if(w.current){const M=N.clientX-w.current.left,O=N.clientY-w.current.top;c({x:M,y:O})}};return E.useEffect(()=>{const N=M=>{const O=M.target;g?.contains(O)&&T(M,_)};return document.addEventListener("wheel",N,{passive:!1}),()=>document.removeEventListener("wheel",N,{passive:!1})},[C,g,_,T]),E.useEffect(A,[n,A]),hg(g,R),hg(f.content,R),y.jsx(Yst,{value:{scrollbar:g,hasThumb:o,onThumbChange:eh(a),onThumbPointerUp:eh(i),onThumbPositionChange:A,onThumbPointerDown:eh(s)},children:y.jsx("div",{...h,ref:x,"data-mantine-scrollbar":!0,style:{position:"absolute",...h.style},onPointerDown:ih(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:ih(e.onPointerMove,D),onPointerUp:ih(e.onPointerUp,N=>{const M=N.target;M.hasPointerCapture(N.pointerId)&&(N.preventDefault(),M.releasePointerCapture(N.pointerId))}),onLostPointerCapture:()=>{document.body.style.webkitUserSelect=k.current,w.current=null}})})}),_ae=E.forwardRef((e,r)=>{const{sizes:n,onSizesChange:o,style:a,...i}=e,s=Pi(),[l,c]=E.useState(),u=E.useRef(null),d=yn(r,u,s.onScrollbarXChange);return E.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),y.jsx(kae,{"data-orientation":"horizontal",...i,ref:d,sizes:n,style:{...a,"--sa-thumb-width":`${bk(n)}px`},onThumbPointerDown:h=>e.onThumbPointerDown(h.x),onDragScroll:h=>e.onDragScroll(h.x),onWheelScroll:(h,f)=>{if(s.viewport){const g=s.viewport.scrollLeft+h.deltaX;e.onWheelScroll(g),xae(g,f)&&h.preventDefault()}},onResize:()=>{u.current&&s.viewport&&l&&o({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:Ju(l.paddingLeft),paddingEnd:Ju(l.paddingRight)}})}})});_ae.displayName="@mantine/core/ScrollAreaScrollbarX";const Eae=E.forwardRef((e,r)=>{const{sizes:n,onSizesChange:o,style:a,...i}=e,s=Pi(),[l,c]=E.useState(),u=E.useRef(null),d=yn(r,u,s.onScrollbarYChange);return E.useEffect(()=>{u.current&&c(window.getComputedStyle(u.current))},[]),y.jsx(kae,{...i,"data-orientation":"vertical",ref:d,sizes:n,style:{"--sa-thumb-height":`${bk(n)}px`,...a},onThumbPointerDown:h=>e.onThumbPointerDown(h.y),onDragScroll:h=>e.onDragScroll(h.y),onWheelScroll:(h,f)=>{if(s.viewport){const g=s.viewport.scrollTop+h.deltaY;e.onWheelScroll(g),xae(g,f)&&h.preventDefault()}},onResize:()=>{u.current&&s.viewport&&l&&o({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:Ju(l.paddingTop),paddingEnd:Ju(l.paddingBottom)}})}})});Eae.displayName="@mantine/core/ScrollAreaScrollbarY";const vk=E.forwardRef((e,r)=>{const{orientation:n="vertical",...o}=e,{dir:a}=Rc(),i=Pi(),s=E.useRef(null),l=E.useRef(0),[c,u]=E.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),d=yae(c.viewport,c.content),h={...o,sizes:c,onSizesChange:u,hasThumb:d>0&&d<1,onThumbChange:g=>{s.current=g},onThumbPointerUp:()=>{l.current=0},onThumbPointerDown:g=>{l.current=g}},f=(g,b)=>Wst(g,l.current,c,b);return n==="horizontal"?y.jsx(_ae,{...h,ref:r,onThumbPositionChange:()=>{if(i.viewport&&s.current){const g=i.viewport.scrollLeft,b=vae(g,c,a);s.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(Eae,{...h,ref:r,onThumbPositionChange:()=>{if(i.viewport&&s.current){const g=i.viewport.scrollTop,b=vae(g,c);c.scrollbar.size===0?s.current.style.setProperty("--thumb-opacity","0"):s.current.style.setProperty("--thumb-opacity","1"),s.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});vk.displayName="@mantine/core/ScrollAreaScrollbarVisible";const MN=E.forwardRef((e,r)=>{const n=Pi(),{forceMount:o,...a}=e,[i,s]=E.useState(!1),l=e.orientation==="horizontal",c=Z4(()=>{if(n.viewport){const u=n.viewport.offsetWidth{const{forceMount:n,...o}=e,a=Pi(),[i,s]=E.useState(!1);return E.useEffect(()=>{const{scrollArea:l}=a;let c=0;if(l){const u=()=>{window.clearTimeout(c),s(!0)},d=()=>{c=window.setTimeout(()=>s(!1),a.scrollHideDelay)};return l.addEventListener("pointerenter",u),l.addEventListener("pointerleave",d),()=>{window.clearTimeout(c),l.removeEventListener("pointerenter",u),l.removeEventListener("pointerleave",d)}}},[a.scrollArea,a.scrollHideDelay]),n||i?y.jsx(MN,{"data-state":i?"visible":"hidden",...o,ref:r}):null});Sae.displayName="@mantine/core/ScrollAreaScrollbarHover";const Gst=E.forwardRef((e,r)=>{const{forceMount:n,...o}=e,a=Pi(),i=e.orientation==="horizontal",[s,l]=E.useState("hidden"),c=Z4(()=>l("idle"),100);return E.useEffect(()=>{if(s==="idle"){const u=window.setTimeout(()=>l("hidden"),a.scrollHideDelay);return()=>window.clearTimeout(u)}},[s,a.scrollHideDelay]),E.useEffect(()=>{const{viewport:u}=a,d=i?"scrollLeft":"scrollTop";if(u){let h=u[d];const f=()=>{const g=u[d];h!==g&&(l("scrolling"),c()),h=g};return u.addEventListener("scroll",f),()=>u.removeEventListener("scroll",f)}},[a.viewport,i,c]),n||s!=="hidden"?y.jsx(vk,{"data-state":s==="hidden"?"hidden":"visible",...o,ref:r,onPointerEnter:ih(e.onPointerEnter,()=>l("interacting")),onPointerLeave:ih(e.onPointerLeave,()=>l("idle"))}):null}),PN=E.forwardRef((e,r)=>{const{forceMount:n,...o}=e,a=Pi(),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:s}=a,l=e.orientation==="horizontal";return E.useEffect(()=>(l?i(!0):s(!0),()=>{l?i(!1):s(!1)}),[l,i,s]),a.type==="hover"?y.jsx(Sae,{...o,ref:r,forceMount:n}):a.type==="scroll"?y.jsx(Gst,{...o,ref:r,forceMount:n}):a.type==="auto"?y.jsx(MN,{...o,ref:r,forceMount:n}):a.type==="always"?y.jsx(vk,{...o,ref:r}):null});PN.displayName="@mantine/core/ScrollAreaScrollbar";function Xst(e,r=()=>{}){let n={left:e.scrollLeft,top:e.scrollTop},o=0;return(function a(){const i={left:e.scrollLeft,top:e.scrollTop},s=n.left!==i.left,l=n.top!==i.top;(s||l)&&r(),n=i,o=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(o)}const Cae=E.forwardRef((e,r)=>{const{style:n,...o}=e,a=Pi(),i=wae(),{onThumbPositionChange:s}=i,l=yn(r,d=>i.onThumbChange(d)),c=E.useRef(void 0),u=Z4(()=>{c.current&&(c.current(),c.current=void 0)},100);return E.useEffect(()=>{const{viewport:d}=a;if(d){const h=()=>{if(u(),!c.current){const f=Xst(d,s);c.current=f,s()}};return s(),d.addEventListener("scroll",h),()=>d.removeEventListener("scroll",h)}},[a.viewport,u,s]),y.jsx("div",{"data-state":i.hasThumb?"visible":"hidden",...o,ref:l,style:{width:"var(--sa-thumb-width)",height:"var(--sa-thumb-height)",...n},onPointerDownCapture:ih(e.onPointerDownCapture,d=>{const h=d.target.getBoundingClientRect(),f=d.clientX-h.left,g=d.clientY-h.top;i.onThumbPointerDown({x:f,y:g})}),onPointerUp:ih(e.onPointerUp,i.onThumbPointerUp)})});Cae.displayName="@mantine/core/ScrollAreaThumb";const zN=E.forwardRef((e,r)=>{const{forceMount:n,...o}=e,a=wae();return n||a.hasThumb?y.jsx(Cae,{ref:r,...o}):null});zN.displayName="@mantine/core/ScrollAreaThumb";const Tae=E.forwardRef(({children:e,style:r,...n},o)=>{const a=Pi(),i=yn(o,a.onViewportChange);return y.jsx(Le,{...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})})});Tae.displayName="@mantine/core/ScrollAreaViewport";var IN={root:"m_d57069b5",content:"m_b1336c6",viewport:"m_c0783ff9",viewportInner:"m_f8f631dd",scrollbar:"m_c44ba933",thumb:"m_d8b5e363",corner:"m_21657268"};const Aae={scrollHideDelay:1e3,type:"hover",scrollbars:"xy"},Kst=(e,{scrollbarSize:r,overscrollBehavior:n})=>({root:{"--scrollarea-scrollbar-size":qe(r),"--scrollarea-over-scroll-behavior":n}}),sh=Je((e,r)=>{const n=ze("ScrollArea",Aae,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,scrollbarSize:c,vars:u,type:d,scrollHideDelay:h,viewportProps:f,viewportRef:g,onScrollPositionChange:b,children:x,offsetScrollbars:w,scrollbars:k,onBottomReached:C,onTopReached:_,overscrollBehavior:T,attributes:A,...R}=n,[D,N]=E.useState(!1),[M,O]=E.useState(!1),[F,L]=E.useState(!1),U=vt({name:"ScrollArea",props:n,classes:IN,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:A,vars:u,varsResolver:Kst}),P=E.useRef(null),V=iae([g,P]);return E.useEffect(()=>{if(!P.current||w!=="present")return;const I=P.current,H=new ResizeObserver(()=>{const{scrollHeight:q,clientHeight:Z,scrollWidth:W,clientWidth:G}=I;O(q>Z),L(W>G)});return H.observe(I),()=>H.disconnect()},[P,w]),y.jsxs(gae,{getStyles:U,type:d==="never"?"always":d,scrollHideDelay:h,ref:r,scrollbars:k,...U("root"),...R,children:[y.jsx(Tae,{...f,...U("viewport",{style:f?.style}),ref:V,"data-offset-scrollbars":w===!0?"xy":w||void 0,"data-scrollbars":k||void 0,"data-horizontal-hidden":w==="present"&&!F?"true":void 0,"data-vertical-hidden":w==="present"&&!M?"true":void 0,onScroll:I=>{f?.onScroll?.(I),b?.({x:I.currentTarget.scrollLeft,y:I.currentTarget.scrollTop});const{scrollTop:H,scrollHeight:q,clientHeight:Z}=I.currentTarget;H-(q-Z)>=-.6&&C?.(),H===0&&_?.()},children:x}),(k==="xy"||k==="x")&&y.jsx(PN,{...U("scrollbar"),orientation:"horizontal","data-hidden":d==="never"||w==="present"&&!F?!0:void 0,forceMount:!0,onMouseEnter:()=>N(!0),onMouseLeave:()=>N(!1),children:y.jsx(zN,{...U("thumb")})}),(k==="xy"||k==="y")&&y.jsx(PN,{...U("scrollbar"),orientation:"vertical","data-hidden":d==="never"||w==="present"&&!M?!0:void 0,forceMount:!0,onMouseEnter:()=>N(!0),onMouseLeave:()=>N(!1),children:y.jsx(zN,{...U("thumb")})}),y.jsx(Vst,{...U("corner"),"data-hovered":D||void 0,"data-hidden":d==="never"||void 0})]})});sh.displayName="@mantine/core/ScrollArea";const ON=Je((e,r)=>{const{children:n,classNames:o,styles:a,scrollbarSize:i,scrollHideDelay:s,type:l,dir:c,offsetScrollbars:u,viewportRef:d,onScrollPositionChange:h,unstyled:f,variant:g,viewportProps:b,scrollbars:x,style:w,vars:k,onBottomReached:C,onTopReached:_,onOverflowChange:T,...A}=ze("ScrollAreaAutosize",Aae,e),R=E.useRef(null),D=iae([d,R]),[N,M]=E.useState(!1),O=E.useRef(!1);return E.useEffect(()=>{if(!T)return;const F=R.current;if(!F)return;const L=()=>{const P=F.scrollHeight>F.clientHeight;P!==N&&(O.current?T?.(P):(O.current=!0,P&&T?.(!0)),M(P))};L();const U=new ResizeObserver(L);return U.observe(F),()=>U.disconnect()},[T,N]),y.jsx(Le,{...A,ref:r,style:[{display:"flex",overflow:"hidden"},w],children:y.jsx(Le,{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(sh,{classNames:o,styles:a,scrollHideDelay:s,scrollbarSize:i,type:l,dir:c,offsetScrollbars:u,viewportRef:D,onScrollPositionChange:h,unstyled:f,variant:g,viewportProps:b,vars:k,scrollbars:x,onBottomReached:C,onTopReached:_,"data-autosize":"true",children:n})})})});sh.classes=IN,ON.displayName="@mantine/core/ScrollAreaAutosize",ON.classes=IN,sh.Autosize=ON;var Rae={root:"m_87cf2631"};const Zst={__staticSelector:"UnstyledButton"},Nl=Jn((e,r)=>{const n=ze("UnstyledButton",Zst,e),{className:o,component:a="button",__staticSelector:i,unstyled:s,classNames:l,styles:c,style:u,attributes:d,...h}=n,f=vt({name:i,props:n,classes:Rae,className:o,style:u,classNames:l,styles:c,unstyled:s,attributes:d});return y.jsx(Le,{...f("root",{focusable:!0}),component:a,ref:r,type:a==="button"?"button":void 0,...h})});Nl.classes=Rae,Nl.displayName="@mantine/core/UnstyledButton";var Nae={root:"m_515a97f8"};const jN=Je((e,r)=>{const n=ze("VisuallyHidden",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,attributes:u,...d}=n,h=vt({name:"VisuallyHidden",classes:Nae,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:u});return y.jsx(Le,{component:"span",ref:r,...h("root"),...d})});jN.classes=Nae,jN.displayName="@mantine/core/VisuallyHidden";var Dae={root:"m_1b7284a3"};const Qst=(e,{radius:r,shadow:n})=>({root:{"--paper-radius":r===void 0?void 0:Tn(r),"--paper-shadow":UR(n)}}),xk=Jn((e,r)=>{const n=ze("Paper",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,withBorder:c,vars:u,radius:d,shadow:h,variant:f,mod:g,attributes:b,...x}=n,w=vt({name:"Paper",props:n,classes:Dae,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:b,vars:u,varsResolver:Qst});return y.jsx(Le,{ref:r,mod:[{"data-with-border":c},g],...w("root"),variant:f,...x})});xk.classes=Dae,xk.displayName="@mantine/core/Paper";function $ae(e,r,n,o){return e==="center"||o==="center"?{top:r}:e==="end"?{bottom:n}:e==="start"?{top:n}:{}}function Mae(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 Jst={bottom:"borderTopLeftRadius",left:"borderTopRightRadius",right:"borderBottomLeftRadius",top:"borderBottomRightRadius"};function elt({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:a,arrowX:i,arrowY:s,dir:l}){const[c,u="center"]=e.split("-"),d={width:r,height:r,transform:"rotate(45deg)",position:"absolute",[Jst[c]]:o},h=-r/2;return c==="left"?{...d,...$ae(u,s,n,a),right:h,borderLeftColor:"transparent",borderBottomColor:"transparent",clipPath:"polygon(100% 0, 0 0, 100% 100%)"}:c==="right"?{...d,...$ae(u,s,n,a),left:h,borderRightColor:"transparent",borderTopColor:"transparent",clipPath:"polygon(0 100%, 0 0, 100% 100%)"}:c==="top"?{...d,...Mae(u,i,n,a,l),bottom:h,borderTopColor:"transparent",borderLeftColor:"transparent",clipPath:"polygon(0 100%, 100% 100%, 100% 0)"}:c==="bottom"?{...d,...Mae(u,i,n,a,l),top:h,borderBottomColor:"transparent",borderRightColor:"transparent",clipPath:"polygon(0 100%, 0 0, 100% 0)"}:{}}const wk=E.forwardRef(({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:a,visible:i,arrowX:s,arrowY:l,style:c,...u},d)=>{const{dir:h}=Rc();return i?y.jsx("div",{...u,ref:d,style:{...c,...elt({position:e,arrowSize:r,arrowOffset:n,arrowRadius:o,arrowPosition:a,dir:h,arrowX:s,arrowY:l})}}):null});wk.displayName="@mantine/core/FloatingArrow";function Pae(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 zae={root:"m_9814e45f"};const tlt={zIndex:$s("modal")},rlt=(e,{gradient:r,color:n,backgroundOpacity:o,blur:a,radius:i,zIndex:s})=>({root:{"--overlay-bg":r||(n!==void 0||o!==void 0)&&woe(n||"#000",o??.6)||void 0,"--overlay-filter":a?`blur(${qe(a)})`:void 0,"--overlay-radius":i===void 0?void 0:Tn(i),"--overlay-z-index":s?.toString()}}),fg=Jn((e,r)=>{const n=ze("Overlay",tlt,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,fixed:u,center:d,children:h,radius:f,zIndex:g,gradient:b,blur:x,color:w,backgroundOpacity:k,mod:C,attributes:_,...T}=n,A=vt({name:"Overlay",props:n,classes:zae,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:_,vars:c,varsResolver:rlt});return y.jsx(Le,{ref:r,...A("root"),mod:[{center:d,fixed:u},C],...T,children:h})});fg.classes=zae,fg.displayName="@mantine/core/Overlay";function LN(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 nlt({target:e,reuseTargetNode:r,...n}){if(e)return typeof e=="string"?document.querySelector(e)||LN(n):e;if(r){const o=document.querySelector("[data-mantine-shared-portal-node]");if(o)return o;const a=LN(n);return a.setAttribute("data-mantine-shared-portal-node","true"),document.body.appendChild(a),a}return LN(n)}const olt={reuseTargetNode:!0},Iae=Je((e,r)=>{const{children:n,target:o,reuseTargetNode:a,...i}=ze("Portal",olt,e),[s,l]=E.useState(!1),c=E.useRef(null);return GR(()=>(l(!0),c.current=nlt({target:o,reuseTargetNode:a,...i}),KR(r,c.current),!o&&!a&&c.current&&document.body.appendChild(c.current),()=>{!o&&!a&&c.current&&document.body.removeChild(c.current)}),[o]),!s||!c.current?null:Ki.createPortal(y.jsx(y.Fragment,{children:n}),c.current)});Iae.displayName="@mantine/core/Portal";const lh=Je(({withinPortal:e=!0,children:r,...n},o)=>tk()==="test"||!e?y.jsx(y.Fragment,{children:r}):y.jsx(Iae,{ref:o,...n,children:r}));lh.displayName="@mantine/core/OptionalPortal";const db=e=>({in:{opacity:1,transform:"scale(1)"},out:{opacity:0,transform:`scale(.9) translateY(${e==="bottom"?10:-10}px)`},transitionProperty:"transform, opacity"}),kk={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:{...db("bottom"),common:{transformOrigin:"center center"}},"pop-bottom-left":{...db("bottom"),common:{transformOrigin:"bottom left"}},"pop-bottom-right":{...db("bottom"),common:{transformOrigin:"bottom right"}},"pop-top-left":{...db("top"),common:{transformOrigin:"top left"}},"pop-top-right":{...db("top"),common:{transformOrigin:"top right"}}},Oae={entering:"in",entered:"in",exiting:"out",exited:"out","pre-exiting":"out","pre-entering":"out"};function alt({transition:e,state:r,duration:n,timingFunction:o}){const a={WebkitBackfaceVisibility:"hidden",transitionDuration:`${n}ms`,transitionTimingFunction:o};return typeof e=="string"?e in kk?{transitionProperty:kk[e].transitionProperty,...a,...kk[e].common,...kk[e][Oae[r]]}:{}:{transitionProperty:e.transitionProperty,...a,...e.common,...e[Oae[r]]}}function ilt({duration:e,exitDuration:r,timingFunction:n,mounted:o,onEnter:a,onExit:i,onEntered:s,onExited:l,enterDelay:c,exitDelay:u}){const d=_o(),h=ZR(),f=d.respectReducedMotion?h:!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 A=D=>{T();const N=D?a:i,M=D?s:l,O=f?0:D?e:r;b(O),O===0?(typeof N=="function"&&N(),typeof M=="function"&&M(),w(D?"entered":"exited")):_.current=requestAnimationFrame(()=>{Zz.flushSync(()=>{w(D?"pre-entering":"pre-exiting")}),_.current=requestAnimationFrame(()=>{typeof N=="function"&&N(),w(D?"entering":"exiting"),k.current=window.setTimeout(()=>{typeof M=="function"&&M(),w(D?"entered":"exited")},O)})})},R=D=>{if(T(),typeof(D?c:u)!="number"){A(D);return}C.current=window.setTimeout(()=>{A(D)},D?c:u)};return th(()=>{R(o)},[o]),E.useEffect(()=>()=>{T()},[]),{transitionDuration:g,transitionStatus:x,transitionTimingFunction:n||"ease"}}function js({keepMounted:e,transition:r="fade",duration:n=250,exitDuration:o=n,mounted:a,children:i,timingFunction:s="ease",onExit:l,onEntered:c,onEnter:u,onExited:d,enterDelay:h,exitDelay:f}){const g=tk(),{transitionDuration:b,transitionStatus:x,transitionTimingFunction:w}=ilt({mounted:a,exitDuration:o,duration:n,timingFunction:s,onExit:l,onEntered:c,onEnter:u,onExited:d,enterDelay:h,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(alt({transition:r,duration:b,state:x,timingFunction:w}))})}js.displayName="@mantine/core/Transition";const[slt,jae]=qa("Popover component was not found in the tree");function _k({children:e,active:r=!0,refProp:n="ref",innerRef:o}){const a=Mot(r),i=yn(a,o);return Ds(e)?E.cloneElement(e,{[n]:i}):e}function Lae(e){return y.jsx(jN,{tabIndex:-1,"data-autofocus":!0,...e})}_k.displayName="@mantine/core/FocusTrap",Lae.displayName="@mantine/core/FocusTrapInitialFocus",_k.InitialFocus=Lae;var Bae={dropdown:"m_38a85659",arrow:"m_a31dc6c1",overlay:"m_3d7bc908"};const BN=Je((e,r)=>{const n=ze("PopoverDropdown",null,e),{className:o,style:a,vars:i,children:s,onKeyDownCapture:l,variant:c,classNames:u,styles:d,...h}=n,f=jae(),g=poe({opened:f.opened,shouldReturnFocus:f.returnFocus}),b=f.withRoles?{"aria-labelledby":f.getTargetId(),id:f.getDropdownId(),role:"dialog",tabIndex:-1}:{},x=yn(r,f.floating);return f.disabled?null:y.jsx(lh,{...f.portalProps,withinPortal:f.withinPortal,children:y.jsx(js,{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(_k,{active:f.trapFocus&&f.opened,innerRef:x,children:y.jsxs(Le,{...b,...h,variant:c,onKeyDownCapture:xot(()=>{f.onClose?.(),f.onDismiss?.()},{active:f.closeOnEscape,onTrigger:g,onKeyDown:l}),"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:qe(f.width),...f.referenceHidden?{display:"none"}:null},f.resolvedStyles.dropdown,d?.dropdown,a]}),children:[s,y.jsx(wk,{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})})]})})})})});BN.classes=Bae,BN.displayName="@mantine/core/PopoverDropdown";const llt={refProp:"ref",popupType:"dialog"},Fae=Je((e,r)=>{const{children:n,refProp:o,popupType:a,...i}=ze("PopoverTarget",llt,e);if(!Ds(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 s=i,l=jae(),c=yn(l.reference,Q4(n),r),u=l.withRoles?{"aria-haspopup":a,"aria-expanded":l.opened,"aria-controls":l.getDropdownId(),id:l.getTargetId()}:{};return E.cloneElement(n,{...s,...u,...l.targetProps,className:ho(l.targetProps.className,s.className,n.props.className),[o]:c,...l.controlled?null:{onClick:()=>{l.onToggle(),n.props.onClick?.()}}})});Fae.displayName="@mantine/core/PopoverTarget";function clt(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 ult(e,r,n){const o=clt(e.middlewares),a=[nae(e.offset),wst()];return e.dropdownVisible&&n!=="test"&&e.preventPositionChangeWhenVisible&&(o.flip=!1),o.shift&&a.push(EN(typeof o.shift=="boolean"?{limiter:oae(),padding:5}:{limiter:oae(),padding:5,...o.shift})),o.flip&&a.push(typeof o.flip=="boolean"?gk():gk(o.flip)),o.inline&&a.push(typeof o.inline=="boolean"?ub():ub(o.inline)),a.push(aae({element:e.arrowRef,padding:e.arrowOffset})),(o.size||e.width==="target")&&a.push(xst({...typeof o.size=="boolean"?{}:o.size,apply({rects:i,availableWidth:s,availableHeight:l,...c}){const u=r().refs.floating.current?.style??{};o.size&&(typeof o.size=="object"&&o.size.apply?o.size.apply({rects:i,availableWidth:s,availableHeight:l,...c}):Object.assign(u,{maxWidth:`${s}px`,maxHeight:`${l}px`})),e.width==="target"&&Object.assign(u,{width:`${i.reference.width}px`})}})),a}function dlt(e){const r=tk(),[n,o]=Qu({value:e.opened,defaultValue:e.defaultOpened,finalValue:!1,onChange:e.onChange}),a=E.useRef(n),i=()=>{n&&!e.disabled&&o(!1)},s=()=>{e.disabled||o(!n)},l=NN({strategy:e.strategy,placement:e.preventPositionChangeWhenVisible?e.positionRef.current:e.position,middleware:ult(e,()=>l,r),whileElementsMounted:e.keepMounted?void 0:kN});return E.useEffect(()=>{if(!(!l.refs.reference.current||!l.refs.floating.current)&&n)return kN(l.refs.reference.current,l.refs.floating.current,l.update)},[n,l.update]),th(()=>{e.onPositionChange?.(l.placement),e.positionRef.current=l.placement},[l.placement,e.preventPositionChangeWhenVisible]),th(()=>{n!==a.current&&(n?e.onOpen?.():e.onClose?.()),a.current=n},[n,e.onClose,e.onOpen]),th(()=>{let c=-1;return n&&(c=window.setTimeout(()=>e.setDropdownVisible(!0),4)),()=>{window.clearTimeout(c)}},[n,e.position]),{floating:l,controlled:typeof e.opened=="boolean",opened:n,onClose:i,onToggle:s}}const plt={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:$s("popover"),__staticSelector:"Popover",width:"max-content"},hlt=(e,{radius:r,shadow:n})=>({dropdown:{"--popover-radius":r===void 0?void 0:Tn(r),"--popover-shadow":UR(n)}});function Eo(e){const r=ze("Popover",plt,e),{children:n,position:o,offset:a,onPositionChange:i,positionDependencies:s,opened:l,transitionProps:c,onExitTransitionEnd:u,onEnterTransitionEnd:d,width:h,middlewares:f,withArrow:g,arrowSize:b,arrowOffset:x,arrowRadius:w,arrowPosition:k,unstyled:C,classNames:_,styles:T,closeOnClickOutside:A,withinPortal:R,portalProps:D,closeOnEscape:N,clickOutsideEvents:M,trapFocus:O,onClose:F,onDismiss:L,onOpen:U,onChange:P,zIndex:V,radius:I,shadow:H,id:q,defaultOpened:Z,__staticSelector:W,withRoles:G,disabled:K,returnFocus:j,variant:Y,keepMounted:Q,vars:J,floatingStrategy:ie,withOverlay:ne,overlayProps:re,hideDetached:ge,attributes:De,preventPositionChangeWhenVisible:he,...me}=r,Te=vt({name:W,props:r,classes:Bae,classNames:_,styles:T,unstyled:C,attributes:De,rootSelector:"dropdown",vars:J,varsResolver:hlt}),{resolvedStyles:Ie}=eN({classNames:_,styles:T,props:r}),[Ze,rt]=E.useState(l??Z??!1),Rt=E.useRef(o),Qe=E.useRef(null),[Pt,Ke]=E.useState(null),[Ge,ct]=E.useState(null),{dir:ut}=Rc(),Ir=tk(),Ee=Ps(q),Se=dlt({middlewares:f,width:h,position:Pae(ut,o),offset:typeof a=="number"?a+(g?b/2:0):a,arrowRef:Qe,arrowOffset:x,onPositionChange:i,positionDependencies:s,opened:l,defaultOpened:Z,onChange:P,onOpen:U,onClose:F,onDismiss:L,strategy:ie,dropdownVisible:Ze,setDropdownVisible:rt,positionRef:Rt,disabled:K,preventPositionChangeWhenVisible:he,keepMounted:Q});doe(()=>{A&&(Se.onClose(),L?.())},M,[Pt,Ge]);const it=E.useCallback(It=>{Ke(It),Se.floating.refs.setReference(It)},[Se.floating.refs.setReference]),xt=E.useCallback(It=>{ct(It),Se.floating.refs.setFloating(It)},[Se.floating.refs.setFloating]),zt=E.useCallback(()=>{c?.onExited?.(),u?.(),rt(!1),he||(Rt.current=o)},[c?.onExited,u,he,o]),Fr=E.useCallback(()=>{c?.onEntered?.(),d?.()},[c?.onEntered,d]);return y.jsxs(slt,{value:{returnFocus:j,disabled:K,controlled:Se.controlled,reference:it,floating:xt,x:Se.floating.x,y:Se.floating.y,arrowX:Se.floating?.middlewareData?.arrow?.x,arrowY:Se.floating?.middlewareData?.arrow?.y,opened:Se.opened,arrowRef:Qe,transitionProps:{...c,onExited:zt,onEntered:Fr},width:h,withArrow:g,arrowSize:b,arrowOffset:x,arrowRadius:w,arrowPosition:k,placement:Se.floating.placement,trapFocus:O,withinPortal:R,portalProps:D,zIndex:V,radius:I,shadow:H,closeOnEscape:N,onDismiss:L,onClose:Se.onClose,onToggle:Se.onToggle,getTargetId:()=>`${Ee}-target`,getDropdownId:()=>`${Ee}-dropdown`,withRoles:G,targetProps:me,__staticSelector:W,classNames:_,styles:T,unstyled:C,variant:Y,keepMounted:Q,getStyles:Te,resolvedStyles:Ie,floatingStrategy:ie,referenceHidden:ge&&Ir!=="test"?Se.floating.middlewareData.hide?.referenceHidden:!1},children:[n,ne&&y.jsx(js,{transition:"fade",mounted:Se.opened,duration:c?.duration||250,exitDuration:c?.exitDuration||250,children:It=>y.jsx(lh,{withinPortal:R,children:y.jsx(fg,{...re,...Te("overlay",{className:re?.className,style:[It,re?.style]})})})})]})}Eo.Target=Fae,Eo.Dropdown=BN,Eo.displayName="@mantine/core/Popover",Eo.extend=e=>e;var Ls={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 Hae=E.forwardRef(({className:e,...r},n)=>y.jsxs(Le,{component:"span",className:ho(Ls.barsLoader,e),...r,ref:n,children:[y.jsx("span",{className:Ls.bar}),y.jsx("span",{className:Ls.bar}),y.jsx("span",{className:Ls.bar})]}));Hae.displayName="@mantine/core/Bars";const Vae=E.forwardRef(({className:e,...r},n)=>y.jsxs(Le,{component:"span",className:ho(Ls.dotsLoader,e),...r,ref:n,children:[y.jsx("span",{className:Ls.dot}),y.jsx("span",{className:Ls.dot}),y.jsx("span",{className:Ls.dot})]}));Vae.displayName="@mantine/core/Dots";const qae=E.forwardRef(({className:e,...r},n)=>y.jsx(Le,{component:"span",className:ho(Ls.ovalLoader,e),...r,ref:n}));qae.displayName="@mantine/core/Oval";const Uae={bars:Hae,oval:qae,dots:Vae},flt={loaders:Uae,type:"oval"},mlt=(e,{size:r,color:n})=>({root:{"--loader-size":ur(r,"loader-size"),"--loader-color":n?Jo(n,e):void 0}}),ch=Je((e,r)=>{const n=ze("Loader",flt,e),{size:o,color:a,type:i,vars:s,className:l,style:c,classNames:u,styles:d,unstyled:h,loaders:f,variant:g,children:b,attributes:x,...w}=n,k=vt({name:"Loader",props:n,classes:Ls,className:l,style:c,classNames:u,styles:d,unstyled:h,attributes:x,vars:s,varsResolver:mlt});return b?y.jsx(Le,{...k("root"),ref:r,...w,children:b}):y.jsx(Le,{...k("root"),ref:r,component:f[i],variant:g,size:o,...w})});ch.defaultLoaders=Uae,ch.classes=Ls,ch.displayName="@mantine/core/Loader";var mg={root:"m_8d3f4000",icon:"m_8d3afb97",loader:"m_302b9fb1",group:"m_1a0f1b21",groupSection:"m_437b6484"};const Wae={orientation:"horizontal"},glt=(e,{borderWidth:r})=>({group:{"--ai-border-width":qe(r)}}),FN=Je((e,r)=>{const n=ze("ActionIconGroup",Wae,e),{className:o,style:a,classNames:i,styles:s,unstyled:l,orientation:c,vars:u,borderWidth:d,variant:h,mod:f,attributes:g,...b}=ze("ActionIconGroup",Wae,e),x=vt({name:"ActionIconGroup",props:n,classes:mg,className:o,style:a,classNames:i,styles:s,unstyled:l,attributes:g,vars:u,varsResolver:glt,rootSelector:"group"});return y.jsx(Le,{...x("group"),ref:r,variant:h,mod:[{"data-orientation":c},f],role:"group",...b})});FN.classes=mg,FN.displayName="@mantine/core/ActionIconGroup";const ylt=(e,{radius:r,color:n,gradient:o,variant:a,autoContrast:i,size:s})=>{const l=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:i});return{groupSection:{"--section-height":ur(s,"section-height"),"--section-padding-x":ur(s,"section-padding-x"),"--section-fz":Fo(s),"--section-radius":r===void 0?void 0:Tn(r),"--section-bg":n||a?l.background:void 0,"--section-color":l.color,"--section-bd":n||a?l.border:void 0}}},HN=Je((e,r)=>{const n=ze("ActionIconGroupSection",null,e),{className:o,style:a,classNames:i,styles:s,unstyled:l,vars:c,variant:u,gradient:d,radius:h,autoContrast:f,attributes:g,...b}=n,x=vt({name:"ActionIconGroupSection",props:n,classes:mg,className:o,style:a,classNames:i,styles:s,unstyled:l,attributes:g,vars:c,varsResolver:ylt,rootSelector:"groupSection"});return y.jsx(Le,{...x("groupSection"),ref:r,variant:u,...b})});HN.classes=mg,HN.displayName="@mantine/core/ActionIconGroupSection";const blt=(e,{size:r,radius:n,variant:o,gradient:a,color:i,autoContrast:s})=>{const l=e.variantColorResolver({color:i||e.primaryColor,theme:e,gradient:a,variant:o||"filled",autoContrast:s});return{root:{"--ai-size":ur(r,"ai-size"),"--ai-radius":n===void 0?void 0:Tn(n),"--ai-bg":i||o?l.background:void 0,"--ai-hover":i||o?l.hover:void 0,"--ai-hover-color":i||o?l.hoverColor:void 0,"--ai-color":l.color,"--ai-bd":i||o?l.border:void 0}}},Ek=Jn((e,r)=>{const n=ze("ActionIcon",null,e),{className:o,unstyled:a,variant:i,classNames:s,styles:l,style:c,loading:u,loaderProps:d,size:h,color:f,radius:g,__staticSelector:b,gradient:x,vars:w,children:k,disabled:C,"data-disabled":_,autoContrast:T,mod:A,attributes:R,...D}=n,N=vt({name:["ActionIcon",b],props:n,className:o,style:c,classes:mg,classNames:s,styles:l,unstyled:a,attributes:R,vars:w,varsResolver:blt});return y.jsxs(Nl,{...N("root",{active:!C&&!u&&!_}),...D,unstyled:a,variant:i,size:h,disabled:C||u,ref:r,mod:[{loading:u,disabled:C||_},A],children:[typeof u=="boolean"&&y.jsx(js,{mounted:u,transition:"slide-down",duration:150,children:M=>y.jsx(Le,{component:"span",...N("loader",{style:M}),"aria-hidden":!0,children:y.jsx(ch,{color:"var(--ai-color)",size:"calc(var(--ai-size) * 0.55)",...d})})}),y.jsx(Le,{component:"span",mod:{loading:u},...N("icon"),children:k})]})});Ek.classes=mg,Ek.displayName="@mantine/core/ActionIcon",Ek.Group=FN,Ek.GroupSection=HN;const Yae=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"})}));Yae.displayName="@mantine/core/CloseIcon";var Gae={root:"m_86a44da5","root--subtle":"m_220c80f2"};const vlt={variant:"subtle"},xlt=(e,{size:r,radius:n,iconSize:o})=>({root:{"--cb-size":ur(r,"cb-size"),"--cb-radius":n===void 0?void 0:Tn(n),"--cb-icon-size":qe(o)}}),uh=Jn((e,r)=>{const n=ze("CloseButton",vlt,e),{iconSize:o,children:a,vars:i,radius:s,className:l,classNames:c,style:u,styles:d,unstyled:h,"data-disabled":f,disabled:g,variant:b,icon:x,mod:w,attributes:k,__staticSelector:C,..._}=n,T=vt({name:C||"CloseButton",props:n,className:l,style:u,classes:Gae,classNames:c,styles:d,unstyled:h,attributes:k,vars:i,varsResolver:xlt});return y.jsxs(Nl,{ref:r,..._,unstyled:h,variant:b,disabled:g,mod:[{disabled:g||f},w],...T("root",{variant:b,active:!g&&!f}),children:[x||y.jsx(Yae,{}),a]})});uh.classes=Gae,uh.displayName="@mantine/core/CloseButton";function wlt(e){return E.Children.toArray(e).filter(Boolean)}var Xae={root:"m_4081bf90"};const klt={preventGrowOverflow:!0,gap:"md",align:"center",justify:"flex-start",wrap:"wrap"},_lt=(e,{grow:r,preventGrowOverflow:n,gap:o,align:a,justify:i,wrap:s},{childWidth:l})=>({root:{"--group-child-width":r&&n?l:void 0,"--group-gap":po(o),"--group-align":a,"--group-justify":i,"--group-wrap":s}}),Kae=Je((e,r)=>{const n=ze("Group",klt,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,children:c,gap:u,align:d,justify:h,wrap:f,grow:g,preventGrowOverflow:b,vars:x,variant:w,__size:k,mod:C,attributes:_,...T}=n,A=wlt(c),R=A.length,D=po(u??"md"),N={childWidth:`calc(${100/R}% - (${D} - ${D} / ${R}))`},M=vt({name:"Group",props:n,stylesCtx:N,className:a,style:i,classes:Xae,classNames:o,styles:s,unstyled:l,attributes:_,vars:x,varsResolver:_lt});return y.jsx(Le,{...M("root"),ref:r,variant:w,mod:[{grow:g},C],size:k,...T,children:A})});Kae.classes=Xae,Kae.displayName="@mantine/core/Group";const[Elt,Mc]=qa("ModalBase component was not found in tree");function Slt({opened:e,transitionDuration:r}){const[n,o]=E.useState(e),a=E.useRef(-1),i=ZR()?0:r;return E.useEffect(()=>(e?(o(!0),window.clearTimeout(a.current)):i===0?o(!1):a.current=window.setTimeout(()=>o(!1),i),()=>window.clearTimeout(a.current)),[e,i]),n}function Clt({id:e,transitionProps:r,opened:n,trapFocus:o,closeOnEscape:a,onClose:i,returnFocus:s}){const l=Ps(e),[c,u]=E.useState(!1),[d,h]=E.useState(!1),f=typeof r?.duration=="number"?r?.duration:200,g=Slt({opened:n,transitionDuration:f});return Iot("keydown",b=>{b.key==="Escape"&&a&&!b.isComposing&&n&&b.target?.getAttribute("data-mantine-stop-propagation")!=="true"&&i()},{capture:!0}),poe({opened:n,shouldReturnFocus:o&&s}),{_id:l,titleMounted:c,bodyMounted:d,shouldLockScroll:g,setTitleMounted:u,setBodyMounted:h}}const VN=E.forwardRef(({keepMounted:e,opened:r,onClose:n,id:o,transitionProps:a,onExitTransitionEnd:i,onEnterTransitionEnd:s,trapFocus:l,closeOnEscape:c,returnFocus:u,closeOnClickOutside:d,withinPortal:h,portalProps:f,lockScroll:g,children:b,zIndex:x,shadow:w,padding:k,__vars:C,unstyled:_,removeScrollProps:T,...A},R)=>{const{_id:D,titleMounted:N,bodyMounted:M,shouldLockScroll:O,setTitleMounted:F,setBodyMounted:L}=Clt({id:o,transitionProps:a,opened:r,trapFocus:l,closeOnEscape:c,onClose:n,returnFocus:u}),{key:U,...P}=T||{};return y.jsx(lh,{...f,withinPortal:h,children:y.jsx(Elt,{value:{opened:r,onClose:n,closeOnClickOutside:d,onExitTransitionEnd:i,onEnterTransitionEnd:s,transitionProps:{...a,keepMounted:e},getTitleId:()=>`${D}-title`,getBodyId:()=>`${D}-body`,titleMounted:N,bodyMounted:M,setTitleMounted:F,setBodyMounted:L,trapFocus:l,closeOnEscape:c,zIndex:x,unstyled:_},children:y.jsx(ioe,{enabled:O&&g,...P,children:y.jsx(Le,{ref:R,...A,__vars:{...C,"--mb-z-index":(x||$s("modal")).toString(),"--mb-shadow":UR(w),"--mb-padding":po(k)},children:b})},U)})})});VN.displayName="@mantine/core/ModalBase";function Tlt(){const e=Mc();return E.useEffect(()=>(e.setBodyMounted(!0),()=>e.setBodyMounted(!1)),[]),e.getBodyId()}var gg={title:"m_615af6c9",header:"m_b5489c3c",inner:"m_60c222c7",content:"m_fd1ab0aa",close:"m_606cb269",body:"m_5df29311"};const qN=E.forwardRef(({className:e,...r},n)=>{const o=Tlt(),a=Mc();return y.jsx(Le,{ref:n,...r,id:o,className:ho({[gg.body]:!a.unstyled},e)})});qN.displayName="@mantine/core/ModalBaseBody";const Zae=E.forwardRef(({className:e,onClick:r,...n},o)=>{const a=Mc();return y.jsx(uh,{ref:o,...n,onClick:i=>{a.onClose(),r?.(i)},className:ho({[gg.close]:!a.unstyled},e),unstyled:a.unstyled})});Zae.displayName="@mantine/core/ModalBaseCloseButton";const UN=E.forwardRef(({transitionProps:e,className:r,innerProps:n,onKeyDown:o,style:a,...i},s)=>{const l=Mc();return y.jsx(js,{mounted:l.opened,transition:"pop",...l.transitionProps,onExited:()=>{l.onExitTransitionEnd?.(),l.transitionProps?.onExited?.()},onEntered:()=>{l.onEnterTransitionEnd?.(),l.transitionProps?.onEntered?.()},...e,children:c=>y.jsx("div",{...n,className:ho({[gg.inner]:!l.unstyled},n.className),children:y.jsx(_k,{active:l.opened&&l.trapFocus,innerRef:s,children:y.jsx(xk,{...i,component:"section",role:"dialog",tabIndex:-1,"aria-modal":!0,"aria-describedby":l.bodyMounted?l.getBodyId():void 0,"aria-labelledby":l.titleMounted?l.getTitleId():void 0,style:[a,c],className:ho({[gg.content]:!l.unstyled},r),unstyled:l.unstyled,children:i.children})})})})});UN.displayName="@mantine/core/ModalBaseContent";const Qae=E.forwardRef(({className:e,...r},n)=>{const o=Mc();return y.jsx(Le,{component:"header",ref:n,className:ho({[gg.header]:!o.unstyled},e),...r})});Qae.displayName="@mantine/core/ModalBaseHeader";const Alt={duration:200,timingFunction:"ease",transition:"fade"};function Rlt(e){const r=Mc();return{...Alt,...r.transitionProps,...e}}const WN=E.forwardRef(({onClick:e,transitionProps:r,style:n,visible:o,...a},i)=>{const s=Mc(),l=Rlt(r);return y.jsx(js,{mounted:o!==void 0?o:s.opened,...l,transition:"fade",children:c=>y.jsx(fg,{ref:i,fixed:!0,style:[n,c],zIndex:s.zIndex,unstyled:s.unstyled,onClick:u=>{e?.(u),s.closeOnClickOutside&&s.onClose()},...a})})});WN.displayName="@mantine/core/ModalBaseOverlay";function Nlt(){const e=Mc();return E.useEffect(()=>(e.setTitleMounted(!0),()=>e.setTitleMounted(!1)),[]),e.getTitleId()}const Jae=E.forwardRef(({className:e,...r},n)=>{const o=Nlt(),a=Mc();return y.jsx(Le,{component:"h2",ref:n,className:ho({[gg.title]:!a.unstyled},e),...r,id:o})});Jae.displayName="@mantine/core/ModalBaseTitle";function eie({children:e}){return y.jsx(y.Fragment,{children:e})}const[Dlt,$lt]=ng({size:"sm"}),tie=Je((e,r)=>{const n=ze("InputClearButton",null,e),{size:o,variant:a,vars:i,classNames:s,styles:l,...c}=n,u=$lt(),{resolvedClassNames:d,resolvedStyles:h}=eN({classNames:s,styles:l,props:n});return y.jsx(uh,{variant:a||"transparent",ref:r,size:o||u?.size||"sm",classNames:d,styles:h,__staticSelector:"InputClearButton",style:{pointerEvents:"all",background:"var(--input-bg)",...c.style},...c})});tie.displayName="@mantine/core/InputClearButton";const Mlt={xs:7,sm:8,md:10,lg:12,xl:15};function Plt({__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:Mlt[a]},children:[i,n||o]}):n===null?null:n||i||o}const[zlt,Sk]=ng({offsetBottom:!1,offsetTop:!1,describedBy:void 0,getStyles:null,inputId:void 0,labelId:void 0});var zi={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 Ilt=(e,{size:r})=>({description:{"--input-description-size":r===void 0?void 0:`calc(${Fo(r)} - ${qe(2)})`}}),Ck=Je((e,r)=>{const n=ze("InputDescription",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,size:u,__staticSelector:d,__inheritStyles:h=!0,attributes:f,variant:g,...b}=ze("InputDescription",null,n),x=Sk(),w=vt({name:["InputWrapper",d],props:n,classes:zi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:f,rootSelector:"description",vars:c,varsResolver:Ilt}),k=h&&x?.getStyles||w;return y.jsx(Le,{component:"p",ref:r,variant:g,size:u,...k("description",x?.getStyles?{className:a,style:i}:void 0),...b})});Ck.classes=zi,Ck.displayName="@mantine/core/InputDescription";const Olt=(e,{size:r})=>({error:{"--input-error-size":r===void 0?void 0:`calc(${Fo(r)} - ${qe(2)})`}}),Tk=Je((e,r)=>{const n=ze("InputError",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,size:u,attributes:d,__staticSelector:h,__inheritStyles:f=!0,variant:g,...b}=n,x=vt({name:["InputWrapper",h],props:n,classes:zi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:d,rootSelector:"error",vars:c,varsResolver:Olt}),w=Sk(),k=f&&w?.getStyles||x;return y.jsx(Le,{component:"p",ref:r,variant:g,size:u,...k("error",w?.getStyles?{className:a,style:i}:void 0),...b})});Tk.classes=zi,Tk.displayName="@mantine/core/InputError";const rie={labelElement:"label"},jlt=(e,{size:r})=>({label:{"--input-label-size":Fo(r),"--input-asterisk-color":void 0}}),Ak=Je((e,r)=>{const n=ze("InputLabel",rie,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,labelElement:u,size:d,required:h,htmlFor:f,onMouseDown:g,children:b,__staticSelector:x,variant:w,mod:k,attributes:C,..._}=ze("InputLabel",rie,n),T=vt({name:["InputWrapper",x],props:n,classes:zi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:C,rootSelector:"label",vars:c,varsResolver:jlt}),A=Sk(),R=A?.getStyles||T;return y.jsxs(Le,{...R("label",A?.getStyles?{className:a,style:i}:void 0),component:u,variant:w,size:d,ref:r,htmlFor:u==="label"?f:void 0,mod:[{required:h},k],onMouseDown:D=>{g?.(D),!D.defaultPrevented&&D.detail>1&&D.preventDefault()},..._,children:[b,h&&y.jsx("span",{...R("required"),"aria-hidden":!0,children:" *"})]})});Ak.classes=zi,Ak.displayName="@mantine/core/InputLabel";const YN=Je((e,r)=>{const n=ze("InputPlaceholder",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,__staticSelector:u,variant:d,error:h,mod:f,attributes:g,...b}=n,x=vt({name:["InputPlaceholder",u],props:n,classes:zi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:g,rootSelector:"placeholder"});return y.jsx(Le,{...x("placeholder"),mod:[{error:!!h},f],component:"span",variant:d,ref:r,...b})});YN.classes=zi,YN.displayName="@mantine/core/InputPlaceholder";function Llt(e,{hasDescription:r,hasError:n}){const o=e.findIndex(l=>l==="input"),a=e.slice(0,o),i=e.slice(o+1),s=r&&a.includes("description")||n&&a.includes("error");return{offsetBottom:r&&i.includes("description")||n&&i.includes("error"),offsetTop:s}}const Blt={labelElement:"label",inputContainer:e=>e,inputWrapperOrder:["label","description","input","error"]},Flt=(e,{size:r})=>({label:{"--input-label-size":Fo(r),"--input-asterisk-color":void 0},error:{"--input-error-size":r===void 0?void 0:`calc(${Fo(r)} - ${qe(2)})`},description:{"--input-description-size":r===void 0?void 0:`calc(${Fo(r)} - ${qe(2)})`}}),GN=Je((e,r)=>{const n=ze("InputWrapper",Blt,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,size:u,variant:d,__staticSelector:h,inputContainer:f,inputWrapperOrder:g,label:b,error:x,description:w,labelProps:k,descriptionProps:C,errorProps:_,labelElement:T,children:A,withAsterisk:R,id:D,required:N,__stylesApiProps:M,mod:O,attributes:F,...L}=n,U=vt({name:["InputWrapper",h],props:M||n,classes:zi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:F,vars:c,varsResolver:Flt}),P={size:u,variant:d,__staticSelector:h},V=Ps(D),I=typeof R=="boolean"?R:N,H=_?.id||`${V}-error`,q=C?.id||`${V}-description`,Z=V,W=!!x&&typeof x!="boolean",G=!!w,K=`${W?H:""} ${G?q:""}`,j=K.trim().length>0?K.trim():void 0,Y=k?.id||`${V}-label`,Q=b&&y.jsx(Ak,{labelElement:T,id:Y,htmlFor:Z,required:I,...P,...k,children:b},"label"),J=G&&y.jsx(Ck,{...C,...P,size:C?.size||P.size,id:C?.id||q,children:w},"description"),ie=y.jsx(E.Fragment,{children:f(A)},"input"),ne=W&&E.createElement(Tk,{..._,...P,size:_?.size||P.size,key:"error",id:_?.id||H},x),re=g.map(ge=>{switch(ge){case"label":return Q;case"input":return ie;case"description":return J;case"error":return ne;default:return null}});return y.jsx(zlt,{value:{getStyles:U,describedBy:j,inputId:Z,labelId:Y,...Llt(g,{hasDescription:G,hasError:W})},children:y.jsx(Le,{ref:r,variant:d,size:u,mod:[{error:!!x},O],...U("root"),...L,children:re})})});GN.classes=zi,GN.displayName="@mantine/core/InputWrapper";const Hlt={variant:"default",leftSectionPointerEvents:"none",rightSectionPointerEvents:"none",withAria:!0,withErrorStyles:!0,size:"sm"},Vlt=(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":ur(r.size,"input-height"),"--input-fz":Fo(r.size),"--input-radius":r.radius===void 0?void 0:Tn(r.radius),"--input-left-section-width":r.leftSectionWidth!==void 0?qe(r.leftSectionWidth):void 0,"--input-right-section-width":r.rightSectionWidth!==void 0?qe(r.rightSectionWidth):void 0,"--input-padding-y":r.multiline?ur(r.size,"input-padding-y"):void 0,"--input-left-section-pointer-events":r.leftSectionPointerEvents,"--input-right-section-pointer-events":r.rightSectionPointerEvents}}),ya=Jn((e,r)=>{const n=ze("Input",Hlt,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,required:c,__staticSelector:u,__stylesApiProps:d,size:h,wrapperProps:f,error:g,disabled:b,leftSection:x,leftSectionProps:w,leftSectionWidth:k,rightSection:C,rightSectionProps:_,rightSectionWidth:T,rightSectionPointerEvents:A,leftSectionPointerEvents:R,variant:D,vars:N,pointer:M,multiline:O,radius:F,id:L,withAria:U,withErrorStyles:P,mod:V,inputSize:I,attributes:H,__clearSection:q,__clearable:Z,__defaultRightSection:W,...G}=n,{styleProps:K,rest:j}=nN(G),Y=Sk(),Q={offsetBottom:Y?.offsetBottom,offsetTop:Y?.offsetTop},J=vt({name:["Input",u],props:d||n,classes:zi,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:H,stylesCtx:Q,rootSelector:"wrapper",vars:N,varsResolver:Vlt}),ie=U?{required:c,disabled:b,"aria-invalid":!!g,"aria-describedby":Y?.describedBy,id:Y?.inputId||L}:{},ne=Plt({__clearable:Z,__clearSection:q,rightSection:C,__defaultRightSection:W,size:h});return y.jsx(Dlt,{value:{size:h||"sm"},children:y.jsxs(Le,{...J("wrapper"),...K,...f,mod:[{error:!!g&&P,pointer:M,disabled:b,multiline:O,"data-with-right-section":!!ne,"data-with-left-section":!!x},V],variant:D,size:h,children:[x&&y.jsx("div",{...w,"data-position":"left",...J("section",{className:w?.className,style:w?.style}),children:x}),y.jsx(Le,{component:"input",...j,...ie,ref:r,required:c,mod:{disabled:b,error:!!g&&P},variant:D,__size:I,...J("input")}),ne&&y.jsx("div",{..._,"data-position":"right",...J("section",{className:_?.className,style:_?.style}),children:ne})]})})});ya.classes=zi,ya.Wrapper=GN,ya.Label=Ak,ya.Error=Tk,ya.Description=Ck,ya.Placeholder=YN,ya.ClearButton=tie,ya.displayName="@mantine/core/Input";function qlt(e,r,n){const o=ze(e,r,n),{label:a,description:i,error:s,required:l,classNames:c,styles:u,className:d,unstyled:h,__staticSelector:f,__stylesApiProps:g,errorProps:b,labelProps:x,descriptionProps:w,wrapperProps:k,id:C,size:_,style:T,inputContainer:A,inputWrapperOrder:R,withAsterisk:D,variant:N,vars:M,mod:O,attributes:F,...L}=o,{styleProps:U,rest:P}=nN(L),V={label:a,description:i,error:s,required:l,classNames:c,className:d,__staticSelector:f,__stylesApiProps:g||o,errorProps:b,labelProps:x,descriptionProps:w,unstyled:h,styles:u,size:_,style:T,inputContainer:A,inputWrapperOrder:R,withAsterisk:D,variant:N,id:C,mod:O,attributes:F,...k};return{...P,classNames:c,styles:u,unstyled:h,wrapperProps:{...V,...U},inputProps:{required:l,classNames:c,styles:u,unstyled:h,size:_,__staticSelector:f,__stylesApiProps:g||o,error:s,variant:N,id:C,attributes:F}}}const Ult={__staticSelector:"InputBase",withAria:!0,size:"sm"},Rk=Jn((e,r)=>{const{inputProps:n,wrapperProps:o,...a}=qlt("InputBase",Ult,e);return y.jsx(ya.Wrapper,{...o,children:y.jsx(ya,{...n,...a,ref:r})})});Rk.classes={...ya.classes,...ya.Wrapper.classes},Rk.displayName="@mantine/core/InputBase";const Wlt={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 nie={root:"m_8bffd616"};const oie=Jn((e,r)=>{const n=ze("Flex",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,gap:u,rowGap:d,columnGap:h,align:f,justify:g,wrap:b,direction:x,attributes:w,...k}=n,C=vt({name:"Flex",classes:nie,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:w,vars:c}),_=_o(),T=ib(),A=Toe({styleProps:{gap:u,rowGap:d,columnGap:h,align:f,justify:g,wrap:b,direction:x},theme:_,data:Wlt});return y.jsxs(y.Fragment,{children:[A.hasResponsiveStyles&&y.jsx(sg,{selector:`.${T}`,styles:A.styles,media:A.media}),y.jsx(Le,{ref:r,...C("root",{className:T,style:Zu(A.inlineStyles)}),...k})]})});oie.classes=nie,oie.displayName="@mantine/core/Flex";function Ylt(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 Glt({target:e,parent:r,ref:n,displayAfterTransitionEnd:o}){const a=E.useRef(-1),[i,s]=E.useState(!1),[l,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=Ju(x.borderTopWidth)+Ju(w.borderTopWidth),C=Ju(x.borderLeftWidth)+Ju(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)},h=E.useRef(null),f=E.useRef(null);return E.useEffect(()=>{if(u(),e)return h.current=new ResizeObserver(d),h.current.observe(e),r&&(f.current=new ResizeObserver(d),f.current.observe(r)),()=>{h.current?.disconnect(),f.current?.disconnect()}},[r,e]),E.useEffect(()=>{if(r){const g=b=>{Ylt(b.target,r)&&(d(),c(!1))};return r.addEventListener("transitionend",g),()=>{r.removeEventListener("transitionend",g)}}},[r]),Hot(()=>{Wot()!=="test"&&s(!0)},20,{autoInvoke:!0}),qot(g=>{g.forEach(b=>{b.type==="attributes"&&b.attributeName==="dir"&&d()})},{attributes:!0,attributeFilter:["dir"]},()=>document.documentElement),{initialized:i,hidden:l}}var aie={root:"m_96b553a6"};const Xlt=(e,{transitionDuration:r})=>({root:{"--transition-duration":typeof r=="number"?`${r}ms`:r}}),XN=Je((e,r)=>{const n=ze("FloatingIndicator",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,target:u,parent:d,transitionDuration:h,mod:f,displayAfterTransitionEnd:g,attributes:b,...x}=n,w=vt({name:"FloatingIndicator",classes:aie,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:b,vars:c,varsResolver:Xlt}),k=E.useRef(null),{initialized:C,hidden:_}=Glt({target:u,parent:d,ref:k,displayAfterTransitionEnd:g}),T=yn(r,k);return!u||!d?null:y.jsx(Le,{ref:T,mod:[{initialized:C,hidden:_},f],...w("root"),...x})});XN.displayName="@mantine/core/FloatingIndicator",XN.classes=aie;function Klt({open:e,close:r,openDelay:n,closeDelay:o}){const a=E.useRef(-1),i=E.useRef(-1),s=()=>{window.clearTimeout(a.current),window.clearTimeout(i.current)},l=()=>{s(),e()},c=()=>{s(),o===0||o===void 0?r():i.current=window.setTimeout(r,o)};return E.useEffect(()=>s,[]),{openDropdown:l,closeDropdown:c}}function KN({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:qe(r),height:qe(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"})})}KN.displayName="@mantine/core/AccordionChevron";var iie={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 Zlt=(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:Tn(r),"--alert-bg":n||o?i.background:void 0,"--alert-color":i.color,"--alert-bd":n||o?i.border:void 0}}},sie=Je((e,r)=>{const n=ze("Alert",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,radius:u,color:d,title:h,children:f,id:g,icon:b,withCloseButton:x,onClose:w,closeButtonLabel:k,variant:C,autoContrast:_,attributes:T,...A}=n,R=vt({name:"Alert",classes:iie,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:T,vars:c,varsResolver:Zlt}),D=Ps(g),N=h&&`${D}-title`||void 0,M=`${D}-body`;return y.jsx(Le,{id:D,...R("root",{variant:C}),variant:C,ref:r,...A,role:"alert","aria-describedby":f?M:void 0,"aria-labelledby":h?N:void 0,children:y.jsxs("div",{...R("wrapper"),children:[b&&y.jsx("div",{...R("icon"),children:b}),y.jsxs("div",{...R("body"),children:[h&&y.jsx("div",{...R("title"),"data-with-close-button":x||void 0,children:y.jsx("span",{id:N,...R("label"),children:h})}),f&&y.jsx("div",{id:M,...R("message"),"data-variant":C,children:f})]}),x&&y.jsx(uh,{...R("closeButton"),onClick:w,variant:"transparent",size:16,iconSize:16,"aria-label":k,unstyled:l})]})})});sie.classes=iie,sie.displayName="@mantine/core/Alert";var lie={root:"m_b6d8b162"};function Qlt(e){if(e==="start")return"start";if(e==="end"||e)return"end"}const Jlt={inherit:!1},ect=(e,{variant:r,lineClamp:n,gradient:o,size:a,color:i})=>({root:{"--text-fz":Fo(a),"--text-lh":wot(a),"--text-gradient":r==="gradient"?lat(o,e):void 0,"--text-line-clamp":typeof n=="number"?n.toString():void 0,"--text-color":i?Jo(i,e):void 0}}),pb=Jn((e,r)=>{const n=ze("Text",Jlt,e),{lineClamp:o,truncate:a,inline:i,inherit:s,gradient:l,span:c,__staticSelector:u,vars:d,className:h,style:f,classNames:g,styles:b,unstyled:x,variant:w,mod:k,size:C,attributes:_,...T}=n,A=vt({name:["Text",u],props:n,classes:lie,className:h,style:f,classNames:g,styles:b,unstyled:x,attributes:_,vars:d,varsResolver:ect});return y.jsx(Le,{...A("root",{focusable:!0}),ref:r,component:c?"span":"p",variant:w,mod:[{"data-truncate":Qlt(a),"data-line-clamp":typeof o=="number","data-inline":i,"data-inherit":s},k],size:C,...T})});pb.classes=lie,pb.displayName="@mantine/core/Text";var cie={root:"m_849cf0da"};const tct={underline:"hover"},uie=Jn((e,r)=>{const{underline:n,className:o,unstyled:a,mod:i,...s}=ze("Anchor",tct,e);return y.jsx(pb,{component:"a",ref:r,className:ho({[cie.root]:!a},o),...s,mod:[{underline:n},i],__staticSelector:"Anchor",unstyled:a})});uie.classes=cie,uie.displayName="@mantine/core/Anchor";function die(e){return typeof e=="string"?{value:e,label:e}:"value"in e&&!("label"in e)?{value:e.value,label:e.value,disabled:e.disabled}:typeof e=="number"?{value:e.toString(),label:e.toString()}:"group"in e?{group:e.group,items:e.items.map(r=>die(r))}:e}function rct(e){return e?e.map(r=>die(r)):[]}function pie(e){return e.reduce((r,n)=>"group"in n?{...r,...pie(n.items)}:(r[n.value]=n,r),{})}var ba={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 nct={error:null},oct=(e,{size:r,color:n})=>({chevron:{"--combobox-chevron-size":ur(r,"combobox-chevron-size"),"--combobox-chevron-color":n?Jo(n,e):void 0}}),ZN=Je((e,r)=>{const n=ze("ComboboxChevron",nct,e),{size:o,error:a,style:i,className:s,classNames:l,styles:c,unstyled:u,vars:d,mod:h,...f}=n,g=vt({name:"ComboboxChevron",classes:ba,props:n,style:i,className:s,classNames:l,styles:c,unstyled:u,vars:d,varsResolver:oct,rootSelector:"chevron"});return y.jsx(Le,{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},h],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"})})});ZN.classes=ba,ZN.displayName="@mantine/core/ComboboxChevron";const[act,Ii]=qa("Combobox component was not found in tree"),hie=E.forwardRef(({size:e,onMouseDown:r,onClick:n,onClear:o,...a},i)=>y.jsx(ya.ClearButton,{ref:i,tabIndex:-1,"aria-hidden":!0,...a,onMouseDown:s=>{s.preventDefault(),r?.(s)},onClick:s=>{o(),n?.(s)}}));hie.displayName="@mantine/core/ComboboxClearButton";const QN=Je((e,r)=>{const{classNames:n,styles:o,className:a,style:i,hidden:s,...l}=ze("ComboboxDropdown",null,e),c=Ii();return y.jsx(Eo.Dropdown,{...l,ref:r,role:"presentation","data-hidden":s||void 0,...c.getStyles("dropdown",{className:a,style:i,classNames:n,styles:o})})});QN.classes=ba,QN.displayName="@mantine/core/ComboboxDropdown";const ict={refProp:"ref"},fie=Je((e,r)=>{const{children:n,refProp:o}=ze("ComboboxDropdownTarget",ict,e);if(Ii(),!Ds(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(Eo.Target,{ref:r,refProp:o,children:n})});fie.displayName="@mantine/core/ComboboxDropdownTarget";const JN=Je((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,...l}=ze("ComboboxEmpty",null,e),c=Ii();return y.jsx(Le,{ref:r,...c.getStyles("empty",{className:o,classNames:n,styles:i,style:a}),...l})});JN.classes=ba,JN.displayName="@mantine/core/ComboboxEmpty";function eD({onKeyDown:e,withKeyboardNavigation:r,withAriaAttributes:n,withExpandedAttribute:o,targetType:a,autoComplete:i}){const s=Ii(),[l,c]=E.useState(null),u=d=>{if(e?.(d),!s.readOnly&&r){if(d.nativeEvent.isComposing)return;if(d.nativeEvent.code==="ArrowDown"&&(d.preventDefault(),s.store.dropdownOpened?c(s.store.selectNextOption()):(s.store.openDropdown("keyboard"),c(s.store.selectActiveOption()),s.store.updateSelectedOptionIndex("selected",{scrollIntoView:!0}))),d.nativeEvent.code==="ArrowUp"&&(d.preventDefault(),s.store.dropdownOpened?c(s.store.selectPreviousOption()):(s.store.openDropdown("keyboard"),c(s.store.selectActiveOption()),s.store.updateSelectedOptionIndex("selected",{scrollIntoView:!0}))),d.nativeEvent.code==="Enter"||d.nativeEvent.code==="NumpadEnter"){if(d.nativeEvent.keyCode===229)return;const h=s.store.getSelectedOptionIndex();s.store.dropdownOpened&&h!==-1?(d.preventDefault(),s.store.clickSelectedOption()):a==="button"&&(d.preventDefault(),s.store.openDropdown("keyboard"))}d.key==="Escape"&&s.store.closeDropdown("keyboard"),d.nativeEvent.code==="Space"&&a==="button"&&(d.preventDefault(),s.store.toggleDropdown("keyboard"))}};return{...n?{"aria-haspopup":"listbox","aria-expanded":o?!!(s.store.listId&&s.store.dropdownOpened):void 0,"aria-controls":s.store.dropdownOpened&&s.store.listId?s.store.listId:void 0,"aria-activedescendant":s.store.dropdownOpened&&l||void 0,autoComplete:i,"data-expanded":s.store.dropdownOpened||void 0,"data-mantine-stop-propagation":s.store.dropdownOpened||void 0}:{},onKeyDown:u}}const sct={refProp:"ref",targetType:"input",withKeyboardNavigation:!0,withAriaAttributes:!0,withExpandedAttribute:!1,autoComplete:"off"},mie=Je((e,r)=>{const{children:n,refProp:o,withKeyboardNavigation:a,withAriaAttributes:i,withExpandedAttribute:s,targetType:l,autoComplete:c,...u}=ze("ComboboxEventsTarget",sct,e);if(!Ds(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=Ii(),h=eD({targetType:l,withAriaAttributes:i,withKeyboardNavigation:a,withExpandedAttribute:s,onKeyDown:n.props.onKeyDown,autoComplete:c});return E.cloneElement(n,{...h,...u,[o]:yn(r,d.store.targetRef,Q4(n))})});mie.displayName="@mantine/core/ComboboxEventsTarget";const tD=Je((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,...l}=ze("ComboboxFooter",null,e),c=Ii();return y.jsx(Le,{ref:r,...c.getStyles("footer",{className:o,classNames:n,style:a,styles:i}),...l,onMouseDown:u=>{u.preventDefault()}})});tD.classes=ba,tD.displayName="@mantine/core/ComboboxFooter";const rD=Je((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,children:l,label:c,id:u,...d}=ze("ComboboxGroup",null,e),h=Ii(),f=Ps(u);return y.jsxs(Le,{ref:r,role:"group","aria-labelledby":c?f:void 0,...h.getStyles("group",{className:o,classNames:n,style:a,styles:i}),...d,children:[c&&y.jsx("div",{id:f,...h.getStyles("groupLabel",{classNames:n,styles:i}),children:c}),l]})});rD.classes=ba,rD.displayName="@mantine/core/ComboboxGroup";const nD=Je((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,...l}=ze("ComboboxHeader",null,e),c=Ii();return y.jsx(Le,{ref:r,...c.getStyles("header",{className:o,classNames:n,style:a,styles:i}),...l,onMouseDown:u=>{u.preventDefault()}})});nD.classes=ba,nD.displayName="@mantine/core/ComboboxHeader";function gie({value:e,valuesDivider:r=",",...n}){return y.jsx("input",{type:"hidden",value:Array.isArray(e)?e.join(r):e||"",...n})}gie.displayName="@mantine/core/ComboboxHiddenInput";const oD=Je((e,r)=>{const n=ze("ComboboxOption",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,onClick:c,id:u,active:d,onMouseDown:h,onMouseOver:f,disabled:g,selected:b,mod:x,...w}=n,k=Ii(),C=E.useId(),_=u||C;return y.jsx(Le,{...k.getStyles("option",{className:a,classNames:o,styles:s,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(),h?.(T)},onMouseOver:T=>{k.resetSelectionOnOptionHover&&k.store.resetSelectedOption(),f?.(T)}})});oD.classes=ba,oD.displayName="@mantine/core/ComboboxOption";const aD=Je((e,r)=>{const n=ze("ComboboxOptions",null,e),{classNames:o,className:a,style:i,styles:s,id:l,onMouseDown:c,labelledBy:u,...d}=n,h=Ii(),f=Ps(l);return E.useEffect(()=>{h.store.setListId(f)},[f]),y.jsx(Le,{ref:r,...h.getStyles("options",{className:a,style:i,classNames:o,styles:s}),...d,id:f,role:"listbox","aria-labelledby":u,onMouseDown:g=>{g.preventDefault(),c?.(g)}})});aD.classes=ba,aD.displayName="@mantine/core/ComboboxOptions";const lct={withAriaAttributes:!0,withKeyboardNavigation:!0},iD=Je((e,r)=>{const n=ze("ComboboxSearch",lct,e),{classNames:o,styles:a,unstyled:i,vars:s,withAriaAttributes:l,onKeyDown:c,withKeyboardNavigation:u,size:d,...h}=n,f=Ii(),g=f.getStyles("search"),b=eD({targetType:"input",withAriaAttributes:l,withKeyboardNavigation:u,withExpandedAttribute:!1,onKeyDown:c,autoComplete:"off"});return y.jsx(ya,{ref:yn(r,f.store.searchRef),classNames:[{input:g.className},o],styles:[{input:g.style},a],size:d||f.size,...b,...h,__staticSelector:"Combobox"})});iD.classes=ba,iD.displayName="@mantine/core/ComboboxSearch";const cct={refProp:"ref",targetType:"input",withKeyboardNavigation:!0,withAriaAttributes:!0,withExpandedAttribute:!1,autoComplete:"off"},yie=Je((e,r)=>{const{children:n,refProp:o,withKeyboardNavigation:a,withAriaAttributes:i,withExpandedAttribute:s,targetType:l,autoComplete:c,...u}=ze("ComboboxTarget",cct,e);if(!Ds(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=Ii(),h=eD({targetType:l,withAriaAttributes:i,withKeyboardNavigation:a,withExpandedAttribute:s,onKeyDown:n.props.onKeyDown,autoComplete:c}),f=E.cloneElement(n,{...h,...u});return y.jsx(Eo.Target,{ref:yn(r,d.store.targetRef),children:f})});yie.displayName="@mantine/core/ComboboxTarget";function uct(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 dct(e,r,n){for(let o=e+1;o{l||(c(!0),a?.(I))},[c,a,l]),k=E.useCallback((I="unknown")=>{l&&(c(!1),o?.(I))},[c,o,l]),C=E.useCallback((I="unknown")=>{l?k(I):w(I)},[k,w,l]),_=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 H=document.getElementById(u.current)?.querySelectorAll("[data-combobox-option]");if(!H)return null;const q=I>=H.length?0:I<0?H.length-1:I;return d.current=q,H?.[q]&&!H[q].hasAttribute("data-combobox-disabled")?(_(),H[q].setAttribute("data-combobox-selected","true"),H[q].setAttribute("aria-selected","true"),H[q].scrollIntoView({block:"nearest",behavior:s}),H[q].id):null},[s,_]),A=E.useCallback(()=>{const I=document.querySelector(`#${u.current} [data-combobox-active]`);if(I){const H=document.querySelectorAll(`#${u.current} [data-combobox-option]`),q=Array.from(H).findIndex(Z=>Z===I);return T(q)}return T(0)},[T]),R=E.useCallback(()=>T(dct(d.current,document.querySelectorAll(`#${u.current} [data-combobox-option]`),i)),[T,i]),D=E.useCallback(()=>T(uct(d.current,document.querySelectorAll(`#${u.current} [data-combobox-option]`),i)),[T,i]),N=E.useCallback(()=>T(pct(document.querySelectorAll(`#${u.current} [data-combobox-option]`))),[T]),M=E.useCallback((I="selected",H)=>{x.current=window.setTimeout(()=>{const q=document.querySelectorAll(`#${u.current} [data-combobox-option]`),Z=Array.from(q).findIndex(W=>W.hasAttribute(`data-combobox-${I}`));d.current=Z,H?.scrollIntoView&&q[Z]?.scrollIntoView({block:"nearest",behavior:s})},0)},[]),O=E.useCallback(()=>{d.current=-1,_()},[_]),F=E.useCallback(()=>{document.querySelectorAll(`#${u.current} [data-combobox-option]`)?.[d.current]?.click()},[]),L=E.useCallback(I=>{u.current=I},[]),U=E.useCallback(()=>{g.current=window.setTimeout(()=>h.current?.focus(),0)},[]),P=E.useCallback(()=>{b.current=window.setTimeout(()=>f.current?.focus(),0)},[]),V=E.useCallback(()=>d.current,[]);return E.useEffect(()=>()=>{window.clearTimeout(g.current),window.clearTimeout(b.current),window.clearTimeout(x.current)},[]),{dropdownOpened:l,openDropdown:w,closeDropdown:k,toggleDropdown:C,selectedOptionIndex:d.current,getSelectedOptionIndex:V,selectOption:T,selectFirstOption:N,selectActiveOption:A,selectNextOption:R,selectPreviousOption:D,resetSelectedOption:O,updateSelectedOptionIndex:M,listId:u.current,setListId:L,clickSelectedOption:F,searchRef:h,focusSearchInput:U,targetRef:f,focusTarget:P}}const hct={keepMounted:!0,withinPortal:!0,resetSelectionOnOptionHover:!1,width:"target",transitionProps:{transition:"fade",duration:0},size:"sm"},fct=(e,{size:r,dropdownPadding:n})=>({options:{"--combobox-option-fz":Fo(r),"--combobox-option-padding":ur(r,"combobox-option-padding")},dropdown:{"--combobox-padding":n===void 0?void 0:qe(n),"--combobox-option-fz":Fo(r),"--combobox-option-padding":ur(r,"combobox-option-padding")}});function Nr(e){const r=ze("Combobox",hct,e),{classNames:n,styles:o,unstyled:a,children:i,store:s,vars:l,onOptionSubmit:c,onClose:u,size:d,dropdownPadding:h,resetSelectionOnOptionHover:f,__staticSelector:g,readOnly:b,attributes:x,...w}=r,k=bie(),C=s||k,_=vt({name:g||"Combobox",classes:ba,props:r,classNames:n,styles:o,unstyled:a,attributes:x,vars:l,varsResolver:fct}),T=()=>{u?.(),C.closeDropdown()};return y.jsx(act,{value:{getStyles:_,store:C,onOptionSubmit:c,size:d,resetSelectionOnOptionHover:f,readOnly:b},children:y.jsx(Eo,{opened:C.dropdownOpened,preventPositionChangeWhenVisible:!0,...w,onChange:A=>!A&&T(),withRoles:!1,unstyled:a,children:i})})}const mct=e=>e;Nr.extend=mct,Nr.classes=ba,Nr.displayName="@mantine/core/Combobox",Nr.Target=yie,Nr.Dropdown=QN,Nr.Options=aD,Nr.Option=oD,Nr.Search=iD,Nr.Empty=JN,Nr.Chevron=ZN,Nr.Footer=tD,Nr.Header=nD,Nr.EventsTarget=mie,Nr.DropdownTarget=fie,Nr.Group=rD,Nr.ClearButton=hie,Nr.HiddenInput=gie;function gct({size:e,style:r,...n}){const o=e!==void 0?{width:qe(e),height:qe(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"})})}function hb(e){return"group"in e}function vie({options:e,search:r,limit:n}){const o=r.trim().toLowerCase(),a=[];for(let i=0;i0)return!1;return!0}function xie(e,r=new Set){if(Array.isArray(e))for(const n of e)if(hb(n))xie(n.items,r);else{if(typeof n.value>"u")throw new Error("[@mantine/core] Each option must have value property");if(typeof n.value!="string")throw new Error(`[@mantine/core] Option value must be a string, other data formats are not supported, got ${typeof n.value}`);if(r.has(n.value))throw new Error(`[@mantine/core] Duplicate options are not supported. Option with value "${n.value}" was provided more than once`);r.add(n.value)}}function bct(e,r){return Array.isArray(e)?e.includes(r):e===r}function wie({data:e,withCheckIcon:r,value:n,checkIconPosition:o,unstyled:a,renderOption:i}){if(!hb(e)){const l=bct(n,e.value),c=r&&l&&y.jsx(gct,{className:ba.optionsDropdownCheckIcon}),u=y.jsxs(y.Fragment,{children:[o==="left"&&c,y.jsx("span",{children:e.label}),o==="right"&&c]});return y.jsx(Nr.Option,{value:e.value,disabled:e.disabled,className:ho({[ba.optionsDropdownOption]:!a}),"data-reverse":o==="right"||void 0,"data-checked":l||void 0,"aria-selected":l,active:l,children:typeof i=="function"?i({option:e,checked:l}):u})}const s=e.items.map(l=>y.jsx(wie,{data:l,value:n,unstyled:a,withCheckIcon:r,checkIconPosition:o,renderOption:i},l.value));return y.jsx(Nr.Group,{label:e.group,children:s})}function vct({data:e,hidden:r,hiddenWhenEmpty:n,filter:o,search:a,limit:i,maxDropdownHeight:s,withScrollArea:l=!0,filterOptions:c=!0,withCheckIcon:u=!1,value:d,checkIconPosition:h,nothingFoundMessage:f,unstyled:g,labelId:b,renderOption:x,scrollAreaProps:w,"aria-label":k}){xie(e);const C=typeof a=="string"?(o||vie)({options:e,search:c?a:"",limit:i??1/0}):e,_=yct(C),T=C.map(A=>y.jsx(wie,{data:A,withCheckIcon:u,value:d,checkIconPosition:h,unstyled:g,renderOption:x},hb(A)?A.group:A.value));return y.jsx(Nr.Dropdown,{hidden:r||n&&_,"data-composed":!0,children:y.jsxs(Nr.Options,{labelledBy:b,"aria-label":k,children:[l?y.jsx(sh.Autosize,{mah:s??220,type:"scroll",scrollbarSize:"var(--combobox-padding)",offsetScrollbars:"y",...w,children:T}):T,_&&f&&y.jsx(Nr.Empty,{children:f})]})})}var kie={root:"m_347db0ec","root--dot":"m_fbd81e3d",label:"m_5add502a",section:"m_91fdda9b"};const xct=(e,{radius:r,color:n,gradient:o,variant:a,size:i,autoContrast:s})=>{const l=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:s});return{root:{"--badge-height":ur(i,"badge-height"),"--badge-padding-x":ur(i,"badge-padding-x"),"--badge-fz":ur(i,"badge-fz"),"--badge-radius":r===void 0?void 0:Tn(r),"--badge-bg":n||a?l.background:void 0,"--badge-color":n||a?l.color:void 0,"--badge-bd":n||a?l.border:void 0,"--badge-dot-color":a==="dot"?Jo(n,e):void 0}}},_ie=Jn((e,r)=>{const n=ze("Badge",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,radius:u,color:d,gradient:h,leftSection:f,rightSection:g,children:b,variant:x,fullWidth:w,autoContrast:k,circle:C,mod:_,attributes:T,...A}=n,R=vt({name:"Badge",props:n,classes:kie,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:T,vars:c,varsResolver:xct});return y.jsxs(Le,{variant:x,mod:[{block:w,circle:C,"with-right-section":!!g,"with-left-section":!!f},_],...R("root",{variant:x}),ref:r,...A,children:[f&&y.jsx("span",{...R("section"),"data-position":"left",children:f}),y.jsx("span",{...R("label"),children:b}),g&&y.jsx("span",{...R("section"),"data-position":"right",children:g})]})});_ie.classes=kie,_ie.displayName="@mantine/core/Badge";var Eie={root:"m_8b3717df",breadcrumb:"m_f678d540",separator:"m_3b8f2208"};const wct={separator:"/"},kct=(e,{separatorMargin:r})=>({root:{"--bc-separator-margin":po(r)}}),Sie=Je((e,r)=>{const n=ze("Breadcrumbs",wct,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,children:u,separator:d,separatorMargin:h,attributes:f,...g}=n,b=vt({name:"Breadcrumbs",classes:Eie,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:f,vars:c,varsResolver:kct}),x=E.Children.toArray(u).reduce((w,k,C,_)=>{const T=Ds(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(Le,{...b("separator"),key:`separator-${C}`},d)),w},[]);return y.jsx(Le,{ref:r,...b("root"),...g,children:x})});Sie.classes=Eie,Sie.displayName="@mantine/core/Breadcrumbs";var Cie={root:"m_fea6bf1a",burger:"m_d4fb9cad"};const _ct=(e,{color:r,size:n,lineSize:o,transitionDuration:a,transitionTimingFunction:i})=>({root:{"--burger-color":r?Jo(r,e):void 0,"--burger-size":ur(n,"burger-size"),"--burger-line-size":o?qe(o):void 0,"--burger-transition-duration":a===void 0?void 0:`${a}ms`,"--burger-transition-timing-function":i}}),Tie=Je((e,r)=>{const n=ze("Burger",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,opened:u,children:d,transitionDuration:h,transitionTimingFunction:f,lineSize:g,attributes:b,...x}=n,w=vt({name:"Burger",classes:Cie,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:b,vars:c,varsResolver:_ct});return y.jsxs(Nl,{...w("root"),ref:r,...x,children:[y.jsx(Le,{mod:["reduce-motion",{opened:u}],...w("burger")}),d]})});Tie.classes=Cie,Tie.displayName="@mantine/core/Burger";var yg={root:"m_77c9d27d",inner:"m_80f1301b",label:"m_811560b9",section:"m_a74036a",loader:"m_a25b86ee",group:"m_80d6d844",groupSection:"m_70be2a01"};const Aie={orientation:"horizontal"},Ect=(e,{borderWidth:r})=>({group:{"--button-border-width":qe(r)}}),sD=Je((e,r)=>{const n=ze("ButtonGroup",Aie,e),{className:o,style:a,classNames:i,styles:s,unstyled:l,orientation:c,vars:u,borderWidth:d,variant:h,mod:f,attributes:g,...b}=ze("ButtonGroup",Aie,e),x=vt({name:"ButtonGroup",props:n,classes:yg,className:o,style:a,classNames:i,styles:s,unstyled:l,attributes:g,vars:u,varsResolver:Ect,rootSelector:"group"});return y.jsx(Le,{...x("group"),ref:r,variant:h,mod:[{"data-orientation":c},f],role:"group",...b})});sD.classes=yg,sD.displayName="@mantine/core/ButtonGroup";const Sct=(e,{radius:r,color:n,gradient:o,variant:a,autoContrast:i,size:s})=>{const l=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:i});return{groupSection:{"--section-height":ur(s,"section-height"),"--section-padding-x":ur(s,"section-padding-x"),"--section-fz":s?.includes("compact")?Fo(s.replace("compact-","")):Fo(s),"--section-radius":r===void 0?void 0:Tn(r),"--section-bg":n||a?l.background:void 0,"--section-color":l.color,"--section-bd":n||a?l.border:void 0}}},lD=Je((e,r)=>{const n=ze("ButtonGroupSection",null,e),{className:o,style:a,classNames:i,styles:s,unstyled:l,vars:c,variant:u,gradient:d,radius:h,autoContrast:f,attributes:g,...b}=n,x=vt({name:"ButtonGroupSection",props:n,classes:yg,className:o,style:a,classNames:i,styles:s,unstyled:l,attributes:g,vars:c,varsResolver:Sct,rootSelector:"groupSection"});return y.jsx(Le,{...x("groupSection"),ref:r,variant:u,...b})});lD.classes=yg,lD.displayName="@mantine/core/ButtonGroupSection";const Cct={in:{opacity:1,transform:`translate(-50%, calc(-50% + ${qe(1)}))`},out:{opacity:0,transform:"translate(-50%, -200%)"},common:{transformOrigin:"center"},transitionProperty:"transform, opacity"},Tct=(e,{radius:r,color:n,gradient:o,variant:a,size:i,justify:s,autoContrast:l})=>{const c=e.variantColorResolver({color:n||e.primaryColor,theme:e,gradient:o,variant:a||"filled",autoContrast:l});return{root:{"--button-justify":s,"--button-height":ur(i,"button-height"),"--button-padding-x":ur(i,"button-padding-x"),"--button-fz":i?.includes("compact")?Fo(i.replace("compact-","")):Fo(i),"--button-radius":r===void 0?void 0:Tn(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}}},Nk=Jn((e,r)=>{const n=ze("Button",null,e),{style:o,vars:a,className:i,color:s,disabled:l,children:c,leftSection:u,rightSection:d,fullWidth:h,variant:f,radius:g,loading:b,loaderProps:x,gradient:w,classNames:k,styles:C,unstyled:_,"data-disabled":T,autoContrast:A,mod:R,attributes:D,...N}=n,M=vt({name:"Button",props:n,classes:yg,className:i,style:o,classNames:k,styles:C,unstyled:_,attributes:D,vars:a,varsResolver:Tct}),O=!!u,F=!!d;return y.jsxs(Nl,{ref:r,...M("root",{active:!l&&!b&&!T}),unstyled:_,variant:f,disabled:l||b,mod:[{disabled:l||T,loading:b,block:h,"with-left-section":O,"with-right-section":F},R],...N,children:[typeof b=="boolean"&&y.jsx(js,{mounted:b,transition:Cct,duration:150,children:L=>y.jsx(Le,{component:"span",...M("loader",{style:L}),"aria-hidden":!0,children:y.jsx(ch,{color:"var(--button-color)",size:"calc(var(--button-height) / 1.8)",...x})})}),y.jsxs("span",{...M("inner"),children:[u&&y.jsx(Le,{component:"span",...M("section"),mod:{position:"left"},children:u}),y.jsx(Le,{component:"span",mod:{loading:b},...M("label"),children:c}),d&&y.jsx(Le,{component:"span",...M("section"),mod:{position:"right"},children:d})]})]})});Nk.classes=yg,Nk.displayName="@mantine/core/Button",Nk.Group=sD,Nk.GroupSection=lD;const[Act,Rct]=qa("Card component was not found in tree");var cD={root:"m_e615b15f",section:"m_599a2148"};const Dk=Jn((e,r)=>{const n=ze("CardSection",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,withBorder:c,inheritPadding:u,mod:d,...h}=n,f=Rct();return y.jsx(Le,{ref:r,mod:[{"with-border":c,"inherit-padding":u},d],...f.getStyles("section",{className:a,style:i,styles:s,classNames:o}),...h})});Dk.classes=cD,Dk.displayName="@mantine/core/CardSection";const Nct=(e,{padding:r})=>({root:{"--card-padding":po(r)}}),uD=Jn((e,r)=>{const n=ze("Card",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,children:u,padding:d,attributes:h,...f}=n,g=vt({name:"Card",props:n,classes:cD,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:h,vars:c,varsResolver:Nct}),b=E.Children.toArray(u),x=b.map((w,k)=>typeof w=="object"&&w&&"type"in w&&w.type===Dk?E.cloneElement(w,{"data-first-section":k===0||void 0,"data-last-section":k===b.length-1||void 0}):w);return y.jsx(Act,{value:{getStyles:g},children:y.jsx(xk,{ref:r,unstyled:l,...g("root"),...f,children:x})})});uD.classes=cD,uD.displayName="@mantine/core/Card",uD.Section=Dk;var Rie={root:"m_b183c0a2"};const Dct=(e,{color:r})=>({root:{"--code-bg":r?Jo(r,e):void 0}}),Nie=Je((e,r)=>{const n=ze("Code",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,color:u,block:d,variant:h,mod:f,attributes:g,...b}=n,x=vt({name:"Code",props:n,classes:Rie,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:g,vars:c,varsResolver:Dct});return y.jsx(Le,{component:d?"pre":"code",variant:h,ref:r,mod:[{block:d},f],...x("root"),...b,dir:"ltr"})});Nie.classes=Rie,Nie.displayName="@mantine/core/Code";var Die={root:"m_de3d2490",colorOverlay:"m_862f3d1b",shadowOverlay:"m_98ae7f22",alphaOverlay:"m_95709ac0",childrenOverlay:"m_93e74e3"};const $ie={withShadow:!0},$ct=(e,{radius:r,size:n})=>({root:{"--cs-radius":r===void 0?void 0:Tn(r),"--cs-size":qe(n)}}),Mie=Jn((e,r)=>{const n=ze("ColorSwatch",$ie,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,color:u,size:d,radius:h,withShadow:f,children:g,variant:b,attributes:x,...w}=ze("ColorSwatch",$ie,n),k=vt({name:"ColorSwatch",props:n,classes:Die,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:x,vars:c,varsResolver:$ct});return y.jsxs(Le,{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})]})});Mie.classes=Die,Mie.displayName="@mantine/core/ColorSwatch";var Pie={root:"m_7485cace"};const Mct=(e,{size:r,fluid:n})=>({root:{"--container-size":n?void 0:ur(r,"container-size")}}),zie=Je((e,r)=>{const n=ze("Container",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,fluid:u,mod:d,attributes:h,strategy:f,...g}=n,b=vt({name:"Container",classes:Pie,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:h,vars:c,varsResolver:Mct});return y.jsx(Le,{ref:r,mod:[{fluid:u,strategy:f||"block"},d],...b("root"),...g})});zie.classes=Pie,zie.displayName="@mantine/core/Container";var Iie={root:"m_3eebeb36",label:"m_9e365f20"};const Pct={orientation:"horizontal"},zct=(e,{color:r,variant:n,size:o})=>({root:{"--divider-color":r?Jo(r,e):void 0,"--divider-border-style":n,"--divider-size":ur(o,"divider-size")}}),Oie=Je((e,r)=>{const n=ze("Divider",Pct,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,color:u,orientation:d,label:h,labelPosition:f,mod:g,attributes:b,...x}=n,w=vt({name:"Divider",classes:Iie,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:b,vars:c,varsResolver:zct});return y.jsx(Le,{ref:r,mod:[{orientation:d,"with-label":!!h},g],...w("root"),...x,role:"separator",children:h&&y.jsx(Le,{component:"span",mod:{position:f},...w("label"),children:h})})});Oie.classes=Iie,Oie.displayName="@mantine/core/Divider";const[Ict,bg]=qa("Drawer component was not found in tree");var Pc={root:"m_f11b401e",header:"m_5a7c2c9",content:"m_b8a05bbd",inner:"m_31cd769a"};const $k=Je((e,r)=>{const n=ze("DrawerBody",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,...c}=n,u=bg();return y.jsx(qN,{ref:r,...u.getStyles("body",{classNames:o,style:i,styles:s,className:a}),...c})});$k.classes=Pc,$k.displayName="@mantine/core/DrawerBody";const Mk=Je((e,r)=>{const n=ze("DrawerCloseButton",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,...c}=n,u=bg();return y.jsx(Zae,{ref:r,...u.getStyles("close",{classNames:o,style:i,styles:s,className:a}),...c})});Mk.classes=Pc,Mk.displayName="@mantine/core/DrawerCloseButton";const Pk=Je((e,r)=>{const n=ze("DrawerContent",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,children:c,radius:u,__hidden:d,...h}=n,f=bg(),g=f.scrollAreaComponent||eie;return y.jsx(UN,{...f.getStyles("content",{className:a,style:i,styles:s,classNames:o}),innerProps:f.getStyles("inner",{className:a,style:i,styles:s,classNames:o}),ref:r,...h,radius:u||f.radius||0,"data-hidden":d||void 0,children:y.jsx(g,{style:{height:"calc(100vh - var(--drawer-offset) * 2)"},children:c})})});Pk.classes=Pc,Pk.displayName="@mantine/core/DrawerContent";const zk=Je((e,r)=>{const n=ze("DrawerHeader",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,...c}=n,u=bg();return y.jsx(Qae,{ref:r,...u.getStyles("header",{classNames:o,style:i,styles:s,className:a}),...c})});zk.classes=Pc,zk.displayName="@mantine/core/DrawerHeader";const Ik=Je((e,r)=>{const n=ze("DrawerOverlay",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,...c}=n,u=bg();return y.jsx(WN,{ref:r,...u.getStyles("overlay",{classNames:o,style:i,styles:s,className:a}),...c})});Ik.classes=Pc,Ik.displayName="@mantine/core/DrawerOverlay";function Oct(e){switch(e){case"top":return"flex-start";case"bottom":return"flex-end";default:return}}function jct(e){if(e==="top"||e==="bottom")return"0 0 calc(100% - var(--drawer-offset, 0rem) * 2)"}const Lct={top:"slide-down",bottom:"slide-up",left:"slide-right",right:"slide-left"},Bct={top:"slide-down",bottom:"slide-up",right:"slide-right",left:"slide-left"},Fct={closeOnClickOutside:!0,withinPortal:!0,lockScroll:!0,trapFocus:!0,returnFocus:!0,closeOnEscape:!0,keepMounted:!1,zIndex:$s("modal"),position:"left"},Hct=(e,{position:r,size:n,offset:o})=>({root:{"--drawer-size":ur(n,"drawer-size"),"--drawer-flex":jct(r),"--drawer-height":r==="left"||r==="right"?void 0:"var(--drawer-size)","--drawer-align":Oct(r),"--drawer-justify":r==="right"?"flex-end":void 0,"--drawer-offset":qe(o)}}),Ok=Je((e,r)=>{const n=ze("DrawerRoot",Fct,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,scrollAreaComponent:u,position:d,transitionProps:h,radius:f,attributes:g,...b}=n,{dir:x}=Rc(),w=vt({name:"Drawer",classes:Pc,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:g,vars:c,varsResolver:Hct}),k=(x==="rtl"?Bct:Lct)[d];return y.jsx(Ict,{value:{scrollAreaComponent:u,getStyles:w,radius:f},children:y.jsx(VN,{ref:r,...w("root"),transitionProps:{transition:k,...h},"data-offset-scrollbars":u===sh.Autosize||void 0,unstyled:l,...b})})});Ok.classes=Pc,Ok.displayName="@mantine/core/DrawerRoot";const[Vct,qct]=ng();function jie({children:e}){const[r,n]=E.useState([]),[o,a]=E.useState($s("modal"));return y.jsx(Vct,{value:{stack:r,addModal:(i,s)=>{n(l=>[...new Set([...l,i])]),a(l=>typeof s=="number"&&typeof l=="number"?Math.max(l,s):l)},removeModal:i=>n(s=>s.filter(l=>l!==i)),getZIndex:i=>`calc(${o} + ${r.indexOf(i)} + 1)`,currentId:r[r.length-1],maxZIndex:o},children:e})}jie.displayName="@mantine/core/DrawerStack";const jk=Je((e,r)=>{const n=ze("DrawerTitle",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,...c}=n,u=bg();return y.jsx(Jae,{ref:r,...u.getStyles("title",{classNames:o,style:i,styles:s,className:a}),...c})});jk.classes=Pc,jk.displayName="@mantine/core/DrawerTitle";const Uct={closeOnClickOutside:!0,withinPortal:!0,lockScroll:!0,trapFocus:!0,returnFocus:!0,closeOnEscape:!0,keepMounted:!1,zIndex:$s("modal"),withOverlay:!0,withCloseButton:!0},Dl=Je((e,r)=>{const{title:n,withOverlay:o,overlayProps:a,withCloseButton:i,closeButtonProps:s,children:l,opened:c,stackId:u,zIndex:d,...h}=ze("Drawer",Uct,e),f=qct(),g=!!n||i,b=f&&u?{closeOnEscape:f.currentId===u,trapFocus:f.currentId===u,zIndex:f.getZIndex(u)}:{},x=o===!1?!1:u&&f?f.currentId===u:c;return E.useEffect(()=>{f&&u&&(c?f.addModal(u,d||$s("modal")):f.removeModal(u))},[c,u,d]),y.jsxs(Ok,{ref:r,opened:c,zIndex:f&&u?f.getZIndex(u):d,...h,...b,children:[o&&y.jsx(Ik,{visible:x,transitionProps:f&&u?{duration:0}:void 0,...a}),y.jsxs(Pk,{__hidden:f&&u&&c?u!==f.currentId:!1,children:[g&&y.jsxs(zk,{children:[n&&y.jsx(jk,{children:n}),i&&y.jsx(Mk,{...s})]}),y.jsx($k,{children:l})]})]})});Dl.classes=Pc,Dl.displayName="@mantine/core/Drawer",Dl.Root=Ok,Dl.Overlay=Ik,Dl.Content=Pk,Dl.Body=$k,Dl.Header=zk,Dl.Title=jk,Dl.CloseButton=Mk,Dl.Stack=jie;const[Lie,Bie]=qa("Grid component was not found in tree"),dD=(e,r)=>e==="content"?"auto":e==="auto"?"0rem":e?`${100/(r/e)}%`:void 0,Fie=(e,r,n)=>n||e==="auto"?"100%":e==="content"?"unset":dD(e,r),Hie=(e,r)=>{if(e)return e==="auto"||r?"1":"auto"},Vie=(e,r)=>e===0?"0":e?`${100/(r/e)}%`:void 0;function Wct({span:e,order:r,offset:n,selector:o}){const a=_o(),i=Bie(),s=i.breakpoints||a.breakpoints,l=Ms(e)===void 0?12:Ms(e),c=Zu({"--col-order":Ms(r)?.toString(),"--col-flex-grow":Hie(l,i.grow),"--col-flex-basis":dD(l,i.columns),"--col-width":l==="content"?"auto":void 0,"--col-max-width":Fie(l,i.columns,i.grow),"--col-offset":Vie(Ms(n),i.columns)}),u=Bo(s).reduce((h,f)=>(h[f]||(h[f]={}),typeof r=="object"&&r[f]!==void 0&&(h[f]["--col-order"]=r[f]?.toString()),typeof e=="object"&&e[f]!==void 0&&(h[f]["--col-flex-grow"]=Hie(e[f],i.grow),h[f]["--col-flex-basis"]=dD(e[f],i.columns),h[f]["--col-width"]=e[f]==="content"?"auto":void 0,h[f]["--col-max-width"]=Fie(e[f],i.columns,i.grow)),typeof n=="object"&&n[f]!==void 0&&(h[f]["--col-offset"]=Vie(n[f],i.columns)),h),{}),d=WR(Bo(u),s).filter(h=>Bo(u[h.value]).length>0).map(h=>({query:i.type==="container"?`mantine-grid (min-width: ${s[h.value]})`:`(min-width: ${s[h.value]})`,styles:u[h.value]}));return y.jsx(sg,{styles:c,media:i.type==="container"?void 0:d,container:i.type==="container"?d:void 0,selector:o})}var pD={container:"m_8478a6da",root:"m_410352e9",inner:"m_dee7bd2f",col:"m_96bdd299"};const Yct={span:12},hD=Je((e,r)=>{const n=ze("GridCol",Yct,e),{classNames:o,className:a,style:i,styles:s,vars:l,span:c,order:u,offset:d,...h}=n,f=Bie(),g=ib();return y.jsxs(y.Fragment,{children:[y.jsx(Wct,{selector:`.${g}`,span:c,order:u,offset:d}),y.jsx(Le,{ref:r,...f.getStyles("col",{className:ho(a,g),style:i,classNames:o,styles:s}),...h})]})});hD.classes=pD,hD.displayName="@mantine/core/GridCol";function qie({gutter:e,selector:r,breakpoints:n,type:o}){const a=_o(),i=n||a.breakpoints,s=Zu({"--grid-gutter":po(Ms(e))}),l=Bo(i).reduce((u,d)=>(u[d]||(u[d]={}),typeof e=="object"&&e[d]!==void 0&&(u[d]["--grid-gutter"]=po(e[d])),u),{}),c=WR(Bo(l),i).filter(u=>Bo(l[u.value]).length>0).map(u=>({query:o==="container"?`mantine-grid (min-width: ${i[u.value]})`:`(min-width: ${i[u.value]})`,styles:l[u.value]}));return y.jsx(sg,{styles:s,media:o==="container"?void 0:c,container:o==="container"?c:void 0,selector:r})}const Gct={gutter:"md",grow:!1,columns:12},Xct=(e,{justify:r,align:n,overflow:o})=>({root:{"--grid-justify":r,"--grid-align":n,"--grid-overflow":o}}),fD=Je((e,r)=>{const n=ze("Grid",Gct,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,grow:u,gutter:d,columns:h,align:f,justify:g,children:b,breakpoints:x,type:w,attributes:k,...C}=n,_=vt({name:"Grid",classes:pD,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:k,vars:c,varsResolver:Xct}),T=ib();return w==="container"&&x?y.jsxs(Lie,{value:{getStyles:_,grow:u,columns:h,breakpoints:x,type:w},children:[y.jsx(qie,{selector:`.${T}`,...n}),y.jsx("div",{..._("container"),children:y.jsx(Le,{ref:r,..._("root",{className:T}),...C,children:y.jsx("div",{..._("inner"),children:b})})})]}):y.jsxs(Lie,{value:{getStyles:_,grow:u,columns:h,breakpoints:x,type:w},children:[y.jsx(qie,{selector:`.${T}`,...n}),y.jsx(Le,{ref:r,..._("root",{className:T}),...C,children:y.jsx("div",{..._("inner"),children:b})})]})});fD.classes=pD,fD.displayName="@mantine/core/Grid",fD.Col=hD;function Uie({color:e,theme:r,defaultShade:n}){const o=nh({color:e,theme:r});return o.isThemeColor?o.shade===void 0?`var(--mantine-color-${o.color}-${n})`:`var(${o.variable})`:e}var Wie={root:"m_bcb3f3c2"};const Kct={color:"yellow"},Zct=(e,{color:r})=>({root:{"--mark-bg-dark":Uie({color:r,theme:e,defaultShade:5}),"--mark-bg-light":Uie({color:r,theme:e,defaultShade:2})}}),mD=Je((e,r)=>{const n=ze("Mark",Kct,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,color:u,variant:d,attributes:h,...f}=n,g=vt({name:"Mark",props:n,className:a,style:i,classes:Wie,classNames:o,styles:s,unstyled:l,attributes:h,vars:c,varsResolver:Zct});return y.jsx(Le,{component:"mark",ref:r,variant:d,...g("root"),...f})});mD.classes=Wie,mD.displayName="@mantine/core/Mark";function Yie(e){return e.replace(/[-[\]{}()*+?.,\\^$|#]/g,"\\$&")}function Qct(e,r){if(r==null)return[{chunk:e,highlighted:!1}];const n=Array.isArray(r)?r.map(Yie):Yie(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,s)=>s.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 Gie=Jn((e,r)=>{const{unstyled:n,children:o,highlight:a,highlightStyles:i,color:s,...l}=ze("Highlight",null,e),c=Qct(o,a);return y.jsx(pb,{unstyled:n,ref:r,...l,__staticSelector:"Highlight",children:c.map(({chunk:u,highlighted:d},h)=>d?y.jsx(mD,{unstyled:n,color:s,style:i,"data-highlight":u,children:u},h):y.jsx("span",{children:u},h))})});Gie.classes=pb.classes,Gie.displayName="@mantine/core/Highlight";const[Akt,Xie]=qa("HoverCard component was not found in the tree"),Kie=E.createContext(!1),Jct=Kie.Provider,Zie=()=>E.useContext(Kie);function eut(e){const{children:r,onMouseEnter:n,onMouseLeave:o,...a}=ze("HoverCardDropdown",null,e),i=Xie();if(Zie()&&i.getFloatingProps&&i.floating){const c=i.getFloatingProps();return y.jsx(Eo.Dropdown,{ref:i.floating,...c,onMouseEnter:Ln(n,c.onMouseEnter),onMouseLeave:Ln(o,c.onMouseLeave),...a,children:r})}const s=Ln(n,i.openDropdown),l=Ln(o,i.closeDropdown);return y.jsx(Eo.Dropdown,{onMouseEnter:s,onMouseLeave:l,...a,children:r})}eut.displayName="@mantine/core/HoverCardDropdown";const tut={openDelay:0,closeDelay:0};function Qie(e){const{openDelay:r,closeDelay:n,children:o}=ze("HoverCardGroup",tut,e);return y.jsx(Jct,{value:!0,children:y.jsx(fae,{delay:{open:r,close:n},children:o})})}Qie.displayName="@mantine/core/HoverCardGroup",Qie.extend=e=>e;const rut={refProp:"ref"},nut=E.forwardRef((e,r)=>{const{children:n,refProp:o,eventPropsWrapperName:a,...i}=ze("HoverCardTarget",rut,e);if(!Ds(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 s=Xie();if(Zie()&&s.getReferenceProps&&s.reference){const d=s.getReferenceProps();return y.jsx(Eo.Target,{refProp:o,ref:r,...i,children:E.cloneElement(n,a?{[a]:{...d,ref:s.reference}}:{...d,ref:s.reference})})}const l=Ln(n.props.onMouseEnter,s.openDropdown),c=Ln(n.props.onMouseLeave,s.closeDropdown),u={onMouseEnter:l,onMouseLeave:c};return y.jsx(Eo.Target,{refProp:o,ref:r,...i,children:E.cloneElement(n,a?{[a]:u}:u)})});nut.displayName="@mantine/core/HoverCardTarget";var Jie={root:"m_6e45937b",loader:"m_e8eb006c",overlay:"m_df587f17"};const ese={transitionProps:{transition:"fade",duration:0},overlayProps:{backgroundOpacity:.75},zIndex:$s("overlay")},out=(e,{zIndex:r})=>({root:{"--lo-z-index":r?.toString()}}),tse=Je((e,r)=>{const n=ze("LoadingOverlay",ese,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,transitionProps:u,loaderProps:d,overlayProps:h,visible:f,zIndex:g,attributes:b,...x}=n,w=_o(),k=vt({name:"LoadingOverlay",classes:Jie,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:b,vars:c,varsResolver:out}),C={...ese.overlayProps,...h};return y.jsx(js,{transition:"fade",...u,mounted:!!f,children:_=>y.jsxs(Le,{...k("root",{style:_}),ref:r,...x,children:[y.jsx(ch,{...k("loader"),unstyled:l,...d}),y.jsx(fg,{...C,...k("overlay"),darkHidden:!0,unstyled:l,color:h?.color||w.white}),y.jsx(fg,{...C,...k("overlay"),lightHidden:!0,unstyled:l,color:h?.color||w.colors.dark[5]})]})})});tse.classes=Jie,tse.displayName="@mantine/core/LoadingOverlay";const[Rkt,ed]=qa("Menu component was not found in the tree");var vg={dropdown:"m_dc9b7c9f",label:"m_9bfac126",divider:"m_efdf90cb",item:"m_99ac2aa1",itemLabel:"m_5476e0d3",itemSection:"m_8b75e504",chevron:"m_b85b0bed"};const rse=Je((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,...l}=ze("MenuDivider",null,e),c=ed();return y.jsx(Le,{ref:r,...c.getStyles("divider",{className:o,style:a,styles:i,classNames:n}),...l})});rse.classes=vg,rse.displayName="@mantine/core/MenuDivider";const nse=Je((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,onMouseEnter:l,onMouseLeave:c,onKeyDown:u,children:d,...h}=ze("MenuDropdown",null,e),f=E.useRef(null),g=ed(),b=Ln(u,k=>{(k.key==="ArrowUp"||k.key==="ArrowDown")&&(k.preventDefault(),f.current?.querySelectorAll("[data-menu-item]:not(:disabled)")[0]?.focus())}),x=Ln(l,()=>(g.trigger==="hover"||g.trigger==="click-hover")&&g.openDropdown()),w=Ln(c,()=>(g.trigger==="hover"||g.trigger==="click-hover")&&g.closeDropdown());return y.jsxs(Eo.Dropdown,{...h,onMouseEnter:x,onMouseLeave:w,role:"menu","aria-orientation":"vertical",ref:yn(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]})});nse.classes=vg,nse.displayName="@mantine/core/MenuDropdown";const[aut,Lk]=ng(),ose=Jn((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,color:l,closeMenuOnClick:c,leftSection:u,rightSection:d,children:h,disabled:f,"data-disabled":g,...b}=ze("MenuItem",null,e),x=ed(),w=Lk(),k=_o(),{dir:C}=Rc(),_=E.useRef(null),T=b,A=Ln(T.onClick,()=>{g||(typeof c=="boolean"?c&&x.closeDropdownImmediately():x.closeOnItemClick&&x.closeDropdownImmediately())}),R=l?k.variantColorResolver({color:l,theme:k,variant:"light"}):void 0,D=l?nh({color:l,theme:k}):null,N=Ln(T.onKeyDown,M=>{M.key==="ArrowLeft"&&w&&(w.close(),w.focusParentItem())});return y.jsxs(Nl,{onMouseDown:M=>M.preventDefault(),...b,unstyled:x.unstyled,tabIndex:x.menuItemTabIndex,...x.getStyles("item",{className:o,style:a,styles:i,classNames:n}),ref:yn(_,r),role:"menuitem",disabled:f,"data-menu-item":!0,"data-disabled":f||g||void 0,"data-mantine-stop-propagation":!0,onClick:A,onKeyDown:qR({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)`:R?.color,"--menu-item-hover":R?.hover},children:[u&&y.jsx("div",{...x.getStyles("itemSection",{styles:i,classNames:n}),"data-position":"left",children:u}),h&&y.jsx("div",{...x.getStyles("itemLabel",{styles:i,classNames:n}),children:h}),d&&y.jsx("div",{...x.getStyles("itemSection",{styles:i,classNames:n}),"data-position":"right",children:d})]})});ose.classes=vg,ose.displayName="@mantine/core/MenuItem";const ase=Je((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,...l}=ze("MenuLabel",null,e),c=ed();return y.jsx(Le,{ref:r,...c.getStyles("label",{className:o,style:a,styles:i,classNames:n}),...l})});ase.classes=vg,ase.displayName="@mantine/core/MenuLabel";const gD=Je((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,onMouseEnter:l,onMouseLeave:c,onKeyDown:u,children:d,...h}=ze("MenuSubDropdown",null,e),f=E.useRef(null),g=ed(),b=Lk(),x=Ln(l,b?.open),w=Ln(c,b?.close);return y.jsx(Eo.Dropdown,{...h,onMouseEnter:x,onMouseLeave:w,role:"menu","aria-orientation":"vertical",ref:yn(r,f),...g.getStyles("dropdown",{className:o,style:a,styles:i,classNames:n,withStaticClass:!1}),tabIndex:-1,"data-menu-dropdown":!0,children:d})});gD.classes=vg,gD.displayName="@mantine/core/MenuSubDropdown";const yD=Jn((e,r)=>{const{classNames:n,className:o,style:a,styles:i,vars:s,color:l,leftSection:c,rightSection:u,children:d,disabled:h,"data-disabled":f,closeMenuOnClick:g,...b}=ze("MenuSubItem",null,e),x=ed(),w=Lk(),k=_o(),{dir:C}=Rc(),_=E.useRef(null),T=b,A=l?k.variantColorResolver({color:l,theme:k,variant:"light"}):void 0,R=l?nh({color:l,theme:k}):null,D=Ln(T.onKeyDown,F=>{F.key==="ArrowRight"&&(w?.open(),w?.focusFirstItem()),F.key==="ArrowLeft"&&w?.parentContext&&(w.parentContext.close(),w.parentContext.focusParentItem())}),N=Ln(T.onClick,()=>{!f&&g&&x.closeDropdownImmediately()}),M=Ln(T.onMouseEnter,w?.open),O=Ln(T.onMouseLeave,w?.close);return y.jsxs(Nl,{onMouseDown:F=>F.preventDefault(),...b,unstyled:x.unstyled,tabIndex:x.menuItemTabIndex,...x.getStyles("item",{className:o,style:a,styles:i,classNames:n}),ref:yn(_,r),role:"menuitem",disabled:h,"data-menu-item":!0,"data-sub-menu-item":!0,"data-disabled":h||f||void 0,"data-mantine-stop-propagation":!0,onMouseEnter:M,onMouseLeave:O,onClick:N,onKeyDown:qR({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":R?.isThemeColor&&R?.shade===void 0?`var(--mantine-color-${R.color}-6)`:A?.color,"--menu-item-hover":A?.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(KN,{...x.getStyles("chevron"),size:14})})]})});yD.classes=vg,yD.displayName="@mantine/core/MenuSubItem";function ise({children:e,refProp:r}){if(!Ds(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 ed(),y.jsx(Eo.Target,{refProp:r,popupType:"menu",children:e})}ise.displayName="@mantine/core/MenuSubTarget";const iut={offset:0,position:"right-start",transitionProps:{duration:0},middlewares:{shift:{crossAxis:!0}}};function fb(e){const{children:r,closeDelay:n,...o}=ze("MenuSub",iut,e),a=Ps(),[i,{open:s,close:l}]=Fot(!1),c=Lk(),{openDropdown:u,closeDropdown:d}=Klt({open:s,close:l,closeDelay:n,openDelay:0});return y.jsx(aut,{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(Eo,{opened:i,withinPortal:!1,withArrow:!1,id:a,...o,children:r})})}fb.extend=e=>e,fb.displayName="@mantine/core/MenuSub",fb.Target=ise,fb.Dropdown=gD,fb.Item=yD;const sut={refProp:"ref"},lut=E.forwardRef((e,r)=>{const{children:n,refProp:o,...a}=ze("MenuTarget",sut,e);if(!Ds(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=ed(),s=n.props,l=Ln(s.onClick,()=>{i.trigger==="click"?i.toggleDropdown():i.trigger==="click-hover"&&(i.setOpenedViaClick(!0),i.opened||i.openDropdown())}),c=Ln(s.onMouseEnter,()=>(i.trigger==="hover"||i.trigger==="click-hover")&&i.openDropdown()),u=Ln(s.onMouseLeave,()=>{(i.trigger==="hover"||i.trigger==="click-hover"&&!i.openedViaClick)&&i.closeDropdown()});return y.jsx(Eo.Target,{refProp:o,popupType:"menu",ref:r,...a,children:E.cloneElement(n,{onClick:l,onMouseEnter:c,onMouseLeave:u,"data-expanded":i.opened?!0:void 0})})});lut.displayName="@mantine/core/MenuTarget";const[cut,bD]=qa("Modal component was not found in tree");var mb={root:"m_9df02822",content:"m_54c44539",inner:"m_1f958f16",header:"m_d0e2b9cd"};const sse=Je((e,r)=>{const n=ze("ModalBody",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,...c}=n,u=bD();return y.jsx(qN,{ref:r,...u.getStyles("body",{classNames:o,style:i,styles:s,className:a}),...c})});sse.classes=mb,sse.displayName="@mantine/core/ModalBody";const lse=Je((e,r)=>{const n=ze("ModalContent",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,children:c,__hidden:u,...d}=n,h=bD(),f=h.scrollAreaComponent||eie;return y.jsx(UN,{...h.getStyles("content",{className:a,style:i,styles:s,classNames:o}),innerProps:h.getStyles("inner",{className:a,style:i,styles:s,classNames:o}),"data-full-screen":h.fullScreen||void 0,"data-modal-content":!0,"data-hidden":u||void 0,ref:r,...d,children:y.jsx(f,{style:{maxHeight:h.fullScreen?"100dvh":`calc(100dvh - (${qe(h.yOffset)} * 2))`},children:c})})});lse.classes=mb,lse.displayName="@mantine/core/ModalContent";const cse=Je((e,r)=>{const n=ze("ModalOverlay",null,e),{classNames:o,className:a,style:i,styles:s,vars:l,...c}=n,u=bD();return y.jsx(WN,{ref:r,...u.getStyles("overlay",{classNames:o,style:i,styles:s,className:a}),...c})});cse.classes=mb,cse.displayName="@mantine/core/ModalOverlay";const uut={__staticSelector:"Modal",closeOnClickOutside:!0,withinPortal:!0,lockScroll:!0,trapFocus:!0,returnFocus:!0,closeOnEscape:!0,keepMounted:!1,zIndex:$s("modal"),transitionProps:{duration:200,transition:"fade-down"},yOffset:"5dvh"},dut=(e,{radius:r,size:n,yOffset:o,xOffset:a})=>({root:{"--modal-radius":r===void 0?void 0:Tn(r),"--modal-size":ur(n,"modal-size"),"--modal-y-offset":qe(o),"--modal-x-offset":qe(a)}}),use=Je((e,r)=>{const n=ze("ModalRoot",uut,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,yOffset:u,scrollAreaComponent:d,radius:h,fullScreen:f,centered:g,xOffset:b,__staticSelector:x,attributes:w,...k}=n,C=vt({name:x,classes:mb,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:w,vars:c,varsResolver:dut});return y.jsx(cut,{value:{yOffset:u,scrollAreaComponent:d,getStyles:C,fullScreen:f},children:y.jsx(VN,{ref:r,...C("root"),"data-full-screen":f||void 0,"data-centered":g||void 0,"data-offset-scrollbars":d===sh.Autosize||void 0,unstyled:l,...k})})});use.classes=mb,use.displayName="@mantine/core/ModalRoot";const[Nkt,dse]=ng(),[put,hut]=ng();var Bk={root:"m_7cda1cd6","root--default":"m_44da308b","root--contrast":"m_e3a01f8",label:"m_1e0e6180",remove:"m_ae386778",group:"m_1dcfd90b"};const fut=(e,{gap:r},{size:n})=>({group:{"--pg-gap":r!==void 0?ur(r):ur(n,"pg-gap")}}),vD=Je((e,r)=>{const n=ze("PillGroup",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,size:u,disabled:d,attributes:h,...f}=n,g=dse()?.size||u||void 0,b=vt({name:"PillGroup",classes:Bk,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:h,vars:c,varsResolver:fut,stylesCtx:{size:g},rootSelector:"group"});return y.jsx(put,{value:{size:g,disabled:d},children:y.jsx(Le,{ref:r,size:g,...b("group"),...f})})});vD.classes=Bk,vD.displayName="@mantine/core/PillGroup";const mut={variant:"default"},gut=(e,{radius:r},{size:n})=>({root:{"--pill-fz":ur(n,"pill-fz"),"--pill-height":ur(n,"pill-height"),"--pill-radius":r===void 0?void 0:Tn(r)}}),xD=Je((e,r)=>{const n=ze("Pill",mut,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,variant:u,children:d,withRemoveButton:h,onRemove:f,removeButtonProps:g,radius:b,size:x,disabled:w,mod:k,attributes:C,..._}=n,T=hut(),A=dse(),R=x||T?.size||void 0,D=A?.variant==="filled"?"contrast":u||"default",N=vt({name:"Pill",classes:Bk,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:C,vars:c,varsResolver:gut,stylesCtx:{size:R}});return y.jsxs(Le,{component:"span",ref:r,variant:D,size:R,...N("root",{variant:D}),mod:[{"with-remove":h&&!w,disabled:w||T?.disabled},k],..._,children:[y.jsx("span",{...N("label"),children:d}),h&&y.jsx(uh,{variant:"transparent",radius:b,tabIndex:-1,"aria-hidden":!0,unstyled:l,...g,...N("remove",{className:g?.className,style:g?.style}),onMouseDown:M=>{M.preventDefault(),M.stopPropagation(),g?.onMouseDown?.(M)},onClick:M=>{M.stopPropagation(),f?.(),g?.onClick?.(M)}})]})});xD.classes=Bk,xD.displayName="@mantine/core/Pill",xD.Group=vD;var pse={root:"m_f0824112",description:"m_57492dcc",section:"m_690090b5",label:"m_1f6ac4c4",body:"m_f07af9d2",children:"m_e17b862f",chevron:"m_1fd8a00b"};const yut=(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":po(o)}}},hse=Jn((e,r)=>{const n=ze("NavLink",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,opened:u,defaultOpened:d,onChange:h,children:f,active:g,disabled:b,leftSection:x,rightSection:w,label:k,description:C,disableRightSectionRotation:_,noWrap:T,childrenOffset:A,autoContrast:R,mod:D,attributes:N,onClick:M,onKeyDown:O,...F}=n,L=vt({name:"NavLink",props:n,classes:pse,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:N,vars:c,varsResolver:yut}),[U,P]=Qu({value:u,defaultValue:d,finalValue:!1,onChange:h}),V=!!f,I=H=>{M?.(H),V&&(H.preventDefault(),P(!U))};return y.jsxs(y.Fragment,{children:[y.jsxs(Nl,{...L("root"),component:"a",ref:r,onClick:I,onKeyDown:H=>{O?.(H),H.nativeEvent.code==="Space"&&V&&(H.preventDefault(),P(!U))},unstyled:l,mod:[{disabled:b,active:g,expanded:U},D],...F,children:[x&&y.jsx(Le,{component:"span",...L("section"),mod:{position:"left"},children:x}),y.jsxs(Le,{...L("body"),mod:{"no-wrap":T},children:[y.jsx(Le,{component:"span",...L("label"),children:k}),y.jsx(Le,{component:"span",mod:{active:g},...L("description"),children:C})]}),(V||w!==void 0)&&y.jsx(Le,{...L("section"),component:"span",mod:{rotate:U&&!_,position:"right"},children:V?w!==void 0?w:y.jsx(KN,{...L("chevron")}):w})]}),V&&y.jsx(Moe,{in:U,...L("collapse"),children:y.jsx("div",{...L("children"),children:f})})]})});hse.classes=pse,hse.displayName="@mantine/core/NavLink";var fse={root:"m_a513464",icon:"m_a4ceffb",loader:"m_b0920b15",body:"m_a49ed24",title:"m_3feedf16",description:"m_3d733a3a",closeButton:"m_919a4d88"};const but={withCloseButton:!0},vut=(e,{radius:r,color:n})=>({root:{"--notification-radius":r===void 0?void 0:Tn(r),"--notification-color":n?Jo(n,e):void 0}}),mse=Je((e,r)=>{const n=ze("Notification",but,e),{className:o,color:a,radius:i,loading:s,withCloseButton:l,withBorder:c,title:u,icon:d,children:h,onClose:f,closeButtonProps:g,classNames:b,style:x,styles:w,unstyled:k,variant:C,vars:_,mod:T,loaderProps:A,role:R,attributes:D,...N}=n,M=vt({name:"Notification",classes:fse,props:n,className:o,style:x,classNames:b,styles:w,unstyled:k,attributes:D,vars:_,varsResolver:vut});return y.jsxs(Le,{...M("root"),mod:[{"data-with-icon":!!d||s,"data-with-border":c},T],ref:r,variant:C,role:R||"alert",...N,children:[d&&!s&&y.jsx("div",{...M("icon"),children:d}),s&&y.jsx(ch,{size:28,color:a,...A,...M("loader")}),y.jsxs("div",{...M("body"),children:[u&&y.jsx("div",{...M("title"),children:u}),y.jsx(Le,{...M("description"),mod:{"data-with-title":!!u},children:h})]}),l&&y.jsx(uh,{iconSize:16,color:"gray",...g,unstyled:k,onClick:f,...M("closeButton")})]})});mse.classes=fse,mse.displayName="@mantine/core/Notification";const xut={duration:100,transition:"fade"};function gse(e,r){return{...xut,...r,...e}}function wut({offset:e,position:r,defaultOpened:n}){const[o,a]=E.useState(n),i=E.useRef(null),{x:s,y:l,elements:c,refs:u,update:d,placement:h}=NN({placement:r,middleware:[EN({crossAxis:!0,padding:5,rootBoundary:"document"})]}),f=h.includes("right")?e:r.includes("left")?e*-1:0,g=h.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=$c(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:s,y:l,opened:o,setOpened:a,boundaryRef:i,floating:u.setFloating}}var Fk={tooltip:"m_1b3c8819",arrow:"m_f898399f"};const kut={refProp:"ref",withinPortal:!0,offset:10,position:"right",zIndex:$s("popover")},_ut=(e,{radius:r,color:n})=>({tooltip:{"--tooltip-radius":r===void 0?void 0:Tn(r),"--tooltip-bg":n?Jo(n,e):void 0,"--tooltip-color":n?"var(--mantine-color-white)":void 0}}),wD=Je((e,r)=>{const n=ze("TooltipFloating",kut,e),{children:o,refProp:a,withinPortal:i,style:s,className:l,classNames:c,styles:u,unstyled:d,radius:h,color:f,label:g,offset:b,position:x,multiline:w,zIndex:k,disabled:C,defaultOpened:_,variant:T,vars:A,portalProps:R,attributes:D,...N}=n,M=_o(),O=vt({name:"TooltipFloating",props:n,classes:Fk,className:l,style:s,classNames:c,styles:u,unstyled:d,attributes:D,rootSelector:"tooltip",vars:A,varsResolver:_ut}),{handleMouseMove:F,x:L,y:U,opened:P,boundaryRef:V,floating:I,setOpened:H}=wut({offset:b,position:x,defaultOpened:_});if(!Ds(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 q=yn(V,Q4(o),r),Z=o.props,W=K=>{Z.onMouseEnter?.(K),F(K),H(!0)},G=K=>{Z.onMouseLeave?.(K),H(!1)};return y.jsxs(y.Fragment,{children:[y.jsx(lh,{...R,withinPortal:i,children:y.jsx(Le,{...N,...O("tooltip",{style:{...iN(s,M),zIndex:k,display:!C&&P?"block":"none",top:(U&&Math.round(U))??"",left:(L&&Math.round(L))??""}}),variant:T,ref:I,mod:{multiline:w},children:g})}),E.cloneElement(o,{...Z,[a]:q,onMouseEnter:W,onMouseLeave:G})]})});wD.classes=Fk,wD.displayName="@mantine/core/TooltipFloating";const yse=E.createContext(!1),Eut=yse.Provider,Sut=()=>E.useContext(yse),Cut={openDelay:0,closeDelay:0};function kD(e){const{openDelay:r,closeDelay:n,children:o}=ze("TooltipGroup",Cut,e);return y.jsx(Eut,{value:!0,children:y.jsx(fae,{delay:{open:r,close:n},children:o})})}kD.displayName="@mantine/core/TooltipGroup",kD.extend=e=>e;function Tut(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 Aut(e){const r=Tut(e.middlewares),n=[nae(e.offset)];return r.shift&&n.push(EN(typeof r.shift=="boolean"?{padding:8}:{padding:8,...r.shift})),r.flip&&n.push(typeof r.flip=="boolean"?gk():gk(r.flip)),n.push(aae({element:e.arrowRef,padding:e.arrowOffset})),r.inline?n.push(typeof r.inline=="boolean"?ub():ub(r.inline)):e.inline&&n.push(ub()),n}function Rut(e){const[r,n]=E.useState(e.defaultOpened),o=typeof e.opened=="boolean"?e.opened:r,a=Sut(),i=Ps(),s=E.useCallback(T=>{n(T),T&&w(i)},[i]),{x:l,y:c,context:u,refs:d,placement:h,middlewareData:{arrow:{x:f,y:g}={}}}=NN({strategy:e.strategy,placement:e.position,open:o,onOpenChange:s,middleware:Aut(e),whileElementsMounted:kN}),{delay:b,currentId:x,setCurrentId:w}=$st(u,{id:i}),{getReferenceProps:k,getFloatingProps:C}=jst([Nst(u,{enabled:e.events?.hover,delay:a?b:{open:e.openDelay,close:e.closeDelay},mouseOnly:!e.events?.touch}),Ost(u,{enabled:e.events?.focus,visibleOnly:!0}),Bst(u,{role:"tooltip"}),zst(u,{enabled:typeof e.opened>"u"})]);th(()=>{e.onPositionChange?.(h)},[h]);const _=o&&x&&x!==i;return{x:l,y:c,arrowX:f,arrowY:g,reference:d.setReference,floating:d.setFloating,getFloatingProps:C,getReferenceProps:k,isGroupPhase:_,opened:o,placement:h}}const bse={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:$s("popover"),positionDependencies:[],middlewares:{flip:!0,shift:!0,inline:!1}},Nut=(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:Tn(r),"--tooltip-bg":n?i.background:void 0,"--tooltip-color":n?i.color:void 0}}},Hk=Je((e,r)=>{const n=ze("Tooltip",bse,e),{children:o,position:a,refProp:i,label:s,openDelay:l,closeDelay:c,onPositionChange:u,opened:d,defaultOpened:h,withinPortal:f,radius:g,color:b,classNames:x,styles:w,unstyled:k,style:C,className:_,withArrow:T,arrowSize:A,arrowOffset:R,arrowRadius:D,arrowPosition:N,offset:M,transitionProps:O,multiline:F,events:L,zIndex:U,disabled:P,positionDependencies:V,onClick:I,onMouseEnter:H,onMouseLeave:q,inline:Z,variant:W,keepMounted:G,vars:K,portalProps:j,mod:Y,floatingStrategy:Q,middlewares:J,autoContrast:ie,attributes:ne,target:re,...ge}=ze("Tooltip",bse,n),{dir:De}=Rc(),he=E.useRef(null),me=Rut({position:Pae(De,a),closeDelay:c,openDelay:l,onPositionChange:u,opened:d,defaultOpened:h,events:L,arrowRef:he,arrowOffset:R,offset:typeof M=="number"?M+(T?A/2:0):M,positionDependencies:[...V,re??o],inline:Z,strategy:Q,middlewares:J});E.useEffect(()=>{const Qe=re instanceof HTMLElement?re:typeof re=="string"?document.querySelector(re):re?.current||null;Qe&&me.reference(Qe)},[re,me]);const Te=vt({name:"Tooltip",props:n,classes:Fk,className:_,style:C,classNames:x,styles:w,unstyled:k,attributes:ne,rootSelector:"tooltip",vars:K,varsResolver:Nut});if(!re&&!Ds(o))return null;if(re){const Qe=gse(O,{duration:100,transition:"fade"});return y.jsx(y.Fragment,{children:y.jsx(lh,{...j,withinPortal:f,children:y.jsx(js,{...Qe,keepMounted:G,mounted:!P&&!!me.opened,duration:me.isGroupPhase?10:Qe.duration,children:Pt=>y.jsxs(Le,{...ge,"data-fixed":Q==="fixed"||void 0,variant:W,mod:[{multiline:F},Y],...me.getFloatingProps({ref:me.floating,className:Te("tooltip").className,style:{...Te("tooltip").style,...Pt,zIndex:U,top:me.y??0,left:me.x??0}}),children:[s,y.jsx(wk,{ref:he,arrowX:me.arrowX,arrowY:me.arrowY,visible:T,position:me.placement,arrowSize:A,arrowOffset:R,arrowRadius:D,arrowPosition:N,...Te("arrow")})]})})})})}const Ie=o,Ze=Ie.props,rt=yn(me.reference,Q4(Ie),r),Rt=gse(O,{duration:100,transition:"fade"});return y.jsxs(y.Fragment,{children:[y.jsx(lh,{...j,withinPortal:f,children:y.jsx(js,{...Rt,keepMounted:G,mounted:!P&&!!me.opened,duration:me.isGroupPhase?10:Rt.duration,children:Qe=>y.jsxs(Le,{...ge,"data-fixed":Q==="fixed"||void 0,variant:W,mod:[{multiline:F},Y],...me.getFloatingProps({ref:me.floating,className:Te("tooltip").className,style:{...Te("tooltip").style,...Qe,zIndex:U,top:me.y??0,left:me.x??0}}),children:[s,y.jsx(wk,{ref:he,arrowX:me.arrowX,arrowY:me.arrowY,visible:T,position:me.placement,arrowSize:A,arrowOffset:R,arrowRadius:D,arrowPosition:N,...Te("arrow")})]})})}),E.cloneElement(Ie,me.getReferenceProps({onClick:I,onMouseEnter:H,onMouseLeave:q,onMouseMove:n.onMouseMove,onPointerDown:n.onPointerDown,onPointerEnter:n.onPointerEnter,className:ho(_,Ze.className),...Ze,[i]:rt}))]})});Hk.classes=Fk,Hk.displayName="@mantine/core/Tooltip",Hk.Floating=wD,Hk.Group=kD;var vse={root:"m_cf365364",indicator:"m_9e182ccd",label:"m_1738fcb2",input:"m_1714d588",control:"m_69686b9b",innerLabel:"m_78882f40"};const Dut={withItemsBorders:!0},$ut=(e,{radius:r,color:n,transitionDuration:o,size:a,transitionTimingFunction:i})=>({root:{"--sc-radius":r===void 0?void 0:Tn(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":ur(a,"sc-padding"),"--sc-font-size":Fo(a)}}),xse=Je((e,r)=>{const n=ze("SegmentedControl",Dut,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,data:u,value:d,defaultValue:h,onChange:f,size:g,name:b,disabled:x,readOnly:w,fullWidth:k,orientation:C,radius:_,color:T,transitionDuration:A,transitionTimingFunction:R,variant:D,autoContrast:N,withItemsBorders:M,mod:O,attributes:F,...L}=n,U=vt({name:"SegmentedControl",props:n,classes:vse,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:F,vars:c,varsResolver:$ut}),P=_o(),V=u.map(re=>typeof re=="string"?{label:re,value:re}:re),I=Uot(),[H,q]=E.useState(YR()),[Z,W]=E.useState(null),[G,K]=E.useState({}),j=(re,ge)=>{G[ge]=re,K(G)},[Y,Q]=Qu({value:d,defaultValue:h,finalValue:Array.isArray(u)?V.find(re=>!re.disabled)?.value??u[0]?.value??null:null,onChange:f}),J=Ps(b),ie=V.map(re=>E.createElement(Le,{...U("control"),mod:{active:Y===re.value,orientation:C},key:re.value},E.createElement("input",{...U("input"),disabled:x||re.disabled,type:"radio",name:J,value:re.value,id:`${J}-${re.value}`,checked:Y===re.value,onChange:()=>!w&&Q(re.value),"data-focus-ring":P.focusRing,key:`${re.value}-input`}),E.createElement(Le,{component:"label",...U("label"),mod:{active:Y===re.value&&!(x||re.disabled),disabled:x||re.disabled,"read-only":w},htmlFor:`${J}-${re.value}`,ref:ge=>j(ge,re.value),__vars:{"--sc-label-color":T!==void 0?JR({color:T,theme:P,autoContrast:N}):void 0},key:`${re.value}-label`},y.jsx("span",{...U("innerLabel"),children:re.label})))),ne=yn(r,re=>W(re));return Bot(()=>{q(YR())},[u.length]),u.length===0?null:y.jsxs(Le,{...U("root"),variant:D,size:g,ref:ne,mod:[{"full-width":k,orientation:C,initialized:I,"with-items-borders":M},O],...L,role:"radiogroup","data-disabled":x,children:[typeof Y=="string"&&y.jsx(XN,{target:G[Y],parent:Z,component:"span",transitionDuration:"var(--sc-transition-duration)",...U("indicator")},H),ie]})});xse.classes=vse,xse.displayName="@mantine/core/SegmentedControl";const Mut={withCheckIcon:!0,allowDeselect:!0,checkIconPosition:"left"},wse=Je((e,r)=>{const n=ze("Select",Mut,e),{classNames:o,styles:a,unstyled:i,vars:s,dropdownOpened:l,defaultDropdownOpened:c,onDropdownClose:u,onDropdownOpen:d,onFocus:h,onBlur:f,onClick:g,onChange:b,data:x,value:w,defaultValue:k,selectFirstOptionOnChange:C,onOptionSubmit:_,comboboxProps:T,readOnly:A,disabled:R,filter:D,limit:N,withScrollArea:M,maxDropdownHeight:O,size:F,searchable:L,rightSection:U,checkIconPosition:P,withCheckIcon:V,nothingFoundMessage:I,name:H,form:q,searchValue:Z,defaultSearchValue:W,onSearchChange:G,allowDeselect:K,error:j,rightSectionPointerEvents:Y,id:Q,clearable:J,clearButtonProps:ie,hiddenInputProps:ne,renderOption:re,onClear:ge,autoComplete:De,scrollAreaProps:he,__defaultRightSection:me,__clearSection:Te,__clearable:Ie,chevronColor:Ze,autoSelectOnBlur:rt,attributes:Rt,...Qe}=n,Pt=E.useMemo(()=>rct(x),[x]),Ke=E.useRef({}),Ge=E.useMemo(()=>pie(Pt),[Pt]),ct=Ps(Q),[ut,Ir,Ee]=Qu({value:w,defaultValue:k,finalValue:null,onChange:b}),Se=typeof ut=="string"?ut in Ge?Ge[ut]:Ke.current[ut]:void 0,it=Vot(Se),[xt,zt,Fr]=Qu({value:Z,defaultValue:W,finalValue:Se?Se.label:"",onChange:G}),It=bie({opened:l,defaultOpened:c,onDropdownOpen:()=>{d?.(),It.updateSelectedOptionIndex("active",{scrollIntoView:!0})},onDropdownClose:()=>{u?.(),setTimeout(It.resetSelectedOption,0)}}),vr=xr=>{zt(xr),It.resetSelectedOption()},{resolvedClassNames:fr,resolvedStyles:un}=eN({props:n,styles:a,classNames:o});E.useEffect(()=>{C&&It.selectFirstOption()},[C,xt]),E.useEffect(()=>{w===null&&vr(""),typeof w=="string"&&Se&&(it?.value!==Se.value||it?.label!==Se.label)&&vr(Se.label)},[w,Se]),E.useEffect(()=>{!Ee&&!Fr&&vr(typeof ut=="string"?ut in Ge?Ge[ut]?.label:Ke.current[ut]?.label||"":"")},[Ge,ut]),E.useEffect(()=>{ut&&ut in Ge&&(Ke.current[ut]=Ge[ut])},[Ge,ut]);const ir=y.jsx(Nr.ClearButton,{...ie,onClear:()=>{Ir(null,null),vr(""),ge?.()}}),vn=J&&!!ut&&!R&&!A;return y.jsxs(y.Fragment,{children:[y.jsxs(Nr,{store:It,__staticSelector:"Select",classNames:fr,styles:un,unstyled:i,readOnly:A,size:F,attributes:Rt,keepMounted:rt,onOptionSubmit:xr=>{_?.(xr);const ea=K&&Ge[xr].value===ut?null:Ge[xr],xa=ea?ea.value:null;xa!==ut&&Ir(xa,ea),!Ee&&vr(typeof xa=="string"&&ea?.label||""),It.closeDropdown()},...T,children:[y.jsx(Nr.Target,{targetType:L?"input":"button",autoComplete:De,children:y.jsx(Rk,{id:ct,ref:r,__defaultRightSection:y.jsx(Nr.Chevron,{size:F,error:j,unstyled:i,color:Ze}),__clearSection:ir,__clearable:vn,rightSection:U,rightSectionPointerEvents:Y||"none",...Qe,size:F,__staticSelector:"Select",disabled:R,readOnly:A||!L,value:xt,onChange:xr=>{vr(xr.currentTarget.value),It.openDropdown(),C&&It.selectFirstOption()},onFocus:xr=>{L&&It.openDropdown(),h?.(xr)},onBlur:xr=>{rt&&It.clickSelectedOption(),L&&It.closeDropdown();const ea=typeof ut=="string"&&(ut in Ge?Ge[ut]:Ke.current[ut]);vr(ea&&ea.label||""),f?.(xr)},onClick:xr=>{L?It.openDropdown():It.toggleDropdown(),g?.(xr)},classNames:fr,styles:un,unstyled:i,pointer:!L,error:j,attributes:Rt})}),y.jsx(vct,{data:Pt,hidden:A||R,filter:D,search:xt,limit:N,hiddenWhenEmpty:!I,withScrollArea:M,maxDropdownHeight:O,filterOptions:!!L&&Se?.label!==xt,value:ut,checkIconPosition:P,withCheckIcon:V,nothingFoundMessage:I,unstyled:i,labelId:Qe.label?`${ct}-label`:void 0,"aria-label":Qe.label?void 0:Qe["aria-label"],renderOption:re,scrollAreaProps:he})]}),y.jsx(Nr.HiddenInput,{value:ut,name:H,form:q,disabled:R,...ne})]})});wse.classes={...Rk.classes,...Nr.classes},wse.displayName="@mantine/core/Select";function Put({spacing:e,verticalSpacing:r,cols:n,selector:o}){const a=_o(),i=r===void 0?e:r,s=Zu({"--sg-spacing-x":po(Ms(e)),"--sg-spacing-y":po(Ms(i)),"--sg-cols":Ms(n)?.toString()}),l=Bo(a.breakpoints).reduce((u,d)=>(u[d]||(u[d]={}),typeof e=="object"&&e[d]!==void 0&&(u[d]["--sg-spacing-x"]=po(e[d])),typeof i=="object"&&i[d]!==void 0&&(u[d]["--sg-spacing-y"]=po(i[d])),typeof n=="object"&&n[d]!==void 0&&(u[d]["--sg-cols"]=n[d]),u),{}),c=WR(Bo(l),a.breakpoints).filter(u=>Bo(l[u.value]).length>0).map(u=>({query:`(min-width: ${a.breakpoints[u.value]})`,styles:l[u.value]}));return y.jsx(sg,{styles:s,media:c,selector:o})}function _D(e){return typeof e=="object"&&e!==null?Bo(e):[]}function zut(e){return e.sort((r,n)=>K4(r)-K4(n))}function Iut({spacing:e,verticalSpacing:r,cols:n}){const o=Array.from(new Set([..._D(e),..._D(r),..._D(n)]));return zut(o)}function Out({spacing:e,verticalSpacing:r,cols:n,selector:o}){const a=r===void 0?e:r,i=Zu({"--sg-spacing-x":po(Ms(e)),"--sg-spacing-y":po(Ms(a)),"--sg-cols":Ms(n)?.toString()}),s=Iut({spacing:e,verticalSpacing:r,cols:n}),l=s.reduce((u,d)=>(u[d]||(u[d]={}),typeof e=="object"&&e[d]!==void 0&&(u[d]["--sg-spacing-x"]=po(e[d])),typeof a=="object"&&a[d]!==void 0&&(u[d]["--sg-spacing-y"]=po(a[d])),typeof n=="object"&&n[d]!==void 0&&(u[d]["--sg-cols"]=n[d]),u),{}),c=s.map(u=>({query:`simple-grid (min-width: ${u})`,styles:l[u]}));return y.jsx(sg,{styles:i,container:c,selector:o})}var kse={container:"m_925c2d2c",root:"m_2415a157"};const jut={cols:1,spacing:"md",type:"media"},_se=Je((e,r)=>{const n=ze("SimpleGrid",jut,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,cols:u,verticalSpacing:d,spacing:h,type:f,attributes:g,...b}=n,x=vt({name:"SimpleGrid",classes:kse,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:g,vars:c}),w=ib();return f==="container"?y.jsxs(y.Fragment,{children:[y.jsx(Out,{...n,selector:`.${w}`}),y.jsx("div",{...x("container"),children:y.jsx(Le,{ref:r,...x("root",{className:w}),...b})})]}):y.jsxs(y.Fragment,{children:[y.jsx(Put,{...n,selector:`.${w}`}),y.jsx(Le,{ref:r,...x("root",{className:w}),...b})]})});_se.classes=kse,_se.displayName="@mantine/core/SimpleGrid";const[Lut,Vk]=qa("SliderProvider was not found in tree"),Ese=E.forwardRef(({size:e,disabled:r,variant:n,color:o,thumbSize:a,radius:i,...s},l)=>{const{getStyles:c}=Vk();return y.jsx(Le,{tabIndex:-1,variant:n,size:e,ref:l,...c("root"),...s})});Ese.displayName="@mantine/core/SliderRoot";const Sse=E.forwardRef(({max:e,min:r,value:n,position:o,label:a,dragging:i,onMouseDown:s,onKeyDownCapture:l,labelTransitionProps:c,labelAlwaysOn:u,thumbLabel:d,onFocus:h,onBlur:f,showLabelOnHover:g,isHovered:b,children:x=null,disabled:w},k)=>{const{getStyles:C}=Vk(),[_,T]=E.useState(!1),A=u||i||_||g&&b;return y.jsxs(Le,{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:R=>{T(!0),typeof h=="function"&&h(R)},onBlur:R=>{T(!1),typeof f=="function"&&f(R)},onTouchStart:s,onMouseDown:s,onKeyDownCapture:l,onClick:R=>R.stopPropagation(),children:[x,y.jsx(js,{mounted:a!=null&&!!A,transition:"fade",duration:0,...c,children:R=>y.jsx("div",{...C("label",{style:R}),children:a})})]})});Sse.displayName="@mantine/core/SliderThumb";function Cse({value:e,min:r,max:n}){const o=(e-r)/(n-r)*100;return Math.min(Math.max(o,0),100)}function But({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 Tse({marks:e,min:r,max:n,disabled:o,value:a,offset:i,inverted:s}){const{getStyles:l}=Vk();if(!e)return null;const c=e.map((u,d)=>E.createElement(Le,{...l("markWrapper"),__vars:{"--mark-offset":`${Cse({value:u.value,min:r,max:n})}%`},key:d},y.jsx(Le,{...l("mark"),mod:{filled:But({mark:u,value:a,offset:i,inverted:s}),disabled:o}}),u.label&&y.jsx("div",{...l("markLabel"),children:u.label})));return y.jsx("div",{children:c})}Tse.displayName="@mantine/core/SliderMarks";function Ase({filled:e,children:r,offset:n,disabled:o,marksOffset:a,inverted:i,containerProps:s,...l}){const{getStyles:c}=Vk();return y.jsx(Le,{...c("trackContainer"),mod:{disabled:o},...s,children:y.jsxs(Le,{...c("track"),mod:{inverted:i,disabled:o},children:[y.jsx(Le,{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(Tse,{...l,offset:a,disabled:o,inverted:i})]})})}Ase.displayName="@mantine/core/SliderTrack";function Fut({value:e,containerWidth:r,min:n,max:o,step:a,precision:i}){const s=(r?Math.min(Math.max(e,0),r)/r:e)*(o-n),l=(s!==0?Math.round(s/a)*a:0)+n,c=Math.max(l,n);return i!==void 0?Number(c.toFixed(i)):c}function qk(e,r){return parseFloat(e.toFixed(r))}function Hut(e){if(!e)return 0;const r=e.toString().split(".");return r.length>1?r[1].length:0}function ED(e,r){const n=[...r].sort((o,a)=>o.value-a.value).find(o=>o.value>e);return n?n.value:e}function SD(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 Nse(e){const r=[...e].sort((n,o)=>n.value-o.value);return r.length>0?r[r.length-1].value:100}var Dse={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 Vut={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"},qut=(e,{size:r,color:n,thumbSize:o,radius:a})=>({root:{"--slider-size":ur(r,"slider-size"),"--slider-color":n?Jo(n,e):void 0,"--slider-radius":a===void 0?void 0:Tn(a),"--slider-thumb-size":o!==void 0?qe(o):"calc(var(--slider-size) * 2)"}}),$se=Je((e,r)=>{const n=ze("Slider",Vut,e),{classNames:o,styles:a,value:i,onChange:s,onChangeEnd:l,size:c,min:u,max:d,domain:h,step:f,precision:g,defaultValue:b,name:x,marks:w,label:k,labelTransitionProps:C,labelAlwaysOn:_,thumbLabel:T,showLabelOnHover:A,thumbChildren:R,disabled:D,unstyled:N,scale:M,inverted:O,className:F,style:L,vars:U,hiddenInputProps:P,restrictToMarks:V,thumbProps:I,attributes:H,...q}=n,Z=vt({name:"Slider",props:n,classes:Dse,classNames:o,className:F,styles:a,style:L,attributes:H,vars:U,varsResolver:qut,unstyled:N}),{dir:W}=Rc(),[G,K]=E.useState(!1),[j,Y]=Qu({value:typeof i=="number"?og(i,u,d):i,defaultValue:typeof b=="number"?og(b,u,d):b,finalValue:og(0,u,d),onChange:s}),Q=E.useRef(j),J=E.useRef(l);E.useEffect(()=>{J.current=l},[l]);const ie=E.useRef(null),ne=E.useRef(null),[re,ge]=h||[u,d],De=Cse({value:j,min:re,max:ge}),he=M(j),me=typeof k=="function"?k(he):k,Te=g??Hut(f),Ie=E.useCallback(({x:Ke})=>{if(!D){const Ge=Fut({value:Ke,min:re,max:ge,step:f,precision:Te}),ct=og(Ge,u,d);Y(V&&w?.length?boe(ct,w.map(ut=>ut.value)):ct),Q.current=ct}},[D,u,d,re,ge,f,Te,Y,w,V]),Ze=E.useCallback(()=>{if(!D&&J.current){const Ke=V&&w?.length?boe(Q.current,w.map(Ge=>Ge.value)):Q.current;J.current(Ke)}},[D,w,V]),{ref:rt,active:Rt}=Oot(Ie,{onScrubEnd:Ze},W),Qe=E.useCallback(Ke=>{!D&&J.current&&J.current(Ke)},[D]),Pt=Ke=>{if(!D)switch(Ke.key){case"ArrowUp":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){const ct=ED(j,w);Y(ct),Qe(ct);break}const Ge=qk(Math.min(Math.max(j+f,u),d),Te);Y(Ge),Qe(Ge);break}case"ArrowRight":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){const ct=W==="rtl"?SD(j,w):ED(j,w);Y(ct),Qe(ct);break}const Ge=qk(Math.min(Math.max(W==="rtl"?j-f:j+f,u),d),Te);Y(Ge),Qe(Ge);break}case"ArrowDown":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){const ct=SD(j,w);Y(ct),Qe(ct);break}const Ge=qk(Math.min(Math.max(j-f,u),d),Te);Y(Ge),Qe(Ge);break}case"ArrowLeft":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){const ct=W==="rtl"?ED(j,w):SD(j,w);Y(ct),Qe(ct);break}const Ge=qk(Math.min(Math.max(W==="rtl"?j+f:j-f,u),d),Te);Y(Ge),Qe(Ge);break}case"Home":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){Y(Rse(w)),Qe(Rse(w));break}Y(u),Qe(u);break}case"End":{if(Ke.preventDefault(),ne.current?.focus(),V&&w){Y(Nse(w)),Qe(Nse(w));break}Y(d),Qe(d);break}}};return y.jsx(Lut,{value:{getStyles:Z},children:y.jsxs(Ese,{...q,ref:yn(r,ie),onKeyDownCapture:Pt,onMouseDownCapture:()=>ie.current?.focus(),size:c,disabled:D,children:[y.jsx(Ase,{inverted:O,offset:0,filled:De,marks:w,min:re,max:ge,value:he,disabled:D,containerProps:{ref:rt,onMouseEnter:A?()=>K(!0):void 0,onMouseLeave:A?()=>K(!1):void 0},children:y.jsx(Sse,{max:ge,min:re,value:he,position:De,dragging:Rt,label:me,ref:ne,labelTransitionProps:C,labelAlwaysOn:_,thumbLabel:T,showLabelOnHover:A,isHovered:G,disabled:D,...I,children:R})}),y.jsx("input",{type:"hidden",name:x,value:he,...P})]})})});$se.classes=Dse,$se.displayName="@mantine/core/Slider";const Uut=Je((e,r)=>{const{w:n,h:o,miw:a,mih:i,...s}=ze("Space",null,e);return y.jsx(Le,{ref:r,...s,w:n,miw:a??n,h:o,mih:i??o})});Uut.displayName="@mantine/core/Space";var Mse={root:"m_6d731127"};const Wut={gap:"md",align:"stretch",justify:"flex-start"},Yut=(e,{gap:r,align:n,justify:o})=>({root:{"--stack-gap":po(r),"--stack-align":n,"--stack-justify":o}}),Pse=Je((e,r)=>{const n=ze("Stack",Wut,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,align:u,justify:d,gap:h,variant:f,attributes:g,...b}=n,x=vt({name:"Stack",props:n,classes:Mse,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:g,vars:c,varsResolver:Yut});return y.jsx(Le,{ref:r,...x("root"),variant:f,...b})});Pse.classes=Mse,Pse.displayName="@mantine/core/Stack";const[Gut,CD]=qa("Tabs component was not found in the tree");var gb={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 TD=Je((e,r)=>{const n=ze("TabsList",null,e),{children:o,className:a,grow:i,justify:s,classNames:l,styles:c,style:u,mod:d,...h}=n,f=CD();return y.jsx(Le,{...h,...f.getStyles("list",{className:a,style:u,classNames:l,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":s},children:o})});TD.classes=gb,TD.displayName="@mantine/core/TabsList";const AD=Je((e,r)=>{const n=ze("TabsPanel",null,e),{children:o,className:a,value:i,classNames:s,styles:l,style:c,mod:u,keepMounted:d,...h}=n,f=CD(),g=f.value===i,b=f.keepMounted||d||g?o:null;return y.jsx(Le,{...f.getStyles("panel",{className:a,classNames:s,styles:l,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),...h,children:b})});AD.classes=gb,AD.displayName="@mantine/core/TabsPanel";const RD=Je((e,r)=>{const n=ze("TabsTab",null,e),{className:o,children:a,rightSection:i,leftSection:s,value:l,onClick:c,onKeyDown:u,disabled:d,color:h,style:f,classNames:g,styles:b,vars:x,mod:w,tabIndex:k,...C}=n,_=_o(),{dir:T}=Rc(),A=CD(),R=l===A.value,D=M=>{A.onChange(A.allowTabDeactivation&&l===A.value?null:l),c?.(M)},N={classNames:g,styles:b,props:n};return y.jsxs(Nl,{...A.getStyles("tab",{className:o,style:f,variant:A.variant,...N}),disabled:d,unstyled:A.unstyled,variant:A.variant,mod:[{active:R,disabled:d,orientation:A.orientation,inverted:A.inverted,placement:A.orientation==="vertical"&&A.placement},w],ref:r,role:"tab",id:A.getTabId(l),"aria-selected":R,tabIndex:k!==void 0?k:R||A.value===null?0:-1,"aria-controls":A.getPanelId(l),onClick:D,__vars:{"--tabs-color":h?Jo(h,_):void 0},onKeyDown:qR({siblingSelector:'[role="tab"]',parentSelector:'[role="tablist"]',activateOnFocus:A.activateTabWithKeyboard,loop:A.loop,orientation:A.orientation||"horizontal",dir:T,onKeyDown:u}),...C,children:[s&&y.jsx("span",{...A.getStyles("tabSection",N),"data-position":"left",children:s}),a&&y.jsx("span",{...A.getStyles("tabLabel",N),children:a}),i&&y.jsx("span",{...A.getStyles("tabSection",N),"data-position":"right",children:i})]})});RD.classes=gb,RD.displayName="@mantine/core/TabsTab";const zse="Tabs.Tab or Tabs.Panel component was rendered with invalid value or without value",Xut={keepMounted:!0,orientation:"horizontal",loop:!0,activateTabWithKeyboard:!0,variant:"default",placement:"left"},Kut=(e,{radius:r,color:n,autoContrast:o})=>({root:{"--tabs-radius":Tn(r),"--tabs-color":Jo(n,e),"--tabs-text-color":Tat(o,e)?JR({color:n,theme:e,autoContrast:o}):void 0}}),yb=Je((e,r)=>{const n=ze("Tabs",Xut,e),{defaultValue:o,value:a,onChange:i,orientation:s,children:l,loop:c,id:u,activateTabWithKeyboard:d,allowTabDeactivation:h,variant:f,color:g,radius:b,inverted:x,placement:w,keepMounted:k,classNames:C,styles:_,unstyled:T,className:A,style:R,vars:D,autoContrast:N,mod:M,attributes:O,...F}=n,L=Ps(u),[U,P]=Qu({value:a,defaultValue:o,finalValue:null,onChange:i}),V=vt({name:"Tabs",props:n,classes:gb,className:A,style:R,classNames:C,styles:_,unstyled:T,attributes:O,vars:D,varsResolver:Kut});return y.jsx(Gut,{value:{placement:w,value:U,orientation:s,id:L,loop:c,activateTabWithKeyboard:d,getTabId:uoe(`${L}-tab`,zse),getPanelId:uoe(`${L}-panel`,zse),onChange:P,allowTabDeactivation:h,variant:f,color:g,radius:b,inverted:x,keepMounted:k,unstyled:T,getStyles:V},children:y.jsx(Le,{ref:r,id:L,variant:f,mod:[{orientation:s,inverted:s==="horizontal"&&x,placement:s==="vertical"&&w},M],...V("root"),...F,children:l})})});yb.classes=gb,yb.displayName="@mantine/core/Tabs",yb.Tab=RD,yb.Panel=AD,yb.List=TD;var Ise={root:"m_7341320d"};const Zut=(e,{size:r,radius:n,variant:o,gradient:a,color:i,autoContrast:s})=>{const l=e.variantColorResolver({color:i||e.primaryColor,theme:e,gradient:a,variant:o||"filled",autoContrast:s});return{root:{"--ti-size":ur(r,"ti-size"),"--ti-radius":n===void 0?void 0:Tn(n),"--ti-bg":i||o?l.background:void 0,"--ti-color":i||o?l.color:void 0,"--ti-bd":i||o?l.border:void 0}}},Ose=Je((e,r)=>{const n=ze("ThemeIcon",null,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,autoContrast:u,attributes:d,...h}=n,f=vt({name:"ThemeIcon",classes:Ise,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:d,vars:c,varsResolver:Zut});return y.jsx(Le,{ref:r,...f("root"),...h})});Ose.classes=Ise,Ose.displayName="@mantine/core/ThemeIcon";const Qut=["h1","h2","h3","h4","h5","h6"],Jut=["xs","sm","md","lg","xl"];function edt(e,r){const n=r!==void 0?r:`h${e}`;return Qut.includes(n)?{fontSize:`var(--mantine-${n}-font-size)`,fontWeight:`var(--mantine-${n}-font-weight)`,lineHeight:`var(--mantine-${n}-line-height)`}:Jut.includes(n)?{fontSize:`var(--mantine-font-size-${n})`,fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}:{fontSize:qe(n),fontWeight:`var(--mantine-h${e}-font-weight)`,lineHeight:`var(--mantine-h${e}-line-height)`}}var jse={root:"m_8a5d1357"};const tdt={order:1},rdt=(e,{order:r,size:n,lineClamp:o,textWrap:a})=>{const i=edt(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}}},Lse=Je((e,r)=>{const n=ze("Title",tdt,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,order:c,vars:u,size:d,variant:h,lineClamp:f,textWrap:g,mod:b,attributes:x,...w}=n,k=vt({name:"Title",props:n,classes:jse,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:x,vars:u,varsResolver:rdt});return[1,2,3,4,5,6].includes(c)?y.jsx(Le,{...k("root"),component:`h${c}`,variant:h,ref:r,mod:[{order:c,"data-line-clamp":typeof f=="number"},b],size:d,...w}):null});Lse.classes=jse,Lse.displayName="@mantine/core/Title";function Bse(e,r,n){if(!e||!r)return[];const o=n.indexOf(e),a=n.indexOf(r),i=Math.min(o,a),s=Math.max(o,a);return n.slice(i,s+1)}function ND({node:e,getStyles:r,rootIndex:n,controller:o,expandOnClick:a,selectOnClick:i,isSubtree:s,level:l=1,renderNode:c,flatValues:u,allowRangeSelection:d,expandOnSpace:h,checkOnSpace:f}){const g=E.useRef(null),b=(e.children||[]).map(_=>y.jsx(ND,{node:_,flatValues:u,getStyles:r,rootIndex:void 0,level:l+1,controller:o,expandOnClick:a,isSubtree:!0,renderNode:c,selectOnClick:i,allowRangeSelection:d,expandOnSpace:h,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):s&&nb(_.currentTarget,"[role=treeitem]")?.focus()),_.nativeEvent.code==="ArrowDown"||_.nativeEvent.code==="ArrowUp"){const T=nb(_.currentTarget,"[data-tree-root]");if(!T)return;_.stopPropagation(),_.preventDefault();const A=Array.from(T.querySelectorAll("[role=treeitem]")),R=A.indexOf(_.currentTarget);if(R===-1)return;const D=_.nativeEvent.code==="ArrowDown"?R+1:R-1;if(A[D]?.focus(),_.shiftKey){const N=A[D];N&&o.setSelectedState(Bse(o.anchorNode,N.dataset.value,u))}}_.nativeEvent.code==="Space"&&(h&&(_.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(Bse(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) * ${l-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":l,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:l,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(Le,{component:"ul",role:"group",...r("subtree"),"data-level":l,children:b})]})}ND.displayName="@mantine/core/TreeNode";function Uk(e,r,n=[]){const o=[];for(const a of e)if(Array.isArray(a.children)&&a.children.length>0){const i=Uk(a.children,r,n);if(i.currentTreeChecked.length===a.children.length){const s=i.currentTreeChecked.every(c=>c.checked),l={checked:s,indeterminate:!s,value:a.value,hasChildren:!0};o.push(l),n.push(l)}else if(i.currentTreeChecked.length>0){const s={checked:!1,indeterminate:!0,value:a.value,hasChildren:!0};o.push(s),n.push(s)}}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 Fse(e,r){for(const n of r){if(n.value===e)return n;if(Array.isArray(n.children)){const o=Fse(e,n.children);if(o)return o}}return null}function Wk(e,r,n=[]){const o=Fse(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?Wk(a.value,r,n):n.push(a.value)}),n):n}function Hse(e){return e.reduce((r,n)=>(Array.isArray(n.children)&&n.children.length>0?r.push(...Hse(n.children)):r.push(n.value),r),[])}function ndt(e,r,n){return n.length===0?!1:n.includes(e)?!0:Uk(r,n).result.some(o=>o.value===e&&o.checked)}const odt=yoe(ndt);function adt(e,r,n){return n.length===0?!1:Uk(r,n).result.some(o=>o.value===e&&o.indeterminate)}const idt=yoe(adt);function Vse(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)&&Vse(e,a.children,n,o)}),o}function sdt(e,r){const n=[];return e.forEach(o=>n.push(...Wk(o,r))),Array.from(new Set(n))}function ldt({initialSelectedState:e=[],initialCheckedState:r=[],initialExpandedState:n={},multiple:o=!1,onNodeCollapse:a,onNodeExpand:i}={}){const[s,l]=E.useState([]),[c,u]=E.useState(n),[d,h]=E.useState(e),[f,g]=E.useState(r),[b,x]=E.useState(null),[w,k]=E.useState(null),C=E.useCallback(I=>{u(H=>Vse(H,I,d)),g(H=>sdt(H,I)),l(I)},[d,f]),_=E.useCallback(I=>{u(H=>{const q={...H,[I]:!H[I]};return q[I]?i?.(I):a?.(I),q})},[a,i]),T=E.useCallback(I=>{u(H=>(H[I]!==!1&&a?.(I),{...H,[I]:!1}))},[a]),A=E.useCallback(I=>{u(H=>(H[I]!==!0&&i?.(I),{...H,[I]:!0}))},[i]),R=E.useCallback(()=>{u(I=>{const H={...I};return Object.keys(H).forEach(q=>{H[q]=!0}),H})},[]),D=E.useCallback(()=>{u(I=>{const H={...I};return Object.keys(H).forEach(q=>{H[q]=!1}),H})},[]),N=E.useCallback(I=>h(H=>o?H.includes(I)?(x(null),H.filter(q=>q!==I)):(x(I),[...H,I]):H.includes(I)?(x(null),[]):(x(I),[I])),[]),M=E.useCallback(I=>{x(I),h(H=>o?H.includes(I)?H:[...H,I]:[I])},[]),O=E.useCallback(I=>{b===I&&x(null),h(H=>H.filter(q=>q!==I))},[]),F=E.useCallback(()=>{h([]),x(null)},[]),L=E.useCallback(I=>{const H=Wk(I,s);g(q=>Array.from(new Set([...q,...H])))},[s]),U=E.useCallback(I=>{const H=Wk(I,s);g(q=>q.filter(Z=>!H.includes(Z)))},[s]),P=E.useCallback(()=>{g(()=>Hse(s))},[s]),V=E.useCallback(()=>{g([])},[]);return{multiple:o,expandedState:c,selectedState:d,checkedState:f,anchorNode:b,initialize:C,toggleExpanded:_,collapse:T,expand:A,expandAllNodes:R,collapseAllNodes:D,setExpandedState:u,checkNode:L,uncheckNode:U,checkAllNodes:P,uncheckAllNodes:V,setCheckedState:g,toggleSelected:N,select:M,deselect:O,clearSelected:F,setSelectedState:h,hoveredNode:w,setHoveredNode:k,getCheckedNodes:()=>Uk(s,f).result,isNodeChecked:I=>odt(I,s,f),isNodeIndeterminate:I=>idt(I,s,f)}}var qse={root:"m_f698e191",subtree:"m_75f3ecf",node:"m_f6970eb1",label:"m_dc283425"};function Use(e){return e.reduce((r,n)=>(r.push(n.value),n.children&&r.push(...Use(n.children)),r),[])}const cdt={expandOnClick:!0,allowRangeSelection:!0,expandOnSpace:!0},udt=(e,{levelOffset:r})=>({root:{"--level-offset":po(r)}}),Wse=Je((e,r)=>{const n=ze("Tree",cdt,e),{classNames:o,className:a,style:i,styles:s,unstyled:l,vars:c,data:u,expandOnClick:d,tree:h,renderNode:f,selectOnClick:g,clearSelectionOnOutsideClick:b,allowRangeSelection:x,expandOnSpace:w,levelOffset:k,checkOnSpace:C,attributes:_,...T}=n,A=ldt(),R=h||A,D=vt({name:"Tree",classes:qse,props:n,className:a,style:i,classNames:o,styles:s,unstyled:l,attributes:_,vars:c,varsResolver:udt}),N=doe(()=>b&&R.clearSelected()),M=yn(r,N),O=E.useMemo(()=>Use(u),[u]);E.useEffect(()=>{R.initialize(u)},[u]);const F=u.map((L,U)=>y.jsx(ND,{node:L,getStyles:D,rootIndex:U,expandOnClick:d,selectOnClick:g,controller:R,renderNode:f,flatValues:O,allowRangeSelection:x,expandOnSpace:w,checkOnSpace:C},L.value));return y.jsx(Le,{component:"ul",ref:M,...D("root"),...T,role:"tree","aria-multiselectable":R.multiple,"data-tree-root":!0,children:F})});Wse.displayName="@mantine/core/Tree",Wse.classes=qse;var ddt="Invariant failed";function Yk(e,r){if(!e)throw new Error(ddt)}function pdt(e){return typeof e=="function"}function Yse(e,r){return pdt(e)?e(r):e}function hdt(e,r){return r.reduce((n,o)=>(n[o]=e[o],n),{})}function Gse(e,r){if(e===r)return e;const n=r,o=Kse(e)&&Kse(n);if(o||Gk(e)&&Gk(n)){const a=o?e:Object.keys(e),i=a.length,s=o?n:Object.keys(n),l=s.length,c=o?[]:{};let u=0;for(let d=0;d"u")return!0;const n=r.prototype;return!(!Xse(n)||!n.hasOwnProperty("isPrototypeOf"))}function Xse(e){return Object.prototype.toString.call(e)==="[object Object]"}function Kse(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Zse(e,r){let n=Object.keys(e);return r&&(n=n.filter(o=>e[o]!==void 0)),n}function DD(e,r,n){if(e===r)return!0;if(typeof e!=typeof r)return!1;if(Gk(e)&&Gk(r)){const o=n?.ignoreUndefined??!0,a=Zse(e,o),i=Zse(r,o);return!n?.partial&&a.length!==i.length?!1:i.every(s=>DD(e[s],r[s],n))}return Array.isArray(e)&&Array.isArray(r)?e.length!==r.length?!1:!e.some((o,a)=>!DD(o,r[a],n)):!1}function fdt(e){let r,n;const o=new Promise((a,i)=>{r=a,n=i});return o.status="pending",o.resolve=a=>{o.status="resolved",o.value=a,r(a)},o.reject=a=>{o.status="rejected",n(a)},o}function Xk(e,r){return e?.endsWith("/")&&e!=="/"&&e!==`${r}/`?e.slice(0,-1):e}function mdt(e,r,n){return Xk(e,n)===Xk(r,n)}function Kk(e){return!!e?.isNotFound}const Qse="tsr-scroll-restoration-v1_3";let Jse=!1;try{Jse=typeof window<"u"&&typeof window.sessionStorage=="object"}catch{}Jse&&JSON.parse(window.sessionStorage.getItem(Qse)||"null");const ele=e=>e.state.key||e.href;function gdt(e,r,n,o,a){var i;let s;try{s=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(u){console.error(u);return}const l=r||((i=window.history.state)==null?void 0:i.key),c=s[l];(()=>{if(o&&c){for(const d in c){const h=c[d];if(d==="window")window.scrollTo({top:h.scrollY,left:h.scrollX,behavior:n});else if(d){const f=document.querySelector(d);f&&(f.scrollLeft=h.scrollX,f.scrollTop=h.scrollY)}}return}const u=window.location.hash.split("#")[1];if(u){const d=(window.history.state||{}).__hashScrollIntoViewOptions??!0;if(d){const h=document.getElementById(u);h&&h.scrollIntoView(d)}return}["window",...a?.filter(d=>d!=="window")??[]].forEach(d=>{const h=d==="window"?window:document.querySelector(d);h&&h.scrollTo({top:0,left:0,behavior:n})})})()}const tle="__root__";function ydt(e){return!!e?.isRedirect}function bdt(e){const r=e.resolvedLocation,n=e.location,o=r?.pathname!==n.pathname,a=r?.href!==n.href,i=r?.hash!==n.hash;return{fromLocation:r,toLocation:n,pathChanged:o,hrefChanged:a,hashChanged:i}}const vdt="Error preloading route! ☝️";function rle(e){const r=e.errorComponent??$D;return y.jsx(xdt,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:o})=>n?E.createElement(r,{error:n,reset:o}):e.children})}class xdt extends E.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(r){return{resetKey:r.getResetKey()}}static getDerivedStateFromError(r){return{error:r}}reset(){this.setState({error:null})}componentDidUpdate(r,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(r,n){this.props.onCatch&&this.props.onCatch(r,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function $D({error:e}){const[r,n]=E.useState(!1);return y.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[y.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[y.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),y.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(o=>!o),children:r?"Hide Error":"Show Error"})]}),y.jsx("div",{style:{height:".25rem"}}),r?y.jsx("div",{children:y.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?y.jsx("code",{children:e.message}):null})}):null]})}function wdt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var nle={exports:{}},MD={},ole={exports:{}},PD={},ale;function kdt(){if(ale)return PD;ale=1;var e=dn;function r(h,f){return h===f&&(h!==0||1/h===1/f)||h!==h&&f!==f}var n=typeof Object.is=="function"?Object.is:r,o=e.useState,a=e.useEffect,i=e.useLayoutEffect,s=e.useDebugValue;function l(h,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})},[h,g,f]),a(function(){return c(x)&&w({inst:x}),h(function(){c(x)&&w({inst:x})})},[h]),s(g),g}function c(h){var f=h.getSnapshot;h=h.value;try{var g=f();return!n(h,g)}catch{return!0}}function u(h,f){return f()}var d=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:l;return PD.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:d,PD}var ile;function sle(){return ile||(ile=1,ole.exports=kdt()),ole.exports}var lle;function _dt(){if(lle)return MD;lle=1;var e=dn,r=sle();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,s=e.useEffect,l=e.useMemo,c=e.useDebugValue;return MD.useSyncExternalStoreWithSelector=function(u,d,h,f,g){var b=i(null);if(b.current===null){var x={hasValue:!1,value:null};b.current=x}else x=b.current;b=l(function(){function k(R){if(!C){if(C=!0,_=R,R=f(R),g!==void 0&&x.hasValue){var D=x.value;if(g(D,R))return T=D}return T=R}if(D=T,o(_,R))return D;var N=f(R);return g!==void 0&&g(D,N)?(_=R,D):(_=R,T=N)}var C=!1,_,T,A=h===void 0?null:h;return[function(){return k(d())},A===null?void 0:function(){return k(A())}]},[d,h,f,g]);var w=a(u,b[0],b[1]);return s(function(){x.hasValue=!0,x.value=w},[w]),c(w),w},MD}var cle;function Edt(){return cle||(cle=1,nle.exports=_dt()),nle.exports}var ule=Edt();const Sdt=wdt(ule);function Cdt(e,r=n=>n){return ule.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,r,Tdt)}function Tdt(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(!r.has(o)||!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(let o=0;o"u"?zD:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=zD,zD)}function dh(e){const r=E.useContext(Adt());return e?.warn,r}function Bs(e){const r=dh({warn:e?.router===void 0}),n=e?.router||r,o=E.useRef(void 0);return Cdt(n.__store,a=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const i=Gse(o.current,e.select(a));return o.current=i,i}return e.select(a)}return a})}const dle=E.createContext(void 0);E.createContext(void 0);function Rdt(e){const r=Bs({select:n=>`not-found-${n.location.pathname}-${n.status}`});return y.jsx(rle,{getResetKey:()=>r,onCatch:(n,o)=>{var a;if(Kk(n))(a=e.onCatch)==null||a.call(e,n,o);else throw n},errorComponent:({error:n})=>{var o;if(Kk(n))return(o=e.fallback)==null?void 0:o.call(e,n);throw n},children:e.children})}function Ndt(){return y.jsx("p",{children:"Not Found"})}function ID(e){return y.jsx(y.Fragment,{children:e.children})}function ple(e,r,n){return r.options.notFoundComponent?y.jsx(r.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?y.jsx(e.options.defaultNotFoundComponent,{data:n}):y.jsx(Ndt,{})}var OD,hle;function Ddt(){if(hle)return OD;hle=1;const e={},r=e.hasOwnProperty,n=(N,M)=>{for(const O in N)r.call(N,O)&&M(O,N[O])},o=(N,M)=>(M&&n(M,(O,F)=>{N[O]=F}),N),a=(N,M)=>{const O=N.length;let F=-1;for(;++F"\\u"+("0000"+N).slice(-4),s=(N,M)=>{let O=N.toString(16);return M?O:O.toUpperCase()},l=e.toString,c=Array.isArray,u=N=>typeof Buffer=="function"&&Buffer.isBuffer(N),d=N=>l.call(N)=="[object Object]",h=N=>typeof N=="string"||l.call(N)=="[object String]",f=N=>typeof N=="number"||l.call(N)=="[object Number]",g=N=>typeof N=="bigint",b=N=>typeof N=="function",x=N=>l.call(N)=="[object Map]",w=N=>l.call(N)=="[object Set]",k={"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},C=/[\\\b\f\n\r\t]/,_=/[0-9]/,T=/[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,A=/([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^]/g,R=/([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^ !#-&\(-\[\]-_a-~]/g,D=(N,M)=>{const O=()=>{H=I,++M.indentLevel,I=M.indent.repeat(M.indentLevel)},F={escapeEverything:!1,minimal:!1,isScriptContext:!1,quotes:"single",wrap:!1,es6:!1,json:!1,compact:!0,lowercaseHex:!1,numbers:"decimal",indent:" ",indentLevel:0,__inline1__:!1,__inline2__:!1},L=M&&M.json;L&&(F.quotes="double",F.wrap=!0),M=o(F,M),M.quotes!="single"&&M.quotes!="double"&&M.quotes!="backtick"&&(M.quotes="single");const U=M.quotes=="double"?'"':M.quotes=="backtick"?"`":"'",P=M.compact,V=M.lowercaseHex;let I=M.indent.repeat(M.indentLevel),H="";const q=M.__inline1__,Z=M.__inline2__,W=P?"":` -`;let G,K=!0;const j=M.numbers=="binary",Y=M.numbers=="octal",Q=M.numbers=="decimal",J=M.numbers=="hexadecimal";if(L&&N&&b(N.toJSON)&&(N=N.toJSON()),!h(N)){if(x(N))return N.size==0?"new Map()":(P||(M.__inline1__=!0,M.__inline2__=!1),"new Map("+D(Array.from(N),M)+")");if(w(N))return N.size==0?"new Set()":"new Set("+D(Array.from(N),M)+")";if(u(N))return N.length==0?"Buffer.from([])":"Buffer.from("+D(Array.from(N),M)+")";if(c(N))return G=[],M.wrap=!0,q&&(M.__inline1__=!1,M.__inline2__=!0),Z||O(),a(N,ne=>{K=!1,Z&&(M.__inline2__=!1),G.push((P||Z?"":I)+D(ne,M))}),K?"[]":Z?"["+G.join(", ")+"]":"["+W+G.join(","+W)+W+(P?"":H)+"]";if(f(N)||g(N)){if(L)return JSON.stringify(Number(N));let ne;if(Q)ne=String(N);else if(J){let re=N.toString(16);V||(re=re.toUpperCase()),ne="0x"+re}else j?ne="0b"+N.toString(2):Y&&(ne="0o"+N.toString(8));return g(N)?ne+"n":ne}else return g(N)?L?JSON.stringify(Number(N)):N+"n":d(N)?(G=[],M.wrap=!0,O(),n(N,(ne,re)=>{K=!1,G.push((P?"":I)+D(ne,M)+":"+(P?"":" ")+D(re,M))}),K?"{}":"{"+W+G.join(","+W)+W+(P?"":H)+"}"):L?JSON.stringify(N)||"null":String(N)}const ie=M.escapeEverything?A:R;return G=N.replace(ie,(ne,re,ge,De,he,me)=>{if(re){if(M.minimal)return re;const Ie=re.charCodeAt(0),Ze=re.charCodeAt(1);if(M.es6){const rt=(Ie-55296)*1024+Ze-56320+65536;return"\\u{"+s(rt,V)+"}"}return i(s(Ie,V))+i(s(Ze,V))}if(ge)return i(s(ge.charCodeAt(0),V));if(ne=="\0"&&!L&&!_.test(me.charAt(he+1)))return"\\0";if(De)return De==U||M.escapeEverything?"\\"+De:De;if(C.test(ne))return k[ne];if(M.minimal&&!T.test(ne))return ne;const Te=s(ne.charCodeAt(0),V);return L||Te.length>2?i(Te):"\\x"+("00"+Te).slice(-2)}),U=="`"&&(G=G.replace(/\$\{/g,"\\${")),M.isScriptContext&&(G=G.replace(/<\/(script|style)/gi,"<\\/$1").replace(/