main 272549885c79 cached
93 files
1.3 MB
620.1k tokens
850 symbols
1 requests
Download .txt
Showing preview only (1,349K chars total). Download the full file or copy to clipboard to get everything.
Repository: bezhanSalleh/filament-exceptions
Branch: main
Commit: 272549885c79
Files: 93
Total size: 1.3 MB

Directory structure:
gitextract_9aritsul/

├── .blade.format.json
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   └── config.yml
│   ├── dependabot.yml
│   └── workflows/
│       ├── dependabot-auto-merge.yml
│       ├── fix-php-code-style-issues.yml
│       ├── run-tests.yml
│       └── update-changelog.yml
├── .gitignore
├── .prettierignore
├── .prettierrc
├── CHANGELOG.md
├── LICENSE.md
├── README.md
├── bootstrap/
│   └── app.php
├── composer.json
├── database/
│   ├── factories/
│   │   └── ModelFactory.php
│   └── migrations/
│       └── create_filament_exceptions_table.php.stub
├── package.json
├── phpstan.neon.dist
├── phpunit.xml.dist
├── phpunit.xml.dist.bak
├── pint.json
├── rector.php
├── resources/
│   ├── css/
│   │   └── styles.css
│   ├── dist/
│   │   ├── scripts.js
│   │   └── styles.css
│   ├── js/
│   │   └── scripts.js
│   ├── lang/
│   │   ├── cs/
│   │   │   └── filament-exceptions.php
│   │   ├── en/
│   │   │   └── filament-exceptions.php
│   │   ├── es/
│   │   │   └── filament-exceptions.php
│   │   └── sk/
│   │       └── filament-exceptions.php
│   └── views/
│       ├── .gitkeep
│       ├── components/
│       │   ├── badge.blade.php
│       │   ├── empty-state.blade.php
│       │   ├── file-with-line.blade.php
│       │   ├── formatted-source.blade.php
│       │   ├── frame-code.blade.php
│       │   ├── frame.blade.php
│       │   ├── header.blade.php
│       │   ├── http-method.blade.php
│       │   ├── icons/
│       │   │   ├── alert.blade.php
│       │   │   ├── check.blade.php
│       │   │   ├── chevron-left.blade.php
│       │   │   ├── chevron-right.blade.php
│       │   │   ├── chevrons-down-up.blade.php
│       │   │   ├── chevrons-left.blade.php
│       │   │   ├── chevrons-right.blade.php
│       │   │   ├── chevrons-up-down.blade.php
│       │   │   ├── copy.blade.php
│       │   │   ├── database.blade.php
│       │   │   ├── folder-open.blade.php
│       │   │   ├── folder.blade.php
│       │   │   ├── globe.blade.php
│       │   │   ├── info.blade.php
│       │   │   └── laravel-ascii.blade.php
│       │   ├── query.blade.php
│       │   ├── request-body.blade.php
│       │   ├── request-header.blade.php
│       │   ├── request-url.blade.php
│       │   ├── routing-parameter.blade.php
│       │   ├── routing.blade.php
│       │   ├── section-container.blade.php
│       │   ├── separator.blade.php
│       │   ├── syntax-highlight.blade.php
│       │   ├── topbar.blade.php
│       │   ├── trace.blade.php
│       │   ├── vendor-frame.blade.php
│       │   └── vendor-frames.blade.php
│       └── view-exception.blade.php
├── src/
│   ├── Commands/
│   │   └── InstallCommand.php
│   ├── Concerns/
│   │   ├── HasLabels.php
│   │   ├── HasModelPruneInterval.php
│   │   ├── HasNavigation.php
│   │   └── HasTenantScope.php
│   ├── Facades/
│   │   └── FilamentExceptions.php
│   ├── FilamentExceptions.php
│   ├── FilamentExceptionsPlugin.php
│   ├── FilamentExceptionsServiceProvider.php
│   ├── Models/
│   │   └── Exception.php
│   ├── Resources/
│   │   ├── ExceptionResource/
│   │   │   └── Pages/
│   │   │       ├── ListExceptions.php
│   │   │       └── ViewException.php
│   │   └── ExceptionResource.php
│   ├── StoredException.php
│   └── StoredFrame.php
├── tests/
│   ├── AdminPanelProvider.php
│   ├── ArchTest.php
│   ├── ExampleTest.php
│   ├── Pest.php
│   └── TestCase.php
└── vite.config.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .blade.format.json
================================================
{
    "useLaravelPint": true,
    "pintCacheEnabled": false
}

================================================
FILE: .editorconfig
================================================
root = true

[*]
charset = utf-8
indent_size = 4
indent_style = space
end_of_line = lf
insert_final_newline = false
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.{yml,yaml}]
indent_size = 2


================================================
FILE: .gitattributes
================================================
# Path-based git attributes
# https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html

# Ignore all test and documentation with "export-ignore".
/.github            export-ignore
/.gitattributes     export-ignore
/.gitignore         export-ignore
/phpunit.xml.dist   export-ignore
/art                export-ignore
/docs               export-ignore
/tests              export-ignore
/.editorconfig      export-ignore
/.php_cs.dist.php   export-ignore
/psalm.xml          export-ignore
/psalm.xml.dist     export-ignore
/testbench.yaml     export-ignore
/UPGRADING.md       export-ignore
/phpstan.neon.dist  export-ignore
/phpstan-baseline.neon  export-ignore


================================================
FILE: .github/FUNDING.yml
================================================
github: bezhanSalleh


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Ask a question
    url: https://github.com/bezhanSalleh/filament-exceptions/discussions/new?category=q-a
    about: Ask the community for help
  - name: Request a feature
    url: https://github.com/bezhanSalleh/filament-exceptions/discussions/new?category=ideas
    about: Share ideas for new features
  - name: Report a security issue
    url: https://github.com/bezhanSalleh/filament-exceptions/security/policy
    about: Learn how to notify us for sensitive bugs
  - name: Report a bug
    url: https://github.com/bezhanSalleh/filament-exceptions/issues/new
    about: Report a reproducable bug


================================================
FILE: .github/dependabot.yml
================================================
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:

  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"
    labels:
      - "dependencies"

================================================
FILE: .github/workflows/dependabot-auto-merge.yml
================================================
name: dependabot-auto-merge
on: pull_request_target

permissions:
  pull-requests: write
  contents: write

jobs:
  dependabot:
    runs-on: ubuntu-latest
    if: ${{ github.actor == 'dependabot[bot]' }}
    steps:
    
      - name: Dependabot metadata
        id: metadata
        uses: dependabot/fetch-metadata@v3.1.0
        with:
          github-token: "${{ secrets.GITHUB_TOKEN }}"
          
      - name: Auto-merge Dependabot PRs for semver-minor updates
        if: ${{steps.metadata.outputs.update-type == 'version-update:semver-minor'}}
        run: gh pr merge --auto --merge "$PR_URL"
        env:
          PR_URL: ${{github.event.pull_request.html_url}}
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
          
      - name: Auto-merge Dependabot PRs for semver-patch updates
        if: ${{steps.metadata.outputs.update-type == 'version-update:semver-patch'}}
        run: gh pr merge --auto --merge "$PR_URL"
        env:
          PR_URL: ${{github.event.pull_request.html_url}}
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}


================================================
FILE: .github/workflows/fix-php-code-style-issues.yml
================================================
name: Fix PHP code style issues

on: [push]

jobs:
  php-code-styling:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v6
        with:
          ref: ${{ github.head_ref }}

      - name: Fix PHP code style issues
        uses: aglipanci/laravel-pint-action@2.6

      - name: Commit changes
        uses: stefanzweifel/git-auto-commit-action@v7
        with:
          commit_message: Fix styling


================================================
FILE: .github/workflows/run-tests.yml
================================================
name: run-tests

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: true
      matrix:
        os: [ubuntu-latest, windows-latest]
        php: [8.3]
        laravel: [13.*]
        stability: [prefer-lowest, prefer-stable]
        include:
          - laravel: 13.*
            testbench: 11.*

    name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}

    steps:
      - name: Checkout code
        uses: actions/checkout@v6

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
          coverage: none

      - name: Setup problem matchers
        run: |
          echo "::add-matcher::${{ runner.tool_cache }}/php.json"
          echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"

      - name: Install dependencies
        run: |
          composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
          composer update --${{ matrix.stability }} --prefer-dist --no-interaction

      - name: Execute tests
        run: vendor/bin/pest --ci --parallel

================================================
FILE: .github/workflows/update-changelog.yml
================================================
name: "Update Changelog"

on:
  release:
    types: [released]

jobs:
  update:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v6
        with:
          ref: main

      - name: Update Changelog
        uses: stefanzweifel/changelog-updater-action@v1
        with:
          latest-version: ${{ github.event.release.name }}
          release-notes: ${{ github.event.release.body }}

      - name: Commit updated CHANGELOG
        uses: stefanzweifel/git-auto-commit-action@v7
        with:
          branch: main
          commit_message: Update CHANGELOG
          file_pattern: CHANGELOG.md


================================================
FILE: .gitignore
================================================
.idea
.phpunit.result.cache
build
composer.lock
coverage
docs
phpunit.xml
phpstan.neon
testbench.yaml
vendor
node_modules
package-lock.json
.phpunit.cache/

================================================
FILE: .prettierignore
================================================
*.md
**/.git
**/.github
**/dist
**/vendor
**/node_modules
composer.lock


================================================
FILE: .prettierrc
================================================
{
    "semi": true,
    "singleQuote": true,
    "singleAttributePerLine": false,
    "htmlWhitespaceSensitivity": "css",
    "printWidth": 150,
    "plugins": ["prettier-plugin-organize-imports", "prettier-plugin-tailwindcss", "prettier-plugin-blade"],
    "tailwindFunctions": ["clsx", "cn"],
    "tabWidth": 4,
    "overrides": [
        {
            "files": "*.blade.php",
            "options": {
                "tabWidth": 4
            }
        }
    ]
}

================================================
FILE: CHANGELOG.md
================================================
# Changelog

All notable changes to `filament-exceptions` will be documented in this file.

## 4.2.0 - 2026-03-29

### What's Changed

* Adds Laravel 13 Support by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/85

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/4.1.0...4.2.0

## 4.1.0 - 2026-01-19

### What's Changed

* Added support for Filament 5.x
* Bump stefanzweifel/git-auto-commit-action from 6 to 7 by @dependabot[bot] in https://github.com/bezhanSalleh/filament-exceptions/pull/81
* Bump actions/checkout from 5 to 6 by @dependabot[bot] in https://github.com/bezhanSalleh/filament-exceptions/pull/82
* Bump dependabot/fetch-metadata from 2.4.0 to 2.5.0 by @dependabot[bot] in https://github.com/bezhanSalleh/filament-exceptions/pull/83

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/4.0.0...4.1.0

## 4.0.0 - 2025-12-25

### What's Changed

* Support for Filament 4.x
* Support for Laravel 11.x
* Replaced custom implementation with Laravel's built-in Exception rendering features.

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/3.0.0...4.0.0

## 3.0.0 - 2025-05-13

### What's Changed

* 3.x Rewrite by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/49

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/2.1.2...3.0.0

## 2.1.2 - 2024-11-06

### What's Changed

* Adding isScopedToTenant at ExceptionResource by @LingMyat in https://github.com/bezhanSalleh/filament-exceptions/pull/47
* Add Custom Model Support & Fix Iterator Errors by @Fludem in https://github.com/bezhanSalleh/filament-exceptions/pull/46
* Bump aglipanci/laravel-pint-action from 2.3.1 to 2.4 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/53
* Slovak translation by @hamrak in https://github.com/bezhanSalleh/filament-exceptions/pull/55
* Bump dependabot/fetch-metadata from 1.6.0 to 2.2.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/59

### New Contributors

* @LingMyat made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/47
* @Fludem made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/46
* @hamrak made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/55

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/2.0.2...2.1.2

## 2.1.0 - 2024-01-24

### What's Changed

* Adding isScopedToTenant at ExceptionResource by @LingMyat in https://github.com/bezhanSalleh/filament-exceptions/pull/47
* Add Custom Model Support & Fix Iterator Errors by @Fludem in https://github.com/bezhanSalleh/filament-exceptions/pull/46

### New Contributors

* @LingMyat made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/47
* @Fludem made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/46

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/2.0.2...2.1.0

## 2.0.2 - 2024-01-09

### What's Changed

* Bump aglipanci/laravel-pint-action from 2.3.0 to 2.3.1 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/43
* use @svg directive to load icons by @iRaziul in https://github.com/bezhanSalleh/filament-exceptions/pull/42

### New Contributors

* @iRaziul made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/42

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/2.0.1...2.0.2

## 2.0.1 - 2023-10-17

### What's Changed

- Update README.md to include Filament panel plugin registration by @vanhooff in https://github.com/bezhanSalleh/filament-exceptions/pull/37
- Bump actions/checkout from 3 to 4 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/38
- Bump stefanzweifel/git-auto-commit-action from 4 to 5 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/39

### New Contributors

- @vanhooff made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/37

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/2.0.0...2.0.1

## 2.0.0 - 2023-08-01

### What's Changed

- Filament v3 support
- Bump aglipanci/laravel-pint-action from 2.1.0 to 2.2.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/29
- Bump dependabot/fetch-metadata from 1.3.6 to 1.4.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/31
- Bump aglipanci/laravel-pint-action from 2.2.0 to 2.3.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/33
- Bump dependabot/fetch-metadata from 1.4.0 to 1.5.1 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/34
- Bump dependabot/fetch-metadata from 1.5.1 to 1.6.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/35
- Fix typo by @martin-ro in https://github.com/bezhanSalleh/filament-exceptions/pull/30

### New Contributors

- @martin-ro made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/30

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.1.2...2.0.0

## 1.1.2 - 2023-03-19

### What's Changed

- Fix dependency issue in composer.json by @patrickcurl in https://github.com/bezhanSalleh/filament-exceptions/pull/28

### New Contributors

- @patrickcurl made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/28

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.1.1...1.1.2

## 1.1.1 - 2023-03-05

**What's Changed**:

- fixed script loading issue

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.1.0...1.1.1

## 1.1.0 - 2023-03-05

### What's Changed

- feature: Exceptions are now Mass Prunable by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/27
- Fix/laravel ignition dep by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/25
- Fix/message column data type by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/26
- Bump dependabot/fetch-metadata from 1.3.5 to 1.3.6 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/23
- Bump aglipanci/laravel-pint-action from 1.0.0 to 2.1.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/20
- refactor config/translation, fix some minor stuff by @josefbehr in https://github.com/bezhanSalleh/filament-exceptions/pull/24

### New Contributors

- @josefbehr made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/24

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.0.3...1.1.0

## 1.0.3 - 2022-11-16

### What's Changed

- Update code-preview.blade.php by @damms005 in https://github.com/bezhanSalleh/filament-exceptions/pull/17
- Update view-exception.blade.php by @damms005 in https://github.com/bezhanSalleh/filament-exceptions/pull/15

### New Contributors

- @damms005 made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/17

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.0.2...1.0.3

## 1.0.2 - 2022-11-12

### What's Changed

- Bump dependabot/fetch-metadata from 1.3.3 to 1.3.4 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/10
- Bump dependabot/fetch-metadata from 1.3.4 to 1.3.5 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/12
- fixed viewing by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/13
- fixed migrations publishing issue

### New Contributors

- @dependabot made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/10

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.0.1...1.0.2

## 1.0.1 - 2022-10-03

### What's Changed

- `feature:`**`Localizations`** by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/9
  
- - Added all possible localizations
  
- 
- 
- 
- 
- 
- - added `config` file
  
- 
- 
- 
- 
- 
- - updated `exceptions:install` command
  
- 
- 
- 
- 
- 
- 
- Add ability to customize navigation item from config file by @aminetiyal in https://github.com/bezhanSalleh/filament-exceptions/pull/4
  
- Lang en by @MarJose123 in https://github.com/bezhanSalleh/filament-exceptions/pull/7
  

### New Contributors

- @aminetiyal made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/4
- @MarJose123 made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/7

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.0.0...1.0.1

## 1.0.0 - 2022-09-20

### What's Changed

- `feature:`**Queries Tab** by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/5

### New Contributors

- @bezhanSalleh made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/5

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/0.0.6...1.0.0

## 0.0.6 - 2022-09-08

**What's New

- PHP 8.0 Support

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/0.0.5...0.0.6

## 0.0.5 - 2022-09-07

### What's Changed

- fix readme by @shuvroroy in https://github.com/bezhanSalleh/filament-exceptions/pull/1
- Update README.md by @pxlrbt in https://github.com/bezhanSalleh/filament-exceptions/pull/2
- Little typo by @ralphjsmit in https://github.com/bezhanSalleh/filament-exceptions/pull/3

### New Contributors

- @shuvroroy made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/1
- @pxlrbt made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/2
- @ralphjsmit made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/3

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/0.0.4...0.0.5

## 0.0.4 - 2022-09-07

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/0.0.3...0.0.4

## 0.0.3 - 2022-09-07

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/0.0.2...0.0.3

## 0.0.2 - 2022-09-05

- assets optimized

**Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/commits/0.0.2

## 0.0.1 - 2022-09-04

- initial release
- **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/commits/0.0.1


================================================
FILE: LICENSE.md
================================================
The MIT License (MIT)

Copyright (c) bezhanSalleh <bezhan_salleh@yahoo.com>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


================================================
FILE: README.md
================================================
<a href="https://github.com/bezhanSalleh/filament-exceptions" class="filament-hidden">
<img style="width: 100%; max-width: 100%;" alt="filament-exceptions-art" src="https://raw.githubusercontent.com/bezhanSalleh/filament-exceptions/refs/heads/main/art/filament-exceptions.png" >
</a>

<p align="center" class="flex items-center justify-center">
    <a href="https://filamentphp.com/docs/4.x/introduction/overview">
        <img alt="FILAMENT 4.x" src="https://img.shields.io/badge/FILAMENT-4.x-EBB304?style=for-the-badge">
    </a>
    <a href="https://filamentphp.com/docs/5.x/introduction/overview">
        <img alt="FILAMENT 5.x" src="https://img.shields.io/badge/FILAMENT-5.x-EBB304?style=for-the-badge">
    </a>
    <a href="https://packagist.org/packages/bezhansalleh/filament-exceptions">
        <img alt="Packagist" src="https://img.shields.io/packagist/v/bezhansalleh/filament-exceptions.svg?style=for-the-badge&logo=packagist">
    </a>
    <a href="https://github.com/bezhansalleh/filament-exceptions/actions?query=workflow%3Arun-tests+branch%3Amain" class="filament-hidden">
        <img alt="Tests Passing" src="https://img.shields.io/github/actions/workflow/status/bezhansalleh/filament-exceptions/run-tests.yml?style=for-the-badge&logo=github&label=tests">
    </a>
    <a href="https://github.com/bezhansalleh/filament-exceptions/actions?query=workflow%3A"Check+%26+fix+styling"+branch%3Amain" class="filament-hidden">
        <img alt="Code Style Passing" src="https://img.shields.io/github/actions/workflow/status/bezhansalleh/filament-exceptions/fix-php-code-style-issues.yml?style=for-the-badge&logo=github&label=code%20style">
    </a>

<a href="https://packagist.org/packages/bezhansalleh/filament-exceptions">
    <img alt="Downloads" src="https://img.shields.io/packagist/dt/bezhansalleh/filament-exceptions.svg?style=for-the-badge" >
    </a>
</p>

# Exception Viewer

A Simple & Beautiful Exception Viewer for FilamentPHP's Admin Panel

> **Version Compatibility:**
> - Filament 4.x & 5.x → use version 4.x 
> - Filament 3.x → use version 3.x
> - Filament 2.x → use version 1.x

## Installation

1. You can install the package via composer:

```bash
composer require bezhansalleh/filament-exceptions
```

2. Publish and run the migration via:
```bash
php artisan exceptions:install
```

3. Register the plugin for the Filament Panel

```php
public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            \BezhanSalleh\FilamentExceptions\FilamentExceptionsPlugin::make()
        ]);
}
```

That's it! The package automatically registers itself with Laravel's exception handler and starts recording exceptions.


> [!IMPORTANT]
> The plugin follows Filament's theming rules. So, to use the plugin create a custom theme if you haven't already, and add the following line to your `theme.css` file:

```php
@source '../../../../vendor/bezhansalleh/filament-exceptions/resources/views/**/*.blade.php';
```
Now build your theme using: 
```bash
npm run build
```


### Recording Control

By default, exceptions are recorded automatically. You can control this behavior in your `AppServiceProvider`'s `boot()` method:

#### Stop/Start Recording
```php
use BezhanSalleh\FilamentExceptions\FilamentExceptions;

public function boot(): void
{
    // Stop recording exceptions
    FilamentExceptions::stopRecording();

    // Resume recording
    FilamentExceptions::startRecording();

    // Check if recording is active
    FilamentExceptions::isRecording();
}
```

#### Conditional Recording
Use `recordUsing()` to define custom logic for when exceptions should be recorded:

```php
use BezhanSalleh\FilamentExceptions\FilamentExceptions;

public function boot(): void
{
    // Only record in production
    FilamentExceptions::recordUsing(fn () => app()->isProduction());

    // Skip specific exception types
    FilamentExceptions::recordUsing(function (Throwable $e) {
        return ! $e instanceof \Illuminate\Validation\ValidationException
            && ! $e instanceof \Illuminate\Auth\AuthenticationException;
    });

    // Combine multiple conditions
    FilamentExceptions::recordUsing(function (Throwable $e) {
        if (! app()->isProduction()) {
            return false;
        }

        // Skip 4xx HTTP exceptions
        if ($e instanceof \Symfony\Component\HttpKernel\Exception\HttpException
            && $e->getStatusCode() < 500) {
            return false;
        }

        return true;
    });
}
```

### Configuration Options

When registering the FilamentExceptions plugin, you can chain various methods to customize its behavior. Here are all available configuration options:

#### Navigation
```php
FilamentExceptionsPlugin::make()
    ->navigationBadge(bool | Closure $condition = true)
    ->navigationBadgeColor(string | array | Closure $color)
    ->navigationGroup(string | Closure | null $group)
    ->navigationParentItem(string | Closure | null $item)
    ->navigationIcon(string | Closure | null $icon)
    ->activeNavigationIcon(string | Closure | null $icon)
    ->navigationLabel(string | Closure | null $label)
    ->navigationSort(int | Closure | null $sort)
    ->registerNavigation(bool | Closure $shouldRegisterNavigation)
    ->subNavigationPosition(SubNavigationPosition | Closure $position)
```

#### Labels and Search
```php
FilamentExceptionsPlugin::make()
    ->modelLabel(string | Closure | null $label)
    ->pluralModelLabel(string | Closure | null $label)
    ->titleCaseModelLabel(bool | Closure $condition = true)
    ->globallySearchable(bool | Closure $condition = true)
```

#### Mass Pruning Settings
```php
FilamentExceptionsPlugin::make()
    ->modelPruneInterval(Carbon $interval)
```
> **Note** This requires laravel scheduler to be setup and configured in order to work. You can see how to do that here  [Running The Scheduler](https://laravel.com/docs/10.x/scheduling#running-the-scheduler)

#### Tenancy Configuration
```php
FilamentExceptionsPlugin::make()
    ->scopeToTenant(bool | Closure $condition = true)
    ->tenantOwnershipRelationshipName(string | Closure | null $ownershipRelationshipName)
    ->tenantRelationshipName(string | Closure | null $relationshipName)
```

#### General Configuration
```php
FilamentExceptionsPlugin::make()
    ->cluster(string | Closure | null $cluster)
    ->slug(string | Closure | null $slug)
```

Example usage:
```php
return $panel
    ->plugins([
        FilamentExceptionsPlugin::make()
            ->navigationLabel('Error Logs')
            ->navigationIcon('heroicon-o-bug-ant')
            ->navigationBadge()
            ->navigationGroup('System')
            ->modelPruneInterval(now()->subDays(7))
    ]);
```
 
### Custom Exception Model
1. Extend the base model as follow:
```php
<?php

namespace App\Models;

use BezhanSalleh\FilamentExceptions\Models\Exception as BaseException;

class MyCustomException extends BaseException
{
    ...
}
```
2. Then, in a service provider's `boot()` method for instance `AppServiceProvider`:
```php
use App\Models\MyCustomException;
use BezhanSalleh\FilamentExceptions\FilamentExceptions;
...
   public function boot()
   {
       FilamentExceptions::model(MyCustomException::class);
   }
...
```

## Translations
Publish the translations with
```bash
php artisan vendor:publish --tag=filament-exceptions-translations
```

## Testing

```bash
composer test
```

## Changelog

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

## Contributing

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

## Security Vulnerabilities

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

## Credits

- [Bezhan Salleh](https://github.com/bezhanSalleh)
- [All Contributors](../../contributors)

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.


================================================
FILE: bootstrap/app.php
================================================
<?php

declare(strict_types=1);

use Filament\FilamentServiceProvider;
use Filament\Support\SupportServiceProvider;
use Livewire\LivewireServiceProvider;
use Orchestra\Testbench\Concerns\CreatesApplication;
use Orchestra\Testbench\Foundation\Application;

$basePathLocator = new class
{
    use CreatesApplication;
};

$app = (new Application($basePathLocator::applicationBasePath()))
    ->configure([
        'enables_package_discoveries' => true,
    ])
    ->createApplication();

$app->register(LivewireServiceProvider::class);
$app->register(FilamentServiceProvider::class);
$app->register(SupportServiceProvider::class);

return $app;


================================================
FILE: composer.json
================================================
{
    "name": "bezhansalleh/filament-exceptions",
    "description": "A Simple & Beautiful Pluggable Exception Viewer for FilamentPHP's Admin Panel",
    "keywords": [
        "bezhanSalleh",
        "laravel",
        "filament-exceptions",
        "filament-exception-viewer"
    ],
    "homepage": "https://github.com/bezhansalleh/filament-exceptions",
    "license": "MIT",
    "authors": [
        {
            "name": "Bezhan Salleh",
            "email": "bezhan_salleh@yahoo.com",
            "role": "Developer"
        }
    ],
    "require": {
        "php": "^8.2|^8.3",
        "bezhansalleh/filament-plugin-essentials": "^1.0",
        "filament/filament": "^4.0|^5.0",
        "illuminate/contracts": "^11.28|^12.0|^13.0",
        "illuminate/support": "^11.28|^12.0|^13.0",
        "spatie/laravel-package-tools": "^1.9"
    },
    "require-dev": {
        "larastan/larastan": "^3.0",
        "laravel/pint": "^1.0",
        "nunomaduro/collision": "^8.0",
        "orchestra/testbench": "^9.0|^10.0|^11.0",
        "pestphp/pest": "^3.8|^4.0",
        "pestphp/pest-plugin-laravel": "^3.2|^4.0",
        "pestphp/pest-plugin-livewire": "^3.0|^4.0",
        "pestphp/pest-plugin-type-coverage": "^3.6|^4.0",
         "phpstan/extension-installer": "^1.4",
        "phpstan/phpstan": "^2.1",
        "phpstan/phpstan-deprecation-rules": "^2.0",
        "phpstan/phpstan-phpunit": "^2.0",
        "phpunit/phpunit": "^11.0|^12.0",
        "rector/jack": "^0.4.0",
        "rector/rector": "^2.2",
        "spatie/laravel-ray": "^1.43"
    },
    "autoload": {
        "psr-4": {
            "BezhanSalleh\\FilamentExceptions\\": "src",
            "BezhanSalleh\\FilamentExceptions\\Database\\Factories\\": "database/factories"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "BezhanSalleh\\FilamentExceptions\\Tests\\": "tests"
        }
    },
    "scripts": {
        "analyse": "phpstan analyse",
        "test": "pest --no-coverage",
        "type": "pest --type-coverage",
        "cs": [
            "rector",
            "pint --parallel"
        ],
        "refactor": "rector",
        "finalize": [
            "@cs",
            "@analyse",
            "@test",
            "@type"
        ]
    },
    "config": {
        "sort-packages": true,
        "allow-plugins": {
            "pestphp/pest-plugin": true,
            "phpstan/extension-installer": true
        }
    },
    "extra": {
        "laravel": {
            "providers": [
                "BezhanSalleh\\FilamentExceptions\\FilamentExceptionsServiceProvider"
            ],
            "aliases": {
                "FilamentExceptions": "BezhanSalleh\\FilamentExceptions\\Facades\\FilamentExceptions"
            }
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}


================================================
FILE: database/factories/ModelFactory.php
================================================
<?php

declare(strict_types=1);

namespace BezhanSalleh\FilamentExceptions\Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;

/*
class ModelFactory extends Factory
{
    protected $model = YourModel::class;

    public function definition()
    {
        return [

        ];
    }
}
*/


================================================
FILE: database/migrations/create_filament_exceptions_table.php.stub
================================================
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    public function up()
    {
        Schema::create('filament_exceptions_table', function (Blueprint $table) {
            $table->id();

            // Exception details
            $table->string('type', 255);
            $table->string('code')->default('0');
            $table->longText('message');
            $table->string('file', 255);
            $table->unsignedInteger('line');
            $table->json('trace');

            // Request details
            $table->string('method', 10);
            $table->string('path', 2048);
            $table->string('ip', 45)->nullable();

            // Request data (all nullable since not always present)
            $table->json('headers')->nullable();
            $table->json('cookies')->nullable();
            $table->json('body')->nullable();
            $table->json('query')->nullable();

            // Route context (for Laravel's exception renderer components)
            $table->json('route_context')->nullable();
            $table->json('route_parameters')->nullable();

            // Markdown for copy functionality
            $table->longText('markdown')->nullable();

            $table->timestamps();

            // Index for common queries
            $table->index('created_at');
            $table->index('type');
        });
    }

    public function down()
    {
        Schema::dropIfExists('filament_exceptions_table');
    }
};


================================================
FILE: package.json
================================================
{
    "private": true,
    "type": "module",
    "engines": {
        "node": ">=22.19.0"
    },
    "scripts": {
        "dev": "vite",
        "build": "vite build",
        "watch": "vite build --watch"
    },
    "dependencies": {
        "shiki": "^3.13.0",
        "tailwindcss": "^4.1.12",
        "tippy.js": "^6.3.7",
        "tw-animate-css": "^1.3.7"
    },
    "devDependencies": {
        "@tailwindcss/vite": "^4.1.12",
        "vite": "^7.1.11"
    }
}


================================================
FILE: phpstan.neon.dist
================================================

parameters:
    level: 5
    paths:
        - src

    ignoreErrors:
        -
            identifier: argument.unresolvableType
        -
            identifier: argument.type
        -
            identifier: trait.unused
        -
            identifier: typeCoverage.paramTypeCoverage
        -
            identifier: property.notFound
        -
            identifier: method.notFound

    checkOctaneCompatibility: true
    checkModelProperties: true
    tmpDir: build/phpstan
    treatPhpDocTypesAsCertain: false
    reportUnmatchedIgnoredErrors: false

================================================
FILE: phpunit.xml.dist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.2/phpunit.xsd" backupGlobals="false" bootstrap="vendor/autoload.php" colors="true" processIsolation="false" stopOnFailure="false" executionOrder="random" failOnWarning="true" failOnRisky="true" failOnEmptyTestSuite="true" beStrictAboutOutputDuringTests="true" cacheDirectory=".phpunit.cache" backupStaticProperties="false">
  <testsuites>
    <testsuite name="BezhanSalleh Test Suite">
      <directory>tests</directory>
    </testsuite>
  </testsuites>
  <coverage>
    <report>
      <html outputDirectory="build/coverage"/>
      <text outputFile="build/coverage.txt"/>
      <clover outputFile="build/logs/clover.xml"/>
    </report>
  </coverage>
  <logging>
    <junit outputFile="build/report.junit.xml"/>
  </logging>
  <source>
    <include>
      <directory suffix=".php">./src</directory>
    </include>
  </source>
</phpunit>


================================================
FILE: phpunit.xml.dist.bak
================================================
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
    backupGlobals="false"
    backupStaticAttributes="false"
    bootstrap="vendor/autoload.php"
    colors="true"
    convertErrorsToExceptions="true"
    convertNoticesToExceptions="true"
    convertWarningsToExceptions="true"
    processIsolation="false"
    stopOnFailure="false"
    executionOrder="random"
    failOnWarning="true"
    failOnRisky="true"
    failOnEmptyTestSuite="true"
    beStrictAboutOutputDuringTests="true"
    verbose="true"
>
    <testsuites>
        <testsuite name="BezhanSalleh Test Suite">
            <directory>tests</directory>
        </testsuite>
    </testsuites>
    <coverage>
        <include>
            <directory suffix=".php">./src</directory>
        </include>
        <report>
            <html outputDirectory="build/coverage"/>
            <text outputFile="build/coverage.txt"/>
            <clover outputFile="build/logs/clover.xml"/>
        </report>
    </coverage>
    <logging>
        <junit outputFile="build/report.junit.xml"/>
    </logging>
</phpunit>


================================================
FILE: pint.json
================================================
{
    "preset": "laravel",
    "notPath": [
        "tests/TestCase.php",
        "tmp"
    ],
    "rules": {
        "blank_line_before_statement": true,
        "concat_space": {
            "spacing": "one"
        },
        "declare_strict_types": true,
        "global_namespace_import": {
            "import_classes": true,
            "import_constants": true,
            "import_functions": true
        },
        "method_argument_space": true,
        "ordered_class_elements": {
            "order": [
                "use_trait",
                "case",
                "constant",
                "constant_public",
                "constant_protected",
                "constant_private",
                "property_public",
                "property_protected",
                "property_private",
                "construct",
                "destruct",
                "magic",
                "phpunit",
                "method_abstract",
                "method_public_static",
                "method_public",
                "method_protected_static",
                "method_protected",
                "method_private_static",
                "method_private"
            ],
            "sort_algorithm": "none"
        },
        "ordered_interfaces": true,
        "ordered_traits": true,
        "single_trait_insert_per_statement": true,
        "types_spaces": {
            "space": "single"
        }
    }
}

================================================
FILE: rector.php
================================================
<?php

declare(strict_types=1);

use Rector\Config\RectorConfig;
use Rector\TypeDeclaration\Rector\StmtsAwareInterface\DeclareStrictTypesRector;

return RectorConfig::configure()
    ->withPaths([
        __DIR__ . '/src',
    ])
    ->withRules([
        DeclareStrictTypesRector::class,
    ])
    ->withPreparedSets(
        deadCode: true,
        codeQuality: true,
        codingStyle: true,
        typeDeclarations: true,
        privatization: true,
        earlyReturn: true,
    )
    ->withPhpSets();


================================================
FILE: resources/css/styles.css
================================================
@import 'tailwindcss';
@import 'tw-animate-css';
@import 'tippy.js/dist/tippy.css';
@import 'tippy.js/animations/shift-away.css';

/* Configure Tailwind v4 to use class-based dark mode (for Filament compatibility) */
@custom-variant dark (&:where(.dark, .dark *));

/* Scan Laravel's exception renderer components to include all their Tailwind classes */
@source "../../vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components*.blade.php";

/* Also scan our own views */
@source "../views/**/*.blade.php";

[x-cloak] {
    display: none !important;
}

.tippy-box[data-theme~='laravel'] {
    @apply max-w-7xl! rounded-md border text-xs shadow-md backdrop-blur-md overflow-x-auto;
    @apply border-neutral-800 bg-neutral-900 text-white;
}

.dark .tippy-box[data-theme~='laravel'] {
    @apply border-neutral-700 bg-neutral-800 text-neutral-100;
}

.tippy-content[data-theme~='laravel'] {
    @apply px-2 py-1;
}

/* Shiki syntax highlighting dark mode - use .dark class for Filament compatibility */
.dark .shiki,
.dark .shiki span {
    color: var(--shiki-dark) !important;
    font-style: var(--shiki-dark-font-style) !important;
    font-weight: var(--shiki-dark-font-weight) !important;
    text-decoration: var(--shiki-dark-text-decoration) !important;
}


================================================
FILE: resources/dist/scripts.js
================================================
var J="top",le="bottom",ue="right",ee="left",ka="auto",Pt=[J,le,ue,ee],lt="start",Rt="end",Ss="clippingParents",Qr="viewport",kt="popper",As="reference",Wa=Pt.reduce(function(e,t){return e.concat([t+"-"+lt,t+"-"+Rt])},[]),Jr=[].concat(Pt,[ka]).reduce(function(e,t){return e.concat([t,t+"-"+lt,t+"-"+Rt])},[]),Rs="beforeRead",Ts="read",Ns="afterRead",Is="beforeMain",Os="main",Ls="afterMain",Ds="beforeWrite",Ps="write",qs="afterWrite",Ms=[Rs,Ts,Ns,Is,Os,Ls,Ds,Ps,qs];function ve(e){return e?(e.nodeName||"").toLowerCase():null}function ae(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Ve(e){var t=ae(e).Element;return e instanceof t||e instanceof Element}function ce(e){var t=ae(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Ca(e){if(typeof ShadowRoot>"u")return!1;var t=ae(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function zs(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var a=t.styles[n]||{},r=t.attributes[n]||{},i=t.elements[n];!ce(i)||!ve(i)||(Object.assign(i.style,a),Object.keys(r).forEach(function(s){var c=r[s];c===!1?i.removeAttribute(s):i.setAttribute(s,c===!0?"":c)}))})}function Bs(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(a){var r=t.elements[a],i=t.attributes[a]||{},s=Object.keys(t.styles.hasOwnProperty(a)?t.styles[a]:n[a]),c=s.reduce(function(o,l){return o[l]="",o},{});!ce(r)||!ve(r)||(Object.assign(r.style,c),Object.keys(i).forEach(function(o){r.removeAttribute(o)}))})}}const ei={name:"applyStyles",enabled:!0,phase:"write",fn:zs,effect:Bs,requires:["computeStyles"]};function ye(e){return e.split("-")[0]}var We=Math.max,hn=Math.min,ut=Math.round;function ta(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function ti(){return!/^((?!chrome|android).)*safari/i.test(ta())}function pt(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var a=e.getBoundingClientRect(),r=1,i=1;t&&ce(e)&&(r=e.offsetWidth>0&&ut(a.width)/e.offsetWidth||1,i=e.offsetHeight>0&&ut(a.height)/e.offsetHeight||1);var s=Ve(e)?ae(e):window,c=s.visualViewport,o=!ti()&&n,l=(a.left+(o&&c?c.offsetLeft:0))/r,u=(a.top+(o&&c?c.offsetTop:0))/i,p=a.width/r,d=a.height/i;return{width:p,height:d,top:u,right:l+p,bottom:u+d,left:l,x:l,y:u}}function Fa(e){var t=pt(e),n=e.offsetWidth,a=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-a)<=1&&(a=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:a}}function ni(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Ca(n)){var a=t;do{if(a&&e.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function Se(e){return ae(e).getComputedStyle(e)}function Gs(e){return["table","td","th"].indexOf(ve(e))>=0}function Oe(e){return((Ve(e)?e.ownerDocument:e.document)||window.document).documentElement}function jn(e){return ve(e)==="html"?e:e.assignedSlot||e.parentNode||(Ca(e)?e.host:null)||Oe(e)}function Va(e){return!ce(e)||Se(e).position==="fixed"?null:e.offsetParent}function Us(e){var t=/firefox/i.test(ta()),n=/Trident/i.test(ta());if(n&&ce(e)){var a=Se(e);if(a.position==="fixed")return null}var r=jn(e);for(Ca(r)&&(r=r.host);ce(r)&&["html","body"].indexOf(ve(r))<0;){var i=Se(r);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||t&&i.willChange==="filter"||t&&i.filter&&i.filter!=="none")return r;r=r.parentNode}return null}function qt(e){for(var t=ae(e),n=Va(e);n&&Gs(n)&&Se(n).position==="static";)n=Va(n);return n&&(ve(n)==="html"||ve(n)==="body"&&Se(n).position==="static")?t:n||Us(e)||t}function Ea(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Et(e,t,n){return We(e,hn(t,n))}function Hs(e,t,n){var a=Et(e,t,n);return a>n?n:a}function ai(){return{top:0,right:0,bottom:0,left:0}}function ri(e){return Object.assign({},ai(),e)}function ii(e,t){return t.reduce(function(n,a){return n[a]=e,n},{})}var Ws=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,ri(typeof t!="number"?t:ii(t,Pt))};function Vs(e){var t,n=e.state,a=e.name,r=e.options,i=n.elements.arrow,s=n.modifiersData.popperOffsets,c=ye(n.placement),o=Ea(c),l=[ee,ue].indexOf(c)>=0,u=l?"height":"width";if(!(!i||!s)){var p=Ws(r.padding,n),d=Fa(i),g=o==="y"?J:ee,m=o==="y"?le:ue,v=n.rects.reference[u]+n.rects.reference[o]-s[o]-n.rects.popper[u],_=s[o]-n.rects.reference[o],y=qt(i),b=y?o==="y"?y.clientHeight||0:y.clientWidth||0:0,x=v/2-_/2,h=p[g],C=b-d[u]-p[m],k=b/2-d[u]/2+x,S=Et(h,k,C),T=o;n.modifiersData[a]=(t={},t[T]=S,t.centerOffset=S-k,t)}}function Zs(e){var t=e.state,n=e.options,a=n.element,r=a===void 0?"[data-popper-arrow]":a;r!=null&&(typeof r=="string"&&(r=t.elements.popper.querySelector(r),!r)||ni(t.elements.popper,r)&&(t.elements.arrow=r))}const Ys={name:"arrow",enabled:!0,phase:"main",fn:Vs,effect:Zs,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function dt(e){return e.split("-")[1]}var Xs={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ks(e,t){var n=e.x,a=e.y,r=t.devicePixelRatio||1;return{x:ut(n*r)/r||0,y:ut(a*r)/r||0}}function Za(e){var t,n=e.popper,a=e.popperRect,r=e.placement,i=e.variation,s=e.offsets,c=e.position,o=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,p=e.isFixed,d=s.x,g=d===void 0?0:d,m=s.y,v=m===void 0?0:m,_=typeof u=="function"?u({x:g,y:v}):{x:g,y:v};g=_.x,v=_.y;var y=s.hasOwnProperty("x"),b=s.hasOwnProperty("y"),x=ee,h=J,C=window;if(l){var k=qt(n),S="clientHeight",T="clientWidth";if(k===ae(n)&&(k=Oe(n),Se(k).position!=="static"&&c==="absolute"&&(S="scrollHeight",T="scrollWidth")),k=k,r===J||(r===ee||r===ue)&&i===Rt){h=le;var D=p&&k===C&&C.visualViewport?C.visualViewport.height:k[S];v-=D-a.height,v*=o?1:-1}if(r===ee||(r===J||r===le)&&i===Rt){x=ue;var I=p&&k===C&&C.visualViewport?C.visualViewport.width:k[T];g-=I-a.width,g*=o?1:-1}}var P=Object.assign({position:c},l&&Xs),R=u===!0?Ks({x:g,y:v},ae(n)):{x:g,y:v};if(g=R.x,v=R.y,o){var O;return Object.assign({},P,(O={},O[h]=b?"0":"",O[x]=y?"0":"",O.transform=(C.devicePixelRatio||1)<=1?"translate("+g+"px, "+v+"px)":"translate3d("+g+"px, "+v+"px, 0)",O))}return Object.assign({},P,(t={},t[h]=b?v+"px":"",t[x]=y?g+"px":"",t.transform="",t))}function Qs(e){var t=e.state,n=e.options,a=n.gpuAcceleration,r=a===void 0?!0:a,i=n.adaptive,s=i===void 0?!0:i,c=n.roundOffsets,o=c===void 0?!0:c,l={placement:ye(t.placement),variation:dt(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Za(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:o})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Za(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:o})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const Js={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Qs,data:{}};var tn={passive:!0};function eo(e){var t=e.state,n=e.instance,a=e.options,r=a.scroll,i=r===void 0?!0:r,s=a.resize,c=s===void 0?!0:s,o=ae(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&l.forEach(function(u){u.addEventListener("scroll",n.update,tn)}),c&&o.addEventListener("resize",n.update,tn),function(){i&&l.forEach(function(u){u.removeEventListener("scroll",n.update,tn)}),c&&o.removeEventListener("resize",n.update,tn)}}const to={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:eo,data:{}};var no={left:"right",right:"left",bottom:"top",top:"bottom"};function un(e){return e.replace(/left|right|bottom|top/g,function(t){return no[t]})}var ao={start:"end",end:"start"};function Ya(e){return e.replace(/start|end/g,function(t){return ao[t]})}function $a(e){var t=ae(e),n=t.pageXOffset,a=t.pageYOffset;return{scrollLeft:n,scrollTop:a}}function ja(e){return pt(Oe(e)).left+$a(e).scrollLeft}function ro(e,t){var n=ae(e),a=Oe(e),r=n.visualViewport,i=a.clientWidth,s=a.clientHeight,c=0,o=0;if(r){i=r.width,s=r.height;var l=ti();(l||!l&&t==="fixed")&&(c=r.offsetLeft,o=r.offsetTop)}return{width:i,height:s,x:c+ja(e),y:o}}function io(e){var t,n=Oe(e),a=$a(e),r=(t=e.ownerDocument)==null?void 0:t.body,i=We(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),s=We(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),c=-a.scrollLeft+ja(e),o=-a.scrollTop;return Se(r||n).direction==="rtl"&&(c+=We(n.clientWidth,r?r.clientWidth:0)-i),{width:i,height:s,x:c,y:o}}function Sa(e){var t=Se(e),n=t.overflow,a=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+a)}function si(e){return["html","body","#document"].indexOf(ve(e))>=0?e.ownerDocument.body:ce(e)&&Sa(e)?e:si(jn(e))}function $t(e,t){var n;t===void 0&&(t=[]);var a=si(e),r=a===((n=e.ownerDocument)==null?void 0:n.body),i=ae(a),s=r?[i].concat(i.visualViewport||[],Sa(a)?a:[]):a,c=t.concat(s);return r?c:c.concat($t(jn(s)))}function na(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function so(e,t){var n=pt(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Xa(e,t,n){return t===Qr?na(ro(e,n)):Ve(t)?so(t,n):na(io(Oe(e)))}function oo(e){var t=$t(jn(e)),n=["absolute","fixed"].indexOf(Se(e).position)>=0,a=n&&ce(e)?qt(e):e;return Ve(a)?t.filter(function(r){return Ve(r)&&ni(r,a)&&ve(r)!=="body"}):[]}function co(e,t,n,a){var r=t==="clippingParents"?oo(e):[].concat(t),i=[].concat(r,[n]),s=i[0],c=i.reduce(function(o,l){var u=Xa(e,l,a);return o.top=We(u.top,o.top),o.right=hn(u.right,o.right),o.bottom=hn(u.bottom,o.bottom),o.left=We(u.left,o.left),o},Xa(e,s,a));return c.width=c.right-c.left,c.height=c.bottom-c.top,c.x=c.left,c.y=c.top,c}function oi(e){var t=e.reference,n=e.element,a=e.placement,r=a?ye(a):null,i=a?dt(a):null,s=t.x+t.width/2-n.width/2,c=t.y+t.height/2-n.height/2,o;switch(r){case J:o={x:s,y:t.y-n.height};break;case le:o={x:s,y:t.y+t.height};break;case ue:o={x:t.x+t.width,y:c};break;case ee:o={x:t.x-n.width,y:c};break;default:o={x:t.x,y:t.y}}var l=r?Ea(r):null;if(l!=null){var u=l==="y"?"height":"width";switch(i){case lt:o[l]=o[l]-(t[u]/2-n[u]/2);break;case Rt:o[l]=o[l]+(t[u]/2-n[u]/2);break}}return o}function Tt(e,t){t===void 0&&(t={});var n=t,a=n.placement,r=a===void 0?e.placement:a,i=n.strategy,s=i===void 0?e.strategy:i,c=n.boundary,o=c===void 0?Ss:c,l=n.rootBoundary,u=l===void 0?Qr:l,p=n.elementContext,d=p===void 0?kt:p,g=n.altBoundary,m=g===void 0?!1:g,v=n.padding,_=v===void 0?0:v,y=ri(typeof _!="number"?_:ii(_,Pt)),b=d===kt?As:kt,x=e.rects.popper,h=e.elements[m?b:d],C=co(Ve(h)?h:h.contextElement||Oe(e.elements.popper),o,u,s),k=pt(e.elements.reference),S=oi({reference:k,element:x,placement:r}),T=na(Object.assign({},x,S)),D=d===kt?T:k,I={top:C.top-D.top+y.top,bottom:D.bottom-C.bottom+y.bottom,left:C.left-D.left+y.left,right:D.right-C.right+y.right},P=e.modifiersData.offset;if(d===kt&&P){var R=P[r];Object.keys(I).forEach(function(O){var q=[ue,le].indexOf(O)>=0?1:-1,z=[J,le].indexOf(O)>=0?"y":"x";I[O]+=R[z]*q})}return I}function lo(e,t){t===void 0&&(t={});var n=t,a=n.placement,r=n.boundary,i=n.rootBoundary,s=n.padding,c=n.flipVariations,o=n.allowedAutoPlacements,l=o===void 0?Jr:o,u=dt(a),p=u?c?Wa:Wa.filter(function(m){return dt(m)===u}):Pt,d=p.filter(function(m){return l.indexOf(m)>=0});d.length===0&&(d=p);var g=d.reduce(function(m,v){return m[v]=Tt(e,{placement:v,boundary:r,rootBoundary:i,padding:s})[ye(v)],m},{});return Object.keys(g).sort(function(m,v){return g[m]-g[v]})}function uo(e){if(ye(e)===ka)return[];var t=un(e);return[Ya(e),t,Ya(t)]}function po(e){var t=e.state,n=e.options,a=e.name;if(!t.modifiersData[a]._skip){for(var r=n.mainAxis,i=r===void 0?!0:r,s=n.altAxis,c=s===void 0?!0:s,o=n.fallbackPlacements,l=n.padding,u=n.boundary,p=n.rootBoundary,d=n.altBoundary,g=n.flipVariations,m=g===void 0?!0:g,v=n.allowedAutoPlacements,_=t.options.placement,y=ye(_),b=y===_,x=o||(b||!m?[un(_)]:uo(_)),h=[_].concat(x).reduce(function(we,pe){return we.concat(ye(pe)===ka?lo(t,{placement:pe,boundary:u,rootBoundary:p,padding:l,flipVariations:m,allowedAutoPlacements:v}):pe)},[]),C=t.rects.reference,k=t.rects.popper,S=new Map,T=!0,D=h[0],I=0;I<h.length;I++){var P=h[I],R=ye(P),O=dt(P)===lt,q=[J,le].indexOf(R)>=0,z=q?"width":"height",B=Tt(t,{placement:P,boundary:u,rootBoundary:p,altBoundary:d,padding:l}),Y=q?O?ue:ee:O?le:J;C[z]>k[z]&&(Y=un(Y));var Z=un(Y),he=[];if(i&&he.push(B[R]<=0),c&&he.push(B[Y]<=0,B[Z]<=0),he.every(function(we){return we})){D=P,T=!1;break}S.set(P,he)}if(T)for(var ge=m?3:1,Le=function(pe){var xe=h.find(function(Xe){var ke=S.get(Xe);if(ke)return ke.slice(0,pe).every(function(Ke){return Ke})});if(xe)return D=xe,"break"},fe=ge;fe>0;fe--){var De=Le(fe);if(De==="break")break}t.placement!==D&&(t.modifiersData[a]._skip=!0,t.placement=D,t.reset=!0)}}const mo={name:"flip",enabled:!0,phase:"main",fn:po,requiresIfExists:["offset"],data:{_skip:!1}};function Ka(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Qa(e){return[J,ue,le,ee].some(function(t){return e[t]>=0})}function ho(e){var t=e.state,n=e.name,a=t.rects.reference,r=t.rects.popper,i=t.modifiersData.preventOverflow,s=Tt(t,{elementContext:"reference"}),c=Tt(t,{altBoundary:!0}),o=Ka(s,a),l=Ka(c,r,i),u=Qa(o),p=Qa(l);t.modifiersData[n]={referenceClippingOffsets:o,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:p},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":p})}const go={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:ho};function fo(e,t,n){var a=ye(e),r=[ee,J].indexOf(a)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,s=i[0],c=i[1];return s=s||0,c=(c||0)*r,[ee,ue].indexOf(a)>=0?{x:c,y:s}:{x:s,y:c}}function bo(e){var t=e.state,n=e.options,a=e.name,r=n.offset,i=r===void 0?[0,0]:r,s=Jr.reduce(function(u,p){return u[p]=fo(p,t.rects,i),u},{}),c=s[t.placement],o=c.x,l=c.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=o,t.modifiersData.popperOffsets.y+=l),t.modifiersData[a]=s}const _o={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:bo};function yo(e){var t=e.state,n=e.name;t.modifiersData[n]=oi({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}const vo={name:"popperOffsets",enabled:!0,phase:"read",fn:yo,data:{}};function wo(e){return e==="x"?"y":"x"}function xo(e){var t=e.state,n=e.options,a=e.name,r=n.mainAxis,i=r===void 0?!0:r,s=n.altAxis,c=s===void 0?!1:s,o=n.boundary,l=n.rootBoundary,u=n.altBoundary,p=n.padding,d=n.tether,g=d===void 0?!0:d,m=n.tetherOffset,v=m===void 0?0:m,_=Tt(t,{boundary:o,rootBoundary:l,padding:p,altBoundary:u}),y=ye(t.placement),b=dt(t.placement),x=!b,h=Ea(y),C=wo(h),k=t.modifiersData.popperOffsets,S=t.rects.reference,T=t.rects.popper,D=typeof v=="function"?v(Object.assign({},t.rects,{placement:t.placement})):v,I=typeof D=="number"?{mainAxis:D,altAxis:D}:Object.assign({mainAxis:0,altAxis:0},D),P=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,R={x:0,y:0};if(k){if(i){var O,q=h==="y"?J:ee,z=h==="y"?le:ue,B=h==="y"?"height":"width",Y=k[h],Z=Y+_[q],he=Y-_[z],ge=g?-T[B]/2:0,Le=b===lt?S[B]:T[B],fe=b===lt?-T[B]:-S[B],De=t.elements.arrow,we=g&&De?Fa(De):{width:0,height:0},pe=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:ai(),xe=pe[q],Xe=pe[z],ke=Et(0,S[B],we[B]),Ke=x?S[B]/2-ge-ke-xe-I.mainAxis:Le-ke-xe-I.mainAxis,Ae=x?-S[B]/2+ge+ke+Xe+I.mainAxis:fe+ke+Xe+I.mainAxis,Qe=t.elements.arrow&&qt(t.elements.arrow),Ut=Qe?h==="y"?Qe.clientTop||0:Qe.clientLeft||0:0,_t=(O=P?.[h])!=null?O:0,Ht=Y+Ke-_t-Ut,Wt=Y+Ae-_t,yt=Et(g?hn(Z,Ht):Z,Y,g?We(he,Wt):he);k[h]=yt,R[h]=yt-Y}if(c){var vt,Vt=h==="x"?J:ee,Zt=h==="x"?le:ue,Ce=k[C],Re=C==="y"?"height":"width",wt=Ce+_[Vt],Pe=Ce-_[Zt],xt=[J,ee].indexOf(y)!==-1,Yt=(vt=P?.[C])!=null?vt:0,Xt=xt?wt:Ce-S[Re]-T[Re]-Yt+I.altAxis,Kt=xt?Ce+S[Re]+T[Re]-Yt-I.altAxis:Pe,Qt=g&&xt?Hs(Xt,Ce,Kt):Et(g?Xt:wt,Ce,g?Kt:Pe);k[C]=Qt,R[C]=Qt-Ce}t.modifiersData[a]=R}}const ko={name:"preventOverflow",enabled:!0,phase:"main",fn:xo,requiresIfExists:["offset"]};function Co(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Fo(e){return e===ae(e)||!ce(e)?$a(e):Co(e)}function Eo(e){var t=e.getBoundingClientRect(),n=ut(t.width)/e.offsetWidth||1,a=ut(t.height)/e.offsetHeight||1;return n!==1||a!==1}function $o(e,t,n){n===void 0&&(n=!1);var a=ce(t),r=ce(t)&&Eo(t),i=Oe(t),s=pt(e,r,n),c={scrollLeft:0,scrollTop:0},o={x:0,y:0};return(a||!a&&!n)&&((ve(t)!=="body"||Sa(i))&&(c=Fo(t)),ce(t)?(o=pt(t,!0),o.x+=t.clientLeft,o.y+=t.clientTop):i&&(o.x=ja(i))),{x:s.left+c.scrollLeft-o.x,y:s.top+c.scrollTop-o.y,width:s.width,height:s.height}}function jo(e){var t=new Map,n=new Set,a=[];e.forEach(function(i){t.set(i.name,i)});function r(i){n.add(i.name);var s=[].concat(i.requires||[],i.requiresIfExists||[]);s.forEach(function(c){if(!n.has(c)){var o=t.get(c);o&&r(o)}}),a.push(i)}return e.forEach(function(i){n.has(i.name)||r(i)}),a}function So(e){var t=jo(e);return Ms.reduce(function(n,a){return n.concat(t.filter(function(r){return r.phase===a}))},[])}function Ao(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function Ro(e){var t=e.reduce(function(n,a){var r=n[a.name];return n[a.name]=r?Object.assign({},r,a,{options:Object.assign({},r.options,a.options),data:Object.assign({},r.data,a.data)}):a,n},{});return Object.keys(t).map(function(n){return t[n]})}var Ja={placement:"bottom",modifiers:[],strategy:"absolute"};function er(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(a){return!(a&&typeof a.getBoundingClientRect=="function")})}function To(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,a=n===void 0?[]:n,r=t.defaultOptions,i=r===void 0?Ja:r;return function(c,o,l){l===void 0&&(l=i);var u={placement:"bottom",orderedModifiers:[],options:Object.assign({},Ja,i),modifiersData:{},elements:{reference:c,popper:o},attributes:{},styles:{}},p=[],d=!1,g={state:u,setOptions:function(y){var b=typeof y=="function"?y(u.options):y;v(),u.options=Object.assign({},i,u.options,b),u.scrollParents={reference:Ve(c)?$t(c):c.contextElement?$t(c.contextElement):[],popper:$t(o)};var x=So(Ro([].concat(a,u.options.modifiers)));return u.orderedModifiers=x.filter(function(h){return h.enabled}),m(),g.update()},forceUpdate:function(){if(!d){var y=u.elements,b=y.reference,x=y.popper;if(er(b,x)){u.rects={reference:$o(b,qt(x),u.options.strategy==="fixed"),popper:Fa(x)},u.reset=!1,u.placement=u.options.placement,u.orderedModifiers.forEach(function(I){return u.modifiersData[I.name]=Object.assign({},I.data)});for(var h=0;h<u.orderedModifiers.length;h++){if(u.reset===!0){u.reset=!1,h=-1;continue}var C=u.orderedModifiers[h],k=C.fn,S=C.options,T=S===void 0?{}:S,D=C.name;typeof k=="function"&&(u=k({state:u,options:T,name:D,instance:g})||u)}}}},update:Ao(function(){return new Promise(function(_){g.forceUpdate(),_(u)})}),destroy:function(){v(),d=!0}};if(!er(c,o))return g;g.setOptions(l).then(function(_){!d&&l.onFirstUpdate&&l.onFirstUpdate(_)});function m(){u.orderedModifiers.forEach(function(_){var y=_.name,b=_.options,x=b===void 0?{}:b,h=_.effect;if(typeof h=="function"){var C=h({state:u,name:y,instance:g,options:x}),k=function(){};p.push(C||k)}})}function v(){p.forEach(function(_){return _()}),p=[]}return g}}var No=[to,vo,Js,ei,_o,mo,ko,Ys,go],Io=To({defaultModifiers:No}),Oo="tippy-box",ci="tippy-content",Lo="tippy-backdrop",li="tippy-arrow",ui="tippy-svg-arrow",ze={passive:!0,capture:!0},pi=function(){return document.body};function Dn(e,t,n){if(Array.isArray(e)){var a=e[t];return a??(Array.isArray(n)?n[t]:n)}return e}function Aa(e,t){var n={}.toString.call(e);return n.indexOf("[object")===0&&n.indexOf(t+"]")>-1}function di(e,t){return typeof e=="function"?e.apply(void 0,t):e}function tr(e,t){if(t===0)return e;var n;return function(a){clearTimeout(n),n=setTimeout(function(){e(a)},t)}}function Do(e){return e.split(/\s+/).filter(Boolean)}function at(e){return[].concat(e)}function nr(e,t){e.indexOf(t)===-1&&e.push(t)}function Po(e){return e.filter(function(t,n){return e.indexOf(t)===n})}function qo(e){return e.split("-")[0]}function gn(e){return[].slice.call(e)}function ar(e){return Object.keys(e).reduce(function(t,n){return e[n]!==void 0&&(t[n]=e[n]),t},{})}function jt(){return document.createElement("div")}function Sn(e){return["Element","Fragment"].some(function(t){return Aa(e,t)})}function Mo(e){return Aa(e,"NodeList")}function zo(e){return Aa(e,"MouseEvent")}function Bo(e){return!!(e&&e._tippy&&e._tippy.reference===e)}function Go(e){return Sn(e)?[e]:Mo(e)?gn(e):Array.isArray(e)?e:gn(document.querySelectorAll(e))}function Pn(e,t){e.forEach(function(n){n&&(n.style.transitionDuration=t+"ms")})}function rr(e,t){e.forEach(function(n){n&&n.setAttribute("data-state",t)})}function Uo(e){var t,n=at(e),a=n[0];return a!=null&&(t=a.ownerDocument)!=null&&t.body?a.ownerDocument:document}function Ho(e,t){var n=t.clientX,a=t.clientY;return e.every(function(r){var i=r.popperRect,s=r.popperState,c=r.props,o=c.interactiveBorder,l=qo(s.placement),u=s.modifiersData.offset;if(!u)return!0;var p=l==="bottom"?u.top.y:0,d=l==="top"?u.bottom.y:0,g=l==="right"?u.left.x:0,m=l==="left"?u.right.x:0,v=i.top-a+p>o,_=a-i.bottom-d>o,y=i.left-n+g>o,b=n-i.right-m>o;return v||_||y||b})}function qn(e,t,n){var a=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(r){e[a](r,n)})}function ir(e,t){for(var n=t;n;){var a;if(e.contains(n))return!0;n=n.getRootNode==null||(a=n.getRootNode())==null?void 0:a.host}return!1}var _e={isTouch:!1},sr=0;function Wo(){_e.isTouch||(_e.isTouch=!0,window.performance&&document.addEventListener("mousemove",mi))}function mi(){var e=performance.now();e-sr<20&&(_e.isTouch=!1,document.removeEventListener("mousemove",mi)),sr=e}function Vo(){var e=document.activeElement;if(Bo(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}function Zo(){document.addEventListener("touchstart",Wo,ze),window.addEventListener("blur",Vo)}var Yo=typeof window<"u"&&typeof document<"u",Xo=Yo?!!window.msCrypto:!1,Ko={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},Qo={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},me=Object.assign({appendTo:pi,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},Ko,Qo),Jo=Object.keys(me),ec=function(t){var n=Object.keys(t);n.forEach(function(a){me[a]=t[a]})};function hi(e){var t=e.plugins||[],n=t.reduce(function(a,r){var i=r.name,s=r.defaultValue;if(i){var c;a[i]=e[i]!==void 0?e[i]:(c=me[i])!=null?c:s}return a},{});return Object.assign({},e,n)}function tc(e,t){var n=t?Object.keys(hi(Object.assign({},me,{plugins:t}))):Jo,a=n.reduce(function(r,i){var s=(e.getAttribute("data-tippy-"+i)||"").trim();if(!s)return r;if(i==="content")r[i]=s;else try{r[i]=JSON.parse(s)}catch{r[i]=s}return r},{});return a}function or(e,t){var n=Object.assign({},t,{content:di(t.content,[e])},t.ignoreAttributes?{}:tc(e,t.plugins));return n.aria=Object.assign({},me.aria,n.aria),n.aria={expanded:n.aria.expanded==="auto"?t.interactive:n.aria.expanded,content:n.aria.content==="auto"?t.interactive?null:"describedby":n.aria.content},n}var nc=function(){return"innerHTML"};function aa(e,t){e[nc()]=t}function cr(e){var t=jt();return e===!0?t.className=li:(t.className=ui,Sn(e)?t.appendChild(e):aa(t,e)),t}function lr(e,t){Sn(t.content)?(aa(e,""),e.appendChild(t.content)):typeof t.content!="function"&&(t.allowHTML?aa(e,t.content):e.textContent=t.content)}function ra(e){var t=e.firstElementChild,n=gn(t.children);return{box:t,content:n.find(function(a){return a.classList.contains(ci)}),arrow:n.find(function(a){return a.classList.contains(li)||a.classList.contains(ui)}),backdrop:n.find(function(a){return a.classList.contains(Lo)})}}function gi(e){var t=jt(),n=jt();n.className=Oo,n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var a=jt();a.className=ci,a.setAttribute("data-state","hidden"),lr(a,e.props),t.appendChild(n),n.appendChild(a),r(e.props,e.props);function r(i,s){var c=ra(t),o=c.box,l=c.content,u=c.arrow;s.theme?o.setAttribute("data-theme",s.theme):o.removeAttribute("data-theme"),typeof s.animation=="string"?o.setAttribute("data-animation",s.animation):o.removeAttribute("data-animation"),s.inertia?o.setAttribute("data-inertia",""):o.removeAttribute("data-inertia"),o.style.maxWidth=typeof s.maxWidth=="number"?s.maxWidth+"px":s.maxWidth,s.role?o.setAttribute("role",s.role):o.removeAttribute("role"),(i.content!==s.content||i.allowHTML!==s.allowHTML)&&lr(l,e.props),s.arrow?u?i.arrow!==s.arrow&&(o.removeChild(u),o.appendChild(cr(s.arrow))):o.appendChild(cr(s.arrow)):u&&o.removeChild(u)}return{popper:t,onUpdate:r}}gi.$$tippy=!0;var ac=1,nn=[],Mn=[];function rc(e,t){var n=or(e,Object.assign({},me,hi(ar(t)))),a,r,i,s=!1,c=!1,o=!1,l=!1,u,p,d,g=[],m=tr(Ht,n.interactiveDebounce),v,_=ac++,y=null,b=Po(n.plugins),x={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},h={id:_,reference:e,popper:jt(),popperInstance:y,props:n,state:x,plugins:b,clearDelayTimeouts:Xt,setProps:Kt,setContent:Qt,show:ks,hide:Cs,hideWithInteractivity:Fs,enable:xt,disable:Yt,unmount:Es,destroy:$s};if(!n.render)return h;var C=n.render(h),k=C.popper,S=C.onUpdate;k.setAttribute("data-tippy-root",""),k.id="tippy-"+h.id,h.popper=k,e._tippy=h,k._tippy=h;var T=b.map(function(f){return f.fn(h)}),D=e.hasAttribute("aria-expanded");return Qe(),ge(),Y(),Z("onCreate",[h]),n.showOnCreate&&wt(),k.addEventListener("mouseenter",function(){h.props.interactive&&h.state.isVisible&&h.clearDelayTimeouts()}),k.addEventListener("mouseleave",function(){h.props.interactive&&h.props.trigger.indexOf("mouseenter")>=0&&q().addEventListener("mousemove",m)}),h;function I(){var f=h.props.touch;return Array.isArray(f)?f:[f,0]}function P(){return I()[0]==="hold"}function R(){var f;return!!((f=h.props.render)!=null&&f.$$tippy)}function O(){return v||e}function q(){var f=O().parentNode;return f?Uo(f):document}function z(){return ra(k)}function B(f){return h.state.isMounted&&!h.state.isVisible||_e.isTouch||u&&u.type==="focus"?0:Dn(h.props.delay,f?0:1,me.delay)}function Y(f){f===void 0&&(f=!1),k.style.pointerEvents=h.props.interactive&&!f?"":"none",k.style.zIndex=""+h.props.zIndex}function Z(f,F,E){if(E===void 0&&(E=!0),T.forEach(function(A){A[f]&&A[f].apply(A,F)}),E){var N;(N=h.props)[f].apply(N,F)}}function he(){var f=h.props.aria;if(f.content){var F="aria-"+f.content,E=k.id,N=at(h.props.triggerTarget||e);N.forEach(function(A){var Q=A.getAttribute(F);if(h.state.isVisible)A.setAttribute(F,Q?Q+" "+E:E);else{var re=Q&&Q.replace(E,"").trim();re?A.setAttribute(F,re):A.removeAttribute(F)}})}}function ge(){if(!(D||!h.props.aria.expanded)){var f=at(h.props.triggerTarget||e);f.forEach(function(F){h.props.interactive?F.setAttribute("aria-expanded",h.state.isVisible&&F===O()?"true":"false"):F.removeAttribute("aria-expanded")})}}function Le(){q().removeEventListener("mousemove",m),nn=nn.filter(function(f){return f!==m})}function fe(f){if(!(_e.isTouch&&(o||f.type==="mousedown"))){var F=f.composedPath&&f.composedPath()[0]||f.target;if(!(h.props.interactive&&ir(k,F))){if(at(h.props.triggerTarget||e).some(function(E){return ir(E,F)})){if(_e.isTouch||h.state.isVisible&&h.props.trigger.indexOf("click")>=0)return}else Z("onClickOutside",[h,f]);h.props.hideOnClick===!0&&(h.clearDelayTimeouts(),h.hide(),c=!0,setTimeout(function(){c=!1}),h.state.isMounted||xe())}}}function De(){o=!0}function we(){o=!1}function pe(){var f=q();f.addEventListener("mousedown",fe,!0),f.addEventListener("touchend",fe,ze),f.addEventListener("touchstart",we,ze),f.addEventListener("touchmove",De,ze)}function xe(){var f=q();f.removeEventListener("mousedown",fe,!0),f.removeEventListener("touchend",fe,ze),f.removeEventListener("touchstart",we,ze),f.removeEventListener("touchmove",De,ze)}function Xe(f,F){Ke(f,function(){!h.state.isVisible&&k.parentNode&&k.parentNode.contains(k)&&F()})}function ke(f,F){Ke(f,F)}function Ke(f,F){var E=z().box;function N(A){A.target===E&&(qn(E,"remove",N),F())}if(f===0)return F();qn(E,"remove",p),qn(E,"add",N),p=N}function Ae(f,F,E){E===void 0&&(E=!1);var N=at(h.props.triggerTarget||e);N.forEach(function(A){A.addEventListener(f,F,E),g.push({node:A,eventType:f,handler:F,options:E})})}function Qe(){P()&&(Ae("touchstart",_t,{passive:!0}),Ae("touchend",Wt,{passive:!0})),Do(h.props.trigger).forEach(function(f){if(f!=="manual")switch(Ae(f,_t),f){case"mouseenter":Ae("mouseleave",Wt);break;case"focus":Ae(Xo?"focusout":"blur",yt);break;case"focusin":Ae("focusout",yt);break}})}function Ut(){g.forEach(function(f){var F=f.node,E=f.eventType,N=f.handler,A=f.options;F.removeEventListener(E,N,A)}),g=[]}function _t(f){var F,E=!1;if(!(!h.state.isEnabled||vt(f)||c)){var N=((F=u)==null?void 0:F.type)==="focus";u=f,v=f.currentTarget,ge(),!h.state.isVisible&&zo(f)&&nn.forEach(function(A){return A(f)}),f.type==="click"&&(h.props.trigger.indexOf("mouseenter")<0||s)&&h.props.hideOnClick!==!1&&h.state.isVisible?E=!0:wt(f),f.type==="click"&&(s=!E),E&&!N&&Pe(f)}}function Ht(f){var F=f.target,E=O().contains(F)||k.contains(F);if(!(f.type==="mousemove"&&E)){var N=Re().concat(k).map(function(A){var Q,re=A._tippy,Je=(Q=re.popperInstance)==null?void 0:Q.state;return Je?{popperRect:A.getBoundingClientRect(),popperState:Je,props:n}:null}).filter(Boolean);Ho(N,f)&&(Le(),Pe(f))}}function Wt(f){var F=vt(f)||h.props.trigger.indexOf("click")>=0&&s;if(!F){if(h.props.interactive){h.hideWithInteractivity(f);return}Pe(f)}}function yt(f){h.props.trigger.indexOf("focusin")<0&&f.target!==O()||h.props.interactive&&f.relatedTarget&&k.contains(f.relatedTarget)||Pe(f)}function vt(f){return _e.isTouch?P()!==f.type.indexOf("touch")>=0:!1}function Vt(){Zt();var f=h.props,F=f.popperOptions,E=f.placement,N=f.offset,A=f.getReferenceClientRect,Q=f.moveTransition,re=R()?ra(k).arrow:null,Je=A?{getBoundingClientRect:A,contextElement:A.contextElement||O()}:e,Ha={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(Jt){var et=Jt.state;if(R()){var js=z(),Ln=js.box;["placement","reference-hidden","escaped"].forEach(function(en){en==="placement"?Ln.setAttribute("data-placement",et.placement):et.attributes.popper["data-popper-"+en]?Ln.setAttribute("data-"+en,""):Ln.removeAttribute("data-"+en)}),et.attributes.popper={}}}},qe=[{name:"offset",options:{offset:N}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!Q}},Ha];R()&&re&&qe.push({name:"arrow",options:{element:re,padding:3}}),qe.push.apply(qe,F?.modifiers||[]),h.popperInstance=Io(Je,k,Object.assign({},F,{placement:E,onFirstUpdate:d,modifiers:qe}))}function Zt(){h.popperInstance&&(h.popperInstance.destroy(),h.popperInstance=null)}function Ce(){var f=h.props.appendTo,F,E=O();h.props.interactive&&f===pi||f==="parent"?F=E.parentNode:F=di(f,[E]),F.contains(k)||F.appendChild(k),h.state.isMounted=!0,Vt()}function Re(){return gn(k.querySelectorAll("[data-tippy-root]"))}function wt(f){h.clearDelayTimeouts(),f&&Z("onTrigger",[h,f]),pe();var F=B(!0),E=I(),N=E[0],A=E[1];_e.isTouch&&N==="hold"&&A&&(F=A),F?a=setTimeout(function(){h.show()},F):h.show()}function Pe(f){if(h.clearDelayTimeouts(),Z("onUntrigger",[h,f]),!h.state.isVisible){xe();return}if(!(h.props.trigger.indexOf("mouseenter")>=0&&h.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(f.type)>=0&&s)){var F=B(!1);F?r=setTimeout(function(){h.state.isVisible&&h.hide()},F):i=requestAnimationFrame(function(){h.hide()})}}function xt(){h.state.isEnabled=!0}function Yt(){h.hide(),h.state.isEnabled=!1}function Xt(){clearTimeout(a),clearTimeout(r),cancelAnimationFrame(i)}function Kt(f){if(!h.state.isDestroyed){Z("onBeforeUpdate",[h,f]),Ut();var F=h.props,E=or(e,Object.assign({},F,ar(f),{ignoreAttributes:!0}));h.props=E,Qe(),F.interactiveDebounce!==E.interactiveDebounce&&(Le(),m=tr(Ht,E.interactiveDebounce)),F.triggerTarget&&!E.triggerTarget?at(F.triggerTarget).forEach(function(N){N.removeAttribute("aria-expanded")}):E.triggerTarget&&e.removeAttribute("aria-expanded"),ge(),Y(),S&&S(F,E),h.popperInstance&&(Vt(),Re().forEach(function(N){requestAnimationFrame(N._tippy.popperInstance.forceUpdate)})),Z("onAfterUpdate",[h,f])}}function Qt(f){h.setProps({content:f})}function ks(){var f=h.state.isVisible,F=h.state.isDestroyed,E=!h.state.isEnabled,N=_e.isTouch&&!h.props.touch,A=Dn(h.props.duration,0,me.duration);if(!(f||F||E||N)&&!O().hasAttribute("disabled")&&(Z("onShow",[h],!1),h.props.onShow(h)!==!1)){if(h.state.isVisible=!0,R()&&(k.style.visibility="visible"),Y(),pe(),h.state.isMounted||(k.style.transition="none"),R()){var Q=z(),re=Q.box,Je=Q.content;Pn([re,Je],0)}d=function(){var qe;if(!(!h.state.isVisible||l)){if(l=!0,k.offsetHeight,k.style.transition=h.props.moveTransition,R()&&h.props.animation){var On=z(),Jt=On.box,et=On.content;Pn([Jt,et],A),rr([Jt,et],"visible")}he(),ge(),nr(Mn,h),(qe=h.popperInstance)==null||qe.forceUpdate(),Z("onMount",[h]),h.props.animation&&R()&&ke(A,function(){h.state.isShown=!0,Z("onShown",[h])})}},Ce()}}function Cs(){var f=!h.state.isVisible,F=h.state.isDestroyed,E=!h.state.isEnabled,N=Dn(h.props.duration,1,me.duration);if(!(f||F||E)&&(Z("onHide",[h],!1),h.props.onHide(h)!==!1)){if(h.state.isVisible=!1,h.state.isShown=!1,l=!1,s=!1,R()&&(k.style.visibility="hidden"),Le(),xe(),Y(!0),R()){var A=z(),Q=A.box,re=A.content;h.props.animation&&(Pn([Q,re],N),rr([Q,re],"hidden"))}he(),ge(),h.props.animation?R()&&Xe(N,h.unmount):h.unmount()}}function Fs(f){q().addEventListener("mousemove",m),nr(nn,m),m(f)}function Es(){h.state.isVisible&&h.hide(),h.state.isMounted&&(Zt(),Re().forEach(function(f){f._tippy.unmount()}),k.parentNode&&k.parentNode.removeChild(k),Mn=Mn.filter(function(f){return f!==h}),h.state.isMounted=!1,Z("onHidden",[h]))}function $s(){h.state.isDestroyed||(h.clearDelayTimeouts(),h.unmount(),Ut(),delete e._tippy,h.state.isDestroyed=!0,Z("onDestroy",[h]))}}function Mt(e,t){t===void 0&&(t={});var n=me.plugins.concat(t.plugins||[]);Zo();var a=Object.assign({},t,{plugins:n}),r=Go(e),i=r.reduce(function(s,c){var o=c&&rc(c,a);return o&&s.push(o),s},[]);return Sn(e)?i[0]:i}Mt.defaultProps=me;Mt.setDefaultProps=ec;Mt.currentInput=_e;Object.assign({},ei,{effect:function(t){var n=t.state,a={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(n.elements.popper.style,a.popper),n.styles=a,n.elements.arrow&&Object.assign(n.elements.arrow.style,a.arrow)}});Mt.setDefaultProps({render:gi});let W=class extends Error{constructor(t){super(t),this.name="ShikiError"}};function ic(e){return Ra(e)}function Ra(e){return Array.isArray(e)?sc(e):e instanceof RegExp?e:typeof e=="object"?oc(e):e}function sc(e){let t=[];for(let n=0,a=e.length;n<a;n++)t[n]=Ra(e[n]);return t}function oc(e){let t={};for(let n in e)t[n]=Ra(e[n]);return t}function fi(e,...t){return t.forEach(n=>{for(let a in n)e[a]=n[a]}),e}function bi(e){const t=~e.lastIndexOf("/")||~e.lastIndexOf("\\");return t===0?e:~t===e.length-1?bi(e.substring(0,e.length-1)):e.substr(~t+1)}var zn=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,an=class{static hasCaptures(e){return e===null?!1:(zn.lastIndex=0,zn.test(e))}static replaceCaptures(e,t,n){return e.replace(zn,(a,r,i,s)=>{let c=n[parseInt(r||i,10)];if(c){let o=t.substring(c.start,c.end);for(;o[0]===".";)o=o.substring(1);switch(s){case"downcase":return o.toLowerCase();case"upcase":return o.toUpperCase();default:return o}}else return a})}};function _i(e,t){return e<t?-1:e>t?1:0}function yi(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)return 1;let n=e.length,a=t.length;if(n===a){for(let r=0;r<n;r++){let i=_i(e[r],t[r]);if(i!==0)return i}return 0}return n-a}function ur(e){return!!(/^#[0-9a-f]{6}$/i.test(e)||/^#[0-9a-f]{8}$/i.test(e)||/^#[0-9a-f]{3}$/i.test(e)||/^#[0-9a-f]{4}$/i.test(e))}function vi(e){return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}var wi=class{constructor(e){this.fn=e}cache=new Map;get(e){if(this.cache.has(e))return this.cache.get(e);const t=this.fn(e);return this.cache.set(e,t),t}},fn=class{constructor(e,t,n){this._colorMap=e,this._defaults=t,this._root=n}static createFromRawTheme(e,t){return this.createFromParsedTheme(uc(e),t)}static createFromParsedTheme(e,t){return dc(e,t)}_cachedMatchRoot=new wi(e=>this._root.match(e));getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;const t=e.scopeName,a=this._cachedMatchRoot.get(t).find(r=>cc(e.parent,r.parentScopes));return a?new xi(a.fontStyle,a.foreground,a.background):null}},Bn=class pn{constructor(t,n){this.parent=t,this.scopeName=n}static push(t,n){for(const a of n)t=new pn(t,a);return t}static from(...t){let n=null;for(let a=0;a<t.length;a++)n=new pn(n,t[a]);return n}push(t){return new pn(this,t)}getSegments(){let t=this;const n=[];for(;t;)n.push(t.scopeName),t=t.parent;return n.reverse(),n}toString(){return this.getSegments().join(" ")}extends(t){return this===t?!0:this.parent===null?!1:this.parent.extends(t)}getExtensionIfDefined(t){const n=[];let a=this;for(;a&&a!==t;)n.push(a.scopeName),a=a.parent;return a===t?n.reverse():void 0}};function cc(e,t){if(t.length===0)return!0;for(let n=0;n<t.length;n++){let a=t[n],r=!1;if(a===">"){if(n===t.length-1)return!1;a=t[++n],r=!0}for(;e&&!lc(e.scopeName,a);){if(r)return!1;e=e.parent}if(!e)return!1;e=e.parent}return!0}function lc(e,t){return t===e||e.startsWith(t)&&e[t.length]==="."}var xi=class{constructor(e,t,n){this.fontStyle=e,this.foregroundId=t,this.backgroundId=n}};function uc(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,n=[],a=0;for(let r=0,i=t.length;r<i;r++){let s=t[r];if(!s.settings)continue;let c;if(typeof s.scope=="string"){let p=s.scope;p=p.replace(/^[,]+/,""),p=p.replace(/[,]+$/,""),c=p.split(",")}else Array.isArray(s.scope)?c=s.scope:c=[""];let o=-1;if(typeof s.settings.fontStyle=="string"){o=0;let p=s.settings.fontStyle.split(" ");for(let d=0,g=p.length;d<g;d++)switch(p[d]){case"italic":o=o|1;break;case"bold":o=o|2;break;case"underline":o=o|4;break;case"strikethrough":o=o|8;break}}let l=null;typeof s.settings.foreground=="string"&&ur(s.settings.foreground)&&(l=s.settings.foreground);let u=null;typeof s.settings.background=="string"&&ur(s.settings.background)&&(u=s.settings.background);for(let p=0,d=c.length;p<d;p++){let m=c[p].trim().split(" "),v=m[m.length-1],_=null;m.length>1&&(_=m.slice(0,m.length-1),_.reverse()),n[a++]=new pc(v,_,r,o,l,u)}}return n}var pc=class{constructor(e,t,n,a,r,i){this.scope=e,this.parentScopes=t,this.index=n,this.fontStyle=a,this.foreground=r,this.background=i}},K=(e=>(e[e.NotSet=-1]="NotSet",e[e.None=0]="None",e[e.Italic=1]="Italic",e[e.Bold=2]="Bold",e[e.Underline=4]="Underline",e[e.Strikethrough=8]="Strikethrough",e))(K||{});function dc(e,t){e.sort((o,l)=>{let u=_i(o.scope,l.scope);return u!==0||(u=yi(o.parentScopes,l.parentScopes),u!==0)?u:o.index-l.index});let n=0,a="#000000",r="#ffffff";for(;e.length>=1&&e[0].scope==="";){let o=e.shift();o.fontStyle!==-1&&(n=o.fontStyle),o.foreground!==null&&(a=o.foreground),o.background!==null&&(r=o.background)}let i=new mc(t),s=new xi(n,i.getId(a),i.getId(r)),c=new gc(new ia(0,null,-1,0,0),[]);for(let o=0,l=e.length;o<l;o++){let u=e[o];c.insert(0,u.scope,u.parentScopes,u.fontStyle,i.getId(u.foreground),i.getId(u.background))}return new fn(i,s,c)}var mc=class{_isFrozen;_lastColorId;_id2color;_color2id;constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,n=e.length;t<n;t++)this._color2id[e[t]]=t,this._id2color[t]=e[t]}else this._isFrozen=!1}getId(e){if(e===null)return 0;e=e.toUpperCase();let t=this._color2id[e];if(t)return t;if(this._isFrozen)throw new Error(`Missing color in color map - ${e}`);return t=++this._lastColorId,this._color2id[e]=t,this._id2color[t]=e,t}getColorMap(){return this._id2color.slice(0)}},hc=Object.freeze([]),ia=class ki{scopeDepth;parentScopes;fontStyle;foreground;background;constructor(t,n,a,r,i){this.scopeDepth=t,this.parentScopes=n||hc,this.fontStyle=a,this.foreground=r,this.background=i}clone(){return new ki(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(t){let n=[];for(let a=0,r=t.length;a<r;a++)n[a]=t[a].clone();return n}acceptOverwrite(t,n,a,r){this.scopeDepth>t?console.log("how did this happen?"):this.scopeDepth=t,n!==-1&&(this.fontStyle=n),a!==0&&(this.foreground=a),r!==0&&(this.background=r)}},gc=class sa{constructor(t,n=[],a={}){this._mainRule=t,this._children=a,this._rulesWithParentScopes=n}_rulesWithParentScopes;static _cmpBySpecificity(t,n){if(t.scopeDepth!==n.scopeDepth)return n.scopeDepth-t.scopeDepth;let a=0,r=0;for(;t.parentScopes[a]===">"&&a++,n.parentScopes[r]===">"&&r++,!(a>=t.parentScopes.length||r>=n.parentScopes.length);){const i=n.parentScopes[r].length-t.parentScopes[a].length;if(i!==0)return i;a++,r++}return n.parentScopes.length-t.parentScopes.length}match(t){if(t!==""){let a=t.indexOf("."),r,i;if(a===-1?(r=t,i=""):(r=t.substring(0,a),i=t.substring(a+1)),this._children.hasOwnProperty(r))return this._children[r].match(i)}const n=this._rulesWithParentScopes.concat(this._mainRule);return n.sort(sa._cmpBySpecificity),n}insert(t,n,a,r,i,s){if(n===""){this._doInsertHere(t,a,r,i,s);return}let c=n.indexOf("."),o,l;c===-1?(o=n,l=""):(o=n.substring(0,c),l=n.substring(c+1));let u;this._children.hasOwnProperty(o)?u=this._children[o]:(u=new sa(this._mainRule.clone(),ia.cloneArr(this._rulesWithParentScopes)),this._children[o]=u),u.insert(t+1,l,a,r,i,s)}_doInsertHere(t,n,a,r,i){if(n===null){this._mainRule.acceptOverwrite(t,a,r,i);return}for(let s=0,c=this._rulesWithParentScopes.length;s<c;s++){let o=this._rulesWithParentScopes[s];if(yi(o.parentScopes,n)===0){o.acceptOverwrite(t,a,r,i);return}}a===-1&&(a=this._mainRule.fontStyle),r===0&&(r=this._mainRule.foreground),i===0&&(i=this._mainRule.background),this._rulesWithParentScopes.push(new ia(t,n,a,r,i))}},mt=class ie{static toBinaryStr(t){return t.toString(2).padStart(32,"0")}static print(t){const n=ie.getLanguageId(t),a=ie.getTokenType(t),r=ie.getFontStyle(t),i=ie.getForeground(t),s=ie.getBackground(t);console.log({languageId:n,tokenType:a,fontStyle:r,foreground:i,background:s})}static getLanguageId(t){return(t&255)>>>0}static getTokenType(t){return(t&768)>>>8}static containsBalancedBrackets(t){return(t&1024)!==0}static getFontStyle(t){return(t&30720)>>>11}static getForeground(t){return(t&16744448)>>>15}static getBackground(t){return(t&4278190080)>>>24}static set(t,n,a,r,i,s,c){let o=ie.getLanguageId(t),l=ie.getTokenType(t),u=ie.containsBalancedBrackets(t)?1:0,p=ie.getFontStyle(t),d=ie.getForeground(t),g=ie.getBackground(t);return n!==0&&(o=n),a!==8&&(l=a),r!==null&&(u=r?1:0),i!==-1&&(p=i),s!==0&&(d=s),c!==0&&(g=c),(o<<0|l<<8|u<<10|p<<11|d<<15|g<<24)>>>0}};function bn(e,t){const n=[],a=fc(e);let r=a.next();for(;r!==null;){let o=0;if(r.length===2&&r.charAt(1)===":"){switch(r.charAt(0)){case"R":o=1;break;case"L":o=-1;break;default:console.log(`Unknown priority ${r} in scope selector`)}r=a.next()}let l=s();if(n.push({matcher:l,priority:o}),r!==",")break;r=a.next()}return n;function i(){if(r==="-"){r=a.next();const o=i();return l=>!!o&&!o(l)}if(r==="("){r=a.next();const o=c();return r===")"&&(r=a.next()),o}if(pr(r)){const o=[];do o.push(r),r=a.next();while(pr(r));return l=>t(o,l)}return null}function s(){const o=[];let l=i();for(;l;)o.push(l),l=i();return u=>o.every(p=>p(u))}function c(){const o=[];let l=s();for(;l&&(o.push(l),r==="|"||r===",");){do r=a.next();while(r==="|"||r===",");l=s()}return u=>o.some(p=>p(u))}}function pr(e){return!!e&&!!e.match(/[\w\.:]+/)}function fc(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=t.exec(e);return{next:()=>{if(!n)return null;const a=n[0];return n=t.exec(e),a}}}function Ci(e){typeof e.dispose=="function"&&e.dispose()}var Nt=class{constructor(e){this.scopeName=e}toKey(){return this.scopeName}},bc=class{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}},_c=class{_references=[];_seenReferenceKeys=new Set;get references(){return this._references}visitedRule=new Set;add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}},yc=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new Nt(this.initialScopeName)]}seenFullScopeRequests=new Set;seenPartialScopeRequests=new Set;Q;processQueue(){const e=this.Q;this.Q=[];const t=new _c;for(const n of e)vc(n,this.initialScopeName,this.repo,t);for(const n of t.references)if(n instanceof Nt){if(this.seenFullScopeRequests.has(n.scopeName))continue;this.seenFullScopeRequests.add(n.scopeName),this.Q.push(n)}else{if(this.seenFullScopeRequests.has(n.scopeName)||this.seenPartialScopeRequests.has(n.toKey()))continue;this.seenPartialScopeRequests.add(n.toKey()),this.Q.push(n)}}};function vc(e,t,n,a){const r=n.lookup(e.scopeName);if(!r){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const i=n.lookup(t);e instanceof Nt?dn({baseGrammar:i,selfGrammar:r},a):oa(e.ruleName,{baseGrammar:i,selfGrammar:r,repository:r.repository},a);const s=n.injections(e.scopeName);if(s)for(const c of s)a.add(new Nt(c))}function oa(e,t,n){if(t.repository&&t.repository[e]){const a=t.repository[e];_n([a],t,n)}}function dn(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&_n(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&_n(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function _n(e,t,n){for(const a of e){if(n.visitedRule.has(a))continue;n.visitedRule.add(a);const r=a.repository?fi({},t.repository,a.repository):t.repository;Array.isArray(a.patterns)&&_n(a.patterns,{...t,repository:r},n);const i=a.include;if(!i)continue;const s=Fi(i);switch(s.kind){case 0:dn({...t,selfGrammar:t.baseGrammar},n);break;case 1:dn(t,n);break;case 2:oa(s.ruleName,{...t,repository:r},n);break;case 3:case 4:const c=s.scopeName===t.selfGrammar.scopeName?t.selfGrammar:s.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(c){const o={baseGrammar:t.baseGrammar,selfGrammar:c,repository:r};s.kind===4?oa(s.ruleName,o,n):dn(o,n)}else s.kind===4?n.add(new bc(s.scopeName,s.ruleName)):n.add(new Nt(s.scopeName));break}}}var wc=class{kind=0},xc=class{kind=1},kc=class{constructor(e){this.ruleName=e}kind=2},Cc=class{constructor(e){this.scopeName=e}kind=3},Fc=class{constructor(e,t){this.scopeName=e,this.ruleName=t}kind=4};function Fi(e){if(e==="$base")return new wc;if(e==="$self")return new xc;const t=e.indexOf("#");if(t===-1)return new Cc(e);if(t===0)return new kc(e.substring(1));{const n=e.substring(0,t),a=e.substring(t+1);return new Fc(n,a)}}var Ec=/\\(\d+)/,dr=/\\(\d+)/g,$c=-1,Ei=-2;var zt=class{$location;id;_nameIsCapturing;_name;_contentNameIsCapturing;_contentName;constructor(e,t,n,a){this.$location=e,this.id=t,this._name=n||null,this._nameIsCapturing=an.hasCaptures(this._name),this._contentName=a||null,this._contentNameIsCapturing=an.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${bi(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||t===null?this._name:an.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:an.replaceCaptures(this._contentName,e,t)}},jc=class extends zt{retokenizeCapturedWithRuleId;constructor(e,t,n,a,r){super(e,t,n,a),this.retokenizeCapturedWithRuleId=r}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,n,a){throw new Error("Not supported!")}},Sc=class extends zt{_match;captures;_cachedCompiledPatterns;constructor(e,t,n,a,r){super(e,t,n,null),this._match=new It(a,this.id),this.captures=r,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e).compileAG(e,n,a)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Ot,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},mr=class extends zt{hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,a,r){super(e,t,n,a),this.patterns=r.patterns,this.hasMissingPatterns=r.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(const n of this.patterns)e.getRule(n).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e).compileAG(e,n,a)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Ot,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},ca=class extends zt{_begin;beginCaptures;_end;endHasBackReferences;endCaptures;applyEndPatternLast;hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,a,r,i,s,c,o,l){super(e,t,n,a),this._begin=new It(r,this.id),this.beginCaptures=i,this._end=new It(s||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=c,this.applyEndPatternLast=o||!1,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e,t).compileAG(e,n,a)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Ot;for(const n of this.patterns)e.getRule(n).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}},yn=class extends zt{_begin;beginCaptures;whileCaptures;_while;whileHasBackReferences;hasMissingPatterns;patterns;_cachedCompiledPatterns;_cachedCompiledWhilePatterns;constructor(e,t,n,a,r,i,s,c,o){super(e,t,n,a),this._begin=new It(r,this.id),this.beginCaptures=i,this.whileCaptures=c,this._while=new It(s,Ei),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e).compileAG(e,n,a)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Ot;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,n,a){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,n,a)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new Ot,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"￿"),this._cachedCompiledWhilePatterns}},$i=class X{static createCaptureRule(t,n,a,r,i){return t.registerRule(s=>new jc(n,s,a,r,i))}static getCompiledRuleId(t,n,a){return t.id||n.registerRule(r=>{if(t.id=r,t.match)return new Sc(t.$vscodeTextmateLocation,t.id,t.name,t.match,X._compileCaptures(t.captures,n,a));if(typeof t.begin>"u"){t.repository&&(a=fi({},a,t.repository));let i=t.patterns;return typeof i>"u"&&t.include&&(i=[{include:t.include}]),new mr(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,X._compilePatterns(i,n,a))}return t.while?new yn(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,X._compileCaptures(t.beginCaptures||t.captures,n,a),t.while,X._compileCaptures(t.whileCaptures||t.captures,n,a),X._compilePatterns(t.patterns,n,a)):new ca(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,X._compileCaptures(t.beginCaptures||t.captures,n,a),t.end,X._compileCaptures(t.endCaptures||t.captures,n,a),t.applyEndPatternLast,X._compilePatterns(t.patterns,n,a))}),t.id}static _compileCaptures(t,n,a){let r=[];if(t){let i=0;for(const s in t){if(s==="$vscodeTextmateLocation")continue;const c=parseInt(s,10);c>i&&(i=c)}for(let s=0;s<=i;s++)r[s]=null;for(const s in t){if(s==="$vscodeTextmateLocation")continue;const c=parseInt(s,10);let o=0;t[s].patterns&&(o=X.getCompiledRuleId(t[s],n,a)),r[c]=X.createCaptureRule(n,t[s].$vscodeTextmateLocation,t[s].name,t[s].contentName,o)}}return r}static _compilePatterns(t,n,a){let r=[];if(t)for(let i=0,s=t.length;i<s;i++){const c=t[i];let o=-1;if(c.include){const l=Fi(c.include);switch(l.kind){case 0:case 1:o=X.getCompiledRuleId(a[c.include],n,a);break;case 2:let u=a[l.ruleName];u&&(o=X.getCompiledRuleId(u,n,a));break;case 3:case 4:const p=l.scopeName,d=l.kind===4?l.ruleName:null,g=n.getExternalGrammar(p,a);if(g)if(d){let m=g.repository[d];m&&(o=X.getCompiledRuleId(m,n,g.repository))}else o=X.getCompiledRuleId(g.repository.$self,n,g.repository);break}}else o=X.getCompiledRuleId(c,n,a);if(o!==-1){const l=n.getRule(o);let u=!1;if((l instanceof mr||l instanceof ca||l instanceof yn)&&l.hasMissingPatterns&&l.patterns.length===0&&(u=!0),u)continue;r.push(o)}}return{patterns:r,hasMissingPatterns:(t?t.length:0)!==r.length}}},It=class ji{source;ruleId;hasAnchor;hasBackReferences;_anchorCache;constructor(t,n){if(t&&typeof t=="string"){const a=t.length;let r=0,i=[],s=!1;for(let c=0;c<a;c++)if(t.charAt(c)==="\\"&&c+1<a){const l=t.charAt(c+1);l==="z"?(i.push(t.substring(r,c)),i.push("$(?!\\n)(?<!\\n)"),r=c+2):(l==="A"||l==="G")&&(s=!0),c++}this.hasAnchor=s,r===0?this.source=t:(i.push(t.substring(r,a)),this.source=i.join(""))}else this.hasAnchor=!1,this.source=t;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=n,typeof this.source=="string"?this.hasBackReferences=Ec.test(this.source):this.hasBackReferences=!1}clone(){return new ji(this.source,this.ruleId)}setSource(t){this.source!==t&&(this.source=t,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(t,n){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let a=n.map(r=>t.substring(r.start,r.end));return dr.lastIndex=0,this.source.replace(dr,(r,i)=>vi(a[parseInt(i,10)]||""))}_buildAnchorCache(){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let t=[],n=[],a=[],r=[],i,s,c,o;for(i=0,s=this.source.length;i<s;i++)c=this.source.charAt(i),t[i]=c,n[i]=c,a[i]=c,r[i]=c,c==="\\"&&i+1<s&&(o=this.source.charAt(i+1),o==="A"?(t[i+1]="￿",n[i+1]="￿",a[i+1]="A",r[i+1]="A"):o==="G"?(t[i+1]="￿",n[i+1]="G",a[i+1]="￿",r[i+1]="G"):(t[i+1]=o,n[i+1]=o,a[i+1]=o,r[i+1]=o),i++);return{A0_G0:t.join(""),A0_G1:n.join(""),A1_G0:a.join(""),A1_G1:r.join("")}}resolveAnchors(t,n){return!this.hasAnchor||!this._anchorCache||typeof this.source!="string"?this.source:t?n?this._anchorCache.A1_G1:this._anchorCache.A1_G0:n?this._anchorCache.A0_G1:this._anchorCache.A0_G0}},Ot=class{_items;_hasAnchors;_cached;_anchorCache;constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(e){this._items.push(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}unshift(e){this._items.unshift(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}length(){return this._items.length}setSource(e,t){this._items[e].source!==t&&(this._disposeCaches(),this._items[e].setSource(t))}compile(e){if(!this._cached){let t=this._items.map(n=>n.source);this._cached=new hr(e,t,this._items.map(n=>n.ruleId))}return this._cached}compileAG(e,t,n){return this._hasAnchors?t?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,n){let a=this._items.map(r=>r.resolveAnchors(t,n));return new hr(e,a,this._items.map(r=>r.ruleId))}},hr=class{constructor(e,t,n){this.regExps=t,this.rules=n,this.scanner=e.createOnigScanner(t)}scanner;dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const e=[];for(let t=0,n=this.rules.length;t<n;t++)e.push("   - "+this.rules[t]+": "+this.regExps[t]);return e.join(`
`)}findNextMatchSync(e,t,n){const a=this.scanner.findNextMatchSync(e,t,n);return a?{ruleId:this.rules[a.index],captureIndices:a.captureIndices}:null}},Gn=class{constructor(e,t){this.languageId=e,this.tokenType=t}},Ac=class la{_defaultAttributes;_embeddedLanguagesMatcher;constructor(t,n){this._defaultAttributes=new Gn(t,8),this._embeddedLanguagesMatcher=new Rc(Object.entries(n||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(t){return t===null?la._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(t)}static _NULL_SCOPE_METADATA=new Gn(0,0);_getBasicScopeAttributes=new wi(t=>{const n=this._scopeToLanguage(t),a=this._toStandardTokenType(t);return new Gn(n,a)});_scopeToLanguage(t){return this._embeddedLanguagesMatcher.match(t)||0}_toStandardTokenType(t){const n=t.match(la.STANDARD_TOKEN_TYPE_REGEXP);if(!n)return 8;switch(n[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}static STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/},Rc=class{values;scopesRegExp;constructor(e){if(e.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map(([n,a])=>vi(n));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"")}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);if(t)return this.values.get(t[1])}},gr=class{constructor(e,t){this.stack=e,this.stoppedEarly=t}};function Si(e,t,n,a,r,i,s,c){const o=t.content.length;let l=!1,u=-1;if(s){const g=Tc(e,t,n,a,r,i);r=g.stack,a=g.linePos,n=g.isFirstLine,u=g.anchorPosition}const p=Date.now();for(;!l;){if(c!==0&&Date.now()-p>c)return new gr(r,!0);d()}return new gr(r,!1);function d(){const g=Nc(e,t,n,a,r,u);if(!g){i.produce(r,o),l=!0;return}const m=g.captureIndices,v=g.matchedRuleId,_=m&&m.length>0?m[0].end>a:!1;if(v===$c){const y=r.getRule(e);i.produce(r,m[0].start),r=r.withContentNameScopesList(r.nameScopesList),Ft(e,t,n,r,i,y.endCaptures,m),i.produce(r,m[0].end);const b=r;if(r=r.parent,u=b.getAnchorPos(),!_&&b.getEnterPos()===a){r=b,i.produce(r,o),l=!0;return}}else{const y=e.getRule(v);i.produce(r,m[0].start);const b=r,x=y.getName(t.content,m),h=r.contentNameScopesList.pushAttributed(x,e);if(r=r.push(v,a,u,m[0].end===o,null,h,h),y instanceof ca){const C=y;Ft(e,t,n,r,i,C.beginCaptures,m),i.produce(r,m[0].end),u=m[0].end;const k=C.getContentName(t.content,m),S=h.pushAttributed(k,e);if(r=r.withContentNameScopesList(S),C.endHasBackReferences&&(r=r.withEndRule(C.getEndWithResolvedBackReferences(t.content,m))),!_&&b.hasSameRuleAs(r)){r=r.pop(),i.produce(r,o),l=!0;return}}else if(y instanceof yn){const C=y;Ft(e,t,n,r,i,C.beginCaptures,m),i.produce(r,m[0].end),u=m[0].end;const k=C.getContentName(t.content,m),S=h.pushAttributed(k,e);if(r=r.withContentNameScopesList(S),C.whileHasBackReferences&&(r=r.withEndRule(C.getWhileWithResolvedBackReferences(t.content,m))),!_&&b.hasSameRuleAs(r)){r=r.pop(),i.produce(r,o),l=!0;return}}else if(Ft(e,t,n,r,i,y.captures,m),i.produce(r,m[0].end),r=r.pop(),!_){r=r.safePop(),i.produce(r,o),l=!0;return}}m[0].end>a&&(a=m[0].end,n=!1)}}function Tc(e,t,n,a,r,i){let s=r.beginRuleCapturedEOL?0:-1;const c=[];for(let o=r;o;o=o.pop()){const l=o.getRule(e);l instanceof yn&&c.push({rule:l,stack:o})}for(let o=c.pop();o;o=c.pop()){const{ruleScanner:l,findOptions:u}=Lc(o.rule,e,o.stack.endRule,n,a===s),p=l.findNextMatchSync(t,a,u);if(p){if(p.ruleId!==Ei){r=o.stack.pop();break}p.captureIndices&&p.captureIndices.length&&(i.produce(o.stack,p.captureIndices[0].start),Ft(e,t,n,o.stack,i,o.rule.whileCaptures,p.captureIndices),i.produce(o.stack,p.captureIndices[0].end),s=p.captureIndices[0].end,p.captureIndices[0].end>a&&(a=p.captureIndices[0].end,n=!1))}else{r=o.stack.pop();break}}return{stack:r,linePos:a,anchorPosition:s,isFirstLine:n}}function Nc(e,t,n,a,r,i){const s=Ic(e,t,n,a,r,i),c=e.getInjections();if(c.length===0)return s;const o=Oc(c,e,t,n,a,r,i);if(!o)return s;if(!s)return o;const l=s.captureIndices[0].start,u=o.captureIndices[0].start;return u<l||o.priorityMatch&&u===l?o:s}function Ic(e,t,n,a,r,i){const s=r.getRule(e),{ruleScanner:c,findOptions:o}=Ai(s,e,r.endRule,n,a===i),l=c.findNextMatchSync(t,a,o);return l?{captureIndices:l.captureIndices,matchedRuleId:l.ruleId}:null}function Oc(e,t,n,a,r,i,s){let c=Number.MAX_VALUE,o=null,l,u=0;const p=i.contentNameScopesList.getScopeNames();for(let d=0,g=e.length;d<g;d++){const m=e[d];if(!m.matcher(p))continue;const v=t.getRule(m.ruleId),{ruleScanner:_,findOptions:y}=Ai(v,t,null,a,r===s),b=_.findNextMatchSync(n,r,y);if(!b)continue;const x=b.captureIndices[0].start;if(!(x>=c)&&(c=x,o=b.captureIndices,l=b.ruleId,u=m.priority,c===r))break}return o?{priorityMatch:u===-1,captureIndices:o,matchedRuleId:l}:null}function Ai(e,t,n,a,r){return{ruleScanner:e.compileAG(t,n,a,r),findOptions:0}}function Lc(e,t,n,a,r){return{ruleScanner:e.compileWhileAG(t,n,a,r),findOptions:0}}function Ft(e,t,n,a,r,i,s){if(i.length===0)return;const c=t.content,o=Math.min(i.length,s.length),l=[],u=s[0].end;for(let p=0;p<o;p++){const d=i[p];if(d===null)continue;const g=s[p];if(g.length===0)continue;if(g.start>u)break;for(;l.length>0&&l[l.length-1].endPos<=g.start;)r.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop();if(l.length>0?r.produceFromScopes(l[l.length-1].scopes,g.start):r.produce(a,g.start),d.retokenizeCapturedWithRuleId){const v=d.getName(c,s),_=a.contentNameScopesList.pushAttributed(v,e),y=d.getContentName(c,s),b=_.pushAttributed(y,e),x=a.push(d.retokenizeCapturedWithRuleId,g.start,-1,!1,null,_,b),h=e.createOnigString(c.substring(0,g.end));Si(e,h,n&&g.start===0,g.start,x,r,!1,0),Ci(h);continue}const m=d.getName(c,s);if(m!==null){const _=(l.length>0?l[l.length-1].scopes:a.contentNameScopesList).pushAttributed(m,e);l.push(new Dc(_,g.end))}}for(;l.length>0;)r.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop()}var Dc=class{scopes;endPos;constructor(e,t){this.scopes=e,this.endPos=t}};function Pc(e,t,n,a,r,i,s,c){return new Mc(e,t,n,a,r,i,s,c)}function fr(e,t,n,a,r){const i=bn(t,vn),s=$i.getCompiledRuleId(n,a,r.repository);for(const c of i)e.push({debugSelector:t,matcher:c.matcher,ruleId:s,grammar:r,priority:c.priority})}function vn(e,t){if(t.length<e.length)return!1;let n=0;return e.every(a=>{for(let r=n;r<t.length;r++)if(qc(t[r],a))return n=r+1,!0;return!1})}function qc(e,t){if(!e)return!1;if(e===t)return!0;const n=t.length;return e.length>n&&e.substr(0,n)===t&&e[n]==="."}var Mc=class{constructor(e,t,n,a,r,i,s,c){if(this._rootScopeName=e,this.balancedBracketSelectors=i,this._onigLib=c,this._basicScopeAttributesProvider=new Ac(n,a),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=s,this._grammar=br(t,null),this._injections=null,this._tokenTypeMatchers=[],r)for(const o of Object.keys(r)){const l=bn(o,vn);for(const u of l)this._tokenTypeMatchers.push({matcher:u.matcher,type:r[o]})}}_rootId;_lastRuleId;_ruleId2desc;_includedGrammars;_grammarRepository;_grammar;_injections;_basicScopeAttributesProvider;_tokenTypeMatchers;get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e={lookup:r=>r===this._rootScopeName?this._grammar:this.getExternalGrammar(r),injections:r=>this._grammarRepository.injections(r)},t=[],n=this._rootScopeName,a=e.lookup(n);if(a){const r=a.injections;if(r)for(let s in r)fr(t,s,r[s],this,a);const i=this._grammarRepository.injections(n);i&&i.forEach(s=>{const c=this.getExternalGrammar(s);if(c){const o=c.injectionSelector;o&&fr(t,o,c,this,c)}})}return t.sort((r,i)=>r.priority-i.priority),t}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(e){const t=++this._lastRuleId,n=e(t);return this._ruleId2desc[t]=n,n}getRule(e){return this._ruleId2desc[e]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const n=this._grammarRepository.lookup(e);if(n)return this._includedGrammars[e]=br(n,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,n=0){const a=this._tokenize(e,t,!1,n);return{tokens:a.lineTokens.getResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}tokenizeLine2(e,t,n=0){const a=this._tokenize(e,t,!0,n);return{tokens:a.lineTokens.getBinaryResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}_tokenize(e,t,n,a){this._rootId===-1&&(this._rootId=$i.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let r;if(!t||t===ua.NULL){r=!0;const l=this._basicScopeAttributesProvider.getDefaultAttributes(),u=this.themeProvider.getDefaults(),p=mt.set(0,l.languageId,l.tokenType,null,u.fontStyle,u.foregroundId,u.backgroundId),d=this.getRule(this._rootId).getName(null,null);let g;d?g=St.createRootAndLookUpScopeName(d,p,this):g=St.createRoot("unknown",p),t=new ua(null,this._rootId,-1,-1,!1,null,g,g)}else r=!1,t.reset();e=e+`
`;const i=this.createOnigString(e),s=i.content.length,c=new Bc(n,e,this._tokenTypeMatchers,this.balancedBracketSelectors),o=Si(this,i,r,0,t,c,!0,a);return Ci(i),{lineLength:s,lineTokens:c,ruleStack:o.stack,stoppedEarly:o.stoppedEarly}}};function br(e,t){return e=ic(e),e.repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}var St=class be{constructor(t,n,a){this.parent=t,this.scopePath=n,this.tokenAttributes=a}static fromExtension(t,n){let a=t,r=t?.scopePath??null;for(const i of n)r=Bn.push(r,i.scopeNames),a=new be(a,r,i.encodedTokenAttributes);return a}static createRoot(t,n){return new be(null,new Bn(null,t),n)}static createRootAndLookUpScopeName(t,n,a){const r=a.getMetadataForScope(t),i=new Bn(null,t),s=a.themeProvider.themeMatch(i),c=be.mergeAttributes(n,r,s);return new be(null,i,c)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(t){return be.equals(this,t)}static equals(t,n){do{if(t===n||!t&&!n)return!0;if(!t||!n||t.scopeName!==n.scopeName||t.tokenAttributes!==n.tokenAttributes)return!1;t=t.parent,n=n.parent}while(!0)}static mergeAttributes(t,n,a){let r=-1,i=0,s=0;return a!==null&&(r=a.fontStyle,i=a.foregroundId,s=a.backgroundId),mt.set(t,n.languageId,n.tokenType,null,r,i,s)}pushAttributed(t,n){if(t===null)return this;if(t.indexOf(" ")===-1)return be._pushAttributed(this,t,n);const a=t.split(/ /g);let r=this;for(const i of a)r=be._pushAttributed(r,i,n);return r}static _pushAttributed(t,n,a){const r=a.getMetadataForScope(n),i=t.scopePath.push(n),s=a.themeProvider.themeMatch(i),c=be.mergeAttributes(t.tokenAttributes,r,s);return new be(t,i,c)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(t){const n=[];let a=this;for(;a&&a!==t;)n.push({encodedTokenAttributes:a.tokenAttributes,scopeNames:a.scopePath.getExtensionIfDefined(a.parent?.scopePath??null)}),a=a.parent;return a===t?n.reverse():void 0}},ua=class Be{constructor(t,n,a,r,i,s,c,o){this.parent=t,this.ruleId=n,this.beginRuleCapturedEOL=i,this.endRule=s,this.nameScopesList=c,this.contentNameScopesList=o,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=a,this._anchorPos=r}_stackElementBrand=void 0;static NULL=new Be(null,0,0,0,!1,null,null,null);_enterPos;_anchorPos;depth;equals(t){return t===null?!1:Be._equals(this,t)}static _equals(t,n){return t===n?!0:this._structuralEquals(t,n)?St.equals(t.contentNameScopesList,n.contentNameScopesList):!1}static _structuralEquals(t,n){do{if(t===n||!t&&!n)return!0;if(!t||!n||t.depth!==n.depth||t.ruleId!==n.ruleId||t.endRule!==n.endRule)return!1;t=t.parent,n=n.parent}while(!0)}clone(){return this}static _reset(t){for(;t;)t._enterPos=-1,t._anchorPos=-1,t=t.parent}reset(){Be._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(t,n,a,r,i,s,c){return new Be(this,t,n,a,r,i,s,c)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(t){return t.getRule(this.ruleId)}toString(){const t=[];return this._writeString(t,0),"["+t.join(",")+"]"}_writeString(t,n){return this.parent&&(n=this.parent._writeString(t,n)),t[n++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,n}withContentNameScopesList(t){return this.contentNameScopesList===t?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,t)}withEndRule(t){return this.endRule===t?this:new Be(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(t){let n=this;for(;n&&n._enterPos===t._enterPos;){if(n.ruleId===t.ruleId)return!0;n=n.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(t,n){const a=St.fromExtension(t?.nameScopesList??null,n.nameScopesList);return new Be(t,n.ruleId,n.enterPos??-1,n.anchorPos??-1,n.beginRuleCapturedEOL,n.endRule,a,St.fromExtension(a,n.contentNameScopesList))}},zc=class{balancedBracketScopes;unbalancedBracketScopes;allowAny=!1;constructor(e,t){this.balancedBracketScopes=e.flatMap(n=>n==="*"?(this.allowAny=!0,[]):bn(n,vn).map(a=>a.matcher)),this.unbalancedBracketScopes=t.flatMap(n=>bn(n,vn).map(a=>a.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;for(const t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}},Bc=class{constructor(e,t,n,a){this.balancedBracketSelectors=a,this._emitBinaryTokens=e,this._tokenTypeOverrides=n,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}_emitBinaryTokens;_lineText;_tokens;_binaryTokens;_lastTokenEndIndex;_tokenTypeOverrides;produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let a=e?.tokenAttributes??0,r=!1;if(this.balancedBracketSelectors?.matchesAlways&&(r=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const i=e?.getScopeNames()??[];for(const s of this._tokenTypeOverrides)s.matcher(i)&&(a=mt.set(a,0,s.type,null,-1,0,0));this.balancedBracketSelectors&&(r=this.balancedBracketSelectors.match(i))}if(r&&(a=mt.set(a,0,8,r,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===a){this._lastTokenEndIndex=t;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(a),this._lastTokenEndIndex=t;return}const n=e?.getScopeNames()??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:n}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const n=new Uint32Array(this._binaryTokens.length);for(let a=0,r=this._binaryTokens.length;a<r;a++)n[a]=this._binaryTokens[a];return n}},Gc=class{constructor(e,t){this._onigLib=t,this._theme=e}_grammars=new Map;_rawGrammars=new Map;_injectionGrammars=new Map;_theme;dispose(){for(const e of this._grammars.values())e.dispose()}setTheme(e){this._theme=e}getColorMap(){return this._theme.getColorMap()}addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionGrammars.set(e.scopeName,t)}lookup(e){return this._rawGrammars.get(e)}injections(e){return this._injectionGrammars.get(e)}getDefaults(){return this._theme.getDefaults()}themeMatch(e){return this._theme.match(e)}grammarForScopeName(e,t,n,a,r){if(!this._grammars.has(e)){let i=this._rawGrammars.get(e);if(!i)return null;this._grammars.set(e,Pc(e,i,t,n,a,r,this,this._onigLib))}return this._grammars.get(e)}},Uc=class{_options;_syncRegistry;_ensureGrammarCache;constructor(t){this._options=t,this._syncRegistry=new Gc(fn.createFromRawTheme(t.theme,t.colorMap),t.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(t,n){this._syncRegistry.setTheme(fn.createFromRawTheme(t,n))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(t,n,a){return this.loadGrammarWithConfiguration(t,n,{embeddedLanguages:a})}loadGrammarWithConfiguration(t,n,a){return this._loadGrammar(t,n,a.embeddedLanguages,a.tokenTypes,new zc(a.balancedBracketSelectors||[],a.unbalancedBracketSelectors||[]))}loadGrammar(t){return this._loadGrammar(t,0,null,null,null)}_loadGrammar(t,n,a,r,i){const s=new yc(this._syncRegistry,t);for(;s.Q.length>0;)s.Q.map(c=>this._loadSingleGrammar(c.scopeName)),s.processQueue();return this._grammarForScopeName(t,n,a,r,i)}_loadSingleGrammar(t){this._ensureGrammarCache.has(t)||(this._doLoadSingleGrammar(t),this._ensureGrammarCache.set(t,!0))}_doLoadSingleGrammar(t){const n=this._options.loadGrammar(t);if(n){const a=typeof this._options.getInjections=="function"?this._options.getInjections(t):void 0;this._syncRegistry.addGrammar(n,a)}}addGrammar(t,n=[],a=0,r=null){return this._syncRegistry.addGrammar(t,n),this._grammarForScopeName(t.scopeName,a,r)}_grammarForScopeName(t,n=0,a=null,r=null,i=null){return this._syncRegistry.grammarForScopeName(t,n,a,r,i)}},pa=ua.NULL;const Hc=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","keygen","link","meta","param","source","track","wbr"];class Bt{constructor(t,n,a){this.normal=n,this.property=t,a&&(this.space=a)}}Bt.prototype.normal={};Bt.prototype.property={};Bt.prototype.space=void 0;function Ri(e,t){const n={},a={};for(const r of e)Object.assign(n,r.property),Object.assign(a,r.normal);return new Bt(n,a,t)}function da(e){return e.toLowerCase()}class te{constructor(t,n){this.attribute=n,this.property=t}}te.prototype.attribute="";te.prototype.booleanish=!1;te.prototype.boolean=!1;te.prototype.commaOrSpaceSeparated=!1;te.prototype.commaSeparated=!1;te.prototype.defined=!1;te.prototype.mustUseProperty=!1;te.prototype.number=!1;te.prototype.overloadedBoolean=!1;te.prototype.property="";te.prototype.spaceSeparated=!1;te.prototype.space=void 0;let Wc=0;const j=Ye(),G=Ye(),ma=Ye(),w=Ye(),L=Ye(),ot=Ye(),ne=Ye();function Ye(){return 2**++Wc}const ha=Object.freeze(Object.defineProperty({__proto__:null,boolean:j,booleanish:G,commaOrSpaceSeparated:ne,commaSeparated:ot,number:w,overloadedBoolean:ma,spaceSeparated:L},Symbol.toStringTag,{value:"Module"})),Un=Object.keys(ha);class Ta extends te{constructor(t,n,a,r){let i=-1;if(super(t,n),_r(this,"space",r),typeof a=="number")for(;++i<Un.length;){const s=Un[i];_r(this,Un[i],(a&ha[s])===ha[s])}}}Ta.prototype.defined=!0;function _r(e,t,n){n&&(e[t]=n)}function ht(e){const t={},n={};for(const[a,r]of Object.entries(e.properties)){const i=new Ta(a,e.transform(e.attributes||{},a),r,e.space);e.mustUseProperty&&e.mustUseProperty.includes(a)&&(i.mustUseProperty=!0),t[a]=i,n[da(a)]=a,n[da(i.attribute)]=a}return new Bt(t,n,e.space)}const Ti=ht({properties:{ariaActiveDescendant:null,ariaAtomic:G,ariaAutoComplete:null,ariaBusy:G,ariaChecked:G,ariaColCount:w,ariaColIndex:w,ariaColSpan:w,ariaControls:L,ariaCurrent:null,ariaDescribedBy:L,ariaDetails:null,ariaDisabled:G,ariaDropEffect:L,ariaErrorMessage:null,ariaExpanded:G,ariaFlowTo:L,ariaGrabbed:G,ariaHasPopup:null,ariaHidden:G,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:L,ariaLevel:w,ariaLive:null,ariaModal:G,ariaMultiLine:G,ariaMultiSelectable:G,ariaOrientation:null,ariaOwns:L,ariaPlaceholder:null,ariaPosInSet:w,ariaPressed:G,ariaReadOnly:G,ariaRelevant:null,ariaRequired:G,ariaRoleDescription:L,ariaRowCount:w,ariaRowIndex:w,ariaRowSpan:w,ariaSelected:G,ariaSetSize:w,ariaSort:null,ariaValueMax:w,ariaValueMin:w,ariaValueNow:w,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function Ni(e,t){return t in e?e[t]:t}function Ii(e,t){return Ni(e,t.toLowerCase())}const Vc=ht({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:ot,acceptCharset:L,accessKey:L,action:null,allow:null,allowFullScreen:j,allowPaymentRequest:j,allowUserMedia:j,alt:null,as:null,async:j,autoCapitalize:null,autoComplete:L,autoFocus:j,autoPlay:j,blocking:L,capture:null,charSet:null,checked:j,cite:null,className:L,cols:w,colSpan:null,content:null,contentEditable:G,controls:j,controlsList:L,coords:w|ot,crossOrigin:null,data:null,dateTime:null,decoding:null,default:j,defer:j,dir:null,dirName:null,disabled:j,download:ma,draggable:G,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:j,formTarget:null,headers:L,height:w,hidden:ma,high:w,href:null,hrefLang:null,htmlFor:L,httpEquiv:L,id:null,imageSizes:null,imageSrcSet:null,inert:j,inputMode:null,integrity:null,is:null,isMap:j,itemId:null,itemProp:L,itemRef:L,itemScope:j,itemType:L,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:j,low:w,manifest:null,max:null,maxLength:w,media:null,method:null,min:null,minLength:w,multiple:j,muted:j,name:null,nonce:null,noModule:j,noValidate:j,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:j,optimum:w,pattern:null,ping:L,placeholder:null,playsInline:j,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:j,referrerPolicy:null,rel:L,required:j,reversed:j,rows:w,rowSpan:w,sandbox:L,scope:null,scoped:j,seamless:j,selected:j,shadowRootClonable:j,shadowRootDelegatesFocus:j,shadowRootMode:null,shape:null,size:w,sizes:null,slot:null,span:w,spellCheck:G,src:null,srcDoc:null,srcLang:null,srcSet:null,start:w,step:null,style:null,tabIndex:w,target:null,title:null,translate:null,type:null,typeMustMatch:j,useMap:null,value:G,width:w,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:L,axis:null,background:null,bgColor:null,border:w,borderColor:null,bottomMargin:w,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:j,declare:j,event:null,face:null,frame:null,frameBorder:null,hSpace:w,leftMargin:w,link:null,longDesc:null,lowSrc:null,marginHeight:w,marginWidth:w,noResize:j,noHref:j,noShade:j,noWrap:j,object:null,profile:null,prompt:null,rev:null,rightMargin:w,rules:null,scheme:null,scrolling:G,standby:null,summary:null,text:null,topMargin:w,valueType:null,version:null,vAlign:null,vLink:null,vSpace:w,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:j,disableRemotePlayback:j,prefix:null,property:null,results:w,security:null,unselectable:null},space:"html",transform:Ii}),Zc=ht({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:ne,accentHeight:w,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:w,amplitude:w,arabicForm:null,ascent:w,attributeName:null,attributeType:null,azimuth:w,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:w,by:null,calcMode:null,capHeight:w,className:L,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:w,diffuseConstant:w,direction:null,display:null,dur:null,divisor:w,dominantBaseline:null,download:j,dx:null,dy:null,edgeMode:null,editable:null,elevation:w,enableBackground:null,end:null,event:null,exponent:w,externalResourcesRequired:null,fill:null,fillOpacity:w,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:ot,g2:ot,glyphName:ot,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:w,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:w,horizOriginX:w,horizOriginY:w,id:null,ideographic:w,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:w,k:w,k1:w,k2:w,k3:w,k4:w,kernelMatrix:ne,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:w,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:w,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:w,overlineThickness:w,paintOrder:null,panose1:null,path:null,pathLength:w,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:L,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:w,pointsAtY:w,pointsAtZ:w,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:ne,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:ne,rev:ne,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:ne,requiredFeatures:ne,requiredFonts:ne,requiredFormats:ne,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:w,specularExponent:w,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:w,strikethroughThickness:w,string:null,stroke:null,strokeDashArray:ne,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:w,strokeOpacity:w,strokeWidth:null,style:null,surfaceScale:w,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:ne,tabIndex:w,tableValues:null,target:null,targetX:w,targetY:w,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:ne,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:w,underlineThickness:w,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:w,values:null,vAlphabetic:w,vMathematical:w,vectorEffect:null,vHanging:w,vIdeographic:w,version:null,vertAdvY:w,vertOriginX:w,vertOriginY:w,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:w,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Ni}),Oi=ht({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),Li=ht({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:Ii}),Di=ht({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),Yc=/[A-Z]/g,yr=/-[a-z]/g,Xc=/^data[-\w.:]+$/i;function Kc(e,t){const n=da(t);let a=t,r=te;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Xc.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(yr,Jc);a="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!yr.test(i)){let s=i.replace(Yc,Qc);s.charAt(0)!=="-"&&(s="-"+s),t="data"+s}}r=Ta}return new r(a,t)}function Qc(e){return"-"+e.toLowerCase()}function Jc(e){return e.charAt(1).toUpperCase()}const el=Ri([Ti,Vc,Oi,Li,Di],"html"),Pi=Ri([Ti,Zc,Oi,Li,Di],"svg"),vr={}.hasOwnProperty;function tl(e,t){const n=t||{};function a(r,...i){let s=a.invalid;const c=a.handlers;if(r&&vr.call(r,e)){const o=String(r[e]);s=vr.call(c,o)?c[o]:a.unknown}if(s)return s.call(this,r,...i)}return a.handlers=n.handlers||{},a.invalid=n.invalid,a.unknown=n.unknown,a}const nl=/["&'<>`]/g,al=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,rl=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,il=/[|\\{}()[\]^$+*?.]/g,wr=new WeakMap;function sl(e,t){if(e=e.replace(t.subset?ol(t.subset):nl,a),t.subset||t.escapeOnly)return e;return e.replace(al,n).replace(rl,a);function n(r,i,s){return t.format((r.charCodeAt(0)-55296)*1024+r.charCodeAt(1)-56320+65536,s.charCodeAt(i+2),t)}function a(r,i,s){return t.format(r.charCodeAt(0),s.charCodeAt(i+1),t)}}function ol(e){let t=wr.get(e);return t||(t=cl(e),wr.set(e,t)),t}function cl(e){const t=[];let n=-1;for(;++n<e.length;)t.push(e[n].replace(il,"\\$&"));return new RegExp("(?:"+t.join("|")+")","g")}const ll=/[\dA-Fa-f]/;function ul(e,t,n){const a="&#x"+e.toString(16).toUpperCase();return n&&t&&!ll.test(String.fromCharCode(t))?a:a+";"}const pl=/\d/;function dl(e,t,n){const a="&#"+String(e);return n&&t&&!pl.test(String.fromCharCode(t))?a:a+";"}const ml=["AElig","AMP","Aacute","Acirc","Agrave","Aring","Atilde","Auml","COPY","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","GT","Iacute","Icirc","Igrave","Iuml","LT","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","QUOT","REG","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","acute","aelig","agrave","amp","aring","atilde","auml","brvbar","ccedil","cedil","cent","copy","curren","deg","divide","eacute","ecirc","egrave","eth","euml","frac12","frac14","frac34","gt","iacute","icirc","iexcl","igrave","iquest","iuml","laquo","lt","macr","micro","middot","nbsp","not","ntilde","oacute","ocirc","ograve","ordf","ordm","oslash","otilde","ouml","para","plusmn","pound","quot","raquo","reg","sect","shy","sup1","sup2","sup3","szlig","thorn","times","uacute","ucirc","ugrave","uml","uuml","yacute","yen","yuml"],Hn={nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",fnof:"ƒ",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",bull:"•",hellip:"…",prime:"′",Prime:"″",oline:"‾",frasl:"⁄",weierp:"℘",image:"ℑ",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",quot:'"',amp:"&",lt:"<",gt:">",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:"€"},hl=["cent","copy","divide","gt","lt","not","para","times"],qi={}.hasOwnProperty,ga={};let rn;for(rn in Hn)qi.call(Hn,rn)&&(ga[Hn[rn]]=rn);const gl=/[^\dA-Za-z]/;function fl(e,t,n,a){const r=String.fromCharCode(e);if(qi.call(ga,r)){const i=ga[r],s="&"+i;return n&&ml.includes(i)&&!hl.includes(i)&&(!a||t&&t!==61&&gl.test(String.fromCharCode(t)))?s:s+";"}return""}function bl(e,t,n){let a=ul(e,t,n.omitOptionalSemicolons),r;if((n.useNamedReferences||n.useShortestReferences)&&(r=fl(e,t,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!r)&&n.useShortestReferences){const i=dl(e,t,n.omitOptionalSemicolons);i.length<a.length&&(a=i)}return r&&(!n.useShortestReferences||r.length<a.length)?r:a}function ct(e,t){return sl(e,Object.assign({format:bl},t))}const _l=/^>|^->|<!--|-->|--!>|<!-$/g,yl=[">"],vl=["<",">"];function wl(e,t,n,a){return a.settings.bogusComments?"<?"+ct(e.value,Object.assign({},a.settings.characterReferences,{subset:yl}))+">":"<!--"+e.value.replace(_l,r)+"-->";function r(i){return ct(i,Object.assign({},a.settings.characterReferences,{subset:vl}))}}function xl(e,t,n,a){return"<!"+(a.settings.upperDoctype?"DOCTYPE":"doctype")+(a.settings.tightDoctype?"":" ")+"html>"}function xr(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let a=0,r=n.indexOf(t);for(;r!==-1;)a++,r=n.indexOf(t,r+t.length);return a}function kl(e,t){const n=t||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}function Cl(e){return e.join(" ").trim()}const Fl=/[ \t\n\f\r]/g;function Na(e){return typeof e=="object"?e.type==="text"?kr(e.value):!1:kr(e)}function kr(e){return e.replace(Fl,"")===""}const H=zi(1),Mi=zi(-1),El=[];function zi(e){return t;function t(n,a,r){const i=n?n.children:El;let s=(a||0)+e,c=i[s];if(!r)for(;c&&Na(c);)s+=e,c=i[s];return c}}const $l={}.hasOwnProperty;function Bi(e){return t;function t(n,a,r){return $l.call(e,n.tagName)&&e[n.tagName](n,a,r)}}const Ia=Bi({body:Sl,caption:Wn,colgroup:Wn,dd:Nl,dt:Tl,head:Wn,html:jl,li:Rl,optgroup:Il,option:Ol,p:Al,rp:Cr,rt:Cr,tbody:Dl,td:Fr,tfoot:Pl,th:Fr,thead:Ll,tr:ql});function Wn(e,t,n){const a=H(n,t,!0);return!a||a.type!=="comment"&&!(a.type==="text"&&Na(a.value.charAt(0)))}function jl(e,t,n){const a=H(n,t);return!a||a.type!=="comment"}function Sl(e,t,n){const a=H(n,t);return!a||a.type!=="comment"}function Al(e,t,n){const a=H(n,t);return a?a.type==="element"&&(a.tagName==="address"||a.tagName==="article"||a.tagName==="aside"||a.tagName==="blockquote"||a.tagName==="details"||a.tagName==="div"||a.tagName==="dl"||a.tagName==="fieldset"||a.tagName==="figcaption"||a.tagName==="figure"||a.tagName==="footer"||a.tagName==="form"||a.tagName==="h1"||a.tagName==="h2"||a.tagName==="h3"||a.tagName==="h4"||a.tagName==="h5"||a.tagName==="h6"||a.tagName==="header"||a.tagName==="hgroup"||a.tagName==="hr"||a.tagName==="main"||a.tagName==="menu"||a.tagName==="nav"||a.tagName==="ol"||a.tagName==="p"||a.tagName==="pre"||a.tagName==="section"||a.tagName==="table"||a.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 Rl(e,t,n){const a=H(n,t);return!a||a.type==="element"&&a.tagName==="li"}function Tl(e,t,n){const a=H(n,t);return!!(a&&a.type==="element"&&(a.tagName==="dt"||a.tagName==="dd"))}function Nl(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagName==="dt"||a.tagName==="dd")}function Cr(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagName==="rp"||a.tagName==="rt")}function Il(e,t,n){const a=H(n,t);return!a||a.type==="element"&&a.tagName==="optgroup"}function Ol(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagName==="option"||a.tagName==="optgroup")}function Ll(e,t,n){const a=H(n,t);return!!(a&&a.type==="element"&&(a.tagName==="tbody"||a.tagName==="tfoot"))}function Dl(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagName==="tbody"||a.tagName==="tfoot")}function Pl(e,t,n){return!H(n,t)}function ql(e,t,n){const a=H(n,t);return!a||a.type==="element"&&a.tagName==="tr"}function Fr(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagName==="td"||a.tagName==="th")}const Ml=Bi({body:Gl,colgroup:Ul,head:Bl,html:zl,tbody:Hl});function zl(e){const t=H(e,-1);return!t||t.type!=="comment"}function Bl(e){const t=new Set;for(const a of e.children)if(a.type==="element"&&(a.tagName==="base"||a.tagName==="title")){if(t.has(a.tagName))return!1;t.add(a.tagName)}const n=e.children[0];return!n||n.type==="element"}function Gl(e){const t=H(e,-1,!0);return!t||t.type!=="comment"&&!(t.type==="text"&&Na(t.value.charAt(0)))&&!(t.type==="element"&&(t.tagName==="meta"||t.tagName==="link"||t.tagName==="script"||t.tagName==="style"||t.tagName==="template"))}function Ul(e,t,n){const a=Mi(n,t),r=H(e,-1,!0);return n&&a&&a.type==="element"&&a.tagName==="colgroup"&&Ia(a,n.children.indexOf(a),n)?!1:!!(r&&r.type==="element"&&r.tagName==="col")}function Hl(e,t,n){const a=Mi(n,t),r=H(e,-1);return n&&a&&a.type==="element"&&(a.tagName==="thead"||a.tagName==="tbody")&&Ia(a,n.children.indexOf(a),n)?!1:!!(r&&r.type==="element"&&r.tagName==="tr")}const sn={name:[[`	
\f\r &/=>`.split(""),`	
\f\r "&'/=>\``.split("")],[`\0	
\f\r "&'/<=>`.split(""),`\0	
\f\r "&'/<=>\``.split("")]],unquoted:[[`	
\f\r &>`.split(""),`\0	
\f\r "&'<=>\``.split("")],[`\0	
\f\r "&'<=>\``.split(""),`\0	
\f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function Wl(e,t,n,a){const r=a.schema,i=r.space==="svg"?!1:a.settings.omitOptionalTags;let s=r.space==="svg"?a.settings.closeEmptyElements:a.settings.voids.includes(e.tagName.toLowerCase());const c=[];let o;r.space==="html"&&e.tagName==="svg"&&(a.schema=Pi);const l=Vl(a,e.properties),u=a.all(r.space==="html"&&e.tagName==="template"?e.content:e);return a.schema=r,u&&(s=!1),(l||!i||!Ml(e,t,n))&&(c.push("<",e.tagName,l?" "+l:""),s&&(r.space==="svg"||a.settings.closeSelfClosing)&&(o=l.charAt(l.length-1),(!a.settings.tightSelfClosing||o==="/"||o&&o!=='"'&&o!=="'")&&c.push(" "),c.push("/")),c.push(">")),c.push(u),!s&&(!i||!Ia(e,t,n))&&c.push("</"+e.tagName+">"),c.join("")}function Vl(e,t){const n=[];let a=-1,r;if(t){for(r in t)if(t[r]!==null&&t[r]!==void 0){const i=Zl(e,r,t[r]);i&&n.push(i)}}for(;++a<n.length;){const i=e.settings.tightAttributes?n[a].charAt(n[a].length-1):void 0;a!==n.length-1&&i!=='"'&&i!=="'"&&(n[a]+=" ")}return n.join("")}function Zl(e,t,n){const a=Kc(e.schema,t),r=e.settings.allowParseErrors&&e.schema.space==="html"?0:1,i=e.settings.allowDangerousCharacters?0:1;let s=e.quote,c;if(a.overloadedBoolean&&(n===a.attribute||n==="")?n=!0:(a.boolean||a.overloadedBoolean)&&(typeof n!="string"||n===a.attribute||n==="")&&(n=!!n),n==null||n===!1||typeof n=="number"&&Number.isNaN(n))return"";const o=ct(a.attribute,Object.assign({},e.settings.characterReferences,{subset:sn.name[r][i]}));return n===!0||(n=Array.isArray(n)?(a.commaSeparated?kl:Cl)(n,{padLeft:!e.settings.tightCommaSeparatedLists}):String(n),e.settings.collapseEmptyAttributes&&!n)?o:(e.settings.preferUnquoted&&(c=ct(n,Object.assign({},e.settings.characterReferences,{attribute:!0,subset:sn.unquoted[r][i]}))),c!==n&&(e.settings.quoteSmart&&xr(n,s)>xr(n,e.alternative)&&(s=e.alternative),c=s+ct(n,Object.assign({},e.settings.characterReferences,{subset:(s==="'"?sn.single:sn.double)[r][i],attribute:!0}))+s),o+(c&&"="+c))}const Yl=["<","&"];function Gi(e,t,n,a){return n&&n.type==="element"&&(n.tagName==="script"||n.tagName==="style")?e.value:ct(e.value,Object.assign({},a.settings.characterReferences,{subset:Yl}))}function Xl(e,t,n,a){return a.settings.allowDangerousHtml?e.value:Gi(e,t,n,a)}function Kl(e,t,n,a){return a.all(e)}const Ql=tl("type",{invalid:Jl,unknown:eu,handlers:{comment:wl,doctype:xl,element:Wl,raw:Xl,root:Kl,text:Gi}});function Jl(e){throw new Error("Expected node, not `"+e+"`")}function eu(e){const t=e;throw new Error("Cannot compile unknown node `"+t.type+"`")}const tu={},nu={},au=[];function ru(e,t){const n=t||tu,a=n.quote||'"',r=a==='"'?"'":'"';if(a!=='"'&&a!=="'")throw new Error("Invalid quote `"+a+"`, expected `'` or `\"`");return{one:iu,all:su,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||Hc,characterReferences:n.characterReferences||nu,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space==="svg"?Pi:el,quote:a,alternative:r}.one(Array.isArray(e)?{type:"root",children:e}:e,void 0,void 0)}function iu(e,t,n){return Ql(e,t,n,this)}function su(e){const t=[],n=e&&e.children||au;let a=-1;for(;++a<n.length;)t[a]=this.one(n[a],a,e);return t.join("")}function wn(e,t){const n=typeof e=="string"?{}:{...e.colorReplacements},a=typeof e=="string"?e:e.name;for(const[r,i]of Object.entries(t?.colorReplacements||{}))typeof i=="string"?n[r]=i:r===a&&Object.assign(n,i);return n}function Ie(e,t){return e&&(t?.[e?.toLowerCase()]||e)}function ou(e){return Array.isArray(e)?e:[e]}async function Ui(e){return Promise.resolve(typeof e=="function"?e():e).then(t=>t.default||t)}function Oa(e){return!e||["plaintext","txt","text","plain"].includes(e)}function cu(e){return e==="ansi"||Oa(e)}function La(e){return e==="none"}function lu(e){return La(e)}function Hi(e,t){if(!t)return e;e.properties||={},e.properties.class||=[],typeof e.properties.class=="string"&&(e.properties.class=e.properties.class.split(/\s+/g)),Array.isArray(e.properties.class)||(e.properties.class=[]);const n=Array.isArray(t)?t:t.split(/\s+/g);for(const a of n)a&&!e.properties.class.includes(a)&&e.properties.class.push(a);return e}function An(e,t=!1){const n=e.split(/(\r?\n)/g);let a=0;const r=[];for(let i=0;i<n.length;i+=2){const s=t?n[i]+(n[i+1]||""):n[i];r.push([s,a]),a+=n[i].length,a+=n[i+1]?.length||0}return r}function uu(e){const t=An(e,!0).map(([r])=>r);function n(r){if(r===e.length)return{line:t.length-1,character:t[t.length-1].length};let i=r,s=0;for(const c of t){if(i<c.length)break;i-=c.length,s++}return{line:s,character:i}}function a(r,i){let s=0;for(let c=0;c<r;c++)s+=t[c].length;return s+=i,s}return{lines:t,indexToPos:n,posToIndex:a}}const Da="light-dark()",pu=["color","background-color"];function du(e,t){let n=0;const a=[];for(const r of t)r>n&&a.push({...e,content:e.content.slice(n,r),offset:e.offset+n}),n=r;return n<e.content.length&&a.push({...e,content:e.content.slice(n),offset:e.offset+n}),a}function mu(e,t){const n=Array.from(t instanceof Set?t:new Set(t)).sort((a,r)=>a-r);return n.length?e.map(a=>a.flatMap(r=>{const i=n.filter(s=>r.offset<s&&s<r.offset+r.content.length).map(s=>s-r.offset).sort((s,c)=>s-c);return i.length?du(r,i):r})):e}function hu(e,t,n,a,r="css-vars"){const i={content:e.content,explanation:e.explanation,offset:e.offset},s=t.map(u=>xn(e.variants[u])),c=new Set(s.flatMap(u=>Object.keys(u))),o={},l=(u,p)=>{const d=p==="color"?"":p==="background-color"?"-bg":`-${p}`;return n+t[u]+(p==="color"?"":d)};return s.forEach((u,p)=>{for(const d of c){const g=u[d]||"inherit";if(p===0&&a&&pu.includes(d))if(a===Da&&s.length>1){const m=t.findIndex(b=>b==="light"),v=t.findIndex(b=>b==="dark");if(m===-1||v===-1)throw new W('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');const _=s[m][d]||"inherit",y=s[v][d]||"inherit";o[d]=`light-dark(${_}, ${y})`,r==="css-vars"&&(o[l(p,d)]=g)}else o[d]=g;else r==="css-vars"&&(o[l(p,d)]=g)}}),i.htmlStyle=o,i}function xn(e){const t={};if(e.color&&(t.color=e.color),e.bgColor&&(t["background-color"]=e.bgColor),e.fontStyle){e.fontStyle&K.Italic&&(t["font-style"]="italic"),e.fontStyle&K.Bold&&(t["font-weight"]="bold");const n=[];e.fontStyle&K.Underline&&n.push("underline"),e.fontStyle&K.Strikethrough&&n.push("line-through"),n.length&&(t["text-decoration"]=n.join(" "))}return t}function fa(e){return typeof e=="string"?e:Object.entries(e).map(([t,n])=>`${t}:${n}`).join(";")}const Wi=new WeakMap;function Rn(e,t){Wi.set(e,t)}function Lt(e){return Wi.get(e)}class gt{_stacks={};lang;get themes(){return Object.keys(this._stacks)}get theme(){return this.themes[0]}get _stack(){return this._stacks[this.theme]}static initial(t,n){return new gt(Object.fromEntries(ou(n).map(a=>[a,pa])),t)}constructor(...t){if(t.length===2){const[n,a]=t;this.lang=a,this._stacks=n}else{const[n,a,r]=t;this.lang=a,this._stacks={[r]:n}}}getInternalStack(t=this.theme){return this._stacks[t]}getScopes(t=this.theme){return gu(this._stacks[t])}toJSON(){return{lang:this.lang,theme:this.theme,themes:this.themes,scopes:this.getScopes()}}}function gu(e){const t=[],n=new Set;function a(r){if(n.has(r))return;n.add(r);const i=r?.nameScopesList?.scopeName;i&&t.push(i),r.parent&&a(r.parent)}return a(e),t}function fu(e,t){if(!(e instanceof gt))throw new W("Invalid grammar state");return e.getInternalStack(t)}function bu(){const e=new WeakMap;function t(n){if(!e.has(n.meta)){let a=function(s){if(typeof s=="number"){if(s<0||s>n.source.length)throw new W(`Invalid decoration offset: ${s}. Code length: ${n.source.length}`);return{...r.indexToPos(s),offset:s}}else{const c=r.lines[s.line];if(c===void 0)throw new W(`Invalid decoration position ${JSON.stringify(s)}. Lines length: ${r.lines.length}`);let o=s.character;if(o<0&&(o=c.length+o),o<0||o>c.length)throw new W(`Invalid decoration position ${JSON.stringify(s)}. Line ${s.line} length: ${c.length}`);return{...s,character:o,offset:r.posToIndex(s.line,o)}}};const r=uu(n.source),i=(n.options.decorations||[]).map(s=>({...s,start:a(s.start),end:a(s.end)}));_u(i),e.set(n.meta,{decorations:i,converter:r,source:n.source})}return e.get(n.meta)}return{name:"shiki:decorations",tokens(n){if(!this.options.decorations?.length)return;const r=t(this).decorations.flatMap(s=>[s.start.offset,s.end.offset]);return mu(n,r)},code(n){if(!this.options.decorations?.length)return;const a=t(this),r=Array.from(n.children).filter(u=>u.type==="element"&&u.tagName==="span");if(r.length!==a.converter.lines.length)throw new W(`Number of lines in code element (${r.length}) does not match the number of lines in the source (${a.converter.lines.length}). Failed to apply decorations.`);function i(u,p,d,g){const m=r[u];let v="",_=-1,y=-1;if(p===0&&(_=0),d===0&&(y=0),d===Number.POSITIVE_INFINITY&&(y=m.children.length),_===-1||y===-1)for(let x=0;x<m.children.length;x++)v+=Vi(m.children[x]),_===-1&&v.length===p&&(_=x+1),y===-1&&v.length===d&&(y=x+1);if(_===-1)throw new W(`Failed to find start index for decoration ${JSON.stringify(g.start)}`);if(y===-1)throw new W(`Failed to find end index for decoration ${JSON.stringify(g.end)}`);const b=m.children.slice(_,y);if(!g.alwaysWrap&&b.length===m.children.length)c(m,g,"line");else if(!g.alwaysWrap&&b.length===1&&b[0].type==="element")c(b[0],g,"token");else{const x={type:"element",tagName:"span",properties:{},children:b};c(x,g,"wrapper"),m.children.splice(_,b.length,x)}}function s(u,p){r[u]=c(r[u],p,"line")}function c(u,p,d){const g=p.properties||{},m=p.transform||(v=>v);return u.tagName=p.tagName||"span",u.properties={...u.properties,...g,class:u.properties.class},p.properties?.class&&Hi(u,p.properties.class),u=m(u,d)||u,u}const o=[],l=a.decorations.sort((u,p)=>p.start.offset-u.start.offset||u.end.offset-p.end.offset);for(const u of l){const{start:p,end:d}=u;if(p.line===d.line)i(p.line,p.character,d.character,u);else if(p.line<d.line){i(p.line,p.character,Number.POSITIVE_INFINITY,u);for(let g=p.line+1;g<d.line;g++)o.unshift(()=>s(g,u));i(d.line,0,d.character,u)}}o.forEach(u=>u())}}}function _u(e){for(let t=0;t<e.length;t++){const n=e[t];if(n.start.offset>n.end.offset)throw new W(`Invalid decoration range: ${JSON.stringify(n.start)} - ${JSON.stringify(n.end)}`);for(let a=t+1;a<e.length;a++){const r=e[a],i=n.start.offset<=r.start.offset&&r.start.offset<n.end.offset,s=n.start.offset<r.end.offset&&r.end.offset<=n.end.offset,c=r.start.offset<=n.start.offset&&n.start.offset<r.end.offset,o=r.start.offset<n.end.offset&&n.end.offset<=r.end.offset;if(i||s||c||o){if(i&&s||c&&o||c&&n.start.offset===n.end.offset||s&&r.start.offset===r.end.offset)continue;throw new W(`Decorations ${JSON.stringify(n.start)} and ${JSON.stringify(r.start)} intersect.`)}}}}function Vi(e){return e.type==="text"?e.value:e.type==="element"?e.children.map(Vi).join(""):""}const yu=[bu()];function kn(e){const t=vu(e.transformers||[]);return[...t.pre,...t.normal,...t.post,...yu]}function vu(e){const t=[],n=[],a=[];for(const r of e)switch(r.enforce){case"pre":t.push(r);break;case"post":n.push(r);break;default:a.push(r)}return{pre:t,post:n,normal:a}}var Ue=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"],Vn={1:"bold",2:"dim",3:"italic",4:"underline",7:"reverse",8:"hidden",9:"strikethrough"};function wu(e,t){const n=e.indexOf("\x1B",t);if(n!==-1&&e[n+1]==="["){const a=e.indexOf("m",n);if(a!==-1)return{sequence:e.substring(n+2,a).split(";"),startPosition:n,position:a+1}}return{position:e.length}}function Er(e){const t=e.shift();if(t==="2"){const n=e.splice(0,3).map(a=>Number.parseInt(a));return n.length!==3||n.some(a=>Number.isNaN(a))?void 0:{type:"rgb",rgb:n}}else if(t==="5"){const n=e.shift();if(n)return{type:"table",index:Number(n)}}}function xu(e){const t=[];for(;e.length>0;){const n=e.shift();if(!n)continue;const a=Number.parseInt(n);if(!Number.isNaN(a))if(a===0)t.push({type:"resetAll"});else if(a<=9)Vn[a]&&t.push({type:"setDecoration",value:Vn[a]});else if(a<=29){const r=Vn[a-20];r&&(t.push({type:"resetDecoration",value:r}),r==="dim"&&t.push({type:"resetDecoration",value:"bold"}))}else if(a<=37)t.push({type:"setForegroundColor",value:{type:"named",name:Ue[a-30]}});else if(a===38){const r=Er(e);r&&t.push({type:"setForegroundColor",value:r})}else if(a===39)t.push({type:"resetForegroundColor"});else if(a<=47)t.push({type:"setBackgroundColor",value:{type:"named",name:Ue[a-40]}});else if(a===48){const r=Er(e);r&&t.push({type:"setBackgroundColor",value:r})}else a===49?t.push({type:"resetBackgroundColor"}):a===53?t.push({type:"setDecoration",value:"overline"}):a===55?t.push({type:"resetDecoration",value:"overline"}):a>=90&&a<=97?t.push({type:"setForegroundColor",value:{type:"named",name:Ue[a-90+8]}}):a>=100&&a<=107&&t.push({type:"setBackgroundColor",value:{type:"named",name:Ue[a-100+8]}})}return t}function ku(){let e=null,t=null,n=new Set;return{parse(a){const r=[];let i=0;do{const s=wu(a,i),c=s.sequence?a.substring(i,s.startPosition):a.substring(i);if(c.length>0&&r.push({value:c,foreground:e,background:t,decorations:new Set(n)}),s.sequence){const o=xu(s.sequence);for(const l of o)l.type==="resetAll"?(e=null,t=null,n.clear()):l.type==="resetForegroundColor"?e=null:l.type==="resetBackgroundColor"?t=null:l.type==="resetDecoration"&&n.delete(l.value);for(const l of o)l.type==="setForegroundColor"?e=l.value:l.type==="setBackgroundColor"?t=l.value:l.type==="setDecoration"&&n.add(l.value)}i=s.position}while(i<a.length);return r}}}var Cu={black:"#000000",red:"#bb0000",green:"#00bb00",yellow:"#bbbb00",blue:"#0000bb",magenta:"#ff00ff",cyan:"#00bbbb",white:"#eeeeee",brightBlack:"#555555",brightRed:"#ff5555",brightGreen:"#00ff00",brightYellow:"#ffff55",brightBlue:"#5555ff",brightMagenta:"#ff55ff",brightCyan:"#55ffff",brightWhite:"#ffffff"};function Fu(e=Cu){function t(c){return e[c]}function n(c){return`#${c.map(o=>Math.max(0,Math.min(o,255)).toString(16).padStart(2,"0")).join("")}`}let a;function r(){if(a)return a;a=[];for(let l=0;l<Ue.length;l++)a.push(t(Ue[l]));let c=[0,95,135,175,215,255];for(let l=0;l<6;l++)for(let u=0;u<6;u++)for(let p=0;p<6;p++)a.push(n([c[l],c[u],c[p]]));let o=8;for(let l=0;l<24;l++,o+=10)a.push(n([o,o,o]));return a}function i(c){return r()[c]}function s(c){switch(c.type){case"named":return t(c.name);case"rgb":return n(c.rgb);case"table":return i(c.index)}}return{value:s}}const Eu={black:"#000000",red:"#cd3131",green:"#0DBC79",yellow:"#E5E510",blue:"#2472C8",magenta:"#BC3FBC",cyan:"#11A8CD",white:"#E5E5E5",brightBlack:"#666666",brightRed:"#F14C4C",brightGreen:"#23D18B",brightYellow:"#F5F543",brightBlue:"#3B8EEA",brightMagenta:"#D670D6",brightCyan:"#29B8DB",brightWhite:"#FFFFFF"};function $u(e,t,n){const a=wn(e,n),r=An(t),i=Object.fromEntries(Ue.map(o=>{const l=`terminal.ansi${o[0].toUpperCase()}${o.substring(1)}`,u=e.colors?.[l];return[o,u||Eu[o]]})),s=Fu(i),c=ku();return r.map(o=>c.parse(o[0]).map(l=>{let u,p;l.decorations.has("reverse")?(u=l.background?s.value(l.background):e.bg,p=l.foreground?s.value(l.foreground):e.fg):(u=l.foreground?s.value(l.foreground):e.fg,p=l.background?s.value(l.background):void 0),u=Ie(u,a),p=Ie(p,a),l.decorations.has("dim")&&(u=ju(u));let d=K.None;return l.decorations.has("bold")&&(d|=K.Bold),l.decorations.has("italic")&&(d|=K.Italic),l.decorations.has("underline")&&(d|=K.Underline),l.decorations.has("strikethrough")&&(d|=K.Strikethrough),{content:l.value,offset:o[1],color:u,bgColor:p,fontStyle:d}}))}function ju(e){const t=e.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/i);if(t)if(t[3]){const a=Math.round(Number.parseInt(t[3],16)/2).toString(16).padStart(2,"0");return`#${t[1]}${t[2]}${a}`}else return t[2]?`#${t[1]}${t[2]}80`:`#${Array.from(t[1]).map(a=>`${a}${a}`).join("")}80`;const n=e.match(/var\((--[\w-]+-ansi-[\w-]+)\)/);return n?`var(${n[1]}-dim)`:e}function Pa(e,t,n={}){const{lang:a="text",theme:r=e.getLoadedThemes()[0]}=n;if(Oa(a)||La(r))return An(t).map(o=>[{content:o[0],offset:o[1]}]);const{theme:i,colorMap:s}=e.setTheme(r);if(a==="ansi")return $u(i,t,n);const c=e.getLanguage(a);if(n.grammarState){if(n.grammarState.lang!==c.name)throw new W(`Grammar state language "${n.grammarState.lang}" does not match highlight language "${c.name}"`);if(!n.grammarState.themes.includes(i.name))throw new W(`Grammar state themes "${n.grammarState.themes}" do not contain highlight theme "${i.name}"`)}return Au(t,c,i,s,n)}function Su(...e){if(e.length===2)return Lt(e[1]);const[t,n,a={}]=e,{lang:r="text",theme:i=t.getLoadedThemes()[0]}=a;if(Oa(r)||La(i))throw new W("Plain language does not have grammar state");if(r==="ansi")throw new W("ANSI language does not have grammar state");const{theme:s,colorMap:c}=t.setTheme(i),o=t.getLanguage(r);return new gt(Cn(n,o,s,c,a).stateStack,o.name,s.name)}function Au(e,t,n,a,r){const i=Cn(e,t,n,a,r),s=new gt(Cn(e,t,n,a,r).stateStack,t.name,n.name);return Rn(i.tokens,s),i.tokens}function Cn(e,t,n,a,r){const i=wn(n,r),{tokenizeMaxLineLength:s=0,tokenizeTimeLimit:c=500}=r,o=An(e);let l=r.grammarState?fu(r.grammarState,n.name)??pa:r.grammarContextCode!=null?Cn(r.grammarContextCode,t,n,a,{...r,grammarState:void 0,grammarContextCode:void 0}).stateStack:pa,u=[];const p=[];for(let d=0,g=o.length;d<g;d++){const[m,v]=o[d];if(m===""){u=[],p.push([]);continue}if(s>0&&m.length>=s){u=[],p.push([{content:m,offset:v,color:"",fontStyle:0}]);continue}let _,y,b;r.includeExplanation&&(_=t.tokenizeLine(m,l,c),y=_.tokens,b=0);const x=t.tokenizeLine2(m,l,c),h=x.tokens.length/2;for(let C=0;C<h;C++){const k=x.tokens[2*C],S=C+1<h?x.tokens[2*C+2]:m.length;if(k===S)continue;const T=x.tokens[2*C+1],D=Ie(a[mt.getForeground(T)],i),I=mt.getFontStyle(T),P={content:m.substring(k,S),offset:v+k,color:D,fontStyle:I};if(r.includeExplanation){const R=[];if(r.includeExplanation!=="scopeName")for(const q of n.settings){let z;switch(typeof q.scope){case"string":z=q.scope.split(/,/).map(B=>B.trim());break;case"object":z=q.scope;break;default:continue}R.push({settings:q,selectors:z.map(B=>B.split(/ /))})}P.explanation=[];let O=0;for(;k+O<S;){const q=y[b],z=m.substring(q.startIndex,q.endIndex);O+=z.length,P.explanation.push({content:z,scopes:r.includeExplanation==="scopeName"?Ru(q.scopes):Tu(R,q.scopes)}),b+=1}}u.push(P)}p.push(u),u=[],l=x.ruleStack}return{tokens:p,stateStack:l}}function Ru(e){return e.map(t=>({scopeName:t}))}function Tu(e,t){const n=[];for(let a=0,r=t.length;a<r;a++){const i=t[a];n[a]={scopeName:i,themeMatches:Iu(e,i,t.slice(0,a))}}return n}function $r(e,t){return e===t||t.substring(0,e.length)===e&&t[e.length]==="."}function Nu(e,t,n){if(!$r(e[e.length-1],t))return!1;let a=e.length-2,r=n.length-1;for(;a>=0&&r>=0;)$r(e[a],n[r])&&(a-=1),r-=1;return a===-1}function Iu(e,t,n){const a=[];for(const{selectors:r,settings:i}of e)for(const s of r)if(Nu(s,t,n)){a.push(i);break}return a}function Zi(e,t,n){const a=Object.entries(n.themes).filter(o=>o[1]).map(o=>({color:o[0],theme:o[1]})),r=a.map(o=>{const l=Pa(e,t,{...n,theme:o.theme}),u=Lt(l),p=typeof o.theme=="string"?o.theme:o.theme.name;return{tokens:l,state:u,theme:p}}),i=Ou(...r.map(o=>o.tokens)),s=i[0].map((o,l)=>o.map((u,p)=>{const d={content:u.content,variants:{},offset:u.offset};return"includeExplanation"in n&&n.includeExplanation&&(d.explanation=u.explanation),i.forEach((g,m)=>{const{content:v,explanation:_,offset:y,...b}=g[l][p];d.variants[a[m].color]=b}),d})),c=r[0].state?new gt(Object.fromEntries(r.map(o=>[o.theme,o.state?.getInternalStack(o.theme)])),r[0].state.lang):void 0;return c&&Rn(s,c),s}function Ou(...e){const t=e.map(()=>[]),n=e.length;for(let a=0;a<e[0].length;a++){const r=e.map(o=>o[a]),i=t.map(()=>[]);t.forEach((o,l)=>o.push(i[l]));const s=r.map(()=>0),c=r.map(o=>o[0]);for(;c.every(o=>o);){const o=Math.min(...c.map(l=>l.content.length));for(let l=0;l<n;l++){const u=c[l];u.content.length===o?(i[l].push(u),s[l]+=1,c[l]=r[l][s[l]]):(i[l].push({...u,content:u.content.slice(0,o)}),c[l]={...u,content:u.content.slice(o),offset:u.offset+o})}}}return t}function Fn(e,t,n){let a,r,i,s,c,o;if("themes"in n){const{defaultColor:l="light",cssVariablePrefix:u="--shiki-",colorsRendering:p="css-vars"}=n,d=Object.entries(n.themes).filter(y=>y[1]).map(y=>({color:y[0],theme:y[1]})).sort((y,b)=>y.color===l?-1:b.color===l?1:0);if(d.length===0)throw new W("`themes` option must not be empty");const g=Zi(e,t,n);if(o=Lt(g),l&&Da!==l&&!d.find(y=>y.color===l))throw new W(`\`themes\` option must contain the defaultColor key \`${l}\``);const m=d.map(y=>e.getTheme(y.theme)),v=d.map(y=>y.color);i=g.map(y=>y.map(b=>hu(b,v,u,l,p))),o&&Rn(i,o);const _=d.map(y=>wn(y.theme,n));r=jr(d,m,_,u,l,"fg",p),a=jr(d,m,_,u,l,"bg",p),s=`shiki-themes ${m.map(y=>y.name).join(" ")}`,c=l?void 0:[r,a].join(";")}else if("theme"in n){const l=wn(n.theme,n);i=Pa(e,t,n);const u=e.getTheme(n.theme);a=Ie(u.bg,l),r=Ie(u.fg,l),s=u.name,o=Lt(i)}else throw new W("Invalid options, either `theme` or `themes` must be provided");return{tokens:i,fg:r,bg:a,themeName:s,rootStyle:c,grammarState:o}}function jr(e,t,n,a,r,i,s){return e.map((c,o)=>{const l=Ie(t[o][i],n[o])||"inherit",u=`${a+c.color}${i==="bg"?"-bg":""}:${l}`;if(o===0&&r){if(r===Da&&e.length>1){const p=e.findIndex(v=>v.color==="light"),d=e.findIndex(v=>v.color==="dark");if(p===-1||d===-1)throw new W('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');const g=Ie(t[p][i],n[p])||"inherit",m=Ie(t[d][i],n[d])||"inherit";return`light-dark(${g}, ${m});${u}`}return l}return s==="css-vars"?u:null}).filter(c=>!!c).join(";")}function En(e,t,n,a={meta:{},options:n,codeToHast:(r,i)=>En(e,r,i),codeToTokens:(r,i)=>Fn(e,r,i)}){let r=t;for(const m of kn(n))r=m.preprocess?.call(a,r,n)||r;let{tokens:i,fg:s,bg:c,themeName:o,rootStyle:l,grammarState:u}=Fn(e,r,n);const{mergeWhitespaces:p=!0,mergeSameStyleTokens:d=!1}=n;p===!0?i=Du(i):p==="never"&&(i=Pu(i)),d&&(i=qu(i));const g={...a,get source(){return r}};for(const m of kn(n))i=m.tokens?.call(g,i)||i;return Lu(i,{...n,fg:s,bg:c,themeName:o,rootStyle:l},g,u)}function Lu(e,t,n,a=Lt(e)){const r=kn(t),i=[],s={type:"root",children:[]},{structure:c="classic",tabindex:o="0"}=t;let l={type:"element",tagName:"pre",properties:{class:`shiki ${t.themeName||""}`,style:t.rootStyle||`background-color:${t.bg};color:${t.fg}`,...o!==!1&&o!=null?{tabindex:o.toString()}:{},...Object.fromEntries(Array.from(Object.entries(t.meta||{})).filter(([m])=>!m.startsWith("_")))},children:[]},u={type:"element",tagName:"code",properties:{},children:i};const p=[],d={...n,structure:c,addClassToHast:Hi,get source(){return n.source},get tokens(){return e},get options(){return t},get root(){return s},get pre(){return l},get code(){return u},get lines(){return p}};if(e.forEach((m,v)=>{v&&(c==="inline"?s.children.push({type:"element",tagName:"br",properties:{},children:[]}):c==="classic"&&i.push({type:"text",value:`
`}));let _={type:"element",tagName:"span",properties:{class:"line"},children:[]},y=0;for(const b of m){let x={type:"element",tagName:"span",properties:{...b.htmlAttrs},children:[{type:"text",value:b.content}]};const h=fa(b.htmlStyle||xn(b));h&&(x.properties.style=h);for(const C of r)x=C?.span?.call(d,x,v+1,y,_,b)||x;c==="inline"?s.children.push(x):c==="classic"&&_.children.push(x),y+=b.content.length}if(c==="classic"){for(const b of r)_=b?.line?.call(d,_,v+1)||_;p.push(_),i.push(_)}else c==="inline"&&p.push(_)}),c==="classic"){for(const m of r)u=m?.code?.call(d,u)||u;l.children.push(u);for(const m of r)l=m?.pre?.call(d,l)||l;s.children.push(l)}else if(c==="inline"){const m=[];let v={type:"element",tagName:"span",properties:{class:"line"},children:[]};for(const b of s.children)b.type==="element"&&b.tagName==="br"?(m.push(v),v={type:"element",tagName:"span",properties:{class:"line"},children:[]}):(b.type==="element"||b.type==="text")&&v.children.push(b);m.push(v);let y={type:"element",tagName:"code",properties:{},children:m};for(const b of r)y=b?.code?.call(d,y)||y;s.children=[];for(let b=0;b<y.children.length;b++){b>0&&s.children.push({type:"element",tagName:"br",properties:{},children:[]});const x=y.children[b];x.type==="element"&&s.children.push(...x.children)}}let g=s;for(const m of r)g=m?.root?.call(d,g)||g;return a&&Rn(g,a),g}function Du(e){return e.map(t=>{const n=[];let a="",r=0;return t.forEach((i,s)=>{const o=!(i.fontStyle&&(i.fontStyle&K.Underline||i.fontStyle&K.Strikethrough));o&&i.content.match(/^\s+$/)&&t[s+1]?(r||(r=i.offset),a+=i.content):a?(o?n.push({...i,offset:r,content:a+i.content}):n.push({content:a,offset:r},i),r=0,a=""):n.push(i)}),n})}function Pu(e){return e.map(t=>t.flatMap(n=>{if(n.content.match(/^\s+$/))return n;const a=n.content.match(/^(\s*)(.*?)(\s*)$/);if(!a)return n;const[,r,i,s]=a;if(!r&&!s)return n;const c=[{...n,offset:n.offset+r.length,content:i}];return r&&c.unshift({content:r,offset:n.offset}),s&&c.push({content:s,offset:n.offset+r.length+i.length}),c}))}function qu(e){return e.map(t=>{const n=[];for(const a of t){if(n.length===0){n.push({...a});continue}const r=n[n.length-1],i=fa(r.htmlStyle||xn(r)),s=fa(a.htmlStyle||xn(a)),c=r.fontStyle&&(r.fontStyle&K.Underline||r.fontStyle&K.Strikethrough),o=a.fontStyle&&(a.fontStyle&K.Underline||a.fontStyle&K.Strikethrough);!c&&!o&&i===s?r.content+=a.content:n.push({...a})}return n})}const Mu=ru;function zu(e,t,n){const a={meta:{},options:n,codeToHast:(i,s)=>En(e,i,s),codeToTokens:(i,s)=>Fn(e,i,s)};let r=Mu(En(e,t,n,a));for(const i of kn(n))r=i.postprocess?.call(a,r,n)||r;return r}const Sr={light:"#333333",dark:"#bbbbbb"},Ar={light:"#fffffe",dark:"#1e1e1e"},Rr="__shiki_resolved";function qa(e){if(e?.[Rr])return e;const t={...e};t.tokenColors&&!t.settings&&(t.settings=t.tokenColors,delete t.tokenColors),t.type||="dark",t.colorReplacements={...t.colorReplacements},t.settings||=[];let{bg:n,fg:a}=t;if(!n||!a){const c=t.settings?t.settings.find(o=>!o.name&&!o.scope):void 0;c?.settings?.foreground&&(a=c.settings.foreground),c?.settings?.background&&(n=c.settings.background),!a&&t?.colors?.["editor.foreground"]&&(a=t.colors["editor.foreground"]),!n&&t?.colors?.["editor.background"]&&(n=t.colors["editor.background"]),a||(a=t.type==="light"?Sr.light:Sr.dark),n||(n=t.type==="light"?Ar.light:Ar.dark),t.fg=a,t.bg=n}t.settings[0]&&t.settings[0].settings&&!t.settings[0].scope||t.settings.unshift({settings:{foreground:t.fg,background:t.bg}});let r=0;const i=new Map;function s(c){if(i.has(c))return i.get(c);r+=1;const o=`#${r.toString(16).padStart(8,"0").toLowerCase()}`;return t.colorReplacements?.[`#${o}`]?s(c):(i.set(c,o),o)}t.settings=t.settings.map(c=>{const o=c.settings?.foreground&&!c.settings.foreground.startsWith("#"),l=c.settings?.background&&!c.settings.background.startsWith("#");if(!o&&!l)return c;const u={...c,settings:{...c.settings}};if(o){const p=s(c.settings.foreground);t.colorReplacements[p]=c.settings.foreground,u.settings.foreground=p}if(l){const p=s(c.settings.background);t.colorReplacements[p]=c.settings.background,u.settings.background=p}return u});for(const c of Object.keys(t.colors||{}))if((c==="editor.foreground"||c==="editor.background"||c.startsWith("terminal.ansi"))&&!t.colors[c]?.startsWith("#")){const o=s(t.colors[c]);t.colorReplacements[o]=t.colors[c],t.colors[c]=o}return Object.defineProperty(t,Rr,{enumerable:!1,writable:!1,value:!0}),t}async function Bu(e){return Array.from(new Set((await Promise.all(e.filter(t=>!cu(t)).map(async t=>await Ui(t).then(n=>Array.isArray(n)?n:[n])))).flat()))}async function Gu(e){return(await Promise.all(e.map(async n=>lu(n)?null:qa(await Ui(n))))).filter(n=>!!n)}class st extends Error{constructor(t){super(t),this.name="ShikiError"}}class Uu extends Uc{constructor(t,n,a,r={}){super(t),this._resolver=t,this._themes=n,this._langs=a,this._alias=r,this._themes.map(i=>this.loadTheme(i)),this.loadLanguages(this._langs)}_resolvedThemes=new Map;_resolvedGrammars=new Map;_langMap=new Map;_langGraph=new Map;_textmateThemeCache=new WeakMap;_loadedThemesCache=null;_loadedLanguagesCache=null;getTheme(t){return typeof t=="string"?this._resolvedThemes.get(t):this.loadTheme(t)}loadTheme(t){const n=qa(t);return n.name&&(this._resolvedThemes.set(n.name,n),this._loadedThemesCache=null),n}getLoadedThemes(){return this._loadedThemesCache||(this._loadedThemesCache=[...this._resolvedThemes.keys()]),this._loadedThemesCache}setTheme(t){let n=this._textmateThemeCache.get(t);n||(n=fn.createFromRawTheme(t),this._textmateThemeCache.set(t,n)),this._syncRegistry.setTheme(n)}getGrammar(t){if(this._alias[t]){const n=new Set([t]);for(;this._alias[t];){if(t=this._alias[t],n.has(t))throw new st(`Circular alias \`${Array.from(n).join(" -> ")} -> ${t}\``);n.add(t)}}return this._resolvedGrammars.get(t)}loadLanguage(t){if(this.getGrammar(t.name))return;const n=new Set([...this._langMap.values()].filter(i=>i.embeddedLangsLazy?.includes(t.name)));this._resolver.addLanguage(t);const a={balancedBracketSelectors:t.balancedBracketSelectors||["*"],unbalancedBracketSelectors:t.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(t.scopeName,t);const r=this.loadGrammarWithConfiguration(t.scopeName,1,a);if(r.name=t.name,this._resolvedGrammars.set(t.name,r),t.aliases&&t.aliases.forEach(i=>{this._alias[i]=t.name}),this._loadedLanguagesCache=null,n.size)for(const i of n)this._resolvedGrammars.delete(i.name),this._loadedLanguagesCache=null,this._syncRegistry?._injectionGrammars?.delete(i.scopeName),this._syncRegistry?._grammars?.delete(i.scopeName),this.loadLanguage(this._langMap.get(i.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(t){for(const r of t)this.resolveEmbeddedLanguages(r);const n=Array.from(this._langGraph.entries()),a=n.filter(([r,i])=>!i);if(a.length){const r=n.filter(([i,s])=>s&&s.embeddedLangs?.some(c=>a.map(([o])=>o).includes(c))).filter(i=>!a.includes(i));throw new st(`Missing languages ${a.map(([i])=>`\`${i}\``).join(", ")}, required by ${r.map(([i])=>`\`${i}\``).join(", ")}`)}for(const[r,i]of n)this._resolver.addLanguage(i);for(const[r,i]of n)this.loadLanguage(i)}getLoadedLanguages(){return this._loadedLanguagesCache||(this._loadedLanguagesCache=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])]),this._loadedLanguagesCache}resolveEmbeddedLanguages(t){this._langMap.set(t.name,t),this._langGraph.set(t.name,t);const n=t.embeddedLanguages??t.embeddedLangs;if(n)for(const a of n)this._langGraph.set(a,this._langMap.get(a))}}class Hu{_langs=new Map;_scopeToLang=new Map;_injections=new Map;_onigLib;constructor(t,n){this._onigLib={createOnigScanner:a=>t.createScanner(a),createOnigString:a=>t.createString(a)},n.forEach(a=>this.addLanguage(a))}get onigLib(){return this._onigLib}getLangRegistration(t){return this._langs.get(t)}loadGrammar(t){return this._scopeToLang.get(t)}addLanguage(t){this._langs.set(t.name,t),t.aliases&&t.aliases.forEach(n=>{this._langs.set(n,t)}),this._scopeToLang.set(t.scopeName,t),t.injectTo&&t.injectTo.forEach(n=>{this._injections.get(n)||this._injections.set(n,[]),this._injections.get(n).push(t.scopeName)})}getInjections(t){const n=t.split(".");let a=[];for(let r=1;r<=n.length;r++){const i=n.slice(0,r).join(".");a=[...a,...this._injections.get(i)||[]]}return a}}let Ct=0;function Wu(e){Ct+=1,e.warnings!==!1&&Ct>=10&&Ct%10===0&&console.warn(`[Shiki] ${Ct} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \`highlighter.dispose()\` to release unused instances.`);let t=!1;if(!e.engine)throw new st("`engine` option is required for synchronous mode");const n=(e.langs||[]).flat(1),a=(e.themes||[]).flat(1).map(qa),r=new Hu(e.engine,n),i=new Uu(r,a,n,e.langAlias);let s;function c(b){_();const x=i.getGrammar(typeof b=="string"?b:b.name);if(!x)throw new st(`Language \`${b}\` not found, you may need to load it first`);return x}function o(b){if(b==="none")return{bg:"",fg:"",name:"none",settings:[],type:"dark"};_();const x=i.getTheme(b);if(!x)throw new st(`Theme \`${b}\` not found, you may need to load it first`);return x}function l(b){_();const x=o(b);s!==b&&(i.setTheme(x),s=b);const h=i.getColorMap();return{theme:x,colorMap:h}}function u(){return _(),i.getLoadedThemes()}function p(){return _(),i.getLoadedLanguages()}function d(...b){_(),i.loadLanguages(b.flat(1))}async function g(...b){return d(await Bu(b))}function m(...b){_();for(const x of b.flat(1))i.loadTheme(x)}async function v(...b){return _(),m(await Gu(b))}function _(){if(t)throw new st("Shiki instance has been disposed")}function y(){t||(t=!0,i.dispose(),Ct-=1)}return{setTheme:l,getTheme:o,getLanguage:c,getLoadedThemes:u,getLoadedLanguages:p,loadLanguage:g,loadLanguageSync:d,loadTheme:v,loadThemeSync:m,dispose:y,[Symbol.dispose]:y}}function Vu(e){const t=Wu(e);return{getLastGrammarState:(...n)=>Su(t,...n),codeToTokensBase:(n,a)=>Pa(t,n,a),codeToTokensWithThemes:(n,a)=>Zi(t,n,a),codeToTokens:(n,a)=>Fn(t,n,a),codeToHast:(n,a)=>En(t,n,a),codeToHtml:(n,a)=>zu(t,n,a),getBundledLanguages:()=>({}),getBundledThemes:()=>({}),...t,getInternalContext:()=>t}}function ft(e){if([...e].length!==1)throw new Error(`Expected "${e}" to be a single code point`);return e.codePointAt(0)}function Zu(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}const Ma=new Set(["alnum","alpha","ascii","blank","cntrl","digit","graph","lower","print","punct","space","upper","word","xdigit"]),V=String.raw;function bt(e,t){if(e==null)throw new Error(t??"Value expected");return e}const Yi=V`\[\^?`,Xi=`c.? | C(?:-.?)?|${V`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${V`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${V`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${V`o\{[^\}]*\}?`}|${V`\d{1,3}`}`,za=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,on=new RegExp(V`
  \\ (?:
    ${Xi}
    | [gk]<[^>]*>?
    | [gk]'[^']*'?
    | .
  )
  | \( (?:
    \? (?:
      [:=!>({]
      | <[=!]
      | <[^>]*>
      | '[^']*'
      | ~\|?
      | #(?:[^)\\]|\\.?)*
      | [^:)]*[:)]
    )?
    | \*[^\)]*\)?
  )?
  | (?:${za.source})+
  | ${Yi}
  | .
`.replace(/\s+/g,""),"gsu"),Zn=new RegExp(V`
  \\ (?:
    ${Xi}
    | .
  )
  | \[:(?:\^?\p{Alpha}+|\^):\]
  | ${Yi}
  | &&
  | .
`.replace(/\s+/g,""),"gsu");function Yu(e,t={}){const n={flags:"",...t,rules:{captureGroup:!1,singleline:!1,...t.rules}};if(typeof e!="string")throw new Error("String expected as pattern");const a=hp(n.flags),r=[a.extended],i={captureGroup:n.rules.captureGroup,getCurrentModX(){return r.at(-1)},numOpenGroups:0,popModX(){r.pop()},pushModX(p){r.push(p)},replaceCurrentModX(p){r[r.length-1]=p},singleline:n.rules.singleline};let s=[],c;for(on.lastIndex=0;c=on.exec(e);){const p=Xu(i,e,c[0],on.lastIndex);p.tokens?s.push(...p.tokens):p.token&&s.push(p.token),p.lastIndex!==void 0&&(on.lastIndex=p.lastIndex)}const o=[];let l=0;s.filter(p=>p.type==="GroupOpen").forEach(p=>{p.kind==="capturing"?p.number=++l:p.raw==="("&&o.push(p)}),l||o.forEach((p,d)=>{p.kind="capturing",p.number=d+1});const u=l||o.length;return{tokens:s.map(p=>p.type==="EscapedNumber"?fp(p,u):p).flat(),flags:a}}function Xu(e,t,n,a){const[r,i]=n;if(n==="["||n==="[^"){const s=Ku(t,n,a);return{tokens:s.tokens,lastIndex:s.lastIndex}}if(r==="\\"){if("AbBGyYzZ".includes(i))return{token:Tr(n,n)};if(/^\\g[<']/.test(n)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(n))throw new Error(`Invalid group name "${n}"`);return{token:op(n)}}if(/^\\k[<']/.test(n)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(n))throw new Error(`Invalid group name "${n}"`);return{token:Qi(n)}}if(i==="K")return{token:Ji("keep",n)};if(i==="N"||i==="R")return{token:He("newline",n,{negate:i==="N"})};if(i==="O")return{token:He("any",n)};if(i==="X")return{token:He("text_segment",n)};const s=Ki(n,{inCharClass:!1});return Array.isArray(s)?{tokens:s}:{token:s}}if(r==="("){if(i==="*")return{token:pp(n)};if(n==="(?{")throw new Error(`Unsupported callout "${n}"`);if(n.startsWith("(?#")){if(t[a]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:a+1}}if(/^\(\?[-imx]+[:)]$/.test(n))return{token:up(n,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,n==="("&&!e.captureGroup||n==="(?:")return{token:rt("group",n)};if(n==="(?>")return{token:rt("atomic",n)};if(n==="(?="||n==="(?!"||n==="(?<="||n==="(?<!")return{token:rt(n[2]==="<"?"lookbehind":"lookahead",n,{negate:n.endsWith("!")})};if(n==="("&&e.captureGroup||n.startsWith("(?<")&&n.endsWith(">")||n.startsWith("(?'")&&n.endsWith("'"))return{token:rt("capturing",n,{...n!=="("&&{name:n.slice(3,-1)}})};if(n.startsWith("(?~")){if(n==="(?~|")throw new Error(`Unsupported absence function kind "${n}"`);return{token:rt("absence_repeater",n)}}throw n==="(?("?new Error(`Unsupported conditional "${n}"`):new Error(`Invalid or unsupported group option "${n}"`)}if(n===")"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched ")"');return{token:rp(n)}}if(e.getCurrentModX()){if(n==="#"){const s=t.indexOf(`
`,a);return{lastIndex:s===-1?t.length:s}}if(/^\s$/.test(n)){const s=/\s+/y;return s.lastIndex=a,{lastIndex:s.exec(t)?s.lastIndex:a}}}if(n===".")return{token:He("dot",n)};if(n==="^"||n==="$"){const s=e.singleline?{"^":V`\A`,$:V`\Z`}[n]:n;return{token:Tr(s,n)}}return n==="|"?{token:Ju(n)}:za.test(n)?{tokens:bp(n)}:{token:$e(ft(n),n)}}function Ku(e,t,n){const a=[Nr(t[1]==="^",t)];let r=1,i;for(Zn.lastIndex=n;i=Zn.exec(e);){const s=i[0];if(s[0]==="["&&s[1]!==":")r++,a.push(Nr(s[1]==="^",s));else if(s==="]"){if(a.at(-1).type==="CharacterClassOpen")a.push($e(93,s));else if(r--,a.push(ep(s)),!r)break}else{const c=Qu(s);Array.isArray(c)?a.push(...c):a.push(c)}}return{tokens:a,lastIndex:Zn.lastIndex||e.length}}function Qu(e){if(e[0]==="\\")return Ki(e,{inCharClass:!0});if(e[0]==="["){const t=/\[:(?<negate>\^?)(?<name>[a-z]+):\]/.exec(e);if(!t||!Ma.has(t.groups.name))throw new Error(`Invalid POSIX class "${e}"`);return He("posix",e,{value:t.groups.name,negate:!!t.groups.negate})}return e==="-"?tp(e):e==="&&"?np(e):$e(ft(e),e)}function Ki(e,{inCharClass:t}){const n=e[1];if(n==="c"||n==="C")return lp(e);if("dDhHsSwW".includes(n))return dp(e);if(e.startsWith(V`\o{`))throw new Error(`Incomplete, invalid, or unsupported octal code point "${e}"`);if(/^\\[pP]\{/.test(e)){if(e.length===3)throw new Error(`Incomplete or invalid Unicode property "${e}"`);return mp(e)}if(new RegExp("^\\\\x[89A-Fa-f]\\p{AHex}","u").test(e))try{const a=e.split(/\\x/).slice(1).map(s=>parseInt(s,16)),r=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(a)),i=new TextEncoder;return[...r].map(s=>{const c=[...i.encode(s)].map(o=>`\\x${o.toString(16)}`).join("");return $e(ft(s),c)})}catch{throw new Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(n==="u"||n==="x")return $e(gp(e),e);if(Ir.has(n))return $e(Ir.get(n),e);if(/\d/.test(n))return ap(t,e);if(e==="\\")throw new Error(V`Incomplete escape "\"`);if(n==="M")throw new Error(`Unsupported meta "${e}"`);if([...e].length===2)return $e(e.codePointAt(1),e);throw new Error(`Unexpected escape "${e}"`)}function Ju(e){return{type:"Alternator",raw:e}}function Tr(e,t){return{type:"Assertion",kind:e,raw:t}}function Qi(e){return{type:"Backreference",raw:e}}function $e(e,t){return{type:"Character",value:e,raw:t}}function ep(e){return{type:"CharacterClassClose",raw:e}}function tp(e){return{type:"CharacterClassHyphen",raw:e}}function np(e){return{type:"CharacterClassIntersector",raw:e}}function Nr(e,t){return{type:"CharacterClassOpen",negate:e,raw:t}}function He(e,t,n={}){return{type:"CharacterSet",kind:e,...n,raw:t}}function Ji(e,t,n={}){return e==="keep"?{type:"Directive",kind:e,raw:t}:{type:"Directive",kind:e,flags:bt(n.flags),raw:t}}function ap(e,t){return{type:"EscapedNumber",inCharClass:e,raw:t}}function rp(e){return{type:"GroupClose",raw:e}}function rt(e,t,n={}){return{type:"GroupOpen",kind:e,...n,raw:t}}function ip(e,t,n,a){return{type:"NamedCallout",kind:e,tag:t,arguments:n,raw:a}}function sp(e,t,n,a){return{type:"Quantifier",kind:e,min:t,max:n,raw:a}}function op(e){return{type:"Subroutine",raw:e}}const cp=new Set(["COUNT","CMP","ERROR","FAIL","MAX","MISMATCH","SKIP","TOTAL_COUNT"]),Ir=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]);function lp(e){const t=e[1]==="c"?e[2]:e[3];if(!t||!/[A-Za-z]/.test(t))throw new Error(`Unsupported control character "${e}"`);return $e(ft(t.toUpperCase())-64,e)}function up(e,t){let{on:n,off:a}=/^\(\?(?<on>[imx]*)(?:-(?<off>[-imx]*))?/.exec(e).groups;a??="";const r=(t.getCurrentModX()||n.includes("x"))&&!a.includes("x"),i=Lr(n),s=Lr(a),c={};if(i&&(c.enable=i),s&&(c.disable=s),e.endsWith(")"))return t.replaceCurrentModX(r),Ji("flags",e,{flags:c});if(e.endsWith(":"))return t.pushModX(r),t.numOpenGroups++,rt("group",e,{...(i||s)&&{flags:c}});throw new Error(`Unexpected flag modifier "${e}"`)}function pp(e){const t=/\(\*(?<name>[A-Za-z_]\w*)?(?:\[(?<tag>(?:[A-Za-z_]\w*)?)\])?(?:\{(?<args>[^}]*)\})?\)/.exec(e);if(!t)throw new Error(`Incomplete or invalid named callout "${e}"`);const{name:n,tag:a,args:r}=t.groups;if(!n)throw new Error(`Invalid named callout "${e}"`);if(a==="")throw new Error(`Named callout tag with empty value not allowed "${e}"`);const i=r?r.split(",").filter(u=>u!=="").map(u=>/^[+-]?\d+$/.test(u)?+u:u):[],[s,c,o]=i,l=cp.has(n)?n.toLowerCase():"custom";switch(l){case"fail":case"mismatch":case"skip":if(i.length>0)throw new Error(`Named callout arguments not allowed "${i}"`);break;case"error":if(i.length>1)throw new Error(`Named callout allows only one argument "${i}"`);if(typeof s=="string")throw new Error(`Named callout argument must be a number "${s}"`);break;case"max":if(!i.length||i.length>2)throw new Error(`Named callout must have one or two arguments "${i}"`);if(typeof s=="string"&&!/^[A-Za-z_]\w*$/.test(s))throw new Error(`Named callout argument one must be a tag or number "${s}"`);if(i.length===2&&(typeof c=="number"||!/^[<>X]$/.test(c)))throw new Error(`Named callout optional argument two must be '<', '>', or 'X' "${c}"`);break;case"count":case"total_count":if(i.length>1)throw new Error(`Named callout allows only one argument "${i}"`);if(i.length===1&&(typeof s=="number"||!/^[<>X]$/.test(s)))throw new Error(`Named callout optional argument must be '<', '>', or 'X' "${s}"`);break;case"cmp":if(i.length!==3)throw new Error(`Named callout must have three arguments "${i}"`);if(typeof s=="string"&&!/^[A-Za-z_]\w*$/.test(s))throw new Error(`Named callout argument one must be a tag or number "${s}"`);if(typeof c=="number"||!/^(?:[<>!=]=|[<>])$/.test(c))throw new Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' "${c}"`);if(typeof o=="string"&&!/^[A-Za-z_]\w*$/.test(o))throw new Error(`Named callout argument three must be a tag or number "${o}"`);break;case"custom":throw new Error(`Undefined callout name "${n}"`);default:throw new Error(`Unexpected named callout kind "${l}"`)}return ip(l,a??null,r?.split(",")??null,e)}function Or(e){let t=null,n,a;if(e[0]==="{"){const{minStr:r,maxStr:i}=/^\{(?<minStr>\d*)(?:,(?<maxStr>\d*))?/.exec(e).groups,s=1e5;if(+r>s||i&&+i>s)throw new Error("Quantifier value unsupported in Oniguruma");if(n=+r,a=i===void 0?+r:i===""?1/0:+i,n>a&&(t="possessive",[n,a]=[a,n]),e.endsWith("?")){if(t==="possessive")throw new Error('Unsupported possessive interval quantifier chain with "?"');t="lazy"}else t||(t="greedy")}else n=e[0]==="+"?1:0,a=e[0]==="?"?1:1/0,t=e[1]==="+"?"possessive":e[1]==="?"?"lazy":"greedy";return sp(t,n,a,e)}function dp(e){const t=e[1].toLowerCase();return He({d:"digit",h:"hex",s:"space",w:"word"}[t],e,{negate:e[1]!==t})}function mp(e){const{p:t,neg:n,value:a}=/^\\(?<p>[pP])\{(?<neg>\^?)(?<value>[^}]+)/.exec(e).groups;return He("property",e,{value:a,negate:t==="P"&&!n||t==="p"&&!!n})}function Lr(e){const t={};return e.includes("i")&&(t.ignoreCase=!0),e.includes("m")&&(t.dotAll=!0),e.includes("x")&&(t.extended=!0),Object.keys(t).length?t:null}function hp(e){const t={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii:!1,posixIsAscii:!1,spaceIsAscii:!1,wordIsAscii:!1,textSegmentMode:null};for(let n=0;n<e.length;n++){const a=e[n];if(!"imxDPSWy".includes(a))throw new Error(`Invalid flag "${a}"`);if(a==="y"){if(!/^y{[gw]}/.test(e.slice(n)))throw new Error('Invalid or unspecified flag "y" mode');t.textSegmentMode=e[n+2]==="g"?"grapheme":"word",n+=3;continue}t[{i:"ignoreCase",m:"dotAll",x:"extended",D:"digitIsAscii",P:"posixIsAscii",S:"spaceIsAscii",W:"wordIsAscii"}[a]]=!0}return t}function gp(e){if(new RegExp("^(?:\\\\u(?!\\p{AHex}{4})|\\\\x(?!\\p{AHex}{1,2}|\\{\\p{AHex}{1,8}\\}))","u").test(e))throw new Error(`Incomplete or invalid escape "${e}"`);const t=e[2]==="{"?new RegExp("^\\\\x\\{\\s*(?<hex>\\p{AHex}+)","u").exec(e).groups.hex:e.slice(2);return parseInt(t,16)}function fp(e,t){const{raw:n,inCharClass:a}=e,r=n.slice(1);if(!a&&(r!=="0"&&r.length===1||r[0]!=="0"&&+r<=t))return[Qi(n)];const i=[],s=r.match(/^[0-7]+|\d/g);for(let c=0;c<s.length;c++){const o=s[c];let l;if(c===0&&o!=="8"&&o!=="9"){if(l=parseInt(o,8),l>127)throw new Error(V`Octal encoded byte above 177 unsupported "${n}"`)}else l=ft(o);i.push($e(l,(c===0?"\\":"")+o))}return i}function bp(e){const t=[],n=new RegExp(za,"gy");let a;for(;a=n.exec(e);){const r=a[0];if(r[0]==="{"){const i=/^\{(?<min>\d+),(?<max>\d+)\}\??$/.exec(r);if(i){const{min:s,max:c}=i.groups;if(+s>+c&&r.endsWith("?")){n.lastIndex--,t.push(Or(r.slice(0,-1)));continue}}}t.push(Or(r))}return t}function es(e,t){if(!Array.isArray(e.body))throw new Error("Expected node with body array");if(e.body.length!==1)return!1;const n=e.body[0];return!t||Object.keys(t).every(a=>t[a]===n[a])}function _p(e){return yp.has(e.type)}const yp=new Set(["AbsenceFunction","Backreference","CapturingGroup","Character","CharacterClass","CharacterSet","Group","Quantifier","Subroutine"]);function ts(e,t={}){const n={flags:"",normalizeUnknownPropertyNames:!1,skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t,rules:{captureGroup:!1,singleline:!1,...t.rules}},a=Yu(e,{flags:n.flags,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline}}),r=(d,g)=>{const m=a.tokens[i.nextIndex];switch(i.parent=d,i.nextIndex++,m.type){case"Alternator":return Ze();case"Assertion":return vp(m);case"Backreference":return wp(m,i);case"Character":return Tn(m.value,{useLastValid:!!g.isCheckingRangeEnd});case"CharacterClassHyphen":return xp(m,i,g);case"CharacterClassOpen":return kp(m,i,g);case"CharacterSet":return Cp(m,i);case"Directive":return Ap(m.kind,{flags:m.flags});case"GroupOpen":return Fp(m,i,g);case"NamedCallout":return Tp(m.kind,m.tag,m.arguments);case"Quantifier":return Ep(m,i);case"Subroutine":return $p(m,i);default:throw new Error(`Unexpected token type "${m.type}"`)}},i={capturingGroups:[],hasNumberedRef:!1,namedGroupsByName:new Map,nextIndex:0,normalizeUnknownPropertyNames:n.normalizeUnknownPropertyNames,parent:null,skipBackrefValidation:n.skipBackrefValidation,skipLookbehindValidation:n.skipLookbehindValidation,skipPropertyNameValidation:n.skipPropertyNameValidation,subroutines:[],tokens:a.tokens,unicodePropertyMap:n.unicodePropertyMap,walk:r},s=Ip(Rp(a.flags));let c=s.body[0];for(;i.nextIndex<a.tokens.length;){const d=r(c,{});d.type==="Alternative"?(s.body.push(d),c=d):c.body.push(d)}const{capturingGroups:o,hasNumberedRef:l,namedGroupsByName:u,subroutines:p}=i;if(l&&u.size&&!n.rules.captureGroup)throw new Error("Numbered backref/subroutine not allowed when using named capture");for(const{ref:d}of p)if(typeof d=="number"){if(d>o.length)throw new Error("Subroutine uses a group number that's not defined");d&&(o[d-1].isSubroutined=!0)}else if(u.has(d)){if(u.get(d).length>1)throw new Error(V`Subroutine uses a duplicate group name "\g<${d}>"`);u.get(d)[0].isSubroutined=!0}else throw new Error(V`Subroutine uses a group name that's not defined "\g<${d}>"`);return s}function vp({kind:e}){return ba(bt({"^":"line_start",$:"line_end","\\A":"string_start","\\b":"word_boundary","\\B":"word_boundary","\\G":"search_start","\\y":"text_segment_boundary","\\Y":"text_segment_boundary","\\z":"string_end","\\Z":"string_end_newline"}[e],`Unexpected assertion kind "${e}"`),{negate:e===V`\B`||e===V`\Y`})}function wp({raw:e},t){const n=/^\\k[<']/.test(e),a=n?e.slice(3,-1):e.slice(1),r=(i,s=!1)=>{const c=t.capturingGroups.length;let o=!1;if(i>c)if(t.skipBackrefValidation)o=!0;else throw new Error(`Not enough capturing groups defined to the left "${e}"`);return t.hasNumberedRef=!0,_a(s?c+1-i:i,{orphan:o})};if(n){const i=/^(?<sign>-?)0*(?<num>[1-9]\d*)$/.exec(a);if(i)return r(+i.groups.num,!!i.groups.sign);if(/[-+]/.test(a))throw new Error(`Invalid backref name "${e}"`);if(!t.namedGroupsByName.has(a))throw new Error(`Group name not defined to the left "${e}"`);return _a(a)}return r(+a)}function xp(e,t,n){const{tokens:a,walk:r}=t,i=t.parent,s=i.body.at(-1),c=a[t.nextIndex];if(!n.isCheckingRangeEnd&&s&&s.type!=="CharacterClass"&&s.type!=="CharacterClassRange"&&c&&c.type!=="CharacterClassOpen"&&c.type!=="CharacterClassClose"&&c.type!=="CharacterClassIntersector"){const o=r(i,{...n,isCheckingRangeEnd:!0});if(s.type==="Character"&&o.type==="Character")return i.body.pop(),Sp(s,o);throw new Error("Invalid character class range")}return Tn(ft("-"))}function kp({negate:e},t,n){const{tokens:a,walk:r}=t,i=a[t.nextIndex],s=[mn()];let c=qr(i);for(;c.type!=="CharacterClassClose";){if(c.type==="CharacterClassIntersector")s.push(mn()),t.nextIndex++;else{const l=s.at(-1);l.body.push(r(l,n))}c=qr(a[t.nextIndex],i)}const o=mn({negate:e});return s.length===1?o.body=s[0].body:(o.kind="intersection",o.body=s.map(l=>l.body.length===1?l.body[0]:l)),t.nextIndex++,o}function Cp({kind:e,negate:t,value:n},a){const{normalizeUnknownPropertyNames:r,skipPropertyNameValidation:i,unicodePropertyMap:s}=a;if(e==="property"){const c=Nn(n);if(Ma.has(c)&&!s?.has(c))e="posix",n=c;else return it(n,{negate:t,normalizeUnknownPropertyNames:r,skipPropertyNameValidation:i,unicodePropertyMap:s})}return e==="posix"?Np(n,{negate:t}):ya(e,{negate:t})}function Fp(e,t,n){const{tokens:a,capturingGroups:r,namedGroupsByName:i,skipLookbehindValidation:s,walk:c}=t,o=Op(e),l=o.type==="AbsenceFunction",u=Pr(o),p=u&&o.negate;if(o.type==="CapturingGroup"&&(r.push(o),o.name&&Zu(i,o.name,[]).push(o)),l&&n.isInAbsenceFunction)throw new Error("Nested absence function not supported by Oniguruma");let d=Mr(a[t.nextIndex]);for(;d.type!=="GroupClose";){if(d.type==="Alternator")o.body.push(Ze()),t.nextIndex++;else{const g=o.body.at(-1),m=c(g,{...n,isInAbsenceFunction:n.isInAbsenceFunction||l,isInLookbehind:n.isInLookbehind||u,isInNegLookbehind:n.isInNegLookbehind||p});if(g.body.push(m),(u||n.isInLookbehind)&&!s){const v="Lookbehind includes a pattern not allowed by Oniguruma";if(p||n.isInNegLookbehind){if(Dr(m)||m.type==="CapturingGroup")throw new Error(v)}else if(Dr(m)||Pr(m)&&m.negate)throw new Error(v)}}d=Mr(a[t.nextIndex])}return t.nextIndex++,o}function Ep({kind:e,min:t,max:n},a){const r=a.parent,i=r.body.at(-1);if(!i||!_p(i))throw new Error("Quantifier requires a repeatable token");const s=as(e,t,n,i);return r.body.pop(),s}function $p({raw:e},t){const{capturingGroups:n,subroutines:a}=t;let r=e.slice(3,-1);const i=/^(?<sign>[-+]?)0*(?<num>[1-9]\d*)$/.exec(r);if(i){const c=+i.groups.num,o=n.length;if(t.hasNumberedRef=!0,r={"":c,"+":o+c,"-":o+1-c}[i.groups.sign],r<1)throw new Error("Invalid subroutine number")}else r==="0"&&(r=0);const s=rs(r);return a.push(s),s}function jp(e,t){return{type:"AbsenceFunction",kind:e,body:Gt(t?.body)}}function Ze(e){return{type:"Alternative",body:is(e?.body)}}function ba(e,t){const n={type:"Assertion",kind:e};return(e==="word_boundary"||e==="text_segment_boundary")&&(n.negate=!!t?.negate),n}function _a(e,t){const n=!!t?.orphan;return{type:"Backreference",ref:e,...n&&{orphan:n}}}function ns(e,t){const n={name:void 0,i
Download .txt
gitextract_9aritsul/

├── .blade.format.json
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   └── config.yml
│   ├── dependabot.yml
│   └── workflows/
│       ├── dependabot-auto-merge.yml
│       ├── fix-php-code-style-issues.yml
│       ├── run-tests.yml
│       └── update-changelog.yml
├── .gitignore
├── .prettierignore
├── .prettierrc
├── CHANGELOG.md
├── LICENSE.md
├── README.md
├── bootstrap/
│   └── app.php
├── composer.json
├── database/
│   ├── factories/
│   │   └── ModelFactory.php
│   └── migrations/
│       └── create_filament_exceptions_table.php.stub
├── package.json
├── phpstan.neon.dist
├── phpunit.xml.dist
├── phpunit.xml.dist.bak
├── pint.json
├── rector.php
├── resources/
│   ├── css/
│   │   └── styles.css
│   ├── dist/
│   │   ├── scripts.js
│   │   └── styles.css
│   ├── js/
│   │   └── scripts.js
│   ├── lang/
│   │   ├── cs/
│   │   │   └── filament-exceptions.php
│   │   ├── en/
│   │   │   └── filament-exceptions.php
│   │   ├── es/
│   │   │   └── filament-exceptions.php
│   │   └── sk/
│   │       └── filament-exceptions.php
│   └── views/
│       ├── .gitkeep
│       ├── components/
│       │   ├── badge.blade.php
│       │   ├── empty-state.blade.php
│       │   ├── file-with-line.blade.php
│       │   ├── formatted-source.blade.php
│       │   ├── frame-code.blade.php
│       │   ├── frame.blade.php
│       │   ├── header.blade.php
│       │   ├── http-method.blade.php
│       │   ├── icons/
│       │   │   ├── alert.blade.php
│       │   │   ├── check.blade.php
│       │   │   ├── chevron-left.blade.php
│       │   │   ├── chevron-right.blade.php
│       │   │   ├── chevrons-down-up.blade.php
│       │   │   ├── chevrons-left.blade.php
│       │   │   ├── chevrons-right.blade.php
│       │   │   ├── chevrons-up-down.blade.php
│       │   │   ├── copy.blade.php
│       │   │   ├── database.blade.php
│       │   │   ├── folder-open.blade.php
│       │   │   ├── folder.blade.php
│       │   │   ├── globe.blade.php
│       │   │   ├── info.blade.php
│       │   │   └── laravel-ascii.blade.php
│       │   ├── query.blade.php
│       │   ├── request-body.blade.php
│       │   ├── request-header.blade.php
│       │   ├── request-url.blade.php
│       │   ├── routing-parameter.blade.php
│       │   ├── routing.blade.php
│       │   ├── section-container.blade.php
│       │   ├── separator.blade.php
│       │   ├── syntax-highlight.blade.php
│       │   ├── topbar.blade.php
│       │   ├── trace.blade.php
│       │   ├── vendor-frame.blade.php
│       │   └── vendor-frames.blade.php
│       └── view-exception.blade.php
├── src/
│   ├── Commands/
│   │   └── InstallCommand.php
│   ├── Concerns/
│   │   ├── HasLabels.php
│   │   ├── HasModelPruneInterval.php
│   │   ├── HasNavigation.php
│   │   └── HasTenantScope.php
│   ├── Facades/
│   │   └── FilamentExceptions.php
│   ├── FilamentExceptions.php
│   ├── FilamentExceptionsPlugin.php
│   ├── FilamentExceptionsServiceProvider.php
│   ├── Models/
│   │   └── Exception.php
│   ├── Resources/
│   │   ├── ExceptionResource/
│   │   │   └── Pages/
│   │   │       ├── ListExceptions.php
│   │   │       └── ViewException.php
│   │   └── ExceptionResource.php
│   ├── StoredException.php
│   └── StoredFrame.php
├── tests/
│   ├── AdminPanelProvider.php
│   ├── ArchTest.php
│   ├── ExampleTest.php
│   ├── Pest.php
│   └── TestCase.php
└── vite.config.js
Download .txt
SYMBOL INDEX (850 symbols across 19 files)

FILE: resources/dist/scripts.js
  function ve (line 1) | function ve(e){return e?(e.nodeName||"").toLowerCase():null}
  function ae (line 1) | function ae(e){if(e==null)return window;if(e.toString()!=="[object Windo...
  function Ve (line 1) | function Ve(e){var t=ae(e).Element;return e instanceof t||e instanceof E...
  function ce (line 1) | function ce(e){var t=ae(e).HTMLElement;return e instanceof t||e instance...
  function Ca (line 1) | function Ca(e){if(typeof ShadowRoot>"u")return!1;var t=ae(e).ShadowRoot;...
  function zs (line 1) | function zs(e){var t=e.state;Object.keys(t.elements).forEach(function(n)...
  function Bs (line 1) | function Bs(e){var t=e.state,n={popper:{position:t.options.strategy,left...
  function ye (line 1) | function ye(e){return e.split("-")[0]}
  function ta (line 1) | function ta(){var e=navigator.userAgentData;return e!=null&&e.brands&&Ar...
  function ti (line 1) | function ti(){return!/^((?!chrome|android).)*safari/i.test(ta())}
  function pt (line 1) | function pt(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var a=e.getBoun...
  function Fa (line 1) | function Fa(e){var t=pt(e),n=e.offsetWidth,a=e.offsetHeight;return Math....
  function ni (line 1) | function ni(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))r...
  function Se (line 1) | function Se(e){return ae(e).getComputedStyle(e)}
  function Gs (line 1) | function Gs(e){return["table","td","th"].indexOf(ve(e))>=0}
  function Oe (line 1) | function Oe(e){return((Ve(e)?e.ownerDocument:e.document)||window.documen...
  function jn (line 1) | function jn(e){return ve(e)==="html"?e:e.assignedSlot||e.parentNode||(Ca...
  function Va (line 1) | function Va(e){return!ce(e)||Se(e).position==="fixed"?null:e.offsetParent}
  function Us (line 1) | function Us(e){var t=/firefox/i.test(ta()),n=/Trident/i.test(ta());if(n&...
  function qt (line 1) | function qt(e){for(var t=ae(e),n=Va(e);n&&Gs(n)&&Se(n).position==="stati...
  function Ea (line 1) | function Ea(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}
  function Et (line 1) | function Et(e,t,n){return We(e,hn(t,n))}
  function Hs (line 1) | function Hs(e,t,n){var a=Et(e,t,n);return a>n?n:a}
  function ai (line 1) | function ai(){return{top:0,right:0,bottom:0,left:0}}
  function ri (line 1) | function ri(e){return Object.assign({},ai(),e)}
  function ii (line 1) | function ii(e,t){return t.reduce(function(n,a){return n[a]=e,n},{})}
  function Vs (line 1) | function Vs(e){var t,n=e.state,a=e.name,r=e.options,i=n.elements.arrow,s...
  function Zs (line 1) | function Zs(e){var t=e.state,n=e.options,a=n.element,r=a===void 0?"[data...
  function dt (line 1) | function dt(e){return e.split("-")[1]}
  function Ks (line 1) | function Ks(e,t){var n=e.x,a=e.y,r=t.devicePixelRatio||1;return{x:ut(n*r...
  function Za (line 1) | function Za(e){var t,n=e.popper,a=e.popperRect,r=e.placement,i=e.variati...
  function Qs (line 1) | function Qs(e){var t=e.state,n=e.options,a=n.gpuAcceleration,r=a===void ...
  function eo (line 1) | function eo(e){var t=e.state,n=e.instance,a=e.options,r=a.scroll,i=r===v...
  function un (line 1) | function un(e){return e.replace(/left|right|bottom|top/g,function(t){ret...
  function Ya (line 1) | function Ya(e){return e.replace(/start|end/g,function(t){return ao[t]})}
  function $a (line 1) | function $a(e){var t=ae(e),n=t.pageXOffset,a=t.pageYOffset;return{scroll...
  function ja (line 1) | function ja(e){return pt(Oe(e)).left+$a(e).scrollLeft}
  function ro (line 1) | function ro(e,t){var n=ae(e),a=Oe(e),r=n.visualViewport,i=a.clientWidth,...
  function io (line 1) | function io(e){var t,n=Oe(e),a=$a(e),r=(t=e.ownerDocument)==null?void 0:...
  function Sa (line 1) | function Sa(e){var t=Se(e),n=t.overflow,a=t.overflowX,r=t.overflowY;retu...
  function si (line 1) | function si(e){return["html","body","#document"].indexOf(ve(e))>=0?e.own...
  function $t (line 1) | function $t(e,t){var n;t===void 0&&(t=[]);var a=si(e),r=a===((n=e.ownerD...
  function na (line 1) | function na(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.w...
  function so (line 1) | function so(e,t){var n=pt(e,!1,t==="fixed");return n.top=n.top+e.clientT...
  function Xa (line 1) | function Xa(e,t,n){return t===Qr?na(ro(e,n)):Ve(t)?so(t,n):na(io(Oe(e)))}
  function oo (line 1) | function oo(e){var t=$t(jn(e)),n=["absolute","fixed"].indexOf(Se(e).posi...
  function co (line 1) | function co(e,t,n,a){var r=t==="clippingParents"?oo(e):[].concat(t),i=[]...
  function oi (line 1) | function oi(e){var t=e.reference,n=e.element,a=e.placement,r=a?ye(a):nul...
  function Tt (line 1) | function Tt(e,t){t===void 0&&(t={});var n=t,a=n.placement,r=a===void 0?e...
  function lo (line 1) | function lo(e,t){t===void 0&&(t={});var n=t,a=n.placement,r=n.boundary,i...
  function uo (line 1) | function uo(e){if(ye(e)===ka)return[];var t=un(e);return[Ya(e),t,Ya(t)]}
  function po (line 1) | function po(e){var t=e.state,n=e.options,a=e.name;if(!t.modifiersData[a]...
  function Ka (line 1) | function Ka(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-...
  function Qa (line 1) | function Qa(e){return[J,ue,le,ee].some(function(t){return e[t]>=0})}
  function ho (line 1) | function ho(e){var t=e.state,n=e.name,a=t.rects.reference,r=t.rects.popp...
  function fo (line 1) | function fo(e,t,n){var a=ye(e),r=[ee,J].indexOf(a)>=0?-1:1,i=typeof n=="...
  function bo (line 1) | function bo(e){var t=e.state,n=e.options,a=e.name,r=n.offset,i=r===void ...
  function yo (line 1) | function yo(e){var t=e.state,n=e.name;t.modifiersData[n]=oi({reference:t...
  function wo (line 1) | function wo(e){return e==="x"?"y":"x"}
  function xo (line 1) | function xo(e){var t=e.state,n=e.options,a=e.name,r=n.mainAxis,i=r===voi...
  function Co (line 1) | function Co(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}
  function Fo (line 1) | function Fo(e){return e===ae(e)||!ce(e)?$a(e):Co(e)}
  function Eo (line 1) | function Eo(e){var t=e.getBoundingClientRect(),n=ut(t.width)/e.offsetWid...
  function $o (line 1) | function $o(e,t,n){n===void 0&&(n=!1);var a=ce(t),r=ce(t)&&Eo(t),i=Oe(t)...
  function jo (line 1) | function jo(e){var t=new Map,n=new Set,a=[];e.forEach(function(i){t.set(...
  function So (line 1) | function So(e){var t=jo(e);return Ms.reduce(function(n,a){return n.conca...
  function Ao (line 1) | function Ao(e){var t;return function(){return t||(t=new Promise(function...
  function Ro (line 1) | function Ro(e){var t=e.reduce(function(n,a){var r=n[a.name];return n[a.n...
  function er (line 1) | function er(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]...
  function To (line 1) | function To(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,a=n===voi...
  function Dn (line 1) | function Dn(e,t,n){if(Array.isArray(e)){var a=e[t];return a??(Array.isAr...
  function Aa (line 1) | function Aa(e,t){var n={}.toString.call(e);return n.indexOf("[object")==...
  function di (line 1) | function di(e,t){return typeof e=="function"?e.apply(void 0,t):e}
  function tr (line 1) | function tr(e,t){if(t===0)return e;var n;return function(a){clearTimeout...
  function Do (line 1) | function Do(e){return e.split(/\s+/).filter(Boolean)}
  function at (line 1) | function at(e){return[].concat(e)}
  function nr (line 1) | function nr(e,t){e.indexOf(t)===-1&&e.push(t)}
  function Po (line 1) | function Po(e){return e.filter(function(t,n){return e.indexOf(t)===n})}
  function qo (line 1) | function qo(e){return e.split("-")[0]}
  function gn (line 1) | function gn(e){return[].slice.call(e)}
  function ar (line 1) | function ar(e){return Object.keys(e).reduce(function(t,n){return e[n]!==...
  function jt (line 1) | function jt(){return document.createElement("div")}
  function Sn (line 1) | function Sn(e){return["Element","Fragment"].some(function(t){return Aa(e...
  function Mo (line 1) | function Mo(e){return Aa(e,"NodeList")}
  function zo (line 1) | function zo(e){return Aa(e,"MouseEvent")}
  function Bo (line 1) | function Bo(e){return!!(e&&e._tippy&&e._tippy.reference===e)}
  function Go (line 1) | function Go(e){return Sn(e)?[e]:Mo(e)?gn(e):Array.isArray(e)?e:gn(docume...
  function Pn (line 1) | function Pn(e,t){e.forEach(function(n){n&&(n.style.transitionDuration=t+...
  function rr (line 1) | function rr(e,t){e.forEach(function(n){n&&n.setAttribute("data-state",t)})}
  function Uo (line 1) | function Uo(e){var t,n=at(e),a=n[0];return a!=null&&(t=a.ownerDocument)!...
  function Ho (line 1) | function Ho(e,t){var n=t.clientX,a=t.clientY;return e.every(function(r){...
  function qn (line 1) | function qn(e,t,n){var a=t+"EventListener";["transitionend","webkitTrans...
  function ir (line 1) | function ir(e,t){for(var n=t;n;){var a;if(e.contains(n))return!0;n=n.get...
  function Wo (line 1) | function Wo(){_e.isTouch||(_e.isTouch=!0,window.performance&&document.ad...
  function mi (line 1) | function mi(){var e=performance.now();e-sr<20&&(_e.isTouch=!1,document.r...
  function Vo (line 1) | function Vo(){var e=document.activeElement;if(Bo(e)){var t=e._tippy;e.bl...
  function Zo (line 1) | function Zo(){document.addEventListener("touchstart",Wo,ze),window.addEv...
  function hi (line 1) | function hi(e){var t=e.plugins||[],n=t.reduce(function(a,r){var i=r.name...
  function tc (line 1) | function tc(e,t){var n=t?Object.keys(hi(Object.assign({},me,{plugins:t})...
  function or (line 1) | function or(e,t){var n=Object.assign({},t,{content:di(t.content,[e])},t....
  function aa (line 1) | function aa(e,t){e[nc()]=t}
  function cr (line 1) | function cr(e){var t=jt();return e===!0?t.className=li:(t.className=ui,S...
  function lr (line 1) | function lr(e,t){Sn(t.content)?(aa(e,""),e.appendChild(t.content)):typeo...
  function ra (line 1) | function ra(e){var t=e.firstElementChild,n=gn(t.children);return{box:t,c...
  function gi (line 1) | function gi(e){var t=jt(),n=jt();n.className=Oo,n.setAttribute("data-sta...
  function rc (line 1) | function rc(e,t){var n=or(e,Object.assign({},me,hi(ar(t)))),a,r,i,s=!1,c...
  function Mt (line 1) | function Mt(e,t){t===void 0&&(t={});var n=me.plugins.concat(t.plugins||[...
  method constructor (line 1) | constructor(t){super(t),this.name="ShikiError"}
  function ic (line 1) | function ic(e){return Ra(e)}
  function Ra (line 1) | function Ra(e){return Array.isArray(e)?sc(e):e instanceof RegExp?e:typeo...
  function sc (line 1) | function sc(e){let t=[];for(let n=0,a=e.length;n<a;n++)t[n]=Ra(e[n]);ret...
  function oc (line 1) | function oc(e){let t={};for(let n in e)t[n]=Ra(e[n]);return t}
  function fi (line 1) | function fi(e,...t){return t.forEach(n=>{for(let a in n)e[a]=n[a]}),e}
  function bi (line 1) | function bi(e){const t=~e.lastIndexOf("/")||~e.lastIndexOf("\\");return ...
  method hasCaptures (line 1) | static hasCaptures(e){return e===null?!1:(zn.lastIndex=0,zn.test(e))}
  method replaceCaptures (line 1) | static replaceCaptures(e,t,n){return e.replace(zn,(a,r,i,s)=>{let c=n[pa...
  function _i (line 1) | function _i(e,t){return e<t?-1:e>t?1:0}
  function yi (line 1) | function yi(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)ret...
  function ur (line 1) | function ur(e){return!!(/^#[0-9a-f]{6}$/i.test(e)||/^#[0-9a-f]{8}$/i.tes...
  function vi (line 1) | function vi(e){return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/...
  method constructor (line 1) | constructor(e){this.fn=e}
  method get (line 1) | get(e){if(this.cache.has(e))return this.cache.get(e);const t=this.fn(e);...
  method constructor (line 1) | constructor(e,t,n){this._colorMap=e,this._defaults=t,this._root=n}
  method createFromRawTheme (line 1) | static createFromRawTheme(e,t){return this.createFromParsedTheme(uc(e),t)}
  method createFromParsedTheme (line 1) | static createFromParsedTheme(e,t){return dc(e,t)}
  method getColorMap (line 1) | getColorMap(){return this._colorMap.getColorMap()}
  method getDefaults (line 1) | getDefaults(){return this._defaults}
  method match (line 1) | match(e){if(e===null)return this._defaults;const t=e.scopeName,a=this._c...
  method constructor (line 1) | constructor(t,n){this.parent=t,this.scopeName=n}
  method push (line 1) | static push(t,n){for(const a of n)t=new pn(t,a);return t}
  method from (line 1) | static from(...t){let n=null;for(let a=0;a<t.length;a++)n=new pn(n,t[a])...
  method push (line 1) | push(t){return new pn(this,t)}
  method getSegments (line 1) | getSegments(){let t=this;const n=[];for(;t;)n.push(t.scopeName),t=t.pare...
  method toString (line 1) | toString(){return this.getSegments().join(" ")}
  method extends (line 1) | extends(t){return this===t?!0:this.parent===null?!1:this.parent.extends(t)}
  method getExtensionIfDefined (line 1) | getExtensionIfDefined(t){const n=[];let a=this;for(;a&&a!==t;)n.push(a.s...
  function cc (line 1) | function cc(e,t){if(t.length===0)return!0;for(let n=0;n<t.length;n++){le...
  function lc (line 1) | function lc(e,t){return t===e||e.startsWith(t)&&e[t.length]==="."}
  method constructor (line 1) | constructor(e,t,n){this.fontStyle=e,this.foregroundId=t,this.backgroundI...
  function uc (line 1) | function uc(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings)...
  method constructor (line 1) | constructor(e,t,n,a,r,i){this.scope=e,this.parentScopes=t,this.index=n,t...
  function dc (line 1) | function dc(e,t){e.sort((o,l)=>{let u=_i(o.scope,l.scope);return u!==0||...
  method constructor (line 1) | constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=O...
  method getId (line 1) | getId(e){if(e===null)return 0;e=e.toUpperCase();let t=this._color2id[e];...
  method getColorMap (line 1) | getColorMap(){return this._id2color.slice(0)}
  method constructor (line 1) | constructor(t,n,a,r,i){this.scopeDepth=t,this.parentScopes=n||hc,this.fo...
  method clone (line 1) | clone(){return new ki(this.scopeDepth,this.parentScopes,this.fontStyle,t...
  method cloneArr (line 1) | static cloneArr(t){let n=[];for(let a=0,r=t.length;a<r;a++)n[a]=t[a].clo...
  method acceptOverwrite (line 1) | acceptOverwrite(t,n,a,r){this.scopeDepth>t?console.log("how did this hap...
  method constructor (line 1) | constructor(t,n=[],a={}){this._mainRule=t,this._children=a,this._rulesWi...
  method _cmpBySpecificity (line 1) | static _cmpBySpecificity(t,n){if(t.scopeDepth!==n.scopeDepth)return n.sc...
  method match (line 1) | match(t){if(t!==""){let a=t.indexOf("."),r,i;if(a===-1?(r=t,i=""):(r=t.s...
  method insert (line 1) | insert(t,n,a,r,i,s){if(n===""){this._doInsertHere(t,a,r,i,s);return}let ...
  method _doInsertHere (line 1) | _doInsertHere(t,n,a,r,i){if(n===null){this._mainRule.acceptOverwrite(t,a...
  method toBinaryStr (line 1) | static toBinaryStr(t){return t.toString(2).padStart(32,"0")}
  method print (line 1) | static print(t){const n=ie.getLanguageId(t),a=ie.getTokenType(t),r=ie.ge...
  method getLanguageId (line 1) | static getLanguageId(t){return(t&255)>>>0}
  method getTokenType (line 1) | static getTokenType(t){return(t&768)>>>8}
  method containsBalancedBrackets (line 1) | static containsBalancedBrackets(t){return(t&1024)!==0}
  method getFontStyle (line 1) | static getFontStyle(t){return(t&30720)>>>11}
  method getForeground (line 1) | static getForeground(t){return(t&16744448)>>>15}
  method getBackground (line 1) | static getBackground(t){return(t&4278190080)>>>24}
  method set (line 1) | static set(t,n,a,r,i,s,c){let o=ie.getLanguageId(t),l=ie.getTokenType(t)...
  function bn (line 1) | function bn(e,t){const n=[],a=fc(e);let r=a.next();for(;r!==null;){let o...
  function pr (line 1) | function pr(e){return!!e&&!!e.match(/[\w\.:]+/)}
  function fc (line 1) | function fc(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=t.exec(...
  function Ci (line 1) | function Ci(e){typeof e.dispose=="function"&&e.dispose()}
  method constructor (line 1) | constructor(e){this.scopeName=e}
  method toKey (line 1) | toKey(){return this.scopeName}
  method constructor (line 1) | constructor(e,t){this.scopeName=e,this.ruleName=t}
  method toKey (line 1) | toKey(){return`${this.scopeName}#${this.ruleName}`}
  method references (line 1) | get references(){return this._references}
  method add (line 1) | add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenRefe...
  method constructor (line 1) | constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeR...
  method processQueue (line 1) | processQueue(){const e=this.Q;this.Q=[];const t=new _c;for(const n of e)...
  function vc (line 1) | function vc(e,t,n,a){const r=n.lookup(e.scopeName);if(!r){if(e.scopeName...
  function oa (line 1) | function oa(e,t,n){if(t.repository&&t.repository[e]){const a=t.repositor...
  function dn (line 1) | function dn(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.pat...
  function _n (line 1) | function _n(e,t,n){for(const a of e){if(n.visitedRule.has(a))continue;n....
  method constructor (line 1) | constructor(e){this.ruleName=e}
  method constructor (line 1) | constructor(e){this.scopeName=e}
  method constructor (line 1) | constructor(e,t){this.scopeName=e,this.ruleName=t}
  function Fi (line 1) | function Fi(e){if(e==="$base")return new wc;if(e==="$self")return new xc...
  method constructor (line 1) | constructor(e,t,n,a){this.$location=e,this.id=t,this._name=n||null,this....
  method debugName (line 1) | get debugName(){const e=this.$location?`${bi(this.$location.filename)}:$...
  method getName (line 1) | getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||...
  method getContentName (line 1) | getContentName(e,t){return!this._contentNameIsCapturing||this._contentNa...
  method constructor (line 1) | constructor(e,t,n,a,r){super(e,t,n,a),this.retokenizeCapturedWithRuleId=r}
  method dispose (line 1) | dispose(){}
  method collectPatterns (line 1) | collectPatterns(e,t){throw new Error("Not supported!")}
  method compile (line 1) | compile(e,t){throw new Error("Not supported!")}
  method compileAG (line 1) | compileAG(e,t,n,a){throw new Error("Not supported!")}
  method constructor (line 1) | constructor(e,t,n,a,r){super(e,t,n,null),this._match=new It(a,this.id),t...
  method dispose (line 1) | dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.di...
  method debugMatchRegExp (line 1) | get debugMatchRegExp(){return`${this._match.source}`}
  method collectPatterns (line 1) | collectPatterns(e,t){t.push(this._match)}
  method compile (line 1) | compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}
  method compileAG (line 1) | compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e).compileAG(e...
  method _getCachedCompiledPatterns (line 1) | _getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this...
  method constructor (line 1) | constructor(e,t,n,a,r){super(e,t,n,a),this.patterns=r.patterns,this.hasM...
  method dispose (line 1) | dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.di...
  method collectPatterns (line 1) | collectPatterns(e,t){for(const n of this.patterns)e.getRule(n).collectPa...
  method compile (line 1) | compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}
  method compileAG (line 1) | compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e).compileAG(e...
  method _getCachedCompiledPatterns (line 1) | _getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this...
  method constructor (line 1) | constructor(e,t,n,a,r,i,s,c,o,l){super(e,t,n,a),this._begin=new It(r,thi...
  method dispose (line 1) | dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.di...
  method debugBeginRegExp (line 1) | get debugBeginRegExp(){return`${this._begin.source}`}
  method debugEndRegExp (line 1) | get debugEndRegExp(){return`${this._end.source}`}
  method getEndWithResolvedBackReferences (line 1) | getEndWithResolvedBackReferences(e,t){return this._end.resolveBackRefere...
  method collectPatterns (line 1) | collectPatterns(e,t){t.push(this._begin)}
  method compile (line 1) | compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}
  method compileAG (line 1) | compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e,t).compileAG...
  method _getCachedCompiledPatterns (line 1) | _getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._...
  method constructor (line 1) | constructor(e,t,n,a,r,i,s,c,o){super(e,t,n,a),this._begin=new It(r,this....
  method dispose (line 1) | dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.di...
  method debugBeginRegExp (line 1) | get debugBeginRegExp(){return`${this._begin.source}`}
  method debugWhileRegExp (line 1) | get debugWhileRegExp(){return`${this._while.source}`}
  method getWhileWithResolvedBackReferences (line 1) | getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackRe...
  method collectPatterns (line 1) | collectPatterns(e,t){t.push(this._begin)}
  method compile (line 1) | compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}
  method compileAG (line 1) | compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e).compileAG(e...
  method _getCachedCompiledPatterns (line 1) | _getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._ca...
  method compileWhile (line 1) | compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compi...
  method compileWhileAG (line 1) | compileWhileAG(e,t,n,a){return this._getCachedCompiledWhilePatterns(e,t)...
  method _getCachedCompiledWhilePatterns (line 1) | _getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePat...
  method createCaptureRule (line 1) | static createCaptureRule(t,n,a,r,i){return t.registerRule(s=>new jc(n,s,...
  method getCompiledRuleId (line 1) | static getCompiledRuleId(t,n,a){return t.id||n.registerRule(r=>{if(t.id=...
  method _compileCaptures (line 1) | static _compileCaptures(t,n,a){let r=[];if(t){let i=0;for(const s in t){...
  method _compilePatterns (line 1) | static _compilePatterns(t,n,a){let r=[];if(t)for(let i=0,s=t.length;i<s;...
  method constructor (line 1) | constructor(t,n){if(t&&typeof t=="string"){const a=t.length;let r=0,i=[]...
  method clone (line 1) | clone(){return new ji(this.source,this.ruleId)}
  method setSource (line 1) | setSource(t){this.source!==t&&(this.source=t,this.hasAnchor&&(this._anch...
  method resolveBackReferences (line 1) | resolveBackReferences(t,n){if(typeof this.source!="string")throw new Err...
  method _buildAnchorCache (line 1) | _buildAnchorCache(){if(typeof this.source!="string")throw new Error("Thi...
  method resolveAnchors (line 1) | resolveAnchors(t,n){return!this.hasAnchor||!this._anchorCache||typeof th...
  method constructor (line 1) | constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this....
  method dispose (line 1) | dispose(){this._disposeCaches()}
  method _disposeCaches (line 1) | _disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null...
  method push (line 1) | push(e){this._items.push(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}
  method unshift (line 1) | unshift(e){this._items.unshift(e),this._hasAnchors=this._hasAnchors||e.h...
  method length (line 1) | length(){return this._items.length}
  method setSource (line 1) | setSource(e,t){this._items[e].source!==t&&(this._disposeCaches(),this._i...
  method compile (line 1) | compile(e){if(!this._cached){let t=this._items.map(n=>n.source);this._ca...
  method compileAG (line 1) | compileAG(e,t,n){return this._hasAnchors?t?n?(this._anchorCache.A1_G1||(...
  method _resolveAnchors (line 1) | _resolveAnchors(e,t,n){let a=this._items.map(r=>r.resolveAnchors(t,n));r...
  method constructor (line 1) | constructor(e,t,n){this.regExps=t,this.rules=n,this.scanner=e.createOnig...
  method dispose (line 1) | dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}
  method toString (line 1) | toString(){const e=[];for(let t=0,n=this.rules.length;t<n;t++)e.push("  ...
  method findNextMatchSync (line 2) | findNextMatchSync(e,t,n){const a=this.scanner.findNextMatchSync(e,t,n);r...
  method constructor (line 2) | constructor(e,t){this.languageId=e,this.tokenType=t}
  method constructor (line 2) | constructor(t,n){this._defaultAttributes=new Gn(t,8),this._embeddedLangu...
  method getDefaultAttributes (line 2) | getDefaultAttributes(){return this._defaultAttributes}
  method getBasicScopeAttributes (line 2) | getBasicScopeAttributes(t){return t===null?la._NULL_SCOPE_METADATA:this....
  method _scopeToLanguage (line 2) | _scopeToLanguage(t){return this._embeddedLanguagesMatcher.match(t)||0}
  method _toStandardTokenType (line 2) | _toStandardTokenType(t){const n=t.match(la.STANDARD_TOKEN_TYPE_REGEXP);i...
  method constructor (line 2) | constructor(e){if(e.length===0)this.values=null,this.scopesRegExp=null;e...
  method match (line 2) | match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp)...
  method constructor (line 2) | constructor(e,t){this.stack=e,this.stoppedEarly=t}
  function Si (line 2) | function Si(e,t,n,a,r,i,s,c){const o=t.content.length;let l=!1,u=-1;if(s...
  function Tc (line 2) | function Tc(e,t,n,a,r,i){let s=r.beginRuleCapturedEOL?0:-1;const c=[];fo...
  function Nc (line 2) | function Nc(e,t,n,a,r,i){const s=Ic(e,t,n,a,r,i),c=e.getInjections();if(...
  function Ic (line 2) | function Ic(e,t,n,a,r,i){const s=r.getRule(e),{ruleScanner:c,findOptions...
  function Oc (line 2) | function Oc(e,t,n,a,r,i,s){let c=Number.MAX_VALUE,o=null,l,u=0;const p=i...
  function Ai (line 2) | function Ai(e,t,n,a,r){return{ruleScanner:e.compileAG(t,n,a,r),findOptio...
  function Lc (line 2) | function Lc(e,t,n,a,r){return{ruleScanner:e.compileWhileAG(t,n,a,r),find...
  function Ft (line 2) | function Ft(e,t,n,a,r,i,s){if(i.length===0)return;const c=t.content,o=Ma...
  method constructor (line 2) | constructor(e,t){this.scopes=e,this.endPos=t}
  function Pc (line 2) | function Pc(e,t,n,a,r,i,s,c){return new Mc(e,t,n,a,r,i,s,c)}
  function fr (line 2) | function fr(e,t,n,a,r){const i=bn(t,vn),s=$i.getCompiledRuleId(n,a,r.rep...
  function vn (line 2) | function vn(e,t){if(t.length<e.length)return!1;let n=0;return e.every(a=...
  function qc (line 2) | function qc(e,t){if(!e)return!1;if(e===t)return!0;const n=t.length;retur...
  method constructor (line 2) | constructor(e,t,n,a,r,i,s,c){if(this._rootScopeName=e,this.balancedBrack...
  method themeProvider (line 2) | get themeProvider(){return this._grammarRepository}
  method dispose (line 2) | dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}
  method createOnigScanner (line 2) | createOnigScanner(e){return this._onigLib.createOnigScanner(e)}
  method createOnigString (line 2) | createOnigString(e){return this._onigLib.createOnigString(e)}
  method getMetadataForScope (line 2) | getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasi...
  method _collectInjections (line 2) | _collectInjections(){const e={lookup:r=>r===this._rootScopeName?this._gr...
  method getInjections (line 2) | getInjections(){return this._injections===null&&(this._injections=this._...
  method registerRule (line 2) | registerRule(e){const t=++this._lastRuleId,n=e(t);return this._ruleId2de...
  method getRule (line 2) | getRule(e){return this._ruleId2desc[e]}
  method getExternalGrammar (line 2) | getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includ...
  method tokenizeLine (line 2) | tokenizeLine(e,t,n=0){const a=this._tokenize(e,t,!1,n);return{tokens:a.l...
  method tokenizeLine2 (line 2) | tokenizeLine2(e,t,n=0){const a=this._tokenize(e,t,!0,n);return{tokens:a....
  method _tokenize (line 2) | _tokenize(e,t,n,a){this._rootId===-1&&(this._rootId=$i.getCompiledRuleId...
  function br (line 3) | function br(e,t){return e=ic(e),e.repository=e.repository||{},e.reposito...
  method constructor (line 3) | constructor(t,n,a){this.parent=t,this.scopePath=n,this.tokenAttributes=a}
  method fromExtension (line 3) | static fromExtension(t,n){let a=t,r=t?.scopePath??null;for(const i of n)...
  method createRoot (line 3) | static createRoot(t,n){return new be(null,new Bn(null,t),n)}
  method createRootAndLookUpScopeName (line 3) | static createRootAndLookUpScopeName(t,n,a){const r=a.getMetadataForScope...
  method scopeName (line 3) | get scopeName(){return this.scopePath.scopeName}
  method toString (line 3) | toString(){return this.getScopeNames().join(" ")}
  method equals (line 3) | equals(t){return be.equals(this,t)}
  method equals (line 3) | static equals(t,n){do{if(t===n||!t&&!n)return!0;if(!t||!n||t.scopeName!=...
  method mergeAttributes (line 3) | static mergeAttributes(t,n,a){let r=-1,i=0,s=0;return a!==null&&(r=a.fon...
  method pushAttributed (line 3) | pushAttributed(t,n){if(t===null)return this;if(t.indexOf(" ")===-1)retur...
  method _pushAttributed (line 3) | static _pushAttributed(t,n,a){const r=a.getMetadataForScope(n),i=t.scope...
  method getScopeNames (line 3) | getScopeNames(){return this.scopePath.getSegments()}
  method getExtensionIfDefined (line 3) | getExtensionIfDefined(t){const n=[];let a=this;for(;a&&a!==t;)n.push({en...
  method constructor (line 3) | constructor(t,n,a,r,i,s,c,o){this.parent=t,this.ruleId=n,this.beginRuleC...
  method equals (line 3) | equals(t){return t===null?!1:Be._equals(this,t)}
  method _equals (line 3) | static _equals(t,n){return t===n?!0:this._structuralEquals(t,n)?St.equal...
  method _structuralEquals (line 3) | static _structuralEquals(t,n){do{if(t===n||!t&&!n)return!0;if(!t||!n||t....
  method clone (line 3) | clone(){return this}
  method _reset (line 3) | static _reset(t){for(;t;)t._enterPos=-1,t._anchorPos=-1,t=t.parent}
  method reset (line 3) | reset(){Be._reset(this)}
  method pop (line 3) | pop(){return this.parent}
  method safePop (line 3) | safePop(){return this.parent?this.parent:this}
  method push (line 3) | push(t,n,a,r,i,s,c){return new Be(this,t,n,a,r,i,s,c)}
  method getEnterPos (line 3) | getEnterPos(){return this._enterPos}
  method getAnchorPos (line 3) | getAnchorPos(){return this._anchorPos}
  method getRule (line 3) | getRule(t){return t.getRule(this.ruleId)}
  method toString (line 3) | toString(){const t=[];return this._writeString(t,0),"["+t.join(",")+"]"}
  method _writeString (line 3) | _writeString(t,n){return this.parent&&(n=this.parent._writeString(t,n)),...
  method withContentNameScopesList (line 3) | withContentNameScopesList(t){return this.contentNameScopesList===t?this:...
  method withEndRule (line 3) | withEndRule(t){return this.endRule===t?this:new Be(this.parent,this.rule...
  method hasSameRuleAs (line 3) | hasSameRuleAs(t){let n=this;for(;n&&n._enterPos===t._enterPos;){if(n.rul...
  method toStateStackFrame (line 3) | toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this....
  method pushFrame (line 3) | static pushFrame(t,n){const a=St.fromExtension(t?.nameScopesList??null,n...
  method constructor (line 3) | constructor(e,t){this.balancedBracketScopes=e.flatMap(n=>n==="*"?(this.a...
  method matchesAlways (line 3) | get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.l...
  method matchesNever (line 3) | get matchesNever(){return this.balancedBracketScopes.length===0&&!this.a...
  method match (line 3) | match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;fo...
  method constructor (line 3) | constructor(e,t,n,a){this.balancedBracketSelectors=a,this._emitBinaryTok...
  method produce (line 3) | produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}
  method produceFromScopes (line 3) | produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emi...
  method getResult (line 3) | getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.l...
  method getBinaryResult (line 3) | getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[thi...
  method constructor (line 3) | constructor(e,t){this._onigLib=t,this._theme=e}
  method dispose (line 3) | dispose(){for(const e of this._grammars.values())e.dispose()}
  method setTheme (line 3) | setTheme(e){this._theme=e}
  method getColorMap (line 3) | getColorMap(){return this._theme.getColorMap()}
  method addGrammar (line 3) | addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionG...
  method lookup (line 3) | lookup(e){return this._rawGrammars.get(e)}
  method injections (line 3) | injections(e){return this._injectionGrammars.get(e)}
  method getDefaults (line 3) | getDefaults(){return this._theme.getDefaults()}
  method themeMatch (line 3) | themeMatch(e){return this._theme.match(e)}
  method grammarForScopeName (line 3) | grammarForScopeName(e,t,n,a,r){if(!this._grammars.has(e)){let i=this._ra...
  method constructor (line 3) | constructor(t){this._options=t,this._syncRegistry=new Gc(fn.createFromRa...
  method dispose (line 3) | dispose(){this._syncRegistry.dispose()}
  method setTheme (line 3) | setTheme(t,n){this._syncRegistry.setTheme(fn.createFromRawTheme(t,n))}
  method getColorMap (line 3) | getColorMap(){return this._syncRegistry.getColorMap()}
  method loadGrammarWithEmbeddedLanguages (line 3) | loadGrammarWithEmbeddedLanguages(t,n,a){return this.loadGrammarWithConfi...
  method loadGrammarWithConfiguration (line 3) | loadGrammarWithConfiguration(t,n,a){return this._loadGrammar(t,n,a.embed...
  method loadGrammar (line 3) | loadGrammar(t){return this._loadGrammar(t,0,null,null,null)}
  method _loadGrammar (line 3) | _loadGrammar(t,n,a,r,i){const s=new yc(this._syncRegistry,t);for(;s.Q.le...
  method _loadSingleGrammar (line 3) | _loadSingleGrammar(t){this._ensureGrammarCache.has(t)||(this._doLoadSing...
  method _doLoadSingleGrammar (line 3) | _doLoadSingleGrammar(t){const n=this._options.loadGrammar(t);if(n){const...
  method addGrammar (line 3) | addGrammar(t,n=[],a=0,r=null){return this._syncRegistry.addGrammar(t,n),...
  method _grammarForScopeName (line 3) | _grammarForScopeName(t,n=0,a=null,r=null,i=null){return this._syncRegist...
  class Bt (line 3) | class Bt{constructor(t,n,a){this.normal=n,this.property=t,a&&(this.space...
    method constructor (line 3) | constructor(t,n,a){this.normal=n,this.property=t,a&&(this.space=a)}
  function Ri (line 3) | function Ri(e,t){const n={},a={};for(const r of e)Object.assign(n,r.prop...
  function da (line 3) | function da(e){return e.toLowerCase()}
  class te (line 3) | class te{constructor(t,n){this.attribute=n,this.property=t}}
    method constructor (line 3) | constructor(t,n){this.attribute=n,this.property=t}
  function Ye (line 3) | function Ye(){return 2**++Wc}
  class Ta (line 3) | class Ta extends te{constructor(t,n,a,r){let i=-1;if(super(t,n),_r(this,...
    method constructor (line 3) | constructor(t,n,a,r){let i=-1;if(super(t,n),_r(this,"space",r),typeof ...
  function _r (line 3) | function _r(e,t,n){n&&(e[t]=n)}
  function ht (line 3) | function ht(e){const t={},n={};for(const[a,r]of Object.entries(e.propert...
  method transform (line 3) | transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}
  function Ni (line 3) | function Ni(e,t){return t in e?e[t]:t}
  function Ii (line 3) | function Ii(e,t){return Ni(e,t.toLowerCase())}
  method transform (line 3) | transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}
  method transform (line 3) | transform(e,t){return"xml:"+t.slice(3).toLowerCase()}
  function Kc (line 3) | function Kc(e,t){const n=da(t);let a=t,r=te;if(n in e.normal)return e.pr...
  function Qc (line 3) | function Qc(e){return"-"+e.toLowerCase()}
  function Jc (line 3) | function Jc(e){return e.charAt(1).toUpperCase()}
  function tl (line 3) | function tl(e,t){const n=t||{};function a(r,...i){let s=a.invalid;const ...
  function sl (line 3) | function sl(e,t){if(e=e.replace(t.subset?ol(t.subset):nl,a),t.subset||t....
  function ol (line 3) | function ol(e){let t=wr.get(e);return t||(t=cl(e),wr.set(e,t)),t}
  function cl (line 3) | function cl(e){const t=[];let n=-1;for(;++n<e.length;)t.push(e[n].replac...
  function ul (line 3) | function ul(e,t,n){const a="&#x"+e.toString(16).toUpperCase();return n&&...
  function dl (line 3) | function dl(e,t,n){const a="&#"+String(e);return n&&t&&!pl.test(String.f...
  function fl (line 3) | function fl(e,t,n,a){const r=String.fromCharCode(e);if(qi.call(ga,r)){co...
  function bl (line 3) | function bl(e,t,n){let a=ul(e,t,n.omitOptionalSemicolons),r;if((n.useNam...
  function ct (line 3) | function ct(e,t){return sl(e,Object.assign({format:bl},t))}
  function wl (line 3) | function wl(e,t,n,a){return a.settings.bogusComments?"<?"+ct(e.value,Obj...
  function xl (line 3) | function xl(e,t,n,a){return"<!"+(a.settings.upperDoctype?"DOCTYPE":"doct...
  function xr (line 3) | function xr(e,t){const n=String(e);if(typeof t!="string")throw new TypeE...
  function kl (line 3) | function kl(e,t){const n=t||{};return(e[e.length-1]===""?[...e,""]:e).jo...
  function Cl (line 3) | function Cl(e){return e.join(" ").trim()}
  function Na (line 3) | function Na(e){return typeof e=="object"?e.type==="text"?kr(e.value):!1:...
  function kr (line 3) | function kr(e){return e.replace(Fl,"")===""}
  function zi (line 3) | function zi(e){return t;function t(n,a,r){const i=n?n.children:El;let s=...
  function Bi (line 3) | function Bi(e){return t;function t(n,a,r){return $l.call(e,n.tagName)&&e...
  function Wn (line 3) | function Wn(e,t,n){const a=H(n,t,!0);return!a||a.type!=="comment"&&!(a.t...
  function jl (line 3) | function jl(e,t,n){const a=H(n,t);return!a||a.type!=="comment"}
  function Sl (line 3) | function Sl(e,t,n){const a=H(n,t);return!a||a.type!=="comment"}
  function Al (line 3) | function Al(e,t,n){const a=H(n,t);return a?a.type==="element"&&(a.tagNam...
  function Rl (line 3) | function Rl(e,t,n){const a=H(n,t);return!a||a.type==="element"&&a.tagNam...
  function Tl (line 3) | function Tl(e,t,n){const a=H(n,t);return!!(a&&a.type==="element"&&(a.tag...
  function Nl (line 3) | function Nl(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagNa...
  function Cr (line 3) | function Cr(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagNa...
  function Il (line 3) | function Il(e,t,n){const a=H(n,t);return!a||a.type==="element"&&a.tagNam...
  function Ol (line 3) | function Ol(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagNa...
  function Ll (line 3) | function Ll(e,t,n){const a=H(n,t);return!!(a&&a.type==="element"&&(a.tag...
  function Dl (line 3) | function Dl(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagNa...
  function Pl (line 3) | function Pl(e,t,n){return!H(n,t)}
  function ql (line 3) | function ql(e,t,n){const a=H(n,t);return!a||a.type==="element"&&a.tagNam...
  function Fr (line 3) | function Fr(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagNa...
  function zl (line 3) | function zl(e){const t=H(e,-1);return!t||t.type!=="comment"}
  function Bl (line 3) | function Bl(e){const t=new Set;for(const a of e.children)if(a.type==="el...
  function Gl (line 3) | function Gl(e){const t=H(e,-1,!0);return!t||t.type!=="comment"&&!(t.type...
  function Ul (line 3) | function Ul(e,t,n){const a=Mi(n,t),r=H(e,-1,!0);return n&&a&&a.type==="e...
  function Hl (line 3) | function Hl(e,t,n){const a=Mi(n,t),r=H(e,-1);return n&&a&&a.type==="elem...
  function Wl (line 11) | function Wl(e,t,n,a){const r=a.schema,i=r.space==="svg"?!1:a.settings.om...
  function Vl (line 11) | function Vl(e,t){const n=[];let a=-1,r;if(t){for(r in t)if(t[r]!==null&&...
  function Zl (line 11) | function Zl(e,t,n){const a=Kc(e.schema,t),r=e.settings.allowParseErrors&...
  function Gi (line 11) | function Gi(e,t,n,a){return n&&n.type==="element"&&(n.tagName==="script"...
  function Xl (line 11) | function Xl(e,t,n,a){return a.settings.allowDangerousHtml?e.value:Gi(e,t...
  function Kl (line 11) | function Kl(e,t,n,a){return a.all(e)}
  function Jl (line 11) | function Jl(e){throw new Error("Expected node, not `"+e+"`")}
  function eu (line 11) | function eu(e){const t=e;throw new Error("Cannot compile unknown node `"...
  function ru (line 11) | function ru(e,t){const n=t||tu,a=n.quote||'"',r=a==='"'?"'":'"';if(a!=='...
  function iu (line 11) | function iu(e,t,n){return Ql(e,t,n,this)}
  function su (line 11) | function su(e){const t=[],n=e&&e.children||au;let a=-1;for(;++a<n.length...
  function wn (line 11) | function wn(e,t){const n=typeof e=="string"?{}:{...e.colorReplacements},...
  function Ie (line 11) | function Ie(e,t){return e&&(t?.[e?.toLowerCase()]||e)}
  function ou (line 11) | function ou(e){return Array.isArray(e)?e:[e]}
  function Ui (line 11) | async function Ui(e){return Promise.resolve(typeof e=="function"?e():e)....
  function Oa (line 11) | function Oa(e){return!e||["plaintext","txt","text","plain"].includes(e)}
  function cu (line 11) | function cu(e){return e==="ansi"||Oa(e)}
  function La (line 11) | function La(e){return e==="none"}
  function lu (line 11) | function lu(e){return La(e)}
  function Hi (line 11) | function Hi(e,t){if(!t)return e;e.properties||={},e.properties.class||=[...
  function An (line 11) | function An(e,t=!1){const n=e.split(/(\r?\n)/g);let a=0;const r=[];for(l...
  function uu (line 11) | function uu(e){const t=An(e,!0).map(([r])=>r);function n(r){if(r===e.len...
  function du (line 11) | function du(e,t){let n=0;const a=[];for(const r of t)r>n&&a.push({...e,c...
  function mu (line 11) | function mu(e,t){const n=Array.from(t instanceof Set?t:new Set(t)).sort(...
  function hu (line 11) | function hu(e,t,n,a,r="css-vars"){const i={content:e.content,explanation...
  function xn (line 11) | function xn(e){const t={};if(e.color&&(t.color=e.color),e.bgColor&&(t["b...
  function fa (line 11) | function fa(e){return typeof e=="string"?e:Object.entries(e).map(([t,n])...
  function Rn (line 11) | function Rn(e,t){Wi.set(e,t)}
  function Lt (line 11) | function Lt(e){return Wi.get(e)}
  class gt (line 11) | class gt{_stacks={};lang;get themes(){return Object.keys(this._stacks)}g...
    method themes (line 11) | get themes(){return Object.keys(this._stacks)}
    method theme (line 11) | get theme(){return this.themes[0]}
    method _stack (line 11) | get _stack(){return this._stacks[this.theme]}
    method initial (line 11) | static initial(t,n){return new gt(Object.fromEntries(ou(n).map(a=>[a,p...
    method constructor (line 11) | constructor(...t){if(t.length===2){const[n,a]=t;this.lang=a,this._stac...
    method getInternalStack (line 11) | getInternalStack(t=this.theme){return this._stacks[t]}
    method getScopes (line 11) | getScopes(t=this.theme){return gu(this._stacks[t])}
    method toJSON (line 11) | toJSON(){return{lang:this.lang,theme:this.theme,themes:this.themes,sco...
  function gu (line 11) | function gu(e){const t=[],n=new Set;function a(r){if(n.has(r))return;n.a...
  function fu (line 11) | function fu(e,t){if(!(e instanceof gt))throw new W("Invalid grammar stat...
  function bu (line 11) | function bu(){const e=new WeakMap;function t(n){if(!e.has(n.meta)){let a...
  function _u (line 11) | function _u(e){for(let t=0;t<e.length;t++){const n=e[t];if(n.start.offse...
  function Vi (line 11) | function Vi(e){return e.type==="text"?e.value:e.type==="element"?e.child...
  function kn (line 11) | function kn(e){const t=vu(e.transformers||[]);return[...t.pre,...t.norma...
  function vu (line 11) | function vu(e){const t=[],n=[],a=[];for(const r of e)switch(r.enforce){c...
  function wu (line 11) | function wu(e,t){const n=e.indexOf("\x1B",t);if(n!==-1&&e[n+1]==="["){co...
  function Er (line 11) | function Er(e){const t=e.shift();if(t==="2"){const n=e.splice(0,3).map(a...
  function xu (line 11) | function xu(e){const t=[];for(;e.length>0;){const n=e.shift();if(!n)cont...
  function ku (line 11) | function ku(){let e=null,t=null,n=new Set;return{parse(a){const r=[];let...
  function Fu (line 11) | function Fu(e=Cu){function t(c){return e[c]}function n(c){return`#${c.ma...
  function $u (line 11) | function $u(e,t,n){const a=wn(e,n),r=An(t),i=Object.fromEntries(Ue.map(o...
  function ju (line 11) | function ju(e){const t=e.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2}...
  function Pa (line 11) | function Pa(e,t,n={}){const{lang:a="text",theme:r=e.getLoadedThemes()[0]...
  function Su (line 11) | function Su(...e){if(e.length===2)return Lt(e[1]);const[t,n,a={}]=e,{lan...
  function Au (line 11) | function Au(e,t,n,a,r){const i=Cn(e,t,n,a,r),s=new gt(Cn(e,t,n,a,r).stat...
  function Cn (line 11) | function Cn(e,t,n,a,r){const i=wn(n,r),{tokenizeMaxLineLength:s=0,tokeni...
  function Ru (line 11) | function Ru(e){return e.map(t=>({scopeName:t}))}
  function Tu (line 11) | function Tu(e,t){const n=[];for(let a=0,r=t.length;a<r;a++){const i=t[a]...
  function $r (line 11) | function $r(e,t){return e===t||t.substring(0,e.length)===e&&t[e.length]=...
  function Nu (line 11) | function Nu(e,t,n){if(!$r(e[e.length-1],t))return!1;let a=e.length-2,r=n...
  function Iu (line 11) | function Iu(e,t,n){const a=[];for(const{selectors:r,settings:i}of e)for(...
  function Zi (line 11) | function Zi(e,t,n){const a=Object.entries(n.themes).filter(o=>o[1]).map(...
  function Ou (line 11) | function Ou(...e){const t=e.map(()=>[]),n=e.length;for(let a=0;a<e[0].le...
  function Fn (line 11) | function Fn(e,t,n){let a,r,i,s,c,o;if("themes"in n){const{defaultColor:l...
  function jr (line 11) | function jr(e,t,n,a,r,i,s){return e.map((c,o)=>{const l=Ie(t[o][i],n[o])...
  function En (line 11) | function En(e,t,n,a={meta:{},options:n,codeToHast:(r,i)=>En(e,r,i),codeT...
  function Lu (line 11) | function Lu(e,t,n,a=Lt(e)){const r=kn(t),i=[],s={type:"root",children:[]...
  function Du (line 12) | function Du(e){return e.map(t=>{const n=[];let a="",r=0;return t.forEach...
  function Pu (line 12) | function Pu(e){return e.map(t=>t.flatMap(n=>{if(n.content.match(/^\s+$/)...
  function qu (line 12) | function qu(e){return e.map(t=>{const n=[];for(const a of t){if(n.length...
  function zu (line 12) | function zu(e,t,n){const a={meta:{},options:n,codeToHast:(i,s)=>En(e,i,s...
  function qa (line 12) | function qa(e){if(e?.[Rr])return e;const t={...e};t.tokenColors&&!t.sett...
  function Bu (line 12) | async function Bu(e){return Array.from(new Set((await Promise.all(e.filt...
  function Gu (line 12) | async function Gu(e){return(await Promise.all(e.map(async n=>lu(n)?null:...
  class st (line 12) | class st extends Error{constructor(t){super(t),this.name="ShikiError"}}
    method constructor (line 12) | constructor(t){super(t),this.name="ShikiError"}
  class Uu (line 12) | class Uu extends Uc{constructor(t,n,a,r={}){super(t),this._resolver=t,th...
    method constructor (line 12) | constructor(t,n,a,r={}){super(t),this._resolver=t,this._themes=n,this....
    method getTheme (line 12) | getTheme(t){return typeof t=="string"?this._resolvedThemes.get(t):this...
    method loadTheme (line 12) | loadTheme(t){const n=qa(t);return n.name&&(this._resolvedThemes.set(n....
    method getLoadedThemes (line 12) | getLoadedThemes(){return this._loadedThemesCache||(this._loadedThemesC...
    method setTheme (line 12) | setTheme(t){let n=this._textmateThemeCache.get(t);n||(n=fn.createFromR...
    method getGrammar (line 12) | getGrammar(t){if(this._alias[t]){const n=new Set([t]);for(;this._alias...
    method loadLanguage (line 12) | loadLanguage(t){if(this.getGrammar(t.name))return;const n=new Set([......
    method dispose (line 12) | dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedG...
    method loadLanguages (line 12) | loadLanguages(t){for(const r of t)this.resolveEmbeddedLanguages(r);con...
    method getLoadedLanguages (line 12) | getLoadedLanguages(){return this._loadedLanguagesCache||(this._loadedL...
    method resolveEmbeddedLanguages (line 12) | resolveEmbeddedLanguages(t){this._langMap.set(t.name,t),this._langGrap...
  class Hu (line 12) | class Hu{_langs=new Map;_scopeToLang=new Map;_injections=new Map;_onigLi...
    method constructor (line 12) | constructor(t,n){this._onigLib={createOnigScanner:a=>t.createScanner(a...
    method onigLib (line 12) | get onigLib(){return this._onigLib}
    method getLangRegistration (line 12) | getLangRegistration(t){return this._langs.get(t)}
    method loadGrammar (line 12) | loadGrammar(t){return this._scopeToLang.get(t)}
    method addLanguage (line 12) | addLanguage(t){this._langs.set(t.name,t),t.aliases&&t.aliases.forEach(...
    method getInjections (line 12) | getInjections(t){const n=t.split(".");let a=[];for(let r=1;r<=n.length...
  function Wu (line 12) | function Wu(e){Ct+=1,e.warnings!==!1&&Ct>=10&&Ct%10===0&&console.warn(`[...
  function Vu (line 12) | function Vu(e){const t=Wu(e);return{getLastGrammarState:(...n)=>Su(t,......
  function ft (line 12) | function ft(e){if([...e].length!==1)throw new Error(`Expected "${e}" to ...
  function Zu (line 12) | function Zu(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}
  function bt (line 12) | function bt(e,t){if(e==null)throw new Error(t??"Value expected");return e}
  function Yu (line 43) | function Yu(e,t={}){const n={flags:"",...t,rules:{captureGroup:!1,single...
  function Xu (line 43) | function Xu(e,t,n,a){const[r,i]=n;if(n==="["||n==="[^"){const s=Ku(t,n,a...
  function Ku (line 44) | function Ku(e,t,n){const a=[Nr(t[1]==="^",t)];let r=1,i;for(Zn.lastIndex...
  function Qu (line 44) | function Qu(e){if(e[0]==="\\")return Ki(e,{inCharClass:!0});if(e[0]==="[...
  function Ki (line 44) | function Ki(e,{inCharClass:t}){const n=e[1];if(n==="c"||n==="C")return l...
  function Ju (line 44) | function Ju(e){return{type:"Alternator",raw:e}}
  function Tr (line 44) | function Tr(e,t){return{type:"Assertion",kind:e,raw:t}}
  function Qi (line 44) | function Qi(e){return{type:"Backreference",raw:e}}
  function $e (line 44) | function $e(e,t){return{type:"Character",value:e,raw:t}}
  function ep (line 44) | function ep(e){return{type:"CharacterClassClose",raw:e}}
  function tp (line 44) | function tp(e){return{type:"CharacterClassHyphen",raw:e}}
  function np (line 44) | function np(e){return{type:"CharacterClassIntersector",raw:e}}
  function Nr (line 44) | function Nr(e,t){return{type:"CharacterClassOpen",negate:e,raw:t}}
  function He (line 44) | function He(e,t,n={}){return{type:"CharacterSet",kind:e,...n,raw:t}}
  function Ji (line 44) | function Ji(e,t,n={}){return e==="keep"?{type:"Directive",kind:e,raw:t}:...
  function ap (line 44) | function ap(e,t){return{type:"EscapedNumber",inCharClass:e,raw:t}}
  function rp (line 44) | function rp(e){return{type:"GroupClose",raw:e}}
  function rt (line 44) | function rt(e,t,n={}){return{type:"GroupOpen",kind:e,...n,raw:t}}
  function ip (line 44) | function ip(e,t,n,a){return{type:"NamedCallout",kind:e,tag:t,arguments:n...
  function sp (line 44) | function sp(e,t,n,a){return{type:"Quantifier",kind:e,min:t,max:n,raw:a}}
  function op (line 44) | function op(e){return{type:"Subroutine",raw:e}}
  function lp (line 44) | function lp(e){const t=e[1]==="c"?e[2]:e[3];if(!t||!/[A-Za-z]/.test(t))t...
  function up (line 44) | function up(e,t){let{on:n,off:a}=/^\(\?(?<on>[imx]*)(?:-(?<off>[-imx]*))...
  function pp (line 44) | function pp(e){const t=/\(\*(?<name>[A-Za-z_]\w*)?(?:\[(?<tag>(?:[A-Za-z...
  function Or (line 44) | function Or(e){let t=null,n,a;if(e[0]==="{"){const{minStr:r,maxStr:i}=/^...
  function dp (line 44) | function dp(e){const t=e[1].toLowerCase();return He({d:"digit",h:"hex",s...
  function mp (line 44) | function mp(e){const{p:t,neg:n,value:a}=/^\\(?<p>[pP])\{(?<neg>\^?)(?<va...
  function Lr (line 44) | function Lr(e){const t={};return e.includes("i")&&(t.ignoreCase=!0),e.in...
  function hp (line 44) | function hp(e){const t={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii...
  function gp (line 44) | function gp(e){if(new RegExp("^(?:\\\\u(?!\\p{AHex}{4})|\\\\x(?!\\p{AHex...
  function fp (line 44) | function fp(e,t){const{raw:n,inCharClass:a}=e,r=n.slice(1);if(!a&&(r!=="...
  function bp (line 44) | function bp(e){const t=[],n=new RegExp(za,"gy");let a;for(;a=n.exec(e);)...
  function es (line 44) | function es(e,t){if(!Array.isArray(e.body))throw new Error("Expected nod...
  function _p (line 44) | function _p(e){return yp.has(e.type)}
  function ts (line 44) | function ts(e,t={}){const n={flags:"",normalizeUnknownPropertyNames:!1,s...
  function vp (line 44) | function vp({kind:e}){return ba(bt({"^":"line_start",$:"line_end","\\A":...
  function wp (line 44) | function wp({raw:e},t){const n=/^\\k[<']/.test(e),a=n?e.slice(3,-1):e.sl...
  function xp (line 44) | function xp(e,t,n){const{tokens:a,walk:r}=t,i=t.parent,s=i.body.at(-1),c...
  function kp (line 44) | function kp({negate:e},t,n){const{tokens:a,walk:r}=t,i=a[t.nextIndex],s=...
  function Cp (line 44) | function Cp({kind:e,negate:t,value:n},a){const{normalizeUnknownPropertyN...
  function Fp (line 44) | function Fp(e,t,n){const{tokens:a,capturingGroups:r,namedGroupsByName:i,...
  function Ep (line 44) | function Ep({kind:e,min:t,max:n},a){const r=a.parent,i=r.body.at(-1);if(...
  function $p (line 44) | function $p({raw:e},t){const{capturingGroups:n,subroutines:a}=t;let r=e....
  function jp (line 44) | function jp(e,t){return{type:"AbsenceFunction",kind:e,body:Gt(t?.body)}}
  function Ze (line 44) | function Ze(e){return{type:"Alternative",body:is(e?.body)}}
  function ba (line 44) | function ba(e,t){const n={type:"Assertion",kind:e};return(e==="word_boun...
  function _a (line 44) | function _a(e,t){const n=!!t?.orphan;return{type:"Backreference",ref:e,....
  function ns (line 44) | function ns(e,t){const n={name:void 0,isSubroutined:!1,...t};if(n.name!=...
  function Tn (line 44) | function Tn(e,t){const n={useLastValid:!1,...t};if(e>1114111){const a=e....
  function mn (line 44) | function mn(e){const t={kind:"union",negate:!1,...e};return{type:"Charac...
  function Sp (line 44) | function Sp(e,t){if(t.value<e.value)throw new Error("Character class ran...
  function ya (line 44) | function ya(e,t){const n=!!t?.negate,a={type:"CharacterSet",kind:e};retu...
  function Ap (line 44) | function Ap(e,t={}){if(e==="keep")return{type:"Directive",kind:e};if(e==...
  function Rp (line 44) | function Rp(e){return{type:"Flags",...e}}
  function de (line 44) | function de(e){const t=e?.atomic,n=e?.flags;if(t&&n)throw new Error("Ato...
  function Ge (line 44) | function Ge(e){const t={behind:!1,negate:!1,...e};return{type:"Lookaroun...
  function Tp (line 44) | function Tp(e,t,n){return{type:"NamedCallout",kind:e,tag:t,arguments:n}}
  function Np (line 44) | function Np(e,t){const n=!!t?.negate;if(!Ma.has(e))throw new Error(`Inva...
  function as (line 44) | function as(e,t,n,a){if(t>n)throw new Error("Invalid reversed quantifier...
  function Ip (line 44) | function Ip(e,t){return{type:"Regex",body:Gt(t?.body),flags:e}}
  function rs (line 44) | function rs(e){return{type:"Subroutine",ref:e}}
  function it (line 44) | function it(e,t){const n={negate:!1,normalizeUnknownPropertyNames:!1,ski...
  function Op (line 44) | function Op({flags:e,kind:t,name:n,negate:a,number:r}){switch(t){case"ab...
  function Gt (line 44) | function Gt(e){if(e===void 0)e=[Ze()];else if(!Array.isArray(e)||!e.leng...
  function is (line 44) | function is(e){if(e===void 0)e=[];else if(!Array.isArray(e)||!e.every(t=...
  function Dr (line 44) | function Dr(e){return e.type==="LookaroundAssertion"&&e.kind==="lookahead"}
  function Pr (line 44) | function Pr(e){return e.type==="LookaroundAssertion"&&e.kind==="lookbehi...
  function Lp (line 44) | function Lp(e){return/^[\p{Alpha}\p{Pc}][^)]*$/u.test(e)}
  function Dp (line 44) | function Dp(e){return e.trim().replace(/[- _]+/g,"_").replace(/[A-Z][a-z...
  function Nn (line 44) | function Nn(e){return e.replace(/[- _]+/g,"").toLowerCase()}
  function qr (line 44) | function qr(e,t){return bt(e,`${t?.type==="Character"&&t.value===93?"Emp...
  function Mr (line 44) | function Mr(e){return bt(e,"Unclosed group")}
  function At (line 44) | function At(e,t,n=null){function a(i,s){for(let c=0;c<i.length;c++){cons...
  function cn (line 44) | function cn(e){if(!Array.isArray(e))throw new Error("Container expected"...
  function tt (line 44) | function tt(e){if(typeof e!="number")throw new Error("Numeric key expect...
  function qp (line 44) | function qp(e,t){for(let n=0;n<e.length;n++)e[n]>=t&&e[n]++}
  function Mp (line 44) | function Mp(e,t,n,a){return e.slice(0,t)+a+e.slice(t+n.length)}
  function Ba (line 44) | function Ba(e,t,n,a){const r=new RegExp(String.raw`${t}|(?<$skip>\[\^?|\...
  function ss (line 44) | function ss(e,t,n,a){Ba(e,t,n,a)}
  function zp (line 44) | function zp(e,t,n=0,a){if(!new RegExp(t,"su").test(e))return null;const ...
  function ln (line 44) | function ln(e,t,n){return!!zp(e,t,0,n)}
  function Bp (line 44) | function Bp(e,t){const n=/\\?./gsu;n.lastIndex=t;let a=e.length,r=0,i=1,...
  function Gp (line 44) | function Gp(e,t){const n=t?.hiddenCaptures??[];let a=t?.captureTransfers...
  function Up (line 59) | function Up(e){if(!new RegExp(`${os}\\+`).test(e))return{pattern:e};cons...
  function Wp (line 59) | function Wp(e,t){const{hiddenCaptures:n,mode:a}={hiddenCaptures:[],mode:...
  function Br (line 59) | function Br(e){const t=`Max depth must be integer between 2 and 100; use...
  function Gr (line 59) | function Gr(e,t,n,a,r,i,s){const c=new Set;a&&ss(e+t,In,({groups:{captur...
  function Ur (line 59) | function Ur(e,t,n,a,r,i,s){const o=u=>t==="forward"?u+2:n-u+2-1;let l=""...
  function Vp (line 59) | function Vp(e,t){for(let n=0;n<e.length;n++)e[n]>=t&&e[n]++}
  function Hr (line 59) | function Hr(e,t,n,a,r,i){if(e.size&&a){let s=0;ss(t,cs,()=>s++,oe.DEFAUL...
  function $n (line 59) | function $n(e,{enable:t,disable:n}){return{dotAll:!n?.dotAll&&!!(t?.dotA...
  function Dt (line 59) | function Dt(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}
  function wa (line 59) | function wa(e,t){return Wr[e]>=Wr[t]}
  function Zp (line 59) | function Zp(e,t){if(e==null)throw new Error(t??"Value expected");return e}
  function ls (line 59) | function ls(e={}){if({}.toString.call(e)!=="[object Object]")throw new E...
  function us (line 59) | function us(e){if(Kp.has(e))return[e];const t=new Set,n=e.toLowerCase(),...
  function nd (line 149) | function nd(e,t){const n=[];for(let a=e;a<=t;a++)n.push(a);return n}
  function Te (line 149) | function Te(e){const t=U(e);return[t.toLowerCase(),t]}
  function Kn (line 149) | function Kn(e,t){return nd(e,t).map(n=>Te(n))}
  function ad (line 149) | function ad(e,t){const n={accuracy:"default",asciiWordBoundaries:!1,avoi...
  method AbsenceFunction (line 149) | AbsenceFunction({node:e,parent:t,replaceWith:n}){const{body:a,kind:r}=e;...
  method enter (line 149) | enter({node:e,parent:t,key:n},{flagDirectivesByAlt:a}){const r=e.body.fi...
  method exit (line 149) | exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){const n=hs(t...
  method Assertion (line 149) | Assertion({node:e,parent:t,key:n,container:a,root:r,remove:i,replaceWith...
  method Backreference (line 149) | Backreference({node:e},{jsGroupNameMap:t}){let{ref:n}=e;typeof n=="strin...
  method CapturingGroup (line 149) | CapturingGroup({node:e},{jsGroupNameMap:t,subroutineRefMap:n}){let{name:...
  method CharacterClassRange (line 149) | CharacterClassRange({node:e,parent:t,replaceWith:n}){if(t.kind==="inters...
  method CharacterSet (line 149) | CharacterSet({node:e,parent:t,replaceWith:n},{accuracy:a,minTargetEs2024...
  method Directive (line 152) | Directive({node:e,parent:t,root:n,remove:a,replaceWith:r,removeAllPrevSi...
  method Flags (line 152) | Flags({node:e,parent:t}){if(e.posixIsAscii)throw new Error('Unsupported ...
  method Group (line 152) | Group({node:e}){if(!e.flags)return;const{enable:t,disable:n}=e.flags;t?....
  method LookaroundAssertion (line 152) | LookaroundAssertion({node:e},t){const{kind:n}=e;n==="lookbehind"&&(t.pas...
  method NamedCallout (line 152) | NamedCallout({node:e,parent:t,replaceWith:n}){const{kind:a}=e;if(a==="fa...
  method Quantifier (line 152) | Quantifier({node:e}){if(e.body.type==="Quantifier"){const t=de();t.body[...
  method enter (line 152) | enter({node:e},{supportedGNodes:t}){const n=[];let a=!1,r=!1;for(const i...
  method exit (line 152) | exit(e,{accuracy:t,passedLookbehind:n,strategy:a}){if(t==="strict"&&n&&a...
  method Subroutine (line 152) | Subroutine({node:e},{jsGroupNameMap:t}){let{ref:n}=e;typeof n=="string"&...
  method Backreference (line 152) | Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByRefe...
  method enter (line 152) | enter({node:e,parent:t,replaceWith:n,skip:a},{groupOriginByCopy:r,groups...
  method exit (line 152) | exit({node:e},{openRefs:t}){t.delete(e.number)}
  method enter (line 152) | enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=$n...
  method exit (line 152) | exit(e,t){t.currentFlags=t.prevFlags}
  method Subroutine (line 152) | Subroutine({node:e,parent:t,replaceWith:n},a){const{isRecursive:r,ref:i}...
  method Backreference (line 152) | Backreference({node:e,parent:t,replaceWith:n},a){if(e.orphan){a.highestO...
  method CapturingGroup (line 152) | CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,e.name&&t.grou...
  method exit (line 152) | exit({node:e},t){const n=Math.max(t.highestOrphanBackref-t.numCapturesTo...
  method Subroutine (line 152) | Subroutine({node:e},t){!e.isRecursive||e.ref===0||(e.ref=t.reffedNodesBy...
  function ds (line 152) | function ds(e){At(e,{"*"({node:t,parent:n}){t.parent=n}})}
  function od (line 152) | function od(e,t){return e.dotAll===t.dotAll&&e.ignoreCase===t.ignoreCase}
  function cd (line 152) | function cd(e,t){let n=t;do{if(n.type==="Regex")return!1;if(n.type==="Al...
  function ms (line 152) | function ms(e,t,n,a){const r=Array.isArray(e)?[]:{};for(const[i,s]of Obj...
  function Vr (line 152) | function Vr(e){const t=rs(e);return t.isRecursive=!0,t}
  function ld (line 152) | function ld(e,t){const n=[];for(;e=e.parent;)(!t||t(e))&&n.push(e);retur...
  function Qn (line 152) | function Qn(e,t){if(t.has(e))return t.get(e);const n=`$${t.size}_${e.rep...
  function hs (line 152) | function hs(e){const t=["dotAll","ignoreCase"],n={enable:{},disable:{}};...
  function ud (line 152) | function ud({dotAll:e,ignoreCase:t}){const n={};return(e||t)&&(n.enable=...
  function gs (line 152) | function gs(e){if(!e)throw new Error("Node expected");const{body:t}=e;re...
  function fs (line 152) | function fs(e){const t=e.find(n=>n.kind==="search_start"||md(n,{negate:!...
  function bs (line 152) | function bs(e,t){const n=gs(e)??[];for(const a of n)if(a===t||bs(a,t))re...
  function pd (line 152) | function pd({type:e}){return e==="Assertion"||e==="Directive"||e==="Look...
  function dd (line 152) | function dd(e){const t=["Character","CharacterClass","CharacterSet"];ret...
  function md (line 152) | function md(e,t){const n={negate:null,...t};return e.type==="LookaroundA...
  function Jn (line 152) | function Jn(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}
  function Ee (line 152) | function Ee(e,t){const a=ts(e,{...t,unicodePropertyMap:Ga}).body;return ...
  function ea (line 152) | function ea(e,t){return e.negate=t,e}
  function Ne (line 152) | function Ne(e,t){return e.parent=t,e}
  function M (line 152) | function M(e,t){return ds(e),e.parent=t,e}
  function hd (line 152) | function hd(e,t){const n=ls(t),a=wa(n.target,"ES2024"),r=wa(n.target,"ES...
  method enter (line 152) | enter({node:e},t){if(Yr(e)){const n=t.getCurrentModI();t.pushModI(e.flag...
  method exit (line 152) | exit({node:e},t){Yr(e)&&t.popModI()}
  method Backreference (line 152) | Backreference(e,t){t.setHasCasedChar()}
  method Character (line 152) | Character({node:e},t){Ua(U(e.value))&&t.setHasCasedChar()}
  method CharacterClassRange (line 152) | CharacterClassRange({node:e,skip:t},n){t(),_s(e,{firstOnly:!0}).length&&...
  method CharacterSet (line 152) | CharacterSet({node:e},t){e.kind==="property"&&ps.has(e.value)&&t.setHasC...
  method Alternative (line 152) | Alternative({body:e},t,n){return e.map(n).join("")}
  method Assertion (line 152) | Assertion({kind:e,negate:t}){if(e==="string_end")return"$";if(e==="strin...
  method Backreference (line 152) | Backreference({ref:e},t){if(typeof e!="number")throw new Error("Unexpect...
  method CapturingGroup (line 152) | CapturingGroup(e,t,n){const{body:a,name:r,number:i}=e,s={ignoreCase:t.cu...
  method Character (line 152) | Character({value:e},t){const n=U(e),a=nt(e,{escDigit:t.lastNode.type==="...
  method CharacterClass (line 152) | CharacterClass(e,t,n){const{kind:a,negate:r,parent:i}=e;let{body:s}=e;if...
  method CharacterClassRange (line 152) | CharacterClassRange(e,t){const n=e.min.value,a=e.max.value,r={escDigit:!...
  method CharacterSet (line 152) | CharacterSet({kind:e,negate:t,value:n,key:a},r){if(e==="dot")return r.cu...
  method Flags (line 152) | Flags(e,t){return(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":...
  method Group (line 152) | Group({atomic:e,body:t,flags:n,parent:a},r,i){const s=r.currentFlags;n&&...
  method LookaroundAssertion (line 152) | LookaroundAssertion({body:e,kind:t,negate:n},a,r){return`(?${`${t==="loo...
  method Quantifier (line 152) | Quantifier(e,t,n){return n(e.body)+kd(e)}
  method Subroutine (line 152) | Subroutine({isRecursive:e,ref:t},n){if(!e)throw new Error("Unexpected no...
  function Ua (line 152) | function Ua(e){return vd.test(e)}
  function _s (line 152) | function _s(e,t){const n=!!t?.firstOnly,a=e.min.value,r=e.max.value,i=[]...
  function nt (line 152) | function nt(e,{escDigit:t,inCharClass:n,useFlagV:a}){if(Zr.has(e))return...
  function wd (line 152) | function wd(e){const t=e.map(r=>r.codePointAt(0)).sort((r,i)=>r-i),n=[];...
  function xd (line 152) | function xd(e,t,n){if(e)return">";let a="";if(t&&n){const{enable:r,disab...
  function kd (line 152) | function kd({kind:e,max:t,min:n}){let a;return!n&&t===1?a="?":!n&&t===1/...
  function Yr (line 152) | function Yr({type:e}){return e==="CapturingGroup"||e==="Group"||e==="Loo...
  function Cd (line 152) | function Cd(e){return e>47&&e<58}
  function Xr (line 152) | function Xr({type:e,value:t}){return e==="Character"&&t===45}
  method source (line 152) | get source(){return this.#a||"(?:)"}
  method constructor (line 152) | constructor(t,n,a){const r=!!a?.lazyCompile;if(t instanceof RegExp){if(a...
  method exec (line 152) | exec(t){if(!this.#e){const{lazyCompile:r,...i}=this.rawOptions;this.#e=n...
  method #i (line 152) | #i(t){this.#e.lastIndex=this.lastIndex;const n=super.exec.call(this.#e,t...
  function Ed (line 152) | function Ed(e,t,n,a){if(e.index+=t,e.input=n,a){const r=e.indices;for(le...
  function $d (line 152) | function $d(e,t){const n=new Map;for(const a of e)n.set(a,{hidden:!0});f...
  function jd (line 152) | function jd(e){const t=/(?<capture>\((?:\?<(?![=!])(?<name>[^>]+)>|(?!\?...
  function Sd (line 152) | function Sd(e,t){const n=Ad(e,t);return n.options?new Fd(n.pattern,n.fla...
  function Ad (line 152) | function Ad(e,t){const n=ls(t),a=ts(e,{flags:n.flags,normalizeUnknownPro...
  class Rd (line 152) | class Rd{constructor(t,n={}){this.patterns=t,this.options=n;const{forgiv...
    method constructor (line 152) | constructor(t,n={}){this.patterns=t,this.options=n;const{forgiving:a=!...
    method findNextMatchSync (line 152) | findNextMatchSync(t,n,a){const r=typeof t=="string"?t:t.content,i=[];f...
  function Td (line 152) | function Td(e,t){return Sd(e,{global:!0,hasIndices:!0,lazyCompileLength:...
  function Nd (line 152) | function Nd(e={}){const t=Object.assign({target:"auto",cache:new Map},e)...
  method pre (line 152) | pre(s){this.addClassToHast(s,["bg-transparent!",n?"truncate":"w-fit min-...
  method line (line 152) | line(s,c){if(!a)return;const o=r+c-1,l=i===c-1,u={type:"element",tagName...

FILE: resources/js/scripts.js
  method pre (line 62) | pre(node) {
  method line (line 65) | line(node, line) {

FILE: src/Commands/InstallCommand.php
  class InstallCommand (line 12) | #[AsCommand(name: 'exceptions:install')]
    method handle (line 19) | public function handle(): int
    method askToStar (line 37) | protected function askToStar(): void

FILE: src/Concerns/HasLabels.php
  type HasLabels (line 9) | trait HasLabels
    method modelLabel (line 19) | public function modelLabel(string | Closure | null $label): static
    method pluralModelLabel (line 26) | public function pluralModelLabel(string | Closure | null $label): static
    method titleCaseModelLabel (line 33) | public function titleCaseModelLabel(bool | Closure $condition = true):...
    method globallySearchable (line 40) | public function globallySearchable(bool | Closure $condition = true): ...
    method getModelLabel (line 47) | public function getModelLabel(): string
    method getPluralModelLabel (line 52) | public function getPluralModelLabel(): string
    method hasTitleCaseModelLabel (line 57) | public function hasTitleCaseModelLabel(): bool
    method canGloballySearch (line 62) | public function canGloballySearch(): bool

FILE: src/Concerns/HasModelPruneInterval.php
  type HasModelPruneInterval (line 9) | trait HasModelPruneInterval
    method modelPruneInterval (line 13) | public function modelPruneInterval(Carbon $interval): static
    method getModelPruneInterval (line 20) | public function getModelPruneInterval(): Carbon

FILE: src/Concerns/HasNavigation.php
  type HasNavigation (line 11) | trait HasNavigation
    method cluster (line 39) | public function cluster(string | Closure | null $cluster): static
    method navigationBadge (line 46) | public function navigationBadge(bool | Closure $condition = true): static
    method navigationBadgeColor (line 53) | public function navigationBadgeColor(string | array | Closure $color):...
    method navigationGroup (line 60) | public function navigationGroup(string | Closure | null $group): static
    method navigationParentItem (line 67) | public function navigationParentItem(string | Closure | null $item): s...
    method navigationIcon (line 74) | public function navigationIcon(string | Closure | null $icon): static
    method activeNavigationIcon (line 81) | public function activeNavigationIcon(string | Closure | null $icon): s...
    method navigationLabel (line 88) | public function navigationLabel(string | Closure | null $label): static
    method navigationSort (line 95) | public function navigationSort(int | Closure | null $sort): static
    method slug (line 102) | public function slug(string | Closure | null $slug): static
    method registerNavigation (line 109) | public function registerNavigation(bool | Closure $shouldRegisterNavig...
    method subNavigationPosition (line 116) | public function subNavigationPosition(SubNavigationPosition | Closure ...
    method getSubNavigationPosition (line 124) | public function getSubNavigationPosition(): SubNavigationPosition
    method shouldEnableNavigationBadge (line 129) | public function shouldEnableNavigationBadge(): bool
    method getNavigationBadgeColor (line 134) | public function getNavigationBadgeColor(): string | array | null
    method getNavigationGroup (line 139) | public function getNavigationGroup(): ?string
    method getNavigationParentItem (line 144) | public function getNavigationParentItem(): ?string
    method getNavigationIcon (line 149) | public function getNavigationIcon(): string
    method getActiveNavigationIcon (line 154) | public function getActiveNavigationIcon(): ?string
    method getNavigationLabel (line 159) | public function getNavigationLabel(): string
    method getNavigationSort (line 164) | public function getNavigationSort(): ?int
    method shouldRegisterNavigation (line 169) | public function shouldRegisterNavigation(): bool
    method getSlug (line 174) | public function getSlug(): ?string
    method getCluster (line 182) | public function getCluster(): ?string

FILE: src/Concerns/HasTenantScope.php
  type HasTenantScope (line 9) | trait HasTenantScope
    method scopeToTenant (line 17) | public function scopeToTenant(bool | Closure $condition = true): static
    method tenantOwnershipRelationshipName (line 24) | public function tenantOwnershipRelationshipName(string | Closure | nul...
    method tenantRelationshipName (line 31) | public function tenantRelationshipName(string | Closure | null $relati...
    method isScopedToTenant (line 38) | public function isScopedToTenant(): bool
    method getTenantRelationshipName (line 43) | public function getTenantRelationshipName(): ?string
    method getTenantOwnershipRelationshipName (line 48) | public function getTenantOwnershipRelationshipName(): ?string

FILE: src/Facades/FilamentExceptions.php
  class FilamentExceptions (line 27) | class FilamentExceptions extends Facade
    method getFacadeAccessor (line 29) | protected static function getFacadeAccessor(): string

FILE: src/FilamentExceptions.php
  class FilamentExceptions (line 15) | class FilamentExceptions
    method report (line 26) | public static function report(Throwable $throwable): void
    method shouldCapture (line 89) | public static function shouldCapture(Throwable $exception): bool
    method store (line 113) | public static function store(array $data): bool
    method cluster (line 130) | public static function cluster(string $cluster): void
    method getCluster (line 135) | public static function getCluster(): ?string
    method getModel (line 140) | public static function getModel(): ?string
    method model (line 145) | public static function model(string $model): void
    method stopRecording (line 150) | public static function stopRecording(): void
    method startRecording (line 155) | public static function startRecording(): void
    method isRecording (line 160) | public static function isRecording(): bool
    method recordUsing (line 165) | public static function recordUsing(?Closure $callback): void
    method renderCss (line 170) | public static function renderCss(): string
    method renderJs (line 226) | public static function renderJs(): string

FILE: src/FilamentExceptionsPlugin.php
  class FilamentExceptionsPlugin (line 17) | class FilamentExceptionsPlugin implements Plugin
    method make (line 25) | public static function make(): static
    method get (line 30) | public static function get(): static
    method getId (line 38) | public function getId(): string
    method register (line 43) | public function register(Panel $panel): void
    method boot (line 56) | public function boot(Panel $panel): void {}

FILE: src/FilamentExceptionsServiceProvider.php
  class FilamentExceptionsServiceProvider (line 14) | class FilamentExceptionsServiceProvider extends PackageServiceProvider
    method configurePackage (line 16) | public function configurePackage(Package $package): void
    method packageBooted (line 26) | public function packageBooted(): void

FILE: src/Models/Exception.php
  class Exception (line 34) | class Exception extends Model
    method prunable (line 42) | public function prunable(): Builder
    method casts (line 47) | protected function casts(): array

FILE: src/Resources/ExceptionResource.php
  class ExceptionResource (line 20) | class ExceptionResource extends Resource
    method getCluster (line 22) | public static function getCluster(): ?string
    method getPlugin (line 27) | public static function getPlugin(): FilamentExceptionsPlugin
    method getModel (line 32) | public static function getModel(): string
    method getModelLabel (line 37) | public static function getModelLabel(): string
    method getPluralModelLabel (line 42) | public static function getPluralModelLabel(): string
    method getActiveNavigationIcon (line 47) | public static function getActiveNavigationIcon(): ?string
    method getNavigationGroup (line 52) | public static function getNavigationGroup(): ?string
    method getNavigationLabel (line 57) | public static function getNavigationLabel(): string
    method getNavigationIcon (line 62) | public static function getNavigationIcon(): string
    method getSlug (line 67) | public static function getSlug(?Panel $panel = null): string
    method getNavigationBadge (line 72) | public static function getNavigationBadge(): ?string
    method shouldRegisterNavigation (line 79) | public static function shouldRegisterNavigation(): bool
    method getNavigationSort (line 84) | public static function getNavigationSort(): ?int
    method isScopedToTenant (line 89) | public static function isScopedToTenant(): bool
    method getTenantRelationshipName (line 94) | public static function getTenantRelationshipName(): string
    method getTenantOwnershipRelationshipName (line 99) | public static function getTenantOwnershipRelationshipName(): string
    method canGloballySearch (line 104) | public static function canGloballySearch(): bool
    method table (line 109) | public static function table(Table $table): Table
    method getPages (line 169) | public static function getPages(): array

FILE: src/Resources/ExceptionResource/Pages/ListExceptions.php
  class ListExceptions (line 10) | class ListExceptions extends ListRecords
    method getTableEmptyStateIcon (line 14) | protected function getTableEmptyStateIcon(): ?string
    method getTableEmptyStateHeading (line 19) | protected function getTableEmptyStateHeading(): ?string

FILE: src/Resources/ExceptionResource/Pages/ViewException.php
  class ViewException (line 15) | class ViewException extends ViewRecord
    method getStoredException (line 26) | public function getStoredException(): StoredException
    method getHeading (line 42) | public function getHeading(): string | Htmlable | null
    method getHeader (line 47) | public function getHeader(): ?View
    method getMaxContentWidth (line 52) | public function getMaxContentWidth(): Width | string | null
    method getPageClasses (line 57) | public function getPageClasses(): array
    method getBreadcrumbs (line 64) | public function getBreadcrumbs(): array

FILE: src/StoredException.php
  class StoredException (line 19) | class StoredException
    method __construct (line 26) | public function __construct(
    method title (line 36) | public function title(): string
    method message (line 44) | public function message(): string
    method class (line 52) | public function class(): string
    method fullClass (line 60) | public function fullClass(): string
    method code (line 68) | public function code(): int | string
    method httpStatusCode (line 76) | public function httpStatusCode(): int
    method frames (line 86) | public function frames(): Collection
    method frameGroups (line 134) | public function frameGroups(): array
    method request (line 157) | public function request(): Request
    method requestHeaders (line 167) | public function requestHeaders(): array
    method requestBody (line 180) | public function requestBody(): ?string
    method applicationRouteContext (line 200) | public function applicationRouteContext(): array
    method applicationRouteParametersContext (line 208) | public function applicationRouteParametersContext(): ?string
    method applicationQueries (line 224) | public function applicationQueries(): array
    method record (line 238) | public function record(): ExceptionModel
    method markdown (line 246) | public function markdown(): string
    method generateMarkdown (line 255) | protected function generateMarkdown(): string
    method createRequest (line 339) | protected function createRequest(): Request
    method decodeTrace (line 364) | protected function decodeTrace(): array
    method buildClassMap (line 386) | protected function buildClassMap(): void

FILE: src/StoredFrame.php
  class StoredFrame (line 21) | class StoredFrame
    method __construct (line 31) | public function __construct(
    method source (line 41) | public function source(): string
    method editorHref (line 51) | public function editorHref(): string
    method class (line 59) | public function class(): ?string
    method file (line 74) | public function file(): string
    method line (line 88) | public function line(): int
    method operator (line 105) | public function operator(): string
    method callable (line 113) | public function callable(): string
    method args (line 126) | public function args(): array
    method snippet (line 149) | public function snippet(): string
    method isFromVendor (line 167) | public function isFromVendor(): bool
    method previous (line 178) | public function previous(): ?StoredFrame
    method markAsMain (line 186) | public function markAsMain(): void
    method isMain (line 194) | public function isMain(): bool

FILE: tests/AdminPanelProvider.php
  class AdminPanelProvider (line 21) | class AdminPanelProvider extends PanelProvider
    method panel (line 23) | public function panel(Panel $panel): Panel

FILE: tests/TestCase.php
  class TestCase (line 20) | class TestCase extends Orchestra
    method getPackageProviders (line 24) | protected function getPackageProviders($app)
    method defineDatabaseMigrations (line 43) | protected function defineDatabaseMigrations(): void
    method getEnvironmentSetUp (line 48) | public function getEnvironmentSetUp($app)
Condensed preview — 93 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,425K chars).
[
  {
    "path": ".blade.format.json",
    "chars": 61,
    "preview": "{\n    \"useLaravelPint\": true,\n    \"pintCacheEnabled\": false\n}"
  },
  {
    "path": ".editorconfig",
    "chars": 221,
    "preview": "root = true\n\n[*]\ncharset = utf-8\nindent_size = 4\nindent_style = space\nend_of_line = lf\ninsert_final_newline = false\ntrim"
  },
  {
    "path": ".gitattributes",
    "chars": 671,
    "preview": "# Path-based git attributes\n# https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html\n\n# Ignore all test and"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 21,
    "preview": "github: bezhanSalleh\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 652,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Ask a question\n    url: https://github.com/bezhanSalleh/filament-ex"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 321,
    "preview": "# Please see the documentation for all configuration options:\n# https://help.github.com/github/administering-a-repositor"
  },
  {
    "path": ".github/workflows/dependabot-auto-merge.yml",
    "chars": 1054,
    "preview": "name: dependabot-auto-merge\non: pull_request_target\n\npermissions:\n  pull-requests: write\n  contents: write\n\njobs:\n  depe"
  },
  {
    "path": ".github/workflows/fix-php-code-style-issues.yml",
    "chars": 449,
    "preview": "name: Fix PHP code style issues\n\non: [push]\n\njobs:\n  php-code-styling:\n    runs-on: ubuntu-latest\n\n    steps:\n      - na"
  },
  {
    "path": ".github/workflows/run-tests.yml",
    "chars": 1392,
    "preview": "name: run-tests\n\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\njobs:\n  test:\n    runs-on: ${{ m"
  },
  {
    "path": ".github/workflows/update-changelog.yml",
    "chars": 645,
    "preview": "name: \"Update Changelog\"\n\non:\n  release:\n    types: [released]\n\njobs:\n  update:\n    runs-on: ubuntu-latest\n\n    steps:\n "
  },
  {
    "path": ".gitignore",
    "chars": 155,
    "preview": ".idea\n.phpunit.result.cache\nbuild\ncomposer.lock\ncoverage\ndocs\nphpunit.xml\nphpstan.neon\ntestbench.yaml\nvendor\nnode_module"
  },
  {
    "path": ".prettierignore",
    "chars": 72,
    "preview": "*.md\n**/.git\n**/.github\n**/dist\n**/vendor\n**/node_modules\ncomposer.lock\n"
  },
  {
    "path": ".prettierrc",
    "chars": 465,
    "preview": "{\n    \"semi\": true,\n    \"singleQuote\": true,\n    \"singleAttributePerLine\": false,\n    \"htmlWhitespaceSensitivity\": \"css\""
  },
  {
    "path": "CHANGELOG.md",
    "chars": 10676,
    "preview": "# Changelog\n\nAll notable changes to `filament-exceptions` will be documented in this file.\n\n## 4.2.0 - 2026-03-29\n\n### W"
  },
  {
    "path": "LICENSE.md",
    "chars": 1100,
    "preview": "The MIT License (MIT)\n\nCopyright (c) bezhanSalleh <bezhan_salleh@yahoo.com>\n\nPermission is hereby granted, free of charg"
  },
  {
    "path": "README.md",
    "chars": 7893,
    "preview": "<a href=\"https://github.com/bezhanSalleh/filament-exceptions\" class=\"filament-hidden\">\n<img style=\"width: 100%; max-widt"
  },
  {
    "path": "bootstrap/app.php",
    "chars": 642,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nuse Filament\\FilamentServiceProvider;\nuse Filament\\Support\\SupportServiceProvider;\nuse "
  },
  {
    "path": "composer.json",
    "chars": 2811,
    "preview": "{\n    \"name\": \"bezhansalleh/filament-exceptions\",\n    \"description\": \"A Simple & Beautiful Pluggable Exception Viewer fo"
  },
  {
    "path": "database/factories/ModelFactory.php",
    "chars": 310,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Database\\Factories;\n\nuse Illuminate\\Database\\"
  },
  {
    "path": "database/migrations/create_filament_exceptions_table.php.stub",
    "chars": 1587,
    "preview": "<?php\n\nuse Illuminate\\Database\\Migrations\\Migration;\nuse Illuminate\\Database\\Schema\\Blueprint;\nuse Illuminate\\Support\\Fa"
  },
  {
    "path": "package.json",
    "chars": 468,
    "preview": "{\n    \"private\": true,\n    \"type\": \"module\",\n    \"engines\": {\n        \"node\": \">=22.19.0\"\n    },\n    \"scripts\": {\n      "
  },
  {
    "path": "phpstan.neon.dist",
    "chars": 561,
    "preview": "\nparameters:\n    level: 5\n    paths:\n        - src\n\n    ignoreErrors:\n        -\n            identifier: argument.unresol"
  },
  {
    "path": "phpunit.xml.dist",
    "chars": 1000,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<phpunit xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSch"
  },
  {
    "path": "phpunit.xml.dist.bak",
    "chars": 1193,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<phpunit\n    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n    xsi:noName"
  },
  {
    "path": "pint.json",
    "chars": 1440,
    "preview": "{\n    \"preset\": \"laravel\",\n    \"notPath\": [\n        \"tests/TestCase.php\",\n        \"tmp\"\n    ],\n    \"rules\": {\n        \"b"
  },
  {
    "path": "rector.php",
    "chars": 513,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nuse Rector\\Config\\RectorConfig;\nuse Rector\\TypeDeclaration\\Rector\\StmtsAwareInterface\\D"
  },
  {
    "path": "resources/css/styles.css",
    "chars": 1295,
    "preview": "@import 'tailwindcss';\n@import 'tw-animate-css';\n@import 'tippy.js/dist/tippy.css';\n@import 'tippy.js/animations/shift-a"
  },
  {
    "path": "resources/dist/scripts.js",
    "chars": 669297,
    "preview": "var J=\"top\",le=\"bottom\",ue=\"right\",ee=\"left\",ka=\"auto\",Pt=[J,le,ue,ee],lt=\"start\",Rt=\"end\",Ss=\"clippingParents\",Qr=\"view"
  },
  {
    "path": "resources/dist/styles.css",
    "chars": 41430,
    "preview": "@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not "
  },
  {
    "path": "resources/js/scripts.js",
    "chars": 3026,
    "preview": "import tippy from 'tippy.js';\nimport { createHighlighterCoreSync } from 'shiki/core';\nimport { createJavaScriptRegexEngi"
  },
  {
    "path": "resources/lang/cs/filament-exceptions.php",
    "chars": 468,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nreturn [\n\n    'labels' => [\n        'model' => 'Výjimka',\n        'model_plural' => 'Vý"
  },
  {
    "path": "resources/lang/en/filament-exceptions.php",
    "chars": 476,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nreturn [\n\n    'labels' => [\n        'model' => 'Exception',\n        'model_plural' => '"
  },
  {
    "path": "resources/lang/es/filament-exceptions.php",
    "chars": 482,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nreturn [\n\n    'labels' => [\n        'model' => 'Excepción',\n        'model_plural' => '"
  },
  {
    "path": "resources/lang/sk/filament-exceptions.php",
    "chars": 473,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nreturn [\n\n    'labels' => [\n        'model' => 'Výnimka',\n        'model_plural' => 'Vý"
  },
  {
    "path": "resources/views/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "resources/views/components/badge.blade.php",
    "chars": 1986,
    "preview": "@props(['type' => 'default', 'variant' => 'soft'])\n\n@php\n$baseClasses = 'inline-flex w-fit shrink-0 items-center justify"
  },
  {
    "path": "resources/views/components/empty-state.blade.php",
    "chars": 299,
    "preview": "@props(['message'])\n\n<div class=\"bg-white/[2%] border border-neutral-200 dark:border-neutral-800 rounded-md w-full p-5 u"
  },
  {
    "path": "resources/views/components/file-with-line.blade.php",
    "chars": 686,
    "preview": "@props(['frame', 'direction' => 'ltr'])\n\n@php\n    $file = $frame->file();\n    $line = $frame->line();\n@endphp\n\n<div\n    "
  },
  {
    "path": "resources/views/components/formatted-source.blade.php",
    "chars": 527,
    "preview": "@props(['frame'])\n\n@php\n    if ($class = $frame->class()) {\n        $source = $class;\n\n        if ($previous = $frame->p"
  },
  {
    "path": "resources/views/components/frame-code.blade.php",
    "chars": 444,
    "preview": "@props(['code', 'highlightedLine'])\n\n<div\n    class=\"text-sm rounded-b-lg bg-neutral-50 border-t border-neutral-100 dark"
  },
  {
    "path": "resources/views/components/frame.blade.php",
    "chars": 2212,
    "preview": "@props(['frame'])\n\n<div\n    x-data=\"{\n        expanded: {{ $frame->isMain() ? 'true' : 'false' }},\n        hasCode: {{ $"
  },
  {
    "path": "resources/views/components/header.blade.php",
    "chars": 1774,
    "preview": "@props(['exception'])\n\n<div class=\"flex flex-col pt-8 sm:pt-16 overflow-x-auto\">\n    <div class=\"flex flex-col gap-5 mb-"
  },
  {
    "path": "resources/views/components/http-method.blade.php",
    "chars": 377,
    "preview": "@props(['method'])\n\n@php\n$type = match ($method) {\n    'GET', 'OPTIONS', 'ANY' => 'default',\n    'POST' => 'success',\n  "
  },
  {
    "path": "resources/views/components/icons/alert.blade.php",
    "chars": 1933,
    "preview": "<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {{ $attributes }}>\n    <g"
  },
  {
    "path": "resources/views/components/icons/check.blade.php",
    "chars": 186,
    "preview": "<svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" {{ $attributes }}>\n    <path stroke-linecap=\"round\" stroke-li"
  },
  {
    "path": "resources/views/components/icons/chevron-left.blade.php",
    "chars": 235,
    "preview": "<svg width=\"6\" height=\"10\" viewBox=\"0 0 6 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {{ $attributes }}>\n    <pat"
  },
  {
    "path": "resources/views/components/icons/chevron-right.blade.php",
    "chars": 235,
    "preview": "<svg width=\"6\" height=\"10\" viewBox=\"0 0 6 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {{ $attributes }}>\n    <pat"
  },
  {
    "path": "resources/views/components/icons/chevrons-down-up.blade.php",
    "chars": 601,
    "preview": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"12\" viewBox=\"0 0 8 12\" fill=\"none\" {{ $attributes }}>\n  <g cli"
  },
  {
    "path": "resources/views/components/icons/chevrons-left.blade.php",
    "chars": 335,
    "preview": "<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {{ $attributes }}>\n    <p"
  },
  {
    "path": "resources/views/components/icons/chevrons-right.blade.php",
    "chars": 335,
    "preview": "<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {{ $attributes }}>\n    <p"
  },
  {
    "path": "resources/views/components/icons/chevrons-up-down.blade.php",
    "chars": 570,
    "preview": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" {{ $attributes }}>\n  <g c"
  },
  {
    "path": "resources/views/components/icons/copy.blade.php",
    "chars": 445,
    "preview": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" {{ $attributes }}>\n  <g c"
  },
  {
    "path": "resources/views/components/icons/database.blade.php",
    "chars": 584,
    "preview": "<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {{ $attributes }}>\n    <p"
  },
  {
    "path": "resources/views/components/icons/folder-open.blade.php",
    "chars": 845,
    "preview": "<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {{ $attributes }}>\n    <g"
  },
  {
    "path": "resources/views/components/icons/folder.blade.php",
    "chars": 712,
    "preview": "<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {{ $attributes }}>\n    <p"
  },
  {
    "path": "resources/views/components/icons/globe.blade.php",
    "chars": 799,
    "preview": "<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {{ $attributes }}>\n    <p"
  },
  {
    "path": "resources/views/components/icons/info.blade.php",
    "chars": 296,
    "preview": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" str"
  },
  {
    "path": "resources/views/components/icons/laravel-ascii.blade.php",
    "chars": 484749,
    "preview": "<svg fill=\"currentColor\" viewBox=\"0 0 1268 308\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n        d=\"m0.32415 7.3223"
  },
  {
    "path": "resources/views/components/query.blade.php",
    "chars": 8269,
    "preview": "@props(['queries'])\n\n<div\n    {{ $attributes->merge(['class' => \"flex flex-col gap-2.5 bg-neutral-50 dark:bg-white/1 bor"
  },
  {
    "path": "resources/views/components/request-body.blade.php",
    "chars": 460,
    "preview": "@props(['body'])\n\n<div class=\"flex flex-col gap-3\">\n    <h2 class=\"text-lg font-semibold\">Body</h2>\n    @if($body)\n    <"
  },
  {
    "path": "resources/views/components/request-header.blade.php",
    "chars": 767,
    "preview": "@props(['headers'])\n\n<div class=\"flex flex-col gap-3\">\n    <h2 class=\"text-lg font-semibold text-neutral-900 dark:text-w"
  },
  {
    "path": "resources/views/components/request-url.blade.php",
    "chars": 1846,
    "preview": "@props(['exception', 'request'])\n\n<div\n    x-data=\"{\n        copied: false,\n        async copyToClipboard() {\n          "
  },
  {
    "path": "resources/views/components/routing-parameter.blade.php",
    "chars": 514,
    "preview": "@props(['routeParameters'])\n\n<div class=\"flex flex-col gap-3\">\n    <h2 class=\"text-lg font-semibold\">Routing parameters<"
  },
  {
    "path": "resources/views/components/routing.blade.php",
    "chars": 825,
    "preview": "@props(['routing'])\n\n<div class=\"flex flex-col gap-3\">\n    <h2 class=\"text-lg font-semibold\">Routing</h2>\n    <div class"
  },
  {
    "path": "resources/views/components/section-container.blade.php",
    "chars": 185,
    "preview": "<section\n    {{ $attributes->merge(['class' => \"w-full max-w-7xl mx-auto p-4 sm:p-14 border-x border-dashed border-neutr"
  },
  {
    "path": "resources/views/components/separator.blade.php",
    "chars": 207,
    "preview": "<div {{ $attributes->merge(['class' => \"h-0 w-full relative\"]) }}>\n    <div class=\"absolute top-[-1px] left-0 right-0 bo"
  },
  {
    "path": "resources/views/components/syntax-highlight.blade.php",
    "chars": 1843,
    "preview": "@props([\n    'code',\n    'language',\n    'editor' => false,\n    'startingLine' => 1,\n    'highlightedLine' => null,\n    "
  },
  {
    "path": "resources/views/components/topbar.blade.php",
    "chars": 2212,
    "preview": "@props(['title', 'markdown'])\n\n<script>\n    const markdown = {{ Illuminate\\Support\\Js::from($markdown) }}\n</script>\n\n<di"
  },
  {
    "path": "resources/views/components/trace.blade.php",
    "chars": 1034,
    "preview": "@props(['exception'])\n\n<div class=\"flex flex-col gap-2.5 bg-neutral-50 dark:bg-white/1 border border-neutral-200 dark:bo"
  },
  {
    "path": "resources/views/components/vendor-frame.blade.php",
    "chars": 447,
    "preview": "@props(['frame'])\n\n<div class=\"grid gap-3 p-4 bg-neutral-50 dark:bg-transparent overflow-x-auto rounded-lg\">\n    @if($fr"
  },
  {
    "path": "resources/views/components/vendor-frames.blade.php",
    "chars": 2020,
    "preview": "@props(['frames'])\n\n@use('Illuminate\\Support\\Str')\n\n<div\n    x-data=\"{ expanded: false }\"\n    class=\"group rounded-lg bo"
  },
  {
    "path": "resources/views/view-exception.blade.php",
    "chars": 3620,
    "preview": "@use('BezhanSalleh\\FilamentExceptions\\FilamentExceptions')\n@php\n    $exception = $this->getStoredException();\n    $excep"
  },
  {
    "path": "src/Commands/InstallCommand.php",
    "chars": 1676,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Commands;\n\nuse Illuminate\\Console\\Command;\nus"
  },
  {
    "path": "src/Concerns/HasLabels.php",
    "chars": 1608,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Concerns;\n\nuse Closure;\n\ntrait HasLabels\n{\n  "
  },
  {
    "path": "src/Concerns/HasModelPruneInterval.php",
    "chars": 463,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Concerns;\n\nuse Carbon\\Carbon;\n\ntrait HasModel"
  },
  {
    "path": "src/Concerns/HasNavigation.php",
    "chars": 4763,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Concerns;\n\nuse Closure;\nuse Filament\\Clusters"
  },
  {
    "path": "src/Concerns/HasTenantScope.php",
    "chars": 1302,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Concerns;\n\nuse Closure;\n\ntrait HasTenantScope"
  },
  {
    "path": "src/Facades/FilamentExceptions.php",
    "chars": 927,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Facades;\n\nuse Closure;\nuse Illuminate\\Support"
  },
  {
    "path": "src/FilamentExceptions.php",
    "chars": 7750,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions;\n\nuse Closure;\nuse Filament\\Clusters\\Cluster;"
  },
  {
    "path": "src/FilamentExceptionsPlugin.php",
    "chars": 1401,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions;\n\nuse BezhanSalleh\\FilamentExceptions\\Concern"
  },
  {
    "path": "src/FilamentExceptionsServiceProvider.php",
    "chars": 1394,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions;\n\nuse BezhanSalleh\\FilamentExceptions\\Command"
  },
  {
    "path": "src/Models/Exception.php",
    "chars": 1720,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Models;\n\nuse BezhanSalleh\\FilamentExceptions\\"
  },
  {
    "path": "src/Resources/ExceptionResource/Pages/ListExceptions.php",
    "chars": 602,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Resources\\ExceptionResource\\Pages;\n\nuse Bezha"
  },
  {
    "path": "src/Resources/ExceptionResource/Pages/ViewException.php",
    "chars": 1797,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Resources\\ExceptionResource\\Pages;\n\nuse Bezha"
  },
  {
    "path": "src/Resources/ExceptionResource.php",
    "chars": 6135,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Resources;\n\nuse BezhanSalleh\\FilamentExceptio"
  },
  {
    "path": "src/StoredException.php",
    "chars": 10975,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions;\n\nuse BezhanSalleh\\FilamentExceptions\\Models\\"
  },
  {
    "path": "src/StoredFrame.php",
    "chars": 4661,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions;\n\nuse Illuminate\\Foundation\\Concerns\\Resolves"
  },
  {
    "path": "tests/AdminPanelProvider.php",
    "chars": 1639,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nnamespace BezhanSalleh\\FilamentExceptions\\Tests;\n\nuse Filament\\Http\\Middleware\\Authenti"
  },
  {
    "path": "tests/ArchTest.php",
    "chars": 137,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nit('will not use debugging functions')\n    ->expect(['dd', 'dump', 'ray'])\n    ->each->"
  },
  {
    "path": "tests/ExampleTest.php",
    "chars": 102,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nit('can test', function (): void {\n    expect(true)->toBeTrue();\n});\n"
  },
  {
    "path": "tests/Pest.php",
    "chars": 122,
    "preview": "<?php\n\ndeclare(strict_types=1);\n\nuse BezhanSalleh\\FilamentExceptions\\Tests\\TestCase;\n\nuses(TestCase::class)->in(__DIR__)"
  },
  {
    "path": "tests/TestCase.php",
    "chars": 2039,
    "preview": "<?php\n\nnamespace BezhanSalleh\\FilamentExceptions\\Tests;\n\nuse BezhanSalleh\\FilamentExceptions\\FilamentExceptionsServicePr"
  },
  {
    "path": "vite.config.js",
    "chars": 445,
    "preview": "import { defineConfig } from 'vite';\nimport tailwindcss from '@tailwindcss/vite';\nexport default defineConfig({\n    plug"
  }
]

About this extraction

This page contains the full source code of the bezhanSalleh/filament-exceptions GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 93 files (1.3 MB), approximately 620.1k tokens, and a symbol index with 850 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!